@joewinke/jatui 0.1.31 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (239) hide show
  1. package/CLAUDE.md +22 -0
  2. package/dist/actions/attention.d.ts +24 -0
  3. package/dist/actions/attention.js +94 -0
  4. package/dist/actions/collapse.js +29 -15
  5. package/dist/actions/floating.d.ts +53 -0
  6. package/dist/actions/floating.js +158 -0
  7. package/dist/actions/listNav.js +137 -108
  8. package/dist/actions/railNav.js +89 -72
  9. package/dist/actions/staggerEntrance.d.ts +28 -0
  10. package/dist/actions/staggerEntrance.js +71 -0
  11. package/dist/actions/tooltip.d.ts +28 -0
  12. package/dist/actions/tooltip.js +186 -0
  13. package/dist/assets/sounds/README.md +47 -0
  14. package/dist/assets/sounds/error.d.ts +1 -0
  15. package/dist/assets/sounds/error.js +4 -0
  16. package/dist/assets/sounds/notify.d.ts +1 -0
  17. package/dist/assets/sounds/notify.js +4 -0
  18. package/dist/assets/sounds/pop.d.ts +1 -0
  19. package/dist/assets/sounds/pop.js +4 -0
  20. package/dist/assets/sounds/send.d.ts +1 -0
  21. package/dist/assets/sounds/send.js +4 -0
  22. package/dist/assets/sounds/success.d.ts +1 -0
  23. package/dist/assets/sounds/success.js +4 -0
  24. package/dist/assets/sounds/toggle.d.ts +1 -0
  25. package/dist/assets/sounds/toggle.js +4 -0
  26. package/dist/components/AnimatedNumber.svelte +112 -0
  27. package/dist/components/AnimatedNumber.svelte.d.ts +8 -0
  28. package/dist/components/Badge.svelte +75 -4
  29. package/dist/components/Badge.svelte.d.ts +6 -1
  30. package/dist/components/Button.svelte +196 -21
  31. package/dist/components/Button.svelte.d.ts +10 -1
  32. package/dist/components/Carousel.svelte +265 -0
  33. package/dist/components/Carousel.svelte.d.ts +21 -0
  34. package/dist/components/ChipInput.svelte +63 -3
  35. package/dist/components/Collapse.svelte +70 -14
  36. package/dist/components/Collapse.svelte.d.ts +11 -0
  37. package/dist/components/ColorSelector.svelte +21 -24
  38. package/dist/components/CommandPalette.svelte +475 -0
  39. package/dist/components/CommandPalette.svelte.d.ts +3 -0
  40. package/dist/components/ContextMenu.svelte +9 -73
  41. package/dist/components/CopyButton.svelte +156 -0
  42. package/dist/components/CopyButton.svelte.d.ts +12 -0
  43. package/dist/components/HoldToConfirm.svelte +183 -0
  44. package/dist/components/HoldToConfirm.svelte.d.ts +11 -0
  45. package/dist/components/KeyboardShortcutsOverlay.svelte +54 -8
  46. package/dist/components/KeyboardShortcutsOverlay.svelte.d.ts +3 -0
  47. package/dist/components/PasswordMeter.svelte +87 -0
  48. package/dist/components/PasswordMeter.svelte.d.ts +8 -0
  49. package/dist/components/PinInput.svelte +186 -0
  50. package/dist/components/PinInput.svelte.d.ts +13 -0
  51. package/dist/components/QuantityStepper.svelte +185 -0
  52. package/dist/components/QuantityStepper.svelte.d.ts +12 -0
  53. package/dist/components/Skeleton.svelte +123 -0
  54. package/dist/components/Skeleton.svelte.d.ts +12 -0
  55. package/dist/components/SpeechForm.svelte +37 -0
  56. package/dist/components/StatusBadge.svelte +31 -3
  57. package/dist/components/StatusBadge.svelte.d.ts +0 -5
  58. package/dist/components/Tabs.svelte +270 -0
  59. package/dist/components/Tabs.svelte.d.ts +15 -0
  60. package/dist/components/TextInput.svelte +138 -38
  61. package/dist/components/TextInput.svelte.d.ts +9 -1
  62. package/dist/components/VoicePlayer.svelte +51 -0
  63. package/dist/components/basic/Alert.svelte +36 -0
  64. package/dist/components/basic/Alert.svelte.d.ts +9 -0
  65. package/dist/components/basic/Breadcrumb.svelte +27 -0
  66. package/dist/components/basic/Breadcrumb.svelte.d.ts +11 -0
  67. package/dist/components/basic/ButtonGroup.svelte +15 -0
  68. package/dist/components/basic/ButtonGroup.svelte.d.ts +8 -0
  69. package/dist/components/basic/Checkbox.svelte +85 -0
  70. package/dist/components/basic/Checkbox.svelte.d.ts +15 -0
  71. package/dist/components/basic/Empty.svelte +17 -0
  72. package/dist/components/basic/Empty.svelte.d.ts +8 -0
  73. package/dist/components/basic/Kbd.svelte +16 -0
  74. package/dist/components/basic/Kbd.svelte.d.ts +8 -0
  75. package/dist/components/basic/Pagination.svelte +104 -0
  76. package/dist/components/basic/Pagination.svelte.d.ts +12 -0
  77. package/dist/components/basic/RadioGroup.svelte +71 -0
  78. package/dist/components/basic/RadioGroup.svelte.d.ts +18 -0
  79. package/dist/components/basic/Separator.svelte +19 -0
  80. package/dist/components/basic/Separator.svelte.d.ts +8 -0
  81. package/dist/components/basic/Slider.svelte +72 -0
  82. package/dist/components/basic/Slider.svelte.d.ts +17 -0
  83. package/dist/components/basic/Switch.svelte +88 -0
  84. package/dist/components/basic/Switch.svelte.d.ts +14 -0
  85. package/dist/components/basic/Toggle.svelte +43 -0
  86. package/dist/components/basic/Toggle.svelte.d.ts +14 -0
  87. package/dist/components/graph/GraphCanvas.svelte +103 -0
  88. package/dist/components/graph/GraphCanvas.svelte.d.ts +22 -0
  89. package/dist/components/graph/JatuiNode.svelte +128 -0
  90. package/dist/components/graph/JatuiNode.svelte.d.ts +14 -0
  91. package/dist/components/graph/theme.d.ts +27 -0
  92. package/dist/components/graph/theme.js +136 -0
  93. package/dist/components/markup.js +62 -59
  94. package/dist/components/messaging/MessageItem.svelte +92 -0
  95. package/dist/components/messaging/MessageItem.svelte.d.ts +5 -0
  96. package/dist/components/messaging/TypingIndicator.svelte +63 -0
  97. package/dist/components/messaging/TypingIndicator.svelte.d.ts +7 -0
  98. package/dist/components/pipeline/PipelineColumn.svelte +44 -3
  99. package/dist/components/progress/ProgressBar.svelte +189 -0
  100. package/dist/components/progress/ProgressBar.svelte.d.ts +17 -0
  101. package/dist/components/progress/ProgressRing.svelte +138 -0
  102. package/dist/components/progress/ProgressRing.svelte.d.ts +12 -0
  103. package/dist/components/progress/Steps.svelte +195 -0
  104. package/dist/components/progress/Steps.svelte.d.ts +14 -0
  105. package/dist/components/session-nav/transcriptModel.js +66 -49
  106. package/dist/components/shell/NavigationMenu.svelte +422 -0
  107. package/dist/components/shell/NavigationMenu.svelte.d.ts +43 -0
  108. package/dist/components/shell/Sidebar.svelte +276 -0
  109. package/dist/components/shell/Sidebar.svelte.d.ts +32 -0
  110. package/dist/components/shell/SidebarGroup.svelte +180 -0
  111. package/dist/components/shell/SidebarGroup.svelte.d.ts +19 -0
  112. package/dist/components/shell/SidebarItem.svelte +170 -0
  113. package/dist/components/shell/SidebarItem.svelte.d.ts +24 -0
  114. package/dist/components/shell/shell.d.ts +30 -0
  115. package/dist/components/shell/shell.js +65 -0
  116. package/dist/components/table/DataTable.svelte +364 -0
  117. package/dist/components/table/DataTable.svelte.d.ts +4 -0
  118. package/dist/components/table/flexRender.d.ts +31 -0
  119. package/dist/components/table/flexRender.js +32 -0
  120. package/dist/components/table/types.d.ts +28 -0
  121. package/dist/components/table/types.js +1 -0
  122. package/dist/components/toast/ToastHost.svelte +21 -0
  123. package/dist/components/toast/ToastHost.svelte.d.ts +3 -0
  124. package/dist/components/toast/ToastItem.svelte +287 -0
  125. package/dist/components/toast/ToastItem.svelte.d.ts +9 -0
  126. package/dist/data/emojis.js +4 -4
  127. package/dist/dnd/autoScroll.js +12 -10
  128. package/dist/dnd/createDndBoard.svelte.js +110 -76
  129. package/dist/dnd/createDndBoard.test.js +161 -85
  130. package/dist/dnd/draggable.js +23 -15
  131. package/dist/dnd/dropTarget.js +29 -15
  132. package/dist/dnd/index.d.ts +0 -1
  133. package/dist/dnd/index.js +0 -1
  134. package/dist/dnd/types.d.ts +0 -9
  135. package/dist/dnd/types.js +14 -2
  136. package/dist/index.d.ts +60 -6
  137. package/dist/index.js +73 -6
  138. package/dist/showcase/AnimatedBeam.svelte +183 -0
  139. package/dist/showcase/AnimatedBeam.svelte.d.ts +26 -0
  140. package/dist/showcase/AuroraDrift.svelte +74 -0
  141. package/dist/showcase/AuroraDrift.svelte.d.ts +9 -0
  142. package/dist/showcase/BentoCard.svelte +50 -0
  143. package/dist/showcase/BentoCard.svelte.d.ts +14 -0
  144. package/dist/showcase/BentoGrid.svelte +43 -0
  145. package/dist/showcase/BentoGrid.svelte.d.ts +12 -0
  146. package/dist/showcase/BorderBeam.svelte +79 -0
  147. package/dist/showcase/BorderBeam.svelte.d.ts +12 -0
  148. package/dist/showcase/ClipWipe.svelte +82 -0
  149. package/dist/showcase/ClipWipe.svelte.d.ts +12 -0
  150. package/dist/showcase/Confetti.svelte +71 -0
  151. package/dist/showcase/Confetti.svelte.d.ts +10 -0
  152. package/dist/showcase/CursorSpotlight.svelte +85 -0
  153. package/dist/showcase/CursorSpotlight.svelte.d.ts +9 -0
  154. package/dist/showcase/DeviceMock.svelte +186 -0
  155. package/dist/showcase/DeviceMock.svelte.d.ts +11 -0
  156. package/dist/showcase/Dock.svelte +123 -0
  157. package/dist/showcase/Dock.svelte.d.ts +17 -0
  158. package/dist/showcase/FlipCard.svelte +103 -0
  159. package/dist/showcase/FlipCard.svelte.d.ts +10 -0
  160. package/dist/showcase/FocusReveal.svelte +83 -0
  161. package/dist/showcase/FocusReveal.svelte.d.ts +11 -0
  162. package/dist/showcase/Globe.svelte +202 -0
  163. package/dist/showcase/Globe.svelte.d.ts +16 -0
  164. package/dist/showcase/KenBurns.svelte +105 -0
  165. package/dist/showcase/KenBurns.svelte.d.ts +13 -0
  166. package/dist/showcase/Marquee.svelte +89 -0
  167. package/dist/showcase/Marquee.svelte.d.ts +9 -0
  168. package/dist/showcase/ParallaxTilt.svelte +98 -0
  169. package/dist/showcase/ParallaxTilt.svelte.d.ts +10 -0
  170. package/dist/showcase/ScrambleText.svelte +98 -0
  171. package/dist/showcase/ScrambleText.svelte.d.ts +11 -0
  172. package/dist/showcase/ShineSweep.svelte +81 -0
  173. package/dist/showcase/ShineSweep.svelte.d.ts +9 -0
  174. package/dist/showcase/Terminal.svelte +230 -0
  175. package/dist/showcase/Terminal.svelte.d.ts +18 -0
  176. package/dist/showcase/TextSplitReveal.svelte +146 -0
  177. package/dist/showcase/TextSplitReveal.svelte.d.ts +13 -0
  178. package/dist/showcase/TextWave.svelte +55 -0
  179. package/dist/showcase/TextWave.svelte.d.ts +8 -0
  180. package/dist/showcase/TypewriterText.svelte +130 -0
  181. package/dist/showcase/TypewriterText.svelte.d.ts +9 -0
  182. package/dist/showcase/backdrop/GrainGradient.svelte +126 -0
  183. package/dist/showcase/backdrop/GrainGradient.svelte.d.ts +23 -0
  184. package/dist/showcase/backdrop/MeshGradient.svelte +104 -0
  185. package/dist/showcase/backdrop/MeshGradient.svelte.d.ts +20 -0
  186. package/dist/showcase/backdrop/Metaballs.svelte +116 -0
  187. package/dist/showcase/backdrop/Metaballs.svelte.d.ts +18 -0
  188. package/dist/showcase/backdrop/NeuroNoise.svelte +115 -0
  189. package/dist/showcase/backdrop/NeuroNoise.svelte.d.ts +20 -0
  190. package/dist/showcase/backdrop/ShowcaseBackdrop.svelte +48 -0
  191. package/dist/showcase/backdrop/ShowcaseBackdrop.svelte.d.ts +12 -0
  192. package/dist/showcase/generative/GenerativeBackdrop.svelte +234 -0
  193. package/dist/showcase/generative/GenerativeBackdrop.svelte.d.ts +9 -0
  194. package/dist/showcase/generative/intent.d.ts +7 -0
  195. package/dist/showcase/generative/intent.js +67 -0
  196. package/dist/showcase/generative/manifest.d.ts +9 -0
  197. package/dist/showcase/generative/manifest.js +97 -0
  198. package/dist/showcase/generative/types.d.ts +48 -0
  199. package/dist/showcase/generative/types.js +8 -0
  200. package/dist/showcase/index.d.ts +36 -0
  201. package/dist/showcase/index.js +46 -0
  202. package/dist/showcase/scroll/SmoothScroll.svelte +49 -0
  203. package/dist/showcase/scroll/SmoothScroll.svelte.d.ts +12 -0
  204. package/dist/showcase/scroll/scrollProgress.d.ts +24 -0
  205. package/dist/showcase/scroll/scrollProgress.js +65 -0
  206. package/dist/showcase/scroll/scrollReveal.d.ts +30 -0
  207. package/dist/showcase/scroll/scrollReveal.js +70 -0
  208. package/dist/stores/commandPalette.svelte.d.ts +24 -0
  209. package/dist/stores/commandPalette.svelte.js +82 -0
  210. package/dist/stores/confirmDialog.svelte.js +5 -5
  211. package/dist/stores/inputDialog.svelte.js +5 -5
  212. package/dist/stores/toast.svelte.d.ts +28 -0
  213. package/dist/stores/toast.svelte.js +33 -0
  214. package/dist/styles/motion.css +46 -0
  215. package/dist/styles/tokens.css +31 -0
  216. package/dist/transitions/glide.d.ts +31 -0
  217. package/dist/transitions/glide.js +58 -0
  218. package/dist/types/booking.js +4 -4
  219. package/dist/types/comments.js +2 -2
  220. package/dist/types/messaging.js +3 -3
  221. package/dist/types/pipeline.js +2 -2
  222. package/dist/utils/currency.js +4 -2
  223. package/dist/utils/daisyuiColors.js +27 -25
  224. package/dist/utils/dateFormatters.d.ts +20 -0
  225. package/dist/utils/dateFormatters.js +65 -44
  226. package/dist/utils/googleMapsLoader.js +100 -46
  227. package/dist/utils/mentionParser.js +30 -30
  228. package/dist/utils/phone.js +27 -21
  229. package/dist/utils/phoneFormat.js +9 -9
  230. package/dist/utils/sound.d.ts +6 -0
  231. package/dist/utils/sound.js +113 -0
  232. package/dist/utils/splitText.d.ts +25 -0
  233. package/dist/utils/splitText.js +94 -0
  234. package/dist/utils/taskUtils.js +1 -1
  235. package/dist/utils/themeWipe.d.ts +21 -0
  236. package/dist/utils/themeWipe.js +94 -0
  237. package/dist/utils/viewTransition.d.ts +23 -0
  238. package/dist/utils/viewTransition.js +75 -0
  239. package/package.json +56 -4
