@xenosystem/blocks 0.13.3 → 0.13.5

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.
@@ -642,7 +642,6 @@ interface AgentPanelViewModel {
642
642
  busy: boolean;
643
643
  idle: boolean;
644
644
  canSubmit: boolean;
645
- cannotSubmit: boolean;
646
645
  submitKind: 'submit' | 'steer';
647
646
  }
648
647
  interface AgentPanelViewOptions {
@@ -1104,7 +1104,6 @@ function agentPanelView(state, options = {}) {
1104
1104
  busy: state.busy,
1105
1105
  idle: !state.busy,
1106
1106
  canSubmit: state.canSubmit,
1107
- cannotSubmit: !state.canSubmit,
1108
1107
  submitKind: state.busy ? "steer" : "submit"
1109
1108
  };
1110
1109
  }
@@ -1209,7 +1208,7 @@ var AGENT_DECLARATION = {
1209
1208
  children: [
1210
1209
  { component: "chrome/TextButton", when: { input: "view.busy" }, on: { onClick: ui("steer") }, children: [{ component: "text", props: { text: { value: "Steer" } } }] },
1211
1210
  { component: "chrome/TextButton", when: { input: "view.busy" }, on: { onClick: ui("cancel") }, children: [{ component: "text", props: { text: { value: "Stop" } } }] },
1212
- { component: "chrome/TextButton", when: { input: "view.idle" }, props: { disabled: { input: "view.cannotSubmit" } }, on: { onClick: ui("submit") }, children: [{ component: "text", props: { text: { value: "Send" } } }] }
1211
+ { component: "chrome/TextButton", when: { input: "view.idle" }, props: { disabled: { not: { input: "view.canSubmit" } } }, on: { onClick: ui("submit") }, children: [{ component: "text", props: { text: { value: "Send" } } }] }
1213
1212
  ]
1214
1213
  }
1215
1214
  }
@@ -1293,7 +1292,7 @@ function AgentPanelView({
1293
1292
  right: /* @__PURE__ */ jsxs(ToolbarGroup, { end: true, children: [
1294
1293
  v.busy ? /* @__PURE__ */ jsx(TextButton, { onClick: () => controller.steer(), children: "Steer" }) : null,
1295
1294
  v.busy ? /* @__PURE__ */ jsx(TextButton, { onClick: () => controller.cancel(), children: "Stop" }) : null,
1296
- v.idle ? /* @__PURE__ */ jsx(TextButton, { disabled: v.cannotSubmit, onClick: () => controller.submit(), children: "Send" }) : null
1295
+ v.idle ? /* @__PURE__ */ jsx(TextButton, { disabled: !v.canSubmit, onClick: () => controller.submit(), children: "Send" }) : null
1297
1296
  ] })
1298
1297
  }
1299
1298
  )
@@ -1,4 +1,4 @@
1
- import * as React from 'react';
1
+ import * as react from 'react';
2
2
  import { ReactNode } from 'react';
3
3
  import { PanelModule, PanelManifest, BlockDeclaration } from '@xenosystem/block-sdk';
4
4
  import { PanelTone } from '@xenosystem/components/chrome';
@@ -314,7 +314,7 @@ interface AuthGateViewProps {
314
314
  heroSrc?: string;
315
315
  now?: () => number;
316
316
  }
317
- declare function AuthGateView$1({ controller, productName, children, heroSrc, now }: AuthGateViewProps): React.JSX.Element;
317
+ declare function AuthGateView$1({ controller, productName, children, heroSrc, now }: AuthGateViewProps): react.JSX.Element;
318
318
 
