@peak-ai/canvas 1.4.39 → 1.4.40-rc.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -14,6 +14,7 @@ type GrapesjsCanvasProps = {
14
14
  setHasChanged: (hasChanged: boolean) => void;
15
15
  isStreaming: boolean;
16
16
  isModeChangeFromToggle?: boolean;
17
+ isTemplateView?: boolean;
17
18
  };
18
- declare function GrapesjsCanvas({ json, mode, setEditor, performInteraction, newDataNotifier, setHasChanged, isStreaming, isModeChangeFromToggle, }: GrapesjsCanvasProps): import("react/jsx-runtime").JSX.Element;
19
+ declare function GrapesjsCanvas({ json, mode, setEditor, performInteraction, newDataNotifier, setHasChanged, isStreaming, isModeChangeFromToggle, isTemplateView, }: GrapesjsCanvasProps): import("react/jsx-runtime").JSX.Element;
19
20
  export default GrapesjsCanvas;
package/GrapesjsCanvas.js CHANGED
@@ -1,11 +1,11 @@
1
1
  import _asyncToGenerator from"@babel/runtime/helpers/asyncToGenerator";import _extends from"@babel/runtime/helpers/extends";import _regeneratorRuntime from"@babel/runtime/regenerator";/* eslint-disable @typescript-eslint/no-explicit-any */import React,{useEffect,useRef}from"react";// eslint-disable-next-line import/no-named-as-default
2
2
  import grapesjs from"grapesjs";import"grapesjs/dist/css/grapes.min.css";import tailwind from"grapesjs-tailwind";import{TypesToRegister}from"./constants";import{toKebabCase}from"./helpers";import{tailwindCompiledCss}from"./helpers/css";import{datePickerCss}from"./helpers/date-picker";import{createGrapesjsShadcnGenericPlugin}from"./plugins/grapejs-plugin";import{StyledEditor}from"./index.styles";import{jsx as _jsx,jsxs as _jsxs}from"react/jsx-runtime";function setComponentProperties(editor,isPreview){function setPropertiesRecursively(comp){comp.set({editable:!isPreview,draggable:!isPreview,droppable:!isPreview&&comp.getName()!=="Shadcn-generic",selectable:!isPreview,hoverable:!isPreview,highlightable:!isPreview,copyable:false,resizable:false,removable:!isPreview,badgable:false});comp.set("attributes",_extends({},comp.get("attributes")||{},{isEditable:!isPreview}));if(!isPreview){comp.set("toolbar",[{attributes:{"class":"fa fa-arrows"},command:"tlb-move"},{attributes:{"class":"fa fa-trash"},command:"tlb-delete"}])}comp.components().forEach(setPropertiesRecursively)}if(isPreview){editor.runCommand("core:preview")}else{editor.stopCommand("core:preview")}var wrapper=editor.getWrapper();wrapper==null||wrapper.find("*").forEach(setPropertiesRecursively)}function convertStyles(stylesArray){return stylesArray.map(function(block){var selectors=Array.isArray(block.selectors)?block.selectors.join(", "):block.selectors;var declarations=Object.entries(block.style).map(function(_ref){var prop=_ref[0],value=_ref[1];return toKebabCase(prop)+": "+value+";"}).join(" ");return selectors+" { "+declarations+" }"}).join("\n")}function createActionCardConfig(action){var icon=action.icon,title=action.title,description=action.description;return{type:"shadcn-generic",componentName:"ActionCard",badgable:false,copyable:false,removable:true,draggable:true,componentProps:{icon:icon,headerContent:title,bodyContent:description}}}function expandActions(node){if(node.type==="shadcn-generic"&&node.componentName==="Actions"){var _node$componentProps;var actions=(_node$componentProps=node.componentProps)==null?void 0:_node$componentProps.actions;if(Array.isArray(actions)&&actions.length>0){return _extends({},node,{type:"div",classes:["dashboard-cards"].concat(node.classes||[]),componentName:undefined,componentProps:undefined,components:actions.map(function(action,i){return _extends({},createActionCardConfig(action),{id:node.id+"--action-card-"+i})})})}return node}if(Array.isArray(node.components)){return _extends({},node,{components:node.components.map(expandActions)})}return node}function setInteracting(renderedComponents,components,inProgress){components.forEach(function(component){var componentId=component.componentId,showLoader=component.showLoader;if(!showLoader){return}var gjsModel=renderedComponents[componentId];if(gjsModel){gjsModel.set("attributes",_extends({},gjsModel.get("attributes"),{interactionApiInProgress:inProgress}))}})}function expandActionsComponent(model,actions){model.components("");actions.forEach(function(action){model.append(createActionCardConfig(action))});model.set("type","div");model.addClass("dashboard-cards");model.set("componentName",undefined);model.set("componentProps",{})}function GrapesjsCanvas(_ref2){var json=_ref2.json,_ref2$mode=_ref2.mode,mode=_ref2$mode===void 0?"preview":_ref2$mode,setEditor=_ref2.setEditor,performInteraction=_ref2.performInteraction,_ref2$newDataNotifier=_ref2.newDataNotifier,newDataNotifier=_ref2$newDataNotifier===void 0?function(){// no op
3
3
  }:_ref2$newDataNotifier,_ref2$setHasChanged=_ref2.setHasChanged,setHasChanged=_ref2$setHasChanged===void 0?function(){// no op
4
- }:_ref2$setHasChanged,isStreaming=_ref2.isStreaming,_ref2$isModeChangeFro=_ref2.isModeChangeFromToggle,isModeChangeFromToggle=_ref2$isModeChangeFro===void 0?false:_ref2$isModeChangeFro;var editorRef=useRef(null);var editorInstance=useRef(null);var renderedComponents=useRef({});var isStreamingRef=useRef(isStreaming);var isSystemUpdateRef=useRef(false);var lastJsonRef=useRef("");var isEditorAliveRef=useRef(false);var _React$useState=React.useState(false),isTransitioning=_React$useState[0],setIsTransitioning=_React$useState[1];useEffect(function(){isStreamingRef.current=isStreaming},[isStreaming]);function notificationHandler(props){if(!props){return true}var componentId=props.componentId,_props$newProps=props.newProps,newProps=_props$newProps===void 0?{}:_props$newProps,_props$newAttributes=props.newAttributes,newAttributes=_props$newAttributes===void 0?{}:_props$newAttributes;var model=renderedComponents.current[componentId];if(!model){return false}// Filter out complex placeholder objects by setting them to null
4
+ }:_ref2$setHasChanged,isStreaming=_ref2.isStreaming,_ref2$isModeChangeFro=_ref2.isModeChangeFromToggle,isModeChangeFromToggle=_ref2$isModeChangeFro===void 0?false:_ref2$isModeChangeFro,_ref2$isTemplateView=_ref2.isTemplateView,isTemplateView=_ref2$isTemplateView===void 0?false:_ref2$isTemplateView;var editorRef=useRef(null);var editorInstance=useRef(null);var renderedComponents=useRef({});var isStreamingRef=useRef(isStreaming);var isSystemUpdateRef=useRef(false);var lastJsonRef=useRef("");var isEditorAliveRef=useRef(false);var _React$useState=React.useState(false),isTransitioning=_React$useState[0],setIsTransitioning=_React$useState[1];useEffect(function(){isStreamingRef.current=isStreaming},[isStreaming]);function notificationHandler(props){if(!props){return true}var componentId=props.componentId,_props$newProps=props.newProps,newProps=_props$newProps===void 0?{}:_props$newProps,_props$newAttributes=props.newAttributes,newAttributes=_props$newAttributes===void 0?{}:_props$newAttributes;var model=renderedComponents.current[componentId];if(!model){return false}// Filter out complex placeholder objects by setting them to null
5
5
  // This ensures placeholder values are properly cleared and don't cause stale data issues
6
6
  var filteredProps=_extends({},newProps);Object.keys(filteredProps).forEach(function(key){var value=filteredProps[key];if(value&&typeof value==="object"&&value.name==="__peak_placeholder"){filteredProps[key]=null}});var parsedNewProps=_extends({},filteredProps);if(filteredProps.pagination){parsedNewProps.pagination=_extends({},model.get("componentProps").pagination||{},filteredProps.pagination)}// Handle Actions component: expand into ActionCards when data arrives via streaming
7
7
  var isActionsComponent=model.get("componentName")==="Actions";var hasValidActionsData=parsedNewProps.actions&&parsedNewProps.actions!==null&&Array.isArray(parsedNewProps.actions)&&parsedNewProps.actions.length>0;if(isActionsComponent&&hasValidActionsData){var _model$components$at;var isAlreadyExpanded=model.components().length>0&&((_model$components$at=model.components().at(0))==null?void 0:_model$components$at.get("componentName"))==="ActionCard";if(!isAlreadyExpanded){expandActionsComponent(model,parsedNewProps.actions);return true}}model.set("componentProps",_extends({},model.get("componentProps"),parsedNewProps));model.set("attributes",_extends({},model.get("attributes"),newAttributes));return true}useEffect(function(){newDataNotifier(notificationHandler)},[]);function performInteractionWrapper(_x){return _performInteractionWrapper.apply(this,arguments)}function _performInteractionWrapper(){_performInteractionWrapper=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee4(payload){var _editorInstance$curre3;var updatedJson,apiResponse,componentUpdates;return _regeneratorRuntime.wrap(function _callee4$(_context4){while(1)switch(_context4.prev=_context4.next){case 0:_context4.next=2;return(_editorInstance$curre3=editorInstance.current)==null?void 0:_editorInstance$curre3.store();case 2:updatedJson=_context4.sent;setInteracting(renderedComponents.current,payload.affectedComponents,true);_context4.prev=4;_context4.next=7;return performInteraction(_extends({},payload,{json:updatedJson}));case 7:apiResponse=_context4.sent;componentUpdates=apiResponse||{};Object.entries(componentUpdates).forEach(function(_ref6){var key=_ref6[0],value=_ref6[1];var model=renderedComponents.current[key];if(model){model.set("attributes",_extends({},model.get("attributes"),{error:undefined}));model.set("componentProps",_extends({},model.get("componentProps"),value,{error:undefined,isMissing:undefined}))}});return _context4.abrupt("return",componentUpdates);case 13:_context4.prev=13;_context4.t0=_context4["catch"](4);payload.affectedComponents.forEach(function(componentId){var model=renderedComponents.current[componentId];if(model){var errorMessage=_context4.t0 instanceof Error?_context4.t0.message:"Something went wrong. Please try again.";model.set("attributes",_extends({},model.get("attributes"),{error:errorMessage}));model.set("componentProps",_extends({},model.get("componentProps"),{error:errorMessage,isMissing:undefined}))}});throw _context4.t0;case 17:_context4.prev=17;setInteracting(renderedComponents.current,payload.affectedComponents,false);return _context4.finish(17);case 20:case"end":return _context4.stop()}},_callee4,null,[[4,13,17,20]])}));return _performInteractionWrapper.apply(this,arguments)}useEffect(function(){if(!editorRef.current){return function(){// no op
8
- }}if(editorInstance.current){editorInstance.current.destroy();editorInstance.current=null;isEditorAliveRef.current=false}var currentMode=mode;var editor=grapesjs.init({container:editorRef.current,height:"100%",plugins:[tailwind,createGrapesjsShadcnGenericPlugin(currentMode,performInteractionWrapper,renderedComponents.current,setHasChanged)],storageManager:{type:"none"},richTextEditor:{actions:["bold","italic","underline","strikethrough"]},canvas:{customBadgeLabel:function customBadgeLabel(component){var tagName=component.get("tagName");return tagName==="body"?"":tagName||""}}});isEditorAliveRef.current=true;var injectionAttempts=0;function injectStylesEarly(){var _editor$Canvas;var iframeDoc=(_editor$Canvas=editor.Canvas)==null||_editor$Canvas.getDocument==null?void 0:_editor$Canvas.getDocument();if(iframeDoc&&iframeDoc.head){if(!iframeDoc.head.querySelector("[data-grapesjs-styles]")){var style=iframeDoc.createElement("style");var fullCss="\n "+tailwindCompiledCss+"\n "+datePickerCss+"\n ::-webkit-scrollbar {\n width: 0px;\n height: 0px;\n }\n html, body {\n overflow: auto !important;\n -ms-overflow-style: none; /* IE and Edge */\n scrollbar-width: none; /* Firefox */\n }\n ";style.innerHTML=fullCss;style.setAttribute("type","text/css");style.setAttribute("data-grapesjs-styles","true");iframeDoc.head.appendChild(style)}}else if(injectionAttempts<50){injectionAttempts+=1;requestAnimationFrame(injectStylesEarly)}}requestAnimationFrame(injectStylesEarly);function checkDirty(){return _checkDirty.apply(this,arguments)}function _checkDirty(){_checkDirty=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee2(){var stored,newJson;return _regeneratorRuntime.wrap(function _callee2$(_context2){while(1)switch(_context2.prev=_context2.next){case 0:if(!(isStreamingRef.current||isSystemUpdateRef.current)){_context2.next=2;break}return _context2.abrupt("return");case 2:if(!(!isEditorAliveRef.current||!editorInstance.current)){_context2.next=4;break}return _context2.abrupt("return");case 4:stored=null;_context2.prev=5;_context2.next=8;return editorInstance.current.store();case 8:stored=_context2.sent;_context2.next=14;break;case 11:_context2.prev=11;_context2.t0=_context2["catch"](5);return _context2.abrupt("return");case 14:if(stored){_context2.next=16;break}return _context2.abrupt("return");case 16:newJson=JSON.stringify(stored);if(newJson!==lastJsonRef.current){setHasChanged(true);lastJsonRef.current=newJson}case 18:case"end":return _context2.stop()}},_callee2,null,[[5,11]])}));return _checkDirty.apply(this,arguments)}var debouncedCheckDirty=function(){var timeout=null;return function(){if(timeout){clearTimeout(timeout)}timeout=setTimeout(checkDirty,200)}}();["component:add","component:remove","component:update:content","style:update","component:drag:end","rte:change"].forEach(function(evt){editor.on(evt,debouncedCheckDirty)});editor.on("component:update",function(model,prop){if(["attributes","componentProps","content"].includes(prop)){debouncedCheckDirty()}});// Tailwind CSS rules aren't fully added to our component
8
+ }}if(editorInstance.current){editorInstance.current.destroy();editorInstance.current=null;isEditorAliveRef.current=false}var currentMode=mode;var editor=grapesjs.init({container:editorRef.current,height:"100%",plugins:[tailwind,createGrapesjsShadcnGenericPlugin(currentMode,performInteractionWrapper,renderedComponents.current,setHasChanged,isTemplateView)],storageManager:{type:"none"},richTextEditor:{actions:["bold","italic","underline","strikethrough"]},canvas:{customBadgeLabel:function customBadgeLabel(component){var tagName=component.get("tagName");return tagName==="body"?"":tagName||""}}});isEditorAliveRef.current=true;var injectionAttempts=0;function injectStylesEarly(){var _editor$Canvas;var iframeDoc=(_editor$Canvas=editor.Canvas)==null||_editor$Canvas.getDocument==null?void 0:_editor$Canvas.getDocument();if(iframeDoc&&iframeDoc.head){if(!iframeDoc.head.querySelector("[data-grapesjs-styles]")){var style=iframeDoc.createElement("style");var fullCss="\n "+tailwindCompiledCss+"\n "+datePickerCss+"\n ::-webkit-scrollbar {\n width: 0px;\n height: 0px;\n }\n html, body {\n overflow: auto !important;\n -ms-overflow-style: none; /* IE and Edge */\n scrollbar-width: none; /* Firefox */\n }\n ";style.innerHTML=fullCss;style.setAttribute("type","text/css");style.setAttribute("data-grapesjs-styles","true");iframeDoc.head.appendChild(style)}}else if(injectionAttempts<50){injectionAttempts+=1;requestAnimationFrame(injectStylesEarly)}}requestAnimationFrame(injectStylesEarly);function checkDirty(){return _checkDirty.apply(this,arguments)}function _checkDirty(){_checkDirty=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee2(){var stored,newJson;return _regeneratorRuntime.wrap(function _callee2$(_context2){while(1)switch(_context2.prev=_context2.next){case 0:if(!(isStreamingRef.current||isSystemUpdateRef.current)){_context2.next=2;break}return _context2.abrupt("return");case 2:if(!(!isEditorAliveRef.current||!editorInstance.current)){_context2.next=4;break}return _context2.abrupt("return");case 4:stored=null;_context2.prev=5;_context2.next=8;return editorInstance.current.store();case 8:stored=_context2.sent;_context2.next=14;break;case 11:_context2.prev=11;_context2.t0=_context2["catch"](5);return _context2.abrupt("return");case 14:if(stored){_context2.next=16;break}return _context2.abrupt("return");case 16:newJson=JSON.stringify(stored);if(newJson!==lastJsonRef.current){setHasChanged(true);lastJsonRef.current=newJson}case 18:case"end":return _context2.stop()}},_callee2,null,[[5,11]])}));return _checkDirty.apply(this,arguments)}var debouncedCheckDirty=function(){var timeout=null;return function(){if(timeout){clearTimeout(timeout)}timeout=setTimeout(checkDirty,200)}}();["component:add","component:remove","component:update:content","style:update","component:drag:end","rte:change"].forEach(function(evt){editor.on(evt,debouncedCheckDirty)});editor.on("component:update",function(model,prop){if(["attributes","componentProps","content"].includes(prop)){debouncedCheckDirty()}});// Tailwind CSS rules aren't fully added to our component
9
9
  // So, adding them from here!
10
10
  editor.on("load",/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee(){var canvasDoc,canvasHead,style,fullCss;return _regeneratorRuntime.wrap(function _callee$(_context){while(1)switch(_context.prev=_context.next){case 0:canvasDoc=editor.Canvas.getDocument();canvasHead=canvasDoc.head;if(!canvasHead.querySelector("[data-grapesjs-styles]")){style=canvasDoc.createElement("style");fullCss="\n "+tailwindCompiledCss+"\n "+datePickerCss+"\n ::-webkit-scrollbar {\n width: 0px;\n height: 0px;\n }\n html, body {\n overflow: auto !important;\n -ms-overflow-style: none; /* IE and Edge */\n scrollbar-width: none; /* Firefox */\n }\n ";style.innerHTML=fullCss;style.setAttribute("type","text/css");style.setAttribute("data-grapesjs-styles","true");canvasHead.appendChild(style)}isSystemUpdateRef.current=true;_context.t0=JSON;_context.next=7;return editor.store();case 7:_context.t1=_context.sent;lastJsonRef.current=_context.t0.stringify.call(_context.t0,_context.t1);isSystemUpdateRef.current=false;case 10:case"end":return _context.stop()}},_callee)})));editorInstance.current=editor;if(setEditor){setEditor(editor)}TypesToRegister.forEach(function(_ref4){var type=_ref4.type,tagName=_ref4.tagName;if(!editor.DomComponents.getType(type)){editor.DomComponents.addType(type,{model:{defaults:{tagName:tagName}},view:{}})}});return function cleanup(){editor.destroy();isEditorAliveRef.current=false}},[]);useEffect(function(){var _json$pages,_json$pages$0$frames;if(json&&((_json$pages=json.pages)==null?void 0:_json$pages.length)>0&&((_json$pages$0$frames=json.pages[0].frames)==null?void 0:_json$pages$0$frames.length)>0){var _editorInstance$curre,_editorInstance$curre2;isSystemUpdateRef.current=true;var raw=json.pages[0].frames[0].component;var processed=expandActions(raw);(_editorInstance$curre=editorInstance.current)==null||_editorInstance$curre.setComponents(processed);var cssText=convertStyles(json.styles||[]);(_editorInstance$curre2=editorInstance.current)==null||_editorInstance$curre2.setStyle(cssText);setTimeout(/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee3(){return _regeneratorRuntime.wrap(function _callee3$(_context3){while(1)switch(_context3.prev=_context3.next){case 0:if(!editorInstance.current){_context3.next=7;break}_context3.t0=JSON;_context3.next=4;return editorInstance.current.store();case 4:_context3.t1=_context3.sent;lastJsonRef.current=_context3.t0.stringify.call(_context3.t0,_context3.t1);isSystemUpdateRef.current=false;case 7:case"end":return _context3.stop()}},_callee3)})),100)}},[json]);useEffect(function(){if(mode&&editorInstance.current){isSystemUpdateRef.current=true;if(isModeChangeFromToggle){setIsTransitioning(true)}setTimeout(function(){setComponentProperties(editorInstance.current,mode==="preview");setTimeout(function(){isSystemUpdateRef.current=false;setIsTransitioning(false)},50)},0)}},[mode,isModeChangeFromToggle]);return/*#__PURE__*/_jsxs(React.Fragment,{children:[/*#__PURE__*/_jsx(StyledEditor,{}),/*#__PURE__*/_jsx("div",{ref:editorRef,id:"grapesjs-editor",style:{opacity:isTransitioning?0:1,transition:"opacity 0.15s ease-in-out"}})]})}export default GrapesjsCanvas;
