@synopackageland/ui 0.9.7 → 0.9.9

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/CHANGELOG.md CHANGED
@@ -1,5 +1,18 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.9.9 (2026-10-15)
4
+
5
+ - Pagination keeps multi-digit page numbers on one line and reserves room for three digits, including under DSM host button styles.
6
+ - 分頁的多位數頁碼維持單行,並保留三位數的空間;在 DSM 宿主按鈕樣式下也不會換行。
7
+
8
+ ## 0.9.8 (2026-10-15)
9
+
10
+ `CellText` can wrap its lines. No behavior change: cutting with an ellipsis stays the default.
11
+ `CellText` 可以換行。沒有行為變更:預設仍以省略號截斷。
12
+
13
+ - `CellText` takes `wrap`: its main and secondary lines wrap (`white-space: normal`, `overflow-wrap: anywhere`) instead of ending in "…", also for a main text that opens its item (`openLabel`). A JSON spec passes `wrap: true`. An app that wrapped CellText's slots in its own span (Reclaim's `CellWrap.vue`) can pass `wrap` and drop the span.
14
+ - `CellText` 新增 `wrap`:主行與次行改為換行(`white-space: normal`、`overflow-wrap: anywhere`),不再以「…」結尾;以 `openLabel` 開啟項目的主行也一樣。JSON spec 傳 `wrap: true`。先前在 CellText slot 外包自訂換行 span 的 App(Reclaim 的 `CellWrap.vue`)可改傳 `wrap` 並刪掉該 span。
15
+
3
16
  ## 0.9.7 (2026-10-14)
4
17
 
5
18
  Fixes from the t-0496 re-verification on DSM. **Behavior change:** a `Space` row packs its items at the start instead of centring them.
@@ -9,6 +9,8 @@ type __VLS_Props = {
9
9
  /** Makes the main text a button that emits `open`; the label is its tooltip, e.g. "Open in File Station". */
10
10
  openLabel?: string;
11
11
  openDisabled?: boolean;
12
+ /** Wraps both lines instead of cutting them with an ellipsis. */
13
+ wrap?: boolean;
12
14
  };
13
15
  declare var __VLS_6: {}, __VLS_8: {}, __VLS_10: {};
14
16
  type __VLS_Slots = {} & {
@@ -25,6 +27,7 @@ declare const __VLS_base: import('vue').DefineComponent<__VLS_Props, {}, {}, {},
25
27
  }>, {
26
28
  layout: "stacked" | "inline";
27
29
  openDisabled: boolean;
30
+ wrap: boolean;
28
31
  }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
29
32
  declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
30
33
  declare const _default: typeof __VLS_export;
package/dist/index.js CHANGED
@@ -22940,7 +22940,7 @@ const aC = ["aria-label"], nC = {
22940
22940
  "aria-current": M.page === c.value ? "page" : void 0,
22941
22941
  "aria-label": M.page === c.value ? i.value.page(M.page) : i.value.goToPage(M.page),
22942
22942
  class: ne([
22943
- "inline-flex size-6 min-w-6 items-center justify-center rounded-[var(--ui-radius-sm)] px-1 outline-none transition-colors duration-[var(--ui-motion-fast)] ease-[var(--ui-motion-ease)] focus-visible:shadow-[0_0_0_2px_var(--ui-focus-ring)]",
22943
+ "inline-flex h-6 min-w-[calc(3ch+0.5rem)] shrink-0 whitespace-nowrap items-center justify-center rounded-[var(--ui-radius-sm)] px-1 outline-none transition-colors duration-[var(--ui-motion-fast)] ease-[var(--ui-motion-ease)] focus-visible:shadow-[0_0_0_2px_var(--ui-focus-ring)]",
22944
22944
  M.page === c.value ? "bg-[var(--ui-primary-soft)] font-medium text-[var(--ui-primary-active)]" : "text-[var(--ui-text)] hover:bg-[var(--ui-surface-hover)]",
22945
22945
  !o.switchPage && "pointer-events-none opacity-50"
22946
22946
  ]),
@@ -24191,7 +24191,7 @@ const OS = ["data-overflow-start", "data-overflow-end"], md = /* @__PURE__ */ A(
24191
24191
  }))
