@ultrst-armada/floks 0.0.0-stage → 1.0.0

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 (93) hide show
  1. package/README.md +2 -3
  2. package/index.d.ts +2 -0
  3. package/index.js +2 -0
  4. package/package.json +67 -4
  5. package/packages/canvas-ui/dist/canvas/index.d.ts +54 -0
  6. package/packages/canvas-ui/dist/canvas/index.js +12 -0
  7. package/packages/canvas-ui/dist/chunk-2GLR35UM.js +391 -0
  8. package/packages/canvas-ui/dist/chunk-34YRDZPJ.js +189 -0
  9. package/packages/canvas-ui/dist/chunk-6VB74RCH.js +147 -0
  10. package/packages/canvas-ui/dist/chunk-QTTWWBNN.js +114 -0
  11. package/packages/canvas-ui/dist/chunk-QWQ4PCXQ.js +718 -0
  12. package/packages/canvas-ui/dist/chunk-SA3JADUG.js +160 -0
  13. package/packages/canvas-ui/dist/chunk-UEIMM6PV.js +508 -0
  14. package/packages/canvas-ui/dist/dock/index.d.ts +37 -0
  15. package/packages/canvas-ui/dist/dock/index.js +10 -0
  16. package/packages/canvas-ui/dist/editor/index.d.ts +44 -0
  17. package/packages/canvas-ui/dist/editor/index.js +10 -0
  18. package/packages/canvas-ui/dist/graph-2d/index.d.ts +270 -0
  19. package/packages/canvas-ui/dist/graph-2d/index.js +50 -0
  20. package/packages/canvas-ui/dist/index.d.ts +176 -0
  21. package/packages/canvas-ui/dist/index.js +1171 -0
  22. package/packages/canvas-ui/dist/predictive/index.d.ts +74 -0
  23. package/packages/canvas-ui/dist/predictive/index.js +13 -0
  24. package/packages/canvas-ui/dist/tile-menu/index.d.ts +45 -0
  25. package/packages/canvas-ui/dist/tile-menu/index.js +12 -0
  26. package/packages/canvas-ui/dist/types-D3RRfQUo.d.ts +46 -0
  27. package/packages/canvas-ui/floks.manifest.json +35 -0
  28. package/packages/canvas-ui/package.json +82 -0
  29. package/packages/ui/dist/BottomStrip-DYhAUQR4.d.ts +12 -0
  30. package/packages/ui/dist/chunk-5ZMXFCD4.js +0 -0
  31. package/packages/ui/dist/chunk-62ITRDJX.js +141 -0
  32. package/packages/ui/dist/chunk-A2CDQISJ.js +32 -0
  33. package/packages/ui/dist/chunk-C32CB5WO.js +1161 -0
  34. package/packages/ui/dist/chunk-C3L53YN4.js +372 -0
  35. package/packages/ui/dist/chunk-DABYTYOU.js +351 -0
  36. package/packages/ui/dist/chunk-DZJ3NSCX.js +665 -0
  37. package/packages/ui/dist/chunk-ELZOBTWX.js +562 -0
  38. package/packages/ui/dist/chunk-GKP6KHTI.js +75 -0
  39. package/packages/ui/dist/chunk-GWW3BGOB.js +238 -0
  40. package/packages/ui/dist/chunk-KIFQA7L6.js +167 -0
  41. package/packages/ui/dist/chunk-OHISLM3Z.js +703 -0
  42. package/packages/ui/dist/chunk-OR5ZNJI4.js +62 -0
  43. package/packages/ui/dist/chunk-QWXEW7WH.js +238 -0
  44. package/packages/ui/dist/chunk-RLQ2ALJG.js +182 -0
  45. package/packages/ui/dist/chunk-S227WJ5E.js +152 -0
  46. package/packages/ui/dist/chunk-SLJBDDSN.js +0 -0
  47. package/packages/ui/dist/chunk-TXKLROFC.js +370 -0
  48. package/packages/ui/dist/chunk-UOR4P6PO.js +32 -0
  49. package/packages/ui/dist/chunk-W42SJGOJ.js +19 -0
  50. package/packages/ui/dist/chunk-XXIH2HWI.js +297 -0
  51. package/packages/ui/dist/chunk-ZQK5I5ZL.js +277 -0
  52. package/packages/ui/dist/components/auth/index.css +183 -0
  53. package/packages/ui/dist/components/auth/index.d.ts +10 -0
  54. package/packages/ui/dist/components/auth/index.js +8 -0
  55. package/packages/ui/dist/components/base/index.css +183 -0
  56. package/packages/ui/dist/components/base/index.d.ts +74 -0
  57. package/packages/ui/dist/components/base/index.js +33 -0
  58. package/packages/ui/dist/components/bottom-strip/index.css +183 -0
  59. package/packages/ui/dist/components/bottom-strip/index.d.ts +67 -0
  60. package/packages/ui/dist/components/bottom-strip/index.js +22 -0
  61. package/packages/ui/dist/components/composite/index.css +273 -0
  62. package/packages/ui/dist/components/composite/index.d.ts +104 -0
  63. package/packages/ui/dist/components/composite/index.js +33 -0
  64. package/packages/ui/dist/components/containers/index.css +404 -0
  65. package/packages/ui/dist/components/containers/index.d.ts +93 -0
  66. package/packages/ui/dist/components/containers/index.js +35 -0
  67. package/packages/ui/dist/components/layout/index.css +246 -0
  68. package/packages/ui/dist/components/layout/index.d.ts +53 -0
  69. package/packages/ui/dist/components/layout/index.js +16 -0
  70. package/packages/ui/dist/components/settings/index.css +183 -0
  71. package/packages/ui/dist/components/settings/index.d.ts +14 -0
  72. package/packages/ui/dist/components/settings/index.js +12 -0
  73. package/packages/ui/dist/components/workspace/index.d.ts +101 -0
  74. package/packages/ui/dist/components/workspace/index.js +16 -0
  75. package/packages/ui/dist/hierarchy/index.css +183 -0
  76. package/packages/ui/dist/hierarchy/index.d.ts +168 -0
  77. package/packages/ui/dist/hierarchy/index.js +36 -0
  78. package/packages/ui/dist/index.css +467 -0
  79. package/packages/ui/dist/index.d.ts +16 -0
  80. package/packages/ui/dist/index.js +282 -0
  81. package/packages/ui/dist/palette/index.d.ts +29 -0
  82. package/packages/ui/dist/palette/index.js +27 -0
  83. package/packages/ui/dist/palettes-De5u5iID.d.ts +394 -0
  84. package/packages/ui/dist/theme/index.d.ts +12063 -0
  85. package/packages/ui/dist/theme/index.js +96 -0
  86. package/packages/ui/floks.manifest.json +119 -0
  87. package/packages/ui/package.json +92 -0
  88. package/packages/ui/src/styles/base.css +130 -0
  89. package/packages/ui/src/styles/composite.css +6 -0
  90. package/packages/ui/src/styles/containers.css +10 -0
  91. package/packages/ui/src/styles/details-panel.css +147 -0
  92. package/packages/ui/src/styles/layout.css +58 -0
  93. package/packages/ui/src/theme/tokens.css +93 -0
