@plitzi/sdk-dev-tools 0.37.0 → 0.37.2

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 (86) hide show
  1. package/CHANGELOG.md +159 -0
  2. package/dist/DevToolsContainer.d.ts +1 -1
  3. package/dist/DevToolsContextProvider.d.ts +1 -1
  4. package/dist/DevToolsRoot.d.ts +1 -1
  5. package/dist/components/DevToolsIndicator/DevToolsIndicator.d.ts +1 -1
  6. package/dist/components/DevToolsOverlay/DevToolsOverlay.d.ts +1 -1
  7. package/dist/components/DevToolsPanel/DevToolsBody.d.ts +1 -1
  8. package/dist/components/DevToolsPanel/DevToolsButton.d.ts +1 -1
  9. package/dist/components/DevToolsPanel/DevToolsHeader.d.ts +1 -1
  10. package/dist/components/DevToolsPanel/DevToolsPanel.d.ts +1 -1
  11. package/dist/components/DevToolsPanel/DevToolsSubHeader.d.ts +1 -1
  12. package/dist/components/DevToolsPanel/ThemeControl.d.ts +1 -1
  13. package/dist/components/DevToolsPanel/tabs/ActionsViewer/ActionsViewer.d.ts +1 -1
  14. package/dist/components/DevToolsPanel/tabs/ActionsViewer/components/ActionsToolbar/ActionsToolbar.d.ts +1 -1
  15. package/dist/components/DevToolsPanel/tabs/ActionsViewer/components/DetailShell/DetailShell.d.ts +1 -1
  16. package/dist/components/DevToolsPanel/tabs/ActionsViewer/components/FlowTimeline/FlowTimeline.d.ts +1 -1
  17. package/dist/components/DevToolsPanel/tabs/ActionsViewer/components/RunDetail/RunDetail.d.ts +1 -1
  18. package/dist/components/DevToolsPanel/tabs/ActionsViewer/components/RunList/RunList.d.ts +1 -1
  19. package/dist/components/DevToolsPanel/tabs/ActionsViewer/components/RunRow/RunRow.d.ts +1 -1
  20. package/dist/components/DevToolsPanel/tabs/ActionsViewer/components/StepRow/StepRow.d.ts +1 -1
  21. package/dist/components/DevToolsPanel/tabs/CacheViewer/CacheViewer.d.ts +1 -1
  22. package/dist/components/DevToolsPanel/tabs/CacheViewer/components/CacheRow/CacheRow.d.ts +1 -1
  23. package/dist/components/DevToolsPanel/tabs/ElementsViewer/DetailsAttributes.d.ts +1 -1
  24. package/dist/components/DevToolsPanel/tabs/ElementsViewer/DetailsDefinition.d.ts +1 -1
  25. package/dist/components/DevToolsPanel/tabs/ElementsViewer/DetailsValue.d.ts +1 -1
  26. package/dist/components/DevToolsPanel/tabs/ElementsViewer/ElementDetails.d.ts +1 -1
  27. package/dist/components/DevToolsPanel/tabs/ElementsViewer/ElementsList.d.ts +1 -1
  28. package/dist/components/DevToolsPanel/tabs/ElementsViewer/ElementsListItem.d.ts +1 -1
  29. package/dist/components/DevToolsPanel/tabs/ElementsViewer/ElementsViewer.d.ts +1 -1
  30. package/dist/components/DevToolsPanel/tabs/HistoryViewer/HistoryViewer.d.ts +1 -1
  31. package/dist/components/DevToolsPanel/tabs/HistoryViewer/components/HistoryEntryItem/HistoryEntryItem.d.ts +1 -1
  32. package/dist/components/DevToolsPanel/tabs/HistoryViewer/components/HistoryToolbar/HistoryToolbar.d.ts +1 -1
  33. package/dist/components/DevToolsPanel/tabs/Logs/Log.d.ts +1 -1
  34. package/dist/components/DevToolsPanel/tabs/Logs/LogStatus.d.ts +1 -1
  35. package/dist/components/DevToolsPanel/tabs/Logs/LogStatusIcon.d.ts +1 -1
  36. package/dist/components/DevToolsPanel/tabs/Logs/Logs.d.ts +1 -1
  37. package/dist/components/DevToolsPanel/tabs/Logs/LogsSummary/LogsSummary.d.ts +1 -1
  38. package/dist/components/DevToolsPanel/tabs/Logs/LogsSummary/LogsSummaryItem.d.ts +1 -1
  39. package/dist/components/DevToolsPanel/tabs/Logs/categories/LogAction/LogAction.d.ts +1 -1
  40. package/dist/components/DevToolsPanel/tabs/Logs/categories/LogInteraction/BodyContent.d.ts +1 -1
  41. package/dist/components/DevToolsPanel/tabs/Logs/categories/LogInteraction/BodyHeader.d.ts +1 -1
  42. package/dist/components/DevToolsPanel/tabs/Logs/categories/LogInteraction/ExecutionTree/ExecutionTree.d.ts +1 -1
  43. package/dist/components/DevToolsPanel/tabs/Logs/categories/LogInteraction/ExecutionTree/ExecutionTreeNode.d.ts +1 -1
  44. package/dist/components/DevToolsPanel/tabs/Logs/categories/LogInteraction/InteractionNode/InteractionNode.d.ts +1 -1
  45. package/dist/components/DevToolsPanel/tabs/Logs/categories/LogInteraction/InteractionNode/NodeHeader.d.ts +1 -1
  46. package/dist/components/DevToolsPanel/tabs/Logs/categories/LogInteraction/InteractionNode/NodeMetadata.d.ts +1 -1
  47. package/dist/components/DevToolsPanel/tabs/Logs/categories/LogInteraction/InteractionNode/NodeWhen.d.ts +1 -1
  48. package/dist/components/DevToolsPanel/tabs/Logs/categories/LogInteraction/LogInteraction.d.ts +1 -1
  49. package/dist/components/DevToolsPanel/tabs/Logs/categories/LogInteraction/LogInteractionBody.d.ts +1 -1
  50. package/dist/components/DevToolsPanel/tabs/Logs/categories/LogInteraction/LogInteractionHeader.d.ts +1 -1
  51. package/dist/components/DevToolsPanel/tabs/Logs/categories/LogInteraction/LogInteractionNote.d.ts +1 -1
  52. package/dist/components/DevToolsPanel/tabs/Logs/categories/LogNavigation/LogNavigation.d.ts +1 -1
  53. package/dist/components/DevToolsPanel/tabs/Logs/categories/LogNavigation/LogNavigationBody.d.ts +1 -1
  54. package/dist/components/DevToolsPanel/tabs/Logs/categories/LogNavigation/LogNavigationHeader.d.ts +1 -1
  55. package/dist/components/DevToolsPanel/tabs/Logs/categories/LogNetwork/LogNetwork.d.ts +1 -1
  56. package/dist/components/DevToolsPanel/tabs/Logs/categories/LogStore/LogStore.d.ts +1 -1
  57. package/dist/components/DevToolsPanel/tabs/Logs/categories/LogStore/LogStoreBody.d.ts +1 -1
  58. package/dist/components/DevToolsPanel/tabs/Logs/categories/LogStore/LogStoreHeader.d.ts +1 -1
  59. package/dist/components/DevToolsPanel/tabs/PluginsViewer/PluginDetails.d.ts +1 -1
  60. package/dist/components/DevToolsPanel/tabs/PluginsViewer/PluginsViewer.d.ts +1 -1
  61. package/dist/components/DevToolsPanel/tabs/StoreViewer/StoreViewer.d.ts +1 -1
  62. package/dist/components/DevToolsPanel/tabs/StoreViewer/components/FreshnessMark/FreshnessMark.d.ts +1 -1
  63. package/dist/components/DevToolsPanel/tabs/TracingViewer/TracingViewer.d.ts +1 -1
  64. package/dist/components/DevToolsPanel/tabs/TracingViewer/components/CommitCause/CommitCause.d.ts +1 -1
  65. package/dist/components/DevToolsPanel/tabs/TracingViewer/components/CommitStrip/CommitStrip.d.ts +1 -1
  66. package/dist/components/DevToolsPanel/tabs/TracingViewer/components/DetailSidebar/DetailSidebar.d.ts +1 -1
  67. package/dist/components/DevToolsPanel/tabs/TracingViewer/components/DurationLegend/DurationLegend.d.ts +1 -1
  68. package/dist/components/DevToolsPanel/tabs/TracingViewer/components/Flamegraph/FlameFrame.d.ts +1 -1
  69. package/dist/components/DevToolsPanel/tabs/TracingViewer/components/Flamegraph/Flamegraph.d.ts +1 -1
  70. package/dist/components/DevToolsPanel/tabs/TracingViewer/components/HotspotSidebar/HotspotSidebar.d.ts +1 -1
  71. package/dist/components/DevToolsPanel/tabs/TracingViewer/components/HotspotsList/HotspotsList.d.ts +1 -1
  72. package/dist/components/DevToolsPanel/tabs/TracingViewer/components/MetricToggle/MetricToggle.d.ts +1 -1
  73. package/dist/components/DevToolsPanel/tabs/TracingViewer/components/RankedList/RankedList.d.ts +1 -1
  74. package/dist/components/DevToolsPanel/tabs/TracingViewer/components/SidebarShell/SidebarEmpty.d.ts +1 -1
  75. package/dist/components/DevToolsPanel/tabs/TracingViewer/components/SidebarShell/SidebarShell.d.ts +1 -1
  76. package/dist/components/DevToolsPanel/tabs/TracingViewer/components/SidebarToggle/SidebarToggle.d.ts +1 -1
  77. package/dist/components/DevToolsPanel/tabs/TracingViewer/components/TracingToolbar/TracingToolbar.d.ts +1 -1
  78. package/dist/components/DevToolsPanel/tabs/VariablesViewer/VariableValue.d.ts +1 -1
  79. package/dist/components/DevToolsPanel/tabs/VariablesViewer/VariablesList.d.ts +1 -1
  80. package/dist/components/DevToolsPanel/tabs/VariablesViewer/VariablesListItem.d.ts +1 -1
  81. package/dist/components/DevToolsPanel/tabs/VariablesViewer/VariablesStyleList.d.ts +1 -1
  82. package/dist/components/DevToolsPanel/tabs/VariablesViewer/VariablesViewer.d.ts +1 -1
  83. package/dist/components/List/List.d.ts +1 -1
  84. package/dist/components/List/ListItem.d.ts +1 -1
  85. package/dist/components/PayloadView/PayloadView.d.ts +1 -1
  86. package/package.json +7 -7