24192
24192
  ], 8, IS));
24193
24193
  }
24194
- }), WS = ["data-layout"], jS = ["title", "disabled"], US = ["title"], GS = ["title"], JD = /* @__PURE__ */ A({
24194
+ }), WS = ["data-layout", "data-wrap"], jS = ["title", "disabled"], US = ["title"], GS = ["title"], JD = /* @__PURE__ */ A({
24195
24195
  __name: "CellText",
24196
24196
  props: {
24197
24197
  text: {},
@@ -24199,13 +24199,16 @@ const OS = ["data-overflow-start", "data-overflow-end"], md = /* @__PURE__ */ A(
24199
24199
  layout: { default: "stacked" },
24200
24200
  icon: {},
24201
24201
  openLabel: {},
24202
- openDisabled: { type: Boolean, default: !1 }
24202
+ openDisabled: { type: Boolean, default: !1 },
24203
+ wrap: { type: Boolean, default: !1 }
24203
24204
  },
24204
24205
  emits: ["open"],
24205
24206
  setup(e) {
24206
- return (a, t) => (f(), g("div", {
24207
+ const a = e, t = h(() => a.wrap ? "whitespace-normal [overflow-wrap:anywhere]" : "truncate");
24208
+ return (n, o) => (f(), g("div", {
24207
24209
  class: "flex min-w-0 items-center gap-[var(--ui-space-2)]",
24208
24210
  "data-layout": e.layout,
24211
+ "data-wrap": e.wrap ? "" : void 0,
24209
24212
  "data-syno-pkg-land-ui": ""
24210
24213
  }, [
24211
24214
  e.icon ? (f(), E(Ne(e.icon), {
@@ -24226,32 +24229,33 @@ const OS = ["data-overflow-start", "data-overflow-end"], md = /* @__PURE__ */ A(
24226
24229
  "data-ui-cell-primary": "",
24227
24230
  title: e.openLabel,
24228
24231
  disabled: e.openDisabled,
24229
- class: "m-0 min-w-0 max-w-full truncate rounded-[var(--ui-radius-sm)] border-0 bg-transparent p-0 text-left text-[length:inherit] leading-5 text-[var(--ui-primary)] outline-none hover:underline focus-visible:shadow-[0_0_0_3px_var(--ui-focus-ring)] disabled:cursor-default disabled:opacity-50 disabled:hover:no-underline",
24230
- onClick: t[0] || (t[0] = (n) => a.$emit("open"))
24232
+ class: ne([t.value, "m-0 min-w-0 max-w-full rounded-[var(--ui-radius-sm)] border-0 bg-transparent p-0 text-left text-[length:inherit] leading-5 text-[var(--ui-primary)] outline-none hover:underline focus-visible:shadow-[0_0_0_3px_var(--ui-focus-ring)] disabled:cursor-default disabled:opacity-50 disabled:hover:no-underline"]),
24233
+ onClick: o[0] || (o[0] = (r) => n.$emit("open"))
24231
24234
  }, [
24232
- k(a.$slots, "default", {}, () => [
24235
+ k(n.$slots, "default", {}, () => [
24233
24236
  ve(W(e.text), 1)
24234
24237
  ])
24235
- ], 8, jS)) : (f(), g("span", {
24238
+ ], 10, jS)) : (f(), g("span", {
24236
24239
  key: 1,
24237
24240
  "data-ui-cell-primary": "",
24238
24241
  title: e.text,
24239
- class: "min-w-0 truncate leading-5 text-[var(--ui-text)]"
24242
+ class: ne([t.value, "min-w-0 leading-5 text-[var(--ui-text)]"])
24240
24243
  }, [
24241
- k(a.$slots, "default", {}, () => [
24244
+ k(n.$slots, "default", {}, () => [
24242
24245
  ve(W(e.text), 1)
24243
24246
  ])
24244
- ], 8, US)),
24245
- e.secondary || a.$slots.secondary ? (f(), g("span", {
24247
+ ], 10, US)),
24248
+ e.secondary || n.$slots.secondary ? (f(), g("span", {
24246
24249
  key: 2,
24247
24250
  "data-ui-cell-secondary": "",
24248
24251
  title: e.secondary,
24249
24252
  class: ne([
24250
- "min-w-0 truncate text-[length:var(--ui-font-size-sm)] leading-4 text-[var(--ui-text-secondary)]",
24253
+ "min-w-0 text-[length:var(--ui-font-size-sm)] leading-4 text-[var(--ui-text-secondary)]",
24254
+ t.value,
24251
24255
  e.layout === "inline" && "shrink-0"
24252
24256
  ])
24253
24257
  }, [
24254
- k(a.$slots, "secondary", {}, () => [
24258
+ k(n.$slots, "secondary", {}, () => [
24255
24259
  ve(W(e.secondary), 1)
24256
24260
  ])
24257
24261
  ], 10, GS)) : L("", !0)
@@ -450,6 +450,7 @@ export declare const synoJsonComponentDefinitions: {
450
450
  }>>;
451
451
  openLabel: z.ZodOptional<z.ZodString>;
452
452
  openDisabled: z.ZodOptional<z.ZodBoolean>;
453
+ wrap: z.ZodOptional<z.ZodBoolean>;
453
454
  }, z.core.$strip>;
454
455
  events: string[];
455
456
  description: string;
@@ -960,6 +961,7 @@ export declare const synoJsonCatalog: import('@json-render/core').Catalog<{
960
961
  }>>;
961
962
  openLabel: z.ZodOptional<z.ZodString>;
962
963
  openDisabled: z.ZodOptional<z.ZodBoolean>;
964
+ wrap: z.ZodOptional<z.ZodBoolean>;
963
965
  }, z.core.$strip>;
964
966
  events: string[];
965
967
  description: string;
@@ -470,6 +470,7 @@ export declare const synoJsonRenderers: {
470
470
  }>>;
471
471
  openLabel: import('zod').ZodOptional<import('zod').ZodString>;
472
472
  openDisabled: import('zod').ZodOptional<import('zod').ZodBoolean>;
473
+ wrap: import('zod').ZodOptional<import('zod').ZodBoolean>;
473
474
  }, import('zod/v4/core').$strip>;
474
475
  events: string[];
475
476
  description: string;
@@ -984,6 +985,7 @@ export declare const synoJsonRenderers: {
984
985
  }>>;
985
986
  openLabel: import('zod').ZodOptional<import('zod').ZodString>;
986
987
  openDisabled: import('zod').ZodOptional<import('zod').ZodBoolean>;
988
+ wrap: import('zod').ZodOptional<import('zod').ZodBoolean>;
987
989
  }, import('zod/v4/core').$strip>;
988
990
  events: string[];
989
991
  description: string;
@@ -1498,6 +1500,7 @@ export declare const synoJsonRenderers: {
1498
1500
  }>>;
1499
1501
  openLabel: import('zod').ZodOptional<import('zod').ZodString>;
1500
1502
  openDisabled: import('zod').ZodOptional<import('zod').ZodBoolean>;
1503
+ wrap: import('zod').ZodOptional<import('zod').ZodBoolean>;
1501
1504
  }, import('zod/v4/core').$strip>;
1502
1505
  events: string[];
1503
1506
  description: string;
@@ -2012,6 +2015,7 @@ export declare const synoJsonRenderers: {
2012
2015
  }>>;
2013
2016
  openLabel: import('zod').ZodOptional<import('zod').ZodString>;
2014
2017
  openDisabled: import('zod').ZodOptional<import('zod').ZodBoolean>;
2018
+ wrap: import('zod').ZodOptional<import('zod').ZodBoolean>;
2015
2019
  }, import('zod/v4/core').$strip>;
2016
2020
  events: string[];
2017
2021
  description: string;
@@ -2526,6 +2530,7 @@ export declare const synoJsonRenderers: {
2526
2530
  }>>;
2527
2531
  openLabel: import('zod').ZodOptional<import('zod').ZodString>;
2528
2532
  openDisabled: import('zod').ZodOptional<import('zod').ZodBoolean>;
2533
+ wrap: import('zod').ZodOptional<import('zod').ZodBoolean>;
2529
2534
  }, import('zod/v4/core').$strip>;
2530
2535
  events: string[];
2531
2536
  description: string;
@@ -3040,6 +3045,7 @@ export declare const synoJsonRenderers: {
3040
3045
  }>>;
3041
3046
  openLabel: import('zod').ZodOptional<import('zod').ZodString>;
3042
3047
  openDisabled: import('zod').ZodOptional<import('zod').ZodBoolean>;
3048
+ wrap: import('zod').ZodOptional<import('zod').ZodBoolean>;
3043
3049
  }, import('zod/v4/core').$strip>;
3044
3050
  events: string[];
3045
3051
  description: string;
@@ -3554,6 +3560,7 @@ export declare const synoJsonRenderers: {
3554
3560
  }>>;
3555
3561
  openLabel: import('zod').ZodOptional<import('zod').ZodString>;
3556
3562
  openDisabled: import('zod').ZodOptional<import('zod').ZodBoolean>;
3563
+ wrap: import('zod').ZodOptional<import('zod').ZodBoolean>;
3557
3564
  }, import('zod/v4/core').$strip>;
3558
3565
  events: string[];
3559
3566
  description: string;
@@ -4068,6 +4075,7 @@ export declare const synoJsonRenderers: {
4068
4075
  }>>;
4069
4076
  openLabel: import('zod').ZodOptional<import('zod').ZodString>;
4070
4077
  openDisabled: import('zod').ZodOptional<import('zod').ZodBoolean>;
4078
+ wrap: import('zod').ZodOptional<import('zod').ZodBoolean>;
4071
4079
  }, import('zod/v4/core').$strip>;
4072
4080
  events: string[];
4073
4081
  description: string;
@@ -4582,6 +4590,7 @@ export declare const synoJsonRenderers: {
4582
4590
  }>>;
4583
4591
  openLabel: import('zod').ZodOptional<import('zod').ZodString>;
4584
4592
  openDisabled: import('zod').ZodOptional<import('zod').ZodBoolean>;
4593
+ wrap: import('zod').ZodOptional<import('zod').ZodBoolean>;
4585
4594
  }, import('zod/v4/core').$strip>;
4586
4595
  events: string[];
4587
4596
  description: string;
@@ -5096,6 +5105,7 @@ export declare const synoJsonRenderers: {
5096
5105
  }>>;
5097
5106
  openLabel: import('zod').ZodOptional<import('zod').ZodString>;
5098
5107
  openDisabled: import('zod').ZodOptional<import('zod').ZodBoolean>;
5108
+ wrap: import('zod').ZodOptional<import('zod').ZodBoolean>;
5099
5109
  }, import('zod/v4/core').$strip>;
5100
5110
  events: string[];
5101
5111
  description: string;
@@ -5610,6 +5620,7 @@ export declare const synoJsonRenderers: {
5610
5620
  }>>;
5611
5621
  openLabel: import('zod').ZodOptional<import('zod').ZodString>;
5612
5622
  openDisabled: import('zod').ZodOptional<import('zod').ZodBoolean>;
5623
+ wrap: import('zod').ZodOptional<import('zod').ZodBoolean>;
5613
5624
  }, import('zod/v4/core').$strip>;
5614
5625
  events: string[];
5615
5626
  description: string;
@@ -6124,6 +6135,7 @@ export declare const synoJsonRenderers: {
6124
6135
  }>>;
6125
6136
  openLabel: import('zod').ZodOptional<import('zod').ZodString>;
6126
6137
  openDisabled: import('zod').ZodOptional<import('zod').ZodBoolean>;
6138
+ wrap: import('zod').ZodOptional<import('zod').ZodBoolean>;
6127
6139
  }, import('zod/v4/core').$strip>;
6128
6140
  events: string[];
6129
6141
  description: string;
@@ -6638,6 +6650,7 @@ export declare const synoJsonRenderers: {
6638
6650
  }>>;
6639
6651
  openLabel: import('zod').ZodOptional<import('zod').ZodString>;
6640
6652
  openDisabled: import('zod').ZodOptional<import('zod').ZodBoolean>;
6653
+ wrap: import('zod').ZodOptional<import('zod').ZodBoolean>;
6641
6654
  }, import('zod/v4/core').$strip>;
6642
6655
  events: string[];
6643
6656
  description: string;
@@ -7152,6 +7165,7 @@ export declare const synoJsonRenderers: {
7152
7165
  }>>;
7153
7166
  openLabel: import('zod').ZodOptional<import('zod').ZodString>;
7154
7167
  openDisabled: import('zod').ZodOptional<import('zod').ZodBoolean>;
7168
+ wrap: import('zod').ZodOptional<import('zod').ZodBoolean>;
7155
7169
  }, import('zod/v4/core').$strip>;
7156
7170
  events: string[];
7157
7171
  description: string;
@@ -7666,6 +7680,7 @@ export declare const synoJsonRenderers: {
7666
7680
  }>>;
7667
7681
  openLabel: import('zod').ZodOptional<import('zod').ZodString>;
7668
7682
  openDisabled: import('zod').ZodOptional<import('zod').ZodBoolean>;
7683
+ wrap: import('zod').ZodOptional<import('zod').ZodBoolean>;
7669
7684
  }, import('zod/v4/core').$strip>;
