@mathews_cometchat/bubble-builder 1.0.0-alpha29 → 1.0.0-alpha30

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 (41) hide show
  1. package/dist/App.d.ts +1 -0
  2. package/dist/bridge/api.d.ts +64 -0
  3. package/dist/{assets/index-BIQymSWl.css → bubble-builder.css} +1 -0
  4. package/dist/bubble-builder.es.js +22793 -0
  5. package/dist/bubble-builder.umd.js +20 -0
  6. package/dist/components/Canvas.d.ts +2 -0
  7. package/dist/components/CanvasViewToggle.d.ts +4 -0
  8. package/dist/components/EditorLayout.d.ts +2 -0
  9. package/dist/components/ElementTree.d.ts +2 -0
  10. package/dist/components/LeftPanel.d.ts +2 -0
  11. package/dist/components/NotificationPreview.d.ts +3 -0
  12. package/dist/components/RightPanel.d.ts +2 -0
  13. package/dist/components/ShortcutsPanel.d.ts +2 -0
  14. package/dist/components/TemplateLibrary.d.ts +2 -0
  15. package/dist/components/TopBar.d.ts +2 -0
  16. package/dist/components/properties/ActionEditor.d.ts +7 -0
  17. package/dist/components/properties/BubbleSettingsEditor.d.ts +1 -0
  18. package/dist/components/properties/ElementPropertyEditor.d.ts +7 -0
  19. package/dist/components/properties/IconPicker.d.ts +6 -0
  20. package/dist/components/properties/NotificationEditor.d.ts +1 -0
  21. package/dist/components/properties/VariableInput.d.ts +10 -0
  22. package/dist/components/renderers/ElementRenderer.d.ts +19 -0
  23. package/dist/components/ui/Button.d.ts +8 -0
  24. package/dist/components/ui/Modal.d.ts +11 -0
  25. package/dist/config/builder-config.d.ts +37 -0
  26. package/dist/config/component-templates.d.ts +11 -0
  27. package/dist/config/element-defaults.d.ts +8 -0
  28. package/dist/config/icon-library.d.ts +11 -0
  29. package/dist/config/theme.d.ts +11 -0
  30. package/dist/config/uikit-theme.d.ts +73 -0
  31. package/dist/hooks/useKeyboardShortcuts.d.ts +1 -0
  32. package/dist/lib.d.ts +52 -0
  33. package/dist/store/builder-store.d.ts +101 -0
  34. package/dist/types/schema.d.ts +315 -0
  35. package/dist/utils/element-errors.d.ts +9 -0
  36. package/dist/utils/id.d.ts +4 -0
  37. package/dist/utils/portal-root.d.ts +2 -0
  38. package/dist/utils/validate.d.ts +6 -0
  39. package/package.json +1 -1
  40. package/dist/assets/index-ByxA164g.js +0 -20
  41. package/dist/index.html +0 -15
