@timeax/service-builder 0.0.7 → 0.0.8

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.
package/dist/index.js CHANGED
@@ -9041,6 +9041,10 @@ var Layers = () => {
9041
9041
  detail.preventDefault();
9042
9042
  canvas.api.editor.editLabel(detail.node.id, detail.node.title);
9043
9043
  }
9044
+ if (detail.type === "insert" && detail.context.via == "ui.create") {
9045
+ const parent = detail.to.parent.id;
9046
+ canvas.api.editor.addOption(parent, { label: detail.node.title });
9047
+ }
9044
9048
  };
9045
9049
  const tags = useMemo17(() => filterTree(canvas.layers.tags, tagSearch), [canvas.layers.tags, tagSearch]);
9046
9050
  const fields = useMemo17(() => filterTree(canvas.layers.fields, fieldSearch), [canvas.layers.fields, fieldSearch]);
@@ -16039,7 +16043,7 @@ var workspaceBackend = createMemoryWorkspaceBackend({
16039
16043
  });
16040
16044
 
16041
16045
  // src/index.tsx
16042
- import { jsx as jsx78, jsxs as jsxs57 } from "react/jsx-runtime";
16046
+ import { Fragment as Fragment17, jsx as jsx78, jsxs as jsxs57 } from "react/jsx-runtime";
16043
16047
  var inputRegistry = createInputRegistry();
16044
16048
  registerEntries(inputRegistry);
16045
16049
  function WorkspaceLayout({ onShare, onPlay, menu }) {
@@ -16076,8 +16080,86 @@ function WorkspaceLayout({ onShare, onPlay, menu }) {
16076
16080
  ) })
16077
16081
  ] }) }) }) });
16078
16082
  }
16083
+ var Styles = `
16084
+ /* line theming via CSS vars (can be overridden upstream) */
16085
+ :root {
16086
+ --tree-line-color: #d1d5db; /* gray-300 */
16087
+ --tree-line-width: 1px;
16088
+ --tree-line-style: solid; /* solid | dashed | dotted */
16089
+ --elbow-v-h: 100%
16090
+ }
16091
+
16092
+ /* container for each row */
16093
+ .tree-row {
16094
+ display: flex;
16095
+ align-items: center;
16096
+ gap: 0.5rem; /* matches your gap-2 */
16097
+ /*padding: 0.25rem 0.5rem; !* py-1 px-2 *!*/
16098
+ }
16099
+
16100
+ /* left rail: N ancestor columns (width given inline) */
16101
+ .tree-rail {
16102
+ display: flex;
16103
+ position: relative;
16104
+ }
16105
+
16106
+ /* a single ancestor column; width is set inline to \`indent\` */
16107
+ .tree-col {
16108
+ position: relative;
16109
+ }
16110
+
16111
+ /* draw vertical guideline IF data-show="1" */
16112
+ .tree-col[data-show="1"]::before {
16113
+ content: "";
16114
+ position: absolute;
16115
+ top: 0;
16116
+ bottom: 0;
16117
+ left: 50%;
16118
+ transform: translateX(-50%);
16119
+ border-left: var(--tree-line-width) var(--tree-line-style) var(--tree-line-color);
16120
+ }
16121
+
16122
+ /* the elbow cell for the current node (one per row) */
16123
+ .tree-elbow {
16124
+ position: relative;
16125
+ display: flex;
16126
+ justify-content: center;
16127
+ align-items: center;
16128
+ }
16129
+
16130
+ /* vertical segment (full for mid siblings, half for last) */
16131
+ .tree-elbow::before {
16132
+ content: "";
16133
+ position: absolute;
16134
+ left: 50%;
16135
+ transform: translateX(-50%);
16136
+ top: 0;
16137
+ height: var(--elbow-v-h, 100%); /* "50%" for last sibling, else "100%" */
16138
+ border-left: var(--tree-line-width) var(--tree-line-style) var(--tree-line-color);
16139
+ }
16140
+
16141
+ /* horizontal segment (elbow) from center to the content area */
16142
+ .tree-elbow::after {
16143
+ content: "";
16144
+ position: absolute;
16145
+ top: 50%;
16146
+ left: 50%;
16147
+ transform: translateY(-50%);
16148
+ width: 50%;
16149
+ border-top: var(--tree-line-width) var(--tree-line-style) var(--tree-line-color);
16150
+ }
16151
+
16152
+ /* apply to the element that receives selectedRowClassName / rowClassName */
16153
+ .tree-row-clip {
16154
+ background-clip: content-box; /* don\u2019t paint under the left padding (indent) */
16155
+ }
16156
+
16157
+ `;
16079
16158
  function ServiceBuilder({ backend, actor, onShare, onPlay, menu }) {
16080
- return /* @__PURE__ */ jsx78(InputsProvider, { initialRegistry: inputRegistry, children: /* @__PURE__ */ jsx78(Workspace, { backend, actor, children: () => /* @__PURE__ */ jsx78(WorkspaceLayout, { onShare, onPlay, menu }) }) });
16159
+ return /* @__PURE__ */ jsxs57(Fragment17, { children: [
16160
+ /* @__PURE__ */ jsx78("style", { children: Styles }),
16161
+ /* @__PURE__ */ jsx78(InputsProvider, { initialRegistry: inputRegistry, children: /* @__PURE__ */ jsx78(Workspace, { backend, actor, children: () => /* @__PURE__ */ jsx78(WorkspaceLayout, { onShare, onPlay, menu }) }) })
16162
+ ] });
16081
16163
  }
16082
16164
  function ServiceBuilderWorkspace({ onShare, onPlay, menu }) {
16083
16165
  return /* @__PURE__ */ jsx78(ServiceBuilder, { backend: workspaceBackend, actor: workspaceActor, onShare, onPlay, menu });