7670
7685
  events: string[];
7671
7686
  description: string;
@@ -8180,6 +8195,7 @@ export declare const synoJsonRenderers: {
8180
8195
  }>>;
8181
8196
  openLabel: import('zod').ZodOptional<import('zod').ZodString>;
8182
8197
  openDisabled: import('zod').ZodOptional<import('zod').ZodBoolean>;
8198
+ wrap: import('zod').ZodOptional<import('zod').ZodBoolean>;
8183
8199
  }, import('zod/v4/core').$strip>;
8184
8200
  events: string[];
8185
8201
  description: string;
@@ -8694,6 +8710,7 @@ export declare const synoJsonRenderers: {
8694
8710
  }>>;
8695
8711
  openLabel: import('zod').ZodOptional<import('zod').ZodString>;
8696
8712
  openDisabled: import('zod').ZodOptional<import('zod').ZodBoolean>;
8713
+ wrap: import('zod').ZodOptional<import('zod').ZodBoolean>;
8697
8714
  }, import('zod/v4/core').$strip>;
8698
8715
  events: string[];
8699
8716
  description: string;
@@ -9208,6 +9225,7 @@ export declare const synoJsonRenderers: {
9208
9225
  }>>;
9209
9226
  openLabel: import('zod').ZodOptional<import('zod').ZodString>;