@@ -0,0 +1,195 @@
1
+ <script lang="ts">
2
+ interface Step {
3
+ label?: string;
4
+ description?: string;
5
+ }
6
+
7
+ interface Props {
8
+ steps: Step[] | string[];
9
+ current?: number;
10
+ color?: 'primary' | 'secondary' | 'accent' | 'success' | 'warning' | 'error' | 'info';
11
+ size?: 'sm' | 'md' | 'lg';
12
+ class?: string;
13
+ }
14
+
15
+ let {
16
+ steps,
17
+ current = 1,
18
+ color = 'primary',
19
+ size = 'md',
20
+ class: className = ''
21
+ }: Props = $props();
22
+
23
+ const normalized = $derived(
24
+ steps.map((s) => (typeof s === 'string' ? { label: s } : s))
25
+ );
26
+
27
+ const count = $derived(normalized.length);
28
+ const trackFill = $derived(count > 1 ? (current - 1) / (count - 1) : 1);
29
+
30
+ const colorMap: Record<NonNullable<Props['color']>, string> = {
31
+ primary: 'oklch(var(--p))',
32
+ secondary: 'oklch(var(--s))',
33
+ accent: 'oklch(var(--a))',
34
+ success: 'oklch(var(--su))',
35
+ warning: 'oklch(var(--wa))',
36
+ error: 'oklch(var(--er))',
37
+ info: 'oklch(var(--in))'
38
+ };
39
+ const colorFg: Record<NonNullable<Props['color']>, string> = {
40
+ primary: 'oklch(var(--pc))',
41
+ secondary: 'oklch(var(--sc))',
42
+ accent: 'oklch(var(--ac))',
43
+ success: 'oklch(var(--suc))',
44
+ warning: 'oklch(var(--wac))',
45
+ error: 'oklch(var(--erc))',
46
+ info: 'oklch(var(--inc))'
47
+ };
48
+
49
+ const fillColor = $derived(colorMap[color]);
50
+ const fgColor = $derived(colorFg[color]);
51
+
52
+ const nodeSize: Record<NonNullable<Props['size']>, number> = { sm: 24, md: 32, lg: 40 };
53
+ const nodePx = $derived(nodeSize[size]);
54
+ const fontSize: Record<NonNullable<Props['size']>, string> = { sm: '0.6875rem', md: '0.8125rem', lg: '1rem' };
55
+ const labelSize = $derived(fontSize[size]);
56
+ </script>
57
+
58
+ <div
59
+ class="steps-wrap {className}"
60
+ role="list"
61
+ aria-label="Progress steps"
62
+ style="--fill:{fillColor};--fg:{fgColor};--node:{nodePx}px"
63
+ >
64
+ <!-- Connector track -->
65
+ <div class="steps-track" aria-hidden="true">
66
+ <div class="steps-track-fill" style="transform:scaleX({trackFill})"></div>
67
+ </div>
68
+
69
+ <!-- Step nodes -->
70
+ {#each normalized as step, i}
71
+ {@const stepNum = i + 1}
72
+ {@const isComplete = stepNum < current}
73
+ {@const isActive = stepNum === current}
74
+ <div
75
+ class="step"
76
+ class:step--complete={isComplete}
77
+ class:step--active={isActive}
78
+ role="listitem"
79
+ aria-current={isActive ? 'step' : undefined}
80
+ >
81
+ <div class="step-node" style="font-size:{labelSize}">
82
+ {#if isComplete}
83
+ <!-- Check mark drawn in on complete -->
84
+ <svg viewBox="0 0 16 16" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" class="step-check" aria-hidden="true">
85
+ <polyline points="3,8 6.5,12 13,4" />
86
+ </svg>
87
+ {:else}
88
+ <span>{stepNum}</span>
89
+ {/if}
90
+ </div>
91
+ {#if step.label}
92
+ <span class="step-label" style="font-size:{labelSize}">{step.label}</span>
93
+ {/if}
94
+ </div>
95
+ {/each}
96
+ </div>
97
+
98
+ <style>
99
+ .steps-wrap {
100
+ position: relative;
101
+ display: flex;
102
+ align-items: flex-start;
103
+ justify-content: space-between;
104
+ width: 100%;
105
+ padding-top: calc(var(--node) / 2);
106
+ }
107
+
108
+ /* The connector track runs behind the nodes */
109
+ .steps-track {
110
+ position: absolute;
111
+ top: calc(var(--node) / 2);
112
+ left: calc(var(--node) / 2);
113
+ right: calc(var(--node) / 2);
114
+ height: 3px;
115
+ border-radius: 9999px;
116
+ background: oklch(var(--b3) / 1);
117
+ overflow: hidden;
118
+ transform: translateY(-50%);
119
+ }
120
+
121
+ .steps-track-fill {
122
+ height: 100%;
123
+ background: var(--fill);
124
+ transform-origin: left;
125
+ transition: transform 0.5s var(--motion-spring);
126
+ }
127
+
128
+ /* Nodes */
129
+ .step {
130
+ display: flex;
131
+ flex-direction: column;
132
+ align-items: center;
133
+ gap: 0.375rem;
134
+ z-index: 1;
135
+ position: relative;
136
+ }
137
+
138
+ .step-node {
139
+ width: var(--node);
140
+ height: var(--node);
141
+ border-radius: 9999px;
142
+ background: oklch(var(--b3) / 1);
143
+ color: oklch(var(--bc) / 0.5);
144
+ display: flex;
145
+ align-items: center;
146
+ justify-content: center;
147
+ font-weight: 600;
148
+ border: 2px solid oklch(var(--b3) / 1);
149
+ transition:
150
+ background 0.2s var(--motion-glide),
151
+ color 0.2s var(--motion-glide),
152
+ border-color 0.2s var(--motion-glide),
153
+ transform 0.4s var(--motion-spring);
154
+ }
155
+
156
+ .step--active .step-node {
157
+ background: oklch(var(--b1) / 1);
158
+ border-color: var(--fill);
159
+ color: var(--fill);
160
+ transform: scale(1.18);
161
+ }
162
+
163
+ .step--complete .step-node {
164
+ background: var(--fill);
165
+ border-color: var(--fill);
166
+ color: var(--fg);
167
+ }
168
+
169
+ .step-check {
170
+ width: 55%;
171
+ height: 55%;
172
+ }
173
+
174
+ .step-label {
175
+ color: oklch(var(--bc) / 0.6);
176
+ text-align: center;
177
+ max-width: 5rem;
178
+ line-height: 1.2;
179
+ transition: color 0.2s var(--motion-glide);
180
+ }
181
+
182
+ .step--active .step-label,
183
+ .step--complete .step-label {
184
+ color: oklch(var(--bc) / 1);
185
+ }
186
+
187
+ @media (prefers-reduced-motion: reduce) {
188
+ .steps-track-fill {
189
+ transition: none;
190
+ }
191
+ .step-node {
192
+ transition: none;
193
+ }
194
+ }
195
+ </style>
@@ -0,0 +1,14 @@
1
+ interface Step {
2
+ label?: string;
3
+ description?: string;
4
+ }
5
+ interface Props {
6
+ steps: Step[] | string[];
7
+ current?: number;
8
+ color?: 'primary' | 'secondary' | 'accent' | 'success' | 'warning' | 'error' | 'info';
9
+ size?: 'sm' | 'md' | 'lg';
10
+ class?: string;
11
+ }
12
+ declare const Steps: import("svelte").Component<Props, {}, "">;
13
+ type Steps = ReturnType<typeof Steps>;
14
+ export default Steps;
@@ -22,6 +22,17 @@
22
22
  * transcript shows just the headline by default and the body is
23
23
  * a drill-down. This is what keeps the left column readable.
24
24
  */
25
+ var __assign = (this && this.__assign) || function () {
26
+ __assign = Object.assign || function(t) {
27
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
28
+ s = arguments[i];
29
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
30
+ t[p] = s[p];
31
+ }
32
+ return t;
33
+ };
34
+ return __assign.apply(this, arguments);
35
+ };
25
36
  export function rawTypeToState(raw) {
26
37
  switch (raw) {
27
38
  case 'needs_input':
@@ -37,27 +48,28 @@ export function rawTypeToState(raw) {
37
48
  }
38
49
  /** Detect a `jat-signal <type> '<json>'` invocation in a tool-call body. */
39
50
  function parseSignalBody(body) {
40
- const m = body.match(/jat-signal\s+(starting|working|needs_input|review|completing|complete|completed|paused|idle)\b/);
51
+ var m = body.match(/jat-signal\s+(starting|working|needs_input|review|completing|complete|completed|paused|idle)\b/);
41
52
  if (!m)
42
53
  return null;
43
- let label = '';
44
- const pick = body.match(/"(?:approach|question|reviewFocus|currentStep|summary|reason|taskTitle)"\s*:\s*"([^"]{3,90})/);
54
+ var label = '';
55
+ var pick = body.match(/"(?:approach|question|reviewFocus|currentStep|summary|reason|taskTitle)"\s*:\s*"([^"]{3,90})/);
45
56
  if (pick)
46
57
  label = pick[1];
47
- return { rawType: m[1], label };
58
+ return { rawType: m[1], label: label };
48
59
  }