319
319
  /**
320
320
  * The auth gate AS A DECLARATION — the first block written the way `xeno-apps/SPEC.md` §8d says every
@@ -1,9 +1,12 @@
1
1
  import {
2
2
  Svg,
3
- XGlyph
4
- } from "./chunk-GQWAIPDF.js";
3
+ XGlyph,
4
+ fromElement
5
+ } from "./chunk-YTSBYJVH.js";
5
6
 
6
7
  // src/edit/layers/react/icons.tsx
8
+ import Eye from "@xenosystem/elements/elements/eye";
9
+ import EyeOff from "@xenosystem/elements/elements/eye-off";
7
10
  import { jsx, jsxs } from "react/jsx-runtime";
8
11
  var base = (size) => ({
9
12
  width: size,
@@ -16,19 +19,8 @@ var base = (size) => ({
16
19
  strokeLinejoin: "round",
17
20
  "aria-hidden": true
18
21
  });
19
- function EyeIcon({ size = 12, className }) {
20
- return /* @__PURE__ */ jsxs("svg", { ...base(size), className, children: [
21
- /* @__PURE__ */ jsx("path", { d: "M2 12s3.5-7 10-7 10 7 10 7-3.5 7-10 7-10-7-10-7Z" }),
22
- /* @__PURE__ */ jsx("path", { d: "M15 12a3 3 0 1 1-6 0 3 3 0 0 1 6 0Z" })
23
- ] });
24
- }
25
- function EyeOffIcon({ size = 12, className }) {
26
- return /* @__PURE__ */ jsxs("svg", { ...base(size), className, children: [
27
- /* @__PURE__ */ jsx("path", { d: "M10.7 5.1A11 11 0 0 1 12 5c6.5 0 10 7 10 7a18 18 0 0 1-2.4 3.4M6.6 6.6A18 18 0 0 0 2 12s3.5 7 10 7a10.9 10.9 0 0 0 5.4-1.4" }),
28
- /* @__PURE__ */ jsx("path", { d: "M14.1 14.1a3 3 0 1 1-4.2-4.2" }),
29
- /* @__PURE__ */ jsx("path", { d: "m2 2 20 20" })
30
- ] });
31
- }
22
+ var EyeIcon = fromElement(Eye, 12);
23
+ var EyeOffIcon = fromElement(EyeOff, 12);
32
24
  function LockIcon({ size = 12, className }) {
33
25
  return /* @__PURE__ */ jsxs("svg", { ...base(size), className, children: [
34
26
  /* @__PURE__ */ jsx("rect", { width: "14", height: "10", x: "5", y: "11", rx: "2" }),
@@ -52,6 +44,7 @@ function LockStateIcon({ locked, size }) {
52
44
  }
53
45
 
54
46
  // src/edit/inspector/react/icons.tsx
47
+ import Link from "@xenosystem/elements/elements/link";
55
48
  import { jsx as jsx2, jsxs as jsxs2 } from "react/jsx-runtime";
56
49
  var base2 = (size) => ({
57
50
  width: size,
@@ -80,12 +73,7 @@ function PrevIcon({ size = 9 }) {
80
73
  function NextIcon({ size = 9 }) {
81
74
  return /* @__PURE__ */ jsx2("svg", { ...base2(size), children: /* @__PURE__ */ jsx2("path", { d: "m9 18 6-6-6-6" }) });
82
75
  }
83
- function LinkIcon({ size = 10 }) {
84
- return /* @__PURE__ */ jsxs2("svg", { ...base2(size), children: [
85
- /* @__PURE__ */ jsx2("path", { d: "M10 13a5 5 0 0 0 7.5.5l3-3a5 5 0 0 0-7-7l-1.8 1.7" }),
86
- /* @__PURE__ */ jsx2("path", { d: "M14 11a5 5 0 0 0-7.5-.5l-3 3a5 5 0 0 0 7 7l1.8-1.7" })
87
- ] });
88
- }
76
+ var LinkIcon = fromElement(Link, 10);
89
77
  function ResetIcon({ size = 10 }) {
90
78
  return /* @__PURE__ */ jsxs2("svg", { ...base2(size), children: [
91
79
  /* @__PURE__ */ jsx2("path", { d: "M3 12a9 9 0 1 0 3-6.7L3 8" }),
@@ -100,6 +88,7 @@ function XIcon({ size = 10 }) {
100
88
  }
101
89
 
102
90
  // src/edit/history/react/icons.tsx
91
+ import Trash from "@xenosystem/elements/elements/trash";
103
92
  import { jsx as jsx3, jsxs as jsxs3 } from "react/jsx-runtime";
104
93
  var svgBase = (size) => ({
105
94
  width: size,
@@ -150,13 +139,7 @@ function EntryIcon({ name, size = 11 }) {
150
139
  function XIcon2({ size = 10 }) {
151
140
  return /* @__PURE__ */ jsx3(XGlyph, { size });
152
141
  }
153
- function TrashIcon({ size = 11 }) {
154
- return /* @__PURE__ */ jsxs3("svg", { ...svgBase(size), children: [
155
- /* @__PURE__ */ jsx3("path", { d: "M3 6h18" }),
156
- /* @__PURE__ */ jsx3("path", { d: "M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6" }),
157
- /* @__PURE__ */ jsx3("path", { d: "M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2" })
158
- ] });
159
- }
142
+ var TrashIcon = fromElement(Trash);
160
143
  function UndoIcon({ size = 11 }) {
161
144
  return /* @__PURE__ */ jsxs3("svg", { ...svgBase(size), children: [
162
145
  /* @__PURE__ */ jsx3("path", { d: "M9 14 4 9l5-5" }),
@@ -0,0 +1,115 @@
1
+ // src/icons/glyphs.tsx
2
+ import Copy from "@xenosystem/elements/elements/copy";
3
+ import Download from "@xenosystem/elements/elements/download";
4
+ import Plus from "@xenosystem/elements/elements/plus";
5
+ import Refresh from "@xenosystem/elements/elements/refresh";
6
+ import X from "@xenosystem/elements/elements/x";
7
+
8
+ // src/icons/elements.tsx
9
+ import { XenoElement } from "@xenosystem/elements-react";
10
+ import { jsx } from "react/jsx-runtime";
11
+ var GLYPH_STROKE_WIDTH = 1.5;
12
+ function fromElement(decl, defaultSize = 11, state) {
13
+ const Glyph = ({ size = defaultSize, className }) => /* @__PURE__ */ jsx(XenoElement, { decl, state, size, strokeWidth: GLYPH_STROKE_WIDTH, className, "aria-hidden": "true", role: void 0, "aria-label": void 0 });
14
+ Glyph.displayName = `Element(${decl.id})`;
15
+ return Glyph;
16
+ }
17
+
18
+ // src/icons/glyphs.tsx
19
+ import { jsx as jsx2, jsxs } from "react/jsx-runtime";
20
+ function Svg({ children, size = 11 }) {
21
+ return /* @__PURE__ */ jsx2("svg", { width: size, height: size, viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "1.5", strokeLinecap: "round", strokeLinejoin: "round", "aria-hidden": "true", children });
22
+ }
23
+ var RefreshGlyph = fromElement(Refresh);
24
+ var XGlyph = fromElement(X);
25
+ var PlusGlyph = fromElement(Plus);
26
+ function ChevronGlyph({ direction = "right", size } = {}) {
27
+ const d = direction === "left" ? "m15 18-6-6 6-6" : direction === "up" ? "m18 15-6-6-6 6" : direction === "down" ? "m6 9 6 6 6-6" : "m9 18 6-6-6-6";
28
+ return /* @__PURE__ */ jsx2(Svg, { size, children: /* @__PURE__ */ jsx2("path", { d }) });
29
+ }
30
+ var DownloadGlyph = fromElement(Download);
31
+ function PlugGlyph({ size } = {}) {
32
+ return /* @__PURE__ */ jsxs(Svg, { size, children: [
33
+ /* @__PURE__ */ jsx2("path", { d: "M12 22v-5" }),
34
+ /* @__PURE__ */ jsx2("path", { d: "M9 8V2M15 8V2" }),
35
+ /* @__PURE__ */ jsx2("path", { d: "M18 8v3a6 6 0 0 1-12 0V8Z" })
36
+ ] });
37
+ }
38
+ function SortAscGlyph({ size = 9 } = {}) {
39
+ return /* @__PURE__ */ jsxs(Svg, { size, children: [
40
+ /* @__PURE__ */ jsx2("path", { d: "m5 12 7-7 7 7" }),
41
+ /* @__PURE__ */ jsx2("path", { d: "M12 19V5" })
42
+ ] });
43
+ }
44
+ function SortDescGlyph({ size = 9 } = {}) {
45
+ return /* @__PURE__ */ jsxs(Svg, { size, children: [
46
+ /* @__PURE__ */ jsx2("path", { d: "M12 5v14" }),
47
+ /* @__PURE__ */ jsx2("path", { d: "m19 12-7 7-7-7" })
48
+ ] });
49
+ }
50
+ function ExpandGlyph({ size } = {}) {
51
+ return /* @__PURE__ */ jsxs(Svg, { size, children: [
52
+ /* @__PURE__ */ jsx2("path", { d: "M12 22v-6" }),
53
+ /* @__PURE__ */ jsx2("path", { d: "M12 8V2" }),
54
+ /* @__PURE__ */ jsx2("path", { d: "m9 5 3-3 3 3" }),
55
+ /* @__PURE__ */ jsx2("path", { d: "m9 19 3 3 3-3" }),
56
+ /* @__PURE__ */ jsx2("path", { d: "M4 12H2" }),
57
+ /* @__PURE__ */ jsx2("path", { d: "M10 12H8" }),
58
+ /* @__PURE__ */ jsx2("path", { d: "M16 12h-2" }),
59
+ /* @__PURE__ */ jsx2("path", { d: "M22 12h-2" })
60
+ ] });
61
+ }
62
+ function CollapseGlyph({ size } = {}) {
63
+ return /* @__PURE__ */ jsxs(Svg, { size, children: [
64
+ /* @__PURE__ */ jsx2("path", { d: "M12 22v-6" }),
65
+ /* @__PURE__ */ jsx2("path", { d: "M12 8V2" }),
66
+ /* @__PURE__ */ jsx2("path", { d: "m9 13 3 3 3-3" }),
67
+ /* @__PURE__ */ jsx2("path", { d: "m9 11 3-3 3 3" }),
68
+ /* @__PURE__ */ jsx2("path", { d: "M4 12H2" }),
69
+ /* @__PURE__ */ jsx2("path", { d: "M22 12h-2" })
70
+ ] });
71
+ }
72
+ var CopyGlyph = fromElement(Copy);
73
+ function ClearGlyph({ size } = {}) {
74
+ return /* @__PURE__ */ jsxs(Svg, { size, children: [
75
+ /* @__PURE__ */ jsx2("rect", { x: "3", y: "3", width: "18", height: "18", rx: "3" }),
76
+ /* @__PURE__ */ jsx2("path", { d: "m6 6 12 12" })
77
+ ] });
78
+ }
79
+ function CancelGlyph({ size } = {}) {
80
+ return /* @__PURE__ */ jsx2(Svg, { size, children: /* @__PURE__ */ jsx2("rect", { x: "5", y: "5", width: "14", height: "14", rx: "2" }) });
81
+ }
82
+ function RetryGlyph({ size } = {}) {
83
+ return /* @__PURE__ */ jsxs(Svg, { size, children: [
84
+ /* @__PURE__ */ jsx2("path", { d: "M21 12a9 9 0 1 1-3.36-7" }),
85
+ /* @__PURE__ */ jsx2("path", { d: "M21 3v6h-6" })
86
+ ] });
87
+ }
88
+ function CaseGlyph({ size = 12 } = {}) {
89
+ return /* @__PURE__ */ jsxs(Svg, { size, children: [
90
+ /* @__PURE__ */ jsx2("path", { d: "m3 15 4-8 4 8" }),
91
+ /* @__PURE__ */ jsx2("path", { d: "M4 13h6" }),
92
+ /* @__PURE__ */ jsx2("rect", { x: "15", y: "9", width: "6", height: "6", rx: "1.5" }),
93
+ /* @__PURE__ */ jsx2("path", { d: "M21 9v6" })
94
+ ] });
95
+ }
96
+
97
+ export {
98
+ fromElement,
99
+ Svg,
100
+ RefreshGlyph,
101
+ XGlyph,
102
+ PlusGlyph,
103
+ ChevronGlyph,
104
+ DownloadGlyph,
105
+ PlugGlyph,
106
+ SortAscGlyph,
107
+ SortDescGlyph,
108
+ ExpandGlyph,
109
+ CollapseGlyph,
110
+ CopyGlyph,
111
+ ClearGlyph,
112
+ CancelGlyph,
113
+ RetryGlyph,
114
+ CaseGlyph
115
+ };
@@ -1,4 +1,11 @@
1
+ import {
2
+ fromElement
3
+ } from "./chunk-YTSBYJVH.js";
4
+
1
5
  // src/time/transport/react/icons.tsx
6
+ import Pause from "@xenosystem/elements/elements/pause";
7
+ import Play from "@xenosystem/elements/elements/play";
8
+ import Stop from "@xenosystem/elements/elements/stop";
2
9
  import { jsx, jsxs } from "react/jsx-runtime";
3
10
  var base = (size) => ({
4
11
  width: size,
@@ -11,18 +18,9 @@ var base = (size) => ({
11
18
  strokeLinejoin: "round",
12
19
  "aria-hidden": true
13
20
  });
14
- function PlayIcon({ size = 12 }) {
15
- return /* @__PURE__ */ jsx("svg", { ...base(size), fill: "currentColor", children: /* @__PURE__ */ jsx("path", { d: "M7 4.5v15l13-7.5z" }) });
16
- }
17
- function PauseIcon({ size = 12 }) {
18
- return /* @__PURE__ */ jsxs("svg", { ...base(size), fill: "currentColor", stroke: "none", children: [
19
- /* @__PURE__ */ jsx("rect", { x: "6", y: "4", width: "4", height: "16", rx: "1" }),
20
- /* @__PURE__ */ jsx("rect", { x: "14", y: "4", width: "4", height: "16", rx: "1" })
21
- ] });
22
- }
23
- function StopIcon({ size = 11 }) {
24
- return /* @__PURE__ */ jsx("svg", { ...base(size), fill: "currentColor", stroke: "none", children: /* @__PURE__ */ jsx("rect", { x: "5", y: "5", width: "14", height: "14", rx: "2" }) });
25
- }
21
+ var PlayIcon = fromElement(Play, 12);
22
+ var PauseIcon = fromElement(Pause, 12);
23
+ var StopIcon = fromElement(Stop);
26
24
  function RecordIcon({ size = 11 }) {
27
25
  return /* @__PURE__ */ jsx("svg", { ...base(size), fill: "currentColor", stroke: "none", children: /* @__PURE__ */ jsx("rect", { x: "6", y: "6", width: "12", height: "12", rx: "3" }) });
28
26
  }
@@ -15,7 +15,7 @@ import {
15
15
  SortAscGlyph,
16
16
  SortDescGlyph,
17
17
  XGlyph
18
- } from "../chunk-GQWAIPDF.js";
18
+ } from "../chunk-YTSBYJVH.js";
19
19
  import "../chunk-2KG3PWR4.js";
20
20
 
21
21
  // src/data/table/panel.ts
@@ -1,7 +1,7 @@
1
1
  import { PanelHost, PanelModule, PanelManifest, BlockDeclaration } from '@xenosystem/block-sdk';
2
2
  import { FlatRow as FlatRow$1, DropTarget, ThrottleClock, VirtualWindow, DropPosition } from '@xenosystem/tree-core';
3
3
  export { DropPosition, DropTarget } from '@xenosystem/tree-core';
4
- import * as React from 'react';
4
+ import * as react from 'react';
5
5
  import { ReactElement, ReactNode } from 'react';
6
6
  import { XenoTimebase, XenoTick } from '@xenosystem/time-core';
7
7
 
@@ -735,7 +735,7 @@ declare function LayersPanelView({ controller }: LayersPanelViewProps): ReactEle
735
735
  */
736
736
  /** The unit names the runtime supplies for this block — what a host's registry check must accept beside the shared families. */
737
737
  declare const LAYERS_RUNTIME_UNITS: readonly ["layers/Scroller", "layers/RenameField", "layers/Thumbnail"];
738
- declare function layersRuntimeComponents(controller: LayersPanelController): Record<(typeof LAYERS_RUNTIME_UNITS)[number], React.ComponentType<any>>;
738
+ declare function layersRuntimeComponents(controller: LayersPanelController): Record<(typeof LAYERS_RUNTIME_UNITS)[number], react.ComponentType<any>>;
739
739
 
740
740
  /**
741
741
  * The layers panel AS A DECLARATION — the seventh block written the §8d way (auth gate, agent,
@@ -768,9 +768,7 @@ interface LayersViewRow {
768
768
  /** `undefined` on a leaf — the twisty slot stays, empty. */
769
769
  expanded?: boolean;
770
770
  renaming: boolean;
771
- notRenaming: boolean;
772
771
  hasThumbnail: boolean;
773
- noThumbnail: boolean;
774
772
  thumbnailKey?: string;
775
773
  showVisibility: boolean;
776
774
  visible: boolean;
@@ -1615,7 +1613,6 @@ interface InspectorViewField {
1615
1613
  title: string;
1616
1614
  focused: boolean;
1617
1615
  bound: boolean;
1618
- unbound: boolean;
1619
1616
  tokenLabel?: string;
1620
1617
  tokenTitle?: string;
1621
1618
  showKeyframes: boolean;
@@ -1758,7 +1755,7 @@ declare function InspectorPanelView({ controller }: InspectorPanelViewProps): Re
1758
1755
  */
1759
1756
  /** The unit names the runtime supplies for this block — what a host's registry check must accept beside the shared families. */
1760
1757
  declare const INSPECTOR_RUNTIME_UNITS: readonly ["inspector/FieldWidget", "inspector/Properties", "inspector/ActionGlyph"];
1761
- declare function inspectorRuntimeComponents(controller: InspectorPanelController): Record<(typeof INSPECTOR_RUNTIME_UNITS)[number], React.ComponentType<any>>;
1758
+ declare function inspectorRuntimeComponents(controller: InspectorPanelController): Record<(typeof INSPECTOR_RUNTIME_UNITS)[number], react.ComponentType<any>>;
1762
1759
 
1763
1760
  /**
1764
1761
  * The canonical History wire contract (union spec §3): `XenoHistoryState` in,
@@ -2244,7 +2241,7 @@ declare function HistoryPanelView({ controller }: HistoryPanelViewProps): ReactE
2244
2241
  */
2245
2242
  /** The unit names the runtime supplies for this block — what a host's registry check must accept beside the shared families. */
2246
2243
  declare const HISTORY_RUNTIME_UNITS: readonly ["history/Scroller", "history/CancelButton"];
2247
- declare function historyRuntimeComponents(controller: HistoryPanelController): Record<(typeof HISTORY_RUNTIME_UNITS)[number], React.ComponentType<any>>;
2244
+ declare function historyRuntimeComponents(controller: HistoryPanelController): Record<(typeof HISTORY_RUNTIME_UNITS)[number], react.ComponentType<any>>;
2248
2245
 
2249
2246
  /**
2250
2247
  * The history panel AS A DECLARATION — the sixth block written the §8d way (auth gate, agent, account,
@@ -2290,8 +2287,6 @@ interface HistoryViewRow {
2290
2287
  interface HistoryViewState {
2291
2288
  canUndo: boolean;
2292
2289
  canRedo: boolean;
2293
- cannotUndo: boolean;
2294
- cannotRedo: boolean;
2295
2290
  searchShown: boolean;
2296
2291
  filter: string;
2297
2292
  counter: string;
@@ -2808,7 +2803,7 @@ declare function ColorPanelView({ controller }: ColorPanelViewProps): ReactEleme
2808
2803
  /** The units the runtime registers for `COLOR_DECLARATION`, bound to ITS controller: the picker and the glyphs. */
2809
2804
  /** The unit names the runtime supplies for this block — what a host's registry check must accept beside the shared families. */
2810
2805
  declare const COLOR_RUNTIME_UNITS: readonly ["color/Picker"];
2811
- declare function colorRuntimeComponents(controller: ColorPanelController): Record<(typeof COLOR_RUNTIME_UNITS)[number], React.ComponentType<any>>;
2806
+ declare function colorRuntimeComponents(controller: ColorPanelController): Record<(typeof COLOR_RUNTIME_UNITS)[number], react.ComponentType<any>>;
2812
2807
 
2813
2808
  /**
2814
2809
  * The color panel AS A DECLARATION — the eighth block written the §8d way (auth gate, agent, account,
@@ -17,14 +17,14 @@ import {
17
17
  VisibilityIcon,
18
18
  XIcon,
19
19
  XIcon2
20
- } from "../chunk-SFSCCISX.js";
20
+ } from "../chunk-UGA6G7IN.js";
21
21
  import {
22
22
  CaseGlyph,
23
23
  ChevronGlyph,
24
24
  CollapseGlyph,
25
25
  ExpandGlyph,
26
26
  RefreshGlyph
27
- } from "../chunk-GQWAIPDF.js";
27
+ } from "../chunk-YTSBYJVH.js";
28
28
  import "../chunk-2KG3PWR4.js";
29
29
 
30
30
  // src/edit/layers/panel.ts
@@ -1258,9 +1258,7 @@ function layersViewState(c) {
1258
1258
  dropHint: drag?.target && drag.target.targetId === row2.id ? drag.target.position : null,
1259
1259
  expanded: container ? row2.expanded : void 0,
1260
1260
  renaming: renamingId === row2.id,
1261
- notRenaming: renamingId !== row2.id,
1262
1261
  hasThumbnail: columns.includes("thumbnail") && !!node.thumbnailKey,
1263
- noThumbnail: !(columns.includes("thumbnail") && !!node.thumbnailKey),
1264
1262
  thumbnailKey: node.thumbnailKey,
1265
1263
  showVisibility: columns.includes("visibility") && node.visible !== void 0,
1266
1264
  visible: !!node.visible,
@@ -1365,7 +1363,7 @@ var LAYERS_DECLARATION = {
1365
1363
  component: "fragment",
1366
1364
  children: [
1367
1365
  { component: "layers/Thumbnail", when: { item: "hasThumbnail" }, props: { thumbnailKey: { item: "thumbnailKey" }, size: { input: "view.thumbnailSize" } } },
1368
- { component: "icons/Kind", when: { item: "noThumbnail" } }
1366
+ { component: "icons/Kind", when: { not: { item: "hasThumbnail" } } }
1369
1367
  ]
1370
1368
  }
1371
1369
  },
@@ -1387,7 +1385,7 @@ var LAYERS_DECLARATION = {
1387
1385
  component: "fragment",
1388
1386
  children: [
1389
1387
  { component: "layers/RenameField", when: { item: "renaming" }, props: { id: { item: "id" } } },
1390
- { component: "text", when: { item: "notRenaming" }, props: { text: { item: "name" } } }
1388
+ { component: "text", when: { not: { item: "renaming" } }, props: { text: { item: "name" } } }
1391
1389
  ]
1392
1390
  }
1393
1391
  },
@@ -3010,7 +3008,6 @@ function inspectorViewState(c) {
3010
3008
  title: field.description ?? field.label,
3011
3009
  focused: focusedId === field.id,
3012
3010
  bound,
3013
- unbound: !bound,
3014
3011
  tokenLabel: tokenName,
3015
3012
  tokenTitle: bound ? `Bound to ${tokenName}` : void 0,
3016
3013
  showKeyframes: sk,
@@ -3212,7 +3209,7 @@ var INSPECTOR_DECLARATION = {
3212
3209
  },
3213
3210
  children: [
3214
3211
  { component: "chrome/Badge", when: { item: "bound" }, props: { title: { item: "tokenTitle" } }, children: [text2({ item: "tokenLabel" })] },
3215
- { component: "inspector/FieldWidget", when: { item: "unbound" }, props: { field: { item: "field" } } }
3212
+ { component: "inspector/FieldWidget", when: { not: { item: "bound" } }, props: { field: { item: "field" } } }
3216
3213
  ]
3217
3214
  },
3218
3215
  { component: "chrome/Stack", when: { item: "showInfoNote" }, props: { pad: { value: "inset" } }, children: [{ component: "chrome/Text", props: { role: { value: "caption" } }, children: [text2({ item: "infoNote" })] }] }
@@ -3632,7 +3629,7 @@ function FieldRow({ row: row2, controller }) {
3632
3629
  ] }),
3633
3630
  children: [
3634
3631
  row2.bound ? /* @__PURE__ */ jsx4(Badge2, { title: row2.tokenTitle, children: row2.tokenLabel }) : null,
3635
- row2.unbound ? /* @__PURE__ */ jsx4(FieldWidget, { field: row2.field, controller }) : null
3632
+ !row2.bound ? /* @__PURE__ */ jsx4(FieldWidget, { field: row2.field, controller }) : null
3636
3633
  ]
3637
3634
  }
3638
3635
  ),
@@ -4665,8 +4662,6 @@ function historyViewState(c) {
4665
4662
  return {
4666
4663
  canUndo: c.canUndo(),
4667
4664
  canRedo: c.canRedo(),
4668
- cannotUndo: !c.canUndo(),
4669
- cannotRedo: !c.canRedo(),
4670
4665
  searchShown: c.isSearchShown(),
4671
4666
  filter: c.getFilter(),
4672
4667
  counter: `${c.getAppliedCount()} / ${c.getTotalCount()}`,
@@ -4755,7 +4750,7 @@ var historyViewManifest = {
4755
4750
  outputs: [{ id: "ui", type: "object", label: "UI intent", description: "{ kind, entryId?, value?, x?, y? } \u2014 applied by the runtime to the controller." }],
4756
4751
  commands: []
4757
4752
  };
4758
- var EMPTY3 = { canUndo: false, canRedo: false, cannotUndo: true, cannotRedo: true, searchShown: true, filter: "", counter: "0 / 0", clearAllowed: false, confirmingClear: false, pruned: false, totalHeight: 0, offsetTop: 0, rows: [], empty: true, hasMemory: false, memoryText: "" };
4753
+ var EMPTY3 = { canUndo: false, canRedo: false, searchShown: true, filter: "", counter: "0 / 0", clearAllowed: false, confirmingClear: false, pruned: false, totalHeight: 0, offsetTop: 0, rows: [], empty: true, hasMemory: false, memoryText: "" };
4759
4754
  var BEHAVIOURS3 = {
4760
4755
  "edit/historyPanelView": (inputs) => inputs.view ?? EMPTY3
4761
4756
  };
@@ -4776,8 +4771,8 @@ var HISTORY_DECLARATION = {
4776
4771
  node: {
4777
4772
  component: "fragment",
4778
4773
  children: [
4779
- { component: "chrome/IconButton", props: { size: { value: "sm" }, icon: { node: { component: "icons/Undo" } }, label: { value: "Undo" }, disabled: { input: "view.cannotUndo" } }, on: { onClick: ui3("undo") } },
4780
- { component: "chrome/IconButton", props: { size: { value: "sm" }, icon: { node: { component: "icons/Redo" } }, label: { value: "Redo" }, disabled: { input: "view.cannotRedo" } }, on: { onClick: ui3("redo") } }
4774
+ { component: "chrome/IconButton", props: { size: { value: "sm" }, icon: { node: { component: "icons/Undo" } }, label: { value: "Undo" }, disabled: { not: { input: "view.canUndo" } } }, on: { onClick: ui3("undo") } },
4775
+ { component: "chrome/IconButton", props: { size: { value: "sm" }, icon: { node: { component: "icons/Redo" } }, label: { value: "Redo" }, disabled: { not: { input: "view.canRedo" } } }, on: { onClick: ui3("redo") } }
4781
4776
  ]
4782
4777
  }
4783
4778
  },
@@ -4881,8 +4876,8 @@ function HistoryPanelView({ controller }) {
4881
4876
  Toolbar2,
4882
4877
  {
4883
4878
  left: /* @__PURE__ */ jsxs4(Fragment4, { children: [
4884
- /* @__PURE__ */ jsx5(IconButton4, { size: "sm", icon: /* @__PURE__ */ jsx5(UndoIcon, {}), label: "Undo", disabled: view.cannotUndo, onClick: () => ui5({ kind: "undo" }) }),
4885
- /* @__PURE__ */ jsx5(IconButton4, { size: "sm", icon: /* @__PURE__ */ jsx5(RedoIcon, {}), label: "Redo", disabled: view.cannotRedo, onClick: () => ui5({ kind: "redo" }) })
4879
+ /* @__PURE__ */ jsx5(IconButton4, { size: "sm", icon: /* @__PURE__ */ jsx5(UndoIcon, {}), label: "Undo", disabled: !view.canUndo, onClick: () => ui5({ kind: "undo" }) }),
4880
+ /* @__PURE__ */ jsx5(IconButton4, { size: "sm", icon: /* @__PURE__ */ jsx5(RedoIcon, {}), label: "Redo", disabled: !view.canRedo, onClick: () => ui5({ kind: "redo" }) })
4886
4881
  ] }),
4887
4882
  right: /* @__PURE__ */ jsxs4(Fragment4, { children: [
4888
4883
  /* @__PURE__ */ jsx5(Text4, { role: "number", children: view.counter }),
@@ -1,17 +1,5 @@
1
1
  import { ReactNode, ComponentType } from 'react';
2
2
 
3
- /**
4
- * The shared glyphs — ONE source for the strokes that used to be copied per block (`Refresh` was
5
- * byte-identical in three files, `X` in three, `Plus` in two). Lucide geometry at strokeWidth 1.5,
6
- * rectangles and lines only: no circles anywhere (DESIGN_SYSTEM §3). Every block-local `icons.tsx`
7
- * re-exports from here under its own name, so no view changed when the copies collapsed.
8
- *
9
- * Interim, like the registry beside it: when `@xenosystem/elements-react` ships the icon set, this
10
- * file becomes re-exports and the blocks are untouched.
11
- *
12
- * @module
13
- */
14
-
15
3
  /** The frame every glyph draws in. */
16
4
  declare function Svg({ children, size }: {
17
5
  children: ReactNode;
@@ -12,7 +12,7 @@ import {
12
12
  StepBackIcon,
13
13
  StepForwardIcon,
14
14
  StopIcon
15
- } from "../chunk-BP4EYOCQ.js";
15
+ } from "../chunk-YZYFDQIY.js";
16
16
  import {
17
17
  DiamondIcon,
18
18
  EntryIcon,
@@ -30,7 +30,7 @@ import {
30
30
  TreeIcon,
31
31
  UndoIcon,
32
32
  VisibilityIcon
33
- } from "../chunk-SFSCCISX.js";
33
+ } from "../chunk-UGA6G7IN.js";
34
34
  import {
35
35
  CancelGlyph,
36
36
  CaseGlyph,
@@ -48,7 +48,7 @@ import {
48
48
  SortDescGlyph,
49
49
  Svg,
50
50
  XGlyph
51
- } from "../chunk-GQWAIPDF.js";
51
+ } from "../chunk-YTSBYJVH.js";
52
52
  import "../chunk-2KG3PWR4.js";
53
53
 
54
54
  // src/icons/index.ts
package/dist/ops/index.js CHANGED
@@ -11,7 +11,7 @@ import {
11
11
  ClearGlyph,
12
12
  CopyGlyph,
13
13
  RetryGlyph
14
- } from "../chunk-GQWAIPDF.js";
14
+ } from "../chunk-YTSBYJVH.js";
15
15
  import "../chunk-2KG3PWR4.js";
16
16
 
17
17
  // src/ops/console/panel.ts
@@ -1,9 +1,34 @@
1
1
  import { PanelHost, PanelModule, PanelManifest, BlockDeclaration } from '@xenosystem/block-sdk';
2
2
  import { ThrottleClock, XenoPlayheadClock, XenoTimebase, XenoTransportState, XenoTick, XenoStepUnit, XenoLoopRange } from '@xenosystem/time-core';
3
3
  export { BAR_SUBDIVISION, BarsBeats, DEFAULT_TIMEBASE, DISPLAY_CYCLE, ExtrapolateInput, IDLE_CLOCK, ThrottleClock, Throttled, XenoLoopRange, XenoPlayheadClock, XenoStepUnit, XenoTempoEntry, XenoTick, XenoTimeDisplay, XenoTimeSignature, XenoTimebase, XenoTransportIntent, XenoTransportState, clampTick, clockAt, createThrottle, displayLabel, effectiveFps, extrapolateTick, formatBars, formatFrames, formatSeconds, formatTick, formatTimecode, frameToTick, isAnimating, nextDisplay, normalizeClock, normalizeTimebase, secondsToTicks, tickToFrame, ticksToBarsBeats, ticksToSeconds, toTick, wrapIntoLoop } from '@xenosystem/time-core';
4
+ import * as react from 'react';
4
5
  import { ReactElement, ReactNode } from 'react';
5
6
  import { XenoValue, XenoRow, XenoResultSet, XenoColumn } from '@xenosystem/data-core';
6
7
 
8
+ /**
9
+ * THE SWAP POINT, in use — a glyph drawn by `@xenosystem/elements` (rung 1), rendered by
10
+ * `@xenosystem/elements-react`, wearing the family's glyph contract (`test/icons.contract.test.tsx`).
11
+ *
12
+ * `@xenosystem/elements@0.0.1` ships 101 element declarations and ONE renderer parameterised by data
13
+ * (`<XenoElement decl>`; no barrel, imported per id). Every `icons/*` name whose meaning the set
14
+ * already carries resolves here; the rest stay hand-drawn in `glyphs.tsx` and the block files until
15
+ * the set names them. The contract does not care which — that is the point of having written it.
16
+ *
17
+ * Two deliberate adaptations, both measured on 2026-09-18:
18
+ * - `strokeWidth` is pinned to **1.5**: the renderer's `regular` weight is 1.75 (its own comment:
19
+ * "the value the foundry workbench shipped and the design approved") while `DESIGN_SYSTEM.md`
20
+ * §6 still says 1.5 and every hand-drawn glyph beside these draws 1.5. Two weights in one toolbar
21
+ * is the visible defect; which number is right is the design owner's call
22
+ * (`orchestrator/briefs/2026-09-18-icon-stroke-weight-1.5-vs-1.75.md`) and flips in ONE place.
23
+ * - `role`/`aria-label` are removed and `aria-hidden` set: a glyph is never a name; the unit that
24
+ * mounts it (`IconButton.label`, a Row's label) is.
25
+ */
26
+
27
+ interface ElementGlyphProps {
28
+ size?: number;
29
+ className?: string;
30
+ }
31
+
7
32
  /**
8
33
  * `TransportPanelController` — the framework-free brain of the Transport panel.
9
34
  *
@@ -260,23 +285,9 @@ interface TransportPanelViewProps {
260
285
  }
261
286
  declare function TransportPanelView({ controller }: TransportPanelViewProps): ReactElement;
262
287
 
263
- /**
264
- * Inline transport glyphs at lucide geometry, **strokeWidth 1.5** (DESIGN_SYSTEM §6). Zero runtime
265
- * dependencies — no `lucide-react` import. Shapes are rectangles and triangles only; the record
266
- * glyph is a rounded SQUARE, never a circle (§3 "no circles anywhere").
267
- *
268
- * @module
269
- */
270
-
271
288
  interface IconProps {
272
289
  size?: number;
273
290
  }
274
- /** lucide `play` (filled for weight at small sizes). */
275
- declare function PlayIcon({ size }: IconProps): ReactElement;
276
- /** lucide `pause`. */
277
- declare function PauseIcon({ size }: IconProps): ReactElement;
278
- /** lucide `square` — stop. */
279
- declare function StopIcon({ size }: IconProps): ReactElement;
280
291
  /** Record — a rounded SQUARE (the XENO shape language has no circles). */
281
292
  declare function RecordIcon({ size }: IconProps): ReactElement;
282
293
  /** lucide `skip-back` — go to start. */
@@ -305,10 +316,10 @@ declare function PlayPauseIcon({ playing, size }: {
305
316
  * elements icon set lands, then these resolve to `icons/*` and this map goes.
306
317
  */
307
318
  declare const TRANSPORT_ICONS: {
308
- 'transport/PlayIcon': typeof PlayIcon;
309
- 'transport/PauseIcon': typeof PauseIcon;
319
+ 'transport/PlayIcon': react.ComponentType<ElementGlyphProps>;
320
+ 'transport/PauseIcon': react.ComponentType<ElementGlyphProps>;
310
321
  'transport/PlayPauseIcon': typeof PlayPauseIcon;
311
- 'transport/StopIcon': typeof StopIcon;
322
+ 'transport/StopIcon': react.ComponentType<ElementGlyphProps>;
312
323
  'transport/RecordIcon': typeof RecordIcon;
313
324
  'transport/StartIcon': typeof StartIcon;
314
325
  'transport/EndIcon': typeof EndIcon;
@@ -12,10 +12,10 @@ import {
12
12
  StopIcon,
13
13
  TRANSPORT_ICONS,
14
14
  TRANSPORT_RUNTIME_UNITS
15
- } from "../chunk-BP4EYOCQ.js";
15
+ } from "../chunk-YZYFDQIY.js";
16
16
  import {
17
17
  ChevronGlyph
18
- } from "../chunk-GQWAIPDF.js";
18
+ } from "../chunk-YTSBYJVH.js";
19
19
  import {
20
20
  __reExport
21
21
  } from "../chunk-2KG3PWR4.js";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@xenosystem/blocks",
3
- "version": "0.13.3",
3
+ "version": "0.13.5",
4
4
  "description": "XENO Blocks — rung 3 of the front ladder: components composed into a contract-bearing unit (manifest: ports, intents, commands, agent surface), rendered by @xenosystem/workbench. ONE package, one subpath per family (/auth, /edit, /data, /time, /ops, /trust, /agent), one named export per block — XENO PACKAGE NAMING - STANDARD.md.",
5
5
  "license": "UNLICENSED",
6
6
  "type": "module",
@@ -63,9 +63,10 @@
63
63
  },
64
64
  "peerDependencies": {
65
65
  "@duckdb/duckdb-wasm": ">=1.28.0",
66
- "@xenosystem/block-sdk": ">=0.3.3 <1",
66
+ "@xenosystem/block-sdk": ">=0.3.4 <1",
67
67
  "@xenosystem/components": ">=0.18.0 <1",
68
68
  "@xenosystem/data-core": "^0.1.0",
69
+ "@xenosystem/elements": ">=0.0.1",
69
70
  "@xenosystem/elements-react": ">=0.0.1",
70
71
  "@xenosystem/time-core": "^0.1.0",
71
72
  "@xenosystem/tree-core": "^0.1.0",
@@ -79,9 +80,10 @@
79
80
  "@types/node": "^22.0.0",
80
81
  "@types/react": "^19.0.0",
81
82
  "@types/react-dom": "^19.0.0",
82
- "@xenosystem/block-sdk": "^0.3.3",
83
+ "@xenosystem/block-sdk": "^0.3.4",
83
84
  "@xenosystem/components": "^0.18.0",
84
85
  "@xenosystem/data-core": "^0.1.0",
86
+ "@xenosystem/elements": "0.0.1",
85
87
  "@xenosystem/elements-react": "0.0.1",
86
88
  "@xenosystem/time-core": "^0.1.0",
87
89
  "@xenosystem/tree-core": "^0.1.0",
@@ -1,125 +0,0 @@
1
- // src/icons/glyphs.tsx
2
- import { jsx, jsxs } from "react/jsx-runtime";
3
- function Svg({ children, size = 11 }) {
4
- return /* @__PURE__ */ jsx("svg", { width: size, height: size, viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "1.5", strokeLinecap: "round", strokeLinejoin: "round", "aria-hidden": "true", children });
5
- }
6
- function RefreshGlyph({ size } = {}) {
7
- return /* @__PURE__ */ jsxs(Svg, { size, children: [
8
- /* @__PURE__ */ jsx("path", { d: "M21 12a9 9 0 0 0-9-9 9.75 9.75 0 0 0-6.74 2.74L3 8" }),
9
- /* @__PURE__ */ jsx("path", { d: "M3 3v5h5" }),
10
- /* @__PURE__ */ jsx("path", { d: "M3 12a9 9 0 0 0 9 9 9.75 9.75 0 0 0 6.74-2.74L21 16" }),
11
- /* @__PURE__ */ jsx("path", { d: "M16 16h5v5" })
12
- ] });
13
- }
14
- function XGlyph({ size } = {}) {
15
- return /* @__PURE__ */ jsxs(Svg, { size, children: [
16
- /* @__PURE__ */ jsx("path", { d: "M18 6 6 18" }),
17
- /* @__PURE__ */ jsx("path", { d: "m6 6 12 12" })
18
- ] });
19
- }
20
- function PlusGlyph({ size } = {}) {
21
- return /* @__PURE__ */ jsxs(Svg, { size, children: [
22
- /* @__PURE__ */ jsx("path", { d: "M12 5v14" }),
23
- /* @__PURE__ */ jsx("path", { d: "M5 12h14" })
24
- ] });
25
- }
26
- function ChevronGlyph({ direction = "right", size } = {}) {
27
- const d = direction === "left" ? "m15 18-6-6 6-6" : direction === "up" ? "m18 15-6-6-6 6" : direction === "down" ? "m6 9 6 6 6-6" : "m9 18 6-6-6-6";
28
- return /* @__PURE__ */ jsx(Svg, { size, children: /* @__PURE__ */ jsx("path", { d }) });
29
- }
30
- function DownloadGlyph({ size } = {}) {
31
- return /* @__PURE__ */ jsxs(Svg, { size, children: [
32
- /* @__PURE__ */ jsx("path", { d: "M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4" }),
33
- /* @__PURE__ */ jsx("path", { d: "M7 10l5 5 5-5" }),
34
- /* @__PURE__ */ jsx("path", { d: "M12 15V3" })
35
- ] });
36
- }
37
- function PlugGlyph({ size } = {}) {
38
- return /* @__PURE__ */ jsxs(Svg, { size, children: [
39
- /* @__PURE__ */ jsx("path", { d: "M12 22v-5" }),
40
- /* @__PURE__ */ jsx("path", { d: "M9 8V2M15 8V2" }),
41
- /* @__PURE__ */ jsx("path", { d: "M18 8v3a6 6 0 0 1-12 0V8Z" })
42
- ] });
43
- }
44
- function SortAscGlyph({ size = 9 } = {}) {
45
- return /* @__PURE__ */ jsxs(Svg, { size, children: [
46
- /* @__PURE__ */ jsx("path", { d: "m5 12 7-7 7 7" }),
47
- /* @__PURE__ */ jsx("path", { d: "M12 19V5" })
48
- ] });
49
- }
50
- function SortDescGlyph({ size = 9 } = {}) {
51
- return /* @__PURE__ */ jsxs(Svg, { size, children: [
52
- /* @__PURE__ */ jsx("path", { d: "M12 5v14" }),
53
- /* @__PURE__ */ jsx("path", { d: "m19 12-7 7-7-7" })
54
- ] });
55
- }
56
- function ExpandGlyph({ size } = {}) {
57
- return /* @__PURE__ */ jsxs(Svg, { size, children: [
58
- /* @__PURE__ */ jsx("path", { d: "M12 22v-6" }),
59
- /* @__PURE__ */ jsx("path", { d: "M12 8V2" }),
60
- /* @__PURE__ */ jsx("path", { d: "m9 5 3-3 3 3" }),
61
- /* @__PURE__ */ jsx("path", { d: "m9 19 3 3 3-3" }),
62
- /* @__PURE__ */ jsx("path", { d: "M4 12H2" }),
63
- /* @__PURE__ */ jsx("path", { d: "M10 12H8" }),
64
- /* @__PURE__ */ jsx("path", { d: "M16 12h-2" }),
65
- /* @__PURE__ */ jsx("path", { d: "M22 12h-2" })
66
- ] });
67
- }
68
- function CollapseGlyph({ size } = {}) {
69
- return /* @__PURE__ */ jsxs(Svg, { size, children: [
70
- /* @__PURE__ */ jsx("path", { d: "M12 22v-6" }),
71
- /* @__PURE__ */ jsx("path", { d: "M12 8V2" }),
72
- /* @__PURE__ */ jsx("path", { d: "m9 13 3 3 3-3" }),
73
- /* @__PURE__ */ jsx("path", { d: "m9 11 3-3 3 3" }),
74
- /* @__PURE__ */ jsx("path", { d: "M4 12H2" }),
75
- /* @__PURE__ */ jsx("path", { d: "M22 12h-2" })
76
- ] });
77
- }
78
- function CopyGlyph({ size } = {}) {
79
- return /* @__PURE__ */ jsxs(Svg, { size, children: [
80
- /* @__PURE__ */ jsx("rect", { x: "9", y: "9", width: "12", height: "12", rx: "2" }),
81
- /* @__PURE__ */ jsx("path", { d: "M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1" })
82
- ] });
83
- }
84
- function ClearGlyph({ size } = {}) {
85
- return /* @__PURE__ */ jsxs(Svg, { size, children: [
86
- /* @__PURE__ */ jsx("rect", { x: "3", y: "3", width: "18", height: "18", rx: "3" }),
87
- /* @__PURE__ */ jsx("path", { d: "m6 6 12 12" })
88
- ] });
89
- }
90
- function CancelGlyph({ size } = {}) {
91
- return /* @__PURE__ */ jsx(Svg, { size, children: /* @__PURE__ */ jsx("rect", { x: "5", y: "5", width: "14", height: "14", rx: "2" }) });
92
- }
93
- function RetryGlyph({ size } = {}) {
94
- return /* @__PURE__ */ jsxs(Svg, { size, children: [
95
- /* @__PURE__ */ jsx("path", { d: "M21 12a9 9 0 1 1-3.36-7" }),
96
- /* @__PURE__ */ jsx("path", { d: "M21 3v6h-6" })
97
- ] });
98
- }
99
- function CaseGlyph({ size = 12 } = {}) {
100
- return /* @__PURE__ */ jsxs(Svg, { size, children: [
101
- /* @__PURE__ */ jsx("path", { d: "m3 15 4-8 4 8" }),
102
- /* @__PURE__ */ jsx("path", { d: "M4 13h6" }),
103
- /* @__PURE__ */ jsx("rect", { x: "15", y: "9", width: "6", height: "6", rx: "1.5" }),
104
- /* @__PURE__ */ jsx("path", { d: "M21 9v6" })
105
- ] });
106
- }
107
-
108
- export {
109
- Svg,
110
- RefreshGlyph,
111
- XGlyph,
112
- PlusGlyph,
113
- ChevronGlyph,
114
- DownloadGlyph,
115
- PlugGlyph,
116
- SortAscGlyph,
117
- SortDescGlyph,
118
- ExpandGlyph,
119
- CollapseGlyph,
120
- CopyGlyph,
121
- ClearGlyph,
122
- CancelGlyph,
123
- RetryGlyph,
124
- CaseGlyph
125
- };