9210
9227
  openDisabled: import('zod').ZodOptional<import('zod').ZodBoolean>;
9228
+ wrap: import('zod').ZodOptional<import('zod').ZodBoolean>;
9211
9229
  }, import('zod/v4/core').$strip>;
9212
9230
  events: string[];
9213
9231
  description: string;
@@ -9722,6 +9740,7 @@ export declare const synoJsonRenderers: {
9722
9740
  }>>;
9723
9741
  openLabel: import('zod').ZodOptional<import('zod').ZodString>;
9724
9742
  openDisabled: import('zod').ZodOptional<import('zod').ZodBoolean>;
9743
+ wrap: import('zod').ZodOptional<import('zod').ZodBoolean>;
9725
9744
  }, import('zod/v4/core').$strip>;
9726
9745
  events: string[];
9727
9746
  description: string;
@@ -10236,6 +10255,7 @@ export declare const synoJsonRenderers: {
10236
10255
  }>>;
10237
10256
  openLabel: import('zod').ZodOptional<import('zod').ZodString>;
10238
10257
  openDisabled: import('zod').ZodOptional<import('zod').ZodBoolean>;
10258
+ wrap: import('zod').ZodOptional<import('zod').ZodBoolean>;
10239
10259
  }, import('zod/v4/core').$strip>;