package/CHANGELOG.md CHANGED
@@ -1,5 +1,164 @@
1
1
  # @plitzi/sdk-dev-tools
2
2
 
3
+ ## 0.37.2
4
+
5
+ ### Patch Changes
6
+
7
+ - ## Authoring and agents
8
+ - **A step's params are templates in full.** Only a bare name (`{{ post.slug }}`) used to be recognised, so a
9
+ condition or a loop in a `setState` or a webhook body was handed on as its own text — a flag set to
10
+ `{% if … %}1{% endif %}` stored the template, a non-empty string every later check read as true. Any `{{ }}` or
11
+ `{% %}` in a param is now evaluated; what it resolves to is data and is not evaluated again.
12
+ - **Twig tests work.** `x is defined`, `is empty`, `is null`, `is iterable`, `is even`, `is odd` (and `is not …`) used
13
+ to be read as comparisons with a variable of that name — `x is defined` answered true exactly when `x` was not
14
+ defined. Anything else on the right of `is` still compares.
15
+ - **A group takes an access chain.** `(rows|find('id', 3)).title` read the whole row; the key after the parenthesis
16
+ was never parsed.
17
+ - **An expression that chose to be empty renders empty** under `keepEmptyTokens`. A kept token is for a name still
18
+ waiting for a value; `{{ on ? 'active' : '' }}` said "nothing" on purpose, and handing back its text made the
19
+ empty branch a non-empty string.
20
+ - **Checkbox params written as text are booleans.** `dateConverter({ isUnix: 'false' })` read `'false'` as yes and
21
+ gave an ISO date back raw. Every utility's checkbox params are normalised before its callback runs.
22
+ - **`condition-starts-visible`** warns about a visibility computed from data on an element that starts on screen: it
23
+ is drawn until its provider answers and then hidden — an empty state or a "get started" card flashing past on
24
+ every load. `visible: false` makes it wait hidden. The export reads a visibility binding back in its place, so a
25
+ space whose condition is not its last binding round-trips unchanged.
26
+ - **A source named by its short id inside a binding's template is refused** with the full name, as it already was in
27
+ a flow: `{{ stats.total }}` resolved to nothing and the element showed its empty branch.
28
+ - **`activeOn(class, pageIds)`** marks a menu's current entry from `navigation.currentPageId` — one binding for a menu
29
+ kept in a layout. `variantFrom` now says `append: 'true'`, which is what it did.
30
+ - **Two elements with one id** name where the first one was written. **`template-never-resolved`** warns about a
31
+ condition left in an attribute, which only resolves `{{ name|filter }}` tokens.
32
+ - **The authoring skill is a folder**: `SKILL.md` plus references for layouts, data and visibility, templates,
33
+ flows, structure, testing and a review checklist. `plitzi create` copies all of it, and writes an `AGENTS.md`
34
+ (imported by `CLAUDE.md`) pointing any agent at it.
35
+
36
+ - **A new space starts on a page worth keeping.** The space `POST /spaces` and `plitzi create` both begin from is
37
+ redesigned: a top bar with the theme switch, a hero with two calls to action, and six guides — each a card linking to
38
+ its page of the docs (`https://plitzi.com/docs/…`). Every link used to be `#`, and one promised a course that does
39
+ not exist. The palette is a set of light/dark tokens in Geist, the guides are one list mapped to one card, and the
40
+ bands of the page share a `shell` class — the page is written the way the authoring skill asks a space to be.
41
+ - **The copy `plitzi create` writes passes its own project's lint.** An import of the package that would not fit
42
+ 120 columns is wrapped one name per line, as the project's formatter would wrap it.
43
+
44
+ ## Server actions and scheduled jobs
45
+
46
+ **Scheduled jobs across replicas, out of the box, on the database a deployment already runs.** The scheduler and the
47
+ workers were already the package's; where the jobs wait was left to each deployment to write — and a queue is the part
48
+ that is easiest to get subtly wrong. Two helpers now build the adapters over a store the deployment owns, without the
49
+ package opening a connection or keeping data of its own:
50
+
51
+ - `@plitzi/sdk-server/mongo` — `createMongoJobQueue({ db })` and `createMongoKv({ db })`, over a `Db` (or a getter for a
52
+ client that reconnects). Creates the indexes its queries need; `mongodb` is an optional peer, used for its types.
53
+ - `@plitzi/sdk-server/mysql` — `createMysqlJobQueue({ pool })` and `createMysqlKv({ pool })`, over a `mysql2` pool.
54
+ Each job is claimed by a single-row compare-and-set, so replicas claiming at once never deadlock. Creates its three
55
+ tables on first use, or hands them to your own migrations through `mysqlJobSchemaStatements()`.
56
+
57
+ Every instant is the database server's, never a replica's. The in-process queue and both helpers pass one contract test
58
+ suite: exactly-once enqueue, atomic claims, leases that lapse and are reaped, heartbeats, settlements ignored from a
59
+ worker that lost its claim, refunded hand-backs, schedules advanced by compare-and-set, operator retry and cancel.
60
+
61
+ **`closeOnSignals(server, { afterClose })`** closes the server on SIGTERM/SIGINT and exits only once it has — so a
62
+ deploy finishes the jobs a replica is running and leaves the waiting ones for the next. A second signal exits at once.
63
+ Opt-in: a host with its own signal handling calls `server.close()` itself. Projects from `plitzi create` use it.
64
+
65
+ **A replica that is told to stop finishes the jobs it is running — and only those.** `server.close()` (and the job
66
+ worker's `stop()`) now waits for every running job to end however long past its lease that is, and keeps renewing
67
+ their claims while it waits. It used to stop renewing the moment the drain began and give up at the lease: a job longer
68
+ than its lease was taken over by another replica and run a second time while the first was still finishing it, and the
69
+ process exited in the middle of it. What is still waiting is not touched — it stays in the shared queue for the replica
70
+ that is staying or the one the deploy starts — and a job claimed in the instant the stop arrived is handed back with its
71
+ attempt refunded, never started. A run is bounded by its own timeout, which is the number an orchestrator's grace period
72
+ has to cover.
73
+
74
+ - **An every-minute schedule fired every other minute.** After producing a fire, the scheduler asked for the next
75
+ one from `lateness + 1 minute`, and `cronNextFire` rounds up to a whole minute — so a sweep that ran even a second
76
+ late (with the default 15-second sweep, nearly all of them) skipped the minute it should have produced. It now asks
77
+ from the minute after the one the sweep ran in. Only expressions with consecutive-minute fires were affected;
78
+ hourly and daily schedules were not.
79
+ - **A job that gives up says which step failed and why.** Its `error` and the failed attempt in its history used to
80
+ read "the flow ended failed" for every failure there is; they now read `step "<id>" failed: <message>`, taken from
81
+ the run's outline — already redacted of every credential the run resolved, so nothing reaches the job that the
82
+ run history would not show.
83
+ - **`apiContainer` takes `refreshSeconds`**: it asks again on its own every N seconds, for a page showing something
84
+ still moving — a queue, a feed, a status board. It is the same refresh `performQuery` runs, so it works for both
85
+ runtimes (a browser request is sent again; a server provider asks for its own RSC slice again). It pauses while
86
+ the tab is hidden and never starts a refresh while the last one is in flight. `0`, the default, never does. Before
87
+ this a live server provider needed a plugin element of its own to call `useRscRefresh` on a timer: `onApiSuccess`
88
+ never fires for a server provider, so there was no way to author the loop. The builder shows it as "Refresh every
89
+ (s)" for either runtime.
90
+ - **`onApiSuccess` / `onApiError` fire for a server provider.** The declaration offered them for every
91
+ `apiContainer`, but they were decided from the browser request alone — which a `runtime: 'server'` provider never
92
+ makes — so a flow wired to them never ran. They now fire when the provider's slice arrives (or the payload arrives
93
+ without it), and again on each refresh, the same as a browser refetch. A payload resolved for another page fires
94
+ neither. **A space that wired a flow to one of them will now see it run.**
95
+ - **The theme toggle shows one icon by default.** It renders both — which one is right depends on stored state, and
96
+ markup that depended on it would differ between the server and the browser — and until now every space had to copy
97
+ ten lines of `customCss` to hide the other; one that did not showed a sun and a moon side by side. The SDK's base
98
+ layer now shows the icon of the scheme in use, and a space's own rule still wins.
99
+ - **`variantFrom(cls, source)`** in `@plitzi/sdk-authoring` binds which of a CLASS's variants an element wears to a
100
+ value in the data — a status pill that is amber while a job waits and green once it is done. Written by hand the
101
+ variant key is the trap: it names the selector the variants belong to, and the element's type (`text.base`) is a
102
+ different selector from its class (`statusPill.base`), so the element rendered with no variant and nothing
103
+ reported it. The helper takes the key from the class declaration.
104
+ - **`authorSpace` refuses a flow template that reads a source by its short name.** A binding completes the prefix
105
+ (`jobRows.item.id` → `list_jobRows.item.id`), so the short form is the one an author learns first; a step's params
106
+ are read as written, and there it resolved to nothing — a row's button posted an empty id and every layer below
107
+ reported success. The error names the full source. A root that is a step of the same flow is left alone.
108
+ - New example, [`05-with-server-actions/05-schedules`](../examples/05-with-server-actions/05-schedules): scheduled and
109
+ delayed jobs on a self-hosted server, with the `ActionJobQueue` and `kv` seams written out in full over one SQLite
110
+ file, two replicas sharing it, failover when one is killed, and a board that watches it happen.
111
+
112
+ ## Rendering, data and styles
113
+ - **A server element inside a layout is resolved.** `collectServerElements` walked the page alone, so a
114
+ `runtime: 'server'` provider in a layout — a dashboard's sidebar, a section's header — was never resolved: the RSC
115
+ payload came back empty and the element rendered with nothing. It now walks the page and every shell in its layout
116
+ chain.
117
+ - **The twig `date` filter reads an epoch.** `new Date("1790143200000")` is Invalid Date, so an epoch in milliseconds
118
+ handed over as text — how an attribute passes one — formatted as nothing. A number, or a string of digits, is now
119
+ read as milliseconds.
120
+ - **An action is called by its name, not by its trigger kind.** `actionName` took the first trigger's title, and a
121
+ trigger nobody named is titled with its kind — so every rendered action in a workspace read "render" and every clock
122
+ "schedule". A title that only repeats the kind is no longer a name, and `defineAction` titles each trigger with the
123
+ action's name.
124
+ - **`variant` on an element that wears a class is that class's variant** when the class declares it and the type does
125
+ not. Keyed by the type, `text({ class: avatar, variant: 'violet' })` named `text--violet`, a selector nothing wears,
126
+ and rendered with no variant at all. Exporting a document back to authoring reads the same key back into `variant`.
127
+ - **`variantFrom` takes `{ slot, template }`**, where `template` turns a value into a variant name for data that does
128
+ not already speak in them — `"{{ source == 'code' ? 'on' : '' }}"`. The third argument was the slot name alone.
129
+ - **Entry declarations no longer alternate with `export {}`.** In `@plitzi/sdk-server` and `@plitzi/sdk-mcp` a repeated
130
+ `build:dev` left some `dist/<entry>.d.ts` as a ten-byte `export {}`, and consumers saw "has no exported member". The
131
+ cause was `insertTypesEntry` writing a types entry over the real declaration of the same path; it is gone.
132
+ - **Signing in keeps what a guest was doing.** `runtimeStatePersist` reset `runtime.state` whenever its owner changed,
133
+ and a guest becoming a user is a change — so a sign-in screen that remembered where to send somebody (`?redirect=`)
134
+ forgot it the moment the session arrived, and the sign-in ended on the fallback page instead. Only a change FROM an
135
+ account resets now: one account's state still never reaches the next, and a guest has no account to protect.
136
+
137
+ **A value with functions inside functions is written as it was given, and fast.** A CSS value was split into layers
138
+ at commas by a pattern that could only see one level of parentheses, so `var(--bg, light-dark(#fff, #111))` was cut at
139
+ its inner comma and half a function went on into the stylesheet. The half was then tokenised by an expression that
140
+ nested one quantifier inside another and backtracked exponentially on it — nearly two seconds for thirty characters,
141
+ on every generation of that selector's cache. Both are now one linear scan that splits only outside parentheses and
142
+ quotes. Generated caches keep the spacing the value was written with inside functions (`repeat(3, minmax(0, 1fr))`,
143
+ `color-mix(in oklab, oklch(…) 50%, transparent)`), where they used to drop it after the first comma.
144
+
145
+ - Updated dependencies
146
+ - @plitzi/sdk-navigation@0.37.2
147
+ - @plitzi/sdk-schema@0.37.2
148
+ - @plitzi/sdk-shared@0.37.2
149
+ - @plitzi/sdk-style@0.37.2
150
+
151
+ ## 0.37.1
152
+
153
+ ### Patch Changes
154
+
155
+ - v0.37.1
156
+ - Updated dependencies
157
+ - @plitzi/sdk-navigation@0.37.1
158
+ - @plitzi/sdk-schema@0.37.1
159
+ - @plitzi/sdk-shared@0.37.1
160
+ - @plitzi/sdk-style@0.37.1
161
+
3
162
  ## 0.37.0
