caplink-saas-ui-shared-component-library 0.5.5 → 0.5.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (99) hide show
  1. package/README.md +78 -78
  2. package/dist/caplink-theme-globals.css +1 -0
  3. package/dist/index.d.ts +848 -146
  4. package/dist/index.es.js +10943 -11369
  5. package/dist/index.es.js.map +1 -1
  6. package/dist/index.umd.js +89 -89
  7. package/dist/index.umd.js.map +1 -1
  8. package/package.json +98 -91
  9. package/dist/components/dag/hooks/index.d.ts +0 -5
  10. package/dist/components/dag/hooks/use-dag.d.ts +0 -3
  11. package/dist/components/dag/hooks/use-get-adjacent-nodes.d.ts +0 -7
  12. package/dist/components/dag/model/dag-types.d.ts +0 -116
  13. package/dist/components/dag/model/index.d.ts +0 -4
  14. package/dist/components/dag/ui/adjacent-nodes/adjacent-nodes.d.ts +0 -10
  15. package/dist/components/dag/ui/adjacent-nodes/index.d.ts +0 -4
  16. package/dist/components/dag/ui/dag-container.d.ts +0 -2
  17. package/dist/components/dag/ui/dag.d.ts +0 -3
  18. package/dist/components/dag/ui/defaults/default-edge.d.ts +0 -3
  19. package/dist/components/dag/ui/defaults/default-node.d.ts +0 -3
  20. package/dist/components/dag/ui/defaults/index.d.ts +0 -5
  21. package/dist/components/dag/ui/defaults/skeleton-node.d.ts +0 -1
  22. package/dist/components/dag/ui/float-menu/default-float-buttons/button-change-orientation.d.ts +0 -13
  23. package/dist/components/dag/ui/float-menu/default-float-buttons/button-zoom-in.d.ts +0 -1
  24. package/dist/components/dag/ui/float-menu/default-float-buttons/button-zoom-out.d.ts +0 -1
  25. package/dist/components/dag/ui/float-menu/default-float-buttons/index.d.ts +0 -6
  26. package/dist/components/dag/ui/float-menu/float-menu-button-group.d.ts +0 -2
  27. package/dist/components/dag/ui/float-menu/float-menu-button.d.ts +0 -2
  28. package/dist/components/dag/ui/float-menu/float-menu.d.ts +0 -5
  29. package/dist/components/dag/ui/float-menu/index.d.ts +0 -6
  30. package/dist/components/dag/ui/index.d.ts +0 -4
  31. package/dist/components/dag/ui/search-node/index.d.ts +0 -4
  32. package/dist/components/dag/ui/search-node/search-node.d.ts +0 -6
  33. package/dist/components/dag/utils/get-layout-elements.d.ts +0 -50
  34. package/dist/components/file-uploader/ui/file-uploader.d.ts +0 -10
  35. package/dist/components/file-uploader/ui/index.d.ts +0 -4
  36. package/dist/components/image-uploader/ui/image-uploader.d.ts +0 -21
  37. package/dist/components/image-uploader/ui/image-viewer.d.ts +0 -7
  38. package/dist/components/image-uploader/ui/index.d.ts +0 -4
  39. package/dist/components/sidebar/ui/content-split.d.ts +0 -4
  40. package/dist/components/sidebar/ui/index.d.ts +0 -6
  41. package/dist/components/sidebar/ui/sidebar-header.d.ts +0 -5
  42. package/dist/components/sidebar/ui/sidebar.d.ts +0 -12
  43. package/dist/components/spreadsheet/lib/cap-value.d.ts +0 -5
  44. package/dist/components/spreadsheet/lib/date-formatter.d.ts +0 -1
  45. package/dist/components/spreadsheet/lib/get-text-width-by-font.d.ts +0 -1
  46. package/dist/components/spreadsheet/lib/indexed-alphabet.d.ts +0 -1
  47. package/dist/components/spreadsheet/lib/normalize-value.d.ts +0 -5
  48. package/dist/components/spreadsheet/lib/one-line-string.d.ts +0 -1
  49. package/dist/components/spreadsheet/lib/text-overflow.d.ts +0 -1
  50. package/dist/components/spreadsheet/lib/use-spreadsheet.d.ts +0 -1
  51. package/dist/components/spreadsheet/lib/with-portal-provider.d.ts +0 -11
  52. package/dist/components/spreadsheet/model/matrix.d.ts +0 -59
  53. package/dist/components/spreadsheet/model/spreadsheet.d.ts +0 -171
  54. package/dist/components/spreadsheet/ui/cell.d.ts +0 -2
  55. package/dist/components/spreadsheet/ui/containers/index.d.ts +0 -7
  56. package/dist/components/spreadsheet/ui/containers/matrix.d.ts +0 -7
  57. package/dist/components/spreadsheet/ui/containers/root.d.ts +0 -7
  58. package/dist/components/spreadsheet/ui/context.d.ts +0 -4
  59. package/dist/components/spreadsheet/ui/data-editor/boolean.d.ts +0 -3
  60. package/dist/components/spreadsheet/ui/data-editor/date.d.ts +0 -3
  61. package/dist/components/spreadsheet/ui/data-editor/index.d.ts +0 -20
  62. package/dist/components/spreadsheet/ui/data-editor/numeric.d.ts +0 -3
  63. package/dist/components/spreadsheet/ui/data-editor/select.d.ts +0 -7
  64. package/dist/components/spreadsheet/ui/data-editor/text.d.ts +0 -3
  65. package/dist/components/spreadsheet/ui/header.d.ts +0 -1
  66. package/dist/components/spreadsheet/ui/icons/add-row-icon.d.ts +0 -3
  67. package/dist/components/spreadsheet/ui/icons/integer-icon.d.ts +0 -3
  68. package/dist/components/spreadsheet/ui/icons/remove-row-icon.d.ts +0 -3
  69. package/dist/components/spreadsheet/ui/index.d.ts +0 -3
  70. package/dist/components/spreadsheet/ui/indicators/column-indicator.d.ts +0 -11
  71. package/dist/components/spreadsheet/ui/indicators/column-title-indicator.d.ts +0 -9
  72. package/dist/components/spreadsheet/ui/indicators/corner-indicator.d.ts +0 -3
  73. package/dist/components/spreadsheet/ui/indicators/drag-indicator.d.ts +0 -10
  74. package/dist/components/spreadsheet/ui/indicators/row-indicator.d.ts +0 -3
  75. package/dist/components/spreadsheet/ui/rows.d.ts +0 -1
  76. package/dist/components/spreadsheet/ui/start.d.ts +0 -3
  77. package/dist/components/spreadsheet/ui/toolbar.d.ts +0 -1
  78. package/dist/components/tmp/numeric.d.ts +0 -25
  79. package/dist/shared/business/get-formatted-id.d.ts +0 -4
  80. package/dist/shared/business/index.d.ts +0 -57
  81. package/dist/shared/business/parse-product-featured-data.d.ts +0 -14
  82. package/dist/shared/business/product-featured-data-schema.d.ts +0 -51
  83. package/dist/shared/business/validate-product-featured-data.d.ts +0 -9
  84. package/dist/shared/lib/cn.d.ts +0 -3
  85. package/dist/shared/lib/custom-variant-prop.d.ts +0 -7
  86. package/dist/shared/lib/get-current-date-time-text.d.ts +0 -5
  87. package/dist/shared/lib/move-input-cursor-to-end.d.ts +0 -2
  88. package/dist/shared/lib/read-text-from-clipboard.d.ts +0 -5
  89. package/dist/shared/lib/use-focused.d.ts +0 -3
  90. package/dist/shared/lib/use-select-on-focus.d.ts +0 -3
  91. package/dist/shared/ui/button.d.ts +0 -12
  92. package/dist/shared/ui/dropdown-menu.d.ts +0 -27
  93. package/dist/shared/ui/empty-search-icon.d.ts +0 -2
  94. package/dist/shared/ui/float-button.d.ts +0 -9
  95. package/dist/shared/ui/icon-button.d.ts +0 -11
  96. package/dist/shared/ui/input.d.ts +0 -5
  97. package/dist/shared/ui/select.d.ts +0 -13
  98. package/dist/shared/ui/tooltip.d.ts +0 -7
  99. package/dist/types.d.ts +0 -3