10240
10260
  events: string[];
10241
10261
  description: string;
@@ -10750,6 +10770,7 @@ export declare const synoJsonRenderers: {
10750
10770
  }>>;
10751
10771
  openLabel: import('zod').ZodOptional<import('zod').ZodString>;
10752
10772
  openDisabled: import('zod').ZodOptional<import('zod').ZodBoolean>;
10773
+ wrap: import('zod').ZodOptional<import('zod').ZodBoolean>;
10753
10774
  }, import('zod/v4/core').$strip>;
10754
10775
  events: string[];
10755
10776
  description: string;
@@ -11264,6 +11285,7 @@ export declare const synoJsonRenderers: {
11264
11285
  }>>;
11265
11286
  openLabel: import('zod').ZodOptional<import('zod').ZodString>;
11266
11287
  openDisabled: import('zod').ZodOptional<import('zod').ZodBoolean>;
11288
+ wrap: import('zod').ZodOptional<import('zod').ZodBoolean>;
11267
11289
  }, import('zod/v4/core').$strip>;
11268
11290
  events: string[];
11269
11291
  description: string;
@@ -11778,6 +11800,7 @@ export declare const synoJsonRenderers: {
11778
11800
  }>>;
11779
11801
  openLabel: import('zod').ZodOptional<import('zod').ZodString>;