@@ -0,0 +1,372 @@
1
+ import {
2
+ useBottomStrip
3
+ } from "./chunk-62ITRDJX.js";
4
+ import {
5
+ BaseButton
6
+ } from "./chunk-A2CDQISJ.js";
7
+
8
+ // src/components/bottom-strip/StatusLight.tsx
9
+ import { jsx } from "react/jsx-runtime";
10
+ var StatusLight = ({
11
+ status = "idle",
12
+ label,
13
+ pulse = false,
14
+ className = "",
15
+ ...props
16
+ }) => {
17
+ const { setInspectionText } = useBottomStrip();
18
+ const defaultLabels = {
19
+ idle: "STATUS: SYSTEM READY (IDLE)",
20
+ active: "STATUS: PROCESSING ACTIVE TASK",
21
+ saving: "STATUS: SAVING CHANGES TO DISK",
22
+ saved: "STATUS: ALL CHANGES SAVED",
23
+ error: "STATUS: SYSTEM ERROR DETECTED",
24
+ warning: "STATUS: SYSTEM WARNING"
25
+ };
26
+ const displayText = label || defaultLabels[status] || "STATUS: UNKNOWN";
27
+ const colorMap = {
28
+ idle: "var(--skipo-text-muted)",
29
+ active: "var(--skipo-info)",
30
+ saving: "var(--skipo-accent)",
31
+ saved: "var(--skipo-success)",
32
+ error: "var(--skipo-danger)",
33
+ warning: "var(--skipo-warning)"
34
+ };
35
+ const currentColor = colorMap[status];
36
+ return /* @__PURE__ */ jsx(
37
+ "span",
38
+ {
39
+ className: `skipo-status-light skipo-status-light--${status} ${pulse ? "skipo-status-light--pulse" : ""} ${className}`,
40
+ style: {
41
+ display: "inline-block",
42
+ width: "8px",
43
+ height: "8px",
44
+ borderRadius: "50%",
45
+ backgroundColor: currentColor,
46
+ boxShadow: pulse ? `0 0 8px ${currentColor}` : void 0,
47
+ cursor: "default",
48
+ transition: "all 0.2s ease"
49
+ },
50
+ onMouseEnter: () => setInspectionText(displayText),
51
+ onMouseLeave: () => setInspectionText(null),
52
+ onFocus: () => setInspectionText(displayText),
53
+ onBlur: () => setInspectionText(null),
54
+ tabIndex: 0,
55
+ "aria-label": displayText,
56
+ ...props
57
+ }
58
+ );
59
+ };
60
+ StatusLight.displayName = "StatusLight";
61
+
62
+ // src/components/bottom-strip/AutoSaveToggle.tsx
63
+ import { jsx as jsx2, jsxs } from "react/jsx-runtime";
64
+ var AutoSaveToggle = ({
65
+ onToggle,
66
+ className = "",
67
+ ...props
68
+ }) => {
69
+ const { autoSave, setInspectionText } = useBottomStrip();
70
+ const isEnabled = autoSave.enabled;
71
+ const handleClick = (e) => {
72
+ if (onToggle) onToggle();
73
+ else autoSave.toggle();
74
+ if (props.onClick) props.onClick(e);
75
+ };
76
+ const inspectionLabel = isEnabled ? "AUTO-SAVE: ACTIVE (AUTOMATIC BACKGROUND PERSISTENCE)" : "AUTO-SAVE: PAUSED (CHANGES REQUIRE MANUAL SAVE)";
77
+ return /* @__PURE__ */ jsx2(
78
+ BaseButton,
79
+ {
80
+ variant: "ghost",
81
+ size: "sm",
82
+ className: `skipo-autosave-toggle ${isEnabled ? "skipo-autosave-toggle--active" : ""} ${className}`,
83
+ onClick: handleClick,
84
+ onMouseEnter: () => setInspectionText(inspectionLabel),
85
+ onMouseLeave: () => setInspectionText(null),
86
+ onFocus: () => setInspectionText(inspectionLabel),
87
+ onBlur: () => setInspectionText(null),
88
+ "aria-label": inspectionLabel,
89
+ style: {
90
+ padding: "2px 4px",
91
+ color: isEnabled ? "var(--skipo-success)" : "var(--skipo-text-muted)"
92
+ },
93
+ ...props,
94
+ children: /* @__PURE__ */ jsxs(
95
+ "svg",
96
+ {
97
+ width: "14",
98
+ height: "14",
99
+ viewBox: "0 0 24 24",
100
+ fill: "none",
101
+ stroke: "currentColor",
102
+ strokeWidth: "2",
103
+ strokeLinecap: "round",
104
+ strokeLinejoin: "round",
105
+ children: [
106
+ /* @__PURE__ */ jsx2("path", { d: "M19 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h11l5 5v11a2 2 0 0 1-2 2z" }),
107
+ /* @__PURE__ */ jsx2("polyline", { points: "17 21 17 13 7 13 7 21" }),
108
+ /* @__PURE__ */ jsx2("polyline", { points: "7 3 7 8 15 8" })
109
+ ]
110
+ }
111
+ )
112
+ }
113
+ );
114
+ };
115
+ AutoSaveToggle.displayName = "AutoSaveToggle";
116
+
117
+ // src/components/bottom-strip/ApiCallIndicator.tsx
118
+ import { jsx as jsx3, jsxs as jsxs2 } from "react/jsx-runtime";
119
+ var ApiCallIndicator = ({
120
+ activeCount,
121
+ className = "",
122
+ ...props
123
+ }) => {
124
+ const { apiActivity, setInspectionText } = useBottomStrip();
125
+ const count = activeCount !== void 0 ? activeCount : apiActivity.activeCount;
126
+ const isBusy = count > 0;
127
+ const inspectionLabel = isBusy ? `API IN-FLIGHT: ${count} ACTIVE REQUEST(S)${apiActivity.lastEndpoint ? ` (${apiActivity.lastMethod || "REQ"} ${apiActivity.lastEndpoint})` : ""}` : "API NETWORK: IDLE (ZERO PENDING CALLS)";
128
+ return /* @__PURE__ */ jsxs2(
129
+ "span",
130
+ {
131
+ className: `skipo-api-indicator ${isBusy ? "skipo-api-indicator--busy" : ""} ${className}`,
132
+ onMouseEnter: () => setInspectionText(inspectionLabel),
133
+ onMouseLeave: () => setInspectionText(null),
134
+ onFocus: () => setInspectionText(inspectionLabel),
135
+ onBlur: () => setInspectionText(null),
136
+ tabIndex: 0,
137
+ "aria-label": inspectionLabel,
138
+ style: {
139
+ display: "inline-flex",
140
+ alignItems: "center",
141
+ gap: "4px",
142
+ color: isBusy ? "var(--skipo-accent)" : "var(--skipo-text-muted)",
143
+ cursor: "default",
144
+ transition: "color 0.2s ease"
145
+ },
146
+ ...props,
147
+ children: [
148
+ /* @__PURE__ */ jsx3(
149
+ "svg",
150
+ {
151
+ width: "13",
152
+ height: "13",
153
+ viewBox: "0 0 24 24",
154
+ fill: "none",
155
+ stroke: "currentColor",
156
+ strokeWidth: "2",
157
+ strokeLinecap: "round",
158
+ strokeLinejoin: "round",
159
+ style: {
160
+ animation: isBusy ? "skipo-pulse-glow 1.5s infinite ease-in-out" : void 0
161
+ },
162
+ children: /* @__PURE__ */ jsx3("polyline", { points: "22 12 18 12 15 21 9 3 6 12 2 12" })
163
+ }
164
+ ),
165
+ isBusy && /* @__PURE__ */ jsx3("span", { style: { fontSize: "10px", fontWeight: 900, fontFamily: "var(--skipo-font-mono)" }, children: count })
166
+ ]
167
+ }
168
+ );
169
+ };
170
+ ApiCallIndicator.displayName = "ApiCallIndicator";
171
+
172
+ // src/components/bottom-strip/SystemMessageDisplay.tsx
173
+ import { jsx as jsx4, jsxs as jsxs3 } from "react/jsx-runtime";
174
+ var SystemMessageDisplay = ({
175
+ className = "",
176
+ ...props
177
+ }) => {
178
+ const { systemMessages, clearSystemMessage, setInspectionText } = useBottomStrip();
179
+ const latestMessage = systemMessages[systemMessages.length - 1];
180
+ if (!latestMessage) return null;
181
+ const colorMap = {
182
+ success: "var(--skipo-success)",
183
+ error: "var(--skipo-danger)",
184
+ warning: "var(--skipo-warning)",
185
+ info: "var(--skipo-info)"
186
+ };
187
+ const currentColor = colorMap[latestMessage.type] || "var(--skipo-text)";
188
+ const inspectionLabel = `SYSTEM [${latestMessage.type.toUpperCase()}]: ${latestMessage.message} (CLICK TO DISMISS)`;
189
+ return /* @__PURE__ */ jsxs3(
190
+ "div",
191
+ {
192
+ className: `skipo-system-msg-display skipo-system-msg-display--${latestMessage.type} ${className}`,
193
+ onMouseEnter: () => setInspectionText(inspectionLabel),
194
+ onMouseLeave: () => setInspectionText(null),
195
+ onClick: () => {
196
+ clearSystemMessage(latestMessage.id);
197
+ setInspectionText(null);
198
+ },
199
+ role: "button",
200
+ tabIndex: 0,
201
+ "aria-label": inspectionLabel,
202
+ style: {
203
+ display: "inline-flex",
204
+ alignItems: "center",
205
+ gap: "5px",
206
+ color: currentColor,
207
+ fontSize: "11px",
208
+ fontFamily: "var(--skipo-font-mono)",
209
+ fontWeight: 700,
210
+ cursor: "pointer",
211
+ maxWidth: "220px",
212
+ overflow: "hidden",
213
+ whiteSpace: "nowrap",
214
+ textOverflow: "ellipsis"
215
+ },
216
+ ...props,
217
+ children: [
218
+ /* @__PURE__ */ jsx4(
219
+ "span",
220
+ {
221
+ style: {
222
+ width: "6px",
223
+ height: "6px",
224
+ borderRadius: "50%",
225
+ backgroundColor: currentColor,
226
+ flexShrink: 0
227
+ }
228
+ }
229
+ ),
230
+ /* @__PURE__ */ jsx4("span", { style: { overflow: "hidden", textOverflow: "ellipsis" }, children: latestMessage.message })
231
+ ]
232
+ }
233
+ );
234
+ };
235
+ SystemMessageDisplay.displayName = "SystemMessageDisplay";
236
+
237
+ // src/components/bottom-strip/BottomStrip.tsx
238
+ import { forwardRef } from "react";
239
+ import { Fragment, jsx as jsx5, jsxs as jsxs4 } from "react/jsx-runtime";
240
+ var BottomStrip = forwardRef(({
241
+ leftSlot,
242
+ centerSlot,
243
+ rightSlot,
244
+ hideDefaultLeft = false,
245
+ hideDefaultRight = false,
246
+ className = "",
247
+ ...props
248
+ }, ref) => {
249
+ const { inspectionText, inspectionDescription, isDKeyPressed } = useBottomStrip();
250
+ const showDescription = Boolean(isDKeyPressed && inspectionDescription);
251
+ const activeText = showDescription ? inspectionDescription : inspectionText;
252
+ return /* @__PURE__ */ jsxs4(
253
+ "footer",
254
+ {
255
+ ref,
256
+ className: `skipo-bottom-strip ${className}`,
257
+ style: {
258
+ height: "var(--skipo-bottom-strip-height, 30px)",
259
+ minHeight: "var(--skipo-bottom-strip-height, 30px)",
260
+ background: "var(--skipo-bottom-strip-bg, rgba(15, 17, 21, 0.95))",
261
+ borderTop: "var(--skipo-border, 2px solid rgba(255, 255, 255, 0.85))",
262
+ backdropFilter: "var(--skipo-matte-blur, blur(20px))",
263
+ WebkitBackdropFilter: "var(--skipo-matte-blur, blur(20px))",
264
+ display: "flex",
265
+ alignItems: "center",
266
+ justifyContent: "space-between",
267
+ padding: "0 0.75rem",
268
+ fontSize: "11px",
269
+ fontFamily: "var(--skipo-font-mono)",
270
+ zIndex: 40,
271
+ position: "relative",
272
+ userSelect: "none"
273
+ },
274
+ ...props,
275
+ children: [
276
+ /* @__PURE__ */ jsxs4(
277
+ "div",
278
+ {
279
+ className: "skipo-bottom-strip__left",
280
+ style: {
281
+ display: "flex",
282
+ alignItems: "center",
283
+ gap: "10px",
284
+ flexShrink: 0,
285
+ minWidth: "120px"
286
+ },
287
+ children: [
288
+ !hideDefaultLeft && /* @__PURE__ */ jsxs4(Fragment, { children: [
289
+ /* @__PURE__ */ jsx5(StatusLight, {}),
290
+ /* @__PURE__ */ jsx5(AutoSaveToggle, {})
291
+ ] }),
292
+ leftSlot
293
+ ]
294
+ }
295
+ ),
296
+ /* @__PURE__ */ jsx5(
297
+ "div",
298
+ {
299
+ className: "skipo-bottom-strip__center",
300
+ style: {
301
+ flex: 1,
302
+ minWidth: 0,
303
+ display: "flex",
304
+ alignItems: "center",
305
+ justifyContent: "center",
306
+ overflow: "hidden",
307
+ padding: "0 0.5rem",
308
+ pointerEvents: "none",
309
+ textAlign: "center"
310
+ },
311
+ children: centerSlot || /* @__PURE__ */ jsx5(
312
+ "span",
313
+ {
314
+ className: "skipo-inspection-text",
315
+ "data-mode": showDescription ? "description" : "label",
316
+ style: {
317
+ color: "var(--skipo-inspection-text-color, rgba(241, 245, 249, 0.85))",
318
+ fontSize: showDescription ? "10px" : "clamp(8px, 1.1vw, 11px)",
319
+ lineHeight: 1.15,
320
+ fontWeight: showDescription ? 300 : 700,
321
+ textTransform: showDescription ? "none" : "uppercase",
322
+ letterSpacing: showDescription ? "0.01em" : "0.04em",
323
+ whiteSpace: "normal",
324
+ wordBreak: "break-word",
325
+ overflowWrap: "anywhere",
326
+ display: "-webkit-box",
327
+ WebkitLineClamp: 2,
328
+ WebkitBoxOrient: "vertical",
329
+ maxHeight: "100%",
330
+ opacity: activeText ? 0.9 : 0,
331
+ transform: activeText ? "translateY(0)" : "translateY(1px)",
332
+ transition: "opacity 0.2s cubic-bezier(0.16, 1, 0.3, 1), transform 0.2s cubic-bezier(0.16, 1, 0.3, 1)"
333
+ },
334
+ children: activeText || ""
335
+ }
336
+ )
337
+ }
338
+ ),
339
+ /* @__PURE__ */ jsxs4(
340
+ "div",
341
+ {
342
+ className: "skipo-bottom-strip__right",
343
+ style: {
344
+ display: "flex",
345
+ alignItems: "center",
346
+ justifyContent: "flex-end",
347
+ gap: "12px",
348
+ flexShrink: 0,
349
+ minWidth: "140px"
350
+ },
351
+ children: [
352
+ rightSlot,
353
+ !hideDefaultRight && /* @__PURE__ */ jsxs4(Fragment, { children: [
354
+ /* @__PURE__ */ jsx5(ApiCallIndicator, {}),
355
+ /* @__PURE__ */ jsx5(SystemMessageDisplay, {})
356
+ ] })
357
+ ]
358
+ }
359
+ )
360
+ ]
361
+ }
362
+ );
363
+ });
364
+ BottomStrip.displayName = "BottomStrip";
365
+
366
+ export {
367
+ StatusLight,
368
+ AutoSaveToggle,
369
+ ApiCallIndicator,
370
+ SystemMessageDisplay,
371
+ BottomStrip
372
+ };