4
163
 
5
164
  ### Minor Changes
@@ -10,5 +10,5 @@ export type DevToolsContainerProps = {
10
10
  devToolsStyleLink?: string;
11
11
  renderMode?: 'default' | 'shadow';
12
12
  };
13
- declare const DevToolsContainer: ({ children, className, innerClassName, enabled, instanceId, renderMode, devToolsStyle, devToolsStyleLink }: DevToolsContainerProps) => string | number | bigint | boolean | import("react").JSX.Element | Iterable<ReactNode> | Promise<string | number | bigint | boolean | import('react').ReactPortal | import('react').ReactElement<unknown, string | import('react').JSXElementConstructor<any>> | Iterable<ReactNode> | null | undefined> | null | undefined;
13
+ declare const DevToolsContainer: ({ children, className, innerClassName, enabled, instanceId, renderMode, devToolsStyle, devToolsStyleLink }: DevToolsContainerProps) => string | number | bigint | boolean | import('react').JSX.Element | Iterable<ReactNode> | Promise<string | number | bigint | boolean | import('react').ReactPortal | import('react').ReactElement<unknown, string | import('react').JSXElementConstructor<any>> | Iterable<ReactNode> | null | undefined> | null | undefined;
14
14
  export default DevToolsContainer;
@@ -2,5 +2,5 @@ import { ReactNode } from 'react';
2
2
  export type DevToolsContextProviderProps = {
3
3
  children?: ReactNode;
4
4
  };