11
11
  //# sourceMappingURL=GrapesjsCanvas.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"GrapesjsCanvas.js","names":["React","useEffect","useRef","grapesjs","tailwind","TypesToRegister","toKebabCase","tailwindCompiledCss","datePickerCss","createGrapesjsShadcnGenericPlugin","StyledEditor","jsx","_jsx","jsxs","_jsxs","setComponentProperties","editor","isPreview","setPropertiesRecursively","comp","set","editable","draggable","droppable","getName","selectable","hoverable","highlightable","copyable","resizable","removable","badgable","_extends","get","isEditable","attributes","command","components","forEach","runCommand","stopCommand","wrapper","getWrapper","find","convertStyles","stylesArray","map","block","selectors","Array","isArray","join","declarations","Object","entries","style","_ref","prop","value","createActionCardConfig","action","icon","title","description","type","componentName","componentProps","headerContent","bodyContent","expandActions","node","_node$componentProps","actions","length","classes","concat","undefined","i","id","setInteracting","renderedComponents","inProgress","component","componentId","showLoader","gjsModel","interactionApiInProgress","expandActionsComponent","model","append","addClass","GrapesjsCanvas","_ref2","json","_ref2$mode","mode","setEditor","performInteraction","_ref2$newDataNotifier","newDataNotifier","_ref2$setHasChanged","setHasChanged","isStreaming","_ref2$isModeChangeFro","isModeChangeFromToggle","editorRef","editorInstance","isStreamingRef","isSystemUpdateRef","lastJsonRef","isEditorAliveRef","_React$useState","useState","isTransitioning","setIsTransitioning","current","notificationHandler","props","_props$newProps","newProps","_props$newAttributes","newAttributes","filteredProps","keys","key","name","parsedNewProps","pagination","isActionsComponent","hasValidActionsData","_model$components$at","isAlreadyExpanded","at","performInteractionWrapper","_x","_performInteractionWrapper","apply","arguments","_asyncToGenerator","_regeneratorRuntime","mark","_callee4","payload","_editorInstance$curre3","updatedJson","apiResponse","componentUpdates","wrap","_callee4$","_context4","prev","next","store","sent","affectedComponents","_ref6","error","isMissing","abrupt","t0","errorMessage","Error","message","finish","stop","destroy","currentMode","init","container","height","plugins","storageManager","richTextEditor","canvas","customBadgeLabel","tagName","injectionAttempts","injectStylesEarly","_editor$Canvas","iframeDoc","Canvas","getDocument","head","querySelector","createElement","fullCss","innerHTML","setAttribute","appendChild","requestAnimationFrame","checkDirty","_checkDirty","_callee2","stored","newJson","_callee2$","_context2","JSON","stringify","debouncedCheckDirty","timeout","clearTimeout","setTimeout","evt","on","includes","_callee","canvasDoc","canvasHead","_callee$","_context","t1","call","_ref4","DomComponents","getType","addType","defaults","view","cleanup","_json$pages","_json$pages$0$frames","pages","frames","_editorInstance$curre","_editorInstance$curre2","raw","processed","setComponents","cssText","styles","setStyle","_callee3","_callee3$","_context3","Fragment","children","ref","opacity","transition"],"sources":["../src/GrapesjsCanvas.tsx"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\nimport React, { useEffect, useRef } from 'react';\n// eslint-disable-next-line import/no-named-as-default\nimport grapesjs, { Component, Editor } from 'grapesjs';\nimport 'grapesjs/dist/css/grapes.min.css';\nimport tailwind from 'grapesjs-tailwind';\n\nimport { TypesToRegister } from './constants';\nimport { toKebabCase } from './helpers';\nimport { tailwindCompiledCss } from './helpers/css';\nimport { datePickerCss } from './helpers/date-picker';\nimport { createGrapesjsShadcnGenericPlugin } from './plugins/grapejs-plugin';\nimport { StyledEditor } from './index.styles';\n\ntype NotificationHandler = (newData: {\n componentId: string;\n newProps: Record<string, any>;\n newAttributes: Record<string, any>;\n}) => boolean;\n\ntype GrapesjsCanvasProps = {\n json: any;\n mode?: 'editor' | 'preview';\n setEditor: (editor: Editor) => void;\n performInteraction: (payload: Record<string, any>) => Promise<Record<string, any> | undefined>;\n newDataNotifier: (notifHandler: NotificationHandler) => void;\n setHasChanged: (hasChanged: boolean) => void;\n isStreaming: boolean;\n isModeChangeFromToggle?: boolean;\n};\n\nfunction setComponentProperties(editor: Editor, isPreview: boolean) {\n function setPropertiesRecursively(comp: Component) {\n comp.set({\n editable: !isPreview,\n draggable: !isPreview,\n droppable: !isPreview && comp.getName() !== 'Shadcn-generic',\n selectable: !isPreview,\n hoverable: !isPreview,\n highlightable: !isPreview,\n copyable: false,\n resizable: false,\n removable: !isPreview,\n badgable: false,\n });\n\n comp.set('attributes', {\n ...(comp.get('attributes') || {}),\n isEditable: !isPreview,\n });\n\n if (!isPreview) {\n comp.set('toolbar', [\n { attributes: { class: 'fa fa-arrows' }, command: 'tlb-move' },\n { attributes: { class: 'fa fa-trash' }, command: 'tlb-delete' },\n ]);\n }\n\n comp.components().forEach(setPropertiesRecursively);\n }\n\n if (isPreview) {\n editor.runCommand('core:preview');\n } else {\n editor.stopCommand('core:preview');\n }\n\n const wrapper = editor.getWrapper();\n wrapper?.find('*').forEach(setPropertiesRecursively);\n}\n\nfunction convertStyles(stylesArray: any[]): string {\n return stylesArray\n .map((block) => {\n const selectors = Array.isArray(block.selectors)\n ? block.selectors.join(', ')\n : block.selectors;\n const declarations = Object.entries(block.style)\n .map(([prop, value]) => `${toKebabCase(prop)}: ${value};`)\n .join(' ');\n\n return `${selectors} { ${declarations} }`;\n })\n .join('\\n');\n}\n\nfunction createActionCardConfig(action: any): any {\n const { icon, title, description } = action;\n\n return {\n type: 'shadcn-generic',\n componentName: 'ActionCard',\n badgable: false,\n copyable: false,\n removable: true,\n draggable: true,\n componentProps: {\n icon,\n headerContent: title,\n bodyContent: description,\n },\n };\n}\n\nfunction expandActions(node: any): any {\n if (node.type === 'shadcn-generic' && node.componentName === 'Actions') {\n const actions = node.componentProps?.actions;\n\n if (Array.isArray(actions) && actions.length > 0) {\n return {\n ...node,\n type: 'div',\n classes: ['dashboard-cards', ...(node.classes || [])],\n componentName: undefined,\n componentProps: undefined,\n components: actions.map((action: any, i: number) => ({\n ...createActionCardConfig(action),\n id: `${node.id}--action-card-${i}`,\n })),\n };\n }\n\n return node;\n }\n\n if (Array.isArray(node.components)) {\n return {\n ...node,\n components: node.components.map(expandActions),\n };\n }\n\n return node;\n}\n\nfunction setInteracting(\n renderedComponents: Record<string, Component>,\n components: { componentId: string; showLoader: boolean }[],\n inProgress: boolean,\n) {\n components.forEach((component) => {\n const { componentId, showLoader } = component;\n\n if (!showLoader) {\n return;\n }\n\n const gjsModel = renderedComponents[componentId];\n\n if (gjsModel) {\n gjsModel.set('attributes', {\n ...gjsModel.get('attributes'),\n interactionApiInProgress: inProgress,\n });\n }\n });\n}\n\nfunction expandActionsComponent(model: Component, actions: any[]): void {\n model.components('');\n\n actions.forEach((action: any) => {\n model.append(createActionCardConfig(action));\n });\n\n model.set('type', 'div');\n model.addClass('dashboard-cards');\n model.set('componentName', undefined);\n model.set('componentProps', {});\n}\n\nfunction GrapesjsCanvas({\n json,\n mode = 'preview',\n setEditor,\n performInteraction,\n newDataNotifier = () => {\n // no op\n },\n setHasChanged = () => {\n // no op\n },\n isStreaming,\n isModeChangeFromToggle = false,\n}: GrapesjsCanvasProps) {\n const editorRef = useRef<HTMLDivElement>(null);\n const editorInstance = useRef<Editor | null>(null);\n const renderedComponents = useRef<Record<string, Component>>({});\n const isStreamingRef = useRef(isStreaming);\n const isSystemUpdateRef = useRef(false);\n const lastJsonRef = useRef<string>('');\n const isEditorAliveRef = useRef(false);\n const [isTransitioning, setIsTransitioning] = React.useState(false);\n\n useEffect(() => {\n isStreamingRef.current = isStreaming;\n }, [isStreaming]);\n\n function notificationHandler(\n props: Parameters<NotificationHandler>[0],\n ): ReturnType<NotificationHandler> {\n if (!props) {\n return true;\n }\n\n const { componentId, newProps = {}, newAttributes = {} } = props;\n\n const model = renderedComponents.current[componentId];\n\n if (!model) {\n return false;\n }\n\n // Filter out complex placeholder objects by setting them to null\n // This ensures placeholder values are properly cleared and don't cause stale data issues\n const filteredProps = { ...newProps };\n\n Object.keys(filteredProps).forEach((key) => {\n const value = filteredProps[key];\n\n if (value && typeof value === 'object' && value.name === '__peak_placeholder') {\n filteredProps[key] = null;\n }\n });\n\n const parsedNewProps = {\n ...filteredProps,\n };\n\n if (filteredProps.pagination) {\n parsedNewProps.pagination = {\n ...(model.get('componentProps').pagination || {}),\n ...filteredProps.pagination,\n };\n }\n\n // Handle Actions component: expand into ActionCards when data arrives via streaming\n const isActionsComponent = model.get('componentName') === 'Actions';\n const hasValidActionsData =\n parsedNewProps.actions &&\n parsedNewProps.actions !== null &&\n Array.isArray(parsedNewProps.actions) &&\n parsedNewProps.actions.length > 0;\n\n if (isActionsComponent && hasValidActionsData) {\n const isAlreadyExpanded =\n model.components().length > 0 &&\n model.components().at(0)?.get('componentName') === 'ActionCard';\n\n if (!isAlreadyExpanded) {\n expandActionsComponent(model, parsedNewProps.actions);\n\n return true;\n }\n }\n\n model.set('componentProps', {\n ...model.get('componentProps'),\n ...parsedNewProps,\n });\n\n model.set('attributes', {\n ...model.get('attributes'),\n ...newAttributes,\n });\n\n return true;\n }\n\n useEffect(() => {\n newDataNotifier(notificationHandler);\n }, []);\n\n async function performInteractionWrapper(payload: Record<string, any>) {\n const updatedJson = await editorInstance.current?.store();\n setInteracting(renderedComponents.current, payload.affectedComponents, true);\n\n try {\n const apiResponse = await performInteraction({\n ...payload,\n json: updatedJson,\n });\n\n const componentUpdates = apiResponse || {};\n\n Object.entries(componentUpdates).forEach(([key, value]) => {\n const model = renderedComponents.current[key];\n\n if (model) {\n model.set('attributes', {\n ...model.get('attributes'),\n error: undefined,\n });\n\n model.set('componentProps', {\n ...model.get('componentProps'),\n ...value,\n error: undefined,\n isMissing: undefined,\n });\n }\n });\n\n return componentUpdates;\n } catch (error) {\n payload.affectedComponents.forEach((componentId: string) => {\n const model = renderedComponents.current[componentId];\n\n if (model) {\n const errorMessage =\n error instanceof Error ? error.message : 'Something went wrong. Please try again.';\n\n model.set('attributes', {\n ...model.get('attributes'),\n error: errorMessage,\n });\n\n model.set('componentProps', {\n ...model.get('componentProps'),\n error: errorMessage,\n isMissing: undefined,\n });\n }\n });\n\n throw error;\n } finally {\n setInteracting(renderedComponents.current, payload.affectedComponents, false);\n }\n }\n\n useEffect(() => {\n if (!editorRef.current) {\n return () => {\n // no op\n };\n }\n\n if (editorInstance.current) {\n editorInstance.current.destroy();\n editorInstance.current = null;\n isEditorAliveRef.current = false;\n }\n\n const currentMode = mode;\n\n const editor = grapesjs.init({\n container: editorRef.current,\n height: '100%',\n plugins: [\n tailwind,\n createGrapesjsShadcnGenericPlugin(\n currentMode,\n performInteractionWrapper,\n renderedComponents.current,\n setHasChanged,\n ),\n ],\n storageManager: { type: 'none' },\n richTextEditor: {\n actions: ['bold', 'italic', 'underline', 'strikethrough'],\n },\n canvas: {\n customBadgeLabel: (component) => {\n const tagName = component.get('tagName');\n\n return tagName === 'body' ? '' : tagName || '';\n },\n },\n });\n\n isEditorAliveRef.current = true;\n\n let injectionAttempts = 0;\n\n function injectStylesEarly() {\n const iframeDoc = editor.Canvas?.getDocument?.();\n\n if (iframeDoc && iframeDoc.head) {\n if (!iframeDoc.head.querySelector('[data-grapesjs-styles]')) {\n const style = iframeDoc.createElement('style');\n const fullCss = `\n ${tailwindCompiledCss}\n ${datePickerCss}\n ::-webkit-scrollbar {\n width: 0px;\n height: 0px;\n }\n html, body {\n overflow: auto !important;\n -ms-overflow-style: none; /* IE and Edge */\n scrollbar-width: none; /* Firefox */\n }\n `;\n style.innerHTML = fullCss;\n style.setAttribute('type', 'text/css');\n style.setAttribute('data-grapesjs-styles', 'true');\n iframeDoc.head.appendChild(style);\n }\n } else if (injectionAttempts < 50) {\n injectionAttempts += 1;\n requestAnimationFrame(injectStylesEarly);\n }\n }\n\n requestAnimationFrame(injectStylesEarly);\n\n async function checkDirty() {\n if (isStreamingRef.current || isSystemUpdateRef.current) {\n return;\n }\n\n if (!isEditorAliveRef.current || !editorInstance.current) {\n return;\n }\n\n let stored = null;\n\n try {\n stored = await editorInstance.current.store();\n } catch (err) {\n return;\n }\n\n if (!stored) {\n return;\n }\n\n const newJson = JSON.stringify(stored);\n\n if (newJson !== lastJsonRef.current) {\n setHasChanged(true);\n lastJsonRef.current = newJson;\n }\n }\n\n const debouncedCheckDirty = (() => {\n let timeout: NodeJS.Timeout | null = null;\n\n return () => {\n if (timeout) {\n clearTimeout(timeout);\n }\n\n timeout = setTimeout(checkDirty, 200);\n };\n })();\n\n [\n 'component:add',\n 'component:remove',\n 'component:update:content',\n 'style:update',\n 'component:drag:end',\n 'rte:change',\n ].forEach((evt) => {\n editor.on(evt, debouncedCheckDirty);\n });\n\n editor.on('component:update', (model, prop) => {\n if (['attributes', 'componentProps', 'content'].includes(prop)) {\n debouncedCheckDirty();\n }\n });\n\n // Tailwind CSS rules aren't fully added to our component\n // So, adding them from here!\n editor.on('load', async () => {\n const canvasDoc = editor.Canvas.getDocument();\n const canvasHead = canvasDoc.head;\n\n if (!canvasHead.querySelector('[data-grapesjs-styles]')) {\n const style = canvasDoc.createElement('style');\n const fullCss = `\n ${tailwindCompiledCss}\n ${datePickerCss}\n ::-webkit-scrollbar {\n width: 0px;\n height: 0px;\n }\n html, body {\n overflow: auto !important;\n -ms-overflow-style: none; /* IE and Edge */\n scrollbar-width: none; /* Firefox */\n }\n `;\n style.innerHTML = fullCss;\n style.setAttribute('type', 'text/css');\n style.setAttribute('data-grapesjs-styles', 'true');\n canvasHead.appendChild(style);\n }\n\n isSystemUpdateRef.current = true;\n lastJsonRef.current = JSON.stringify(await editor.store());\n isSystemUpdateRef.current = false;\n });\n\n editorInstance.current = editor;\n\n if (setEditor) {\n setEditor(editor);\n }\n\n TypesToRegister.forEach(({ type, tagName }) => {\n if (!editor.DomComponents.getType(type)) {\n editor.DomComponents.addType(type, {\n model: {\n defaults: { tagName },\n },\n view: {},\n });\n }\n });\n\n return function cleanup() {\n editor.destroy();\n isEditorAliveRef.current = false;\n };\n }, []);\n\n useEffect(() => {\n if (json && json.pages?.length > 0 && json.pages[0].frames?.length > 0) {\n isSystemUpdateRef.current = true;\n const raw = json.pages[0].frames[0].component;\n const processed = expandActions(raw);\n editorInstance.current?.setComponents(processed);\n\n const cssText = convertStyles(json.styles || []);\n editorInstance.current?.setStyle(cssText);\n\n setTimeout(async () => {\n if (editorInstance.current) {\n lastJsonRef.current = JSON.stringify(await editorInstance.current.store());\n isSystemUpdateRef.current = false;\n }\n }, 100);\n }\n }, [json]);\n\n useEffect(() => {\n if (mode && editorInstance.current) {\n isSystemUpdateRef.current = true;\n\n if(isModeChangeFromToggle){\n setIsTransitioning(true);\n }\n\n setTimeout(() => {\n setComponentProperties(editorInstance.current as Editor, mode === 'preview');\n\n setTimeout(() => {\n isSystemUpdateRef.current = false;\n setIsTransitioning(false);\n }, 50);\n }, 0);\n }\n }, [mode, isModeChangeFromToggle]);\n\n return (\n <React.Fragment>\n <StyledEditor />\n <div \n ref={editorRef} \n id=\"grapesjs-editor\" \n style={{\n opacity: isTransitioning ? 0 : 1,\n transition: 'opacity 0.15s ease-in-out',\n }}\n />\n </React.Fragment>\n );\n}\n\nexport default GrapesjsCanvas;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"GrapesjsCanvas.js","names":["React","useEffect","useRef","grapesjs","tailwind","TypesToRegister","toKebabCase","tailwindCompiledCss","datePickerCss","createGrapesjsShadcnGenericPlugin","StyledEditor","jsx","_jsx","jsxs","_jsxs","setComponentProperties","editor","isPreview","setPropertiesRecursively","comp","set","editable","draggable","droppable","getName","selectable","hoverable","highlightable","copyable","resizable","removable","badgable","_extends","get","isEditable","attributes","command","components","forEach","runCommand","stopCommand","wrapper","getWrapper","find","convertStyles","stylesArray","map","block","selectors","Array","isArray","join","declarations","Object","entries","style","_ref","prop","value","createActionCardConfig","action","icon","title","description","type","componentName","componentProps","headerContent","bodyContent","expandActions","node","_node$componentProps","actions","length","classes","concat","undefined","i","id","setInteracting","renderedComponents","inProgress","component","componentId","showLoader","gjsModel","interactionApiInProgress","expandActionsComponent","model","append","addClass","GrapesjsCanvas","_ref2","json","_ref2$mode","mode","setEditor","performInteraction","_ref2$newDataNotifier","newDataNotifier","_ref2$setHasChanged","setHasChanged","isStreaming","_ref2$isModeChangeFro","isModeChangeFromToggle","_ref2$isTemplateView","isTemplateView","editorRef","editorInstance","isStreamingRef","isSystemUpdateRef","lastJsonRef","isEditorAliveRef","_React$useState","useState","isTransitioning","setIsTransitioning","current","notificationHandler","props","_props$newProps","newProps","_props$newAttributes","newAttributes","filteredProps","keys","key","name","parsedNewProps","pagination","isActionsComponent","hasValidActionsData","_model$components$at","isAlreadyExpanded","at","performInteractionWrapper","_x","_performInteractionWrapper","apply","arguments","_asyncToGenerator","_regeneratorRuntime","mark","_callee4","payload","_editorInstance$curre3","updatedJson","apiResponse","componentUpdates","wrap","_callee4$","_context4","prev","next","store","sent","affectedComponents","_ref6","error","isMissing","abrupt","t0","errorMessage","Error","message","finish","stop","destroy","currentMode","init","container","height","plugins","storageManager","richTextEditor","canvas","customBadgeLabel","tagName","injectionAttempts","injectStylesEarly","_editor$Canvas","iframeDoc","Canvas","getDocument","head","querySelector","createElement","fullCss","innerHTML","setAttribute","appendChild","requestAnimationFrame","checkDirty","_checkDirty","_callee2","stored","newJson","_callee2$","_context2","JSON","stringify","debouncedCheckDirty","timeout","clearTimeout","setTimeout","evt","on","includes","_callee","canvasDoc","canvasHead","_callee$","_context","t1","call","_ref4","DomComponents","getType","addType","defaults","view","cleanup","_json$pages","_json$pages$0$frames","pages","frames","_editorInstance$curre","_editorInstance$curre2","raw","processed","setComponents","cssText","styles","setStyle","_callee3","_callee3$","_context3","Fragment","children","ref","opacity","transition"],"sources":["../src/GrapesjsCanvas.tsx"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\nimport React, { useEffect, useRef } from 'react';\n// eslint-disable-next-line import/no-named-as-default\nimport grapesjs, { Component, Editor } from 'grapesjs';\nimport 'grapesjs/dist/css/grapes.min.css';\nimport tailwind from 'grapesjs-tailwind';\n\nimport { TypesToRegister } from './constants';\nimport { toKebabCase } from './helpers';\nimport { tailwindCompiledCss } from './helpers/css';\nimport { datePickerCss } from './helpers/date-picker';\nimport { createGrapesjsShadcnGenericPlugin } from './plugins/grapejs-plugin';\nimport { StyledEditor } from './index.styles';\n\ntype NotificationHandler = (newData: {\n componentId: string;\n newProps: Record<string, any>;\n newAttributes: Record<string, any>;\n}) => boolean;\n\ntype GrapesjsCanvasProps = {\n json: any;\n mode?: 'editor' | 'preview';\n setEditor: (editor: Editor) => void;\n performInteraction: (payload: Record<string, any>) => Promise<Record<string, any> | undefined>;\n newDataNotifier: (notifHandler: NotificationHandler) => void;\n setHasChanged: (hasChanged: boolean) => void;\n isStreaming: boolean;\n isModeChangeFromToggle?: boolean;\n isTemplateView?: boolean;\n};\n\nfunction setComponentProperties(editor: Editor, isPreview: boolean) {\n function setPropertiesRecursively(comp: Component) {\n comp.set({\n editable: !isPreview,\n draggable: !isPreview,\n droppable: !isPreview && comp.getName() !== 'Shadcn-generic',\n selectable: !isPreview,\n hoverable: !isPreview,\n highlightable: !isPreview,\n copyable: false,\n resizable: false,\n removable: !isPreview,\n badgable: false,\n });\n\n comp.set('attributes', {\n ...(comp.get('attributes') || {}),\n isEditable: !isPreview,\n });\n\n if (!isPreview) {\n comp.set('toolbar', [\n { attributes: { class: 'fa fa-arrows' }, command: 'tlb-move' },\n { attributes: { class: 'fa fa-trash' }, command: 'tlb-delete' },\n ]);\n }\n\n comp.components().forEach(setPropertiesRecursively);\n }\n\n if (isPreview) {\n editor.runCommand('core:preview');\n } else {\n editor.stopCommand('core:preview');\n }\n\n const wrapper = editor.getWrapper();\n wrapper?.find('*').forEach(setPropertiesRecursively);\n}\n\nfunction convertStyles(stylesArray: any[]): string {\n return stylesArray\n .map((block) => {\n const selectors = Array.isArray(block.selectors)\n ? block.selectors.join(', ')\n : block.selectors;\n const declarations = Object.entries(block.style)\n .map(([prop, value]) => `${toKebabCase(prop)}: ${value};`)\n .join(' ');\n\n return `${selectors} { ${declarations} }`;\n })\n .join('\\n');\n}\n\nfunction createActionCardConfig(action: any): any {\n const { icon, title, description } = action;\n\n return {\n type: 'shadcn-generic',\n componentName: 'ActionCard',\n badgable: false,\n copyable: false,\n removable: true,\n draggable: true,\n componentProps: {\n icon,\n headerContent: title,\n bodyContent: description,\n },\n };\n}\n\nfunction expandActions(node: any): any {\n if (node.type === 'shadcn-generic' && node.componentName === 'Actions') {\n const actions = node.componentProps?.actions;\n\n if (Array.isArray(actions) && actions.length > 0) {\n return {\n ...node,\n type: 'div',\n classes: ['dashboard-cards', ...(node.classes || [])],\n componentName: undefined,\n componentProps: undefined,\n components: actions.map((action: any, i: number) => ({\n ...createActionCardConfig(action),\n id: `${node.id}--action-card-${i}`,\n })),\n };\n }\n\n return node;\n }\n\n if (Array.isArray(node.components)) {\n return {\n ...node,\n components: node.components.map(expandActions),\n };\n }\n\n return node;\n}\n\nfunction setInteracting(\n renderedComponents: Record<string, Component>,\n components: { componentId: string; showLoader: boolean }[],\n inProgress: boolean,\n) {\n components.forEach((component) => {\n const { componentId, showLoader } = component;\n\n if (!showLoader) {\n return;\n }\n\n const gjsModel = renderedComponents[componentId];\n\n if (gjsModel) {\n gjsModel.set('attributes', {\n ...gjsModel.get('attributes'),\n interactionApiInProgress: inProgress,\n });\n }\n });\n}\n\nfunction expandActionsComponent(model: Component, actions: any[]): void {\n model.components('');\n\n actions.forEach((action: any) => {\n model.append(createActionCardConfig(action));\n });\n\n model.set('type', 'div');\n model.addClass('dashboard-cards');\n model.set('componentName', undefined);\n model.set('componentProps', {});\n}\n\nfunction GrapesjsCanvas({\n json,\n mode = 'preview',\n setEditor,\n performInteraction,\n newDataNotifier = () => {\n // no op\n },\n setHasChanged = () => {\n // no op\n },\n isStreaming,\n isModeChangeFromToggle = false,\n isTemplateView = false,\n}: GrapesjsCanvasProps) {\n const editorRef = useRef<HTMLDivElement>(null);\n const editorInstance = useRef<Editor | null>(null);\n const renderedComponents = useRef<Record<string, Component>>({});\n const isStreamingRef = useRef(isStreaming);\n const isSystemUpdateRef = useRef(false);\n const lastJsonRef = useRef<string>('');\n const isEditorAliveRef = useRef(false);\n const [isTransitioning, setIsTransitioning] = React.useState(false);\n\n useEffect(() => {\n isStreamingRef.current = isStreaming;\n }, [isStreaming]);\n\n function notificationHandler(\n props: Parameters<NotificationHandler>[0],\n ): ReturnType<NotificationHandler> {\n if (!props) {\n return true;\n }\n\n const { componentId, newProps = {}, newAttributes = {} } = props;\n\n const model = renderedComponents.current[componentId];\n\n if (!model) {\n return false;\n }\n\n // Filter out complex placeholder objects by setting them to null\n // This ensures placeholder values are properly cleared and don't cause stale data issues\n const filteredProps = { ...newProps };\n\n Object.keys(filteredProps).forEach((key) => {\n const value = filteredProps[key];\n\n if (value && typeof value === 'object' && value.name === '__peak_placeholder') {\n filteredProps[key] = null;\n }\n });\n\n const parsedNewProps = {\n ...filteredProps,\n };\n\n if (filteredProps.pagination) {\n parsedNewProps.pagination = {\n ...(model.get('componentProps').pagination || {}),\n ...filteredProps.pagination,\n };\n }\n\n // Handle Actions component: expand into ActionCards when data arrives via streaming\n const isActionsComponent = model.get('componentName') === 'Actions';\n const hasValidActionsData =\n parsedNewProps.actions &&\n parsedNewProps.actions !== null &&\n Array.isArray(parsedNewProps.actions) &&\n parsedNewProps.actions.length > 0;\n\n if (isActionsComponent && hasValidActionsData) {\n const isAlreadyExpanded =\n model.components().length > 0 &&\n model.components().at(0)?.get('componentName') === 'ActionCard';\n\n if (!isAlreadyExpanded) {\n expandActionsComponent(model, parsedNewProps.actions);\n\n return true;\n }\n }\n\n model.set('componentProps', {\n ...model.get('componentProps'),\n ...parsedNewProps,\n });\n\n model.set('attributes', {\n ...model.get('attributes'),\n ...newAttributes,\n });\n\n return true;\n }\n\n useEffect(() => {\n newDataNotifier(notificationHandler);\n }, []);\n\n async function performInteractionWrapper(payload: Record<string, any>) {\n const updatedJson = await editorInstance.current?.store();\n setInteracting(renderedComponents.current, payload.affectedComponents, true);\n\n try {\n const apiResponse = await performInteraction({\n ...payload,\n json: updatedJson,\n });\n\n const componentUpdates = apiResponse || {};\n\n Object.entries(componentUpdates).forEach(([key, value]) => {\n const model = renderedComponents.current[key];\n\n if (model) {\n model.set('attributes', {\n ...model.get('attributes'),\n error: undefined,\n });\n\n model.set('componentProps', {\n ...model.get('componentProps'),\n ...value,\n error: undefined,\n isMissing: undefined,\n });\n }\n });\n\n return componentUpdates;\n } catch (error) {\n payload.affectedComponents.forEach((componentId: string) => {\n const model = renderedComponents.current[componentId];\n\n if (model) {\n const errorMessage =\n error instanceof Error ? error.message : 'Something went wrong. Please try again.';\n\n model.set('attributes', {\n ...model.get('attributes'),\n error: errorMessage,\n });\n\n model.set('componentProps', {\n ...model.get('componentProps'),\n error: errorMessage,\n isMissing: undefined,\n });\n }\n });\n\n throw error;\n } finally {\n setInteracting(renderedComponents.current, payload.affectedComponents, false);\n }\n }\n\n useEffect(() => {\n if (!editorRef.current) {\n return () => {\n // no op\n };\n }\n\n if (editorInstance.current) {\n editorInstance.current.destroy();\n editorInstance.current = null;\n isEditorAliveRef.current = false;\n }\n\n const currentMode = mode;\n\n const editor = grapesjs.init({\n container: editorRef.current,\n height: '100%',\n plugins: [\n tailwind,\n createGrapesjsShadcnGenericPlugin(\n currentMode,\n performInteractionWrapper,\n renderedComponents.current,\n setHasChanged,\n isTemplateView,\n ),\n ],\n storageManager: { type: 'none' },\n richTextEditor: {\n actions: ['bold', 'italic', 'underline', 'strikethrough'],\n },\n canvas: {\n customBadgeLabel: (component) => {\n const tagName = component.get('tagName');\n\n return tagName === 'body' ? '' : tagName || '';\n },\n },\n });\n\n isEditorAliveRef.current = true;\n\n let injectionAttempts = 0;\n\n function injectStylesEarly() {\n const iframeDoc = editor.Canvas?.getDocument?.();\n\n if (iframeDoc && iframeDoc.head) {\n if (!iframeDoc.head.querySelector('[data-grapesjs-styles]')) {\n const style = iframeDoc.createElement('style');\n const fullCss = `\n ${tailwindCompiledCss}\n ${datePickerCss}\n ::-webkit-scrollbar {\n width: 0px;\n height: 0px;\n }\n html, body {\n overflow: auto !important;\n -ms-overflow-style: none; /* IE and Edge */\n scrollbar-width: none; /* Firefox */\n }\n `;\n style.innerHTML = fullCss;\n style.setAttribute('type', 'text/css');\n style.setAttribute('data-grapesjs-styles', 'true');\n iframeDoc.head.appendChild(style);\n }\n } else if (injectionAttempts < 50) {\n injectionAttempts += 1;\n requestAnimationFrame(injectStylesEarly);\n }\n }\n\n requestAnimationFrame(injectStylesEarly);\n\n async function checkDirty() {\n if (isStreamingRef.current || isSystemUpdateRef.current) {\n return;\n }\n\n if (!isEditorAliveRef.current || !editorInstance.current) {\n return;\n }\n\n let stored = null;\n\n try {\n stored = await editorInstance.current.store();\n } catch (err) {\n return;\n }\n\n if (!stored) {\n return;\n }\n\n const newJson = JSON.stringify(stored);\n\n if (newJson !== lastJsonRef.current) {\n setHasChanged(true);\n lastJsonRef.current = newJson;\n }\n }\n\n const debouncedCheckDirty = (() => {\n let timeout: NodeJS.Timeout | null = null;\n\n return () => {\n if (timeout) {\n clearTimeout(timeout);\n }\n\n timeout = setTimeout(checkDirty, 200);\n };\n })();\n\n [\n 'component:add',\n 'component:remove',\n 'component:update:content',\n 'style:update',\n 'component:drag:end',\n 'rte:change',\n ].forEach((evt) => {\n editor.on(evt, debouncedCheckDirty);\n });\n\n editor.on('component:update', (model, prop) => {\n if (['attributes', 'componentProps', 'content'].includes(prop)) {\n debouncedCheckDirty();\n }\n });\n\n // Tailwind CSS rules aren't fully added to our component\n // So, adding them from here!\n editor.on('load', async () => {\n const canvasDoc = editor.Canvas.getDocument();\n const canvasHead = canvasDoc.head;\n\n if (!canvasHead.querySelector('[data-grapesjs-styles]')) {\n const style = canvasDoc.createElement('style');\n const fullCss = `\n ${tailwindCompiledCss}\n ${datePickerCss}\n ::-webkit-scrollbar {\n width: 0px;\n height: 0px;\n }\n html, body {\n overflow: auto !important;\n -ms-overflow-style: none; /* IE and Edge */\n scrollbar-width: none; /* Firefox */\n }\n `;\n style.innerHTML = fullCss;\n style.setAttribute('type', 'text/css');\n style.setAttribute('data-grapesjs-styles', 'true');\n canvasHead.appendChild(style);\n }\n\n isSystemUpdateRef.current = true;\n lastJsonRef.current = JSON.stringify(await editor.store());\n isSystemUpdateRef.current = false;\n });\n\n editorInstance.current = editor;\n\n if (setEditor) {\n setEditor(editor);\n }\n\n TypesToRegister.forEach(({ type, tagName }) => {\n if (!editor.DomComponents.getType(type)) {\n editor.DomComponents.addType(type, {\n model: {\n defaults: { tagName },\n },\n view: {},\n });\n }\n });\n\n return function cleanup() {\n editor.destroy();\n isEditorAliveRef.current = false;\n };\n }, []);\n\n useEffect(() => {\n if (json && json.pages?.length > 0 && json.pages[0].frames?.length > 0) {\n isSystemUpdateRef.current = true;\n const raw = json.pages[0].frames[0].component;\n const processed = expandActions(raw);\n editorInstance.current?.setComponents(processed);\n\n const cssText = convertStyles(json.styles || []);\n editorInstance.current?.setStyle(cssText);\n\n setTimeout(async () => {\n if (editorInstance.current) {\n lastJsonRef.current = JSON.stringify(await editorInstance.current.store());\n isSystemUpdateRef.current = false;\n }\n }, 100);\n }\n }, [json]);\n\n useEffect(() => {\n if (mode && editorInstance.current) {\n isSystemUpdateRef.current = true;\n\n if(isModeChangeFromToggle){\n setIsTransitioning(true);\n }\n\n setTimeout(() => {\n setComponentProperties(editorInstance.current as Editor, mode === 'preview');\n\n setTimeout(() => {\n isSystemUpdateRef.current = false;\n setIsTransitioning(false);\n }, 50);\n }, 0);\n }\n }, [mode, isModeChangeFromToggle]);\n\n return (\n <React.Fragment>\n <StyledEditor />\n <div \n ref={editorRef} \n id=\"grapesjs-editor\" \n style={{\n opacity: isTransitioning ? 0 : 1,\n transition: 'opacity 0.15s ease-in-out',\n }}\n />\n </React.Fragment>\n );\n}\n\nexport default GrapesjsCanvas;\n"],"mappings":"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","ignoreList":[]}
