@tailor-platform/app-shell 1.17.0 → 1.18.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.
@@ -139,11 +139,11 @@ var Se = {
139
139
  Row: ye,
140
140
  Group: be,
141
141
  Separator: xe
142
- }, Ce = O("astw:inline-flex astw:cursor-pointer astw:items-center astw:justify-center astw:gap-2 astw:whitespace-nowrap astw:rounded-md astw:text-sm astw:font-medium astw:transition-all astw:disabled:pointer-events-none astw:disabled:opacity-50 astw:[&_svg]:pointer-events-none astw:[&_svg:not([class*='size-'])]:size-4 astw:shrink-0 astw:[&_svg]:shrink-0 astw:outline-none astw:focus-visible:border-ring astw:focus-visible:ring-ring/50 astw:focus-visible:ring-[3px] astw:aria-invalid:ring-destructive/20 astw:dark:aria-invalid:ring-destructive/40 astw:aria-invalid:border-destructive", {
142
+ }, Ce = O("astw:inline-flex astw:cursor-pointer astw:items-center astw:justify-center astw:gap-2 astw:whitespace-nowrap astw:rounded-md astw:text-sm astw:font-medium astw:transition-all astw:disabled:pointer-events-none astw:disabled:opacity-50 astw:[&_svg]:pointer-events-none astw:[&_svg:not([class*='size-'])]:size-4 astw:shrink-0 astw:[&_svg]:shrink-0 astw:outline-none astw:focus-visible:border-ring astw:focus-visible:ring-ring/50 astw:focus-visible:ring-[3px] astw:aria-invalid:ring-danger-solid/20 astw:dark:aria-invalid:ring-danger-solid/40 astw:aria-invalid:border-danger-solid", {
143
143
  variants: {
144
144
  variant: {
145
145
  default: "astw:bg-primary astw:text-primary-foreground astw:shadow-xs astw:hover:bg-primary/90",
146
- destructive: "astw:bg-destructive astw:text-white astw:shadow-xs astw:hover:bg-destructive/90 astw:focus-visible:ring-destructive/20 astw:dark:focus-visible:ring-destructive/40 astw:dark:bg-destructive/60",
146
+ destructive: "astw:bg-danger-solid astw:text-danger-contrast astw:shadow-xs astw:hover:bg-danger-solid-hover astw:focus-visible:ring-danger-solid/20 astw:dark:focus-visible:ring-danger-solid/40",
147
147
  outline: "astw:border astw:border-border astw:bg-transparent astw:hover:bg-accent astw:hover:text-accent-foreground astw:dark:bg-input/30 astw:dark:border-input astw:dark:hover:bg-input/50",
148
148
  secondary: "astw:bg-secondary astw:text-secondary-foreground astw:hover:bg-secondary/80",
149
149
  ghost: "astw:hover:bg-accent astw:hover:text-accent-foreground astw:dark:hover:bg-accent/50",
@@ -367,7 +367,7 @@ var we = Symbol("localized-label"), Te = () => {
367
367
  className: "astw:p-6",
368
368
  children: /* @__PURE__ */ P("div", {
369
369
  className: "astw:flex astw:items-start astw:gap-4",
370
- children: [/* @__PURE__ */ N(ee, { className: "astw:h-5 astw:w-5 astw:text-destructive astw:flex-shrink-0 astw:mt-0.5" }), /* @__PURE__ */ P("div", { children: [
370
+ children: [/* @__PURE__ */ N(ee, { className: "astw:h-5 astw:w-5 astw:text-danger-text astw:flex-shrink-0 astw:mt-0.5" }), /* @__PURE__ */ P("div", { children: [
371
371
  /* @__PURE__ */ N("h1", {
372
372
  className: "astw:font-semibold astw:text-lg",
373
373
  children: t("error404Title")
@@ -392,7 +392,7 @@ var we = Symbol("localized-label"), Te = () => {
392
392
  className: "astw:p-6",
393
393
  children: /* @__PURE__ */ P("div", {
394
394
  className: "astw:flex astw:items-start astw:gap-4",
395
- children: [/* @__PURE__ */ N(ee, { className: "astw:h-5 astw:w-5 astw:text-destructive astw:flex-shrink-0 astw:mt-0.5" }), /* @__PURE__ */ P("div", { children: [
395
+ children: [/* @__PURE__ */ N(ee, { className: "astw:h-5 astw:w-5 astw:text-danger-text astw:flex-shrink-0 astw:mt-0.5" }), /* @__PURE__ */ P("div", { children: [
396
396
  /* @__PURE__ */ N("h1", {
397
397
  className: "astw:font-semibold astw:text-lg",
398
398
  children: t("errorTitle")
@@ -487,7 +487,7 @@ function Ke(t) {
487
487
  }
488
488
  var qe = {
489
489
  name: "@tailor-platform/app-shell",
490
- version: "1.17.0",
490
+ version: "1.18.0",
491
491
  description: "An opinionated React application framework for building ERP applications on Tailor Platform",
492
492
  keywords: [
493
493
  "app-shell",
@@ -566,7 +566,7 @@ var qe = {
566
566
  "@vitejs/plugin-react": "catalog:",
567
567
  "@vitest/coverage-v8": "4.1.11",
568
568
  "happy-dom": "20.14.5",
569
- postcss: "8.5.28",
569
+ postcss: "8.5.30",
570
570
  react: "catalog:",
571
571
  "react-dom": "catalog:",
572
572
  "react-hook-form": "7.71.2",
@@ -1387,7 +1387,7 @@ yn.displayName = "Dialog.Close";
1387
1387
  function bn({ className: e, ...t }) {
1388
1388
  return /* @__PURE__ */ N(F.Backdrop, {
1389
1389
  "data-slot": "dialog-overlay",
1390
- className: I("astw:data-open:animate-in astw:data-ending-style:animate-out astw:data-ending-style:fade-out-0 astw:data-open:fade-in-0 astw:fill-mode-forwards astw:fixed astw:inset-0 astw:z-(--z-overlay) astw:bg-black/50", e),
1390
+ className: I("astw:data-open:animate-in astw:data-ending-style:animate-out astw:data-ending-style:fade-out-0 astw:data-open:fade-in-0 astw:fill-mode-forwards astw:fixed astw:inset-0 astw:z-(--z-overlay) astw:bg-backdrop", e),
1391
1391
  ...t
1392
1392
  });
1393
1393
  }
@@ -1467,7 +1467,7 @@ function kn({ className: e, type: t, ref: n, ...r }) {
1467
1467
  ref: L(i, n),
1468
1468
  type: t,
1469
1469
  "data-slot": "input",
1470
- className: I(Dn, "astw:file:text-foreground astw:file:inline-flex astw:file:h-7 astw:file:border-0 astw:file:bg-transparent astw:file:text-sm astw:file:font-medium", "astw:aria-invalid:ring-destructive/20 astw:dark:aria-invalid:ring-destructive/40 astw:aria-invalid:border-destructive", e),
1470
+ className: I(Dn, "astw:file:text-foreground astw:file:inline-flex astw:file:h-7 astw:file:border-0 astw:file:bg-transparent astw:file:text-sm astw:file:font-medium", "astw:aria-invalid:ring-danger-solid/20 astw:dark:aria-invalid:ring-danger-solid/40 astw:aria-invalid:border-danger-solid", e),
1471
1471
  ...r
1472
1472
  });
1473
1473
  }
@@ -2097,9 +2097,9 @@ var $ = (e) => {
2097
2097
  return console.error(e), /* @__PURE__ */ N("div", {
2098
2098
  className: "astw:flex astw:min-h-screen astw:items-center astw:justify-center astw:bg-background astw:p-4",
2099
2099
  children: /* @__PURE__ */ P("div", {
2100
- className: "astw:max-w-md astw:rounded-lg astw:border astw:border-destructive/50 astw:bg-destructive/10 astw:p-6 astw:text-center",
2100
+ className: "astw:max-w-md astw:rounded-lg astw:border astw:border-danger-border astw:bg-danger-surface astw:p-6 astw:text-center",
2101
2101
  children: [/* @__PURE__ */ N("h1", {
2102
- className: "astw:mb-2 astw:text-lg astw:font-semibold astw:text-destructive",
2102
+ className: "astw:mb-2 astw:text-lg astw:font-semibold astw:text-danger-text",
2103
2103
  children: "Configuration Error"
2104
2104
  }), /* @__PURE__ */ N("p", {
2105
2105
  className: "astw:text-sm astw:text-muted-foreground",
@@ -88,6 +88,8 @@ function contrast(a: Rgba, b: Rgba): number {
88
88
  }
89
89
 
90
90
  const MIN_TEXT = 4.5;
91
+ /** WCAG 1.4.11 non-text contrast, for the invalid-input border. */
92
+ const MIN_NON_TEXT = 3;
91
93
  /** Known and accepted: subtle hover text is below AA for some roles. A floor, not a pass. */
92
94
  const MIN_HOVER_TEXT = 4.2;
93
95
  const modes: Mode[] = ["light", "dark"];
@@ -151,4 +153,75 @@ describe.each(modes)("semantic colour contrast (%s)", (mode) => {
151
153
  ).toBeGreaterThanOrEqual(MIN_TEXT);
152
154
  });
153
155
  });
156
+
157
+ describe("destructive aliases", () => {
158
+ it.each([
159
+ ["--destructive", "--danger-solid"],
160
+ ["--destructive-foreground", "--danger-contrast"],
161
+ ])("%s resolves to %s", (alias, role) => {
162
+ expect(vars.get(alias)).toBe(`var(${role})`);
163
+ expect(color(alias)).toEqual(color(role));
164
+ });
165
+
166
+ it.each(pages)("danger solid meets 3:1 against %s (invalid-input border)", (page) => {
167
+ expect(contrast(color("--danger-solid"), color(page))).toBeGreaterThanOrEqual(MIN_NON_TEXT);
168
+ });
169
+ });
170
+ });
171
+
172
+ describe("default palette neutral tokens", () => {
173
+ // Pinned when the BRAND and SYSTEM tokens moved from literals onto the gray,
174
+ // white and alpha scales. That move was meant to keep every value, so a step
175
+ // change that alters one of these colours fails here.
176
+ const expected: Record<Mode, Record<string, string>> = {
177
+ light: {
178
+ "--foreground": "#0a0a0a",
179
+ "--muted-foreground": "#737373",
180
+ "--primary": "#171717",
181
+ "--primary-foreground": "#fafafa",
182
+ "--secondary": "#f5f5f5",
183
+ "--secondary-foreground": "#171717",
184
+ "--accent-foreground": "#0a0a0a",
185
+ "--background": "#fafafa",
186
+ "--card": "#ffffff",
187
+ "--card-foreground": "#0a0a0a",
188
+ "--popover": "#ffffff",
189
+ "--popover-foreground": "#0a0a0a",
190
+ "--muted": "#f5f5f5",
191
+ "--border": "#e5e5e5",
192
+ "--input": "#e5e5e5",
193
+ "--sidebar": "#fafafa",
194
+ "--sidebar-foreground": "#0a0a0a",
195
+ "--sidebar-border": "#e5e5e5",
196
+ "--backdrop": "rgba(0, 0, 0, 0.5)",
197
+ },
198
+ dark: {
199
+ "--foreground": "#fafafa",
200
+ "--muted-foreground": "#a3a3a3",
201
+ "--primary": "#e5e5e5",
202
+ "--primary-foreground": "#171717",
203
+ "--secondary": "#262626",
204
+ "--secondary-foreground": "#fafafa",
205
+ "--accent-foreground": "#fafafa",
206
+ "--background": "#0a0a0a",
207
+ "--card": "#171717",
208
+ "--card-foreground": "#fafafa",
209
+ "--popover": "#262626",
210
+ "--popover-foreground": "#fafafa",
211
+ "--muted": "#262626",
212
+ "--border": "rgba(255, 255, 255, 0.1)",
213
+ "--input": "rgba(255, 255, 255, 0.15)",
214
+ "--sidebar": "#0a0a0a",
215
+ "--sidebar-foreground": "#fafafa",
216
+ "--sidebar-border": "rgba(255, 255, 255, 0.1)",
217
+ "--backdrop": "rgba(0, 0, 0, 0.5)",
218
+ },
219
+ };
220
+
221
+ describe.each(["light", "dark"] as const)("%s mode", (mode) => {
222
+ const vars = variablesFor(mode);
223
+ it.each(Object.entries(expected[mode]))("%s resolves to %s", (token, value) => {
224
+ expect(parseColor(`var(${token})`, vars)).toEqual(parseColor(value, vars));
225
+ });
226
+ });
154
227
  });
@@ -46,37 +46,17 @@ declare namespace Root {
46
46
  }
47
47
 
48
48
 
49
- declare namespace Header {
50
- var displayName: string;
51
- }
52
-
53
-
54
- declare namespace Body {
55
- var displayName: string;
56
- }
57
-
58
-
59
- declare namespace Footer {
60
- var displayName: string;
61
- }
62
-
63
-
64
- declare namespace Row {
65
- var displayName: string;
66
- }
67
-
68
-
69
- declare namespace Head {
49
+ declare namespace Title {
70
50
  var displayName: string;
71
51
  }
72
52
 
73
53
 
74
- declare namespace Cell {
54
+ declare namespace Description {
75
55
  var displayName: string;
76
56
  }
77
57
 
78
58
 
79
- declare namespace Caption {
59
+ declare namespace Provider {
80
60
  var displayName: string;
81
61
  }
82
62
 
@@ -91,12 +71,12 @@ declare namespace Header {
91
71
  }
92
72
 
93
73
 
94
- declare namespace Content {
74
+ declare namespace ClearAll {
95
75
  var displayName: string;
96
76
  }
97
77
 
98
78
 
99
- declare namespace Root {
79
+ declare namespace Sections {
100
80
  var displayName: string;
101
81
  }
102
82
 
@@ -106,12 +86,12 @@ declare namespace Trigger {
106
86
  }
107
87
 
108
88
 
109
- declare namespace Close {
89
+ declare namespace Settings {
110
90
  var displayName: string;
111
91
  }
112
92
 
113
93
 
114
- declare namespace Content {
94
+ declare namespace Root {
115
95
  var displayName: string;
116
96
  }
117
97
 
@@ -121,17 +101,7 @@ declare namespace Header {
121
101
  }
122
102
 
123
103
 
124
- declare namespace Footer {
125
- var displayName: string;
126
- }
127
-
128
-
129
- declare namespace Title {
130
- var displayName: string;
131
- }
132
-
133
-
134
- declare namespace Description {
104
+ declare namespace Content {
135
105
  var displayName: string;
136
106
  }
137
107
 
@@ -141,122 +111,117 @@ declare namespace Root {
141
111
  }
142
112
 
143
113
 
144
- declare namespace Legend {
145
- var displayName: string;
146
- }
147
-
148
-
149
- declare namespace ComboboxRoot {
114
+ declare namespace Header {
150
115
  var displayName: string;
151
116
  }
152
117
 
153
118
 
154
- declare namespace ComboboxInput {
119
+ declare namespace Body {
155
120
  var displayName: string;
156
121
  }
157
122
 
158
123
 
159
- declare namespace ComboboxTrigger {
124
+ declare namespace Footer {
160
125
  var displayName: string;
161
126
  }
162
127
 
163
128
 
164
- declare namespace ComboboxInputGroup {
129
+ declare namespace Row {
165
130
  var displayName: string;
166
131
  }
167
132
 
168
133
 
169
- declare namespace ComboboxContent {
134
+ declare namespace Head {
170
135
  var displayName: string;
171
136
  }
172
137
 
173
138
 
174
- declare namespace ComboboxList {
139
+ declare namespace Cell {
175
140
  var displayName: string;
176
141
  }
177
142
 
178
143
 
179
- declare namespace ComboboxItem {
144
+ declare namespace Caption {
180
145
  var displayName: string;
181
146
  }
182
147
 
183
148
 
184
- declare namespace ComboboxEmpty {
149
+ declare namespace Root {
185
150
  var displayName: string;
186
151
  }
187
152
 
188
153
 
189
- declare namespace ComboboxGroup {
154
+ declare namespace Trigger {
190
155
  var displayName: string;
191
156
  }
192
157
 
193
158
 
194
- declare namespace ComboboxGroupLabel {
159
+ declare namespace Close {
195
160
  var displayName: string;
196
161
  }
197
162
 
198
163
 
199
- declare namespace ComboboxClear {
164
+ declare namespace Content {
200
165
  var displayName: string;
201
166
  }
202
167
 
203
168
 
204
- declare namespace ComboboxChips {
169
+ declare namespace Header {
205
170
  var displayName: string;
206
171
  }
207
172
 
208
173
 
209
- declare namespace ComboboxChip {
174
+ declare namespace Footer {
210
175
  var displayName: string;
211
176
  }
212
177
 
213
178
 
214
- declare namespace ComboboxChipRemove {
179
+ declare namespace Title {
215
180
  var displayName: string;
216
181
  }
217
182
 
218
183
 
219
- declare namespace ComboboxValue {
184
+ declare namespace Description {
220
185
  var displayName: string;
221
186
  }
222
187
 
223
188
 
224
- declare namespace ComboboxStatus {
189
+ declare namespace Root {
225
190
  var displayName: string;
226
191
  }
227
192
 
228
193
 
229
- declare namespace ComboboxCollection {
194
+ declare namespace Label {
230
195
  var displayName: string;
231
196
  }
232
197
 
233
198
 
234
- declare namespace Root {
199
+ declare namespace Control {
235
200
  var displayName: string;
236
201
  }
237
202
 
238
203
 
239
- declare namespace Label {
204
+ declare namespace Description {
240
205
  var displayName: string;
241
206
  }
242
207
 
243
208
 
244
- declare namespace Control {
209
+ declare namespace Error {
245
210
  var displayName: string;
246
211
  }
247
212
 
248
213
 
249
- declare namespace Description {
214
+ declare namespace Validity {
250
215
  var displayName: string;
251
216
  }
252
217
 
253
218
 
254
- declare namespace Error {
219
+ declare namespace Root {
255
220
  var displayName: string;
256
221
  }
257
222
 
258
223
 
259
- declare namespace Validity {
224
+ declare namespace Legend {
260
225
  var displayName: string;
261
226
  }
262
227
 
@@ -341,57 +306,57 @@ declare namespace Root {
341
306
  }
342
307
 
343
308
 
344
- declare namespace Row {
309
+ declare namespace Trigger {
345
310
  var displayName: string;
346
311
  }
347
312
 
348
313
 
349
- declare namespace Group {
314
+ declare namespace Close {
350
315
  var displayName: string;
351
316
  }
352
317
 
353
318
 
354
- declare namespace Separator {
319
+ declare namespace Content {
355
320
  var displayName: string;
356
321
  }
357
322
 
358
323
 
359
- declare namespace Root {
324
+ declare namespace Header {
360
325
  var displayName: string;
361
326
  }
362
327
 
363
328
 
364
- declare namespace Trigger {
329
+ declare namespace Footer {
365
330
  var displayName: string;
366
331
  }
367
332
 
368
333
 
369
- declare namespace Close {
334
+ declare namespace Title {
370
335
  var displayName: string;
371
336
  }
372
337
 
373
338
 
374
- declare namespace Content {
339
+ declare namespace Description {
375
340
  var displayName: string;
376
341
  }
377
342
 
378
343
 
379
- declare namespace Header {
344
+ declare namespace Root {
380
345
  var displayName: string;
381
346
  }
382
347
 
383
348
 
384
- declare namespace Footer {
349
+ declare namespace List {
385
350
  var displayName: string;
386
351
  }
387
352
 
388
353
 
389
- declare namespace Title {
354
+ declare namespace Tab {
390
355
  var displayName: string;
391
356
  }
392
357
 
393
358
 
394
- declare namespace Description {
359
+ declare namespace Panel {
395
360
  var displayName: string;
396
361
  }
397
362
 
@@ -401,42 +366,57 @@ declare namespace Root {
401
366
  }
402
367
 
403
368
 
404
- declare namespace List {
369
+ declare namespace Row {
405
370
  var displayName: string;
406
371
  }
407
372
 
408
373
 
409
- declare namespace Tab {
374
+ declare namespace Group {
410
375
  var displayName: string;
411
376
  }
412
377
 
413
378
 
414
- declare namespace Panel {
379
+ declare namespace Separator {
415
380
  var displayName: string;
416
381
  }
417
382
 
418
383
 
419
- declare namespace Root {
384
+ declare namespace SelectRoot {
420
385
  var displayName: string;
421
386
  }
422
387
 
423
388
 
424
- declare namespace Title {
389
+ declare namespace SelectTrigger {
425
390
  var displayName: string;
426
391
  }
427
392
 
428
393
 
429
- declare namespace Description {
394
+ declare namespace SelectValue {
430
395
  var displayName: string;
431
396
  }
432
397
 
433
398
 
434
- declare namespace Trigger {
399
+ declare namespace SelectContent {
435
400
  var displayName: string;
436
401
  }
437
402
 
438
403
 
439
- declare namespace Settings {
404
+ declare namespace SelectItem {
405
+ var displayName: string;
406
+ }
407
+
408
+
409
+ declare namespace SelectGroup {
410
+ var displayName: string;
411
+ }
412
+
413
+
414
+ declare namespace SelectGroupLabel {
415
+ var displayName: string;
416
+ }
417
+
418
+
419
+ declare namespace SelectSeparator {
440
420
  var displayName: string;
441
421
  }
442
422
 
@@ -451,87 +431,97 @@ declare namespace Root {
451
431
  }
452
432
 
453
433
 
454
- declare namespace Header {
434
+ declare namespace Trigger {
455
435
  var displayName: string;
456
436
  }
457
437
 
458
438
 
459
- declare namespace ClearAll {
439
+ declare namespace Content {
460
440
  var displayName: string;
461
441
  }
462
442
 
463
443
 
464
- declare namespace Sections {
444
+ declare namespace ComboboxRoot {
465
445
  var displayName: string;
466
446
  }
467
447
 
468
448
 
469
- declare namespace Provider {
449
+ declare namespace ComboboxInput {
470
450
  var displayName: string;
471
451
  }
472
452
 
473
453
 
474
- declare namespace Root {
454
+ declare namespace ComboboxTrigger {
475
455
  var displayName: string;
476
456
  }
477
457
 
478
458
 
479
- declare namespace Trigger {
459
+ declare namespace ComboboxInputGroup {
480
460
  var displayName: string;
481
461
  }
482
462
 
483
463
 
484
- declare namespace Content {
464
+ declare namespace ComboboxContent {
485
465
  var displayName: string;
486
466
  }
487
467
 
488
468
 
489
- declare namespace SelectRoot {
469
+ declare namespace ComboboxList {
490
470
  var displayName: string;
491
471
  }
492
472
 
493
473
 
494
- declare namespace SelectTrigger {
474
+ declare namespace ComboboxItem {
495
475
  var displayName: string;
496
476
  }
497
477
 
498
478
 
499
- declare namespace SelectValue {
479
+ declare namespace ComboboxEmpty {
500
480
  var displayName: string;
501
481
  }
502
482
 
503
483
 
504
- declare namespace SelectContent {
484
+ declare namespace ComboboxGroup {
505
485
  var displayName: string;
506
486
  }
507
487
 
508
488
 
509
- declare namespace SelectItem {
489
+ declare namespace ComboboxGroupLabel {
510
490
  var displayName: string;
511
491
  }
512
492
 
513
493
 
514
- declare namespace SelectGroup {
494
+ declare namespace ComboboxClear {
515
495
  var displayName: string;
516
496
  }
517
497
 
518
498
 
519
- declare namespace SelectGroupLabel {
499
+ declare namespace ComboboxChips {
520
500
  var displayName: string;
521
501
  }
522
502
 
523
503
 
524
- declare namespace SelectSeparator {
504
+ declare namespace ComboboxChip {
525
505
  var displayName: string;
526
506
  }
527
507
 
528
508
 
529
- declare namespace AutocompleteStandalone {
509
+ declare namespace ComboboxChipRemove {
530
510
  var displayName: string;
531
511
  }
532
512
 
533
513
 
534
- declare namespace AutocompleteAsyncStandalone {
514
+ declare namespace ComboboxValue {
515
+ var displayName: string;
516
+ }
517
+
518
+
519
+ declare namespace ComboboxStatus {
520
+ var displayName: string;
521
+ }
522
+
523
+
524
+ declare namespace ComboboxCollection {
535
525
  var displayName: string;
536
526
  }
537
527
 
@@ -606,6 +596,16 @@ declare namespace AutocompleteStatus {
606
596
  }
607
597
 
608
598
 
599
+ declare namespace AutocompleteStandalone {
600
+ var displayName: string;
601
+ }
602
+
603
+
604
+ declare namespace AutocompleteAsyncStandalone {
605
+ var displayName: string;
606
+ }
607
+
608
+
609
609
  declare namespace DataTableRoot {
610
610
  var displayName: string;
611
611
  }