11780
11802
  openDisabled: import('zod').ZodOptional<import('zod').ZodBoolean>;
11803
+ wrap: import('zod').ZodOptional<import('zod').ZodBoolean>;
11781
11804
  }, import('zod/v4/core').$strip>;
11782
11805
  events: string[];
11783
11806
  description: string;
@@ -12292,6 +12315,7 @@ export declare const synoJsonRenderers: {
12292
12315
  }>>;
12293
12316
  openLabel: import('zod').ZodOptional<import('zod').ZodString>;
12294
12317
  openDisabled: import('zod').ZodOptional<import('zod').ZodBoolean>;
12318
+ wrap: import('zod').ZodOptional<import('zod').ZodBoolean>;
12295
12319
  }, import('zod/v4/core').$strip>;
12296
12320
  events: string[];
12297
12321
  description: string;
@@ -12806,6 +12830,7 @@ export declare const synoJsonRenderers: {
12806
12830
  }>>;
12807
12831
  openLabel: import('zod').ZodOptional<import('zod').ZodString>;
12808
12832
  openDisabled: import('zod').ZodOptional<import('zod').ZodBoolean>;
12833
+ wrap: import('zod').ZodOptional<import('zod').ZodBoolean>;
12809
12834
  }, import('zod/v4/core').$strip>;
12810
12835
  events: string[];
12811
12836
  description: string;
@@ -13320,6 +13345,7 @@ export declare const synoJsonRenderers: {
13320
13345
  }>>;
13321
13346
  openLabel: import('zod').ZodOptional<import('zod').ZodString>;
13322
13347
  openDisabled: import('zod').ZodOptional<import('zod').ZodBoolean>;