49
60
  /** Build the linked model from rendered transcript lines. */
50
61
  export function buildLinkedSession(lines) {
51
- const items = [];
52
- const emits = [];
53
- let cur = null;
54
- const flush = () => {
62
+ var items = [];
63
+ var emits = [];
64
+ var cur = null;
65
+ var flush = function () {
55
66
  if (cur) {
56
- items.push({ id: items.length, ...cur, signalId: null });
67
+ items.push(__assign(__assign({ id: items.length }, cur), { signalId: null }));
57
68
  cur = null;
58
69
  }
59
70
  };
60
- for (const line of lines) {
71
+ for (var _i = 0, lines_1 = lines; _i < lines_1.length; _i++) {
72
+ var line = lines_1[_i];
61
73
  if (!line.trim()) {
62
74
  flush();
63
75
  continue;
@@ -68,8 +80,8 @@ export function buildLinkedSession(lines) {
68
80
  continue;
69
81
  }
70
82
  if (line.startsWith('⏺ ')) {
71
- const body = line.slice(2);
72
- const sig = parseSignalBody(body);
83
+ var body = line.slice(2);
84
+ var sig = parseSignalBody(body);
73
85
  if (sig) {
74
86
  // signal emission = boundary; consume it, don't render as an item
75
87
  flush();
@@ -81,7 +93,7 @@ export function buildLinkedSession(lines) {
81
93
  continue;
82
94
  }
83
95
  if (line.startsWith(' ⎿ ')) {
84
- const body = line.slice(4);
96
+ var body = line.slice(4);
85
97
  if (cur) {
86
98
  cur.detail.push(body);
87
99
  cur.srcLines++;
@@ -90,7 +102,7 @@ export function buildLinkedSession(lines) {
90
102
  }
91
103
  if (line.startsWith(' ')) {
92
104
  // continuation: tool detail for actions, prose for prompt/assistant
93
- const body = line.trimStart();
105
+ var body = line.trimStart();
94
106
  if (cur && cur.kind === 'action') {
95
107
  cur.detail.push(body);
96
108
  cur.srcLines++;
@@ -113,21 +125,21 @@ export function buildLinkedSession(lines) {
113
125
  }
114
126
  flush();
115
127
  // Build signal nodes from emission boundaries.
116
- const signals = [];
117
- let prevBoundary = -1;
118
- emits.forEach((e, i) => {
119
- const rowStart = Math.max(0, prevBoundary + 1);
120
- const rowEnd = Math.max(rowStart, e.afterIdx);
121
- let lineCount = 0;
122
- for (let k = rowStart; k <= rowEnd && k < items.length; k++)
128
+ var signals = [];
129
+ var prevBoundary = -1;
130
+ emits.forEach(function (e, i) {
131
+ var rowStart = Math.max(0, prevBoundary + 1);
132
+ var rowEnd = Math.max(rowStart, e.afterIdx);
133
+ var lineCount = 0;
134
+ for (var k = rowStart; k <= rowEnd && k < items.length; k++)
123
135
  lineCount += items[k].srcLines;
124
136
  signals.push({
125
- id: `sig-${i}`,
137
+ id: "sig-".concat(i),
126
138
  state: rawTypeToState(e.rawType),
127
139
  rawType: e.rawType,
128
140
  label: e.label,
129
- rowStart,
130
- rowEnd,
141
+ rowStart: rowStart,
142
+ rowEnd: rowEnd,
131
143
  lineCount: Math.max(1, lineCount),
132
144
  // No WorkBlock substrate data in the raw-lines path
133
145
  blockId: null,
@@ -139,12 +151,13 @@ export function buildLinkedSession(lines) {
139
151
  });
140
152
  prevBoundary = e.afterIdx;
141
153
  });
142
- for (const sig of signals) {
143
- for (let k = sig.rowStart; k <= sig.rowEnd && k < items.length; k++) {
154
+ for (var _a = 0, signals_1 = signals; _a < signals_1.length; _a++) {
155
+ var sig = signals_1[_a];
156
+ for (var k = sig.rowStart; k <= sig.rowEnd && k < items.length; k++) {
144
157
  items[k].signalId = sig.id;
145
158
  }
146
159
  }
147
- return { items, signals };
160
+ return { items: items, signals: signals };
148
161
  }
149
162
  /**
150
163
  * Build a LinkedSession from the WorkBlock substrate (B1).
@@ -162,45 +175,49 @@ export function buildLinkedSession(lines) {
162
175
  */
163
176
  export function buildLinkedSessionFromWork(blocks, items) {
164
177
  // Map WorkTranscriptItem → TranscriptItem (blockId → signalId mapping happens after)
165
- const transcriptItems = items.map((it) => ({
178
+ var transcriptItems = items.map(function (it) { return ({
166
179
  id: it.id,
167
180
  kind: it.kind,
168
181
  headline: it.headline,
169
182
  detail: it.detail,
170
183
  srcLines: it.srcLines,
171
184
  signalId: null // filled in below
172
- }));
185
+ }); });
173
186
  // Map WorkBlock → SignalNode
174
- const signals = blocks.map((blk) => ({
175
- id: blk.id,
176
- state: rawTypeToState(blk.signal.type),
177
- rawType: blk.signal.type,
178
- label: blk.signal.label,
179
- rowStart: blk.itemRange.start,
180
- rowEnd: blk.itemRange.end,
181
- lineCount: blk.lineCount,
182
- // WorkBlock substrate fields
183
- blockId: blk.id,
184
- summary: blk.summary,
185
- filesTouched: blk.filesTouched,
186
- commits: blk.commits ?? [],
187
- linesAdded: blk.linesAdded ?? 0,
188
- linesRemoved: blk.linesRemoved ?? 0
189
- }));
187
+ var signals = blocks.map(function (blk) {
188
+ var _a, _b, _c;
189
+ return ({
190
+ id: blk.id,
191
+ state: rawTypeToState(blk.signal.type),
192
+ rawType: blk.signal.type,
193
+ label: blk.signal.label,
194
+ rowStart: blk.itemRange.start,
195
+ rowEnd: blk.itemRange.end,
196
+ lineCount: blk.lineCount,
197
+ // WorkBlock substrate fields
198
+ blockId: blk.id,
199
+ summary: blk.summary,
200
+ filesTouched: blk.filesTouched,
201
+ commits: (_a = blk.commits) !== null && _a !== void 0 ? _a : [],
202
+ linesAdded: (_b = blk.linesAdded) !== null && _b !== void 0 ? _b : 0,
203
+ linesRemoved: (_c = blk.linesRemoved) !== null && _c !== void 0 ? _c : 0
204
+ });
205
+ });
190
206
  // Assign signalId to transcript items via block ownership
191
- for (const sig of signals) {
192
- for (let k = sig.rowStart; k <= sig.rowEnd && k < transcriptItems.length; k++) {
207
+ for (var _i = 0, signals_2 = signals; _i < signals_2.length; _i++) {
208
+ var sig = signals_2[_i];
209
+ for (var k = sig.rowStart; k <= sig.rowEnd && k < transcriptItems.length; k++) {
193
210
  transcriptItems[k].signalId = sig.id;
194
211
  }
195
212
  }
196
- return { items: transcriptItems, signals };
213
+ return { items: transcriptItems, signals: signals };
197
214
  }
198
215
  /**
199
216
  * A baked, realistic sample so /sankey always demos beautifully even with no live
200
217
  * session. Authored as raw transcript lines with real `jat-signal` calls, so it
201
218
  * flows through the EXACT same parser as live data.
202
219
  */
203
- export const SAMPLE_TRANSCRIPT_LINES = [
220
+ export var SAMPLE_TRANSCRIPT_LINES = [
204
221
  '',
205
222
  '› /jat:start GentleCoast jat-7h2k',
206
223
  '⏺ Bash(get-current-session-id)',