5
- declare const DevToolsContextProvider: ({ children }: DevToolsContextProviderProps) => import("react").JSX.Element;
5
+ declare const DevToolsContextProvider: ({ children }: DevToolsContextProviderProps) => import('react').JSX.Element;
6
6
  export default DevToolsContextProvider;
@@ -14,5 +14,5 @@ export type DevToolsRootProps = {
14
14
  * the page's providers is carried over: the root store, plitzi-ui's theme, the theme scope, and the two plugin
15
15
  * registries.
16
16
  */
17
- declare const DevToolsRoot: ({ children }: DevToolsRootProps) => import("react").JSX.Element;
17
+ declare const DevToolsRoot: ({ children }: DevToolsRootProps) => import('react').JSX.Element;
18
18
  export default DevToolsRoot;
@@ -3,5 +3,5 @@ export type DevToolsIndicatorProps = {
3
3
  className?: string;
4
4
  onOpen: (logType?: LogType) => void;
5
5
  };
6
- declare const DevToolsIndicator: ({ className, onOpen }: DevToolsIndicatorProps) => import("react").JSX.Element;
6
+ declare const DevToolsIndicator: ({ className, onOpen }: DevToolsIndicatorProps) => import('react').JSX.Element;
7
7
  export default DevToolsIndicator;
@@ -11,5 +11,5 @@ export type DevToolsOverlayProps = {
11
11
  onTabSelect: (tabSelected: string) => void;
12
12
  onChangeOrientation: (orientation: Orientation) => void;
13
13
  };
14
- declare const DevToolsOverlay: ({ className, collapsed, orientation, tabSelected, logTypeFilter, onOpen, onCollapse, onTabSelect, onChangeOrientation }: DevToolsOverlayProps) => import("react").JSX.Element;
14
+ declare const DevToolsOverlay: ({ className, collapsed, orientation, tabSelected, logTypeFilter, onOpen, onCollapse, onTabSelect, onChangeOrientation }: DevToolsOverlayProps) => import('react').JSX.Element;
15
15
  export default DevToolsOverlay;
@@ -7,5 +7,5 @@ export type DevToolsBodyProps = {
7
7
  elementSelected?: string;
8
8
  onSelectElement: (id?: string) => void;
9
9
  };
10
- declare const DevToolsBody: ({ className, tabSelected, orientation, logTypeFilter, elementSelected, onSelectElement }: DevToolsBodyProps) => import("react").JSX.Element;
10
+ declare const DevToolsBody: ({ className, tabSelected, orientation, logTypeFilter, elementSelected, onSelectElement }: DevToolsBodyProps) => import('react').JSX.Element;
11
11
  export default DevToolsBody;
@@ -6,5 +6,5 @@ export type DevToolsButtonProps = {
6
6
  title?: string;
7
7
  onClick?: (e: MouseEvent) => void;
8
8
  };
9
- declare const DevToolsButton: ({ className, iconClassName, title, isSelected, onClick }: DevToolsButtonProps) => import("react").JSX.Element;
9
+ declare const DevToolsButton: ({ className, iconClassName, title, isSelected, onClick }: DevToolsButtonProps) => import('react').JSX.Element;
10
10
  export default DevToolsButton;
@@ -7,5 +7,5 @@ export type DevToolsHeaderProps = {
7
7
  onCollapse?: () => void;
8
8
  onTabSelect?: (tabIndex: string) => void;
9
9
  };
10
- declare const DevToolsHeader: ({ tabSelected, orientation, onChangeOrientation, onCollapse, onTabSelect }: DevToolsHeaderProps) => import("react").JSX.Element;
10
+ declare const DevToolsHeader: ({ tabSelected, orientation, onChangeOrientation, onCollapse, onTabSelect }: DevToolsHeaderProps) => import('react').JSX.Element;
11
11
  export default DevToolsHeader;
@@ -12,5 +12,5 @@ export type DevToolsPanelProps = {
12
12
  onTabSelect: (tabSelected: string) => void;
13
13
  onChangeOrientation?: (orientation: Orientation) => void;
14
14
  };
15
- declare const DevToolsPanel: ({ className, orientation, tabSelected, logTypeFilter, onCollapse, onTabSelect, onChangeOrientation }: DevToolsPanelProps) => import("react").JSX.Element;
15
+ declare const DevToolsPanel: ({ className, orientation, tabSelected, logTypeFilter, onCollapse, onTabSelect, onChangeOrientation }: DevToolsPanelProps) => import('react').JSX.Element;
16
16
  export default DevToolsPanel;
@@ -6,5 +6,5 @@ export type DevToolsSubHeaderProps = {
6
6
  elementSelected?: string;
7
7
  onSelectElement: (id?: string) => void;
8
8
  };
9
- declare const DevToolsSubHeader: ({ className, elementSelected, currentPageId, onSelectElement }: DevToolsSubHeaderProps) => import("react").JSX.Element;
9
+ declare const DevToolsSubHeader: ({ className, elementSelected, currentPageId, onSelectElement }: DevToolsSubHeaderProps) => import('react').JSX.Element;
10
10
  export default DevToolsSubHeader;
@@ -1,2 +1,2 @@
1
- declare const ThemeControl: () => import("react").JSX.Element;
1
+ declare const ThemeControl: () => import('react').JSX.Element;
2
2
  export default ThemeControl;
@@ -6,5 +6,5 @@
6
6
  * outcome is what the server was willing to send — the steps to a page allowed to debug them, and what those steps
7
7
  * read and answered only to an authoring session or a dev server.
8
8
  */
9
- declare const ActionsViewer: () => import("react").JSX.Element;
9
+ declare const ActionsViewer: () => import('react').JSX.Element;
10
10
  export default ActionsViewer;
@@ -8,5 +8,5 @@ export type ActionsToolbarProps = {
8
8
  onQueryChange: (query: string) => void;
9
9
  onClear: () => void;
10
10
  };
11
- declare const ActionsToolbar: ({ filter, query, liveCount, runCount, onFilterChange, onQueryChange, onClear }: ActionsToolbarProps) => import("react").JSX.Element;
11
+ declare const ActionsToolbar: ({ filter, query, liveCount, runCount, onFilterChange, onQueryChange, onClear }: ActionsToolbarProps) => import('react').JSX.Element;
12
12
  export default ActionsToolbar;
@@ -3,5 +3,5 @@ export type DetailShellProps = {
3
3
  children: ReactNode;
4
4
  };
5
5
  /** The resizable column the selected run is inspected in; its width is remembered across sessions. */
6
- declare const DetailShell: ({ children }: DetailShellProps) => import("react").JSX.Element;
6
+ declare const DetailShell: ({ children }: DetailShellProps) => import('react').JSX.Element;
7
7
  export default DetailShell;
@@ -11,5 +11,5 @@ export type FlowTimelineProps = {
11
11
  * already did. Drawn in the same list they read as a flow that carried on after the failure, which is the opposite
12
12
  * of what happened.
13
13
  */
14
- declare const FlowTimeline: ({ steps, selectedStepId, onSelectStep }: FlowTimelineProps) => import("react").JSX.Element;
14
+ declare const FlowTimeline: ({ steps, selectedStepId, onSelectStep }: FlowTimelineProps) => import('react').JSX.Element;
15
15
  export default FlowTimeline;
@@ -5,5 +5,5 @@ export type RunDetailProps = {
5
5
  onSelectStep: (stepId: string) => void;
6
6
  };
7
7
  /** Everything known about one run: how it ended, what it did step by step, and what it carried. */
8
- declare const RunDetail: ({ run, selectedStepId, onSelectStep }: RunDetailProps) => import("react").JSX.Element;
8
+ declare const RunDetail: ({ run, selectedStepId, onSelectStep }: RunDetailProps) => import('react').JSX.Element;
9
9
  export default RunDetail;
@@ -7,5 +7,5 @@ export type RunListProps = {
7
7
  onSelect: (runId: string) => void;
8
8
  onCancel: (runId: string) => void;
9
9
  };
10
- declare const RunList: ({ runs, total, selectedRunId, onSelect, onCancel }: RunListProps) => import("react").JSX.Element;
10
+ declare const RunList: ({ runs, total, selectedRunId, onSelect, onCancel }: RunListProps) => import('react').JSX.Element;
11
11
  export default RunList;
@@ -6,5 +6,5 @@ export type RunRowProps = {
6
6
  onCancel: (runId: string) => void;
7
7
  };
8
8
  /** One run in the log: enough to recognise it, and enough to tell a healthy one from the one to open. */
9
- declare const RunRow: ({ run, selected, onSelect, onCancel }: RunRowProps) => import("react").JSX.Element;
9
+ declare const RunRow: ({ run, selected, onSelect, onCancel }: RunRowProps) => import('react').JSX.Element;
10
10
  export default RunRow;
@@ -5,5 +5,5 @@ export type StepRowProps = {
5
5
  onSelect: (stepId: string) => void;
6
6
  };
7
7
  /** One step of a flow: what it was, how it ended, and how much of the run it took. */
8
- declare const StepRow: ({ bar, selected, onSelect }: StepRowProps) => import("react").JSX.Element;
8
+ declare const StepRow: ({ bar, selected, onSelect }: StepRowProps) => import('react').JSX.Element;
9
9
  export default StepRow;
@@ -8,5 +8,5 @@
8
8
  * Everything a row says is on screen: no tooltips, a bar for what is left of the life it was given, and the value it
9
9
  * holds one click away, so checking a cache never means going somewhere else to look at it.
10
10
  */
11
- declare const CacheViewer: () => import("react").JSX.Element;
11
+ declare const CacheViewer: () => import('react').JSX.Element;
12
12
  export default CacheViewer;
@@ -12,5 +12,5 @@ export type CacheRowProps = {
12
12
  * One cached path, said in full and on screen: which store it is in, what it stands for, how long it has left and how
13
13
  * much of its life that is. Nothing here is a tooltip — the whole point of the tab is that a glance answers it.
14
14
  */
15
- declare const CacheRow: ({ row, isOpen, value, onToggle, onExpire, onForget }: CacheRowProps) => import("react").JSX.Element;
15
+ declare const CacheRow: ({ row, isOpen, value, onToggle, onExpire, onForget }: CacheRowProps) => import('react').JSX.Element;
16
16
  export default CacheRow;
@@ -2,5 +2,5 @@ import { Element } from '@plitzi/sdk-shared';
2
2
  export type DetailsAttributesProps = {
3
3
  attributes?: Element['attributes'];
4
4
  };
5
- declare const DetailsAttributes: ({ attributes }: DetailsAttributesProps) => import("react").JSX.Element;
5
+ declare const DetailsAttributes: ({ attributes }: DetailsAttributesProps) => import('react').JSX.Element;
6
6
  export default DetailsAttributes;
@@ -3,5 +3,5 @@ export type DetailsDefinitionProps = {
3
3
  definition?: Element['definition'];
4
4
  onSelectElement: (id: string) => void;
5
5
  };
6
- declare const DetailsDefinition: ({ definition, onSelectElement }: DetailsDefinitionProps) => import("react").JSX.Element;
6
+ declare const DetailsDefinition: ({ definition, onSelectElement }: DetailsDefinitionProps) => import('react').JSX.Element;
7
7
  export default DetailsDefinition;
@@ -6,5 +6,5 @@ export type DetailsValue = {
6
6
  isStyle?: boolean;
7
7
  onSelectElement?: (id: string) => void;
8
8
  };
9
- declare const DetailsValue: ({ attribute, value, isDefinition, onSelectElement }: DetailsValue) => import("react").JSX.Element;
9
+ declare const DetailsValue: ({ attribute, value, isDefinition, onSelectElement }: DetailsValue) => import('react').JSX.Element;
10
10
  export default DetailsValue;
@@ -4,5 +4,5 @@ export type ElementDetailsProps = {
4
4
  attributes?: Element['attributes'];
5
5
  onSelectElement: (id: string) => void;
6
6
  };
7
- declare const ElementDetails: ({ definition, attributes, onSelectElement }: ElementDetailsProps) => import("react").JSX.Element;
7
+ declare const ElementDetails: ({ definition, attributes, onSelectElement }: ElementDetailsProps) => import('react').JSX.Element;
8
8
  export default ElementDetails;
@@ -4,5 +4,5 @@ export type ElementsListProps = {
4
4
  elementSelected?: string;
5
5
  onSelect?: (id?: string) => void;
6
6
  };
7
- declare const ElementsList: ({ elements, elementSelected, onSelect }: ElementsListProps) => import("react").JSX.Element;
7
+ declare const ElementsList: ({ elements, elementSelected, onSelect }: ElementsListProps) => import('react').JSX.Element;
8
8
  export default ElementsList;
@@ -5,5 +5,5 @@ export type ElementsListItemProps = {
5
5
  isVisible?: boolean;
6
6
  onSelect?: (id?: string) => void;
7
7
  };
8
- declare const ElementsListItem: ({ name, id, isSelected, isVisible, onSelect }: ElementsListItemProps) => import("react").JSX.Element;
8
+ declare const ElementsListItem: ({ name, id, isSelected, isVisible, onSelect }: ElementsListItemProps) => import('react').JSX.Element;
9
9
  export default ElementsListItem;
@@ -3,5 +3,5 @@ export type ElementsViewerProps = {
3
3
  elementSelected?: string;
4
4
  onSelectElement: (id?: string) => void;
5
5
  };
6
- declare const ElementsViewer: ({ className, elementSelected, onSelectElement }: ElementsViewerProps) => import("react").JSX.Element;
6
+ declare const ElementsViewer: ({ className, elementSelected, onSelectElement }: ElementsViewerProps) => import('react').JSX.Element;
7
7
  export default ElementsViewer;
@@ -1,2 +1,2 @@
1
- declare const HistoryViewer: () => import("react").JSX.Element;
1
+ declare const HistoryViewer: () => import('react').JSX.Element;
2
2
  export default HistoryViewer;
@@ -8,5 +8,5 @@ export type HistoryEntryItemProps = {
8
8
  isFuture: boolean;
9
9
  onSelect: (index: number) => void;
10
10
  };
11
- declare const HistoryEntryItem: ({ index, path, value, timestamp, isSelected, isFuture, onSelect }: HistoryEntryItemProps) => import("react").JSX.Element;
11
+ declare const HistoryEntryItem: ({ index, path, value, timestamp, isSelected, isFuture, onSelect }: HistoryEntryItemProps) => import('react').JSX.Element;
12
12
  export default HistoryEntryItem;
@@ -9,5 +9,5 @@ export type HistoryToolbarProps = {
9
9
  onClear: () => void;
10
10
  onFilterChange: (value: string) => void;
11
11
  };
12
- declare const HistoryToolbar: ({ index, total, canUndo, canRedo, filter, onUndo, onRedo, onClear, onFilterChange }: HistoryToolbarProps) => import("react").JSX.Element;
12
+ declare const HistoryToolbar: ({ index, total, canUndo, canRedo, filter, onUndo, onRedo, onClear, onFilterChange }: HistoryToolbarProps) => import('react').JSX.Element;
13
13
  export default HistoryToolbar;
@@ -7,5 +7,5 @@ export type LogProps = {
7
7
  message?: ReactNode;
8
8
  params: LogParams;
9
9
  };
10
- declare const _default: import('react').MemoExoticComponent<({ category, message, time, params }: LogProps) => import("react").JSX.Element>;
10
+ declare const _default: import('react').MemoExoticComponent<({ category, message, time, params }: LogProps) => import('react').JSX.Element>;
11
11
  export default _default;
@@ -6,5 +6,5 @@ export type LogStatusProps = {
6
6
  className?: string;
7
7
  logType: LogType | 'custom';
8
8
  };
9
- declare const LogStatus: ({ className, logType, iconClassName, children }: LogStatusProps) => import("react").JSX.Element;
9
+ declare const LogStatus: ({ className, logType, iconClassName, children }: LogStatusProps) => import('react').JSX.Element;
10
10
  export default LogStatus;
@@ -7,5 +7,5 @@ export type LogStatusIconProps = {
7
7
  logType: LogType | 'custom';
8
8
  title?: string;
9
9
  };
10
- declare const LogStatusIcon: ({ className, logType, iconClassName, title, children }: LogStatusIconProps) => import("react").JSX.Element;
10
+ declare const LogStatusIcon: ({ className, logType, iconClassName, title, children }: LogStatusIconProps) => import('react').JSX.Element;
11
11
  export default LogStatusIcon;
@@ -8,5 +8,5 @@ export type LogsProps = {
8
8
  logTypeFilter?: LogType;
9
9
  onClear?: () => void;
10
10
  };
11
- declare const Logs: ({ items, autoScrollOffset, orientation, logTypeFilter, onClear }: LogsProps) => import("react").JSX.Element;
11
+ declare const Logs: ({ items, autoScrollOffset, orientation, logTypeFilter, onClear }: LogsProps) => import('react').JSX.Element;
12
12
  export default Logs;
@@ -7,5 +7,5 @@ export type LogsSummaryProps = {
7
7
  orientation: Orientation;
8
8
  onClick?: (logType?: LogType) => void;
9
9
  };
10
- declare const LogsSummary: ({ className, orientation, items, logTypeSelected, onClick }: LogsSummaryProps) => import("react").JSX.Element;
10
+ declare const LogsSummary: ({ className, orientation, items, logTypeSelected, onClick }: LogsSummaryProps) => import('react').JSX.Element;
11
11
  export default LogsSummary;
@@ -7,5 +7,5 @@ export type LogsSummaryItemProps = {
7
7
  suffix?: string;
8
8
  onClick?: (logType?: LogType) => void;
9
9
  };
10
- declare const LogsSummaryItem: ({ className, amount, suffix, selected, logType, onClick }: LogsSummaryItemProps) => import("react").JSX.Element;
10
+ declare const LogsSummaryItem: ({ className, amount, suffix, selected, logType, onClick }: LogsSummaryItemProps) => import('react').JSX.Element;
11
11
  export default LogsSummaryItem;
@@ -7,5 +7,5 @@ export type LogActionProps = {
7
7
  params: TLogAction['params'];
8
8
  };
9
9
  /** Adds mode, server run id and refusal reason to the message line. */
10
- declare const LogAction: ({ className, time, message, params }: LogActionProps) => import("react").JSX.Element;
10
+ declare const LogAction: ({ className, time, message, params }: LogActionProps) => import('react').JSX.Element;
11
11
  export default LogAction;
@@ -4,5 +4,5 @@ export type BodyContentProps = {
4
4
  node: InteractionFlowParams['node'];
5
5
  nodes: InteractionFlowParams['nodes'];
6
6
  };
7
- declare const BodyContent: ({ className, node, nodes }: BodyContentProps) => import("react").JSX.Element;
7
+ declare const BodyContent: ({ className, node, nodes }: BodyContentProps) => import('react').JSX.Element;
8
8
  export default BodyContent;
@@ -8,5 +8,5 @@ export type BodyHeaderProps = {
8
8
  elementId?: string;
9
9
  hostElementId?: string;
10
10
  };
11
- declare const BodyHeader: ({ triggerName, startTime, endTime, duration, elementId, hostElementId }: BodyHeaderProps) => import("react").JSX.Element;
11
+ declare const BodyHeader: ({ triggerName, startTime, endTime, duration, elementId, hostElementId }: BodyHeaderProps) => import('react').JSX.Element;
12
12
  export default BodyHeader;
@@ -7,5 +7,5 @@ export type ExecutionTreeProps = {
7
7
  nodes: Nodes;
8
8
  onSelect?: (id?: string) => void;
9
9
  };
10
- declare const ExecutionTree: ({ className, nodeId, nodes, selected, onSelect }: ExecutionTreeProps) => import("react").JSX.Element;
10
+ declare const ExecutionTree: ({ className, nodeId, nodes, selected, onSelect }: ExecutionTreeProps) => import('react').JSX.Element;
11
11
  export default ExecutionTree;
@@ -9,5 +9,5 @@ export type ExecutionTreeNodeProps = {
9
9
  status?: InteractionNodeStatus;
10
10
  onClick: (id: string) => void;
11
11
  };
12
- declare const ExecutionTreeNode: ({ title, action, duration, status, level, id, isSelected, onClick }: ExecutionTreeNodeProps) => import("react").JSX.Element;
12
+ declare const ExecutionTreeNode: ({ title, action, duration, status, level, id, isSelected, onClick }: ExecutionTreeNodeProps) => import('react').JSX.Element;
13
13
  export default ExecutionTreeNode;
@@ -10,5 +10,5 @@ export type InteractionNodeProps = {
10
10
  type?: string;
11
11
  action?: string;
12
12
  };
13
- declare const InteractionNode: ({ whenParams, name, startTime, endTime, status, when, type, action }: InteractionNodeProps) => import("react").JSX.Element;
13
+ declare const InteractionNode: ({ whenParams, name, startTime, endTime, status, when, type, action }: InteractionNodeProps) => import('react').JSX.Element;
14
14
  export default InteractionNode;
@@ -5,5 +5,5 @@ export type NodeHeaderProps = {
5
5
  type?: string;
6
6
  action?: string;
7
7
  };
8
- declare const NodeHeader: ({ duration, status, type, action }: NodeHeaderProps) => import("react").JSX.Element;
8
+ declare const NodeHeader: ({ duration, status, type, action }: NodeHeaderProps) => import('react').JSX.Element;
9
9
  export default NodeHeader;
@@ -4,5 +4,5 @@ export type NodeMetadataProps = {
4
4
  when?: RuleGroup;
5
5
  whenParams?: Record<string, RuleValue>;
6
6
  };
7
- declare const NodeMetadata: ({ when, whenParams }: NodeMetadataProps) => import("react").JSX.Element | null;
7
+ declare const NodeMetadata: ({ when, whenParams }: NodeMetadataProps) => import('react').JSX.Element | null;
8
8
  export default NodeMetadata;
@@ -2,5 +2,5 @@ import { RuleGroup } from '@plitzi/plitzi-ui/QueryBuilder';
2
2
  export type NodeWhenProps = {
3
3
  when?: RuleGroup;
4
4
  };
5
- declare const NodeWhen: ({ when }: NodeWhenProps) => import("react").JSX.Element | null;
5
+ declare const NodeWhen: ({ when }: NodeWhenProps) => import('react').JSX.Element | null;
6
6
  export default NodeWhen;
@@ -11,5 +11,5 @@ export type LogInteractionProps = {
11
11
  params: TLogInteraction['params'];
12
12
  time?: string;
13
13
  };
14
- declare const LogInteraction: ({ time, message, params }: LogInteractionProps) => import("react").JSX.Element;
14
+ declare const LogInteraction: ({ time, message, params }: LogInteractionProps) => import('react').JSX.Element;
15
15
  export default LogInteraction;
@@ -9,5 +9,5 @@ export type LogInteractionBodyProps = {
9
9
  elementId?: string;
10
10
  hostElementId?: string;
11
11
  };
12
- declare const LogInteractionBody: ({ node, nodes, startTime, endTime, duration, elementId, hostElementId }: LogInteractionBodyProps) => import("react").JSX.Element;
12
+ declare const LogInteractionBody: ({ node, nodes, startTime, endTime, duration, elementId, hostElementId }: LogInteractionBodyProps) => import('react').JSX.Element;
13
13
  export default LogInteractionBody;
@@ -6,5 +6,5 @@ export type LogInteractionHeaderProps = {
6
6
  message?: ReactNode;
7
7
  time?: string;
8
8
  };
9
- declare const LogInteractionHeader: ({ status, message, time }: LogInteractionHeaderProps) => import("react").JSX.Element;
9
+ declare const LogInteractionHeader: ({ status, message, time }: LogInteractionHeaderProps) => import('react').JSX.Element;
10
10
  export default LogInteractionHeader;
@@ -13,5 +13,5 @@ export type LogInteractionNoteProps = {
13
13
  * step itself and, usually, the one fact that explains it: what was thrown, or what names WERE registered where
14
14
  * this one looked.
15
15
  */
16
- declare const LogInteractionNote: ({ time, message, params }: LogInteractionNoteProps) => import("react").JSX.Element;
16
+ declare const LogInteractionNote: ({ time, message, params }: LogInteractionNoteProps) => import('react').JSX.Element;
17
17
  export default LogInteractionNote;
@@ -6,5 +6,5 @@ export type LogNavigationProps = {
6
6
  params?: TLogNavigation['params'];
7
7
  time?: string | Date;
8
8
  };
9
- declare const LogNavigation: ({ time, message, params }: LogNavigationProps) => import("react").JSX.Element;
9
+ declare const LogNavigation: ({ time, message, params }: LogNavigationProps) => import('react').JSX.Element;
10
10
  export default LogNavigation;
@@ -5,5 +5,5 @@ export type LogNavigationBodyProps = {
5
5
  duration?: string;
6
6
  elementId?: string;
7
7
  };
8
- declare const LogNavigationBody: ({ elementId, startTime, endTime, duration }: LogNavigationBodyProps) => import("react").JSX.Element;
8
+ declare const LogNavigationBody: ({ elementId, startTime, endTime, duration }: LogNavigationBodyProps) => import('react').JSX.Element;
9
9
  export default LogNavigationBody;
@@ -6,5 +6,5 @@ export type LogNavigationHeaderProps = {
6
6
  message?: ReactNode;
7
7
  time?: string | Date;
8
8
  };
9
- declare const LogNavigationHeader: ({ status, message, time }: LogNavigationHeaderProps) => import("react").JSX.Element;
9
+ declare const LogNavigationHeader: ({ status, message, time }: LogNavigationHeaderProps) => import('react').JSX.Element;
10
10
  export default LogNavigationHeader;
@@ -6,5 +6,5 @@ export type LogNetworkProps = {
6
6
  params: TLogNetwork['params'];
7
7
  time?: string;
8
8
  };
9
- declare const LogNetwork: ({ time, message, params: { event, issues, payload } }: LogNetworkProps) => import("react").JSX.Element;
9
+ declare const LogNetwork: ({ time, message, params: { event, issues, payload } }: LogNetworkProps) => import('react').JSX.Element;
10
10
  export default LogNetwork;
@@ -5,5 +5,5 @@ export type LogStoreProps = {
5
5
  params?: TLogStore['params'];
6
6
  time?: string | Date;
7
7
  };
8
- declare const LogStore: ({ time, message, params }: LogStoreProps) => import("react").JSX.Element;
8
+ declare const LogStore: ({ time, message, params }: LogStoreProps) => import('react').JSX.Element;
9
9
  export default LogStore;
@@ -22,5 +22,5 @@ export type LogStoreBodyProps = {
22
22
  next?: unknown;
23
23
  contextLines?: number;
24
24
  };
25
- declare const LogStoreBody: ({ path, prev, next, contextLines }: LogStoreBodyProps) => import("react").JSX.Element;
25
+ declare const LogStoreBody: ({ path, prev, next, contextLines }: LogStoreBodyProps) => import('react').JSX.Element;
26
26
  export default LogStoreBody;
@@ -5,5 +5,5 @@ export type LogStoreHeaderProps = {
5
5
  message?: ReactNode;
6
6
  time?: string | Date;
7
7
  };
8
- declare const LogStoreHeader: ({ storeName, path, message, time }: LogStoreHeaderProps) => import("react").JSX.Element;
8
+ declare const LogStoreHeader: ({ storeName, path, message, time }: LogStoreHeaderProps) => import('react').JSX.Element;
9
9
  export default LogStoreHeader;
@@ -11,5 +11,5 @@ export type PluginEntry = {
11
11
  export type PluginDetailsProps = {
12
12
  entry: PluginEntry;
13
13
  };
14
- declare const PluginDetails: ({ entry }: PluginDetailsProps) => import("react").JSX.Element;
14
+ declare const PluginDetails: ({ entry }: PluginDetailsProps) => import('react').JSX.Element;
15
15
  export default PluginDetails;
@@ -2,5 +2,5 @@ export type PluginsViewerProps = {
2
2
  className?: string;
3
3
  };
4
4
  /** Plugins from both registers: installed bundles (PluginsContext) and space-shipped ones (component registry). */
5
- declare const PluginsViewer: ({ className }: PluginsViewerProps) => import("react").JSX.Element;
5
+ declare const PluginsViewer: ({ className }: PluginsViewerProps) => import('react').JSX.Element;
6
6
  export default PluginsViewer;
@@ -1,5 +1,5 @@
1
1
  export type StoreViewerProps = {
2
2
  elementSelected?: string;
3
3
  };
4
- declare const StoreViewer: ({ elementSelected }: StoreViewerProps) => import("react").JSX.Element;
4
+ declare const StoreViewer: ({ elementSelected }: StoreViewerProps) => import('react').JSX.Element;
5
5
  export default StoreViewer;
@@ -12,5 +12,5 @@ export type FreshnessMarkProps = {
12
12
  * every path unless somebody asked for one. The rest of what there is to say about it is the Cache tab's job, so
13
13
  * nothing here hides behind a tooltip.
14
14
  */
15
- declare const FreshnessMark: ({ record: { expiresAt }, now }: FreshnessMarkProps) => import("react").JSX.Element;
15
+ declare const FreshnessMark: ({ record: { expiresAt }, now }: FreshnessMarkProps) => import('react').JSX.Element;
16
16
  export default FreshnessMark;
@@ -1,2 +1,2 @@
1
- declare const TracingViewer: () => import("react").JSX.Element;
1
+ declare const TracingViewer: () => import('react').JSX.Element;
2
2
  export default TracingViewer;
@@ -6,5 +6,5 @@ export type CommitCauseProps = {
6
6
  active: FlameNode | undefined;
7
7
  onSelectElement: (id: string | undefined) => void;
8
8
  };
9
- declare const CommitCause: ({ commit, model, active, onSelectElement }: CommitCauseProps) => import("react").JSX.Element | null;
9
+ declare const CommitCause: ({ commit, model, active, onSelectElement }: CommitCauseProps) => import('react').JSX.Element | null;
10
10
  export default CommitCause;
@@ -5,5 +5,5 @@ export type CommitStripProps = {
5
5
  hydrated: boolean;
6
6
  onSelect: (commitId: number) => void;
7
7
  };
8
- declare const CommitStrip: ({ commits, selectedIndex, hydrated, onSelect }: CommitStripProps) => import("react").JSX.Element;
8
+ declare const CommitStrip: ({ commits, selectedIndex, hydrated, onSelect }: CommitStripProps) => import('react').JSX.Element;
9
9
  export default CommitStrip;
@@ -5,5 +5,5 @@ export type DetailSidebarProps = {
5
5
  commit: CommitEntry;
6
6
  model: FlameModel;
7
7
  };
8
- declare const DetailSidebar: ({ node, commit, model }: DetailSidebarProps) => import("react").JSX.Element;
8
+ declare const DetailSidebar: ({ node, commit, model }: DetailSidebarProps) => import('react').JSX.Element;
9
9
  export default DetailSidebar;
@@ -1,2 +1,2 @@
1
- declare const DurationLegend: () => import("react").JSX.Element;
1
+ declare const DurationLegend: () => import('react').JSX.Element;
2
2
  export default DurationLegend;
@@ -8,5 +8,5 @@ export type FlameFrameProps = {
8
8
  selected: boolean;
9
9
  onClick: (node: FlameNode) => void;
10
10
  };
11
- declare const FlameFrame: ({ node, left, width, top, selected, onClick }: FlameFrameProps) => import("react").JSX.Element;
11
+ declare const FlameFrame: ({ node, left, width, top, selected, onClick }: FlameFrameProps) => import('react').JSX.Element;
12
12
  export default FlameFrame;
@@ -9,5 +9,5 @@ export type FlamegraphProps = {
9
9
  onSelectElement: (id: string | undefined) => void;
10
10
  onToggleSidebar: () => void;
11
11
  };
12
- declare const Flamegraph: ({ commit, model, active, origin, sidebarOpen, onSelectElement, onToggleSidebar }: FlamegraphProps) => import("react").JSX.Element;
12
+ declare const Flamegraph: ({ commit, model, active, origin, sidebarOpen, onSelectElement, onToggleSidebar }: FlamegraphProps) => import('react').JSX.Element;
13
13
  export default Flamegraph;
@@ -5,5 +5,5 @@ export type HotspotSidebarProps = {
5
5
  flat: Record<string, Element> | undefined;
6
6
  sessionSelf: number;
7
7
  };
8
- declare const HotspotSidebar: ({ row, flat, sessionSelf }: HotspotSidebarProps) => import("react").JSX.Element;
8
+ declare const HotspotSidebar: ({ row, flat, sessionSelf }: HotspotSidebarProps) => import('react').JSX.Element;
9
9
  export default HotspotSidebar;
@@ -6,5 +6,5 @@ export type HotspotsListProps = {
6
6
  selectedId: string | undefined;
7
7
  onSelectElement: (id: string | undefined) => void;
8
8
  };
9
- declare const HotspotsList: ({ commits, tree, flat, selectedId, onSelectElement }: HotspotsListProps) => import("react").JSX.Element;
9
+ declare const HotspotsList: ({ commits, tree, flat, selectedId, onSelectElement }: HotspotsListProps) => import('react').JSX.Element;
10
10
  export default HotspotsList;
@@ -4,5 +4,5 @@ export type MetricToggleProps = {
4
4
  onChange: (metric: DurationMetric) => void;
5
5
  className?: string;
6
6
  };
7
- declare const MetricToggle: ({ metric, onChange, className }: MetricToggleProps) => import("react").JSX.Element;
7
+ declare const MetricToggle: ({ metric, onChange, className }: MetricToggleProps) => import('react').JSX.Element;
8
8
  export default MetricToggle;
@@ -9,5 +9,5 @@ export type RankedListProps = {
9
9
  onSelectElement: (id: string | undefined) => void;
10
10
  onToggleSidebar: () => void;
11
11
  };
12
- declare const RankedList: ({ commit, model, active, origin, sidebarOpen, onSelectElement, onToggleSidebar }: RankedListProps) => import("react").JSX.Element;
12
+ declare const RankedList: ({ commit, model, active, origin, sidebarOpen, onSelectElement, onToggleSidebar }: RankedListProps) => import('react').JSX.Element;
13
13
  export default RankedList;
@@ -1,2 +1,2 @@
1
- declare const SidebarEmpty: () => import("react").JSX.Element;
1
+ declare const SidebarEmpty: () => import('react').JSX.Element;
2
2
  export default SidebarEmpty;
@@ -2,5 +2,5 @@ import { ReactNode } from 'react';
2
2
  export type SidebarShellProps = {
3
3
  children: ReactNode;
4
4
  };
5
- declare const SidebarShell: ({ children }: SidebarShellProps) => import("react").JSX.Element;
5
+ declare const SidebarShell: ({ children }: SidebarShellProps) => import('react').JSX.Element;
6
6
  export default SidebarShell;
@@ -3,5 +3,5 @@ export type SidebarToggleProps = {
3
3
  onToggle: () => void;
4
4
  className?: string;
5
5
  };
6
- declare const SidebarToggle: ({ open, onToggle, className }: SidebarToggleProps) => import("react").JSX.Element;
6
+ declare const SidebarToggle: ({ open, onToggle, className }: SidebarToggleProps) => import('react').JSX.Element;
7
7
  export default SidebarToggle;
@@ -7,5 +7,5 @@ export type TracingToolbarProps = {
7
7
  onViewChange: (view: TracingView) => void;
8
8
  onPersistChange: (persist: boolean) => void;
9
9
  };
10
- declare const TracingToolbar: ({ view, persist, commitCount, onClear, onViewChange, onPersistChange }: TracingToolbarProps) => import("react").JSX.Element;
10
+ declare const TracingToolbar: ({ view, persist, commitCount, onClear, onViewChange, onPersistChange }: TracingToolbarProps) => import('react').JSX.Element;
11
11
  export default TracingToolbar;
@@ -4,5 +4,5 @@ export type VariableValueProps = {
4
4
  preffix?: string;
5
5
  value?: string;
6
6
  };
7
- declare const VariableValue: ({ className, type, preffix, value }: VariableValueProps) => import("react").JSX.Element;
7
+ declare const VariableValue: ({ className, type, preffix, value }: VariableValueProps) => import('react').JSX.Element;
8
8
  export default VariableValue;
@@ -3,5 +3,5 @@ export type VariablesListProps = {
3
3
  variables?: SchemaVariable[];
4
4
  variablesParsed?: Record<string, string>;
5
5
  };
6
- declare const VariablesList: ({ variables, variablesParsed }: VariablesListProps) => import("react").JSX.Element;
6
+ declare const VariablesList: ({ variables, variablesParsed }: VariablesListProps) => import('react').JSX.Element;
7
7
  export default VariablesList;
@@ -4,5 +4,5 @@ export type VariablesListItemProps = {
4
4
  type?: string;
5
5
  value?: StyleVariableValue;
6
6
  };
7
- declare const VariablesListItem: ({ name, type, value }: VariablesListItemProps) => import("react").JSX.Element;
7
+ declare const VariablesListItem: ({ name, type, value }: VariablesListItemProps) => import('react').JSX.Element;
8
8
  export default VariablesListItem;
@@ -2,5 +2,5 @@ import { StyleVariables } from '@plitzi/sdk-shared';
2
2
  export type VariablesListProps = {
3
3
  variables?: Partial<StyleVariables>;
4
4
  };
5
- declare const VariablesStyleList: ({ variables }: VariablesListProps) => import("react").JSX.Element;
5
+ declare const VariablesStyleList: ({ variables }: VariablesListProps) => import('react').JSX.Element;
6
6
  export default VariablesStyleList;
@@ -1,2 +1,2 @@
1
- declare const VariablesViewer: () => import("react").JSX.Element;
1
+ declare const VariablesViewer: () => import('react').JSX.Element;
2
2
  export default VariablesViewer;
@@ -10,5 +10,5 @@ export type ListProps<T> = {
10
10
  value?: string | T;
11
11
  onSelect?: (value?: T) => void;
12
12
  };
13
- declare const List: <T extends ListItem>({ items, className, value, onSelect }: ListProps<T>) => import("react").JSX.Element;
13
+ declare const List: <T extends ListItem>({ items, className, value, onSelect }: ListProps<T>) => import('react').JSX.Element;
14
14
  export default List;
@@ -7,5 +7,5 @@ export type ListItemProps = {
7
7
  isSelected?: boolean;
8
8
  onSelect?: (id?: string) => void;
9
9
  };
10
- declare const ListItem: ({ name, label, id, isSelected, className, onSelect }: ListItemProps) => import("react").JSX.Element;
10
+ declare const ListItem: ({ name, label, id, isSelected, className, onSelect }: ListItemProps) => import('react').JSX.Element;
11
11
  export default ListItem;
@@ -7,5 +7,5 @@ export type PayloadViewProps = {
7
7
  * Shared rather than per tab because the viewer ships a light palette and nothing else — on a dark panel its keys
8
8
  * come out near-black on near-black — and every tab that shows a payload had to remember to dress it.
9
9
  */
10
- declare const PayloadView: ({ value }: PayloadViewProps) => import("react").JSX.Element;
10
+ declare const PayloadView: ({ value }: PayloadViewProps) => import('react').JSX.Element;
11
11
  export default PayloadView;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@plitzi/sdk-dev-tools",
3
- "version": "0.37.0",
3
+ "version": "0.37.2",
4
4
  "license": "AGPL-3.0",
5
5
  "files": [
6
6
  "dist"
@@ -833,7 +833,7 @@
833
833
  "devDependencies": {
834
834
  "@testing-library/react": "^16.3.3",
835
835
  "eslint": "^9.39.5",
836
- "jsdom": "^30.1.0",
836
+ "jsdom": "^30.1.1",
837
837
  "react": "^19.3.0",
838
838
  "react-dom": "^19.3.0",
839
839
  "typescript": "^6.0.3",
@@ -846,11 +846,11 @@
846
846
  },
847
847
  "dependencies": {
848
848
  "@plitzi/nexus": "^1.2.2",
849
- "@plitzi/plitzi-ui": "^1.6.21",
850
- "@plitzi/sdk-navigation": "0.37.0",
851
- "@plitzi/sdk-schema": "0.37.0",
852
- "@plitzi/sdk-shared": "0.37.0",
853
- "@plitzi/sdk-style": "0.37.0",
849
+ "@plitzi/plitzi-ui": "^1.6.22",
850
+ "@plitzi/sdk-navigation": "0.37.2",
851
+ "@plitzi/sdk-schema": "0.37.2",
852
+ "@plitzi/sdk-shared": "0.37.2",
853
+ "@plitzi/sdk-style": "0.37.2",
854
854
  "@uiw/react-json-view": "^2.0.0-alpha.43",
855
855
  "clsx": "^2.1.1"
856
856
  }