13348
+ wrap: import('zod').ZodOptional<import('zod').ZodBoolean>;
13323
13349
  }, import('zod/v4/core').$strip>;
13324
13350
  events: string[];
13325
13351
  description: string;
@@ -13834,6 +13860,7 @@ export declare const synoJsonRenderers: {
13834
13860
  }>>;
13835
13861
  openLabel: import('zod').ZodOptional<import('zod').ZodString>;
13836
13862
  openDisabled: import('zod').ZodOptional<import('zod').ZodBoolean>;
13863
+ wrap: import('zod').ZodOptional<import('zod').ZodBoolean>;
13837
13864
  }, import('zod/v4/core').$strip>;
13838
13865
  events: string[];
13839
13866
  description: string;
@@ -14348,6 +14375,7 @@ export declare const synoJsonRenderers: {
14348
14375
  }>>;
14349
14376
  openLabel: import('zod').ZodOptional<import('zod').ZodString>;
14350
14377
  openDisabled: import('zod').ZodOptional<import('zod').ZodBoolean>;
14378
+ wrap: import('zod').ZodOptional<import('zod').ZodBoolean>;
14351
14379
  }, import('zod/v4/core').$strip>;
14352
14380
  events: string[];
14353
14381
  description: string;
@@ -14862,6 +14890,7 @@ export declare const synoJsonRenderers: {
14862
14890
  }>>;
14863
14891
  openLabel: import('zod').ZodOptional<import('zod').ZodString>;
14864
14892
  openDisabled: import('zod').ZodOptional<import('zod').ZodBoolean>;
14893
+ wrap: import('zod').ZodOptional<import('zod').ZodBoolean>;
14865
14894
  }, import('zod/v4/core').$strip>;
14866
14895
  events: string[];
14867
14896
  description: string;
@@ -15376,6 +15405,7 @@ export declare const synoJsonRenderers: {
15376
15405
  }>>;
15377
15406
  openLabel: import('zod').ZodOptional<import('zod').ZodString>;
15378
15407
  openDisabled: import('zod').ZodOptional<import('zod').ZodBoolean>;
15408
+ wrap: import('zod').ZodOptional<import('zod').ZodBoolean>;
15379
15409
  }, import('zod/v4/core').$strip>;
15380
15410
  events: string[];
15381
15411
  description: string;
@@ -15890,6 +15920,7 @@ export declare const synoJsonRenderers: {
15890
15920
  }>>;
15891
15921
  openLabel: import('zod').ZodOptional<import('zod').ZodString>;
15892
15922
  openDisabled: import('zod').ZodOptional<import('zod').ZodBoolean>;
15923
+ wrap: import('zod').ZodOptional<import('zod').ZodBoolean>;
15893
15924
  }, import('zod/v4/core').$strip>;
15894
15925
  events: string[];
15895
15926
  description: string;
@@ -16404,6 +16435,7 @@ export declare const synoJsonRenderers: {
16404
16435
  }>>;
16405
16436
  openLabel: import('zod').ZodOptional<import('zod').ZodString>;
16406
16437
  openDisabled: import('zod').ZodOptional<import('zod').ZodBoolean>;
16438
+ wrap: import('zod').ZodOptional<import('zod').ZodBoolean>;
16407
16439
  }, import('zod/v4/core').$strip>;
16408
16440
  events: string[];
16409
16441
  description: string;
@@ -16918,6 +16950,7 @@ export declare const synoJsonRenderers: {
16918
16950
  }>>;
16919
16951
  openLabel: import('zod').ZodOptional<import('zod').ZodString>;
16920
16952
  openDisabled: import('zod').ZodOptional<import('zod').ZodBoolean>;
16953
+ wrap: import('zod').ZodOptional<import('zod').ZodBoolean>;
16921
16954
  }, import('zod/v4/core').$strip>;
16922
16955
  events: string[];
16923
16956
  description: string;
@@ -17432,6 +17465,7 @@ export declare const synoJsonRenderers: {
17432
17465
  }>>;
