@widgetic/creator 0.3.61 → 0.3.63

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.
@@ -7087,6 +7087,13 @@
7087
7087
  signal
7088
7088
  })
7089
7089
  .then((finalOp) => {
7090
+ if (!settled && !signal?.aborted && onMessage) {
7091
+ try {
7092
+ onMessage(finalOp as OperationStatus);
7093
+ } catch (callbackError) {
7094
+ console.warn('waitForOperation terminal callback error', callbackError);
7095
+ }
7096
+ }
7090
7097
  settle('resolve', finalOp as OperationStatus);
7091
7098
  })
7092
7099
  .catch((streamError) => {
@@ -40,12 +40,12 @@
40
40
  const { versionLabel, commitSha = null, showCommit = false, dateLabel = null, isLive = false, isDraft = false, selected = false, busy = false, publishDisabled = false, publishDisabledReason = null, setLiveDisabled = false, onselect, onpublish, onsetlive }: Props = $props();
41
41
 
42
42
  // One fixed width per column — identical on every row and in both dropdowns.
43
- // Widths hug the content (vN, 7-char SHA, dd/mm/yyyy hh:mm) so the badges
44
- // DRAFT/LIVE/PUBLISH sit right next to the date instead of floating.
45
- const COL_VERSION = 'w-7 justify-end';
46
- const COL_COMMIT = 'w-12 justify-end';
47
- const COL_DATE = 'w-[6.5rem] justify-center';
48
- const COL_ACTION = 'w-[4.75rem]';
43
+ // Explicit PIXEL widths that hug the content (vN, 7-char SHA, dd/mm/yyyy
44
+ // hh:mm) — no rem sizing, no floating side padding.
45
+ const COL_VERSION = 'w-[16px] justify-end';
46
+ const COL_COMMIT = 'w-[44px] justify-end';
47
+ const COL_DATE = 'w-[88px]';
48
+ const COL_ACTION = 'w-[60px]';
49
49
  </script>
50
50
 
51
51
  <div
@@ -69,11 +69,11 @@
69
69
  {#if isDraft}
70
70
  <!-- DRAFT lives in the date slot — same column, same width, no date line. -->
71
71
  <span
72
- class="{COL_DATE} flex shrink-0 items-center rounded bg-amber-50 py-0.5 font-semibold uppercase tracking-wide text-amber-600"
72
+ class="{COL_DATE} flex shrink-0 items-center justify-center rounded bg-amber-50 py-0.5 font-semibold uppercase tracking-wide text-amber-600"
73
73
  title="Not published — preview only"
74
74
  >Draft</span>
75
75
  {:else}
76
- <span class="{COL_DATE} flex shrink-0 items-center whitespace-nowrap tabular-nums text-slate-400">{dateLabel || '—'}</span>
76
+ <span class="{COL_DATE} flex shrink-0 items-center justify-start whitespace-nowrap tabular-nums text-slate-400">{dateLabel || '—'}</span>
77
77
  {/if}
78
78
  {#if isLive}
79
79
  <span class="{COL_ACTION} flex shrink-0 items-center justify-center rounded bg-emerald-100 py-0.5 font-semibold uppercase tracking-wide text-emerald-600">live</span>
@@ -84,12 +84,12 @@ export function streamOperationUpdates(operationId, options) {
84
84
  reader = response.body.getReader();
85
85
  const decoder = new TextDecoder();
86
86
  let buffer = '';
87
+ // Start idle timer before any operation payload arrives.
87
88
  armWatchdog();
88
89
  while (true) {
89
90
  const { done, value } = await reader.read();
90
91
  if (done)
91
92
  break;
92
- armWatchdog();
93
93
  buffer += decoder.decode(value, { stream: true });
94
94
  // SSE frames are `data: {...}\n\n`; keepalive comment frames carry
95
95
  // no data line and are skipped.
@@ -107,6 +107,10 @@ export function streamOperationUpdates(operationId, options) {
107
107
  continue;
108
108
  try {
109
109
  const op = JSON.parse(dataLine);
110
+ // Only reset idle timer on real operation payloads — SSE
111
+ // `: keepalive` comment frames must not suppress polling fallback
112
+ // when the terminal `completed` event is lost behind a proxy.
113
+ armWatchdog();
110
114
  onMessage?.(op);
111
115
  const status = String(op?.status || '').toLowerCase();
112
116
  if (TERMINAL_STATUSES.has(status)) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@widgetic/creator",
3
- "version": "0.3.61",
3
+ "version": "0.3.63",
4
4
  "type": "module",
5
5
  "peerDependencies": {
6
6
  "@sveltejs/kit": "^2.20.0",