layplux 0.0.1

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 (201) hide show
  1. package/dist/cjs/components/center-view/index.cjs +41 -0
  2. package/dist/cjs/components/corner-glow/index.cjs +31 -0
  3. package/dist/cjs/components/dropdown/index.cjs +162 -0
  4. package/dist/cjs/components/icon/index.cjs +59 -0
  5. package/dist/cjs/components/index.cjs +25 -0
  6. package/dist/cjs/components/panel-view/index.cjs +166 -0
  7. package/dist/cjs/components/popup/index.cjs +280 -0
  8. package/dist/cjs/components/title/index.cjs +76 -0
  9. package/dist/cjs/components/tooltip/index.cjs +68 -0
  10. package/dist/cjs/components/widget/index.cjs +104 -0
  11. package/dist/cjs/index.cjs +40 -0
  12. package/dist/cjs/layout/glass-overlay.cjs +31 -0
  13. package/dist/cjs/layout/layered-manager.cjs +35 -0
  14. package/dist/cjs/layout/layplux.cjs +41 -0
  15. package/dist/cjs/layout/root-pane.cjs +46 -0
  16. package/dist/cjs/layout/skeleton/bottom-area.cjs +64 -0
  17. package/dist/cjs/layout/skeleton/bottom-left-area.cjs +42 -0
  18. package/dist/cjs/layout/skeleton/bottom-right-area.cjs +38 -0
  19. package/dist/cjs/layout/skeleton/center-area.cjs +467 -0
  20. package/dist/cjs/layout/skeleton/index.cjs +24 -0
  21. package/dist/cjs/layout/skeleton/left-bottom-area.cjs +42 -0
  22. package/dist/cjs/layout/skeleton/left-top-area.cjs +42 -0
  23. package/dist/cjs/layout/skeleton/right-bottom-area.cjs +38 -0
  24. package/dist/cjs/layout/skeleton/right-top-area.cjs +38 -0
  25. package/dist/cjs/layout/skeleton/skeleton.cjs +66 -0
  26. package/dist/cjs/layout/skeleton/top-area.cjs +64 -0
  27. package/dist/cjs/locales/en-US.cjs +34 -0
  28. package/dist/cjs/locales/index.cjs +39 -0
  29. package/dist/cjs/locales/zh-CN.cjs +34 -0
  30. package/dist/cjs/managers/area.cjs +32 -0
  31. package/dist/cjs/managers/index.cjs +20 -0
  32. package/dist/cjs/managers/pane.cjs +34 -0
  33. package/dist/cjs/managers/skeleton.cjs +208 -0
  34. package/dist/cjs/managers/theme.cjs +37 -0
  35. package/dist/cjs/managers/widget-container.cjs +96 -0
  36. package/dist/cjs/managers/widget.cjs +103 -0
  37. package/dist/cjs/types/config.cjs +16 -0
  38. package/dist/cjs/types/index.cjs +18 -0
  39. package/dist/cjs/types/locale.cjs +16 -0
  40. package/dist/cjs/utils/event-bus.cjs +154 -0
  41. package/dist/cjs/utils/focus-tracker.cjs +154 -0
  42. package/dist/cjs/utils/index.cjs +31 -0
  43. package/dist/cjs/utils/unique-id.cjs +27 -0
  44. package/dist/cjs/utils/vue.cjs +37 -0
  45. package/dist/esm/components/center-view/index.mjs +21 -0
  46. package/dist/esm/components/corner-glow/index.mjs +11 -0
  47. package/dist/esm/components/dropdown/index.mjs +146 -0
  48. package/dist/esm/components/icon/index.mjs +39 -0
  49. package/dist/esm/components/index.mjs +8 -0
  50. package/dist/esm/components/panel-view/index.mjs +152 -0
  51. package/dist/esm/components/popup/index.mjs +268 -0
  52. package/dist/esm/components/title/index.mjs +56 -0
  53. package/dist/esm/components/tooltip/index.mjs +48 -0
  54. package/dist/esm/components/widget/index.mjs +84 -0
  55. package/dist/esm/index.mjs +10 -0
  56. package/dist/esm/layout/glass-overlay.mjs +11 -0
  57. package/dist/esm/layout/layered-manager.mjs +15 -0
  58. package/dist/esm/layout/layplux.mjs +21 -0
  59. package/dist/esm/layout/root-pane.mjs +26 -0
  60. package/dist/esm/layout/skeleton/bottom-area.mjs +44 -0
  61. package/dist/esm/layout/skeleton/bottom-left-area.mjs +22 -0
  62. package/dist/esm/layout/skeleton/bottom-right-area.mjs +18 -0
  63. package/dist/esm/layout/skeleton/center-area.mjs +454 -0
  64. package/dist/esm/layout/skeleton/index.mjs +4 -0
  65. package/dist/esm/layout/skeleton/left-bottom-area.mjs +22 -0
  66. package/dist/esm/layout/skeleton/left-top-area.mjs +22 -0
  67. package/dist/esm/layout/skeleton/right-bottom-area.mjs +18 -0
  68. package/dist/esm/layout/skeleton/right-top-area.mjs +18 -0
  69. package/dist/esm/layout/skeleton/skeleton.mjs +46 -0
  70. package/dist/esm/layout/skeleton/top-area.mjs +44 -0
  71. package/dist/esm/locales/en-US.mjs +14 -0
  72. package/dist/esm/locales/index.mjs +19 -0
  73. package/dist/esm/locales/zh-CN.mjs +14 -0
  74. package/dist/esm/managers/area.mjs +12 -0
  75. package/dist/esm/managers/index.mjs +3 -0
  76. package/dist/esm/managers/pane.mjs +14 -0
  77. package/dist/esm/managers/skeleton.mjs +192 -0
  78. package/dist/esm/managers/theme.mjs +17 -0
  79. package/dist/esm/managers/widget-container.mjs +76 -0
  80. package/dist/esm/managers/widget.mjs +83 -0
  81. package/dist/esm/types/config.mjs +0 -0
  82. package/dist/esm/types/index.mjs +1 -0
  83. package/dist/esm/types/locale.mjs +0 -0
  84. package/dist/esm/utils/event-bus.mjs +124 -0
  85. package/dist/esm/utils/focus-tracker.mjs +135 -0
  86. package/dist/esm/utils/index.mjs +10 -0
  87. package/dist/esm/utils/unique-id.mjs +7 -0
  88. package/dist/esm/utils/vue.mjs +17 -0
  89. package/dist/style/base/_tokens-dark.scss +51 -0
  90. package/dist/style/base/_tokens.scss +56 -0
  91. package/dist/style/components/_bottom-area.scss +30 -0
  92. package/dist/style/components/_bottom-left-area.scss +8 -0
  93. package/dist/style/components/_bottom-right-area.scss +8 -0
  94. package/dist/style/components/_center-area.scss +162 -0
  95. package/dist/style/components/_corner-glow.scss +17 -0
  96. package/dist/style/components/_dropdown.scss +91 -0
  97. package/dist/style/components/_glass-pane.scss +6 -0
  98. package/dist/style/components/_layered-manager.scss +6 -0
  99. package/dist/style/components/_left-bottom-area.scss +8 -0
  100. package/dist/style/components/_left-top-area.scss +9 -0
  101. package/dist/style/components/_pane-view.scss +79 -0
  102. package/dist/style/components/_popup.scss +19 -0
  103. package/dist/style/components/_right-bottom-area.scss +8 -0
  104. package/dist/style/components/_right-top-area.scss +8 -0
  105. package/dist/style/components/_root-pane.scss +17 -0
  106. package/dist/style/components/_skeleton.scss +38 -0
  107. package/dist/style/components/_title-view.scss +176 -0
  108. package/dist/style/components/_tooltip.scss +65 -0
  109. package/dist/style/components/_top-area.scss +25 -0
  110. package/dist/style/index.css +768 -0
  111. package/dist/style/layplux.scss +21 -0
  112. package/dist/types/components/center-view/index.d.ts +16 -0
  113. package/dist/types/components/center-view/index.d.ts.map +1 -0
  114. package/dist/types/components/corner-glow/index.d.ts +2 -0
  115. package/dist/types/components/corner-glow/index.d.ts.map +1 -0
  116. package/dist/types/components/dropdown/index.d.ts +116 -0
  117. package/dist/types/components/dropdown/index.d.ts.map +1 -0
  118. package/dist/types/components/icon/index.d.ts +22 -0
  119. package/dist/types/components/icon/index.d.ts.map +1 -0
  120. package/dist/types/components/index.d.ts +9 -0
  121. package/dist/types/components/index.d.ts.map +1 -0
  122. package/dist/types/components/panel-view/index.d.ts +22 -0
  123. package/dist/types/components/panel-view/index.d.ts.map +1 -0
  124. package/dist/types/components/popup/index.d.ts +99 -0
  125. package/dist/types/components/popup/index.d.ts.map +1 -0
  126. package/dist/types/components/title/index.d.ts +57 -0
  127. package/dist/types/components/title/index.d.ts.map +1 -0
  128. package/dist/types/components/tooltip/index.d.ts +69 -0
  129. package/dist/types/components/tooltip/index.d.ts.map +1 -0
  130. package/dist/types/components/widget/index.d.ts +15 -0
  131. package/dist/types/components/widget/index.d.ts.map +1 -0
  132. package/dist/types/index.d.ts +10 -0
  133. package/dist/types/index.d.ts.map +1 -0
  134. package/dist/types/layout/glass-overlay.d.ts +2 -0
  135. package/dist/types/layout/glass-overlay.d.ts.map +1 -0
  136. package/dist/types/layout/layered-manager.d.ts +8 -0
  137. package/dist/types/layout/layered-manager.d.ts.map +1 -0
  138. package/dist/types/layout/layplux.d.ts +25 -0
  139. package/dist/types/layout/layplux.d.ts.map +1 -0
  140. package/dist/types/layout/root-pane.d.ts +8 -0
  141. package/dist/types/layout/root-pane.d.ts.map +1 -0
  142. package/dist/types/layout/skeleton/bottom-area.d.ts +9 -0
  143. package/dist/types/layout/skeleton/bottom-area.d.ts.map +1 -0
  144. package/dist/types/layout/skeleton/bottom-left-area.d.ts +9 -0
  145. package/dist/types/layout/skeleton/bottom-left-area.d.ts.map +1 -0
  146. package/dist/types/layout/skeleton/bottom-right-area.d.ts +9 -0
  147. package/dist/types/layout/skeleton/bottom-right-area.d.ts.map +1 -0
  148. package/dist/types/layout/skeleton/center-area.d.ts +11 -0
  149. package/dist/types/layout/skeleton/center-area.d.ts.map +1 -0
  150. package/dist/types/layout/skeleton/index.d.ts +2 -0
  151. package/dist/types/layout/skeleton/index.d.ts.map +1 -0
  152. package/dist/types/layout/skeleton/left-bottom-area.d.ts +9 -0
  153. package/dist/types/layout/skeleton/left-bottom-area.d.ts.map +1 -0
  154. package/dist/types/layout/skeleton/left-top-area.d.ts +9 -0
  155. package/dist/types/layout/skeleton/left-top-area.d.ts.map +1 -0
  156. package/dist/types/layout/skeleton/right-bottom-area.d.ts +9 -0
  157. package/dist/types/layout/skeleton/right-bottom-area.d.ts.map +1 -0
  158. package/dist/types/layout/skeleton/right-top-area.d.ts +9 -0
  159. package/dist/types/layout/skeleton/right-top-area.d.ts.map +1 -0
  160. package/dist/types/layout/skeleton/skeleton.d.ts +8 -0
  161. package/dist/types/layout/skeleton/skeleton.d.ts.map +1 -0
  162. package/dist/types/layout/skeleton/top-area.d.ts +9 -0
  163. package/dist/types/layout/skeleton/top-area.d.ts.map +1 -0
  164. package/dist/types/locales/en-US.d.ts +3 -0
  165. package/dist/types/locales/en-US.d.ts.map +1 -0
  166. package/dist/types/locales/index.d.ts +7 -0
  167. package/dist/types/locales/index.d.ts.map +1 -0
  168. package/dist/types/locales/zh-CN.d.ts +3 -0
  169. package/dist/types/locales/zh-CN.d.ts.map +1 -0
  170. package/dist/types/managers/area.d.ts +10 -0
  171. package/dist/types/managers/area.d.ts.map +1 -0
  172. package/dist/types/managers/index.d.ts +5 -0
  173. package/dist/types/managers/index.d.ts.map +1 -0
  174. package/dist/types/managers/pane.d.ts +8 -0
  175. package/dist/types/managers/pane.d.ts.map +1 -0
  176. package/dist/types/managers/skeleton.d.ts +38 -0
  177. package/dist/types/managers/skeleton.d.ts.map +1 -0
  178. package/dist/types/managers/theme.d.ts +2 -0
  179. package/dist/types/managers/theme.d.ts.map +1 -0
  180. package/dist/types/managers/widget-container.d.ts +21 -0
  181. package/dist/types/managers/widget-container.d.ts.map +1 -0
  182. package/dist/types/managers/widget.d.ts +26 -0
  183. package/dist/types/managers/widget.d.ts.map +1 -0
  184. package/dist/types/types/config.d.ts +54 -0
  185. package/dist/types/types/config.d.ts.map +1 -0
  186. package/dist/types/types/index.d.ts +2 -0
  187. package/dist/types/types/index.d.ts.map +1 -0
  188. package/dist/types/types/locale.d.ts +12 -0
  189. package/dist/types/types/locale.d.ts.map +1 -0
  190. package/dist/types/utils/event-bus.d.ts +18 -0
  191. package/dist/types/utils/event-bus.d.ts.map +1 -0
  192. package/dist/types/utils/focus-tracker.d.ts +37 -0
  193. package/dist/types/utils/focus-tracker.d.ts.map +1 -0
  194. package/dist/types/utils/index.d.ts +6 -0
  195. package/dist/types/utils/index.d.ts.map +1 -0
  196. package/dist/types/utils/unique-id.d.ts +2 -0
  197. package/dist/types/utils/unique-id.d.ts.map +1 -0
  198. package/dist/types/utils/vue.d.ts +5 -0
  199. package/dist/types/utils/vue.d.ts.map +1 -0
  200. package/dist/umd/index.js +4000 -0
  201. package/package.json +46 -0