17433
17466
  openLabel: import('zod').ZodOptional<import('zod').ZodString>;
17434
17467
  openDisabled: import('zod').ZodOptional<import('zod').ZodBoolean>;
17468
+ wrap: import('zod').ZodOptional<import('zod').ZodBoolean>;
17435
17469
  }, import('zod/v4/core').$strip>;
17436
17470
  events: string[];
17437
17471
  description: string;
@@ -78,7 +78,7 @@ AVAILABLE COMPONENTS (34):
78
78
  - Dialog: { open?: boolean, title?: string, description?: string, width?: string, showClose?: boolean } - Modal task/dialog. Bind open to state. Put confirmation or form actions in footer. [accepts children; slots: footer] [events: openChange]
79
79
  - DataTable: { columns: Array<{ key: string, label: string, width?: string, align?: "left" | "center" | "right" }>, rows: Array<Record<string, unknown>>, rowKey?: string, emptyText?: string, compact?: boolean, mobileView?: "auto" | "cards" | "table" } - Simple resource table where cells display scalar row fields. Use an app extension component for rich/custom cells and row actions.
80
80
  - ResourceList: { columns: Array<{ key: string, label: string, width?: string, align?: "left" | "center" | "right" }>, rows: Array<Record<string, unknown>>, rowKey?: string, emptyText?: string, compact?: boolean, mobileView?: "auto" | "cards" | "table" } - Common resource collection pattern: optional toolbar plus a simple table. For domain-specific row rendering, extend the catalog with a custom list/table component. [slots: toolbar]
81
- - CellText: { text: string, secondary?: string, layout?: "stacked" | "inline", openLabel?: string, openDisabled?: boolean } - Main text with secondary information (size, time, path), truncated with a tooltip. With openLabel the main text is a link-styled button that emits open, e.g. "Open in File Station". [events: open]
81
+ - CellText: { text: string, secondary?: string, layout?: "stacked" | "inline", openLabel?: string, openDisabled?: boolean, wrap?: boolean } - Main text with secondary information (size, time, path), truncated with a tooltip; wrap: true wraps both lines instead. With openLabel the main text is a link-styled button that emits open, e.g. "Open in File Station". [events: open]
82
82
  - CellStatus: { label: string, tone?: "neutral" | "info" | "success" | "warning" | "danger", progress?: number, detail?: string } - Task status: a toned dot and label, a bar while progress (0–100) is running, and a detail such as speed or a reason.
83
83
  - ListItem: { title?: string, description?: string } - One entry of a list (an extension, a tool, a rule): title, description, content and actions on the right. Consecutive entries are split by a hairline. [accepts children; slots: actions]
84
84
  - InputGroup: { } - A field and the buttons acting on it on one line, such as a URL and its Install button. The first child takes the room left. [accepts children]
@@ -2714,7 +2714,7 @@
2714
2714
  }
2715
2715
  },
2716
2716
  "then": {
2717
- "description": "Main text with secondary information (size, time, path), truncated with a tooltip. With openLabel the main text is a link-styled button that emits open, e.g. \"Open in File Station\".",
2717
+ "description": "Main text with secondary information (size, time, path), truncated with a tooltip; wrap: true wraps both lines instead. With openLabel the main text is a link-styled button that emits open, e.g. \"Open in File Station\".",
2718
2718
  "properties": {
2719
2719
  "props": {
2720
2720
  "type": "object",
@@ -2772,6 +2772,16 @@
2772
2772
  "$ref": "#/$defs/expression"
2773
2773
  }
2774
2774
  ]
2775
+ },
2776
+ "wrap": {
2777
+ "anyOf": [
2778
+ {
2779
+ "type": "boolean"
2780
+ },
2781
+ {
2782
+ "$ref": "#/$defs/expression"
2783
+ }
2784
+ ]
2775
2785
  }
2776
2786
  },
2777
2787
  "required": [