package/dist/App.d.ts ADDED
@@ -0,0 +1 @@
1
+ export default function App(): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,64 @@
1
+ import type { BubbleMessage } from '../types/schema';
2
+ export interface ApiTemplate {
3
+ id: string;
4
+ name: string;
5
+ description?: string;
6
+ schemaVersion: string;
7
+ bubbleData: BubbleMessage;
8
+ thumbnail?: string;
9
+ createdBy?: string;
10
+ createdAt: number;
11
+ updatedAt: number;
12
+ }
13
+ export interface ApiListMeta {
14
+ previous?: {
15
+ affix: string;
16
+ createdAt: number;
17
+ };
18
+ current: {
19
+ limit: number;
20
+ count: number;
21
+ };
22
+ next?: {
23
+ affix: string;
24
+ createdAt: number;
25
+ };
26
+ }
27
+ export interface ApiError {
28
+ code: string;
29
+ message: string;
30
+ details?: string[];
31
+ }
32
+ export declare function listTemplates(params?: {
33
+ limit?: number;
34
+ affix?: 'prepend' | 'append';
35
+ createdAt?: number;
36
+ search?: string;
37
+ }): Promise<{
38
+ data: ApiTemplate[];
39
+ meta: ApiListMeta;
40
+ }>;
41
+ export declare function getTemplate(id: string): Promise<{
42
+ data: ApiTemplate;
43
+ }>;
44
+ export declare function createTemplate(body: {
45
+ name: string;
46
+ description?: string;
47
+ bubbleData: BubbleMessage;
48
+ thumbnail?: string;
49
+ createdBy?: string;
50
+ }): Promise<{
51
+ data: ApiTemplate;
52
+ }>;
53
+ export declare function updateTemplate(id: string, body: {
54
+ name?: string;
55
+ description?: string;
56
+ bubbleData?: BubbleMessage;
57
+ }): Promise<{
58
+ data: ApiTemplate;
59
+ }>;
60
+ export declare function deleteTemplate(id: string): Promise<{
61
+ data: {
62
+ success: boolean;
63
+ };
64
+ }>;
@@ -1 +1,2 @@
1
1
  .bb-root .tl-container{max-width:61.4286rem;margin:0 auto;padding:4.57143rem 1.71429rem}.bb-root .tl-header{text-align:center;margin-bottom:3.14286rem}.bb-root .tl-logo{background:var(--accent-primary);color:#fff;border-radius:.85714rem;justify-content:center;align-items:center;width:3.42857rem;height:3.42857rem;margin:0 auto 1.14286rem;font-size:1.14286rem;font-weight:800;display:flex}.bb-root .tl-title{color:var(--text-primary);font-size:1.14286rem;font-weight:700}.bb-root .tl-subtitle{color:var(--text-secondary);margin-top:.42857rem;font-size:1rem}.bb-root .tl-actions{gap:.71429rem;margin-bottom:2.57143rem;display:flex}.bb-root .tl-search{flex:1}.bb-root .tl-section{margin-bottom:2.57143rem}.bb-root .tl-section-title{color:#141414;margin-bottom:.85714rem;font-size:1rem;font-weight:600}.bb-root .tl-grid{grid-template-columns:repeat(auto-fill,minmax(13.5714rem,1fr));gap:.71429rem;display:grid}.bb-root .tl-card{text-align:left;box-shadow:none;background:#fff;border:1px solid #e9eaeb;border-radius:.57143rem;padding:1.14286rem;transition:all .15s}.bb-root .tl-card:hover{border-color:var(--accent-primary);box-shadow:var(--shadow-sm)}.bb-root .tl-card-badge{text-transform:uppercase;letter-spacing:.5px;color:var(--accent-primary);margin-bottom:.42857rem;font-size:.78571rem;font-weight:700}.bb-root .tl-card-name{color:#141414;font-size:1rem;font-weight:600}.bb-root .tl-card-desc{color:#727272;margin-top:.14286rem;font-size:.85714rem}.bb-root .tl-card-date{color:#bfbfbc;margin-top:.28571rem;font-size:.78571rem}.bb-root .tl-card{position:relative}.bb-root .tl-card-delete{width:1.57143rem;height:1.57143rem;color:var(--text-tertiary);cursor:pointer;opacity:0;background:0 0;border:none;border-radius:.28571rem;justify-content:center;align-items:center;font-size:1rem;transition:all .15s;display:flex;position:absolute;top:.57143rem;right:.57143rem}.bb-root .tl-card:hover .tl-card-delete{opacity:1}.bb-root .tl-card-delete:hover{color:#dc2626;background:#fee2e2}.bb-root .tl-pagination{justify-content:space-between;align-items:center;margin-top:1.14286rem;display:flex}.bb-root .tl-loading{text-align:center;color:var(--text-tertiary);padding:2.85714rem 1.42857rem;font-size:.92857rem}.bb-root .topbar{background:var(--bg-primary);border-bottom:1px solid var(--border-subtle);flex-shrink:0;justify-content:space-between;align-items:center;height:4rem;padding:0 1.42857rem;display:flex;position:relative}.bb-root .topbar-left{align-items:center;gap:.85714rem;display:flex}.bb-root .topbar-back{border-radius:var(--radius-sm);color:var(--text-secondary);padding:.28571rem .42857rem;font-size:1.28571rem}.bb-root .topbar-back:hover{background:var(--bg-tertiary);color:var(--text-primary)}.bb-root .topbar-logo{align-items:center;gap:.57143rem;display:flex}.bb-root .topbar-logo-icon{background:var(--accent-primary);color:#fff;border-radius:.42857rem;justify-content:center;align-items:center;width:1.71429rem;height:1.71429rem;font-size:.64286rem;font-weight:800;display:flex}.bb-root .topbar-logo span{color:var(--text-primary);letter-spacing:-.3px;font-size:1.14286rem;font-weight:600}.bb-root .topbar-sep{background:var(--border-medium);width:1px;height:1.14286rem}.bb-root .topbar-title{color:var(--text-secondary);font-size:1rem;font-weight:500}.bb-root .topbar-name{border-radius:var(--radius-sm);min-width:10rem;max-width:14.2857rem;color:var(--text-primary);box-shadow:none;background:0 0;border:1px solid #0000;padding:.42857rem .57143rem;font-size:1rem;font-weight:500}.bb-root .topbar-name:hover{border-color:var(--border-medium)}.bb-root .topbar-name:focus{border-color:var(--accent-primary)}.bb-root .topbar-dirty{color:var(--accent-primary);font-size:.57143rem}.bb-root .topbar-right{align-items:center;gap:.57143rem;display:flex}.bb-root .topbar-btn{color:#414651;background:#fff;border-radius:.57143rem;outline:1px solid #d5d7da;align-items:center;gap:.42857rem;height:2.57143rem;padding:0 1.14286rem;font-size:1rem;font-weight:600;line-height:1.333;transition:all .15s;display:flex}.bb-root .topbar-btn:hover{background:#f5f5f5}.bb-root .topbar-toast{color:#fff;background:var(--success);z-index:2000;border-radius:.57143rem;align-items:center;gap:.57143rem;padding:.85714rem 1.42857rem;font-size:1rem;font-weight:500;display:flex;position:fixed;bottom:1.71429rem;left:50%;transform:translate(-50%);box-shadow:0 .28571rem .85714rem #00000026}.bb-root .modal-subtitle{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px;margin:.85714rem 0 .57143rem;font-size:.78571rem;font-weight:600}.bb-root .modal-field{margin-bottom:.85714rem}.bb-root .modal-label{color:var(--text-secondary);margin-bottom:.42857rem;font-size:.85714rem;font-weight:500;display:block}.bb-root .topbar-btn-icon{border-radius:var(--radius-sm);width:2.28571rem;height:2.28571rem;color:var(--text-secondary);justify-content:center;align-items:center;font-size:1.14286rem;transition:all .15s;display:flex}.bb-root .topbar-btn-icon:hover:not(:disabled){background:var(--bg-tertiary);color:var(--text-primary)}.bb-root .topbar-btn-icon:disabled{opacity:.3;cursor:default}.bb-root .topbar-btn-warn{color:#d97706;background:#fffbeb;border-color:#fcd34d}.bb-root .topbar-btn-warn:hover{background:#fef3c7}.bb-root .topbar-errors{border:1px solid var(--border-subtle);border-radius:var(--radius-lg);z-index:100;min-width:20rem;max-height:14.2857rem;box-shadow:var(--shadow-lg);background:#fff;margin-top:.57143rem;padding:.57143rem;font-size:.85714rem;position:absolute;top:100%;right:0;overflow-y:auto}.bb-root .topbar-error-item{border-radius:.28571rem;flex-direction:column;gap:.14286rem;padding:.42857rem .57143rem;display:flex}.bb-root .topbar-error-item:hover{background:#fef3c7}.bb-root .topbar-error-path{font-family:var(--font-mono);color:#d97706;font-size:.71429rem}.bb-root .topbar-dropdown{position:relative}.bb-root .topbar-dropdown-menu{background:var(--bg-primary);border:1px solid var(--border-subtle);border-radius:var(--radius-md);z-index:100;min-width:12.8571rem;box-shadow:var(--shadow-lg);margin-top:.42857rem;padding:.28571rem;position:absolute;top:100%;right:0}.bb-root .topbar-dropdown-item{width:100%;color:var(--text-primary);border-radius:var(--radius-sm);cursor:pointer;text-align:left;background:0 0;border:none;align-items:center;gap:.57143rem;padding:.57143rem .85714rem;font-size:.92857rem;font-weight:400;display:flex}.bb-root .topbar-dropdown-item:hover{background:var(--bg-tertiary)}.bb-root .left-panel{background:var(--bg-primary);border-right:1px solid var(--border-subtle);flex-direction:column;flex-shrink:0;width:18%;min-width:17.1429rem;max-width:35.7143rem;display:flex;overflow:hidden}.bb-root .palette-header{border-bottom:1px solid var(--border-subtle);padding:1.14286rem;overflow:hidden}.bb-root .lp-tabs{background:var(--bg-tertiary);border-radius:var(--radius-md);box-sizing:border-box;gap:0;width:100%;padding:.21429rem;display:flex}.bb-root .lp-tab{color:var(--text-secondary);border-radius:var(--radius-sm);white-space:nowrap;background:0 0;flex:1;justify-content:center;align-items:center;gap:.42857rem;min-width:0;padding:.57143rem;font-size:.85714rem;font-weight:500;transition:all .15s;display:flex;overflow:hidden}.bb-root .lp-tab:hover{color:var(--text-primary)}.bb-root .lp-tab.active{background:var(--bg-primary);color:var(--accent-primary);box-shadow:var(--shadow-sm)}.bb-root .lp-tab-icon{font-size:1rem}.bb-root .lp-content{flex:1;padding:.85714rem;overflow-y:auto}.bb-root .lp-category{margin-bottom:.57143rem}.bb-root .lp-category-header{width:100%;color:var(--text-primary);cursor:pointer;border-radius:var(--radius-sm);background:0 0;justify-content:space-between;align-items:center;padding:.71429rem .57143rem;font-size:.92857rem;font-weight:600;transition:all .15s;display:flex}.bb-root .lp-category-header:hover{background:var(--bg-tertiary)}.bb-root .lp-category-title{text-transform:none;letter-spacing:0;align-items:center;gap:.57143rem;display:flex}.bb-root .lp-category-icon{color:var(--text-primary);font-size:1.28571rem}.bb-root .lp-category-arrow{color:var(--text-tertiary);font-size:1.28571rem;transition:transform .2s}.bb-root .lp-category-arrow.closed{transform:rotate(-90deg)}.bb-root .lp-element-list{flex-direction:column;gap:.14286rem;padding:.28571rem 0 .57143rem;display:flex}.bb-root .lp-element-btn{background:var(--bg-secondary);border-radius:var(--radius-sm);color:var(--text-primary);text-align:left;border:1px solid #0000;align-items:center;gap:.71429rem;width:100%;padding:.71429rem .85714rem;font-size:.92857rem;font-weight:500;transition:all .15s;display:flex}.bb-root .lp-element-btn:hover{background:var(--accent-light);border-color:var(--border-accent)}.bb-root .lp-element-icon{color:var(--text-primary);font-size:1.28571rem}.bb-root .lp-element-label{font-size:.92857rem;font-weight:500}.bb-root .lp-component-list{flex-direction:column;gap:.42857rem;padding:.28571rem 0 .57143rem;display:flex}.bb-root .lp-component-card{background:var(--bg-secondary);border:1px solid var(--border-subtle);border-radius:var(--radius-md);text-align:left;align-items:center;gap:.71429rem;width:100%;padding:.71429rem .85714rem;transition:all .15s;display:flex}.bb-root .lp-component-card:hover{background:var(--accent-light);border-color:var(--border-accent)}.bb-root .lp-card-icon{background:var(--bg-tertiary);border-radius:.57143rem;flex-shrink:0;justify-content:center;align-items:center;width:2.57143rem;height:2.57143rem;font-size:1.57143rem;display:flex}.bb-root .lp-component-card:hover .lp-card-icon{background:#6852d61a}.bb-root .lp-card-info{flex-direction:column;gap:1px;min-width:0;display:flex}.bb-root .lp-card-name{color:var(--text-primary);font-size:.85714rem;font-weight:600}.bb-root .lp-card-desc{color:var(--text-tertiary);text-overflow:ellipsis;white-space:nowrap;font-size:.71429rem;line-height:1.3;overflow:hidden}.bb-root .lp-footer{border-top:1px solid var(--border-subtle);padding:.85714rem}.bb-root .lp-footer-hint{background:var(--bg-tertiary);border-radius:var(--radius-sm);color:var(--text-secondary);justify-content:center;align-items:center;gap:.57143rem;padding:.71429rem;font-size:.78571rem;display:flex}.bb-root .lp-search{border:1px solid var(--border-medium);border-radius:var(--radius-sm);background:var(--bg-secondary);width:100%;color:var(--text-primary);padding:.42857rem .71429rem;font-size:.85714rem}.bb-root .lp-search:focus{border-color:var(--accent-primary);outline:none}.bb-root .canvas{background:var(--bg-secondary);flex-direction:column;flex:1;display:flex;position:relative;overflow:hidden}.bb-root .canvas-area{background:radial-gradient(circle at 1px 1px, var(--border-subtle) 1px, transparent 0);background-size:1.71429rem 1.71429rem;flex:1;justify-content:center;align-items:center;padding:2.28571rem 1.71429rem;display:flex;overflow:auto}.bb-root .phone-frame{background:#fff;border-radius:32px;flex-direction:column;flex-shrink:0;width:375px;height:667px;max-height:667px;display:flex;position:relative;overflow:hidden;box-shadow:0 0 0 1px #0000000f,0 2px 4px #0000000a,0 12px 32px #00000014,0 32px 64px #0000000f}.bb-root .phone-frame:before{content:"";z-index:10;background:#e0e0e0;border-radius:2px;width:80px;height:4px;position:absolute;top:8px;left:50%;transform:translate(-50%)}.bb-root .phone-screen{background:#f5f5f5;flex-direction:column;height:100%;margin-top:0;display:flex;overflow:hidden}.bb-root .chat-header{background:#fff;border-bottom:1px solid #0000000f;align-items:center;padding:20px 16px 14px;display:flex}.bb-root .chat-back-btn{color:var(--text-secondary);opacity:.6;padding:2px 4px;font-size:20px}.bb-root .chat-user{flex:1;align-items:center;gap:10px;margin-left:10px;display:flex}.bb-root .chat-avatar{color:#fff;background:linear-gradient(135deg,#6852d6,#8b7ae8);border-radius:50%;justify-content:center;align-items:center;width:36px;height:36px;font-size:14px;font-weight:600;display:flex;box-shadow:0 2px 8px #6852d64d}.bb-root .chat-name{color:var(--text-primary);letter-spacing:-.01em;font-size:14px;font-weight:600}.bb-root .chat-messages{background:#f5f6f7;flex-direction:column;flex:1;gap:12px;min-height:0;padding:16px;display:flex;overflow:hidden auto}.bb-root .message-date{text-align:center;color:var(--text-tertiary);-webkit-backdrop-filter:blur(.57143rem);backdrop-filter:blur(.57143rem);letter-spacing:.02em;background:#fffc;border-radius:.85714rem;align-self:center;padding:.35714rem .85714rem;font-size:.78571rem;font-weight:500}.bb-root .bubble-preview{flex-shrink:0;align-self:flex-start;width:100%;min-height:50px;position:relative;overflow:visible}.bb-root .canvas-bubble{border-radius:16px 16px 16px 4px;flex-direction:column;gap:2px;display:flex;overflow:visible;box-shadow:0 1px 2px #0000000f,0 1px 3px #0000000a}.bb-root .canvas-empty{color:var(--text-tertiary);text-align:center;border:.14286rem dashed var(--border-medium);-webkit-backdrop-filter:blur(.28571rem);backdrop-filter:blur(.28571rem);background:#fff9;border-radius:.85714rem;flex-direction:column;justify-content:center;align-items:center;gap:.71429rem;margin:.57143rem;padding:2.85714rem 1.42857rem;font-size:.92857rem;display:flex}.bb-root .canvas-empty-icon{color:var(--accent-primary);opacity:.4;background:var(--accent-light);border-radius:.85714rem;justify-content:center;align-items:center;width:3.42857rem;height:3.42857rem;font-size:2rem;display:flex}.bb-root .chat-input-area{background:#fff;border-top:1px solid #0000000f;align-items:center;gap:10px;padding:10px 14px;display:flex}.bb-root .chat-input{border:1px solid var(--border-subtle);color:var(--text-primary);background:#f5f6f7;border-radius:20px;flex:1;padding:9px 16px;font-size:13px}.bb-root .chat-send-btn{background:var(--accent-primary);color:#fff;border-radius:50%;justify-content:center;align-items:center;width:34px;height:34px;font-size:13px;transition:transform .15s,box-shadow .15s;display:flex;box-shadow:0 2px 8px #6852d64d}.bb-root .chat-send-btn:hover{transform:scale(1.05);box-shadow:0 4px 12px #6852d666}.bb-root .el-wrapper{cursor:pointer;border-radius:4px;width:100%;transition:all .12s;position:relative;overflow:visible}.bb-root .el-wrapper:hover{background:#6852d60a}.bb-root .el-wrapper.selected{outline:2px solid var(--accent-primary);outline-offset:-2px;background:#6852d60a}.bb-root .el-wrapper.multi-selected{outline:2px dashed var(--accent-primary);outline-offset:-2px;background:#6852d60a}.bb-root .el-controls-portal{z-index:9999;background:#fff;border-radius:.57143rem;flex-direction:row;gap:.14286rem;padding:.21429rem;display:flex;box-shadow:0 .14286rem .85714rem #0000001f,0 0 0 1px #0000000a}.bb-root .preview-mode .el-controls-portal{display:none}.bb-root .el-ctrl-btn{width:1.85714rem;height:1.85714rem;color:var(--text-secondary);border-radius:.35714rem;justify-content:center;align-items:center;font-size:.92857rem;transition:all .12s;display:flex}.bb-root .el-ctrl-btn:hover{background:var(--bg-tertiary);color:var(--text-primary)}.bb-root .el-ctrl-btn.danger:hover{color:#dc2626;background:#fee2e2}.bb-root .el-wrap-menu{border:1px solid var(--border-subtle);z-index:1001;background:#fff;border-radius:.71429rem;min-width:10rem;margin-bottom:.28571rem;padding:.28571rem;position:absolute;bottom:100%;right:0;box-shadow:0 .57143rem 1.71429rem #0000001f}.bb-root .el-wrap-option{text-align:left;color:var(--text-secondary);white-space:nowrap;border-radius:.42857rem;width:100%;padding:.5rem .85714rem;font-size:.85714rem}.bb-root .el-wrap-option:hover{background:var(--accent-light);color:var(--accent-primary)}.bb-root .canvas-breadcrumbs{border-bottom:1px solid var(--border-subtle);background:#fff;flex-wrap:wrap;align-items:center;gap:.14286rem;padding:.42857rem 1.14286rem;font-size:.85714rem;display:flex}.bb-root .canvas-bc-sep{color:var(--text-muted);margin:0 .14286rem;font-size:.71429rem}.bb-root .canvas-bc-item{color:var(--text-secondary);font-size:.78571rem;font-family:var(--font-mono);border-radius:.28571rem;padding:.14286rem .57143rem}.bb-root .canvas-bc-item:hover{background:var(--bg-tertiary);color:var(--text-primary)}.bb-root .canvas-bc-item.active{color:var(--accent-primary);background:var(--accent-light)}.bb-root .multi-select-bar{border:1px solid var(--border-subtle);z-index:100;background:#fff;border-radius:.85714rem;align-items:center;gap:.57143rem;padding:.57143rem 1.14286rem;font-size:.92857rem;display:flex;position:absolute;bottom:4.28571rem;left:50%;transform:translate(-50%);box-shadow:0 .57143rem 1.71429rem #0000001f}.bb-root .multi-select-bar span{color:var(--text-secondary);white-space:nowrap}.bb-root .multi-select-bar button{background:var(--accent-light);color:var(--accent-primary);white-space:nowrap;border-radius:.42857rem;padding:.42857rem .85714rem;font-size:.85714rem;font-weight:600;transition:all .15s}.bb-root .multi-select-bar button:hover{background:var(--accent-primary);color:#fff}.bb-root .canvas-bubble ::-webkit-scrollbar{height:3px}.bb-root .canvas-bubble ::-webkit-scrollbar-track{background:0 0}.bb-root .canvas-bubble ::-webkit-scrollbar-thumb{background:#00000026;border-radius:2px}.bb-root .canvas-toolbar{border-top:1px solid var(--border-subtle);background:#fff;flex-shrink:0;justify-content:center;align-items:center;gap:.28571rem;padding:.42857rem .85714rem;font-size:.85714rem;display:flex}.bb-root .canvas-tool-btn{width:2rem;height:2rem;color:var(--text-secondary);border-radius:.42857rem;justify-content:center;align-items:center;font-size:1rem;transition:all .12s;display:flex}.bb-root .canvas-tool-btn:hover{background:var(--bg-tertiary);color:var(--text-primary)}.bb-root .canvas-tool-btn.active{background:var(--accent-light);color:var(--accent-primary)}.bb-root .canvas-tool-label{color:var(--text-secondary);text-align:center;min-width:2.57143rem;font-size:.78571rem}.bb-root .canvas-tool-sep{background:var(--border-medium);width:1px;height:1.14286rem;margin:0 .28571rem}.bb-root .preview-mode .el-wrapper{cursor:default}.bb-root .preview-mode .el-wrapper:hover{background:0 0}.bb-root .preview-mode .el-wrapper.selected,.bb-root .preview-mode .el-wrapper.multi-selected{background:0 0;outline:none}.bb-root .preview-mode .canvas-breadcrumbs,.bb-root .preview-mode .multi-select-bar{display:none}.bb-root .json-preview-panel{background:var(--bg-primary);border-left:1px solid var(--border-subtle);z-index:60;flex-direction:column;width:27.1429rem;display:flex;position:absolute;top:0;bottom:0;right:0;box-shadow:-.28571rem 0 1.71429rem #0000000f}.bb-root .json-preview-header{border-bottom:1px solid var(--border-subtle);color:var(--text-primary);background:var(--bg-secondary);align-items:center;gap:.57143rem;padding:.85714rem 1.14286rem;font-size:.92857rem;font-weight:600;display:flex}.bb-root .json-preview-header span{flex:1}.bb-root .json-preview-header button{width:2rem;height:2rem;color:var(--text-secondary);background:0 0;border:none;border-radius:.28571rem;justify-content:center;align-items:center;font-size:1rem;display:flex}.bb-root .json-preview-header button:hover{background:var(--bg-tertiary);color:var(--text-primary)}.bb-root .json-preview-code{font-family:var(--font-mono);color:var(--text-primary);white-space:pre;tab-size:2;background:var(--bg-primary);flex:1;margin:0;padding:1.14286rem;font-size:.85714rem;line-height:1.6;overflow:auto}.bb-root .el-context-menu{background:var(--bg-primary);border:1px solid var(--border-subtle);border-radius:.71429rem;min-width:11.4286rem;padding:.28571rem;font-size:.85714rem;box-shadow:0 .57143rem 1.71429rem #0000001f}.bb-root .el-ctx-item{text-align:left;width:100%;color:var(--text-secondary);white-space:nowrap;border-radius:.42857rem;padding:.42857rem .85714rem;display:block}.bb-root .el-ctx-item:hover{background:var(--bg-tertiary);color:var(--text-primary)}.bb-root .el-ctx-item.danger:hover{color:#dc2626;background:#fee2e2}.bb-root .el-ctx-sep{background:var(--border-subtle);height:1px;margin:.28571rem 0}.bb-root .tree-root{font-size:.92857rem}.bb-root .tree-item{border-radius:var(--radius-sm);text-align:left;width:100%;color:var(--text-secondary);cursor:pointer;align-items:center;gap:.42857rem;min-height:2rem;padding:.42857rem .57143rem;transition:all .15s;display:flex}.bb-root .tree-item:hover{background:var(--bg-tertiary);color:var(--text-primary)}.bb-root .tree-item.selected{background:var(--accent-light);color:var(--accent-primary)}.bb-root .tree-item.multi-selected{background:var(--accent-light);color:var(--accent-primary);outline:1px dashed var(--accent-primary);outline-offset:-1px}.bb-root .tree-item.drop-target{outline:.14286rem dashed var(--accent-primary);outline-offset:-.14286rem}.bb-root .tree-item.container .tree-type{font-weight:600}.bb-root .tree-arrow{text-align:center;width:.85714rem;color:var(--text-tertiary);cursor:pointer;font-size:.71429rem;transition:transform .15s}.bb-root .tree-arrow.collapsed{transform:rotate(-90deg)}.bb-root .tree-dot{text-align:center;width:.85714rem}.bb-root .tree-dot:after{content:"";background:var(--border-medium);vertical-align:middle;border-radius:50%;width:.28571rem;height:.28571rem;display:inline-block}.bb-root .tree-type{font-family:var(--font-mono);font-size:.85714rem}.bb-root .tree-label{color:var(--text-tertiary);text-overflow:ellipsis;white-space:nowrap;flex:1;font-size:.78571rem;overflow:hidden}.bb-root .tree-empty{color:var(--text-tertiary);flex-direction:column;align-items:center;gap:.57143rem;padding:1.71429rem;font-size:.92857rem;display:flex}.bb-root .tree-badge{background:var(--bg-tertiary);color:var(--text-tertiary);border-radius:.57143rem;flex-shrink:0;margin-left:auto;padding:1px .35714rem;font-size:.64286rem}.bb-root .tree-error-dot{background:#dc2626;border-radius:50%;flex-shrink:0;width:.42857rem;height:.42857rem;margin-left:auto}.bb-root .tree-badge+.tree-error-dot,.bb-root .tree-error-dot+.tree-badge{margin-left:.28571rem}.bb-root .tree-drag-overlay{background:var(--bg-primary);border-radius:var(--radius-sm);opacity:.9;box-shadow:0 .28571rem .85714rem #00000026}.bb-root .tree-node{touch-action:none}.bb-root .tree-drop-gap{height:.28571rem;transition:height .1s;position:relative}.bb-root .tree-drop-gap.active{height:.57143rem}.bb-root .tree-drop-gap .tree-drop-line{background:0 0;border-radius:1px;height:.14286rem;transition:background .1s}.bb-root .tree-drop-gap.active .tree-drop-line{background:var(--accent-primary)}.bb-root .tree-search-wrap{margin-bottom:.57143rem;position:relative}.bb-root .tree-search{border:1px solid var(--border-subtle);background:var(--bg-secondary);width:100%;color:var(--text-primary);border-radius:.42857rem;padding:.5rem 2rem .5rem .71429rem;font-size:.85714rem}.bb-root .tree-search:focus{border-color:var(--accent-primary)}.bb-root .tree-search::placeholder{color:var(--text-muted)}.bb-root .tree-search-clear{width:1.28571rem;height:1.28571rem;color:var(--text-tertiary);background:var(--bg-tertiary);border-radius:50%;justify-content:center;align-items:center;font-size:.85714rem;display:flex;position:absolute;top:50%;right:.42857rem;transform:translateY(-50%)}.bb-root .tree-search-clear:hover{color:var(--text-primary)}.bb-root .right-panel{background:var(--bg-primary);border-left:1px solid var(--border-subtle);flex-direction:column;flex-shrink:0;width:22%;min-width:20rem;max-width:40rem;display:flex;overflow:hidden}.bb-root .rp-tabs{border-bottom:1px solid var(--border-subtle);display:flex}.bb-root .rp-tab{color:var(--text-secondary);background:0 0;border-bottom:.14286rem solid #0000;flex:1;justify-content:center;align-items:center;gap:.42857rem;padding:1rem;font-size:.85714rem;font-weight:500;transition:all .15s;display:flex}.bb-root .rp-tab:hover{color:var(--text-primary);background:var(--bg-tertiary)}.bb-root .rp-tab.active{color:var(--accent-primary);border-bottom-color:var(--accent-primary)}.bb-root .rp-content{flex:1;padding:1.14286rem;overflow-y:auto}.bb-root .rp-empty{color:var(--text-tertiary);text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:.85714rem;padding:3.42857rem 1.71429rem;display:flex}.bb-root .rp-empty-icon{color:var(--border-medium);font-size:3.42857rem}.bb-root .prop-group{margin-bottom:1.14286rem}.bb-root .prop-group-title{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px;margin-bottom:1.14286rem;font-size:.78571rem;font-weight:600}.bb-root .prop-field{margin-bottom:.85714rem}.bb-root .prop-label{color:var(--text-secondary);margin-bottom:.42857rem;font-size:.85714rem;font-weight:500;display:block}.bb-root .prop-row{align-items:center;gap:.57143rem;display:flex}.bb-root .prop-badge{background:var(--accent-light);color:var(--accent-primary);text-transform:uppercase;letter-spacing:.5px;border-radius:.28571rem;margin-bottom:1.14286rem;padding:.28571rem .71429rem;font-size:.78571rem;font-weight:600;display:inline-block}.bb-root .prop-error-summary{color:#dc2626;background:#fef2f2;border:1px solid #fecaca;border-radius:.28571rem;margin-bottom:.85714rem;padding:.42857rem .71429rem;font-size:.85714rem;font-weight:500}.bb-root .prop-field-error input,.bb-root .prop-field-error textarea,.bb-root .prop-field-error select{box-shadow:0 0 0 1px #fecaca;border-color:#dc2626!important}.bb-root .prop-field-error-hint{color:#dc2626;margin-left:.42857rem;font-size:.78571rem;font-weight:400}.bb-root .shortcuts-overlay{z-index:10000;-webkit-backdrop-filter:blur(.28571rem);backdrop-filter:blur(.28571rem);background:#0006;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.bb-root .shortcuts-panel{background:#fff;border-radius:1.14286rem;width:22.8571rem;padding:0;overflow:hidden;box-shadow:0 1.14286rem 3.42857rem #0003}.bb-root .shortcuts-header{border-bottom:1px solid var(--border-subtle);color:var(--text-primary);justify-content:space-between;align-items:center;padding:1.14286rem 1.42857rem;font-size:1rem;font-weight:600;display:flex}.bb-root .shortcuts-close{width:1.71429rem;height:1.71429rem;color:var(--text-tertiary);border-radius:.42857rem;justify-content:center;align-items:center;font-size:1.14286rem;display:flex}.bb-root .shortcuts-close:hover{background:var(--bg-tertiary);color:var(--text-primary)}.bb-root .shortcuts-list{padding:.85714rem 1.42857rem 1.14286rem}.bb-root .shortcut-row{border-bottom:1px solid var(--border-subtle);justify-content:space-between;align-items:center;padding:.57143rem 0;display:flex}.bb-root .shortcut-row:last-child{border-bottom:none}.bb-root .shortcut-action{color:var(--text-secondary);font-size:.92857rem}.bb-root .shortcut-keys{font-family:var(--font-mono);background:var(--bg-tertiary);color:var(--text-primary);border:1px solid var(--border-subtle);border-radius:.28571rem;padding:.21429rem .57143rem;font-size:.78571rem;font-weight:500}.bb-root .editor-root{background:var(--bg-secondary);flex-direction:column;width:100%;height:100%;display:flex}.bb-root .editor-panels{flex:1;display:flex;overflow:hidden}:root{--bg-primary:#fff;--bg-secondary:#f5f5f5;--bg-tertiary:#f5f5f5;--bg-elevated:#fff;--bg-hover:#f5f5f5;--bg-active:#f3f0ff;--accent-primary:#6852d6;--accent-secondary:#7c6be6;--accent-light:#f3f0ff;--accent-gradient:linear-gradient(135deg, #6852d6 0%, #7c6be6 100%);--accent-glow:#6852d633;--text-primary:#141414;--text-secondary:#727272;--text-tertiary:#414651;--text-muted:#bfbfbc;--border-subtle:#e9eaeb;--border-medium:#d5d7da;--border-accent:#6852d64d;--success:#10b981;--warning:#f59e0b;--error:#d92d20;--shadow-sm:0 1px .14286rem #0000000d;--shadow-md:0 .28571rem .42857rem #00000012;--shadow-lg:0 .71429rem 1.78571rem #0000001a;--radius-sm:.57143rem;--radius-md:.57143rem;--radius-lg:.85714rem;--radius-xl:1.14286rem;--font-sans:"Satoshi", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-mono:"SF Mono", "Fira Code", monospace}@font-face{font-family:Satoshi;src:url(https://cdn.fontshare.com/wf/RVPXLBADJTQXBIMXQMGXVL3RAWQO3GYP/UPQNUQSJHRAZPGIY5EU7VMJMOQHK76OA/SITBAY6OYFA7BNHFJBHWIL6FHWMCOP2Q.woff2)format("woff2");font-weight:300 900;font-display:swap}.bb-root,.bb-root *{box-sizing:border-box;margin:0;padding:0}.bb-root,.bb-root,.bb-root #root{width:100%;height:100%}.bb-root{font-family:var(--font-sans);background:var(--bg-secondary);color:var(--text-primary);-webkit-font-smoothing:antialiased;font-size:clamp(14px,.95vw,28px);line-height:1.5}.bb-root ::-webkit-scrollbar{width:.42857rem;height:.42857rem}.bb-root ::-webkit-scrollbar-track{background:0 0}.bb-root ::-webkit-scrollbar-thumb{background:var(--border-medium);border-radius:.21429rem}.bb-root ::-webkit-scrollbar-thumb:hover{background:var(--text-tertiary)}.bb-root button{cursor:pointer;color:inherit;font:inherit;background:0 0;border:none}.bb-root input,.bb-root textarea,.bb-root select{border:1px solid var(--border-medium);width:100%;color:var(--text-primary);background:#fff;border-radius:.57143rem;outline:none;padding:.71429rem .85714rem;font-family:inherit;font-size:1rem;font-weight:400;line-height:1.5;transition:border-color .15s}.bb-root input:focus,.bb-root textarea:focus,.bb-root select:focus{border-color:var(--accent-primary)}.bb-root input::placeholder,.bb-root textarea::placeholder{color:var(--text-muted)}.bb-root select{appearance:none;cursor:pointer;padding-right:2rem}.bb-root input[type=checkbox]{width:1.14286rem;height:1.14286rem;accent-color:var(--accent-primary)}.bb-root input[type=color]{border:1px solid var(--border-medium);border-radius:var(--radius-sm);background:var(--bg-secondary);cursor:pointer;width:2.85714rem;height:2.57143rem;padding:.14286rem}.bb-root input[type=color]::-webkit-color-swatch-wrapper{padding:.14286rem}.bb-root input[type=color]::-webkit-color-swatch{border:none;border-radius:.28571rem}.bb-root textarea{resize:vertical;min-height:4.28571rem}
2
+ /*$vite$:1*/