@@ -0,0 +1,768 @@
1
+ .layplux-root {
2
+ --layplux-popup-z-index: 2000;
3
+ --layplux-font-family:
4
+ -apple-system, blinkmacsystemfont, 'Segoe UI', roboto, 'Helvetica Neue', arial, 'Noto Sans',
5
+ sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji';
6
+ --layplux-background: 0 0% 100%;
7
+ --layplux-background-deep: 216 20.11% 95.47%;
8
+ --layplux-foreground: 210 6% 21%;
9
+ --layplux-card: 0 0% 100%;
10
+ --layplux-card-foreground: 222.2 84% 4.9%;
11
+ --layplux-popover: 0 0% 100%;
12
+ --layplux-popover-foreground: 222.2 84% 4.9%;
13
+ --layplux-muted: 240 4.8% 95.9%;
14
+ --layplux-muted-foreground: 240 3.8% 46.1%;
15
+ --layplux-primary: 212 100% 45%;
16
+ --layplux-primary-foreground: 0 0% 98%;
17
+ --layplux-destructive: 359.33 100% 65.1%;
18
+ --layplux-destructive-foreground: 0 0% 98%;
19
+ --layplux-info: 240 5% 96%;
20
+ --layplux-info-foreground: 220 4% 58%;
21
+ --layplux-success: 144 57% 58%;
22
+ --layplux-success-foreground: 0 0% 98%;
23
+ --layplux-warning: 42 84% 61%;
24
+ --layplux-warning-foreground: 0 0% 98%;
25
+ --layplux-secondary: 240 5% 96%;
26
+ --layplux-secondary-foreground: 240 6% 10%;
27
+ --layplux-accent: 240 5% 96%;
28
+ --layplux-accent-dark: 216 14% 93%;
29
+ --layplux-accent-darker: 216 11% 91%;
30
+ --layplux-accent-lighter: 240 0% 98%;
31
+ --layplux-accent-hover: 200deg 10% 90%;
32
+ --layplux-accent-foreground: 240 6% 10%;
33
+ --layplux-heavy: 192deg 9.43% 89.61%;
34
+ --layplux-heavy-foreground: var(--layplux-accent-foreground);
35
+ --layplux-border: 220 6% 82%;
36
+ --layplux-input: 240deg 5.88% 90%;
37
+ --layplux-input-placeholder: 217 10.6% 65%;
38
+ --layplux-input-background: 0 0% 100%;
39
+ --layplux-ring: 222.2 84% 4.9%;
40
+ --layplux-radius: 0.5rem;
41
+ --layplux-overlay: 0 0% 0% / 45%;
42
+ --layplux-overlay-content: 0 0% 95% / 45%;
43
+ --layplux-font-size-base: 16px;
44
+ --layplux-sidebar: 0 0% 100%;
45
+ --layplux-sidebar-deep: 0 0% 100%;
46
+ --layplux-menu: var(--layplux-sidebar);
47
+ --layplux-header: 0 0% 100%;
48
+ --layplux-shadow: 0 0% 0%;
49
+ --layplux-hover: var(--layplux-foreground) / 0.08;
50
+ --layplux-active: var(--layplux-foreground) / 0.12;
51
+ accent-color: var(--layplux-primary);
52
+ color-scheme: light;
53
+ --layplux-root-background: 216 12% 92%;
54
+ }
55
+
56
+ .layplux-root.dark,
57
+ .layplux-root.dark[data-theme=custom],
58
+ .layplux-root.dark[data-theme=default] {
59
+ --layplux-background: 222.34deg 10.43% 12.27%;
60
+ --layplux-background-deep: 220deg 13.06% 9%;
61
+ --layplux-foreground: 0 0% 95%;
62
+ --layplux-card: 222.34deg 10.43% 12.27%;
63
+ --layplux-card-foreground: 210 40% 98%;
64
+ --layplux-popover: 0 0% 14.2%;
65
+ --layplux-popover-foreground: 210 40% 98%;
66
+ --layplux-muted: 240 3.7% 15.9%;
67
+ --layplux-muted-foreground: 240 5% 64.9%;
68
+ --layplux-primary-foreground: 0 0% 98%;
69
+ --layplux-destructive: 359.21 68.47% 56.47%;
70
+ --layplux-destructive-foreground: 0 0% 98%;
71
+ --layplux-info: 180 1.54% 12.75%;
72
+ --layplux-info-foreground: 220 4% 58%;
73
+ --layplux-success: 144 57% 58%;
74
+ --layplux-success-foreground: 0 0% 98%;
75
+ --layplux-warning: 42 84% 61%;
76
+ --layplux-warning-foreground: 0 0% 98%;
77
+ --layplux-secondary: 240 5% 17%;
78
+ --layplux-secondary-foreground: 0 0% 98%;
79
+ --layplux-accent: 216 5% 19%;
80
+ --layplux-accent-dark: 240 0% 22%;
81
+ --layplux-accent-darker: 240 0% 26%;
82
+ --layplux-accent-lighter: 216 5% 12%;
83
+ --layplux-accent-hover: 216 5% 24%;
84
+ --layplux-accent-foreground: 0 0% 98%;
85
+ --layplux-heavy: 216 5% 24%;
86
+ --layplux-heavy-foreground: var(--layplux-accent-foreground);
87
+ --layplux-border: 220 4% 34%;
88
+ --layplux-input: 0deg 0% 100% / 10%;
89
+ --layplux-input-placeholder: 218deg 11% 65%;
90
+ --layplux-input-background: 0deg 0% 100% / 5%;
91
+ --layplux-ring: 222.2 84% 4.9%;
92
+ --layplux-radius: 0.5rem;
93
+ --layplux-overlay: 0deg 0% 0% / 40%;
94
+ --layplux-overlay-content: 0deg 0% 0% / 40%;
95
+ --layplux-font-size-base: 16px;
96
+ --layplux-sidebar: 222.34deg 10.43% 12.27%;
97
+ --layplux-sidebar-deep: 220deg 13.06% 9%;
98
+ --layplux-menu: var(--layplux-sidebar);
99
+ --layplux-header: 222.34deg 10.43% 12.27%;
100
+ --layplux-shadow: 0 0% 0%;
101
+ --layplux-hover: var(--layplux-foreground) / 0.08;
102
+ --layplux-active: var(--layplux-foreground) / 0.12;
103
+ --layplux-root-background: 210 6% 14%;
104
+ color-scheme: dark;
105
+ }
106
+
107
+ .layplux-root {
108
+ position: relative;
109
+ width: 100%;
110
+ height: 100%;
111
+ contain: strict;
112
+ font-family: var(--layplux-font-family);
113
+ font-size: var(--layplux-font-size-base);
114
+ color: hsl(var(--layplux-foreground));
115
+ background-color: hsl(var(--layplux-root-background));
116
+ isolation: isolate;
117
+ }
118
+ .layplux-root *,
119
+ .layplux-root *::before,
120
+ .layplux-root *::after {
121
+ box-sizing: border-box;
122
+ }
123
+
124
+ .layplux-skeleton {
125
+ display: flex;
126
+ flex: 1;
127
+ flex-direction: column;
128
+ min-height: 0;
129
+ }
130
+ .layplux-skeleton__body {
131
+ display: flex;
132
+ flex: 1;
133
+ min-height: 0;
134
+ }
135
+ .layplux-skeleton__stripe {
136
+ display: flex;
137
+ flex-shrink: 0;
138
+ flex-direction: column;
139
+ min-width: 6px;
140
+ }
141
+ .layplux-skeleton__stripe-top {
142
+ flex: 1;
143
+ overflow: hidden auto;
144
+ }
145
+ .layplux-skeleton__stripe-separator {
146
+ flex-shrink: 0;
147
+ width: 24px;
148
+ height: 1px;
149
+ margin: 4px auto;
150
+ background: hsl(var(--layplux-border));
151
+ }
152
+ .layplux-skeleton__center {
153
+ display: flex;
154
+ flex: 1;
155
+ min-height: 0;
156
+ }
157
+
158
+ .glass-pane {
159
+ position: absolute;
160
+ inset: 0;
161
+ z-index: var(--layplux-popup-z-index);
162
+ pointer-events: none;
163
+ }
164
+
165
+ .corner-glow {
166
+ position: absolute;
167
+ top: -80px;
168
+ left: 50px;
169
+ z-index: 0;
170
+ width: 620px;
171
+ height: 420px;
172
+ pointer-events: none;
173
+ background: radial-gradient(ellipse at 20% 5%, hsl(var(--layplux-primary)/16%) 0%, hsl(var(--layplux-primary)/10%) 30%, hsl(var(--layplux-primary)/6%) 60%, transparent);
174
+ filter: blur(40px);
175
+ }
176
+
177
+ .layered-manager {
178
+ position: relative;
179
+ display: flex;
180
+ height: 100%;
181
+ min-height: 0;
182
+ }
183
+
184
+ .layplux-top-area {
185
+ display: flex;
186
+ flex-shrink: 0;
187
+ width: 100%;
188
+ height: 42px;
189
+ padding: 8px 12px;
190
+ }
191
+ .layplux-top-area__toolbar-left {
192
+ display: flex;
193
+ align-items: center;
194
+ max-width: 100%;
195
+ }
196
+ .layplux-top-area__toolbar-center {
197
+ display: flex;
198
+ flex: 1;
199
+ justify-content: center;
200
+ margin: 0 8px;
201
+ }
202
+ .layplux-top-area__toolbar-right {
203
+ display: flex;
204
+ align-items: center;
205
+ }
206
+
207
+ .layplux-bottom-area {
208
+ display: flex;
209
+ flex-shrink: 0;
210
+ width: 100%;
211
+ height: 24px;
212
+ padding: 0 12px;
213
+ font-size: 11px;
214
+ color: hsl(var(--layplux-muted-foreground));
215
+ user-select: none;
216
+ }
217
+ .layplux-bottom-area__left {
218
+ display: flex;
219
+ gap: 16px;
220
+ align-items: center;
221
+ }
222
+ .layplux-bottom-area__center {
223
+ display: flex;
224
+ flex: 1;
225
+ gap: 16px;
226
+ align-items: center;
227
+ justify-content: center;
228
+ }
229
+ .layplux-bottom-area__right {
230
+ display: flex;
231
+ gap: 16px;
232
+ align-items: center;
233
+ }
234
+
235
+ .title-view {
236
+ display: inline-flex;
237
+ gap: 0;
238
+ align-items: center;
239
+ justify-content: center;
240
+ line-height: 1;
241
+ }
242
+ .title-view--small {
243
+ font-size: 10px;
244
+ }
245
+ .title-view--small .title-view__icon {
246
+ width: 16px;
247
+ height: 16px;
248
+ font-size: 14px;
249
+ }
250
+ .title-view--middle {
251
+ font-size: 11px;
252
+ }
253
+ .title-view--middle .title-view__icon {
254
+ width: 20px;
255
+ height: 20px;
256
+ font-size: 16px;
257
+ }
258
+ .title-view--large {
259
+ font-size: 13px;
260
+ }
261
+ .title-view--large .title-view__icon {
262
+ width: 24px;
263
+ height: 24px;
264
+ font-size: 20px;
265
+ }
266
+ .title-view--icon-only {
267
+ width: 32px;
268
+ height: 32px;
269
+ border-radius: 8px;
270
+ }
271
+ .title-view--icon-only .title-view__icon {
272
+ display: flex;
273
+ align-items: center;
274
+ justify-content: center;
275
+ }
276
+ .title-view--icon-only .title-view__label {
277
+ display: none;
278
+ }
279
+ .title-view--stacked {
280
+ flex-direction: column;
281
+ align-items: center;
282
+ justify-content: center;
283
+ width: 34px;
284
+ padding: 4px 3px 3px;
285
+ border-radius: 8px;
286
+ }
287
+ .title-view--stacked .title-view__icon {
288
+ display: flex;
289
+ align-items: center;
290
+ justify-content: center;
291
+ margin-bottom: 1px;
292
+ }
293
+ .title-view--stacked .title-view__label {
294
+ max-width: 100%;
295
+ overflow: hidden;
296
+ text-overflow: ellipsis;
297
+ text-align: center;
298
+ white-space: nowrap;
299
+ }
300
+ .title-view--inline {
301
+ flex-direction: row;
302
+ gap: 6px;
303
+ align-items: center;
304
+ }
305
+ .title-view--inline .title-view__icon {
306
+ display: flex;
307
+ flex-shrink: 0;
308
+ align-items: center;
309
+ justify-content: center;
310
+ }
311
+ .title-view--inline .title-view__label {
312
+ overflow: hidden;
313
+ text-overflow: ellipsis;
314
+ white-space: nowrap;
315
+ }
316
+ .title-view--idle {
317
+ color: hsl(var(--layplux-muted-foreground));
318
+ cursor: pointer;
319
+ background: transparent;
320
+ }
321
+ .title-view--idle:hover {
322
+ color: hsl(var(--layplux-foreground));
323
+ background: hsl(var(--layplux-foreground)/8%);
324
+ border-radius: 8px;
325
+ }
326
+ .title-view--active {
327
+ color: hsl(var(--layplux-foreground));
328
+ cursor: pointer;
329
+ background: hsl(var(--layplux-foreground)/8%);
330
+ border-radius: 8px;
331
+ }
332
+ .title-view--disabled {
333
+ color: hsl(var(--layplux-muted-foreground));
334
+ cursor: not-allowed;
335
+ background: transparent;
336
+ opacity: 0.4;
337
+ }
338
+ .title-view--error {
339
+ color: hsl(var(--layplux-destructive));
340
+ cursor: pointer;
341
+ background: transparent;
342
+ }
343
+ .title-view--error .title-view__icon {
344
+ position: relative;
345
+ }
346
+ .title-view--error .title-view__icon::after {
347
+ position: absolute;
348
+ top: -2px;
349
+ right: -2px;
350
+ width: 6px;
351
+ height: 6px;
352
+ content: "";
353
+ background: hsl(var(--layplux-destructive));
354
+ border-radius: 50%;
355
+ }
356
+ .title-view--focused {
357
+ color: hsl(var(--layplux-primary-foreground));
358
+ background: hsl(var(--layplux-primary));
359
+ border-radius: 8px;
360
+ }
361
+ .title-view {
362
+ transition: color 0.15s ease, background 0.15s ease, opacity 0.15s ease;
363
+ }
364
+ .title-view__icon {
365
+ display: flex;
366
+ flex-shrink: 0;
367
+ align-items: center;
368
+ justify-content: center;
369
+ }
370
+ .title-view__label {
371
+ display: block;
372
+ font-weight: 400;
373
+ user-select: none;
374
+ }
375
+
376
+ .layplux-left-top-area {
377
+ display: flex;
378
+ flex: 1;
379
+ flex-direction: column;
380
+ gap: 6px;
381
+ align-items: center;
382
+ padding: 6px 4px;
383
+ overflow: hidden auto;
384
+ }
385
+
386
+ .layplux-left-bottom-area {
387
+ display: flex;
388
+ flex-shrink: 0;
389
+ flex-direction: column;
390
+ gap: 6px;
391
+ align-items: center;
392
+ padding: 6px 4px;
393
+ }
394
+
395
+ .layplux-bottom-left-area {
396
+ display: flex;
397
+ flex-shrink: 0;
398
+ flex-direction: column;
399
+ gap: 6px;
400
+ align-items: center;
401
+ padding: 6px 4px;
402
+ }
403
+
404
+ .layplux-right-top-area {
405
+ display: flex;
406
+ flex-shrink: 0;
407
+ flex-direction: column;
408
+ gap: 6px;
409
+ align-items: center;
410
+ padding: 6px 4px;
411
+ }
412
+
413
+ .layplux-right-bottom-area {
414
+ display: flex;
415
+ flex-shrink: 0;
416
+ flex-direction: column;
417
+ gap: 6px;
418
+ align-items: center;
419
+ padding: 6px 4px;
420
+ }
421
+
422
+ .layplux-bottom-right-area {
423
+ display: flex;
424
+ flex-shrink: 0;
425
+ flex-direction: column;
426
+ gap: 6px;
427
+ align-items: center;
428
+ padding: 6px 4px;
429
+ }
430
+
431
+ .layplux-panel {
432
+ position: relative;
433
+ display: flex;
434
+ flex-shrink: 0;
435
+ flex-direction: column;
436
+ min-height: 0;
437
+ overflow: hidden;
438
+ background-color: hsl(var(--layplux-sidebar-deep));
439
+ border-radius: var(--layplux-radius);
440
+ }
441
+ .layplux-panel__header {
442
+ display: flex;
443
+ flex-shrink: 0;
444
+ gap: 4px;
445
+ align-items: center;
446
+ height: 36px;
447
+ padding: 0 8px;
448
+ user-select: none;
449
+ border-bottom: 1px solid hsl(var(--layplux-border));
450
+ }
451
+ .layplux-panel__title {
452
+ flex: 1;
453
+ overflow: hidden;
454
+ text-overflow: ellipsis;
455
+ font-size: 12px;
456
+ font-weight: 600;
457
+ color: hsl(var(--layplux-muted-foreground));
458
+ text-transform: uppercase;
459
+ letter-spacing: 0.05em;
460
+ white-space: nowrap;
461
+ }
462
+ .layplux-panel__actions {
463
+ display: flex;
464
+ gap: 2px;
465
+ align-items: center;
466
+ margin-left: auto;
467
+ }
468
+ .layplux-panel__action-btn {
469
+ display: flex;
470
+ align-items: center;
471
+ justify-content: center;
472
+ width: 22px;
473
+ height: 22px;
474
+ padding: 0;
475
+ color: hsl(var(--layplux-muted-foreground));
476
+ cursor: pointer;
477
+ background: transparent;
478
+ border: none;
479
+ border-radius: 4px;
480
+ transition: background-color 0.1s, color 0.1s;
481
+ }
482
+ .layplux-panel__action-btn:hover {
483
+ color: hsl(var(--layplux-foreground));
484
+ background-color: hsl(var(--layplux-hover));
485
+ }
486
+ .layplux-panel__action-btn--active {
487
+ color: hsl(var(--layplux-foreground));
488
+ background-color: hsl(var(--layplux-active));
489
+ }
490
+ .layplux-panel__body {
491
+ flex: 1;
492
+ min-height: 0;
493
+ overflow: hidden auto;
494
+ }
495
+ .layplux-panel__content {
496
+ height: 100%;
497
+ min-height: 0;
498
+ }
499
+
500
+ .layplux-center-area {
501
+ position: relative;
502
+ display: flex;
503
+ flex: 1;
504
+ flex-direction: column;
505
+ min-width: 0;
506
+ min-height: 0;
507
+ }
508
+ .layplux-center-area__main {
509
+ display: flex;
510
+ flex: 1;
511
+ min-height: 0;
512
+ }
513
+ .layplux-center-area__left, .layplux-center-area__right {
514
+ display: flex;
515
+ flex-shrink: 0;
516
+ flex-direction: column;
517
+ min-height: 0;
518
+ }
519
+ .layplux-center-area__docked-panels {
520
+ display: flex;
521
+ flex: 1;
522
+ flex-direction: column;
523
+ min-height: 0;
524
+ }
525
+ .layplux-center-area__docked-panels > .layplux-panel {
526
+ flex: 1;
527
+ min-height: 0;
528
+ }
529
+ .layplux-center-area__editor {
530
+ position: relative;
531
+ flex: 1;
532
+ min-width: 0;
533
+ min-height: 0;
534
+ background-color: hsl(var(--layplux-background));
535
+ border-radius: var(--layplux-radius);
536
+ }
537
+ .layplux-center-area__bottom {
538
+ display: flex;
539
+ flex-shrink: 0;
540
+ min-height: 0;
541
+ }
542
+ .layplux-center-area__bottom > .layplux-panel {
543
+ flex: 1;
544
+ min-width: 0;
545
+ }
546
+
547
+ .layplux-resize-handle {
548
+ z-index: 10;
549
+ flex-shrink: 0;
550
+ background-color: transparent;
551
+ transition: background-color 0.15s;
552
+ }
553
+ .layplux-resize-handle:hover, .layplux-resize-handle--x {
554
+ align-self: stretch;
555
+ width: 4px;
556
+ cursor: col-resize;
557
+ }
558
+ .layplux-resize-handle--y {
559
+ align-self: stretch;
560
+ height: 4px;
561
+ cursor: row-resize;
562
+ }
563
+ .layplux-resize-handle--bottom-edge {
564
+ align-self: auto;
565
+ }
566
+ .layplux-resize-handle--maximized {
567
+ background-color: hsl(var(--layplux-foreground)/12%);
568
+ }
569
+
570
+ .layplux-panel--undocked {
571
+ position: absolute;
572
+ z-index: 100;
573
+ display: flex;
574
+ }
575
+ .layplux-panel--undocked-left {
576
+ top: 0;
577
+ left: 0;
578
+ flex-direction: row;
579
+ height: 100%;
580
+ }
581
+ .layplux-panel--undocked-left > .layplux-panel {
582
+ flex: 1;
583
+ min-width: 0;
584
+ }
585
+ .layplux-panel--undocked-right {
586
+ top: 0;
587
+ right: 0;
588
+ flex-direction: row;
589
+ height: 100%;
590
+ }
591
+ .layplux-panel--undocked-right > .layplux-panel {
592
+ flex: 1;
593
+ min-width: 0;
594
+ }
595
+ .layplux-panel--undocked-bottom {
596
+ right: 0;
597
+ bottom: 0;
598
+ left: 0;
599
+ flex-direction: column;
600
+ }
601
+ .layplux-panel--undocked-bottom > .layplux-panel {
602
+ flex: 1;
603
+ min-height: 0;
604
+ }
605
+ .layplux-panel--undocked > .layplux-resize-handle {
606
+ background-color: hsl(var(--layplux-root-background));
607
+ }
608
+
609
+ .layplux-resize-handle--edge-right {
610
+ flex-shrink: 0;
611
+ align-self: stretch;
612
+ width: 4px;
613
+ cursor: col-resize;
614
+ }
615
+ .layplux-resize-handle--edge-left {
616
+ flex-shrink: 0;
617
+ align-self: stretch;
618
+ width: 4px;
619
+ cursor: col-resize;
620
+ }
621
+ .layplux-resize-handle--edge-top {
622
+ flex-shrink: 0;
623
+ align-self: stretch;
624
+ height: 4px;
625
+ cursor: row-resize;
626
+ }
627
+
628
+ .layplux-popup-trigger {
629
+ display: inline-flex;
630
+ }
631
+
632
+ .layplux-popup {
633
+ pointer-events: none;
634
+ opacity: 0;
635
+ transform: scale(0.95);
636
+ transform-origin: top left;
637
+ transition: opacity 0.2s ease, transform 0.2s ease;
638
+ }
639
+ .layplux-popup--visible {
640
+ pointer-events: auto;
641
+ opacity: 1;
642
+ transform: scale(1);
643
+ }
644
+
645
+ .layplux-dropdown {
646
+ min-width: 100px;
647
+ padding: 4px;
648
+ background: hsl(var(--layplux-popover));
649
+ border-radius: var(--layplux-radius);
650
+ box-shadow: 0 6px 16px 0 hsl(var(--layplux-shadow)/8%), 0 3px 6px -4px hsl(var(--layplux-shadow)/12%), 0 9px 28px 8px hsl(var(--layplux-shadow)/5%);
651
+ }
652
+
653
+ .layplux-dropdown-menu {
654
+ display: flex;
655
+ flex-direction: column;
656
+ gap: 2px;
657
+ }
658
+ .layplux-dropdown-menu .layplux-popup-trigger {
659
+ display: flex;
660
+ padding: 6px 4px;
661
+ border-radius: calc(var(--layplux-radius) - 2px);
662
+ transition: background-color 0.15s ease, color 0.15s ease;
663
+ }
664
+ .layplux-dropdown-menu .layplux-popup-trigger:hover {
665
+ background: hsl(var(--layplux-accent-hover));
666
+ }
667
+ .layplux-dropdown-menu__item {
668
+ display: flex;
669
+ flex: 1;
670
+ gap: 8px;
671
+ align-items: center;
672
+ padding: 6px 4px;
673
+ font-size: 13px;
674
+ color: hsl(var(--layplux-popover-foreground));
675
+ cursor: pointer;
676
+ user-select: none;
677
+ border-radius: calc(var(--layplux-radius) - 2px);
678
+ transition: background-color 0.15s ease, color 0.15s ease;
679
+ }
680
+ .layplux-dropdown-menu__item:hover {
681
+ background: hsl(var(--layplux-accent-hover));
682
+ }
683
+ .layplux-dropdown-menu__item--submenu {
684
+ justify-content: space-between;
685
+ padding: 0;
686
+ cursor: default;
687
+ background: transparent;
688
+ border-radius: 0;
689
+ }
690
+ .layplux-dropdown-menu__item--submenu:hover {
691
+ background: transparent;
692
+ }
693
+ .layplux-dropdown-menu__item--danger {
694
+ color: hsl(var(--layplux-destructive));
695
+ }
696
+ .layplux-dropdown-menu__item--danger:hover {
697
+ color: hsl(var(--layplux-destructive-foreground));
698
+ background: hsl(var(--layplux-destructive));
699
+ }
700
+ .layplux-dropdown-menu__item--disabled {
701
+ color: hsl(var(--layplux-muted-foreground));
702
+ cursor: not-allowed;
703
+ background: transparent;
704
+ }
705
+ .layplux-dropdown-menu__item--disabled:hover {
706
+ background: transparent;
707
+ }
708
+ .layplux-dropdown-menu__divider {
709
+ height: 1px;
710
+ background: hsl(var(--layplux-border)/50%);
711
+ }
712
+ .layplux-dropdown-menu__submenu-arrow {
713
+ margin-left: auto;
714
+ font-size: 14px;
715
+ opacity: 0.5;
716
+ }
717
+
718
+ .layplux-tooltip {
719
+ position: relative;
720
+ max-width: 280px;
721
+ padding: 6px 10px;
722
+ font-size: 12px;
723
+ line-height: 1.5;
724
+ color: hsl(var(--layplux-primary-foreground));
725
+ overflow-wrap: break-word;
726
+ background: hsl(var(--layplux-foreground));
727
+ border-radius: calc(var(--layplux-radius) - 2px);
728
+ box-shadow: 0 6px 16px 0 hsl(var(--layplux-shadow)/8%), 0 3px 6px -4px hsl(var(--layplux-shadow)/12%), 0 9px 28px 8px hsl(var(--layplux-shadow)/5%);
729
+ }
730
+ .layplux-tooltip__inner {
731
+ position: relative;
732
+ z-index: 1;
733
+ }
734
+ .layplux-tooltip__arrow {
735
+ position: absolute;
736
+ width: 6px;
737
+ height: 6px;
738
+ background: hsl(var(--layplux-foreground));
739
+ transform: rotate(45deg);
740
+ }
741
+
742
+ .layplux-popup.top .layplux-tooltip__arrow,
743
+ .layplux-popup.top-start .layplux-tooltip__arrow,
744
+ .layplux-popup.top-end .layplux-tooltip__arrow {
745
+ bottom: -3px;
746
+ left: calc(50% - 3px);
747
+ }
748
+
749
+ .layplux-popup.bottom .layplux-tooltip__arrow,
750
+ .layplux-popup.bottom-start .layplux-tooltip__arrow,
751
+ .layplux-popup.bottom-end .layplux-tooltip__arrow {
752
+ top: -3px;
753
+ left: calc(50% - 3px);
754
+ }
755
+
756
+ .layplux-popup.left .layplux-tooltip__arrow,
757
+ .layplux-popup.left-start .layplux-tooltip__arrow,
758
+ .layplux-popup.left-end .layplux-tooltip__arrow {
759
+ top: calc(50% - 3px);
760
+ right: -3px;
761
+ }
762
+
763
+ .layplux-popup.right .layplux-tooltip__arrow,
764
+ .layplux-popup.right-start .layplux-tooltip__arrow,
765
+ .layplux-popup.right-end .layplux-tooltip__arrow {
766
+ top: calc(50% - 3px);
767
+ left: -3px;
768
+ }