package/helpers/css.d.ts CHANGED
@@ -1 +1 @@
1
- export declare const tailwindCompiledCss = "/*! tailwindcss v4.1.7 | MIT License | https://tailwindcss.com */\n:root, :host {\n --font-sans: ui-sans-serif, system-ui, sans-serif, \"Apple Color Emoji\",\n \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\";\n --font-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\",\n \"Courier New\", monospace;\n --color-red-50: oklch(97.1% 0.013 17.38);\n --color-red-100: oklch(93.6% 0.032 17.717);\n --color-red-200: oklch(88.5% 0.062 18.334);\n --color-red-300: oklch(80.8% 0.114 19.571);\n --color-red-600: oklch(57.7% 0.245 27.325);\n --color-green-300: oklch(87.1% 0.15 154.449);\n --color-green-600: oklch(62.7% 0.194 149.214);\n --color-blue-50: oklch(97% 0.014 254.604);\n --color-blue-500: oklch(62.3% 0.214 259.815);\n --color-blue-600: oklch(54.6% 0.245 262.881);\n --color-blue-700: oklch(48.8% 0.243 264.376);\n --color-purple-600: oklch(55.8% 0.288 302.321);\n --color-pink-50: oklch(97.1% 0.014 343.198);\n --color-pink-900: oklch(40.8% 0.153 2.432);\n --color-slate-100: oklch(96.8% 0.007 247.896);\n --color-gray-50: oklch(98.5% 0.002 247.839);\n --color-gray-100: oklch(96.7% 0.003 264.542);\n --color-gray-200: oklch(92.8% 0.006 264.531);\n --color-gray-300: oklch(87.2% 0.01 258.338);\n --color-gray-400: oklch(70.7% 0.022 261.325);\n --color-gray-500: oklch(55.1% 0.027 264.364);\n --color-gray-600: oklch(44.6% 0.03 256.802);\n --color-gray-700: oklch(37.3% 0.034 259.733);\n --color-gray-800: oklch(27.8% 0.033 256.848);\n --color-gray-900: oklch(21% 0.034 264.665);\n --color-black: #000;\n --color-white: #fff;\n --spacing: 0.25rem;\n --container-md: 28rem;\n --container-2xl: 42rem;\n --text-xs: 0.75rem;\n --text-xs--line-height: calc(1 / 0.75);\n --text-sm: 0.875rem;\n --text-sm--line-height: calc(1.25 / 0.875);\n --text-base: 1rem;\n --text-base--line-height: calc(1.5 / 1);\n --text-lg: 1.125rem;\n --text-lg--line-height: calc(1.75 / 1.125);\n --text-xl: 1.25rem;\n --text-xl--line-height: calc(1.75 / 1.25);\n --text-2xl: 1.5rem;\n --text-2xl--line-height: calc(2 / 1.5);\n --text-3xl: 1.875rem;\n --text-3xl--line-height: calc(2.25 / 1.875);\n --text-4xl: 2.25rem;\n --text-4xl--line-height: calc(2.5 / 2.25);\n --text-5xl: 3rem;\n --text-5xl--line-height: 1;\n --font-weight-medium: 500;\n --font-weight-semibold: 600;\n --font-weight-bold: 700;\n --leading-relaxed: 1.625;\n --radius-sm: calc(0.625rem - 4px);\n --radius-md: calc(0.625rem - 2px);\n --radius-lg: 0.625rem;\n --radius-xl: calc(0.625rem + 4px);\n --ease-in-out: cubic-bezier(0.4, 0, 0.2, 1);\n --animate-spin: spin 1s linear infinite;\n --animate-pulse: pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite;\n --aspect-video: 16 / 9;\n --default-transition-duration: 150ms;\n --default-transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n --default-font-family: var(--font-sans);\n --default-mono-font-family: var(--font-mono);\n --color-border: oklch(0.922 0 0);\n }\n*, ::after, ::before, ::backdrop, ::file-selector-button {\n box-sizing: border-box;\n margin: 0;\n padding: 0;\n border: 0 solid;\n }\nhtml, :host {\n line-height: 1.5;\n -webkit-text-size-adjust: 100%;\n -moz-tab-size: 4;\n -o-tab-size: 4;\n tab-size: 4;\n font-family: ui-sans-serif, system-ui, sans-serif, \"Apple Color Emoji\",\n \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\";\n font-family: var(--default-font-family, ui-sans-serif, system-ui, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\");\n font-feature-settings: normal;\n font-feature-settings: var(--default-font-feature-settings, normal);\n font-variation-settings: normal;\n font-variation-settings: var(--default-font-variation-settings, normal);\n -webkit-tap-highlight-color: transparent;\n }\nhr {\n height: 0;\n color: inherit;\n border-top-width: 1px;\n }\nabbr:where([title]) {\n -webkit-text-decoration: underline dotted;\n text-decoration: underline dotted;\n }\nh1, h2, h3, h4, h5, h6 {\n font-size: inherit;\n font-weight: inherit;\n }\na {\n color: inherit;\n -webkit-text-decoration: inherit;\n text-decoration: inherit;\n }\nb, strong {\n font-weight: bolder;\n }\ncode, kbd, samp, pre {\n font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\",\n \"Courier New\", monospace;\n font-family: var(--default-mono-font-family, ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace);\n font-feature-settings: normal;\n font-feature-settings: var(--default-mono-font-feature-settings, normal);\n font-variation-settings: normal;\n font-variation-settings: var(--default-mono-font-variation-settings, normal);\n font-size: 1em;\n }\nsmall {\n font-size: 80%;\n }\nsub, sup {\n font-size: 75%;\n line-height: 0;\n position: relative;\n vertical-align: baseline;\n }\nsub {\n bottom: -0.25em;\n }\nsup {\n top: -0.5em;\n }\ntable {\n text-indent: 0;\n border-color: inherit;\n border-collapse: collapse;\n }\n:-moz-focusring {\n outline: auto;\n }\nprogress {\n vertical-align: baseline;\n }\nsummary {\n display: list-item;\n }\nol, ul, menu {\n list-style: none;\n }\nimg, svg, video, canvas, audio, iframe, embed, object {\n display: block;\n vertical-align: middle;\n }\nimg, video {\n max-width: 100%;\n height: auto;\n }\nbutton, input, select, optgroup, textarea, ::file-selector-button {\n font: inherit;\n font-feature-settings: inherit;\n font-variation-settings: inherit;\n letter-spacing: inherit;\n color: inherit;\n border-radius: 0;\n background-color: transparent;\n opacity: 1;\n }\n:where(select:is([multiple], [size])) optgroup {\n font-weight: bolder;\n }\n:where(select:is([multiple], [size])) optgroup option {\n padding-inline-start: 20px;\n }\n::file-selector-button {\n margin-inline-end: 4px;\n }\n::-moz-placeholder {\n opacity: 1;\n }\n::placeholder {\n opacity: 1;\n }\n@supports (not (-webkit-appearance: -apple-pay-button)) or (contain-intrinsic-size: 1px) {\n ::-moz-placeholder {\n color: currentcolor;\n @supports (color: color-mix(in lab, red, red)) {\n color: color-mix(in oklab, currentcolor 50%, transparent);\n }\n }\n ::placeholder {\n color: currentcolor;\n @supports (color: color-mix(in lab, red, red)) {\n color: color-mix(in oklab, currentcolor 50%, transparent);\n }\n }\n }\ntextarea {\n resize: vertical;\n }\n::-webkit-search-decoration {\n -webkit-appearance: none;\n }\n::-webkit-date-and-time-value {\n min-height: 1lh;\n text-align: inherit;\n }\n::-webkit-datetime-edit {\n display: inline-flex;\n }\n::-webkit-datetime-edit-fields-wrapper {\n padding: 0;\n }\n::-webkit-datetime-edit, ::-webkit-datetime-edit-year-field, ::-webkit-datetime-edit-month-field, ::-webkit-datetime-edit-day-field, ::-webkit-datetime-edit-hour-field, ::-webkit-datetime-edit-minute-field, ::-webkit-datetime-edit-second-field, ::-webkit-datetime-edit-millisecond-field, ::-webkit-datetime-edit-meridiem-field {\n padding-block: 0;\n }\n:-moz-ui-invalid {\n box-shadow: none;\n }\nbutton, input:where([type=\"button\"], [type=\"reset\"], [type=\"submit\"]), ::file-selector-button {\n -webkit-appearance: button;\n -moz-appearance: button;\n appearance: button;\n }\n::-webkit-inner-spin-button, ::-webkit-outer-spin-button {\n height: auto;\n }\n[hidden]:where(:not([hidden=\"until-found\"])) {\n display: none !important;\n }\n.\\@container\\/card-header {\n container-type: inline-size;\n container-name: card-header;\n }\n.pointer-events-none {\n pointer-events: none;\n }\n.sr-only {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n white-space: nowrap;\n border-width: 0;\n }\n.absolute {\n position: absolute;\n }\n.fixed {\n position: fixed;\n }\n.relative {\n position: relative;\n }\n.sticky {\n position: sticky;\n }\n.inset-0 {\n inset: calc(0.25rem * 0);\n inset: calc(var(--spacing) * 0);\n }\n.top-0 {\n top: calc(0.25rem * 0);\n top: calc(var(--spacing) * 0);\n }\n.top-1 {\n top: calc(0.25rem * 1);\n top: calc(var(--spacing) * 1);\n }\n.top-2 {\n top: calc(0.25rem * 2);\n top: calc(var(--spacing) * 2);\n }\n.top-7 {\n top: calc(0.25rem * 7);\n top: calc(var(--spacing) * 7);\n }\n.top-full {\n top: 100%;\n }\n.right-0 {\n right: calc(0.25rem * 0);\n right: calc(var(--spacing) * 0);\n }\n.right-2 {\n right: calc(0.25rem * 2);\n right: calc(var(--spacing) * 2);\n }\n.right-3 {\n right: calc(0.25rem * 3);\n right: calc(var(--spacing) * 3);\n }\n.right-10 {\n right: calc(0.25rem * 10);\n right: calc(var(--spacing) * 10);\n }\n.bottom-0 {\n bottom: calc(0.25rem * 0);\n bottom: calc(var(--spacing) * 0);\n }\n.left-0 {\n left: calc(0.25rem * 0);\n left: calc(var(--spacing) * 0);\n }\n.left-1 {\n left: calc(0.25rem * 1);\n left: calc(var(--spacing) * 1);\n }\n.left-1\\/2 {\n left: calc(1/2 * 100%);\n }\n.left-2 {\n left: calc(0.25rem * 2);\n left: calc(var(--spacing) * 2);\n }\n.\\!z-\\[9999\\] {\n z-index: 9999 !important;\n }\n.z-2 {\n z-index: 2;\n }\n.z-10 {\n z-index: 10;\n }\n.z-50 {\n z-index: 50;\n }\n.z-\\[9999\\] {\n z-index: 9999;\n }\n.col-start-2 {\n grid-column-start: 2;\n }\n.row-span-2 {\n grid-row: span 2 / span 2;\n }\n.row-start-1 {\n grid-row-start: 1;\n }\n.container {\n width: 100%;\n max-width: 40rem;\n max-width: 48rem;\n max-width: 64rem;\n max-width: 80rem;\n max-width: 96rem\n }\n.-m-0 {\n margin: calc(0.25rem * -0);\n margin: calc(var(--spacing) * -0);\n }\n.-m-0\\.5 {\n margin: calc(0.25rem * -0.5);\n margin: calc(var(--spacing) * -0.5);\n }\n.m-0 {\n margin: calc(0.25rem * 0);\n margin: calc(var(--spacing) * 0);\n }\n.m-6 {\n margin: calc(0.25rem * 6);\n margin: calc(var(--spacing) * 6);\n }\n.-mx-1 {\n margin-inline: calc(0.25rem * -1);\n margin-inline: calc(var(--spacing) * -1);\n }\n.mx-auto {\n margin-inline: auto;\n }\n.my-0 {\n margin-block: calc(0.25rem * 0);\n margin-block: calc(var(--spacing) * 0);\n }\n.my-0\\.5 {\n margin-block: calc(0.25rem * 0.5);\n margin-block: calc(var(--spacing) * 0.5);\n }\n.my-1 {\n margin-block: calc(0.25rem * 1);\n margin-block: calc(var(--spacing) * 1);\n }\n.my-4 {\n margin-block: calc(0.25rem * 4);\n margin-block: calc(var(--spacing) * 4);\n }\n.my-6 {\n margin-block: calc(0.25rem * 6);\n margin-block: calc(var(--spacing) * 6);\n }\n.mt-1 {\n margin-top: calc(0.25rem * 1);\n margin-top: calc(var(--spacing) * 1);\n }\n.mt-2 {\n margin-top: calc(0.25rem * 2);\n margin-top: calc(var(--spacing) * 2);\n }\n.mt-4 {\n margin-top: calc(0.25rem * 4);\n margin-top: calc(var(--spacing) * 4);\n }\n.mt-auto {\n margin-top: auto;\n }\n.mr-1 {\n margin-right: calc(0.25rem * 1);\n margin-right: calc(var(--spacing) * 1);\n }\n.mr-2 {\n margin-right: calc(0.25rem * 2);\n margin-right: calc(var(--spacing) * 2);\n }\n.mb-1 {\n margin-bottom: calc(0.25rem * 1);\n margin-bottom: calc(var(--spacing) * 1);\n }\n.mb-2 {\n margin-bottom: calc(0.25rem * 2);\n margin-bottom: calc(var(--spacing) * 2);\n }\n.mb-3 {\n margin-bottom: calc(0.25rem * 3);\n margin-bottom: calc(var(--spacing) * 3);\n }\n.mb-4 {\n margin-bottom: calc(0.25rem * 4);\n margin-bottom: calc(var(--spacing) * 4);\n }\n.mb-6 {\n margin-bottom: calc(0.25rem * 6);\n margin-bottom: calc(var(--spacing) * 6);\n }\n.mb-8 {\n margin-bottom: calc(0.25rem * 8);\n margin-bottom: calc(var(--spacing) * 8);\n }\n.ml-1 {\n margin-left: calc(0.25rem * 1);\n margin-left: calc(var(--spacing) * 1);\n }\n.ml-1\\.5 {\n margin-left: calc(0.25rem * 1.5);\n margin-left: calc(var(--spacing) * 1.5);\n }\n.ml-2 {\n margin-left: calc(0.25rem * 2);\n margin-left: calc(var(--spacing) * 2);\n }\n.ml-2\\.5 {\n margin-left: calc(0.25rem * 2.5);\n margin-left: calc(var(--spacing) * 2.5);\n }\n.ml-auto {\n margin-left: auto;\n }\n.block {\n display: block;\n }\n.flex {\n display: flex;\n }\n.grid {\n display: grid;\n }\n.hidden {\n display: none;\n }\n.inline {\n display: inline;\n }\n.inline-block {\n display: inline-block;\n }\n.inline-flex {\n display: inline-flex;\n }\n.table {\n display: table;\n }\n.table-caption {\n display: table-caption;\n }\n.table-cell {\n display: table-cell;\n }\n.table-row {\n display: table-row;\n }\n.field-sizing-content {\n field-sizing: content;\n }\n.aspect-auto {\n aspect-ratio: auto;\n }\n.aspect-video {\n aspect-ratio: 16 / 9;\n aspect-ratio: var(--aspect-video);\n }\n.size-2 {\n width: calc(0.25rem * 2);\n width: calc(var(--spacing) * 2);\n height: calc(0.25rem * 2);\n height: calc(var(--spacing) * 2);\n }\n.size-2\\.5 {\n width: calc(0.25rem * 2.5);\n width: calc(var(--spacing) * 2.5);\n height: calc(0.25rem * 2.5);\n height: calc(var(--spacing) * 2.5);\n }\n.size-3 {\n width: calc(0.25rem * 3);\n width: calc(var(--spacing) * 3);\n height: calc(0.25rem * 3);\n height: calc(var(--spacing) * 3);\n }\n.size-3\\.5 {\n width: calc(0.25rem * 3.5);\n width: calc(var(--spacing) * 3.5);\n height: calc(0.25rem * 3.5);\n height: calc(var(--spacing) * 3.5);\n }\n.size-4 {\n width: calc(0.25rem * 4);\n width: calc(var(--spacing) * 4);\n height: calc(0.25rem * 4);\n height: calc(var(--spacing) * 4);\n }\n.size-9 {\n width: calc(0.25rem * 9);\n width: calc(var(--spacing) * 9);\n height: calc(0.25rem * 9);\n height: calc(var(--spacing) * 9);\n }\n.size-full {\n width: 100%;\n height: 100%;\n }\n.h-2 {\n height: calc(0.25rem * 2);\n height: calc(var(--spacing) * 2);\n }\n.h-2\\.5 {\n height: calc(0.25rem * 2.5);\n height: calc(var(--spacing) * 2.5);\n }\n.h-3 {\n height: calc(0.25rem * 3);\n height: calc(var(--spacing) * 3);\n }\n.h-4 {\n height: calc(0.25rem * 4);\n height: calc(var(--spacing) * 4);\n }\n.h-5 {\n height: calc(0.25rem * 5);\n height: calc(var(--spacing) * 5);\n }\n.h-6 {\n height: calc(0.25rem * 6);\n height: calc(var(--spacing) * 6);\n }\n.h-8 {\n height: calc(0.25rem * 8);\n height: calc(var(--spacing) * 8);\n }\n.h-9 {\n height: calc(0.25rem * 9);\n height: calc(var(--spacing) * 9);\n }\n.h-10 {\n height: calc(0.25rem * 10);\n height: calc(var(--spacing) * 10);\n }\n.h-12 {\n height: calc(0.25rem * 12);\n height: calc(var(--spacing) * 12);\n }\n.h-20 {\n height: calc(0.25rem * 20);\n height: calc(var(--spacing) * 20);\n }\n.h-28 {\n height: calc(0.25rem * 28);\n height: calc(var(--spacing) * 28);\n }\n.h-30 {\n height: calc(0.25rem * 30);\n height: calc(var(--spacing) * 30);\n }\n.h-35 {\n height: calc(0.25rem * 35);\n height: calc(var(--spacing) * 35);\n }\n.h-40 {\n height: calc(0.25rem * 40);\n height: calc(var(--spacing) * 40);\n }\n.h-50 {\n height: calc(0.25rem * 50);\n height: calc(var(--spacing) * 50);\n }\n.h-\\[38px\\] {\n height: 38px;\n }\n.h-\\[250px\\] {\n height: 250px;\n }\n.h-\\[258px\\] {\n height: 258px;\n }\n.h-auto {\n height: auto;\n }\n.h-fit {\n height: -moz-fit-content;\n height: fit-content;\n }\n.h-full {\n height: 100%;\n }\n.h-px {\n height: 1px;\n }\n.max-h-48 {\n max-height: calc(0.25rem * 48);\n max-height: calc(var(--spacing) * 48);\n }\n.max-h-64 {\n max-height: calc(0.25rem * 64);\n max-height: calc(var(--spacing) * 64);\n }\n.max-h-\\[90vh\\] {\n max-height: 90vh;\n }\n.max-h-\\[calc\\(90vh-160px\\)\\] {\n max-height: calc(90vh - 160px);\n }\n.min-h-16 {\n min-height: calc(0.25rem * 16);\n min-height: calc(var(--spacing) * 16);\n }\n.min-h-\\[45vh\\] {\n min-height: 45vh;\n }\n.min-h-\\[100px\\] {\n min-height: 100px;\n }\n.w-0 {\n width: calc(0.25rem * 0);\n width: calc(var(--spacing) * 0);\n }\n.w-1 {\n width: calc(0.25rem * 1);\n width: calc(var(--spacing) * 1);\n }\n.w-1\\/3 {\n width: calc(1/3 * 100%);\n }\n.w-1\\/6 {\n width: calc(1/6 * 100%);\n }\n.w-2 {\n width: calc(0.25rem * 2);\n width: calc(var(--spacing) * 2);\n }\n.w-2\\.5 {\n width: calc(0.25rem * 2.5);\n width: calc(var(--spacing) * 2.5);\n }\n.w-3 {\n width: calc(0.25rem * 3);\n width: calc(var(--spacing) * 3);\n }\n.w-4 {\n width: calc(0.25rem * 4);\n width: calc(var(--spacing) * 4);\n }\n.w-4\\/5 {\n width: calc(4/5 * 100%);\n }\n.w-6 {\n width: calc(0.25rem * 6);\n width: calc(var(--spacing) * 6);\n }\n.w-12 {\n width: calc(0.25rem * 12);\n width: calc(var(--spacing) * 12);\n }\n.w-56 {\n width: calc(0.25rem * 56);\n width: calc(var(--spacing) * 56);\n }\n.w-64 {\n width: calc(0.25rem * 64);\n width: calc(var(--spacing) * 64);\n }\n.w-72 {\n width: calc(0.25rem * 72);\n width: calc(var(--spacing) * 72);\n }\n.w-80 {\n width: calc(0.25rem * 80);\n width: calc(var(--spacing) * 80);\n }\n.w-\\[280px\\] {\n width: 280px;\n }\n.w-\\[320px\\] {\n width: 320px;\n }\n.w-\\[380px\\] {\n width: 380px;\n }\n.w-\\[481px\\] {\n width: 481px;\n }\n.w-\\[640px\\] {\n width: 640px;\n }\n.w-auto {\n width: auto;\n }\n.w-fit {\n width: -moz-fit-content;\n width: fit-content;\n }\n.w-full {\n width: 100%;\n }\n.max-w-2xl {\n max-width: 42rem;\n max-width: var(--container-2xl);\n }\n.max-w-\\[200px\\] {\n max-width: 200px;\n }\n.max-w-\\[320px\\] {\n max-width: 320px;\n }\n.max-w-full {\n max-width: 100%;\n }\n.max-w-md {\n max-width: 28rem;\n max-width: var(--container-md);\n }\n.min-w-0 {\n min-width: calc(0.25rem * 0);\n min-width: calc(var(--spacing) * 0);\n }\n.min-w-\\[8rem\\] {\n min-width: 8rem;\n }\n.flex-1 {\n flex: 1;\n }\n.flex-shrink {\n flex-shrink: 1;\n }\n.flex-shrink-0 {\n flex-shrink: 0;\n }\n.shrink-0 {\n flex-shrink: 0;\n }\n.flex-grow {\n flex-grow: 1;\n }\n.caption-bottom {\n caption-side: bottom;\n }\n.border-collapse {\n border-collapse: collapse;\n }\n.origin-\\(--radix-hover-card-content-transform-origin\\) {\n transform-origin: var(--radix-hover-card-content-transform-origin);\n }\n.origin-\\[var\\(--radix-tooltip-content-transform-origin\\)\\] {\n transform-origin: var(--radix-tooltip-content-transform-origin);\n }\n.-translate-x-1 {\n --tw-translate-x: calc(var(--spacing) * -1);\n translate: calc(0.25rem * -1) var(--tw-translate-y);\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n.-translate-x-1\\/2 {\n --tw-translate-x: calc(calc(1/2 * 100%) * -1);\n translate: calc(calc(1/2 * 100%) * -1) var(--tw-translate-y);\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n.-translate-y-1 {\n --tw-translate-y: calc(var(--spacing) * -1);\n translate: var(--tw-translate-x) calc(0.25rem * -1);\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n.-translate-y-1\\/2 {\n --tw-translate-y: calc(calc(1/2 * 100%) * -1);\n translate: var(--tw-translate-x) calc(calc(1/2 * 100%) * -1);\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n.-translate-y-2 {\n --tw-translate-y: calc(var(--spacing) * -2);\n translate: var(--tw-translate-x) calc(0.25rem * -2);\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n.-translate-y-\\[2px\\] {\n --tw-translate-y: calc(2px * -1);\n translate: var(--tw-translate-x) calc(2px * -1);\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n.rotate-45 {\n rotate: 45deg;\n }\n.rotate-180 {\n rotate: 180deg;\n }\n.transform {\n transform: ;\n transform: var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,);\n }\n.animate-pulse {\n animation: pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite;\n animation: var(--animate-pulse);\n }\n.animate-spin {\n animation: spin 1s linear infinite;\n animation: var(--animate-spin);\n }\n.cursor-default {\n cursor: default;\n }\n.cursor-not-allowed {\n cursor: not-allowed;\n }\n.cursor-pointer {\n cursor: pointer;\n }\n.touch-none {\n touch-action: none;\n }\n.resize {\n resize: both;\n }\n.scroll-my-1 {\n scroll-margin-block: calc(0.25rem * 1);\n scroll-margin-block: calc(var(--spacing) * 1);\n }\n.list-disc {\n list-style-type: disc;\n }\n.auto-rows-min {\n grid-auto-rows: min-content;\n }\n.grid-rows-\\[auto_auto\\] {\n grid-template-rows: auto auto;\n }\n.flex-col {\n flex-direction: column;\n }\n.flex-row {\n flex-direction: row;\n }\n.flex-wrap {\n flex-wrap: wrap;\n }\n.items-center {\n align-items: center;\n }\n.items-end {\n align-items: flex-end;\n }\n.items-start {\n align-items: flex-start;\n }\n.items-stretch {\n align-items: stretch;\n }\n.justify-between {\n justify-content: space-between;\n }\n.justify-center {\n justify-content: center;\n }\n.justify-end {\n justify-content: flex-end;\n }\n.gap-1 {\n gap: calc(0.25rem * 1);\n gap: calc(var(--spacing) * 1);\n }\n.gap-1\\.5 {\n gap: calc(0.25rem * 1.5);\n gap: calc(var(--spacing) * 1.5);\n }\n.gap-2 {\n gap: calc(0.25rem * 2);\n gap: calc(var(--spacing) * 2);\n }\n.gap-3 {\n gap: calc(0.25rem * 3);\n gap: calc(var(--spacing) * 3);\n }\n.gap-4 {\n gap: calc(0.25rem * 4);\n gap: calc(var(--spacing) * 4);\n }\n.gap-6 {\n gap: calc(0.25rem * 6);\n gap: calc(var(--spacing) * 6);\n }\n.space-y-2 {\n :where(& > :not(:last-child)) {\n --tw-space-y-reverse: 0;\n margin-block-start: calc(calc(0.25rem * 2) * 0);\n margin-block-start: calc(calc(var(--spacing) * 2) * var(--tw-space-y-reverse));\n margin-block-end: calc(calc(0.25rem * 2) * calc(1 - 0));\n margin-block-end: calc(calc(var(--spacing) * 2) * calc(1 - var(--tw-space-y-reverse)));\n }\n }\n.space-y-4 {\n :where(& > :not(:last-child)) {\n --tw-space-y-reverse: 0;\n margin-block-start: calc(calc(0.25rem * 4) * 0);\n margin-block-start: calc(calc(var(--spacing) * 4) * var(--tw-space-y-reverse));\n margin-block-end: calc(calc(0.25rem * 4) * calc(1 - 0));\n margin-block-end: calc(calc(var(--spacing) * 4) * calc(1 - var(--tw-space-y-reverse)));\n }\n }\n.space-x-2 {\n :where(& > :not(:last-child)) {\n --tw-space-x-reverse: 0;\n margin-inline-start: calc(calc(0.25rem * 2) * 0);\n margin-inline-start: calc(calc(var(--spacing) * 2) * var(--tw-space-x-reverse));\n margin-inline-end: calc(calc(0.25rem * 2) * calc(1 - 0));\n margin-inline-end: calc(calc(var(--spacing) * 2) * calc(1 - var(--tw-space-x-reverse)));\n }\n }\n.self-end {\n align-self: flex-end;\n }\n.self-start {\n align-self: flex-start;\n }\n.justify-self-end {\n justify-self: flex-end;\n }\n.truncate {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n.overflow-auto {\n overflow: auto;\n }\n.overflow-hidden {\n overflow: hidden;\n }\n.overflow-x-auto {\n overflow-x: auto;\n }\n.overflow-x-hidden {\n overflow-x: hidden;\n }\n.overflow-y-auto {\n overflow-y: auto;\n }\n.rounded {\n border-radius: 0.25rem;\n }\n.rounded-\\[2px\\] {\n border-radius: 2px;\n }\n.rounded-\\[4px\\] {\n border-radius: 4px;\n }\n.rounded-\\[16px\\] {\n border-radius: 16px;\n }\n.rounded-\\[inherit\\] {\n border-radius: inherit;\n }\n.rounded-full {\n border-radius: calc(infinity * 1px);\n }\n.rounded-lg {\n border-radius: 0.625rem;\n }\n.rounded-md {\n border-radius: calc(0.625rem - 2px);\n }\n.rounded-none {\n border-radius: 0;\n }\n.rounded-sm {\n border-radius: calc(0.625rem - 4px);\n }\n.rounded-xl {\n border-radius: calc(0.625rem + 4px);\n }\n.border {\n border-style: var(--tw-border-style);\n border-width: 1px;\n }\n.border-0 {\n border-style: var(--tw-border-style);\n border-width: 0px;\n }\n.border-\\[1\\.5px\\] {\n border-style: var(--tw-border-style);\n border-width: 1.5px;\n }\n.border-t {\n border-top-style: var(--tw-border-style);\n border-top-width: 1px;\n }\n.border-t-2 {\n border-top-style: var(--tw-border-style);\n border-top-width: 2px;\n }\n.border-b {\n border-bottom-style: var(--tw-border-style);\n border-bottom-width: 1px;\n }\n.border-b-2 {\n border-bottom-style: var(--tw-border-style);\n border-bottom-width: 2px;\n }\n.border-l {\n border-left-style: var(--tw-border-style);\n border-left-width: 1px;\n }\n.border-dashed {\n --tw-border-style: dashed;\n border-style: dashed;\n }\n.border-\\(--color-border\\) {\n border-color: oklch(0.922 0 0);\n border-color: var(--color-border);\n }\n.border-\\[\\#2A44D4\\] {\n border-color: #2A44D4;\n }\n.border-\\[\\#D4D5DE\\] {\n border-color: #D4D5DE;\n }\n.border-border {\n border-color: oklch(0.922 0 0);\n }\n.border-border\\/50 {\n border-color: color-mix(in oklab, oklch(0.922 0 0) 50%, transparent);\n }\n.border-gray-200 {\n border-color: oklch(92.8% 0.006 264.531);\n border-color: var(--color-gray-200);\n }\n.border-gray-300 {\n border-color: oklch(87.2% 0.01 258.338);\n border-color: var(--color-gray-300);\n }\n.border-input {\n border-color: oklch(0.922 0 0);\n }\n.border-purple-600 {\n border-color: oklch(55.8% 0.288 302.321);\n border-color: var(--color-purple-600);\n }\n.border-red-200 {\n border-color: oklch(88.5% 0.062 18.334);\n border-color: var(--color-red-200);\n }\n.border-t-transparent {\n border-top-color: transparent;\n }\n.border-l-transparent {\n border-left-color: transparent;\n }\n.bg-\\(--color-bg\\) {\n background-color: var(--color-bg);\n }\n.bg-\\[\\#2A44D4\\] {\n background-color: #2A44D4;\n }\n.bg-\\[\\#EAECFB\\] {\n background-color: #EAECFB;\n }\n.bg-\\[\\#F9F9FE\\] {\n background-color: #F9F9FE;\n }\n.bg-accent {\n background-color: oklch(0.97 0 0);\n }\n.bg-background {\n background-color: oklch(1 0 0);\n }\n.bg-black {\n background-color: #000;\n background-color: var(--color-black);\n }\n.bg-black\\/10 {\n background-color: color-mix(in srgb, #000 10%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, #000 10%, transparent);\n background-color: color-mix(in oklab, var(--color-black) 10%, transparent);\n }\n }\n.bg-blue-600 {\n background-color: oklch(54.6% 0.245 262.881);\n background-color: var(--color-blue-600);\n }\n.bg-border {\n background-color: oklch(0.922 0 0);\n }\n.bg-destructive {\n background-color: oklch(0.577 0.245 27.325);\n }\n.bg-gray-50 {\n background-color: oklch(98.5% 0.002 247.839);\n background-color: var(--color-gray-50);\n }\n.bg-gray-300 {\n background-color: oklch(87.2% 0.01 258.338);\n background-color: var(--color-gray-300);\n }\n.bg-gray-400 {\n background-color: oklch(70.7% 0.022 261.325);\n background-color: var(--color-gray-400);\n }\n.bg-gray-500 {\n background-color: oklch(55.1% 0.027 264.364);\n background-color: var(--color-gray-500);\n }\n.bg-green-300 {\n background-color: oklch(87.1% 0.15 154.449);\n background-color: var(--color-green-300);\n }\n.bg-muted {\n background-color: oklch(0.97 0 0);\n }\n.bg-muted\\/50 {\n background-color: color-mix(in oklab, oklch(0.97 0 0) 50%, transparent);\n }\n.bg-pink-50 {\n background-color: oklch(97.1% 0.014 343.198);\n background-color: var(--color-pink-50);\n }\n.bg-popover {\n background-color: oklch(1 0 0);\n }\n.bg-primary {\n background-color: oklch(0.205 0 0);\n }\n.bg-red-50 {\n background-color: oklch(97.1% 0.013 17.38);\n background-color: var(--color-red-50);\n }\n.bg-red-100 {\n background-color: oklch(93.6% 0.032 17.717);\n background-color: var(--color-red-100);\n }\n.bg-secondary {\n background-color: oklch(0.97 0 0);\n }\n.bg-slate-100 {\n background-color: oklch(96.8% 0.007 247.896);\n background-color: var(--color-slate-100);\n }\n.bg-transparent {\n background-color: transparent;\n }\n.bg-white {\n background-color: #fff;\n background-color: var(--color-white);\n }\n.fill-primary {\n fill: oklch(0.205 0 0);\n }\n.p-0 {\n padding: calc(0.25rem * 0);\n padding: calc(var(--spacing) * 0);\n }\n.p-0\\.5 {\n padding: calc(0.25rem * 0.5);\n padding: calc(var(--spacing) * 0.5);\n }\n.p-1 {\n padding: calc(0.25rem * 1);\n padding: calc(var(--spacing) * 1);\n }\n.p-2 {\n padding: calc(0.25rem * 2);\n padding: calc(var(--spacing) * 2);\n }\n.p-3 {\n padding: calc(0.25rem * 3);\n padding: calc(var(--spacing) * 3);\n }\n.p-4 {\n padding: calc(0.25rem * 4);\n padding: calc(var(--spacing) * 4);\n }\n.p-6 {\n padding: calc(0.25rem * 6);\n padding: calc(var(--spacing) * 6);\n }\n.p-\\[1em\\] {\n padding: 1em;\n }\n.p-px {\n padding: 1px;\n }\n.px-1 {\n padding-inline: calc(0.25rem * 1);\n padding-inline: calc(var(--spacing) * 1);\n }\n.px-2 {\n padding-inline: calc(0.25rem * 2);\n padding-inline: calc(var(--spacing) * 2);\n }\n.px-2\\.5 {\n padding-inline: calc(0.25rem * 2.5);\n padding-inline: calc(var(--spacing) * 2.5);\n }\n.px-3 {\n padding-inline: calc(0.25rem * 3);\n padding-inline: calc(var(--spacing) * 3);\n }\n.px-4 {\n padding-inline: calc(0.25rem * 4);\n padding-inline: calc(var(--spacing) * 4);\n }\n.px-6 {\n padding-inline: calc(0.25rem * 6);\n padding-inline: calc(var(--spacing) * 6);\n }\n.px-\\[1em\\] {\n padding-inline: 1em;\n }\n.py-1 {\n padding-block: calc(0.25rem * 1);\n padding-block: calc(var(--spacing) * 1);\n }\n.py-1\\.5 {\n padding-block: calc(0.25rem * 1.5);\n padding-block: calc(var(--spacing) * 1.5);\n }\n.py-2 {\n padding-block: calc(0.25rem * 2);\n padding-block: calc(var(--spacing) * 2);\n }\n.py-3 {\n padding-block: calc(0.25rem * 3);\n padding-block: calc(var(--spacing) * 3);\n }\n.py-6 {\n padding-block: calc(0.25rem * 6);\n padding-block: calc(var(--spacing) * 6);\n }\n.py-8 {\n padding-block: calc(0.25rem * 8);\n padding-block: calc(var(--spacing) * 8);\n }\n.py-12 {\n padding-block: calc(0.25rem * 12);\n padding-block: calc(var(--spacing) * 12);\n }\n.py-16 {\n padding-block: calc(0.25rem * 16);\n padding-block: calc(var(--spacing) * 16);\n }\n.py-\\[11px\\] {\n padding-block: 11px;\n }\n.pt-1 {\n padding-top: calc(0.25rem * 1);\n padding-top: calc(var(--spacing) * 1);\n }\n.pt-2 {\n padding-top: calc(0.25rem * 2);\n padding-top: calc(var(--spacing) * 2);\n }\n.pt-3 {\n padding-top: calc(0.25rem * 3);\n padding-top: calc(var(--spacing) * 3);\n }\n.pr-8 {\n padding-right: calc(0.25rem * 8);\n padding-right: calc(var(--spacing) * 8);\n }\n.pr-16 {\n padding-right: calc(0.25rem * 16);\n padding-right: calc(var(--spacing) * 16);\n }\n.pb-3 {\n padding-bottom: calc(0.25rem * 3);\n padding-bottom: calc(var(--spacing) * 3);\n }\n.pb-4 {\n padding-bottom: calc(0.25rem * 4);\n padding-bottom: calc(var(--spacing) * 4);\n }\n.pl-1 {\n padding-left: calc(0.25rem * 1);\n padding-left: calc(var(--spacing) * 1);\n }\n.pl-2 {\n padding-left: calc(0.25rem * 2);\n padding-left: calc(var(--spacing) * 2);\n }\n.pl-4 {\n padding-left: calc(0.25rem * 4);\n padding-left: calc(var(--spacing) * 4);\n }\n.text-center {\n text-align: center;\n }\n.text-left {\n text-align: left;\n }\n.align-middle {\n vertical-align: middle;\n }\n.font-mono {\n font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\",\n \"Courier New\", monospace;\n font-family: var(--font-mono);\n }\n.text-2xl {\n font-size: 1.5rem;\n font-size: var(--text-2xl);\n line-height: calc(2 / 1.5);\n line-height: var(--tw-leading, var(--text-2xl--line-height));\n }\n.text-3xl {\n font-size: 1.875rem;\n font-size: var(--text-3xl);\n line-height: calc(2.25 / 1.875);\n line-height: var(--tw-leading, var(--text-3xl--line-height));\n }\n.text-4xl {\n font-size: 2.25rem;\n font-size: var(--text-4xl);\n line-height: calc(2.5 / 2.25);\n line-height: var(--tw-leading, var(--text-4xl--line-height));\n }\n.text-5xl {\n font-size: 3rem;\n font-size: var(--text-5xl);\n line-height: 1;\n line-height: var(--tw-leading, var(--text-5xl--line-height));\n }\n.text-base {\n font-size: 1rem;\n font-size: var(--text-base);\n line-height: calc(1.5 / 1);\n line-height: var(--tw-leading, var(--text-base--line-height));\n }\n.text-lg {\n font-size: 1.125rem;\n font-size: var(--text-lg);\n line-height: calc(1.75 / 1.125);\n line-height: var(--tw-leading, var(--text-lg--line-height));\n }\n.text-sm {\n font-size: 0.875rem;\n font-size: var(--text-sm);\n line-height: calc(1.25 / 0.875);\n line-height: var(--tw-leading, var(--text-sm--line-height));\n }\n.text-xl {\n font-size: 1.25rem;\n font-size: var(--text-xl);\n line-height: calc(1.75 / 1.25);\n line-height: var(--tw-leading, var(--text-xl--line-height));\n }\n.text-xs {\n font-size: 0.75rem;\n font-size: var(--text-xs);\n line-height: calc(1 / 0.75);\n line-height: var(--tw-leading, var(--text-xs--line-height));\n }\n.text-\\[0\\.8rem\\] {\n font-size: 0.8rem;\n }\n.leading-4 {\n --tw-leading: calc(var(--spacing) * 4);\n line-height: calc(0.25rem * 4);\n line-height: calc(var(--spacing) * 4);\n }\n.leading-\\[2\\.5rem\\] {\n --tw-leading: 2.5rem;\n line-height: 2.5rem;\n }\n.leading-\\[2rem\\] {\n --tw-leading: 2rem;\n line-height: 2rem;\n }\n.leading-\\[3rem\\] {\n --tw-leading: 3rem;\n line-height: 3rem;\n }\n.leading-\\[4rem\\] {\n --tw-leading: 4rem;\n line-height: 4rem;\n }\n.leading-none {\n --tw-leading: 1;\n line-height: 1;\n }\n.leading-relaxed {\n --tw-leading: var(--leading-relaxed);\n line-height: 1.625;\n line-height: var(--leading-relaxed);\n }\n.font-bold {\n --tw-font-weight: var(--font-weight-bold);\n font-weight: 700;\n font-weight: var(--font-weight-bold);\n }\n.font-medium {\n --tw-font-weight: var(--font-weight-medium);\n font-weight: 500;\n font-weight: var(--font-weight-medium);\n }\n.font-semibold {\n --tw-font-weight: var(--font-weight-semibold);\n font-weight: 600;\n font-weight: var(--font-weight-semibold);\n }\n.text-balance {\n text-wrap: balance;\n }\n.text-wrap {\n text-wrap: wrap;\n }\n.break-all {\n word-break: break-all;\n }\n.whitespace-normal {\n white-space: normal;\n }\n.whitespace-nowrap {\n white-space: nowrap;\n }\n.whitespace-pre-wrap {\n white-space: pre-wrap;\n }\n.text-\\[\\#020D21\\] {\n color: #020D21;\n }\n.text-\\[\\#263DBF\\] {\n color: #263DBF;\n }\n.text-\\[\\#687387\\] {\n color: #687387;\n }\n.text-black {\n color: #000;\n color: var(--color-black);\n }\n.text-blue-500 {\n color: oklch(62.3% 0.214 259.815);\n color: var(--color-blue-500);\n }\n.text-blue-600 {\n color: oklch(54.6% 0.245 262.881);\n color: var(--color-blue-600);\n }\n.text-card-foreground {\n color: oklch(0.145 0 0);\n }\n.text-current {\n color: currentcolor;\n }\n.text-foreground {\n color: oklch(0.145 0 0);\n }\n.text-gray-400 {\n color: oklch(70.7% 0.022 261.325);\n color: var(--color-gray-400);\n }\n.text-gray-500 {\n color: oklch(55.1% 0.027 264.364);\n color: var(--color-gray-500);\n }\n.text-gray-600 {\n color: oklch(44.6% 0.03 256.802);\n color: var(--color-gray-600);\n }\n.text-gray-700 {\n color: oklch(37.3% 0.034 259.733);\n color: var(--color-gray-700);\n }\n.text-gray-800 {\n color: oklch(27.8% 0.033 256.848);\n color: var(--color-gray-800);\n }\n.text-gray-900 {\n color: oklch(21% 0.034 264.665);\n color: var(--color-gray-900);\n }\n.text-green-600 {\n color: oklch(62.7% 0.194 149.214);\n color: var(--color-green-600);\n }\n.text-muted-foreground {\n color: oklch(0.556 0 0);\n }\n.text-pink-900 {\n color: oklch(40.8% 0.153 2.432);\n color: var(--color-pink-900);\n }\n.text-popover-foreground {\n color: oklch(0.145 0 0);\n }\n.text-primary {\n color: oklch(0.205 0 0);\n }\n.text-primary-foreground {\n color: oklch(0.985 0 0);\n }\n.text-red-600 {\n color: oklch(57.7% 0.245 27.325);\n color: var(--color-red-600);\n }\n.text-secondary-foreground {\n color: oklch(0.205 0 0);\n }\n.text-white {\n color: #fff;\n color: var(--color-white);\n }\n.italic {\n font-style: italic;\n }\n.tabular-nums {\n --tw-numeric-spacing: tabular-nums;\n font-variant-numeric: tabular-nums ;\n font-variant-numeric: var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,);\n }\n.underline {\n text-decoration-line: underline;\n }\n.underline-offset-4 {\n text-underline-offset: 4px;\n }\n.opacity-50 {\n opacity: 50%;\n }\n.opacity-60 {\n opacity: 60%;\n }\n.shadow {\n --tw-shadow: 0 1px 3px 0 var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 1px 2px -1px var(--tw-shadow-color, rgb(0 0 0 / 0.1));\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), 0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1);\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n.shadow-\\[0px_8px_16px_-4px_rgba\\(0\\,0\\,0\\,0\\.1\\)\\] {\n --tw-shadow: 0px 8px 16px -4px var(--tw-shadow-color, rgba(0,0,0,0.1));\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), 0px 8px 16px -4px rgba(0,0,0,0.1);\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n.shadow-lg {\n --tw-shadow: 0 10px 15px -3px var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 4px 6px -4px var(--tw-shadow-color, rgb(0 0 0 / 0.1));\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1);\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n.shadow-md {\n --tw-shadow: 0 4px 6px -1px var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 2px 4px -2px var(--tw-shadow-color, rgb(0 0 0 / 0.1));\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1);\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n.shadow-none {\n --tw-shadow: 0 0 #0000;\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), 0 0 #0000;\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n.shadow-sm {\n --tw-shadow: 0 1px 3px 0 var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 1px 2px -1px var(--tw-shadow-color, rgb(0 0 0 / 0.1));\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), 0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1);\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n.shadow-xl {\n --tw-shadow: 0 20px 25px -5px var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 8px 10px -6px var(--tw-shadow-color, rgb(0 0 0 / 0.1));\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), 0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1);\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n.shadow-xs {\n --tw-shadow: 0 1px 2px 0 var(--tw-shadow-color, rgb(0 0 0 / 0.05));\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), 0 1px 2px 0 rgb(0 0 0 / 0.05);\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n.ring-1 {\n --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n.ring-2 {\n --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n.ring-black {\n --tw-ring-color: var(--color-black);\n }\n.ring-blue-500 {\n --tw-ring-color: var(--color-blue-500);\n }\n.ring-offset-background {\n --tw-ring-offset-color: oklch(1 0 0);\n }\n.outline-hidden {\n --tw-outline-style: none;\n outline-style: none;\n outline: 2px solid transparent;\n outline-offset: 2px\n }\n.outline {\n outline-style: var(--tw-outline-style);\n outline-width: 1px;\n }\n.filter {\n filter: ;\n 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,);\n }\n.transition {\n transition-property: color, background-color, border-color, outline-color, text-decoration-color, fill, stroke, --tw-gradient-from, --tw-gradient-via, --tw-gradient-to, opacity, box-shadow, transform, translate, scale, rotate, filter, -webkit-backdrop-filter, backdrop-filter, display, visibility, content-visibility, overlay, pointer-events;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));\n transition-duration: 150ms;\n transition-duration: var(--tw-duration, var(--default-transition-duration));\n }\n.transition-\\[color\\,box-shadow\\] {\n transition-property: color,box-shadow;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));\n transition-duration: 150ms;\n transition-duration: var(--tw-duration, var(--default-transition-duration));\n }\n.transition-all {\n transition-property: all;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));\n transition-duration: 150ms;\n transition-duration: var(--tw-duration, var(--default-transition-duration));\n }\n.transition-colors {\n transition-property: color, background-color, border-color, outline-color, text-decoration-color, fill, stroke, --tw-gradient-from, --tw-gradient-via, --tw-gradient-to;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));\n transition-duration: 150ms;\n transition-duration: var(--tw-duration, var(--default-transition-duration));\n }\n.transition-shadow {\n transition-property: box-shadow;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));\n transition-duration: 150ms;\n transition-duration: var(--tw-duration, var(--default-transition-duration));\n }\n.transition-transform {\n transition-property: transform, translate, scale, rotate;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));\n transition-duration: 150ms;\n transition-duration: var(--tw-duration, var(--default-transition-duration));\n }\n.transition-none {\n transition-property: none;\n }\n.duration-200 {\n --tw-duration: 200ms;\n transition-duration: 200ms;\n }\n.ease-in-out {\n --tw-ease: var(--ease-in-out);\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-timing-function: var(--ease-in-out);\n }\n.animate-in {\n animation-name: enter;\n animation-duration: 150ms;\n --tw-enter-opacity: initial;\n --tw-enter-scale: initial;\n --tw-enter-rotate: initial;\n --tw-enter-translate-x: initial;\n --tw-enter-translate-y: initial;\n }\n.outline-none {\n --tw-outline-style: none;\n outline-style: none;\n }\n.select-none {\n -webkit-user-select: none;\n -moz-user-select: none;\n user-select: none;\n }\n.duration-200 {\n animation-duration: 200ms;\n }\n.ease-in-out {\n animation-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n }\n.fade-in-0 {\n --tw-enter-opacity: 0;\n }\n.zoom-in-95 {\n --tw-enter-scale: .95;\n }\n.group-data-\\[disabled\\=true\\]\\:pointer-events-none {\n &:is(:where(.group)[data-disabled=\"true\"] *) {\n pointer-events: none;\n }\n }\n.group-data-\\[disabled\\=true\\]\\:opacity-50 {\n &:is(:where(.group)[data-disabled=\"true\"] *) {\n opacity: 50%;\n }\n }\n.peer-disabled\\:cursor-not-allowed {\n &:is(:where(.peer):disabled ~ *) {\n cursor: not-allowed;\n }\n }\n.peer-disabled\\:opacity-50 {\n &:is(:where(.peer):disabled ~ *) {\n opacity: 50%;\n }\n }\n.selection\\:bg-primary {\n & *::-moz-selection {\n background-color: oklch(0.205 0 0);\n }\n & *::selection {\n background-color: oklch(0.205 0 0);\n }\n &::-moz-selection {\n background-color: oklch(0.205 0 0);\n }\n &::selection {\n background-color: oklch(0.205 0 0);\n }\n }\n.selection\\:text-primary-foreground {\n & *::-moz-selection {\n color: oklch(0.985 0 0);\n }\n & *::selection {\n color: oklch(0.985 0 0);\n }\n &::-moz-selection {\n color: oklch(0.985 0 0);\n }\n &::selection {\n color: oklch(0.985 0 0);\n }\n }\n.file\\:inline-flex {\n &::file-selector-button {\n display: inline-flex;\n }\n }\n.file\\:h-7 {\n &::file-selector-button {\n height: calc(0.25rem * 7);\n height: calc(var(--spacing) * 7);\n }\n }\n.file\\:border-0 {\n &::file-selector-button {\n border-style: var(--tw-border-style);\n border-width: 0px;\n }\n }\n.file\\:bg-transparent {\n &::file-selector-button {\n background-color: transparent;\n }\n }\n.file\\:text-sm {\n &::file-selector-button {\n font-size: 0.875rem;\n font-size: var(--text-sm);\n line-height: calc(1.25 / 0.875);\n line-height: var(--tw-leading, var(--text-sm--line-height));\n }\n }\n.file\\:font-medium {\n &::file-selector-button {\n --tw-font-weight: var(--font-weight-medium);\n font-weight: 500;\n font-weight: var(--font-weight-medium);\n }\n }\n.file\\:text-foreground {\n &::file-selector-button {\n color: oklch(0.145 0 0);\n }\n }\n.placeholder\\:text-muted-foreground {\n &::-moz-placeholder {\n color: oklch(0.556 0 0);\n }\n &::placeholder {\n color: oklch(0.556 0 0);\n }\n }\n.hover\\:cursor-pointer {\n &:hover {\n cursor: pointer\n }\n }\n.hover\\:bg-\\[\\#2A44D4\\] {\n &:hover {\n background-color: #2A44D4\n }\n }\n.hover\\:bg-\\[\\#EAECFB\\] {\n &:hover {\n background-color: #EAECFB\n }\n }\n.hover\\:bg-accent {\n &:hover {\n background-color: oklch(0.97 0 0)\n }\n }\n.hover\\:bg-destructive\\/90 {\n &:hover {\n background-color: color-mix(in oklab, oklch(0.577 0.245 27.325) 90%, transparent)\n }\n }\n.hover\\:bg-gray-50 {\n &:hover {\n background-color: oklch(98.5% 0.002 247.839);\n background-color: var(--color-gray-50)\n }\n }\n.hover\\:bg-gray-100 {\n &:hover {\n background-color: oklch(96.7% 0.003 264.542);\n background-color: var(--color-gray-100)\n }\n }\n.hover\\:bg-muted\\/30 {\n &:hover {\n background-color: color-mix(in oklab, oklch(0.97 0 0) 30%, transparent)\n }\n }\n.hover\\:bg-muted\\/50 {\n &:hover {\n background-color: color-mix(in oklab, oklch(0.97 0 0) 50%, transparent)\n }\n }\n.hover\\:bg-primary\\/90 {\n &:hover {\n background-color: color-mix(in oklab, oklch(0.205 0 0) 90%, transparent)\n }\n }\n.hover\\:bg-red-200 {\n &:hover {\n background-color: oklch(88.5% 0.062 18.334);\n background-color: var(--color-red-200)\n }\n }\n.hover\\:bg-secondary\\/80 {\n &:hover {\n background-color: color-mix(in oklab, oklch(0.97 0 0) 80%, transparent)\n }\n }\n.hover\\:text-\\[\\#263DBF\\] {\n &:hover {\n color: #263DBF\n }\n }\n.hover\\:text-accent-foreground {\n &:hover {\n color: oklch(0.205 0 0)\n }\n }\n.hover\\:text-blue-600 {\n &:hover {\n color: oklch(54.6% 0.245 262.881);\n color: var(--color-blue-600)\n }\n }\n.hover\\:text-gray-600 {\n &:hover {\n color: oklch(44.6% 0.03 256.802);\n color: var(--color-gray-600)\n }\n }\n.hover\\:text-white {\n &:hover {\n color: #fff;\n color: var(--color-white)\n }\n }\n.hover\\:underline {\n &:hover {\n text-decoration-line: underline\n }\n }\n.focus\\:bg-blue-50 {\n &:focus {\n background-color: oklch(97% 0.014 254.604);\n background-color: var(--color-blue-50);\n }\n }\n.focus\\:ring-2 {\n &:focus {\n --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n }\n.focus\\:ring-blue-500 {\n &:focus {\n --tw-ring-color: var(--color-blue-500);\n }\n }\n.focus\\:outline-none {\n &:focus {\n --tw-outline-style: none;\n outline-style: none;\n }\n }\n.focus-visible\\:border-ring {\n &:focus-visible {\n border-color: oklch(0.708 0 0);\n }\n }\n.focus-visible\\:ring-2 {\n &:focus-visible {\n --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n }\n.focus-visible\\:ring-\\[3px\\] {\n &:focus-visible {\n --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n }\n.focus-visible\\:ring-destructive\\/20 {\n &:focus-visible {\n --tw-ring-color: color-mix(in oklab, oklch(0.577 0.245 27.325) 20%, transparent);\n }\n }\n.focus-visible\\:ring-ring {\n &:focus-visible {\n --tw-ring-color: oklch(0.708 0 0);\n }\n }\n.focus-visible\\:ring-ring\\/50 {\n &:focus-visible {\n --tw-ring-color: color-mix(in oklab, oklch(0.708 0 0) 50%, transparent);\n }\n }\n.focus-visible\\:ring-offset-2 {\n &:focus-visible {\n --tw-ring-offset-width: 2px;\n --tw-ring-offset-shadow: var(--tw-ring-inset,) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);\n }\n }\n.focus-visible\\:outline-none {\n &:focus-visible {\n --tw-outline-style: none;\n outline-style: none;\n }\n }\n.disabled\\:pointer-events-none {\n &:disabled {\n pointer-events: none;\n }\n }\n.disabled\\:cursor-not-allowed {\n &:disabled {\n cursor: not-allowed;\n }\n }\n.disabled\\:opacity-50 {\n &:disabled {\n opacity: 50%;\n }\n }\n.has-data-\\[slot\\=card-action\\]\\:grid-cols-\\[1fr_auto\\] {\n &:has(*[data-slot=\"card-action\"]) {\n grid-template-columns: 1fr auto;\n }\n }\n.has-\\[\\>svg\\]\\:px-2\\.5 {\n &:has(>svg) {\n padding-inline: calc(0.25rem * 2.5);\n padding-inline: calc(var(--spacing) * 2.5);\n }\n }\n.has-\\[\\>svg\\]\\:px-3 {\n &:has(>svg) {\n padding-inline: calc(0.25rem * 3);\n padding-inline: calc(var(--spacing) * 3);\n }\n }\n.has-\\[\\>svg\\]\\:px-4 {\n &:has(>svg) {\n padding-inline: calc(0.25rem * 4);\n padding-inline: calc(var(--spacing) * 4);\n }\n }\n.aria-invalid\\:border-destructive {\n &[aria-invalid=\"true\"] {\n border-color: oklch(0.577 0.245 27.325);\n }\n }\n.aria-invalid\\:ring-destructive\\/20 {\n &[aria-invalid=\"true\"] {\n --tw-ring-color: color-mix(in oklab, oklch(0.577 0.245 27.325) 20%, transparent);\n }\n }\n.data-\\[orientation\\=horizontal\\]\\:h-px {\n &[data-orientation=\"horizontal\"] {\n height: 1px;\n }\n }\n.data-\\[orientation\\=horizontal\\]\\:w-full {\n &[data-orientation=\"horizontal\"] {\n width: 100%;\n }\n }\n.data-\\[orientation\\=vertical\\]\\:h-full {\n &[data-orientation=\"vertical\"] {\n height: 100%;\n }\n }\n.data-\\[orientation\\=vertical\\]\\:w-px {\n &[data-orientation=\"vertical\"] {\n width: 1px;\n }\n }\n.data-\\[side\\=bottom\\]\\:slide-in-from-top-2 {\n &[data-side=\"bottom\"] {\n --tw-enter-translate-y: -0.5rem;\n }\n }\n.data-\\[side\\=left\\]\\:slide-in-from-right-2 {\n &[data-side=\"left\"] {\n --tw-enter-translate-x: 0.5rem;\n }\n }\n.data-\\[side\\=right\\]\\:slide-in-from-left-2 {\n &[data-side=\"right\"] {\n --tw-enter-translate-x: -0.5rem;\n }\n }\n.data-\\[side\\=top\\]\\:slide-in-from-bottom-2 {\n &[data-side=\"top\"] {\n --tw-enter-translate-y: 0.5rem;\n }\n }\n.data-\\[state\\=active\\]\\:rounded-md {\n &[data-state=\"active\"] {\n border-radius: calc(0.625rem - 2px);\n }\n }\n.data-\\[state\\=active\\]\\:border {\n &[data-state=\"active\"] {\n border-style: var(--tw-border-style);\n border-width: 1px;\n }\n }\n.data-\\[state\\=active\\]\\:border-solid {\n &[data-state=\"active\"] {\n --tw-border-style: solid;\n border-style: solid;\n }\n }\n.data-\\[state\\=active\\]\\:border-\\[\\#2A44D4\\] {\n &[data-state=\"active\"] {\n border-color: #2A44D4;\n }\n }\n.data-\\[state\\=active\\]\\:bg-\\[\\#EAECFB\\] {\n &[data-state=\"active\"] {\n background-color: #EAECFB;\n }\n }\n.data-\\[state\\=active\\]\\:bg-background {\n &[data-state=\"active\"] {\n background-color: oklch(1 0 0);\n }\n }\n.data-\\[state\\=active\\]\\:text-\\[\\#263DBF\\] {\n &[data-state=\"active\"] {\n color: #263DBF;\n }\n }\n.data-\\[state\\=active\\]\\:text-foreground {\n &[data-state=\"active\"] {\n color: oklch(0.145 0 0);\n }\n }\n.data-\\[state\\=active\\]\\:shadow {\n &[data-state=\"active\"] {\n --tw-shadow: 0 1px 3px 0 var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 1px 2px -1px var(--tw-shadow-color, rgb(0 0 0 / 0.1));\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), 0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1);\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n }\n.data-\\[state\\=active\\]\\:shadow-none {\n &[data-state=\"active\"] {\n --tw-shadow: 0 0 #0000;\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), 0 0 #0000;\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n }\n.data-\\[state\\=checked\\]\\:border-primary {\n &[data-state=\"checked\"] {\n border-color: oklch(0.205 0 0);\n }\n }\n.data-\\[state\\=checked\\]\\:bg-primary {\n &[data-state=\"checked\"] {\n background-color: oklch(0.205 0 0);\n }\n }\n.data-\\[state\\=checked\\]\\:text-primary-foreground {\n &[data-state=\"checked\"] {\n color: oklch(0.985 0 0);\n }\n }\n.data-\\[state\\=closed\\]\\:animate-out {\n &[data-state=\"closed\"] {\n animation-name: exit;\n animation-duration: 150ms;\n --tw-exit-opacity: initial;\n --tw-exit-scale: initial;\n --tw-exit-rotate: initial;\n --tw-exit-translate-x: initial;\n --tw-exit-translate-y: initial;\n }\n }\n.data-\\[state\\=closed\\]\\:fade-out-0 {\n &[data-state=\"closed\"] {\n --tw-exit-opacity: 0;\n }\n }\n.data-\\[state\\=closed\\]\\:zoom-out-95 {\n &[data-state=\"closed\"] {\n --tw-exit-scale: .95;\n }\n }\n.data-\\[state\\=open\\]\\:animate-in {\n &[data-state=\"open\"] {\n animation-name: enter;\n animation-duration: 150ms;\n --tw-enter-opacity: initial;\n --tw-enter-scale: initial;\n --tw-enter-rotate: initial;\n --tw-enter-translate-x: initial;\n --tw-enter-translate-y: initial;\n }\n }\n.data-\\[state\\=open\\]\\:fade-in-0 {\n &[data-state=\"open\"] {\n --tw-enter-opacity: 0;\n }\n }\n.data-\\[state\\=open\\]\\:zoom-in-95 {\n &[data-state=\"open\"] {\n --tw-enter-scale: .95;\n }\n }\n.data-\\[state\\=selected\\]\\:bg-muted {\n &[data-state=\"selected\"] {\n background-color: oklch(0.97 0 0);\n }\n }\n.md\\:text-sm {\n font-size: 0.875rem;\n font-size: var(--text-sm);\n line-height: calc(1.25 / 0.875);\n line-height: var(--tw-leading, var(--text-sm--line-height))\n }\n.dark\\:border-input {\n border-color: oklch(0.922 0 0)\n }\n.dark\\:bg-destructive\\/60 {\n background-color: color-mix(in oklab, oklch(0.577 0.245 27.325) 60%, transparent)\n }\n.dark\\:bg-input\\/30 {\n background-color: color-mix(in oklab, oklch(0.922 0 0) 30%, transparent)\n }\n.dark\\:hover\\:bg-accent\\/50 {\n &:hover {\n background-color: color-mix(in oklab, oklch(0.97 0 0) 50%, transparent)\n }\n }\n.dark\\:hover\\:bg-input\\/50 {\n &:hover {\n background-color: color-mix(in oklab, oklch(0.922 0 0) 50%, transparent)\n }\n }\n.dark\\:focus-visible\\:ring-destructive\\/40 {\n &:focus-visible {\n --tw-ring-color: color-mix(in oklab, oklch(0.577 0.245 27.325) 40%, transparent);\n }\n }\n.dark\\:aria-invalid\\:ring-destructive\\/40 {\n &[aria-invalid=\"true\"] {\n --tw-ring-color: color-mix(in oklab, oklch(0.577 0.245 27.325) 40%, transparent);\n }\n }\n.dark\\:data-\\[state\\=checked\\]\\:bg-primary {\n &[data-state=\"checked\"] {\n background-color: oklch(0.205 0 0);\n }\n }\n.\\[\\&_\\.recharts-cartesian-axis-tick_text\\]\\:fill-muted-foreground {\n & .recharts-cartesian-axis-tick text {\n fill: oklch(0.556 0 0);\n }\n }\n.\\[\\&_\\.recharts-cartesian-grid_line\\[stroke\\=\\'\\#ccc\\'\\]\\]\\:stroke-border\\/50 {\n & .recharts-cartesian-grid line[stroke='#ccc'] {\n stroke: color-mix(in oklab, oklch(0.922 0 0) 50%, transparent);\n }\n }\n.\\[\\&_\\.recharts-curve\\.recharts-tooltip-cursor\\]\\:stroke-border {\n & .recharts-curve.recharts-tooltip-cursor {\n stroke: oklch(0.922 0 0);\n }\n }\n.\\[\\&_\\.recharts-dot\\[stroke\\=\\'\\#fff\\'\\]\\]\\:stroke-transparent {\n & .recharts-dot[stroke='#fff'] {\n stroke: transparent;\n }\n }\n.\\[\\&_\\.recharts-layer\\]\\:outline-hidden {\n & .recharts-layer {\n --tw-outline-style: none;\n outline-style: none;\n outline: 2px solid transparent;\n outline-offset: 2px\n }\n }\n.\\[\\&_\\.recharts-polar-grid_\\[stroke\\=\\'\\#ccc\\'\\]\\]\\:stroke-border {\n & .recharts-polar-grid [stroke='#ccc'] {\n stroke: oklch(0.922 0 0);\n }\n }\n.\\[\\&_\\.recharts-radial-bar-background-sector\\]\\:fill-muted {\n & .recharts-radial-bar-background-sector {\n fill: oklch(0.97 0 0);\n }\n }\n.\\[\\&_\\.recharts-rectangle\\.recharts-tooltip-cursor\\]\\:fill-muted {\n & .recharts-rectangle.recharts-tooltip-cursor {\n fill: oklch(0.97 0 0);\n }\n }\n.\\[\\&_\\.recharts-reference-line_\\[stroke\\=\\'\\#ccc\\'\\]\\]\\:stroke-border {\n & .recharts-reference-line [stroke='#ccc'] {\n stroke: oklch(0.922 0 0);\n }\n }\n.\\[\\&_\\.recharts-sector\\]\\:outline-hidden {\n & .recharts-sector {\n --tw-outline-style: none;\n outline-style: none;\n outline: 2px solid transparent;\n outline-offset: 2px\n }\n }\n.\\[\\&_\\.recharts-sector\\[stroke\\=\\'\\#fff\\'\\]\\]\\:stroke-transparent {\n & .recharts-sector[stroke='#fff'] {\n stroke: transparent;\n }\n }\n.\\[\\&_\\.recharts-surface\\]\\:outline-hidden {\n & .recharts-surface {\n --tw-outline-style: none;\n outline-style: none;\n outline: 2px solid transparent;\n outline-offset: 2px\n }\n }\n.\\[\\&_svg\\]\\:pointer-events-none {\n & svg {\n pointer-events: none;\n }\n }\n.\\[\\&_svg\\]\\:shrink-0 {\n & svg {\n flex-shrink: 0;\n }\n }\n.\\[\\&_svg\\:not\\(\\[class\\*\\=\\'size-\\'\\]\\)\\]\\:size-4 {\n & svg:not([class*='size-']) {\n width: calc(0.25rem * 4);\n width: calc(var(--spacing) * 4);\n height: calc(0.25rem * 4);\n height: calc(var(--spacing) * 4);\n }\n }\n.\\[\\&_tr\\]\\:border-b {\n & tr {\n border-bottom-style: var(--tw-border-style);\n border-bottom-width: 1px;\n }\n }\n.\\[\\&_tr\\:last-child\\]\\:border-0 {\n & tr:last-child {\n border-style: var(--tw-border-style);\n border-width: 0px;\n }\n }\n.\\[\\&\\:has\\(\\[role\\=checkbox\\]\\)\\]\\:pr-0 {\n &:has([role=checkbox]) {\n padding-right: calc(0.25rem * 0);\n padding-right: calc(var(--spacing) * 0);\n }\n }\n.\\[\\.border-b\\]\\:pb-6 {\n &:is(.border-b) {\n padding-bottom: calc(0.25rem * 6);\n padding-bottom: calc(var(--spacing) * 6);\n }\n }\n.\\[\\&\\>\\[role\\=checkbox\\]\\]\\:translate-y-\\[2px\\] {\n &>[role=checkbox] {\n --tw-translate-y: 2px;\n translate: var(--tw-translate-x) 2px;\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n }\n.\\[\\&\\>svg\\]\\:h-2\\.5 {\n &>svg {\n height: calc(0.25rem * 2.5);\n height: calc(var(--spacing) * 2.5);\n }\n }\n.\\[\\&\\>svg\\]\\:h-3 {\n &>svg {\n height: calc(0.25rem * 3);\n height: calc(var(--spacing) * 3);\n }\n }\n.\\[\\&\\>svg\\]\\:w-2\\.5 {\n &>svg {\n width: calc(0.25rem * 2.5);\n width: calc(var(--spacing) * 2.5);\n }\n }\n.\\[\\&\\>svg\\]\\:w-3 {\n &>svg {\n width: calc(0.25rem * 3);\n width: calc(var(--spacing) * 3);\n }\n }\n.\\[\\&\\>svg\\]\\:text-muted-foreground {\n &>svg {\n color: oklch(0.556 0 0);\n }\n }\n.\\[\\&\\>tr\\]\\:last\\:border-b-0 {\n &>tr {\n &:last-child {\n border-bottom-style: var(--tw-border-style);\n border-bottom-width: 0px;\n }\n }\n }\n@keyframes enter {\n from {\n opacity: 1;\n opacity: var(--tw-enter-opacity, 1);\n transform: translate3d(0, 0, 0) scale3d(1, 1, 1) rotate(0);\n 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));\n }\n}\n@keyframes exit {\n to {\n opacity: 1;\n opacity: var(--tw-exit-opacity, 1);\n transform: translate3d(0, 0, 0) scale3d(1, 1, 1) rotate(0);\n 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));\n }\n}\n@property --tw-translate-x {\n syntax: \"*\";\n inherits: false;\n initial-value: 0;\n}\n@property --tw-translate-y {\n syntax: \"*\";\n inherits: false;\n initial-value: 0;\n}\n@property --tw-translate-z {\n syntax: \"*\";\n inherits: false;\n initial-value: 0;\n}\n@property --tw-rotate-x {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-rotate-y {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-rotate-z {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-skew-x {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-skew-y {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-space-y-reverse {\n syntax: \"*\";\n inherits: false;\n initial-value: 0;\n}\n@property --tw-space-x-reverse {\n syntax: \"*\";\n inherits: false;\n initial-value: 0;\n}\n@property --tw-border-style {\n syntax: \"*\";\n inherits: false;\n initial-value: solid;\n}\n@property --tw-leading {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-font-weight {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-ordinal {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-slashed-zero {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-numeric-figure {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-numeric-spacing {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-numeric-fraction {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-shadow {\n syntax: \"*\";\n inherits: false;\n initial-value: 0 0 #0000;\n}\n@property --tw-shadow-color {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-shadow-alpha {\n syntax: \"<percentage>\";\n inherits: false;\n initial-value: 100%;\n}\n@property --tw-inset-shadow {\n syntax: \"*\";\n inherits: false;\n initial-value: 0 0 #0000;\n}\n@property --tw-inset-shadow-color {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-inset-shadow-alpha {\n syntax: \"<percentage>\";\n inherits: false;\n initial-value: 100%;\n}\n@property --tw-ring-color {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-ring-shadow {\n syntax: \"*\";\n inherits: false;\n initial-value: 0 0 #0000;\n}\n@property --tw-inset-ring-color {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-inset-ring-shadow {\n syntax: \"*\";\n inherits: false;\n initial-value: 0 0 #0000;\n}\n@property --tw-ring-inset {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-ring-offset-width {\n syntax: \"<length>\";\n inherits: false;\n initial-value: 0px;\n}\n@property --tw-ring-offset-color {\n syntax: \"*\";\n inherits: false;\n initial-value: #fff;\n}\n@property --tw-ring-offset-shadow {\n syntax: \"*\";\n inherits: false;\n initial-value: 0 0 #0000;\n}\n@property --tw-outline-style {\n syntax: \"*\";\n inherits: false;\n initial-value: solid;\n}\n@property --tw-blur {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-brightness {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-contrast {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-grayscale {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-hue-rotate {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-invert {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-opacity {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-saturate {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-sepia {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-drop-shadow {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-drop-shadow-color {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-drop-shadow-alpha {\n syntax: \"<percentage>\";\n inherits: false;\n initial-value: 100%;\n}\n@property --tw-drop-shadow-size {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-duration {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-ease {\n syntax: \"*\";\n inherits: false;\n}\n@keyframes spin {\n to {\n transform: rotate(360deg);\n }\n}\n@keyframes pulse {\n 50% {\n opacity: 0.5;\n }\n}\n@supports ((-webkit-hyphens: none) and (not (margin-trim: inline))) or ((-moz-orient: inline) and (not (color:rgb(from red r g b)))) {\n *, ::before, ::after, ::backdrop {\n --tw-translate-x: 0;\n --tw-translate-y: 0;\n --tw-translate-z: 0;\n --tw-rotate-x: initial;\n --tw-rotate-y: initial;\n --tw-rotate-z: initial;\n --tw-skew-x: initial;\n --tw-skew-y: initial;\n --tw-space-y-reverse: 0;\n --tw-space-x-reverse: 0;\n --tw-border-style: solid;\n --tw-leading: initial;\n --tw-font-weight: initial;\n --tw-ordinal: initial;\n --tw-slashed-zero: initial;\n --tw-numeric-figure: initial;\n --tw-numeric-spacing: initial;\n --tw-numeric-fraction: initial;\n --tw-shadow: 0 0 #0000;\n --tw-shadow-color: initial;\n --tw-shadow-alpha: 100%;\n --tw-inset-shadow: 0 0 #0000;\n --tw-inset-shadow-color: initial;\n --tw-inset-shadow-alpha: 100%;\n --tw-ring-color: initial;\n --tw-ring-shadow: 0 0 #0000;\n --tw-inset-ring-color: initial;\n --tw-inset-ring-shadow: 0 0 #0000;\n --tw-ring-inset: initial;\n --tw-ring-offset-width: 0px;\n --tw-ring-offset-color: #fff;\n --tw-ring-offset-shadow: 0 0 #0000;\n --tw-outline-style: solid;\n --tw-blur: initial;\n --tw-brightness: initial;\n --tw-contrast: initial;\n --tw-grayscale: initial;\n --tw-hue-rotate: initial;\n --tw-invert: initial;\n --tw-opacity: initial;\n --tw-saturate: initial;\n --tw-sepia: initial;\n --tw-drop-shadow: initial;\n --tw-drop-shadow-color: initial;\n --tw-drop-shadow-alpha: 100%;\n --tw-drop-shadow-size: initial;\n --tw-duration: initial;\n --tw-ease: initial;\n }\n }\n";
1
+ export declare const tailwindCompiledCss = "/*! tailwindcss v4.1.7 | MIT License | https://tailwindcss.com */\n:root, :host {\n --font-sans: ui-sans-serif, system-ui, sans-serif, \"Apple Color Emoji\",\n \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\";\n --font-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\",\n \"Courier New\", monospace;\n --color-red-50: oklch(97.1% 0.013 17.38);\n --color-red-100: oklch(93.6% 0.032 17.717);\n --color-red-200: oklch(88.5% 0.062 18.334);\n --color-red-300: oklch(80.8% 0.114 19.571);\n --color-red-600: oklch(57.7% 0.245 27.325);\n --color-green-300: oklch(87.1% 0.15 154.449);\n --color-green-600: oklch(62.7% 0.194 149.214);\n --color-blue-50: oklch(97% 0.014 254.604);\n --color-blue-500: oklch(62.3% 0.214 259.815);\n --color-blue-600: oklch(54.6% 0.245 262.881);\n --color-blue-700: oklch(48.8% 0.243 264.376);\n --color-purple-600: oklch(55.8% 0.288 302.321);\n --color-pink-50: oklch(97.1% 0.014 343.198);\n --color-pink-900: oklch(40.8% 0.153 2.432);\n --color-slate-100: oklch(96.8% 0.007 247.896);\n --color-gray-50: oklch(98.5% 0.002 247.839);\n --color-gray-100: oklch(96.7% 0.003 264.542);\n --color-gray-200: oklch(92.8% 0.006 264.531);\n --color-gray-300: oklch(87.2% 0.01 258.338);\n --color-gray-400: oklch(70.7% 0.022 261.325);\n --color-gray-500: oklch(55.1% 0.027 264.364);\n --color-gray-600: oklch(44.6% 0.03 256.802);\n --color-gray-700: oklch(37.3% 0.034 259.733);\n --color-gray-800: oklch(27.8% 0.033 256.848);\n --color-gray-900: oklch(21% 0.034 264.665);\n --color-black: #000;\n --color-white: #fff;\n --spacing: 0.25rem;\n --container-md: 28rem;\n --container-2xl: 42rem;\n --text-xs: 0.75rem;\n --text-xs--line-height: calc(1 / 0.75);\n --text-sm: 0.875rem;\n --text-sm--line-height: calc(1.25 / 0.875);\n --text-base: 1rem;\n --text-base--line-height: calc(1.5 / 1);\n --text-lg: 1.125rem;\n --text-lg--line-height: calc(1.75 / 1.125);\n --text-xl: 1.25rem;\n --text-xl--line-height: calc(1.75 / 1.25);\n --text-2xl: 1.5rem;\n --text-2xl--line-height: calc(2 / 1.5);\n --text-3xl: 1.875rem;\n --text-3xl--line-height: calc(2.25 / 1.875);\n --text-4xl: 2.25rem;\n --text-4xl--line-height: calc(2.5 / 2.25);\n --text-5xl: 3rem;\n --text-5xl--line-height: 1;\n --font-weight-medium: 500;\n --font-weight-semibold: 600;\n --font-weight-bold: 700;\n --leading-relaxed: 1.625;\n --radius-sm: calc(0.625rem - 4px);\n --radius-md: calc(0.625rem - 2px);\n --radius-lg: 0.625rem;\n --radius-xl: calc(0.625rem + 4px);\n --ease-in-out: cubic-bezier(0.4, 0, 0.2, 1);\n --animate-spin: spin 1s linear infinite;\n --animate-pulse: pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite;\n --aspect-video: 16 / 9;\n --default-transition-duration: 150ms;\n --default-transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n --default-font-family: var(--font-sans);\n --default-mono-font-family: var(--font-mono);\n --color-border: oklch(0.922 0 0);\n }\n*, ::after, ::before, ::backdrop, ::file-selector-button {\n box-sizing: border-box;\n margin: 0;\n padding: 0;\n border: 0 solid;\n }\nhtml, :host {\n line-height: 1.5;\n -webkit-text-size-adjust: 100%;\n -moz-tab-size: 4;\n -o-tab-size: 4;\n tab-size: 4;\n font-family: ui-sans-serif, system-ui, sans-serif, \"Apple Color Emoji\",\n \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\";\n font-family: var(--default-font-family, ui-sans-serif, system-ui, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\");\n font-feature-settings: normal;\n font-feature-settings: var(--default-font-feature-settings, normal);\n font-variation-settings: normal;\n font-variation-settings: var(--default-font-variation-settings, normal);\n -webkit-tap-highlight-color: transparent;\n }\nhr {\n height: 0;\n color: inherit;\n border-top-width: 1px;\n }\nabbr:where([title]) {\n -webkit-text-decoration: underline dotted;\n text-decoration: underline dotted;\n }\nh1, h2, h3, h4, h5, h6 {\n font-size: inherit;\n font-weight: inherit;\n }\na {\n color: inherit;\n -webkit-text-decoration: inherit;\n text-decoration: inherit;\n }\nb, strong {\n font-weight: bolder;\n }\ncode, kbd, samp, pre {\n font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\",\n \"Courier New\", monospace;\n font-family: var(--default-mono-font-family, ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace);\n font-feature-settings: normal;\n font-feature-settings: var(--default-mono-font-feature-settings, normal);\n font-variation-settings: normal;\n font-variation-settings: var(--default-mono-font-variation-settings, normal);\n font-size: 1em;\n }\nsmall {\n font-size: 80%;\n }\nsub, sup {\n font-size: 75%;\n line-height: 0;\n position: relative;\n vertical-align: baseline;\n }\nsub {\n bottom: -0.25em;\n }\nsup {\n top: -0.5em;\n }\ntable {\n text-indent: 0;\n border-color: inherit;\n border-collapse: collapse;\n }\n:-moz-focusring {\n outline: auto;\n }\nprogress {\n vertical-align: baseline;\n }\nsummary {\n display: list-item;\n }\nol, ul, menu {\n list-style: none;\n }\nimg, svg, video, canvas, audio, iframe, embed, object {\n display: block;\n vertical-align: middle;\n }\nimg, video {\n max-width: 100%;\n height: auto;\n }\nbutton, input, select, optgroup, textarea, ::file-selector-button {\n font: inherit;\n font-feature-settings: inherit;\n font-variation-settings: inherit;\n letter-spacing: inherit;\n color: inherit;\n border-radius: 0;\n background-color: transparent;\n opacity: 1;\n }\n:where(select:is([multiple], [size])) optgroup {\n font-weight: bolder;\n }\n:where(select:is([multiple], [size])) optgroup option {\n padding-inline-start: 20px;\n }\n::file-selector-button {\n margin-inline-end: 4px;\n }\n::-moz-placeholder {\n opacity: 1;\n }\n::placeholder {\n opacity: 1;\n }\n@supports (not (-webkit-appearance: -apple-pay-button)) or (contain-intrinsic-size: 1px) {\n ::-moz-placeholder {\n color: currentcolor;\n @supports (color: color-mix(in lab, red, red)) {\n color: color-mix(in oklab, currentcolor 50%, transparent);\n }\n }\n ::placeholder {\n color: currentcolor;\n @supports (color: color-mix(in lab, red, red)) {\n color: color-mix(in oklab, currentcolor 50%, transparent);\n }\n }\n }\ntextarea {\n resize: vertical;\n }\n::-webkit-search-decoration {\n -webkit-appearance: none;\n }\n::-webkit-date-and-time-value {\n min-height: 1lh;\n text-align: inherit;\n }\n::-webkit-datetime-edit {\n display: inline-flex;\n }\n::-webkit-datetime-edit-fields-wrapper {\n padding: 0;\n }\n::-webkit-datetime-edit, ::-webkit-datetime-edit-year-field, ::-webkit-datetime-edit-month-field, ::-webkit-datetime-edit-day-field, ::-webkit-datetime-edit-hour-field, ::-webkit-datetime-edit-minute-field, ::-webkit-datetime-edit-second-field, ::-webkit-datetime-edit-millisecond-field, ::-webkit-datetime-edit-meridiem-field {\n padding-block: 0;\n }\n:-moz-ui-invalid {\n box-shadow: none;\n }\nbutton, input:where([type=\"button\"], [type=\"reset\"], [type=\"submit\"]), ::file-selector-button {\n -webkit-appearance: button;\n -moz-appearance: button;\n appearance: button;\n }\n::-webkit-inner-spin-button, ::-webkit-outer-spin-button {\n height: auto;\n }\n[hidden]:where(:not([hidden=\"until-found\"])) {\n display: none !important;\n }\n.\\@container\\/card-header {\n container-type: inline-size;\n container-name: card-header;\n }\n.pointer-events-none {\n pointer-events: none;\n }\n.sr-only {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n white-space: nowrap;\n border-width: 0;\n }\n.absolute {\n position: absolute;\n }\n.fixed {\n position: fixed;\n }\n.relative {\n position: relative;\n }\n.sticky {\n position: sticky;\n }\n.inset-0 {\n inset: calc(0.25rem * 0);\n inset: calc(var(--spacing) * 0);\n }\n.top-0 {\n top: calc(0.25rem * 0);\n top: calc(var(--spacing) * 0);\n }\n.top-1 {\n top: calc(0.25rem * 1);\n top: calc(var(--spacing) * 1);\n }\n.top-2 {\n top: calc(0.25rem * 2);\n top: calc(var(--spacing) * 2);\n }\n.top-4 {\n top: calc(0.25rem * 4);\n top: calc(var(--spacing) * 4);\n }\n.top-7 {\n top: calc(0.25rem * 7);\n top: calc(var(--spacing) * 7);\n }\n.top-full {\n top: 100%;\n }\n.right-0 {\n right: calc(0.25rem * 0);\n right: calc(var(--spacing) * 0);\n }\n.right-2 {\n right: calc(0.25rem * 2);\n right: calc(var(--spacing) * 2);\n }\n.right-3 {\n right: calc(0.25rem * 3);\n right: calc(var(--spacing) * 3);\n }\n.right-4 {\n right: calc(0.25rem * 4);\n right: calc(var(--spacing) * 4);\n }\n.right-10 {\n right: calc(0.25rem * 10);\n right: calc(var(--spacing) * 10);\n }\n.bottom-0 {\n bottom: calc(0.25rem * 0);\n bottom: calc(var(--spacing) * 0);\n }\n.left-0 {\n left: calc(0.25rem * 0);\n left: calc(var(--spacing) * 0);\n }\n.left-1 {\n left: calc(0.25rem * 1);\n left: calc(var(--spacing) * 1);\n }\n.left-1\\/2 {\n left: calc(1/2 * 100%);\n }\n.left-2 {\n left: calc(0.25rem * 2);\n left: calc(var(--spacing) * 2);\n }\n.\\!z-\\[9999\\] {\n z-index: 9999 !important;\n }\n.z-2 {\n z-index: 2;\n }\n.z-10 {\n z-index: 10;\n }\n.z-50 {\n z-index: 50;\n }\n.z-\\[9999\\] {\n z-index: 9999;\n }\n.col-start-2 {\n grid-column-start: 2;\n }\n.row-span-2 {\n grid-row: span 2 / span 2;\n }\n.row-start-1 {\n grid-row-start: 1;\n }\n.container {\n width: 100%;\n max-width: 40rem;\n max-width: 48rem;\n max-width: 64rem;\n max-width: 80rem;\n max-width: 96rem\n }\n.-m-0 {\n margin: calc(0.25rem * -0);\n margin: calc(var(--spacing) * -0);\n }\n.-m-0\\.5 {\n margin: calc(0.25rem * -0.5);\n margin: calc(var(--spacing) * -0.5);\n }\n.m-0 {\n margin: calc(0.25rem * 0);\n margin: calc(var(--spacing) * 0);\n }\n.m-6 {\n margin: calc(0.25rem * 6);\n margin: calc(var(--spacing) * 6);\n }\n.-mx-1 {\n margin-inline: calc(0.25rem * -1);\n margin-inline: calc(var(--spacing) * -1);\n }\n.mx-auto {\n margin-inline: auto;\n }\n.my-0 {\n margin-block: calc(0.25rem * 0);\n margin-block: calc(var(--spacing) * 0);\n }\n.my-0\\.5 {\n margin-block: calc(0.25rem * 0.5);\n margin-block: calc(var(--spacing) * 0.5);\n }\n.my-1 {\n margin-block: calc(0.25rem * 1);\n margin-block: calc(var(--spacing) * 1);\n }\n.my-4 {\n margin-block: calc(0.25rem * 4);\n margin-block: calc(var(--spacing) * 4);\n }\n.my-6 {\n margin-block: calc(0.25rem * 6);\n margin-block: calc(var(--spacing) * 6);\n }\n.mt-1 {\n margin-top: calc(0.25rem * 1);\n margin-top: calc(var(--spacing) * 1);\n }\n.mt-2 {\n margin-top: calc(0.25rem * 2);\n margin-top: calc(var(--spacing) * 2);\n }\n.mt-4 {\n margin-top: calc(0.25rem * 4);\n margin-top: calc(var(--spacing) * 4);\n }\n.mt-auto {\n margin-top: auto;\n }\n.mr-1 {\n margin-right: calc(0.25rem * 1);\n margin-right: calc(var(--spacing) * 1);\n }\n.mr-2 {\n margin-right: calc(0.25rem * 2);\n margin-right: calc(var(--spacing) * 2);\n }\n.mb-1 {\n margin-bottom: calc(0.25rem * 1);\n margin-bottom: calc(var(--spacing) * 1);\n }\n.mb-2 {\n margin-bottom: calc(0.25rem * 2);\n margin-bottom: calc(var(--spacing) * 2);\n }\n.mb-3 {\n margin-bottom: calc(0.25rem * 3);\n margin-bottom: calc(var(--spacing) * 3);\n }\n.mb-4 {\n margin-bottom: calc(0.25rem * 4);\n margin-bottom: calc(var(--spacing) * 4);\n }\n.mb-6 {\n margin-bottom: calc(0.25rem * 6);\n margin-bottom: calc(var(--spacing) * 6);\n }\n.mb-8 {\n margin-bottom: calc(0.25rem * 8);\n margin-bottom: calc(var(--spacing) * 8);\n }\n.ml-1 {\n margin-left: calc(0.25rem * 1);\n margin-left: calc(var(--spacing) * 1);\n }\n.ml-1\\.5 {\n margin-left: calc(0.25rem * 1.5);\n margin-left: calc(var(--spacing) * 1.5);\n }\n.ml-2 {\n margin-left: calc(0.25rem * 2);\n margin-left: calc(var(--spacing) * 2);\n }\n.ml-2\\.5 {\n margin-left: calc(0.25rem * 2.5);\n margin-left: calc(var(--spacing) * 2.5);\n }\n.ml-3 {\n margin-left: calc(0.25rem * 3);\n margin-left: calc(var(--spacing) * 3);\n }\n.ml-auto {\n margin-left: auto;\n }\n.block {\n display: block;\n }\n.flex {\n display: flex;\n }\n.grid {\n display: grid;\n }\n.hidden {\n display: none;\n }\n.inline {\n display: inline;\n }\n.inline-block {\n display: inline-block;\n }\n.inline-flex {\n display: inline-flex;\n }\n.table {\n display: table;\n }\n.table-caption {\n display: table-caption;\n }\n.table-cell {\n display: table-cell;\n }\n.table-row {\n display: table-row;\n }\n.field-sizing-content {\n field-sizing: content;\n }\n.aspect-auto {\n aspect-ratio: auto;\n }\n.aspect-video {\n aspect-ratio: 16 / 9;\n aspect-ratio: var(--aspect-video);\n }\n.size-2 {\n width: calc(0.25rem * 2);\n width: calc(var(--spacing) * 2);\n height: calc(0.25rem * 2);\n height: calc(var(--spacing) * 2);\n }\n.size-2\\.5 {\n width: calc(0.25rem * 2.5);\n width: calc(var(--spacing) * 2.5);\n height: calc(0.25rem * 2.5);\n height: calc(var(--spacing) * 2.5);\n }\n.size-3 {\n width: calc(0.25rem * 3);\n width: calc(var(--spacing) * 3);\n height: calc(0.25rem * 3);\n height: calc(var(--spacing) * 3);\n }\n.size-3\\.5 {\n width: calc(0.25rem * 3.5);\n width: calc(var(--spacing) * 3.5);\n height: calc(0.25rem * 3.5);\n height: calc(var(--spacing) * 3.5);\n }\n.size-4 {\n width: calc(0.25rem * 4);\n width: calc(var(--spacing) * 4);\n height: calc(0.25rem * 4);\n height: calc(var(--spacing) * 4);\n }\n.size-9 {\n width: calc(0.25rem * 9);\n width: calc(var(--spacing) * 9);\n height: calc(0.25rem * 9);\n height: calc(var(--spacing) * 9);\n }\n.size-full {\n width: 100%;\n height: 100%;\n }\n.h-2 {\n height: calc(0.25rem * 2);\n height: calc(var(--spacing) * 2);\n }\n.h-2\\.5 {\n height: calc(0.25rem * 2.5);\n height: calc(var(--spacing) * 2.5);\n }\n.h-3 {\n height: calc(0.25rem * 3);\n height: calc(var(--spacing) * 3);\n }\n.h-4 {\n height: calc(0.25rem * 4);\n height: calc(var(--spacing) * 4);\n }\n.h-5 {\n height: calc(0.25rem * 5);\n height: calc(var(--spacing) * 5);\n }\n.h-6 {\n height: calc(0.25rem * 6);\n height: calc(var(--spacing) * 6);\n }\n.h-8 {\n height: calc(0.25rem * 8);\n height: calc(var(--spacing) * 8);\n }\n.h-9 {\n height: calc(0.25rem * 9);\n height: calc(var(--spacing) * 9);\n }\n.h-10 {\n height: calc(0.25rem * 10);\n height: calc(var(--spacing) * 10);\n }\n.h-12 {\n height: calc(0.25rem * 12);\n height: calc(var(--spacing) * 12);\n }\n.h-20 {\n height: calc(0.25rem * 20);\n height: calc(var(--spacing) * 20);\n }\n.h-28 {\n height: calc(0.25rem * 28);\n height: calc(var(--spacing) * 28);\n }\n.h-30 {\n height: calc(0.25rem * 30);\n height: calc(var(--spacing) * 30);\n }\n.h-35 {\n height: calc(0.25rem * 35);\n height: calc(var(--spacing) * 35);\n }\n.h-40 {\n height: calc(0.25rem * 40);\n height: calc(var(--spacing) * 40);\n }\n.h-50 {\n height: calc(0.25rem * 50);\n height: calc(var(--spacing) * 50);\n }\n.h-\\[38px\\] {\n height: 38px;\n }\n.h-\\[250px\\] {\n height: 250px;\n }\n.h-\\[258px\\] {\n height: 258px;\n }\n.h-\\[500px\\] {\n height: 500px;\n }\n.h-auto {\n height: auto;\n }\n.h-fit {\n height: -moz-fit-content;\n height: fit-content;\n }\n.h-full {\n height: 100%;\n }\n.h-px {\n height: 1px;\n }\n.max-h-48 {\n max-height: calc(0.25rem * 48);\n max-height: calc(var(--spacing) * 48);\n }\n.max-h-64 {\n max-height: calc(0.25rem * 64);\n max-height: calc(var(--spacing) * 64);\n }\n.max-h-\\[90vh\\] {\n max-height: 90vh;\n }\n.max-h-\\[calc\\(90vh-160px\\)\\] {\n max-height: calc(90vh - 160px);\n }\n.min-h-16 {\n min-height: calc(0.25rem * 16);\n min-height: calc(var(--spacing) * 16);\n }\n.min-h-\\[45vh\\] {\n min-height: 45vh;\n }\n.min-h-\\[100px\\] {\n min-height: 100px;\n }\n.min-h-\\[200px\\] {\n min-height: 200px;\n }\n.w-0 {\n width: calc(0.25rem * 0);\n width: calc(var(--spacing) * 0);\n }\n.w-1 {\n width: calc(0.25rem * 1);\n width: calc(var(--spacing) * 1);\n }\n.w-1\\/3 {\n width: calc(1/3 * 100%);\n }\n.w-1\\/6 {\n width: calc(1/6 * 100%);\n }\n.w-2 {\n width: calc(0.25rem * 2);\n width: calc(var(--spacing) * 2);\n }\n.w-2\\.5 {\n width: calc(0.25rem * 2.5);\n width: calc(var(--spacing) * 2.5);\n }\n.w-3 {\n width: calc(0.25rem * 3);\n width: calc(var(--spacing) * 3);\n }\n.w-4 {\n width: calc(0.25rem * 4);\n width: calc(var(--spacing) * 4);\n }\n.w-4\\/5 {\n width: calc(4/5 * 100%);\n }\n.w-6 {\n width: calc(0.25rem * 6);\n width: calc(var(--spacing) * 6);\n }\n.w-12 {\n width: calc(0.25rem * 12);\n width: calc(var(--spacing) * 12);\n }\n.w-56 {\n width: calc(0.25rem * 56);\n width: calc(var(--spacing) * 56);\n }\n.w-64 {\n width: calc(0.25rem * 64);\n width: calc(var(--spacing) * 64);\n }\n.w-72 {\n width: calc(0.25rem * 72);\n width: calc(var(--spacing) * 72);\n }\n.w-80 {\n width: calc(0.25rem * 80);\n width: calc(var(--spacing) * 80);\n }\n.w-\\[280px\\] {\n width: 280px;\n }\n.w-\\[320px\\] {\n width: 320px;\n }\n.w-\\[380px\\] {\n width: 380px;\n }\n.w-\\[481px\\] {\n width: 481px;\n }\n.w-\\[640px\\] {\n width: 640px;\n }\n.w-auto {\n width: auto;\n }\n.w-fit {\n width: -moz-fit-content;\n width: fit-content;\n }\n.w-full {\n width: 100%;\n }\n.max-w-2xl {\n max-width: 42rem;\n max-width: var(--container-2xl);\n }\n.max-w-\\[200px\\] {\n max-width: 200px;\n }\n.max-w-\\[320px\\] {\n max-width: 320px;\n }\n.max-w-full {\n max-width: 100%;\n }\n.max-w-md {\n max-width: 28rem;\n max-width: var(--container-md);\n }\n.min-w-0 {\n min-width: calc(0.25rem * 0);\n min-width: calc(var(--spacing) * 0);\n }\n.min-w-\\[8rem\\] {\n min-width: 8rem;\n }\n.min-w-\\[200px\\] {\n min-width: 200px;\n }\n.flex-1 {\n flex: 1;\n }\n.flex-shrink {\n flex-shrink: 1;\n }\n.flex-shrink-0 {\n flex-shrink: 0;\n }\n.shrink-0 {\n flex-shrink: 0;\n }\n.flex-grow {\n flex-grow: 1;\n }\n.caption-bottom {\n caption-side: bottom;\n }\n.border-collapse {\n border-collapse: collapse;\n }\n.origin-\\(--radix-hover-card-content-transform-origin\\) {\n transform-origin: var(--radix-hover-card-content-transform-origin);\n }\n.origin-\\[var\\(--radix-tooltip-content-transform-origin\\)\\] {\n transform-origin: var(--radix-tooltip-content-transform-origin);\n }\n.-translate-x-1 {\n --tw-translate-x: calc(var(--spacing) * -1);\n translate: calc(0.25rem * -1) var(--tw-translate-y);\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n.-translate-x-1\\/2 {\n --tw-translate-x: calc(calc(1/2 * 100%) * -1);\n translate: calc(calc(1/2 * 100%) * -1) var(--tw-translate-y);\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n.-translate-y-1 {\n --tw-translate-y: calc(var(--spacing) * -1);\n translate: var(--tw-translate-x) calc(0.25rem * -1);\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n.-translate-y-1\\/2 {\n --tw-translate-y: calc(calc(1/2 * 100%) * -1);\n translate: var(--tw-translate-x) calc(calc(1/2 * 100%) * -1);\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n.-translate-y-2 {\n --tw-translate-y: calc(var(--spacing) * -2);\n translate: var(--tw-translate-x) calc(0.25rem * -2);\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n.-translate-y-\\[2px\\] {\n --tw-translate-y: calc(2px * -1);\n translate: var(--tw-translate-x) calc(2px * -1);\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n.rotate-45 {\n rotate: 45deg;\n }\n.rotate-180 {\n rotate: 180deg;\n }\n.transform {\n transform: ;\n transform: var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,);\n }\n.animate-pulse {\n animation: pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite;\n animation: var(--animate-pulse);\n }\n.animate-spin {\n animation: spin 1s linear infinite;\n animation: var(--animate-spin);\n }\n.cursor-default {\n cursor: default;\n }\n.cursor-not-allowed {\n cursor: not-allowed;\n }\n.cursor-pointer {\n cursor: pointer;\n }\n.touch-none {\n touch-action: none;\n }\n.resize {\n resize: both;\n }\n.scroll-my-1 {\n scroll-margin-block: calc(0.25rem * 1);\n scroll-margin-block: calc(var(--spacing) * 1);\n }\n.list-disc {\n list-style-type: disc;\n }\n.auto-rows-min {\n grid-auto-rows: min-content;\n }\n.grid-rows-\\[auto_auto\\] {\n grid-template-rows: auto auto;\n }\n.flex-col {\n flex-direction: column;\n }\n.flex-row {\n flex-direction: row;\n }\n.flex-wrap {\n flex-wrap: wrap;\n }\n.items-center {\n align-items: center;\n }\n.items-end {\n align-items: flex-end;\n }\n.items-start {\n align-items: flex-start;\n }\n.items-stretch {\n align-items: stretch;\n }\n.justify-between {\n justify-content: space-between;\n }\n.justify-center {\n justify-content: center;\n }\n.justify-end {\n justify-content: flex-end;\n }\n.gap-1 {\n gap: calc(0.25rem * 1);\n gap: calc(var(--spacing) * 1);\n }\n.gap-1\\.5 {\n gap: calc(0.25rem * 1.5);\n gap: calc(var(--spacing) * 1.5);\n }\n.gap-2 {\n gap: calc(0.25rem * 2);\n gap: calc(var(--spacing) * 2);\n }\n.gap-3 {\n gap: calc(0.25rem * 3);\n gap: calc(var(--spacing) * 3);\n }\n.gap-4 {\n gap: calc(0.25rem * 4);\n gap: calc(var(--spacing) * 4);\n }\n.gap-6 {\n gap: calc(0.25rem * 6);\n gap: calc(var(--spacing) * 6);\n }\n.space-y-2 {\n :where(& > :not(:last-child)) {\n --tw-space-y-reverse: 0;\n margin-block-start: calc(calc(0.25rem * 2) * 0);\n margin-block-start: calc(calc(var(--spacing) * 2) * var(--tw-space-y-reverse));\n margin-block-end: calc(calc(0.25rem * 2) * calc(1 - 0));\n margin-block-end: calc(calc(var(--spacing) * 2) * calc(1 - var(--tw-space-y-reverse)));\n }\n }\n.space-y-3 {\n :where(& > :not(:last-child)) {\n --tw-space-y-reverse: 0;\n margin-block-start: calc(calc(0.25rem * 3) * 0);\n margin-block-start: calc(calc(var(--spacing) * 3) * var(--tw-space-y-reverse));\n margin-block-end: calc(calc(0.25rem * 3) * calc(1 - 0));\n margin-block-end: calc(calc(var(--spacing) * 3) * calc(1 - var(--tw-space-y-reverse)));\n }\n }\n.space-y-4 {\n :where(& > :not(:last-child)) {\n --tw-space-y-reverse: 0;\n margin-block-start: calc(calc(0.25rem * 4) * 0);\n margin-block-start: calc(calc(var(--spacing) * 4) * var(--tw-space-y-reverse));\n margin-block-end: calc(calc(0.25rem * 4) * calc(1 - 0));\n margin-block-end: calc(calc(var(--spacing) * 4) * calc(1 - var(--tw-space-y-reverse)));\n }\n }\n.space-x-2 {\n :where(& > :not(:last-child)) {\n --tw-space-x-reverse: 0;\n margin-inline-start: calc(calc(0.25rem * 2) * 0);\n margin-inline-start: calc(calc(var(--spacing) * 2) * var(--tw-space-x-reverse));\n margin-inline-end: calc(calc(0.25rem * 2) * calc(1 - 0));\n margin-inline-end: calc(calc(var(--spacing) * 2) * calc(1 - var(--tw-space-x-reverse)));\n }\n }\n.self-end {\n align-self: flex-end;\n }\n.self-start {\n align-self: flex-start;\n }\n.justify-self-end {\n justify-self: flex-end;\n }\n.truncate {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n.overflow-auto {\n overflow: auto;\n }\n.overflow-hidden {\n overflow: hidden;\n }\n.overflow-x-auto {\n overflow-x: auto;\n }\n.overflow-x-hidden {\n overflow-x: hidden;\n }\n.overflow-y-auto {\n overflow-y: auto;\n }\n.rounded {\n border-radius: 0.25rem;\n }\n.rounded-\\[2px\\] {\n border-radius: 2px;\n }\n.rounded-\\[4px\\] {\n border-radius: 4px;\n }\n.rounded-\\[16px\\] {\n border-radius: 16px;\n }\n.rounded-\\[inherit\\] {\n border-radius: inherit;\n }\n.rounded-full {\n border-radius: calc(infinity * 1px);\n }\n.rounded-lg {\n border-radius: 0.625rem;\n }\n.rounded-md {\n border-radius: calc(0.625rem - 2px);\n }\n.rounded-none {\n border-radius: 0;\n }\n.rounded-sm {\n border-radius: calc(0.625rem - 4px);\n }\n.rounded-xl {\n border-radius: calc(0.625rem + 4px);\n }\n.border {\n border-style: var(--tw-border-style);\n border-width: 1px;\n }\n.border-0 {\n border-style: var(--tw-border-style);\n border-width: 0px;\n }\n.border-\\[1\\.5px\\] {\n border-style: var(--tw-border-style);\n border-width: 1.5px;\n }\n.border-t {\n border-top-style: var(--tw-border-style);\n border-top-width: 1px;\n }\n.border-t-2 {\n border-top-style: var(--tw-border-style);\n border-top-width: 2px;\n }\n.border-b {\n border-bottom-style: var(--tw-border-style);\n border-bottom-width: 1px;\n }\n.border-b-2 {\n border-bottom-style: var(--tw-border-style);\n border-bottom-width: 2px;\n }\n.border-l {\n border-left-style: var(--tw-border-style);\n border-left-width: 1px;\n }\n.border-dashed {\n --tw-border-style: dashed;\n border-style: dashed;\n }\n.border-\\(--color-border\\) {\n border-color: oklch(0.922 0 0);\n border-color: var(--color-border);\n }\n.border-\\[\\#2A44D4\\] {\n border-color: #2A44D4;\n }\n.border-\\[\\#D4D5DE\\] {\n border-color: #D4D5DE;\n }\n.border-border {\n border-color: oklch(0.922 0 0);\n }\n.border-border\\/50 {\n border-color: color-mix(in oklab, oklch(0.922 0 0) 50%, transparent);\n }\n.border-gray-200 {\n border-color: oklch(92.8% 0.006 264.531);\n border-color: var(--color-gray-200);\n }\n.border-gray-300 {\n border-color: oklch(87.2% 0.01 258.338);\n border-color: var(--color-gray-300);\n }\n.border-input {\n border-color: oklch(0.922 0 0);\n }\n.border-purple-600 {\n border-color: oklch(55.8% 0.288 302.321);\n border-color: var(--color-purple-600);\n }\n.border-red-200 {\n border-color: oklch(88.5% 0.062 18.334);\n border-color: var(--color-red-200);\n }\n.border-t-transparent {\n border-top-color: transparent;\n }\n.border-l-transparent {\n border-left-color: transparent;\n }\n.bg-\\(--color-bg\\) {\n background-color: var(--color-bg);\n }\n.bg-\\[\\#2A44D4\\] {\n background-color: #2A44D4;\n }\n.bg-\\[\\#EAECFB\\] {\n background-color: #EAECFB;\n }\n.bg-\\[\\#F9F9FE\\] {\n background-color: #F9F9FE;\n }\n.bg-accent {\n background-color: oklch(0.97 0 0);\n }\n.bg-background {\n background-color: oklch(1 0 0);\n }\n.bg-black {\n background-color: #000;\n background-color: var(--color-black);\n }\n.bg-black\\/10 {\n background-color: color-mix(in srgb, #000 10%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, #000 10%, transparent);\n background-color: color-mix(in oklab, var(--color-black) 10%, transparent);\n }\n }\n.bg-blue-600 {\n background-color: oklch(54.6% 0.245 262.881);\n background-color: var(--color-blue-600);\n }\n.bg-border {\n background-color: oklch(0.922 0 0);\n }\n.bg-destructive {\n background-color: oklch(0.577 0.245 27.325);\n }\n.bg-gray-50 {\n background-color: oklch(98.5% 0.002 247.839);\n background-color: var(--color-gray-50);\n }\n.bg-gray-100 {\n background-color: oklch(96.7% 0.003 264.542);\n background-color: var(--color-gray-100);\n }\n.bg-gray-300 {\n background-color: oklch(87.2% 0.01 258.338);\n background-color: var(--color-gray-300);\n }\n.bg-gray-400 {\n background-color: oklch(70.7% 0.022 261.325);\n background-color: var(--color-gray-400);\n }\n.bg-gray-500 {\n background-color: oklch(55.1% 0.027 264.364);\n background-color: var(--color-gray-500);\n }\n.bg-green-300 {\n background-color: oklch(87.1% 0.15 154.449);\n background-color: var(--color-green-300);\n }\n.bg-muted {\n background-color: oklch(0.97 0 0);\n }\n.bg-muted\\/50 {\n background-color: color-mix(in oklab, oklch(0.97 0 0) 50%, transparent);\n }\n.bg-pink-50 {\n background-color: oklch(97.1% 0.014 343.198);\n background-color: var(--color-pink-50);\n }\n.bg-popover {\n background-color: oklch(1 0 0);\n }\n.bg-primary {\n background-color: oklch(0.205 0 0);\n }\n.bg-red-50 {\n background-color: oklch(97.1% 0.013 17.38);\n background-color: var(--color-red-50);\n }\n.bg-red-100 {\n background-color: oklch(93.6% 0.032 17.717);\n background-color: var(--color-red-100);\n }\n.bg-secondary {\n background-color: oklch(0.97 0 0);\n }\n.bg-slate-100 {\n background-color: oklch(96.8% 0.007 247.896);\n background-color: var(--color-slate-100);\n }\n.bg-transparent {\n background-color: transparent;\n }\n.bg-white {\n background-color: #fff;\n background-color: var(--color-white);\n }\n.fill-primary {\n fill: oklch(0.205 0 0);\n }\n.p-0 {\n padding: calc(0.25rem * 0);\n padding: calc(var(--spacing) * 0);\n }\n.p-0\\.5 {\n padding: calc(0.25rem * 0.5);\n padding: calc(var(--spacing) * 0.5);\n }\n.p-1 {\n padding: calc(0.25rem * 1);\n padding: calc(var(--spacing) * 1);\n }\n.p-2 {\n padding: calc(0.25rem * 2);\n padding: calc(var(--spacing) * 2);\n }\n.p-3 {\n padding: calc(0.25rem * 3);\n padding: calc(var(--spacing) * 3);\n }\n.p-4 {\n padding: calc(0.25rem * 4);\n padding: calc(var(--spacing) * 4);\n }\n.p-6 {\n padding: calc(0.25rem * 6);\n padding: calc(var(--spacing) * 6);\n }\n.p-\\[1em\\] {\n padding: 1em;\n }\n.p-px {\n padding: 1px;\n }\n.px-1 {\n padding-inline: calc(0.25rem * 1);\n padding-inline: calc(var(--spacing) * 1);\n }\n.px-2 {\n padding-inline: calc(0.25rem * 2);\n padding-inline: calc(var(--spacing) * 2);\n }\n.px-2\\.5 {\n padding-inline: calc(0.25rem * 2.5);\n padding-inline: calc(var(--spacing) * 2.5);\n }\n.px-3 {\n padding-inline: calc(0.25rem * 3);\n padding-inline: calc(var(--spacing) * 3);\n }\n.px-4 {\n padding-inline: calc(0.25rem * 4);\n padding-inline: calc(var(--spacing) * 4);\n }\n.px-6 {\n padding-inline: calc(0.25rem * 6);\n padding-inline: calc(var(--spacing) * 6);\n }\n.px-\\[1em\\] {\n padding-inline: 1em;\n }\n.py-1 {\n padding-block: calc(0.25rem * 1);\n padding-block: calc(var(--spacing) * 1);\n }\n.py-1\\.5 {\n padding-block: calc(0.25rem * 1.5);\n padding-block: calc(var(--spacing) * 1.5);\n }\n.py-2 {\n padding-block: calc(0.25rem * 2);\n padding-block: calc(var(--spacing) * 2);\n }\n.py-3 {\n padding-block: calc(0.25rem * 3);\n padding-block: calc(var(--spacing) * 3);\n }\n.py-6 {\n padding-block: calc(0.25rem * 6);\n padding-block: calc(var(--spacing) * 6);\n }\n.py-8 {\n padding-block: calc(0.25rem * 8);\n padding-block: calc(var(--spacing) * 8);\n }\n.py-12 {\n padding-block: calc(0.25rem * 12);\n padding-block: calc(var(--spacing) * 12);\n }\n.py-16 {\n padding-block: calc(0.25rem * 16);\n padding-block: calc(var(--spacing) * 16);\n }\n.py-\\[11px\\] {\n padding-block: 11px;\n }\n.pt-1 {\n padding-top: calc(0.25rem * 1);\n padding-top: calc(var(--spacing) * 1);\n }\n.pt-2 {\n padding-top: calc(0.25rem * 2);\n padding-top: calc(var(--spacing) * 2);\n }\n.pt-3 {\n padding-top: calc(0.25rem * 3);\n padding-top: calc(var(--spacing) * 3);\n }\n.pr-8 {\n padding-right: calc(0.25rem * 8);\n padding-right: calc(var(--spacing) * 8);\n }\n.pr-16 {\n padding-right: calc(0.25rem * 16);\n padding-right: calc(var(--spacing) * 16);\n }\n.pb-3 {\n padding-bottom: calc(0.25rem * 3);\n padding-bottom: calc(var(--spacing) * 3);\n }\n.pb-4 {\n padding-bottom: calc(0.25rem * 4);\n padding-bottom: calc(var(--spacing) * 4);\n }\n.pl-1 {\n padding-left: calc(0.25rem * 1);\n padding-left: calc(var(--spacing) * 1);\n }\n.pl-2 {\n padding-left: calc(0.25rem * 2);\n padding-left: calc(var(--spacing) * 2);\n }\n.pl-4 {\n padding-left: calc(0.25rem * 4);\n padding-left: calc(var(--spacing) * 4);\n }\n.text-center {\n text-align: center;\n }\n.text-left {\n text-align: left;\n }\n.align-middle {\n vertical-align: middle;\n }\n.font-mono {\n font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\",\n \"Courier New\", monospace;\n font-family: var(--font-mono);\n }\n.text-2xl {\n font-size: 1.5rem;\n font-size: var(--text-2xl);\n line-height: calc(2 / 1.5);\n line-height: var(--tw-leading, var(--text-2xl--line-height));\n }\n.text-3xl {\n font-size: 1.875rem;\n font-size: var(--text-3xl);\n line-height: calc(2.25 / 1.875);\n line-height: var(--tw-leading, var(--text-3xl--line-height));\n }\n.text-4xl {\n font-size: 2.25rem;\n font-size: var(--text-4xl);\n line-height: calc(2.5 / 2.25);\n line-height: var(--tw-leading, var(--text-4xl--line-height));\n }\n.text-5xl {\n font-size: 3rem;\n font-size: var(--text-5xl);\n line-height: 1;\n line-height: var(--tw-leading, var(--text-5xl--line-height));\n }\n.text-base {\n font-size: 1rem;\n font-size: var(--text-base);\n line-height: calc(1.5 / 1);\n line-height: var(--tw-leading, var(--text-base--line-height));\n }\n.text-lg {\n font-size: 1.125rem;\n font-size: var(--text-lg);\n line-height: calc(1.75 / 1.125);\n line-height: var(--tw-leading, var(--text-lg--line-height));\n }\n.text-sm {\n font-size: 0.875rem;\n font-size: var(--text-sm);\n line-height: calc(1.25 / 0.875);\n line-height: var(--tw-leading, var(--text-sm--line-height));\n }\n.text-xl {\n font-size: 1.25rem;\n font-size: var(--text-xl);\n line-height: calc(1.75 / 1.25);\n line-height: var(--tw-leading, var(--text-xl--line-height));\n }\n.text-xs {\n font-size: 0.75rem;\n font-size: var(--text-xs);\n line-height: calc(1 / 0.75);\n line-height: var(--tw-leading, var(--text-xs--line-height));\n }\n.text-\\[0\\.8rem\\] {\n font-size: 0.8rem;\n }\n.leading-4 {\n --tw-leading: calc(var(--spacing) * 4);\n line-height: calc(0.25rem * 4);\n line-height: calc(var(--spacing) * 4);\n }\n.leading-\\[2\\.5rem\\] {\n --tw-leading: 2.5rem;\n line-height: 2.5rem;\n }\n.leading-\\[2rem\\] {\n --tw-leading: 2rem;\n line-height: 2rem;\n }\n.leading-\\[3rem\\] {\n --tw-leading: 3rem;\n line-height: 3rem;\n }\n.leading-\\[4rem\\] {\n --tw-leading: 4rem;\n line-height: 4rem;\n }\n.leading-none {\n --tw-leading: 1;\n line-height: 1;\n }\n.leading-relaxed {\n --tw-leading: var(--leading-relaxed);\n line-height: 1.625;\n line-height: var(--leading-relaxed);\n }\n.font-bold {\n --tw-font-weight: var(--font-weight-bold);\n font-weight: 700;\n font-weight: var(--font-weight-bold);\n }\n.font-medium {\n --tw-font-weight: var(--font-weight-medium);\n font-weight: 500;\n font-weight: var(--font-weight-medium);\n }\n.font-semibold {\n --tw-font-weight: var(--font-weight-semibold);\n font-weight: 600;\n font-weight: var(--font-weight-semibold);\n }\n.text-balance {\n text-wrap: balance;\n }\n.text-wrap {\n text-wrap: wrap;\n }\n.break-words {\n overflow-wrap: break-word;\n }\n.break-all {\n word-break: break-all;\n }\n.whitespace-normal {\n white-space: normal;\n }\n.whitespace-nowrap {\n white-space: nowrap;\n }\n.whitespace-pre-wrap {\n white-space: pre-wrap;\n }\n.text-\\[\\#020D21\\] {\n color: #020D21;\n }\n.text-\\[\\#263DBF\\] {\n color: #263DBF;\n }\n.text-\\[\\#687387\\] {\n color: #687387;\n }\n.text-black {\n color: #000;\n color: var(--color-black);\n }\n.text-blue-500 {\n color: oklch(62.3% 0.214 259.815);\n color: var(--color-blue-500);\n }\n.text-blue-600 {\n color: oklch(54.6% 0.245 262.881);\n color: var(--color-blue-600);\n }\n.text-card-foreground {\n color: oklch(0.145 0 0);\n }\n.text-current {\n color: currentcolor;\n }\n.text-foreground {\n color: oklch(0.145 0 0);\n }\n.text-gray-400 {\n color: oklch(70.7% 0.022 261.325);\n color: var(--color-gray-400);\n }\n.text-gray-500 {\n color: oklch(55.1% 0.027 264.364);\n color: var(--color-gray-500);\n }\n.text-gray-600 {\n color: oklch(44.6% 0.03 256.802);\n color: var(--color-gray-600);\n }\n.text-gray-700 {\n color: oklch(37.3% 0.034 259.733);\n color: var(--color-gray-700);\n }\n.text-gray-800 {\n color: oklch(27.8% 0.033 256.848);\n color: var(--color-gray-800);\n }\n.text-gray-900 {\n color: oklch(21% 0.034 264.665);\n color: var(--color-gray-900);\n }\n.text-green-600 {\n color: oklch(62.7% 0.194 149.214);\n color: var(--color-green-600);\n }\n.text-muted-foreground {\n color: oklch(0.556 0 0);\n }\n.text-pink-900 {\n color: oklch(40.8% 0.153 2.432);\n color: var(--color-pink-900);\n }\n.text-popover-foreground {\n color: oklch(0.145 0 0);\n }\n.text-primary {\n color: oklch(0.205 0 0);\n }\n.text-primary-foreground {\n color: oklch(0.985 0 0);\n }\n.text-red-600 {\n color: oklch(57.7% 0.245 27.325);\n color: var(--color-red-600);\n }\n.text-secondary-foreground {\n color: oklch(0.205 0 0);\n }\n.text-white {\n color: #fff;\n color: var(--color-white);\n }\n.italic {\n font-style: italic;\n }\n.tabular-nums {\n --tw-numeric-spacing: tabular-nums;\n font-variant-numeric: tabular-nums ;\n font-variant-numeric: var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,);\n }\n.underline {\n text-decoration-line: underline;\n }\n.underline-offset-4 {\n text-underline-offset: 4px;\n }\n.opacity-50 {\n opacity: 50%;\n }\n.opacity-60 {\n opacity: 60%;\n }\n.shadow {\n --tw-shadow: 0 1px 3px 0 var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 1px 2px -1px var(--tw-shadow-color, rgb(0 0 0 / 0.1));\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), 0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1);\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n.shadow-\\[0px_8px_16px_-4px_rgba\\(0\\,0\\,0\\,0\\.1\\)\\] {\n --tw-shadow: 0px 8px 16px -4px var(--tw-shadow-color, rgba(0,0,0,0.1));\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), 0px 8px 16px -4px rgba(0,0,0,0.1);\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n.shadow-lg {\n --tw-shadow: 0 10px 15px -3px var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 4px 6px -4px var(--tw-shadow-color, rgb(0 0 0 / 0.1));\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1);\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n.shadow-md {\n --tw-shadow: 0 4px 6px -1px var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 2px 4px -2px var(--tw-shadow-color, rgb(0 0 0 / 0.1));\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1);\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n.shadow-none {\n --tw-shadow: 0 0 #0000;\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), 0 0 #0000;\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n.shadow-sm {\n --tw-shadow: 0 1px 3px 0 var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 1px 2px -1px var(--tw-shadow-color, rgb(0 0 0 / 0.1));\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), 0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1);\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n.shadow-xl {\n --tw-shadow: 0 20px 25px -5px var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 8px 10px -6px var(--tw-shadow-color, rgb(0 0 0 / 0.1));\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), 0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1);\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n.shadow-xs {\n --tw-shadow: 0 1px 2px 0 var(--tw-shadow-color, rgb(0 0 0 / 0.05));\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), 0 1px 2px 0 rgb(0 0 0 / 0.05);\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n.ring-1 {\n --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n.ring-2 {\n --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n.ring-black {\n --tw-ring-color: var(--color-black);\n }\n.ring-blue-500 {\n --tw-ring-color: var(--color-blue-500);\n }\n.ring-offset-background {\n --tw-ring-offset-color: oklch(1 0 0);\n }\n.outline-hidden {\n --tw-outline-style: none;\n outline-style: none;\n outline: 2px solid transparent;\n outline-offset: 2px\n }\n.outline {\n outline-style: var(--tw-outline-style);\n outline-width: 1px;\n }\n.filter {\n filter: ;\n 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,);\n }\n.transition {\n transition-property: color, background-color, border-color, outline-color, text-decoration-color, fill, stroke, --tw-gradient-from, --tw-gradient-via, --tw-gradient-to, opacity, box-shadow, transform, translate, scale, rotate, filter, -webkit-backdrop-filter, backdrop-filter, display, visibility, content-visibility, overlay, pointer-events;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));\n transition-duration: 150ms;\n transition-duration: var(--tw-duration, var(--default-transition-duration));\n }\n.transition-\\[color\\,box-shadow\\] {\n transition-property: color,box-shadow;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));\n transition-duration: 150ms;\n transition-duration: var(--tw-duration, var(--default-transition-duration));\n }\n.transition-all {\n transition-property: all;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));\n transition-duration: 150ms;\n transition-duration: var(--tw-duration, var(--default-transition-duration));\n }\n.transition-colors {\n transition-property: color, background-color, border-color, outline-color, text-decoration-color, fill, stroke, --tw-gradient-from, --tw-gradient-via, --tw-gradient-to;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));\n transition-duration: 150ms;\n transition-duration: var(--tw-duration, var(--default-transition-duration));\n }\n.transition-shadow {\n transition-property: box-shadow;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));\n transition-duration: 150ms;\n transition-duration: var(--tw-duration, var(--default-transition-duration));\n }\n.transition-transform {\n transition-property: transform, translate, scale, rotate;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));\n transition-duration: 150ms;\n transition-duration: var(--tw-duration, var(--default-transition-duration));\n }\n.transition-none {\n transition-property: none;\n }\n.duration-200 {\n --tw-duration: 200ms;\n transition-duration: 200ms;\n }\n.ease-in-out {\n --tw-ease: var(--ease-in-out);\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-timing-function: var(--ease-in-out);\n }\n.animate-in {\n animation-name: enter;\n animation-duration: 150ms;\n --tw-enter-opacity: initial;\n --tw-enter-scale: initial;\n --tw-enter-rotate: initial;\n --tw-enter-translate-x: initial;\n --tw-enter-translate-y: initial;\n }\n.outline-none {\n --tw-outline-style: none;\n outline-style: none;\n }\n.select-none {\n -webkit-user-select: none;\n -moz-user-select: none;\n user-select: none;\n }\n.duration-200 {\n animation-duration: 200ms;\n }\n.ease-in-out {\n animation-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n }\n.fade-in-0 {\n --tw-enter-opacity: 0;\n }\n.zoom-in-95 {\n --tw-enter-scale: .95;\n }\n.group-data-\\[disabled\\=true\\]\\:pointer-events-none {\n &:is(:where(.group)[data-disabled=\"true\"] *) {\n pointer-events: none;\n }\n }\n.group-data-\\[disabled\\=true\\]\\:opacity-50 {\n &:is(:where(.group)[data-disabled=\"true\"] *) {\n opacity: 50%;\n }\n }\n.peer-disabled\\:cursor-not-allowed {\n &:is(:where(.peer):disabled ~ *) {\n cursor: not-allowed;\n }\n }\n.peer-disabled\\:opacity-50 {\n &:is(:where(.peer):disabled ~ *) {\n opacity: 50%;\n }\n }\n.selection\\:bg-primary {\n & *::-moz-selection {\n background-color: oklch(0.205 0 0);\n }\n & *::selection {\n background-color: oklch(0.205 0 0);\n }\n &::-moz-selection {\n background-color: oklch(0.205 0 0);\n }\n &::selection {\n background-color: oklch(0.205 0 0);\n }\n }\n.selection\\:text-primary-foreground {\n & *::-moz-selection {\n color: oklch(0.985 0 0);\n }\n & *::selection {\n color: oklch(0.985 0 0);\n }\n &::-moz-selection {\n color: oklch(0.985 0 0);\n }\n &::selection {\n color: oklch(0.985 0 0);\n }\n }\n.file\\:inline-flex {\n &::file-selector-button {\n display: inline-flex;\n }\n }\n.file\\:h-7 {\n &::file-selector-button {\n height: calc(0.25rem * 7);\n height: calc(var(--spacing) * 7);\n }\n }\n.file\\:border-0 {\n &::file-selector-button {\n border-style: var(--tw-border-style);\n border-width: 0px;\n }\n }\n.file\\:bg-transparent {\n &::file-selector-button {\n background-color: transparent;\n }\n }\n.file\\:text-sm {\n &::file-selector-button {\n font-size: 0.875rem;\n font-size: var(--text-sm);\n line-height: calc(1.25 / 0.875);\n line-height: var(--tw-leading, var(--text-sm--line-height));\n }\n }\n.file\\:font-medium {\n &::file-selector-button {\n --tw-font-weight: var(--font-weight-medium);\n font-weight: 500;\n font-weight: var(--font-weight-medium);\n }\n }\n.file\\:text-foreground {\n &::file-selector-button {\n color: oklch(0.145 0 0);\n }\n }\n.placeholder\\:text-muted-foreground {\n &::-moz-placeholder {\n color: oklch(0.556 0 0);\n }\n &::placeholder {\n color: oklch(0.556 0 0);\n }\n }\n.hover\\:cursor-pointer {\n &:hover {\n cursor: pointer\n }\n }\n.hover\\:bg-\\[\\#2A44D4\\] {\n &:hover {\n background-color: #2A44D4\n }\n }\n.hover\\:bg-\\[\\#EAECFB\\] {\n &:hover {\n background-color: #EAECFB\n }\n }\n.hover\\:bg-accent {\n &:hover {\n background-color: oklch(0.97 0 0)\n }\n }\n.hover\\:bg-destructive\\/90 {\n &:hover {\n background-color: color-mix(in oklab, oklch(0.577 0.245 27.325) 90%, transparent)\n }\n }\n.hover\\:bg-gray-50 {\n &:hover {\n background-color: oklch(98.5% 0.002 247.839);\n background-color: var(--color-gray-50)\n }\n }\n.hover\\:bg-gray-100 {\n &:hover {\n background-color: oklch(96.7% 0.003 264.542);\n background-color: var(--color-gray-100)\n }\n }\n.hover\\:bg-gray-200 {\n &:hover {\n background-color: oklch(92.8% 0.006 264.531);\n background-color: var(--color-gray-200)\n }\n }\n.hover\\:bg-muted\\/30 {\n &:hover {\n background-color: color-mix(in oklab, oklch(0.97 0 0) 30%, transparent)\n }\n }\n.hover\\:bg-muted\\/50 {\n &:hover {\n background-color: color-mix(in oklab, oklch(0.97 0 0) 50%, transparent)\n }\n }\n.hover\\:bg-primary\\/90 {\n &:hover {\n background-color: color-mix(in oklab, oklch(0.205 0 0) 90%, transparent)\n }\n }\n.hover\\:bg-red-200 {\n &:hover {\n background-color: oklch(88.5% 0.062 18.334);\n background-color: var(--color-red-200)\n }\n }\n.hover\\:bg-secondary\\/80 {\n &:hover {\n background-color: color-mix(in oklab, oklch(0.97 0 0) 80%, transparent)\n }\n }\n.hover\\:text-\\[\\#263DBF\\] {\n &:hover {\n color: #263DBF\n }\n }\n.hover\\:text-accent-foreground {\n &:hover {\n color: oklch(0.205 0 0)\n }\n }\n.hover\\:text-blue-600 {\n &:hover {\n color: oklch(54.6% 0.245 262.881);\n color: var(--color-blue-600)\n }\n }\n.hover\\:text-gray-600 {\n &:hover {\n color: oklch(44.6% 0.03 256.802);\n color: var(--color-gray-600)\n }\n }\n.hover\\:text-white {\n &:hover {\n color: #fff;\n color: var(--color-white)\n }\n }\n.hover\\:underline {\n &:hover {\n text-decoration-line: underline\n }\n }\n.focus\\:bg-blue-50 {\n &:focus {\n background-color: oklch(97% 0.014 254.604);\n background-color: var(--color-blue-50);\n }\n }\n.focus\\:ring-2 {\n &:focus {\n --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n }\n.focus\\:ring-blue-500 {\n &:focus {\n --tw-ring-color: var(--color-blue-500);\n }\n }\n.focus\\:outline-none {\n &:focus {\n --tw-outline-style: none;\n outline-style: none;\n }\n }\n.focus-visible\\:border-ring {\n &:focus-visible {\n border-color: oklch(0.708 0 0);\n }\n }\n.focus-visible\\:ring-2 {\n &:focus-visible {\n --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n }\n.focus-visible\\:ring-\\[3px\\] {\n &:focus-visible {\n --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n }\n.focus-visible\\:ring-destructive\\/20 {\n &:focus-visible {\n --tw-ring-color: color-mix(in oklab, oklch(0.577 0.245 27.325) 20%, transparent);\n }\n }\n.focus-visible\\:ring-ring {\n &:focus-visible {\n --tw-ring-color: oklch(0.708 0 0);\n }\n }\n.focus-visible\\:ring-ring\\/50 {\n &:focus-visible {\n --tw-ring-color: color-mix(in oklab, oklch(0.708 0 0) 50%, transparent);\n }\n }\n.focus-visible\\:ring-offset-2 {\n &:focus-visible {\n --tw-ring-offset-width: 2px;\n --tw-ring-offset-shadow: var(--tw-ring-inset,) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);\n }\n }\n.focus-visible\\:outline-none {\n &:focus-visible {\n --tw-outline-style: none;\n outline-style: none;\n }\n }\n.disabled\\:pointer-events-none {\n &:disabled {\n pointer-events: none;\n }\n }\n.disabled\\:cursor-not-allowed {\n &:disabled {\n cursor: not-allowed;\n }\n }\n.disabled\\:opacity-50 {\n &:disabled {\n opacity: 50%;\n }\n }\n.has-data-\\[slot\\=card-action\\]\\:grid-cols-\\[1fr_auto\\] {\n &:has(*[data-slot=\"card-action\"]) {\n grid-template-columns: 1fr auto;\n }\n }\n.has-\\[\\>svg\\]\\:px-2\\.5 {\n &:has(>svg) {\n padding-inline: calc(0.25rem * 2.5);\n padding-inline: calc(var(--spacing) * 2.5);\n }\n }\n.has-\\[\\>svg\\]\\:px-3 {\n &:has(>svg) {\n padding-inline: calc(0.25rem * 3);\n padding-inline: calc(var(--spacing) * 3);\n }\n }\n.has-\\[\\>svg\\]\\:px-4 {\n &:has(>svg) {\n padding-inline: calc(0.25rem * 4);\n padding-inline: calc(var(--spacing) * 4);\n }\n }\n.aria-invalid\\:border-destructive {\n &[aria-invalid=\"true\"] {\n border-color: oklch(0.577 0.245 27.325);\n }\n }\n.aria-invalid\\:ring-destructive\\/20 {\n &[aria-invalid=\"true\"] {\n --tw-ring-color: color-mix(in oklab, oklch(0.577 0.245 27.325) 20%, transparent);\n }\n }\n.data-\\[orientation\\=horizontal\\]\\:h-px {\n &[data-orientation=\"horizontal\"] {\n height: 1px;\n }\n }\n.data-\\[orientation\\=horizontal\\]\\:w-full {\n &[data-orientation=\"horizontal\"] {\n width: 100%;\n }\n }\n.data-\\[orientation\\=vertical\\]\\:h-full {\n &[data-orientation=\"vertical\"] {\n height: 100%;\n }\n }\n.data-\\[orientation\\=vertical\\]\\:w-px {\n &[data-orientation=\"vertical\"] {\n width: 1px;\n }\n }\n.data-\\[side\\=bottom\\]\\:slide-in-from-top-2 {\n &[data-side=\"bottom\"] {\n --tw-enter-translate-y: -0.5rem;\n }\n }\n.data-\\[side\\=left\\]\\:slide-in-from-right-2 {\n &[data-side=\"left\"] {\n --tw-enter-translate-x: 0.5rem;\n }\n }\n.data-\\[side\\=right\\]\\:slide-in-from-left-2 {\n &[data-side=\"right\"] {\n --tw-enter-translate-x: -0.5rem;\n }\n }\n.data-\\[side\\=top\\]\\:slide-in-from-bottom-2 {\n &[data-side=\"top\"] {\n --tw-enter-translate-y: 0.5rem;\n }\n }\n.data-\\[state\\=active\\]\\:rounded-md {\n &[data-state=\"active\"] {\n border-radius: calc(0.625rem - 2px);\n }\n }\n.data-\\[state\\=active\\]\\:border {\n &[data-state=\"active\"] {\n border-style: var(--tw-border-style);\n border-width: 1px;\n }\n }\n.data-\\[state\\=active\\]\\:border-solid {\n &[data-state=\"active\"] {\n --tw-border-style: solid;\n border-style: solid;\n }\n }\n.data-\\[state\\=active\\]\\:border-\\[\\#2A44D4\\] {\n &[data-state=\"active\"] {\n border-color: #2A44D4;\n }\n }\n.data-\\[state\\=active\\]\\:bg-\\[\\#EAECFB\\] {\n &[data-state=\"active\"] {\n background-color: #EAECFB;\n }\n }\n.data-\\[state\\=active\\]\\:bg-background {\n &[data-state=\"active\"] {\n background-color: oklch(1 0 0);\n }\n }\n.data-\\[state\\=active\\]\\:text-\\[\\#263DBF\\] {\n &[data-state=\"active\"] {\n color: #263DBF;\n }\n }\n.data-\\[state\\=active\\]\\:text-foreground {\n &[data-state=\"active\"] {\n color: oklch(0.145 0 0);\n }\n }\n.data-\\[state\\=active\\]\\:shadow {\n &[data-state=\"active\"] {\n --tw-shadow: 0 1px 3px 0 var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 1px 2px -1px var(--tw-shadow-color, rgb(0 0 0 / 0.1));\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), 0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1);\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n }\n.data-\\[state\\=active\\]\\:shadow-none {\n &[data-state=\"active\"] {\n --tw-shadow: 0 0 #0000;\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), 0 0 #0000;\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n }\n.data-\\[state\\=checked\\]\\:border-primary {\n &[data-state=\"checked\"] {\n border-color: oklch(0.205 0 0);\n }\n }\n.data-\\[state\\=checked\\]\\:bg-primary {\n &[data-state=\"checked\"] {\n background-color: oklch(0.205 0 0);\n }\n }\n.data-\\[state\\=checked\\]\\:text-primary-foreground {\n &[data-state=\"checked\"] {\n color: oklch(0.985 0 0);\n }\n }\n.data-\\[state\\=closed\\]\\:animate-out {\n &[data-state=\"closed\"] {\n animation-name: exit;\n animation-duration: 150ms;\n --tw-exit-opacity: initial;\n --tw-exit-scale: initial;\n --tw-exit-rotate: initial;\n --tw-exit-translate-x: initial;\n --tw-exit-translate-y: initial;\n }\n }\n.data-\\[state\\=closed\\]\\:fade-out-0 {\n &[data-state=\"closed\"] {\n --tw-exit-opacity: 0;\n }\n }\n.data-\\[state\\=closed\\]\\:zoom-out-95 {\n &[data-state=\"closed\"] {\n --tw-exit-scale: .95;\n }\n }\n.data-\\[state\\=open\\]\\:animate-in {\n &[data-state=\"open\"] {\n animation-name: enter;\n animation-duration: 150ms;\n --tw-enter-opacity: initial;\n --tw-enter-scale: initial;\n --tw-enter-rotate: initial;\n --tw-enter-translate-x: initial;\n --tw-enter-translate-y: initial;\n }\n }\n.data-\\[state\\=open\\]\\:fade-in-0 {\n &[data-state=\"open\"] {\n --tw-enter-opacity: 0;\n }\n }\n.data-\\[state\\=open\\]\\:zoom-in-95 {\n &[data-state=\"open\"] {\n --tw-enter-scale: .95;\n }\n }\n.data-\\[state\\=selected\\]\\:bg-muted {\n &[data-state=\"selected\"] {\n background-color: oklch(0.97 0 0);\n }\n }\n.md\\:text-sm {\n font-size: 0.875rem;\n font-size: var(--text-sm);\n line-height: calc(1.25 / 0.875);\n line-height: var(--tw-leading, var(--text-sm--line-height))\n }\n.dark\\:border-input {\n border-color: oklch(0.922 0 0)\n }\n.dark\\:bg-destructive\\/60 {\n background-color: color-mix(in oklab, oklch(0.577 0.245 27.325) 60%, transparent)\n }\n.dark\\:bg-input\\/30 {\n background-color: color-mix(in oklab, oklch(0.922 0 0) 30%, transparent)\n }\n.dark\\:hover\\:bg-accent\\/50 {\n &:hover {\n background-color: color-mix(in oklab, oklch(0.97 0 0) 50%, transparent)\n }\n }\n.dark\\:hover\\:bg-input\\/50 {\n &:hover {\n background-color: color-mix(in oklab, oklch(0.922 0 0) 50%, transparent)\n }\n }\n.dark\\:focus-visible\\:ring-destructive\\/40 {\n &:focus-visible {\n --tw-ring-color: color-mix(in oklab, oklch(0.577 0.245 27.325) 40%, transparent);\n }\n }\n.dark\\:aria-invalid\\:ring-destructive\\/40 {\n &[aria-invalid=\"true\"] {\n --tw-ring-color: color-mix(in oklab, oklch(0.577 0.245 27.325) 40%, transparent);\n }\n }\n.dark\\:data-\\[state\\=checked\\]\\:bg-primary {\n &[data-state=\"checked\"] {\n background-color: oklch(0.205 0 0);\n }\n }\n.\\[\\&_\\.recharts-cartesian-axis-tick_text\\]\\:fill-muted-foreground {\n & .recharts-cartesian-axis-tick text {\n fill: oklch(0.556 0 0);\n }\n }\n.\\[\\&_\\.recharts-cartesian-grid_line\\[stroke\\=\\'\\#ccc\\'\\]\\]\\:stroke-border\\/50 {\n & .recharts-cartesian-grid line[stroke='#ccc'] {\n stroke: color-mix(in oklab, oklch(0.922 0 0) 50%, transparent);\n }\n }\n.\\[\\&_\\.recharts-curve\\.recharts-tooltip-cursor\\]\\:stroke-border {\n & .recharts-curve.recharts-tooltip-cursor {\n stroke: oklch(0.922 0 0);\n }\n }\n.\\[\\&_\\.recharts-dot\\[stroke\\=\\'\\#fff\\'\\]\\]\\:stroke-transparent {\n & .recharts-dot[stroke='#fff'] {\n stroke: transparent;\n }\n }\n.\\[\\&_\\.recharts-layer\\]\\:outline-hidden {\n & .recharts-layer {\n --tw-outline-style: none;\n outline-style: none;\n outline: 2px solid transparent;\n outline-offset: 2px\n }\n }\n.\\[\\&_\\.recharts-polar-grid_\\[stroke\\=\\'\\#ccc\\'\\]\\]\\:stroke-border {\n & .recharts-polar-grid [stroke='#ccc'] {\n stroke: oklch(0.922 0 0);\n }\n }\n.\\[\\&_\\.recharts-radial-bar-background-sector\\]\\:fill-muted {\n & .recharts-radial-bar-background-sector {\n fill: oklch(0.97 0 0);\n }\n }\n.\\[\\&_\\.recharts-rectangle\\.recharts-tooltip-cursor\\]\\:fill-muted {\n & .recharts-rectangle.recharts-tooltip-cursor {\n fill: oklch(0.97 0 0);\n }\n }\n.\\[\\&_\\.recharts-reference-line_\\[stroke\\=\\'\\#ccc\\'\\]\\]\\:stroke-border {\n & .recharts-reference-line [stroke='#ccc'] {\n stroke: oklch(0.922 0 0);\n }\n }\n.\\[\\&_\\.recharts-sector\\]\\:outline-hidden {\n & .recharts-sector {\n --tw-outline-style: none;\n outline-style: none;\n outline: 2px solid transparent;\n outline-offset: 2px\n }\n }\n.\\[\\&_\\.recharts-sector\\[stroke\\=\\'\\#fff\\'\\]\\]\\:stroke-transparent {\n & .recharts-sector[stroke='#fff'] {\n stroke: transparent;\n }\n }\n.\\[\\&_\\.recharts-surface\\]\\:outline-hidden {\n & .recharts-surface {\n --tw-outline-style: none;\n outline-style: none;\n outline: 2px solid transparent;\n outline-offset: 2px\n }\n }\n.\\[\\&_svg\\]\\:pointer-events-none {\n & svg {\n pointer-events: none;\n }\n }\n.\\[\\&_svg\\]\\:shrink-0 {\n & svg {\n flex-shrink: 0;\n }\n }\n.\\[\\&_svg\\:not\\(\\[class\\*\\=\\'size-\\'\\]\\)\\]\\:size-4 {\n & svg:not([class*='size-']) {\n width: calc(0.25rem * 4);\n width: calc(var(--spacing) * 4);\n height: calc(0.25rem * 4);\n height: calc(var(--spacing) * 4);\n }\n }\n.\\[\\&_tr\\]\\:border-b {\n & tr {\n border-bottom-style: var(--tw-border-style);\n border-bottom-width: 1px;\n }\n }\n.\\[\\&_tr\\:last-child\\]\\:border-0 {\n & tr:last-child {\n border-style: var(--tw-border-style);\n border-width: 0px;\n }\n }\n.\\[\\&\\:has\\(\\[role\\=checkbox\\]\\)\\]\\:pr-0 {\n &:has([role=checkbox]) {\n padding-right: calc(0.25rem * 0);\n padding-right: calc(var(--spacing) * 0);\n }\n }\n.\\[\\.border-b\\]\\:pb-6 {\n &:is(.border-b) {\n padding-bottom: calc(0.25rem * 6);\n padding-bottom: calc(var(--spacing) * 6);\n }\n }\n.\\[\\&\\>\\[role\\=checkbox\\]\\]\\:translate-y-\\[2px\\] {\n &>[role=checkbox] {\n --tw-translate-y: 2px;\n translate: var(--tw-translate-x) 2px;\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n }\n.\\[\\&\\>svg\\]\\:h-2\\.5 {\n &>svg {\n height: calc(0.25rem * 2.5);\n height: calc(var(--spacing) * 2.5);\n }\n }\n.\\[\\&\\>svg\\]\\:h-3 {\n &>svg {\n height: calc(0.25rem * 3);\n height: calc(var(--spacing) * 3);\n }\n }\n.\\[\\&\\>svg\\]\\:w-2\\.5 {\n &>svg {\n width: calc(0.25rem * 2.5);\n width: calc(var(--spacing) * 2.5);\n }\n }\n.\\[\\&\\>svg\\]\\:w-3 {\n &>svg {\n width: calc(0.25rem * 3);\n width: calc(var(--spacing) * 3);\n }\n }\n.\\[\\&\\>svg\\]\\:text-muted-foreground {\n &>svg {\n color: oklch(0.556 0 0);\n }\n }\n.\\[\\&\\>tr\\]\\:last\\:border-b-0 {\n &>tr {\n &:last-child {\n border-bottom-style: var(--tw-border-style);\n border-bottom-width: 0px;\n }\n }\n }\n@keyframes enter {\n from {\n opacity: 1;\n opacity: var(--tw-enter-opacity, 1);\n transform: translate3d(0, 0, 0) scale3d(1, 1, 1) rotate(0);\n 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));\n }\n}\n@keyframes exit {\n to {\n opacity: 1;\n opacity: var(--tw-exit-opacity, 1);\n transform: translate3d(0, 0, 0) scale3d(1, 1, 1) rotate(0);\n 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));\n }\n}\n@property --tw-translate-x {\n syntax: \"*\";\n inherits: false;\n initial-value: 0;\n}\n@property --tw-translate-y {\n syntax: \"*\";\n inherits: false;\n initial-value: 0;\n}\n@property --tw-translate-z {\n syntax: \"*\";\n inherits: false;\n initial-value: 0;\n}\n@property --tw-rotate-x {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-rotate-y {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-rotate-z {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-skew-x {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-skew-y {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-space-y-reverse {\n syntax: \"*\";\n inherits: false;\n initial-value: 0;\n}\n@property --tw-space-x-reverse {\n syntax: \"*\";\n inherits: false;\n initial-value: 0;\n}\n@property --tw-border-style {\n syntax: \"*\";\n inherits: false;\n initial-value: solid;\n}\n@property --tw-leading {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-font-weight {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-ordinal {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-slashed-zero {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-numeric-figure {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-numeric-spacing {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-numeric-fraction {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-shadow {\n syntax: \"*\";\n inherits: false;\n initial-value: 0 0 #0000;\n}\n@property --tw-shadow-color {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-shadow-alpha {\n syntax: \"<percentage>\";\n inherits: false;\n initial-value: 100%;\n}\n@property --tw-inset-shadow {\n syntax: \"*\";\n inherits: false;\n initial-value: 0 0 #0000;\n}\n@property --tw-inset-shadow-color {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-inset-shadow-alpha {\n syntax: \"<percentage>\";\n inherits: false;\n initial-value: 100%;\n}\n@property --tw-ring-color {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-ring-shadow {\n syntax: \"*\";\n inherits: false;\n initial-value: 0 0 #0000;\n}\n@property --tw-inset-ring-color {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-inset-ring-shadow {\n syntax: \"*\";\n inherits: false;\n initial-value: 0 0 #0000;\n}\n@property --tw-ring-inset {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-ring-offset-width {\n syntax: \"<length>\";\n inherits: false;\n initial-value: 0px;\n}\n@property --tw-ring-offset-color {\n syntax: \"*\";\n inherits: false;\n initial-value: #fff;\n}\n@property --tw-ring-offset-shadow {\n syntax: \"*\";\n inherits: false;\n initial-value: 0 0 #0000;\n}\n@property --tw-outline-style {\n syntax: \"*\";\n inherits: false;\n initial-value: solid;\n}\n@property --tw-blur {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-brightness {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-contrast {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-grayscale {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-hue-rotate {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-invert {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-opacity {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-saturate {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-sepia {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-drop-shadow {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-drop-shadow-color {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-drop-shadow-alpha {\n syntax: \"<percentage>\";\n inherits: false;\n initial-value: 100%;\n}\n@property --tw-drop-shadow-size {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-duration {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-ease {\n syntax: \"*\";\n inherits: false;\n}\n@keyframes spin {\n to {\n transform: rotate(360deg);\n }\n}\n@keyframes pulse {\n 50% {\n opacity: 0.5;\n }\n}\n@supports ((-webkit-hyphens: none) and (not (margin-trim: inline))) or ((-moz-orient: inline) and (not (color:rgb(from red r g b)))) {\n *, ::before, ::after, ::backdrop {\n --tw-translate-x: 0;\n --tw-translate-y: 0;\n --tw-translate-z: 0;\n --tw-rotate-x: initial;\n --tw-rotate-y: initial;\n --tw-rotate-z: initial;\n --tw-skew-x: initial;\n --tw-skew-y: initial;\n --tw-space-y-reverse: 0;\n --tw-space-x-reverse: 0;\n --tw-border-style: solid;\n --tw-leading: initial;\n --tw-font-weight: initial;\n --tw-ordinal: initial;\n --tw-slashed-zero: initial;\n --tw-numeric-figure: initial;\n --tw-numeric-spacing: initial;\n --tw-numeric-fraction: initial;\n --tw-shadow: 0 0 #0000;\n --tw-shadow-color: initial;\n --tw-shadow-alpha: 100%;\n --tw-inset-shadow: 0 0 #0000;\n --tw-inset-shadow-color: initial;\n --tw-inset-shadow-alpha: 100%;\n --tw-ring-color: initial;\n --tw-ring-shadow: 0 0 #0000;\n --tw-inset-ring-color: initial;\n --tw-inset-ring-shadow: 0 0 #0000;\n --tw-ring-inset: initial;\n --tw-ring-offset-width: 0px;\n --tw-ring-offset-color: #fff;\n --tw-ring-offset-shadow: 0 0 #0000;\n --tw-outline-style: solid;\n --tw-blur: initial;\n --tw-brightness: initial;\n --tw-contrast: initial;\n --tw-grayscale: initial;\n --tw-hue-rotate: initial;\n --tw-invert: initial;\n --tw-opacity: initial;\n --tw-saturate: initial;\n --tw-sepia: initial;\n --tw-drop-shadow: initial;\n --tw-drop-shadow-color: initial;\n --tw-drop-shadow-alpha: 100%;\n --tw-drop-shadow-size: initial;\n --tw-duration: initial;\n --tw-ease: initial;\n }\n }\n";