package/README.md CHANGED
@@ -1,78 +1,78 @@
1
- # caplink-saas-ui-shared-component-library
2
-
3
- This project is a shared component library for the Caplink SaaS UI. It is built using React and Storybook.
4
-
5
- ## Installation
6
-
7
- 1. Clone the repository
8
- 2. Run `npm install` to install the dependencies
9
- 3. Run `npm run storybook` to start the Storybook server
10
-
11
- ## Usage
12
-
13
- To use the components in your project, you can install the package from npm:
14
-
15
- ```bash
16
- npm install @caplink/saas-ui-shared-component-library
17
- ```
18
-
19
- Then import the components you need:
20
-
21
- ```javascript
22
- import { Button } from '@caplink/saas-ui-shared-component-library';
23
- ```
24
-
25
- ## Development
26
-
27
- ### Components
28
-
29
- All the components are located in the 'component-library' folder. Each component should be in its own folder, with the component file and any other files it needs (like styles, tests, etc).
30
-
31
- An expected component development workflow would be:
32
-
33
- 1. Create a new folder for the component
34
- 2. Create the component file (e.g. MyComponent.js)
35
- 3. Create a story file (e.g. MyComponent.stories.js)
36
- 4. Create a test file (e.g. MyComponent.spec.js)
37
- 5. Create a style file (e.g. MyComponent.css) (if needed, we use tailwindcss for styles)
38
- 6. If it's a complex component, create a Cypress test file (e.g. MyComponent.spec.js in the 'cypress' folder)
39
-
40
- ### Folder structure
41
-
42
- - All the components are located in the '/component-library' folder.
43
- - Each component should be in its own folder, with the component file and any other files it needs (like styles, tests, etc).
44
- - Cypress tests are located in the 'cypress' folder and should follow the same folder structure as the components.
45
-
46
- ### Storybook
47
-
48
- We use Storybook to develop and test the components. To start the Storybook server, run:
49
-
50
- ```bash
51
- npm run sb:dev
52
- ```
53
-
54
- ```bash
55
- npm run sb:build
56
- ```
57
-
58
- This will start the Storybook server and open a browser window with the Storybook UI. You can use this to develop and test the components.
59
-
60
- This is the gallery of components that we use to develop and test the components. It's also used to generate the documentation for the components, so it's important to keep it up to date and encompassing relevant states and use cases within the stories.
61
-
62
- ## Testing
63
-
64
- We use multiple testing libraries to test our components. We use Jest for unit tests and Cypress for more complex integration tests that require a browser.
65
-
66
- - All unit tests are located in the same folder as the component they are testing. The file name should be the same as the component file name, but with a '.spec.xxx' suffix.
67
- - All Cypress tests are located in the 'cypress' folder.
68
-
69
- ## Contributing
70
-
71
- This is a project for the Caplink SaaS UI team. If you are a member of the team, you can contribute to this project by following the standard Git workflow:
72
-
73
- 1. Create a new branch for your feature or bug fix
74
- 2. Make your changes
75
- 3. Push your branch to the remote repository
76
- 4. Create a pull request
77
-
78
- Developing components with tests is a requirement for contributing to this project.
1
+ # caplink-saas-ui-shared-component-library
2
+
3
+ This project is a shared component library for the Caplink SaaS UI. It is built using React and Storybook.
4
+
5
+ ## Installation
6
+
7
+ 1. Clone the repository
8
+ 2. Run `npm install` to install the dependencies
9
+ 3. Run `npm run storybook` to start the Storybook server
10
+
11
+ ## Usage
12
+
13
+ To use the components in your project, you can install the package from npm:
14
+
15
+ ```bash
16
+ npm install @caplink/saas-ui-shared-component-library
17
+ ```
18
+
19
+ Then import the components you need:
20
+
21
+ ```javascript
22
+ import { Button } from '@caplink/saas-ui-shared-component-library';
23
+ ```
24
+
25
+ ## Development
26
+
27
+ ### Components
28
+
29
+ All the components are located in the 'component-library' folder. Each component should be in its own folder, with the component file and any other files it needs (like styles, tests, etc).
30
+
31
+ An expected component development workflow would be:
32
+
33
+ 1. Create a new folder for the component
34
+ 2. Create the component file (e.g. MyComponent.js)
35
+ 3. Create a story file (e.g. MyComponent.stories.js)
36
+ 4. Create a test file (e.g. MyComponent.spec.js)
37
+ 5. Create a style file (e.g. MyComponent.css) (if needed, we use tailwindcss for styles)
38
+ 6. If it's a complex component, create a Cypress test file (e.g. MyComponent.spec.js in the 'cypress' folder)
39
+
40
+ ### Folder structure
41
+
42
+ - All the components are located in the '/component-library' folder.
43
+ - Each component should be in its own folder, with the component file and any other files it needs (like styles, tests, etc).
44
+ - Cypress tests are located in the 'cypress' folder and should follow the same folder structure as the components.
45
+
46
+ ### Storybook
47
+
48
+ We use Storybook to develop and test the components. To start the Storybook server, run:
49
+
50
+ ```bash
51
+ npm run sb:dev
52
+ ```
53
+
54
+ ```bash
55
+ npm run sb:build
56
+ ```
57
+
58
+ This will start the Storybook server and open a browser window with the Storybook UI. You can use this to develop and test the components.
59
+
60
+ This is the gallery of components that we use to develop and test the components. It's also used to generate the documentation for the components, so it's important to keep it up to date and encompassing relevant states and use cases within the stories.
61
+
62
+ ## Testing
63
+
64
+ We use multiple testing libraries to test our components. We use Jest for unit tests and Cypress for more complex integration tests that require a browser.
65
+
66
+ - All unit tests are located in the same folder as the component they are testing. The file name should be the same as the component file name, but with a '.spec.xxx' suffix.
67
+ - All Cypress tests are located in the 'cypress' folder.
68
+
69
+ ## Contributing
70
+
71
+ This is a project for the Caplink SaaS UI team. If you are a member of the team, you can contribute to this project by following the standard Git workflow:
72
+
73
+ 1. Create a new branch for your feature or bug fix
74
+ 2. Make your changes
75
+ 3. Push your branch to the remote repository
76
+ 4. Create a pull request
77
+
78
+ Developing components with tests is a requirement for contributing to this project.
@@ -0,0 +1 @@
1
+ .react-flow{direction:ltr;--xy-edge-stroke-default: #b1b1b7;--xy-edge-stroke-width-default: 1;--xy-edge-stroke-selected-default: #555;--xy-connectionline-stroke-default: #b1b1b7;--xy-connectionline-stroke-width-default: 1;--xy-attribution-background-color-default: rgba(255, 255, 255, .5);--xy-minimap-background-color-default: #fff;--xy-minimap-mask-background-color-default: rgb(240, 240, 240, .6);--xy-minimap-mask-stroke-color-default: transparent;--xy-minimap-mask-stroke-width-default: 1;--xy-minimap-node-background-color-default: #e2e2e2;--xy-minimap-node-stroke-color-default: transparent;--xy-minimap-node-stroke-width-default: 2;--xy-background-color-default: transparent;--xy-background-pattern-dots-color-default: #91919a;--xy-background-pattern-lines-color-default: #eee;--xy-background-pattern-cross-color-default: #e2e2e2;background-color:var(--xy-background-color, var(--xy-background-color-default));--xy-node-color-default: inherit;--xy-node-border-default: 1px solid #1a192b;--xy-node-background-color-default: #fff;--xy-node-group-background-color-default: rgba(240, 240, 240, .25);--xy-node-boxshadow-hover-default: 0 1px 4px 1px rgba(0, 0, 0, .08);--xy-node-boxshadow-selected-default: 0 0 0 .5px #1a192b;--xy-node-border-radius-default: 3px;--xy-handle-background-color-default: #1a192b;--xy-handle-border-color-default: #fff;--xy-selection-background-color-default: rgba(0, 89, 220, .08);--xy-selection-border-default: 1px dotted rgba(0, 89, 220, .8);--xy-controls-button-background-color-default: #fefefe;--xy-controls-button-background-color-hover-default: #f4f4f4;--xy-controls-button-color-default: inherit;--xy-controls-button-color-hover-default: inherit;--xy-controls-button-border-color-default: #eee;--xy-controls-box-shadow-default: 0 0 2px 1px rgba(0, 0, 0, .08);--xy-edge-label-background-color-default: #ffffff;--xy-edge-label-color-default: inherit;--xy-resize-background-color-default: #3367d9}.react-flow.dark{--xy-edge-stroke-default: #3e3e3e;--xy-edge-stroke-width-default: 1;--xy-edge-stroke-selected-default: #727272;--xy-connectionline-stroke-default: #b1b1b7;--xy-connectionline-stroke-width-default: 1;--xy-attribution-background-color-default: rgba(150, 150, 150, .25);--xy-minimap-background-color-default: #141414;--xy-minimap-mask-background-color-default: rgb(60, 60, 60, .6);--xy-minimap-mask-stroke-color-default: transparent;--xy-minimap-mask-stroke-width-default: 1;--xy-minimap-node-background-color-default: #2b2b2b;--xy-minimap-node-stroke-color-default: transparent;--xy-minimap-node-stroke-width-default: 2;--xy-background-color-default: #141414;--xy-background-pattern-dots-color-default: #777;--xy-background-pattern-lines-color-default: #777;--xy-background-pattern-cross-color-default: #777;--xy-node-color-default: #f8f8f8;--xy-node-border-default: 1px solid #3c3c3c;--xy-node-background-color-default: #1e1e1e;--xy-node-group-background-color-default: rgba(240, 240, 240, .25);--xy-node-boxshadow-hover-default: 0 1px 4px 1px rgba(255, 255, 255, .08);--xy-node-boxshadow-selected-default: 0 0 0 .5px #999;--xy-handle-background-color-default: #bebebe;--xy-handle-border-color-default: #1e1e1e;--xy-selection-background-color-default: rgba(200, 200, 220, .08);--xy-selection-border-default: 1px dotted rgba(200, 200, 220, .8);--xy-controls-button-background-color-default: #2b2b2b;--xy-controls-button-background-color-hover-default: #3e3e3e;--xy-controls-button-color-default: #f8f8f8;--xy-controls-button-color-hover-default: #fff;--xy-controls-button-border-color-default: #5b5b5b;--xy-controls-box-shadow-default: 0 0 2px 1px rgba(0, 0, 0, .08);--xy-edge-label-background-color-default: #141414;--xy-edge-label-color-default: #f8f8f8}.react-flow__background{background-color:var(--xy-background-color, var(--xy-background-color-props, var(--xy-background-color-default)));pointer-events:none;z-index:-1}.react-flow__container{position:absolute;width:100%;height:100%;top:0;left:0}.react-flow__pane{z-index:1}.react-flow__pane.draggable{cursor:grab}.react-flow__pane.dragging{cursor:grabbing}.react-flow__pane.selection{cursor:pointer}.react-flow__viewport{transform-origin:0 0;z-index:2;pointer-events:none}.react-flow__renderer{z-index:4}.react-flow__selection{z-index:6}.react-flow__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible{outline:none}.react-flow__edge-path{stroke:var(--xy-edge-stroke, var(--xy-edge-stroke-default));stroke-width:var(--xy-edge-stroke-width, var(--xy-edge-stroke-width-default));fill:none}.react-flow__connection-path{stroke:var(--xy-connectionline-stroke, var(--xy-connectionline-stroke-default));stroke-width:var(--xy-connectionline-stroke-width, var(--xy-connectionline-stroke-width-default));fill:none}.react-flow .react-flow__edges{position:absolute}.react-flow .react-flow__edges svg{overflow:visible;position:absolute;pointer-events:none}.react-flow__edge{pointer-events:visibleStroke}.react-flow__edge.selectable{cursor:pointer}.react-flow__edge.animated path{stroke-dasharray:5;animation:dashdraw .5s linear infinite}.react-flow__edge.animated path.react-flow__edge-interaction{stroke-dasharray:none;animation:none}.react-flow__edge.inactive{pointer-events:none}.react-flow__edge.selected,.react-flow__edge:focus,.react-flow__edge:focus-visible{outline:none}.react-flow__edge.selected .react-flow__edge-path,.react-flow__edge.selectable:focus .react-flow__edge-path,.react-flow__edge.selectable:focus-visible .react-flow__edge-path{stroke:var(--xy-edge-stroke-selected, var(--xy-edge-stroke-selected-default))}.react-flow__edge-textwrapper{pointer-events:all}.react-flow__edge .react-flow__edge-text{pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__connection{pointer-events:none}.react-flow__connection .animated{stroke-dasharray:5;animation:dashdraw .5s linear infinite}svg.react-flow__connectionline{z-index:1001;overflow:visible;position:absolute}.react-flow__nodes{pointer-events:none;transform-origin:0 0}.react-flow__node{position:absolute;-webkit-user-select:none;-moz-user-select:none;user-select:none;pointer-events:all;transform-origin:0 0;box-sizing:border-box;cursor:default}.react-flow__node.selectable{cursor:pointer}.react-flow__node.draggable{cursor:grab;pointer-events:all}.react-flow__node.draggable.dragging{cursor:grabbing}.react-flow__nodesselection{z-index:3;transform-origin:left top;pointer-events:none}.react-flow__nodesselection-rect{position:absolute;pointer-events:all;cursor:grab}.react-flow__handle{position:absolute;pointer-events:none;min-width:5px;min-height:5px;width:6px;height:6px;background-color:var(--xy-handle-background-color, var(--xy-handle-background-color-default));border:1px solid var(--xy-handle-border-color, var(--xy-handle-border-color-default));border-radius:100%}.react-flow__handle.connectingfrom{pointer-events:all}.react-flow__handle.connectionindicator{pointer-events:all;cursor:crosshair}.react-flow__handle-bottom{top:auto;left:50%;bottom:0;transform:translate(-50%,50%)}.react-flow__handle-top{top:0;left:50%;transform:translate(-50%,-50%)}.react-flow__handle-left{top:50%;left:0;transform:translate(-50%,-50%)}.react-flow__handle-right{top:50%;right:0;transform:translate(50%,-50%)}.react-flow__edgeupdater{cursor:move;pointer-events:all}.react-flow__panel{position:absolute;z-index:5;margin:15px}.react-flow__panel.top{top:0}.react-flow__panel.bottom{bottom:0}.react-flow__panel.left{left:0}.react-flow__panel.right{right:0}.react-flow__panel.center{left:50%;transform:translate(-50%)}.react-flow__attribution{font-size:10px;background:var(--xy-attribution-background-color, var(--xy-attribution-background-color-default));padding:2px 3px;margin:0}.react-flow__attribution a{text-decoration:none;color:#999}@keyframes dashdraw{0%{stroke-dashoffset:10}}.react-flow__edgelabel-renderer{position:absolute;width:100%;height:100%;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;left:0;top:0}.react-flow__viewport-portal{position:absolute;width:100%;height:100%;left:0;top:0;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__minimap{background:var( --xy-minimap-background-color-props, var(--xy-minimap-background-color, var(--xy-minimap-background-color-default)) )}.react-flow__minimap-svg{display:block}.react-flow__minimap-mask{fill:var( --xy-minimap-mask-background-color-props, var(--xy-minimap-mask-background-color, var(--xy-minimap-mask-background-color-default)) );stroke:var( --xy-minimap-mask-stroke-color-props, var(--xy-minimap-mask-stroke-color, var(--xy-minimap-mask-stroke-color-default)) );stroke-width:var( --xy-minimap-mask-stroke-width-props, var(--xy-minimap-mask-stroke-width, var(--xy-minimap-mask-stroke-width-default)) )}.react-flow__minimap-node{fill:var( --xy-minimap-node-background-color-props, var(--xy-minimap-node-background-color, var(--xy-minimap-node-background-color-default)) );stroke:var( --xy-minimap-node-stroke-color-props, var(--xy-minimap-node-stroke-color, var(--xy-minimap-node-stroke-color-default)) );stroke-width:var( --xy-minimap-node-stroke-width-props, var(--xy-minimap-node-stroke-width, var(--xy-minimap-node-stroke-width-default)) )}.react-flow__background-pattern.dots{fill:var( --xy-background-pattern-color-props, var(--xy-background-pattern-color, var(--xy-background-pattern-dots-color-default)) )}.react-flow__background-pattern.lines{stroke:var( --xy-background-pattern-color-props, var(--xy-background-pattern-color, var(--xy-background-pattern-lines-color-default)) )}.react-flow__background-pattern.cross{stroke:var( --xy-background-pattern-color-props, var(--xy-background-pattern-color, var(--xy-background-pattern-cross-color-default)) )}.react-flow__controls{display:flex;flex-direction:column;box-shadow:var(--xy-controls-box-shadow, var(--xy-controls-box-shadow-default))}.react-flow__controls.horizontal{flex-direction:row}.react-flow__controls-button{display:flex;justify-content:center;align-items:center;height:26px;width:26px;padding:4px;border:none;background:var(--xy-controls-button-background-color, var(--xy-controls-button-background-color-default));border-bottom:1px solid var( --xy-controls-button-border-color-props, var(--xy-controls-button-border-color, var(--xy-controls-button-border-color-default)) );color:var( --xy-controls-button-color-props, var(--xy-controls-button-color, var(--xy-controls-button-color-default)) );cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__controls-button svg{width:100%;max-width:12px;max-height:12px;fill:currentColor}.react-flow__edge.updating .react-flow__edge-path{stroke:#777}.react-flow__edge-text{font-size:10px}.react-flow__node.selectable:focus,.react-flow__node.selectable:focus-visible{outline:none}.react-flow__node-input,.react-flow__node-default,.react-flow__node-output,.react-flow__node-group{padding:10px;border-radius:var(--xy-node-border-radius, var(--xy-node-border-radius-default));width:150px;font-size:12px;color:var(--xy-node-color, var(--xy-node-color-default));text-align:center;border:var(--xy-node-border, var(--xy-node-border-default));background-color:var(--xy-node-background-color, var(--xy-node-background-color-default))}.react-flow__node-input.selectable:hover,.react-flow__node-default.selectable:hover,.react-flow__node-output.selectable:hover,.react-flow__node-group.selectable:hover{box-shadow:var(--xy-node-boxshadow-hover, var(--xy-node-boxshadow-hover-default))}.react-flow__node-input.selectable.selected,.react-flow__node-input.selectable:focus,.react-flow__node-input.selectable:focus-visible,.react-flow__node-default.selectable.selected,.react-flow__node-default.selectable:focus,.react-flow__node-default.selectable:focus-visible,.react-flow__node-output.selectable.selected,.react-flow__node-output.selectable:focus,.react-flow__node-output.selectable:focus-visible,.react-flow__node-group.selectable.selected,.react-flow__node-group.selectable:focus,.react-flow__node-group.selectable:focus-visible{box-shadow:var(--xy-node-boxshadow-selected, var(--xy-node-boxshadow-selected-default))}.react-flow__node-group{background-color:var(--xy-node-group-background-color, var(--xy-node-group-background-color-default))}.react-flow__nodesselection-rect,.react-flow__selection{background:var(--xy-selection-background-color, var(--xy-selection-background-color-default));border:var(--xy-selection-border, var(--xy-selection-border-default))}.react-flow__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible,.react-flow__selection:focus,.react-flow__selection:focus-visible{outline:none}.react-flow__controls-button:hover{background:var( --xy-controls-button-background-color-hover-props, var(--xy-controls-button-background-color-hover, var(--xy-controls-button-background-color-hover-default)) );color:var( --xy-controls-button-color-hover-props, var(--xy-controls-button-color-hover, var(--xy-controls-button-color-hover-default)) )}.react-flow__controls-button:disabled{pointer-events:none}.react-flow__controls-button:disabled svg{fill-opacity:.4}.react-flow__controls-button:last-child{border-bottom:none}.react-flow__resize-control{position:absolute}.react-flow__resize-control.left,.react-flow__resize-control.right{cursor:ew-resize}.react-flow__resize-control.top,.react-flow__resize-control.bottom{cursor:ns-resize}.react-flow__resize-control.top.left,.react-flow__resize-control.bottom.right{cursor:nwse-resize}.react-flow__resize-control.bottom.left,.react-flow__resize-control.top.right{cursor:nesw-resize}.react-flow__resize-control.handle{width:4px;height:4px;border:1px solid #fff;border-radius:1px;background-color:var(--xy-resize-background-color, var(--xy-resize-background-color-default));transform:translate(-50%,-50%)}.react-flow__resize-control.handle.left{left:0;top:50%}.react-flow__resize-control.handle.right{left:100%;top:50%}.react-flow__resize-control.handle.top{left:50%;top:0}.react-flow__resize-control.handle.bottom{left:50%;top:100%}.react-flow__resize-control.handle.top.left,.react-flow__resize-control.handle.bottom.left{left:0}.react-flow__resize-control.handle.top.right,.react-flow__resize-control.handle.bottom.right{left:100%}.react-flow__resize-control.line{border-color:var(--xy-resize-background-color, var(--xy-resize-background-color-default));border-width:0;border-style:solid}.react-flow__resize-control.line.left,.react-flow__resize-control.line.right{width:1px;transform:translate(-50%);top:0;height:100%}.react-flow__resize-control.line.left{left:0;border-left-width:1px}.react-flow__resize-control.line.right{left:100%;border-right-width:1px}.react-flow__resize-control.line.top,.react-flow__resize-control.line.bottom{height:1px;transform:translateY(-50%);left:0;width:100%}.react-flow__resize-control.line.top{top:0;border-top-width:1px}.react-flow__resize-control.line.bottom{border-bottom-width:1px;top:100%}.react-flow__edge-textbg{fill:var(--xy-edge-label-background-color, var(--xy-edge-label-background-color-default))}.react-flow__edge-text{fill:var(--xy-edge-label-color, var(--xy-edge-label-color-default))}*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}:before,:after{--tw-content: ""}html,:host{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]{display:none}:root{--background: 0 0% 100%;--foreground: 240 10% 3.9%;--popover: 0 0% 100%;--popover-foreground: 240 10% 3.9%;--primary: 240 5.9% 10%;--primary-foreground: 0 0% 98%;--secondary: 240 4.8% 95.9%;--secondary-foreground: 240 5.9% 10%;--muted: 240 4.8% 95.9%;--muted-foreground: 240 3.8% 46.1%;--accent: 240 4.8% 95.9%;--accent-foreground: 240 5.9% 10%;--destructive: 0 84.2% 60.2%;--destructive-foreground: 0 0% 98%;--border: 240 5.9% 90%;--input: 240 5.9% 90%;--ring: 240 5.9% 10%}*{border-color:hsl(var(--border))}*,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }.\!sl-pointer-events-none{pointer-events:none!important}.sl-pointer-events-none{pointer-events:none}.sl-pointer-events-auto{pointer-events:auto}.sl-fixed{position:fixed}.sl-absolute{position:absolute}.sl-relative{position:relative}.sl-sticky{position:sticky}.-sl-left-0{left:-0px}.-sl-left-0\.5{left:-.125rem}.-sl-right-\[3px\]{right:-3px}.-sl-top-0{top:-0px}.-sl-top-0\.5{top:-.125rem}.-sl-top-1{top:-.25rem}.-sl-top-4{top:-1rem}.sl-bottom-0{bottom:0}.sl-bottom-10{bottom:2.5rem}.sl-left-0{left:0}.sl-left-1\/2{left:50%}.sl-left-2{left:.5rem}.sl-left-2\.5{left:.625rem}.sl-right-0{right:0}.sl-right-2{right:.5rem}.sl-right-2\.5{right:.625rem}.sl-right-4{right:1rem}.sl-top-0{top:0}.sl-top-1\/2{top:50%}.sl-top-2{top:.5rem}.sl-top-4{top:1rem}.sl-top-\[58px\]{top:58px}.sl-z-0{z-index:0}.sl-z-10{z-index:10}.sl-z-40{z-index:40}.sl-z-50{z-index:50}.sl-z-\[100\]{z-index:100}.-sl-mx-1{margin-left:-.25rem;margin-right:-.25rem}.sl-my-1{margin-top:.25rem;margin-bottom:.25rem}.sl-mb-2{margin-bottom:.5rem}.sl-ml-2{margin-left:.5rem}.sl-ml-auto{margin-left:auto}.sl-mr-1{margin-right:.25rem}.sl-mr-2{margin-right:.5rem}.sl-mt-0{margin-top:0}.sl-mt-0\.5{margin-top:.125rem}.sl-mt-1{margin-top:.25rem}.sl-mt-\[calc\(28px\+36px\)\]{margin-top:64px}.sl-line-clamp-1{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:1}.sl-line-clamp-2{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2}.sl-flex{display:flex}.sl-inline-flex{display:inline-flex}.sl-hidden{display:none}.\!sl-h-\[14px\]{height:14px!important}.sl-h-10{height:2.5rem}.sl-h-12{height:3rem}.sl-h-20{height:5rem}.sl-h-24{height:6rem}.sl-h-3{height:.75rem}.sl-h-3\.5{height:.875rem}.sl-h-4{height:1rem}.sl-h-40{height:10rem}.sl-h-5{height:1.25rem}.sl-h-7{height:1.75rem}.sl-h-8{height:2rem}.sl-h-9{height:2.25rem}.sl-h-\[300px\]{height:300px}.sl-h-\[34px\]{height:34px}.sl-h-\[600px\]{height:600px}.sl-h-\[calc\(100\%-28px-28px\)\]{height:calc(100% - 56px)}.sl-h-\[var\(--radix-select-trigger-height\)\]{height:var(--radix-select-trigger-height)}.sl-h-fit{height:fit-content}.sl-h-full{height:100%}.sl-h-px{height:1px}.sl-h-screen{height:100vh}.sl-max-h-9{max-height:2.25rem}.sl-max-h-96{max-height:24rem}.sl-max-h-\[80\%\]{max-height:80%}.sl-min-h-13{min-height:3.25rem}.sl-min-h-\[24px\]{min-height:24px}.\!sl-w-\[14px\]{width:14px!important}.sl-w-1{width:.25rem}.sl-w-1\.5{width:.375rem}.sl-w-1\/2{width:50%}.sl-w-100{width:25rem}.sl-w-12{width:3rem}.sl-w-3{width:.75rem}.sl-w-3\.5{width:.875rem}.sl-w-32{width:8rem}.sl-w-4{width:1rem}.sl-w-5{width:1.25rem}.sl-w-56{width:14rem}.sl-w-60{width:15rem}.sl-w-79{width:19.75rem}.sl-w-8{width:2rem}.sl-w-9{width:2.25rem}.sl-w-96{width:24rem}.sl-w-\[1000px\]{width:1000px}.sl-w-fit{width:fit-content}.sl-w-full{width:100%}.sl-w-screen{width:100vw}.sl-min-w-28{min-width:7rem}.sl-min-w-\[400px\]{min-width:400px}.sl-min-w-\[8rem\]{min-width:8rem}.sl-min-w-\[var\(--radix-select-trigger-width\)\]{min-width:var(--radix-select-trigger-width)}.sl-max-w-\[220px\]{max-width:220px}.sl-max-w-\[240px\]{max-width:240px}.sl-max-w-\[80\%\]{max-width:80%}.sl-flex-shrink-0,.sl-shrink-0{flex-shrink:0}.-sl-translate-x-1\/2{--tw-translate-x: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-sl-translate-y-1\/2{--tw-translate-y: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.sl-transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@keyframes sl-spin{to{transform:rotate(360deg)}}.sl-animate-spin{animation:sl-spin 1s linear infinite}.sl-cursor-col-resize{cursor:col-resize}.sl-cursor-default{cursor:default}.sl-cursor-not-allowed{cursor:not-allowed}.sl-cursor-pointer{cursor:pointer}.sl-select-none{user-select:none}.sl-resize-none{resize:none}.sl-flex-col{flex-direction:column}.sl-flex-wrap{flex-wrap:wrap}.sl-items-center{align-items:center}.sl-justify-start{justify-content:flex-start}.sl-justify-end{justify-content:flex-end}.sl-justify-center{justify-content:center}.sl-justify-between{justify-content:space-between}.sl-gap-1{gap:.25rem}.sl-gap-2{gap:.5rem}.sl-gap-4{gap:1rem}.sl-gap-x-2{column-gap:.5rem}.sl-gap-y-1{row-gap:.25rem}.sl-overflow-auto{overflow:auto}.sl-overflow-hidden{overflow:hidden}.sl-overflow-y-clip{overflow-y:clip}.sl-overflow-x-scroll{overflow-x:scroll}.sl-overflow-ellipsis{text-overflow:ellipsis}.sl-whitespace-nowrap{white-space:nowrap}.sl-text-wrap{text-wrap:wrap}.sl-break-words{overflow-wrap:break-word}.sl-break-all{word-break:break-all}.\!sl-rounded-full{border-radius:9999px!important}.sl-rounded-full{border-radius:9999px}.sl-rounded-lg{border-radius:8px}.sl-rounded-md{border-radius:4px}.sl-rounded-none{border-radius:0}.sl-rounded-sm{border-radius:2px}.sl-rounded-l-md{border-top-left-radius:4px;border-bottom-left-radius:4px}.sl-rounded-r-md{border-top-right-radius:4px;border-bottom-right-radius:4px}.sl-rounded-t-lg{border-top-left-radius:8px;border-top-right-radius:8px}.\!sl-border-2{border-width:2px!important}.sl-border{border-width:1px}.sl-border-b{border-bottom-width:1px}.sl-border-b-0{border-bottom-width:0px}.sl-border-l{border-left-width:1px}.sl-border-l-0{border-left-width:0px}.sl-border-r{border-right-width:1px}.sl-border-r-0{border-right-width:0px}.sl-border-t{border-top-width:1px}.sl-border-t-0{border-top-width:0px}.sl-border-none{border-style:none}.\!sl-border-info-300{--tw-border-opacity: 1 !important;border-color:rgb(70 87 225 / var(--tw-border-opacity))!important}.\!sl-border-primary-700{--tw-border-opacity: 1 !important;border-color:rgb(71 71 114 / var(--tw-border-opacity))!important}.sl-border-black{--tw-border-opacity: 1;border-color:rgb(0 0 0 / var(--tw-border-opacity))}.sl-border-danger-300{--tw-border-opacity: 1;border-color:rgb(211 48 48 / var(--tw-border-opacity))}.sl-border-info-100{--tw-border-opacity: 1;border-color:rgb(225 229 255 / var(--tw-border-opacity))}.sl-border-info-200{--tw-border-opacity: 1;border-color:rgb(99 115 255 / var(--tw-border-opacity))}.sl-border-info-300{--tw-border-opacity: 1;border-color:rgb(70 87 225 / var(--tw-border-opacity))}.sl-border-info-400{--tw-border-opacity: 1;border-color:rgb(0 19 183 / var(--tw-border-opacity))}.sl-border-input{border-color:hsl(var(--input))}.sl-border-primary-100{--tw-border-opacity: 1;border-color:rgb(242 242 252 / var(--tw-border-opacity))}.sl-border-primary-200{--tw-border-opacity: 1;border-color:rgb(220 220 237 / var(--tw-border-opacity))}.sl-border-primary-300{--tw-border-opacity: 1;border-color:rgb(193 193 217 / var(--tw-border-opacity))}.sl-border-primary-50{--tw-border-opacity: 1;border-color:rgb(251 251 255 / var(--tw-border-opacity))}.sl-border-primary-700{--tw-border-opacity: 1;border-color:rgb(71 71 114 / var(--tw-border-opacity))}.sl-border-success-300{--tw-border-opacity: 1;border-color:rgb(28 191 102 / var(--tw-border-opacity))}.sl-border-transparent{border-color:transparent}.sl-border-l-transparent{border-left-color:transparent}.sl-border-t-transparent{border-top-color:transparent}.\!sl-bg-info-300{--tw-bg-opacity: 1 !important;background-color:rgb(70 87 225 / var(--tw-bg-opacity))!important}.\!sl-bg-primary-700{--tw-bg-opacity: 1 !important;background-color:rgb(71 71 114 / var(--tw-bg-opacity))!important}.\!sl-bg-white{--tw-bg-opacity: 1 !important;background-color:rgb(255 255 255 / var(--tw-bg-opacity))!important}.sl-bg-background{background-color:hsl(var(--background))}.sl-bg-blue-400{--tw-bg-opacity: 1;background-color:rgb(96 165 250 / var(--tw-bg-opacity))}.sl-bg-destructive{background-color:hsl(var(--destructive))}.sl-bg-info-100{--tw-bg-opacity: 1;background-color:rgb(225 229 255 / var(--tw-bg-opacity))}.sl-bg-info-300{--tw-bg-opacity: 1;background-color:rgb(70 87 225 / var(--tw-bg-opacity))}.sl-bg-info-50{--tw-bg-opacity: 1;background-color:rgb(244 246 255 / var(--tw-bg-opacity))}.sl-bg-muted{background-color:hsl(var(--muted))}.sl-bg-neutral-300{--tw-bg-opacity: 1;background-color:rgb(212 212 212 / var(--tw-bg-opacity))}.sl-bg-neutral-400{--tw-bg-opacity: 1;background-color:rgb(163 163 163 / var(--tw-bg-opacity))}.sl-bg-popover{background-color:hsl(var(--popover))}.sl-bg-primary-100{--tw-bg-opacity: 1;background-color:rgb(242 242 252 / var(--tw-bg-opacity))}.sl-bg-primary-200{--tw-bg-opacity: 1;background-color:rgb(220 220 237 / var(--tw-bg-opacity))}.sl-bg-primary-400{--tw-bg-opacity: 1;background-color:rgb(174 174 206 / var(--tw-bg-opacity))}.sl-bg-primary-50{--tw-bg-opacity: 1;background-color:rgb(251 251 255 / var(--tw-bg-opacity))}.sl-bg-primary-900{--tw-bg-opacity: 1;background-color:rgb(31 31 62 / var(--tw-bg-opacity))}.sl-bg-secondary{background-color:hsl(var(--secondary))}.sl-bg-transparent{background-color:transparent}.sl-bg-white{--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity))}.sl-bg-white\/25{background-color:#ffffff40}.sl-fill-current{fill:currentColor}.sl-stroke-2{stroke-width:2}.sl-object-contain{object-fit:contain}.sl-p-1{padding:.25rem}.sl-p-2{padding:.5rem}.sl-p-4{padding:1rem}.sl-p-6{padding:1.5rem}.sl-px-2{padding-left:.5rem;padding-right:.5rem}.sl-px-3{padding-left:.75rem;padding-right:.75rem}.sl-px-4{padding-left:1rem;padding-right:1rem}.sl-px-7{padding-left:1.75rem;padding-right:1.75rem}.sl-px-8{padding-left:2rem;padding-right:2rem}.sl-py-1{padding-top:.25rem;padding-bottom:.25rem}.sl-py-1\.5{padding-top:.375rem;padding-bottom:.375rem}.sl-py-2{padding-top:.5rem;padding-bottom:.5rem}.sl-py-6{padding-top:1.5rem;padding-bottom:1.5rem}.sl-pb-2{padding-bottom:.5rem}.sl-pb-\[100\%\]{padding-bottom:100%}.sl-pl-1{padding-left:.25rem}.sl-pl-2{padding-left:.5rem}.sl-pl-3{padding-left:.75rem}.sl-pl-8{padding-left:2rem}.sl-pr-2{padding-right:.5rem}.sl-pr-3{padding-right:.75rem}.sl-pr-4{padding-right:1rem}.sl-pr-8{padding-right:2rem}.sl-pr-px{padding-right:1px}.sl-pt-2{padding-top:.5rem}.sl-text-left{text-align:left}.sl-text-center{text-align:center}.sl-text-lg{font-size:16px;line-height:20px}.sl-text-md{font-size:14px;line-height:18px}.sl-text-sm{font-size:12px;line-height:16px}.sl-text-xs{font-size:10px;line-height:14px}.sl-font-bold{font-weight:700}.sl-font-medium{font-weight:500}.sl-font-regular{font-weight:400}.sl-font-semibold{font-weight:600}.sl-tracking-widest{letter-spacing:.1em}.sl-text-current{color:currentColor}.sl-text-danger-300{--tw-text-opacity: 1;color:rgb(211 48 48 / var(--tw-text-opacity))}.sl-text-destructive-foreground{color:hsl(var(--destructive-foreground))}.sl-text-info-300{--tw-text-opacity: 1;color:rgb(70 87 225 / var(--tw-text-opacity))}.sl-text-info-400{--tw-text-opacity: 1;color:rgb(0 19 183 / var(--tw-text-opacity))}.sl-text-neutral-500{--tw-text-opacity: 1;color:rgb(115 115 115 / var(--tw-text-opacity))}.sl-text-popover-foreground{color:hsl(var(--popover-foreground))}.sl-text-primary-400{--tw-text-opacity: 1;color:rgb(174 174 206 / var(--tw-text-opacity))}.sl-text-primary-500{--tw-text-opacity: 1;color:rgb(146 146 186 / var(--tw-text-opacity))}.sl-text-primary-600{--tw-text-opacity: 1;color:rgb(99 99 143 / var(--tw-text-opacity))}.sl-text-primary-700{--tw-text-opacity: 1;color:rgb(71 71 114 / var(--tw-text-opacity))}.sl-text-primary-800{--tw-text-opacity: 1;color:rgb(53 53 88 / var(--tw-text-opacity))}.sl-text-secondary-foreground{color:hsl(var(--secondary-foreground))}.sl-text-success-300{--tw-text-opacity: 1;color:rgb(28 191 102 / var(--tw-text-opacity))}.sl-text-success-400{--tw-text-opacity: 1;color:rgb(25 150 82 / var(--tw-text-opacity))}.sl-text-white{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity))}.sl-underline{text-decoration-line:underline}.sl-underline-offset-4{text-underline-offset:4px}.\!sl-opacity-0{opacity:0!important}.sl-opacity-0{opacity:0}.sl-opacity-100{opacity:1}.sl-opacity-50{opacity:.5}.sl-opacity-60{opacity:.6}.sl-shadow{--tw-shadow: 0 1px 3px 0 rgb(0 0 0 / .1), 0 1px 2px -1px rgb(0 0 0 / .1);--tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.sl-shadow-lg{--tw-shadow: 0px 8px 8px -4px rgba(16, 24, 40, .03), 0px 20px 24px -6px rgba(16, 24, 40, .08);--tw-shadow-colored: 0px 8px 8px -4px var(--tw-shadow-color), 0px 20px 24px -6px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.sl-shadow-md{--tw-shadow: 0px 4px 6px -2px rgba(16, 24, 40, .03), 0px 12px 16px -4px rgba(16, 24, 40, .08);--tw-shadow-colored: 0px 4px 6px -2px var(--tw-shadow-color), 0px 12px 16px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.sl-shadow-sm{--tw-shadow: 0px 2px 4px -2px rgba(16, 24, 40, .06), 0px 4px 8px -2px rgba(16, 24, 40, .1);--tw-shadow-colored: 0px 2px 4px -2px var(--tw-shadow-color), 0px 4px 8px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.sl-outline-none{outline:2px solid transparent;outline-offset:2px}.sl-outline{outline-style:solid}.sl-outline-sky-100{outline-color:#e0f2fe}.sl-ring-offset-background{--tw-ring-offset-color: hsl(var(--background))}.sl-drop-shadow-md{--tw-drop-shadow: drop-shadow(0 4px 3px rgb(0 0 0 / .07)) drop-shadow(0 2px 2px rgb(0 0 0 / .06));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)}.sl-backdrop-blur-sm{--tw-backdrop-blur: blur(4px);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.sl-transition-all{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.sl-transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.sl-ease-linear{transition-timing-function:linear}@keyframes enter{0%{opacity:var(--tw-enter-opacity, 1);transform:translate3d(var(--tw-enter-translate-x, 0),var(--tw-enter-translate-y, 0),0) scale3d(var(--tw-enter-scale, 1),var(--tw-enter-scale, 1),var(--tw-enter-scale, 1)) rotate(var(--tw-enter-rotate, 0))}}@keyframes exit{to{opacity:var(--tw-exit-opacity, 1);transform:translate3d(var(--tw-exit-translate-x, 0),var(--tw-exit-translate-y, 0),0) scale3d(var(--tw-exit-scale, 1),var(--tw-exit-scale, 1),var(--tw-exit-scale, 1)) rotate(var(--tw-exit-rotate, 0))}}.sl-animate-in{animation-name:enter;animation-duration:.15s;--tw-enter-opacity: initial;--tw-enter-scale: initial;--tw-enter-rotate: initial;--tw-enter-translate-x: initial;--tw-enter-translate-y: initial}.sl-fade-in-0{--tw-enter-opacity: 0}.sl-zoom-in-95{--tw-enter-scale: .95}.sl-ease-linear{animation-timing-function:linear}.file\:sl-border-transparent::file-selector-button{border-color:transparent}.file\:sl-bg-transparent::file-selector-button{background-color:transparent}.file\:sl-text-sm::file-selector-button{font-size:12px;line-height:16px}.file\:sl-font-medium::file-selector-button{font-weight:500}.placeholder\:sl-font-semibold::placeholder{font-weight:600}.placeholder\:sl-text-muted-foreground::placeholder{color:hsl(var(--muted-foreground))}.placeholder\:sl-text-primary-600::placeholder{--tw-text-opacity: 1;color:rgb(99 99 143 / var(--tw-text-opacity))}.last\:sl-border-r-0:last-child{border-right-width:0px}.last\:sl-pr-0:last-child{padding-right:0}.hover\:sl-border-primary-500:hover{--tw-border-opacity: 1;border-color:rgb(146 146 186 / var(--tw-border-opacity))}.hover\:sl-bg-accent:hover{background-color:hsl(var(--accent))}.hover\:sl-bg-danger-50:hover{--tw-bg-opacity: 1;background-color:rgb(255 246 246 / var(--tw-bg-opacity))}.hover\:sl-bg-destructive\/90:hover{background-color:hsl(var(--destructive) / .9)}.hover\:sl-bg-info-50:hover{--tw-bg-opacity: 1;background-color:rgb(244 246 255 / var(--tw-bg-opacity))}.hover\:sl-bg-primary-50:hover{--tw-bg-opacity: 1;background-color:rgb(251 251 255 / var(--tw-bg-opacity))}.hover\:sl-bg-secondary\/80:hover{background-color:hsl(var(--secondary) / .8)}.hover\:sl-bg-success-50:hover{--tw-bg-opacity: 1;background-color:rgb(239 255 246 / var(--tw-bg-opacity))}.hover\:sl-bg-warning-50:hover{--tw-bg-opacity: 1;background-color:rgb(255 251 243 / var(--tw-bg-opacity))}.hover\:sl-text-accent-foreground:hover{color:hsl(var(--accent-foreground))}.hover\:sl-text-danger-400:hover{--tw-text-opacity: 1;color:rgb(156 19 19 / var(--tw-text-opacity))}.hover\:sl-text-info-400:hover{--tw-text-opacity: 1;color:rgb(0 19 183 / var(--tw-text-opacity))}.hover\:sl-text-primary-800:hover{--tw-text-opacity: 1;color:rgb(53 53 88 / var(--tw-text-opacity))}.hover\:sl-text-success-400:hover{--tw-text-opacity: 1;color:rgb(25 150 82 / var(--tw-text-opacity))}.hover\:sl-text-warning-400:hover{--tw-text-opacity: 1;color:rgb(199 134 3 / var(--tw-text-opacity))}.hover\:sl-underline:hover{text-decoration-line:underline}.hover\:sl-opacity-100:hover{opacity:1}.hover\:sl-shadow-md:hover{--tw-shadow: 0px 4px 6px -2px rgba(16, 24, 40, .03), 0px 12px 16px -4px rgba(16, 24, 40, .08);--tw-shadow-colored: 0px 4px 6px -2px var(--tw-shadow-color), 0px 12px 16px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.focus\:sl-bg-accent:focus{background-color:hsl(var(--accent))}.focus\:sl-text-accent-foreground:focus{color:hsl(var(--accent-foreground))}.focus\:sl-text-primary-900:focus{--tw-text-opacity: 1;color:rgb(31 31 62 / var(--tw-text-opacity))}.focus\:sl-outline-none:focus{outline:2px solid transparent;outline-offset:2px}.focus\:sl-ring-0:focus{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus\:sl-ring-1:focus{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus\:sl-ring-ring:focus{--tw-ring-color: hsl(var(--ring))}.focus-visible\:sl-border-primary-700:focus-visible{--tw-border-opacity: 1;border-color:rgb(71 71 114 / var(--tw-border-opacity))}.focus-visible\:sl-outline-none:focus-visible{outline:2px solid transparent;outline-offset:2px}.focus-visible\:sl-ring-1:focus-visible{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus-visible\:sl-ring-ring:focus-visible{--tw-ring-color: hsl(var(--ring))}.active\:sl-border-danger-400:active{--tw-border-opacity: 1;border-color:rgb(156 19 19 / var(--tw-border-opacity))}.active\:sl-border-info-400:active{--tw-border-opacity: 1;border-color:rgb(0 19 183 / var(--tw-border-opacity))}.active\:sl-border-primary-600:active{--tw-border-opacity: 1;border-color:rgb(99 99 143 / var(--tw-border-opacity))}.active\:sl-border-primary-700:active{--tw-border-opacity: 1;border-color:rgb(71 71 114 / var(--tw-border-opacity))}.active\:sl-border-success-400:active{--tw-border-opacity: 1;border-color:rgb(25 150 82 / var(--tw-border-opacity))}.active\:sl-border-warning-400:active{--tw-border-opacity: 1;border-color:rgb(199 134 3 / var(--tw-border-opacity))}.active\:sl-bg-danger-50:active{--tw-bg-opacity: 1;background-color:rgb(255 246 246 / var(--tw-bg-opacity))}.active\:sl-bg-info-50:active{--tw-bg-opacity: 1;background-color:rgb(244 246 255 / var(--tw-bg-opacity))}.active\:sl-bg-primary-200:active{--tw-bg-opacity: 1;background-color:rgb(220 220 237 / var(--tw-bg-opacity))}.active\:sl-bg-success-50:active{--tw-bg-opacity: 1;background-color:rgb(239 255 246 / var(--tw-bg-opacity))}.active\:sl-bg-warning-50:active{--tw-bg-opacity: 1;background-color:rgb(255 251 243 / var(--tw-bg-opacity))}.active\:sl-text-danger-400:active{--tw-text-opacity: 1;color:rgb(156 19 19 / var(--tw-text-opacity))}.active\:sl-text-info-400:active{--tw-text-opacity: 1;color:rgb(0 19 183 / var(--tw-text-opacity))}.active\:sl-text-primary-800:active{--tw-text-opacity: 1;color:rgb(53 53 88 / var(--tw-text-opacity))}.disabled\:sl-pointer-events-none:disabled{pointer-events:none}.disabled\:sl-cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:sl-border-primary-100:disabled{--tw-border-opacity: 1;border-color:rgb(242 242 252 / var(--tw-border-opacity))}.disabled\:sl-border-transparent:disabled{border-color:transparent}.disabled\:sl-bg-primary-100:disabled{--tw-bg-opacity: 1;background-color:rgb(242 242 252 / var(--tw-bg-opacity))}.disabled\:sl-text-primary-500:disabled{--tw-text-opacity: 1;color:rgb(146 146 186 / var(--tw-text-opacity))}.disabled\:sl-opacity-50:disabled{opacity:.5}.disabled\:sl-shadow-none:disabled{--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.data-\[disabled\]\:sl-pointer-events-none[data-disabled]{pointer-events:none}.data-\[side\=bottom\]\:sl-translate-y-1[data-side=bottom]{--tw-translate-y: .25rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\[side\=left\]\:-sl-translate-x-1[data-side=left]{--tw-translate-x: -.25rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\[side\=right\]\:sl-translate-x-1[data-side=right]{--tw-translate-x: .25rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\[side\=top\]\:-sl-translate-y-1[data-side=top]{--tw-translate-y: -.25rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\[state\=closed\]\:sl-transform-none[data-state=closed]{transform:none}.data-\[side\=bottom\]\:sl-animate-none[data-side=bottom],.data-\[state\=closed\]\:sl-animate-none[data-state=closed]{animation:none}.data-\[state\=open\]\:sl-bg-accent[data-state=open]{background-color:hsl(var(--accent))}.data-\[disabled\]\:sl-text-primary-500[data-disabled]{--tw-text-opacity: 1;color:rgb(146 146 186 / var(--tw-text-opacity))}.data-\[disabled\]\:sl-opacity-50[data-disabled]{opacity:.5}.data-\[state\=closed\]\:sl-transition-none[data-state=closed]{transition-property:none}.data-\[state\=open\]\:sl-animate-in[data-state=open]{animation-name:enter;animation-duration:.15s;--tw-enter-opacity: initial;--tw-enter-scale: initial;--tw-enter-rotate: initial;--tw-enter-translate-x: initial;--tw-enter-translate-y: initial}.data-\[state\=closed\]\:sl-animate-out[data-state=closed]{animation-name:exit;animation-duration:.15s;--tw-exit-opacity: initial;--tw-exit-scale: initial;--tw-exit-rotate: initial;--tw-exit-translate-x: initial;--tw-exit-translate-y: initial}.data-\[state\=closed\]\:sl-fade-out-0[data-state=closed]{--tw-exit-opacity: 0}.data-\[state\=open\]\:sl-fade-in-0[data-state=open]{--tw-enter-opacity: 0}.data-\[state\=closed\]\:sl-zoom-out-95[data-state=closed]{--tw-exit-scale: .95}.data-\[state\=open\]\:sl-zoom-in-95[data-state=open]{--tw-enter-scale: .95}.data-\[side\=bottom\]\:sl-slide-in-from-top-2[data-side=bottom]{--tw-enter-translate-y: -.5rem}.data-\[side\=left\]\:sl-slide-in-from-right-2[data-side=left]{--tw-enter-translate-x: .5rem}.data-\[side\=right\]\:sl-slide-in-from-left-2[data-side=right]{--tw-enter-translate-x: -.5rem}.data-\[side\=top\]\:sl-slide-in-from-bottom-2[data-side=top]{--tw-enter-translate-y: .5rem}.\[\&\>span\]\:sl-line-clamp-1>span{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:1}.\[\&\>svg\]\:sl-h-4>svg{height:1rem}.\[\&\>svg\]\:sl-h-5>svg{height:1.25rem}.\[\&\>svg\]\:sl-w-4>svg{width:1rem}.\[\&\>svg\]\:sl-w-5>svg{width:1.25rem}