@joanroucoux/cairn-ui 0.8.2 → 0.9.1

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 (124) hide show
  1. package/CHANGELOG.md +114 -0
  2. package/fesm2022/joanroucoux-cairn-ui-action-bar.mjs +57 -53
  3. package/fesm2022/joanroucoux-cairn-ui-action-bar.mjs.map +1 -1
  4. package/fesm2022/joanroucoux-cairn-ui-alert.mjs +155 -47
  5. package/fesm2022/joanroucoux-cairn-ui-alert.mjs.map +1 -1
  6. package/fesm2022/joanroucoux-cairn-ui-amount.mjs +220 -110
  7. package/fesm2022/joanroucoux-cairn-ui-amount.mjs.map +1 -1
  8. package/fesm2022/joanroucoux-cairn-ui-async.mjs +392 -216
  9. package/fesm2022/joanroucoux-cairn-ui-async.mjs.map +1 -1
  10. package/fesm2022/joanroucoux-cairn-ui-avatar.mjs +145 -68
  11. package/fesm2022/joanroucoux-cairn-ui-avatar.mjs.map +1 -1
  12. package/fesm2022/joanroucoux-cairn-ui-back-link.mjs +87 -47
  13. package/fesm2022/joanroucoux-cairn-ui-back-link.mjs.map +1 -1
  14. package/fesm2022/joanroucoux-cairn-ui-badge.mjs +83 -43
  15. package/fesm2022/joanroucoux-cairn-ui-badge.mjs.map +1 -1
  16. package/fesm2022/joanroucoux-cairn-ui-button.mjs +184 -104
  17. package/fesm2022/joanroucoux-cairn-ui-button.mjs.map +1 -1
  18. package/fesm2022/joanroucoux-cairn-ui-card.mjs +232 -137
  19. package/fesm2022/joanroucoux-cairn-ui-card.mjs.map +1 -1
  20. package/fesm2022/joanroucoux-cairn-ui-choice-chips.mjs +298 -102
  21. package/fesm2022/joanroucoux-cairn-ui-choice-chips.mjs.map +1 -1
  22. package/fesm2022/joanroucoux-cairn-ui-control.mjs +4 -17
  23. package/fesm2022/joanroucoux-cairn-ui-control.mjs.map +1 -1
  24. package/fesm2022/joanroucoux-cairn-ui-delta.mjs +150 -83
  25. package/fesm2022/joanroucoux-cairn-ui-delta.mjs.map +1 -1
  26. package/fesm2022/joanroucoux-cairn-ui-dialog.mjs +508 -471
  27. package/fesm2022/joanroucoux-cairn-ui-dialog.mjs.map +1 -1
  28. package/fesm2022/joanroucoux-cairn-ui-donut.mjs +255 -157
  29. package/fesm2022/joanroucoux-cairn-ui-donut.mjs.map +1 -1
  30. package/fesm2022/joanroucoux-cairn-ui-drawer.mjs +303 -0
  31. package/fesm2022/joanroucoux-cairn-ui-drawer.mjs.map +1 -0
  32. package/fesm2022/joanroucoux-cairn-ui-empty.mjs +76 -35
  33. package/fesm2022/joanroucoux-cairn-ui-empty.mjs.map +1 -1
  34. package/fesm2022/joanroucoux-cairn-ui-external-link.mjs +40 -31
  35. package/fesm2022/joanroucoux-cairn-ui-external-link.mjs.map +1 -1
  36. package/fesm2022/joanroucoux-cairn-ui-fact.mjs +188 -79
  37. package/fesm2022/joanroucoux-cairn-ui-fact.mjs.map +1 -1
  38. package/fesm2022/joanroucoux-cairn-ui-field.mjs +309 -173
  39. package/fesm2022/joanroucoux-cairn-ui-field.mjs.map +1 -1
  40. package/fesm2022/joanroucoux-cairn-ui-filter-chips.mjs +165 -87
  41. package/fesm2022/joanroucoux-cairn-ui-filter-chips.mjs.map +1 -1
  42. package/fesm2022/joanroucoux-cairn-ui-group-header.mjs +269 -0
  43. package/fesm2022/joanroucoux-cairn-ui-group-header.mjs.map +1 -0
  44. package/fesm2022/joanroucoux-cairn-ui-input.mjs +205 -85
  45. package/fesm2022/joanroucoux-cairn-ui-input.mjs.map +1 -1
  46. package/fesm2022/joanroucoux-cairn-ui-line-chart.mjs +838 -512
  47. package/fesm2022/joanroucoux-cairn-ui-line-chart.mjs.map +1 -1
  48. package/fesm2022/joanroucoux-cairn-ui-menu.mjs +401 -225
  49. package/fesm2022/joanroucoux-cairn-ui-menu.mjs.map +1 -1
  50. package/fesm2022/joanroucoux-cairn-ui-meter.mjs +143 -57
  51. package/fesm2022/joanroucoux-cairn-ui-meter.mjs.map +1 -1
  52. package/fesm2022/joanroucoux-cairn-ui-motion.mjs +367 -399
  53. package/fesm2022/joanroucoux-cairn-ui-motion.mjs.map +1 -1
  54. package/fesm2022/joanroucoux-cairn-ui-nav-item.mjs +73 -44
  55. package/fesm2022/joanroucoux-cairn-ui-nav-item.mjs.map +1 -1
  56. package/fesm2022/joanroucoux-cairn-ui-result-group.mjs +191 -0
  57. package/fesm2022/joanroucoux-cairn-ui-result-group.mjs.map +1 -0
  58. package/fesm2022/joanroucoux-cairn-ui-row.mjs +408 -146
  59. package/fesm2022/joanroucoux-cairn-ui-row.mjs.map +1 -1
  60. package/fesm2022/joanroucoux-cairn-ui-segmented.mjs +183 -81
  61. package/fesm2022/joanroucoux-cairn-ui-segmented.mjs.map +1 -1
  62. package/fesm2022/joanroucoux-cairn-ui-select-pill.mjs +270 -0
  63. package/fesm2022/joanroucoux-cairn-ui-select-pill.mjs.map +1 -0
  64. package/fesm2022/joanroucoux-cairn-ui-select.mjs +121 -67
  65. package/fesm2022/joanroucoux-cairn-ui-select.mjs.map +1 -1
  66. package/fesm2022/joanroucoux-cairn-ui-skeleton.mjs +129 -51
  67. package/fesm2022/joanroucoux-cairn-ui-skeleton.mjs.map +1 -1
  68. package/fesm2022/joanroucoux-cairn-ui-stale-link.mjs +80 -39
  69. package/fesm2022/joanroucoux-cairn-ui-stale-link.mjs.map +1 -1
  70. package/fesm2022/joanroucoux-cairn-ui-stat.mjs +85 -55
  71. package/fesm2022/joanroucoux-cairn-ui-stat.mjs.map +1 -1
  72. package/fesm2022/joanroucoux-cairn-ui-switch.mjs +48 -35
  73. package/fesm2022/joanroucoux-cairn-ui-switch.mjs.map +1 -1
  74. package/fesm2022/joanroucoux-cairn-ui-tab-bar.mjs +113 -69
  75. package/fesm2022/joanroucoux-cairn-ui-tab-bar.mjs.map +1 -1
  76. package/fesm2022/joanroucoux-cairn-ui-table.mjs +1036 -310
  77. package/fesm2022/joanroucoux-cairn-ui-table.mjs.map +1 -1
  78. package/fesm2022/joanroucoux-cairn-ui-toast.mjs +240 -127
  79. package/fesm2022/joanroucoux-cairn-ui-toast.mjs.map +1 -1
  80. package/fesm2022/joanroucoux-cairn-ui.mjs +0 -4
  81. package/package.json +17 -1
  82. package/styles/motion.css +1 -13
  83. package/styles/tokens.css +35 -64
  84. package/types/joanroucoux-cairn-ui-action-bar.d.ts +9 -14
  85. package/types/joanroucoux-cairn-ui-alert.d.ts +29 -15
  86. package/types/joanroucoux-cairn-ui-amount.d.ts +64 -32
  87. package/types/joanroucoux-cairn-ui-async.d.ts +85 -38
  88. package/types/joanroucoux-cairn-ui-avatar.d.ts +34 -22
  89. package/types/joanroucoux-cairn-ui-back-link.d.ts +20 -15
  90. package/types/joanroucoux-cairn-ui-badge.d.ts +22 -14
  91. package/types/joanroucoux-cairn-ui-button.d.ts +36 -18
  92. package/types/joanroucoux-cairn-ui-card.d.ts +48 -23
  93. package/types/joanroucoux-cairn-ui-choice-chips.d.ts +91 -35
  94. package/types/joanroucoux-cairn-ui-control.d.ts +9 -18
  95. package/types/joanroucoux-cairn-ui-delta.d.ts +46 -24
  96. package/types/joanroucoux-cairn-ui-dialog.d.ts +124 -57
  97. package/types/joanroucoux-cairn-ui-donut.d.ts +83 -46
  98. package/types/joanroucoux-cairn-ui-drawer.d.ts +73 -0
  99. package/types/joanroucoux-cairn-ui-empty.d.ts +20 -13
  100. package/types/joanroucoux-cairn-ui-external-link.d.ts +6 -10
  101. package/types/joanroucoux-cairn-ui-fact.d.ts +49 -25
  102. package/types/joanroucoux-cairn-ui-field.d.ts +72 -49
  103. package/types/joanroucoux-cairn-ui-filter-chips.d.ts +35 -20
  104. package/types/joanroucoux-cairn-ui-group-header.d.ts +58 -0
  105. package/types/joanroucoux-cairn-ui-input.d.ts +59 -37
  106. package/types/joanroucoux-cairn-ui-line-chart.d.ts +199 -89
  107. package/types/joanroucoux-cairn-ui-menu.d.ts +81 -44
  108. package/types/joanroucoux-cairn-ui-meter.d.ts +44 -22
  109. package/types/joanroucoux-cairn-ui-motion.d.ts +61 -75
  110. package/types/joanroucoux-cairn-ui-nav-item.d.ts +15 -13
  111. package/types/joanroucoux-cairn-ui-result-group.d.ts +52 -0
  112. package/types/joanroucoux-cairn-ui-row.d.ts +92 -37
  113. package/types/joanroucoux-cairn-ui-segmented.d.ts +51 -27
  114. package/types/joanroucoux-cairn-ui-select-pill.d.ts +59 -0
  115. package/types/joanroucoux-cairn-ui-select.d.ts +28 -18
  116. package/types/joanroucoux-cairn-ui-skeleton.d.ts +35 -18
  117. package/types/joanroucoux-cairn-ui-stale-link.d.ts +23 -16
  118. package/types/joanroucoux-cairn-ui-stat.d.ts +26 -21
  119. package/types/joanroucoux-cairn-ui-switch.d.ts +7 -11
  120. package/types/joanroucoux-cairn-ui-tab-bar.d.ts +20 -17
  121. package/types/joanroucoux-cairn-ui-table.d.ts +251 -89
  122. package/types/joanroucoux-cairn-ui-toast.d.ts +46 -36
  123. package/types/joanroucoux-cairn-ui.d.ts +1 -2
  124. package/fesm2022/joanroucoux-cairn-ui.mjs.map +0 -1
@@ -1,321 +1,1047 @@
1
- import * as i0 from '@angular/core';
2
- import { input, booleanAttribute, computed, Directive, Component } from '@angular/core';
3
- import { holdTransitionsUntilRendered } from '@joanroucoux/cairn-ui/motion';
4
-
5
- /** Breakpoints a secondary column can be held back until. */
6
- const CELL_BREAKPOINTS = ['md', 'lg'];
7
- /** Body row heights. */
8
- const TABLE_ROWS = ['48', '52', '60'];
1
+ import { NgTemplateOutlet } from "@angular/common";
2
+ import * as i0 from "@angular/core";
3
+ import { Component, Directive, booleanAttribute, computed, inject, input, model } from "@angular/core";
4
+ import { holdTransitionsUntilRendered } from "@joanroucoux/cairn-ui/motion";
5
+ const CELL_BREAKPOINTS = ["md", "lg"];
6
+ const TABLE_ROWS = [
7
+ "48",
8
+ "52",
9
+ "60"
10
+ ];
9
11
  const ROW_CLASSES = {
10
- '48': '[--table-row:3rem]',
11
- '52': '[--table-row:3.25rem]',
12
- '60': '[--table-row:3.75rem]',
12
+ "48": "[--table-row:3rem]",
13
+ "52": "[--table-row:3.25rem]",
14
+ "60": "[--table-row:3.75rem]"
13
15
  };
14
16
  const FROM_CLASSES = {
15
- md: 'hidden md:table-cell',
16
- lg: 'hidden lg:table-cell',
17
+ md: "hidden md:table-cell",
18
+ lg: "hidden lg:table-cell"
17
19
  };
18
- const TH_CLASSES = 'h-[calc(var(--table-head)+var(--table-head-gap))] border-b-(length:--table-head-gap) border-transparent px-2 align-middle text-caption font-medium text-(--subtle-foreground) shadow-(--table-rule)';
19
- const TD_CLASSES = 'h-(--table-row) px-2 align-middle text-body';
20
- const NUMERIC_CLASSES = 'text-right tabular-nums whitespace-nowrap';
21
- const TEXTUAL_CLASSES = 'text-left';
22
- const PRIMARY_CLASSES = 'w-full max-w-0';
23
- /**
24
- * Styled native table. The rows and cells stay plain <tr> and <td>. `row` sets the height of every
25
- * body row, `rule` draws or drops the hairline under the header, `spaced` leaves 4px between the
26
- * header and the first row.
27
- *
28
- * @example
29
- * <table uiTable row="60" [rule]="false">
30
- */
31
- class UiTable {
32
- row = input('48', /* @ts-ignore */
33
- ...(ngDevMode ? [{ debugName: "row" }] : /* istanbul ignore next */ []));
34
- rule = input(true, { ...(ngDevMode ? { debugName: "rule" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
35
- spaced = input(false, { ...(ngDevMode ? { debugName: "spaced" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
36
- classes = computed(() => [
37
- 'w-full border-separate border-spacing-0',
38
- ROW_CLASSES[this.row()],
39
- this.rule() ? '[--table-rule:inset_0_-1px_0_var(--hairline)]' : '[--table-rule:none]',
40
- this.spaced() ? '[--table-head-gap:0.25rem]' : '[--table-head-gap:0px]',
41
- ].join(' '), /* @ts-ignore */
42
- ...(ngDevMode ? [{ debugName: "classes" }] : /* istanbul ignore next */ []));
43
- constructor() {
44
- holdTransitionsUntilRendered();
45
- }
46
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: UiTable, deps: [], target: i0.ɵɵFactoryTarget.Directive });
47
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "22.1.7", type: UiTable, isStandalone: true, selector: "table[uiTable]", inputs: { row: { classPropertyName: "row", publicName: "row", isSignal: true, isRequired: false, transformFunction: null }, rule: { classPropertyName: "rule", publicName: "rule", isSignal: true, isRequired: false, transformFunction: null }, spaced: { classPropertyName: "spaced", publicName: "spaced", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "classes()" } }, ngImport: i0 });
48
- }
49
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: UiTable, decorators: [{
50
- type: Directive,
51
- args: [{
52
- selector: 'table[uiTable]',
53
- host: {
54
- '[class]': 'classes()',
55
- },
56
- }]
57
- }], ctorParameters: () => [], propDecorators: { row: [{ type: i0.Input, args: [{ isSignal: true, alias: "row", required: false }] }], rule: [{ type: i0.Input, args: [{ isSignal: true, alias: "rule", required: false }] }], spaced: [{ type: i0.Input, args: [{ isSignal: true, alias: "spaced", required: false }] }] } });
58
- /** Body of one group of rows: leaves a 4px tail after its last row. */
59
- class UiGroup {
60
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: UiGroup, deps: [], target: i0.ɵɵFactoryTarget.Directive });
61
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.1.7", type: UiGroup, isStandalone: true, selector: "tbody[uiGroup]", host: { classAttribute: "after:table-row after:h-1 after:content-[\"\"]" }, ngImport: i0 });
62
- }
63
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: UiGroup, decorators: [{
64
- type: Directive,
65
- args: [{
66
- selector: 'tbody[uiGroup]',
67
- host: { class: 'after:table-row after:h-1 after:content-[""]' },
68
- }]
69
- }] });
70
- /**
71
- * Body or group row. An ordinary row glows on hover and takes the soft fill when `selected`; an
72
- * `interactive` row (one that opens something) also presses to the soft fill. A row with no action keeps a
73
- * plain name: `<td uiTd primary class="truncate font-medium">`.
74
- * `group` marks the row that holds a group band: it carries no hover state.
75
- *
76
- * @example
77
- * <tr uiTr [selected]="open">...
78
- * <tr uiTr group><td ui-group-cell name="Brokerage">...
79
- */
80
- class UiTr {
81
- group = input(false, { ...(ngDevMode ? { debugName: "group" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
82
- selected = input(false, { ...(ngDevMode ? { debugName: "selected" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
83
- interactive = input(false, { ...(ngDevMode ? { debugName: "interactive" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
84
- classes = computed(() => {
85
- if (this.group()) {
86
- return '';
87
- }
88
- return [
89
- 'relative [&>td:first-child]:rounded-l-control [&>td:last-child]:rounded-r-control',
90
- this.selected() ? '[&>td]:bg-(--soft)' : '',
91
- 'hover:[&>td]:bg-(--glow) [&>td]:transition-colors [&>td]:duration-(--duration-fast) [&>td]:ease-out',
92
- this.interactive()
93
- ? 'active:[&>td]:bg-(--soft) transition-transform duration-(--duration-press) ease-out active:scale-(--press-scale)'
94
- : '',
95
- ]
96
- .filter(Boolean)
97
- .join(' ');
98
- }, /* @ts-ignore */
99
- ...(ngDevMode ? [{ debugName: "classes" }] : /* istanbul ignore next */ []));
100
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: UiTr, deps: [], target: i0.ɵɵFactoryTarget.Directive });
101
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "22.1.7", type: UiTr, isStandalone: true, selector: "tr[uiTr]", inputs: { group: { classPropertyName: "group", publicName: "group", isSignal: true, isRequired: false, transformFunction: null }, selected: { classPropertyName: "selected", publicName: "selected", isSignal: true, isRequired: false, transformFunction: null }, interactive: { classPropertyName: "interactive", publicName: "interactive", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "classes()", "attr.aria-selected": "selected() ? \"true\" : null" } }, ngImport: i0 });
102
- }
103
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: UiTr, decorators: [{
104
- type: Directive,
105
- args: [{
106
- selector: 'tr[uiTr]',
107
- host: {
108
- '[class]': 'classes()',
109
- '[attr.aria-selected]': 'selected() ? "true" : null',
110
- },
111
- }]
112
- }], propDecorators: { group: [{ type: i0.Input, args: [{ isSignal: true, alias: "group", required: false }] }], selected: [{ type: i0.Input, args: [{ isSignal: true, alias: "selected", required: false }] }], interactive: [{ type: i0.Input, args: [{ isSignal: true, alias: "interactive", required: false }] }] } });
20
+ const TH_CLASSES = "h-[calc(var(--table-head)+var(--table-head-gap))] border-b-(length:--table-head-gap) border-transparent px-2 align-middle text-caption font-medium text-(--subtle-foreground) shadow-(--table-rule)";
21
+ const TD_CLASSES = "h-(--table-row) px-2 align-middle text-body";
22
+ const NUMERIC_CLASSES = "text-right tabular-nums whitespace-nowrap";
23
+ const TEXTUAL_CLASSES = "text-left";
24
+ const PRIMARY_CLASSES = "w-full max-w-0";
25
+ var UiTable = class UiTable {
26
+ row = input("48", ...ngDevMode ? [{ debugName: "row" }] : /* istanbul ignore next */ []);
27
+ rule = input(true, {
28
+ ...ngDevMode ? { debugName: "rule" } : /* istanbul ignore next */ {},
29
+ transform: booleanAttribute
30
+ });
31
+ spaced = input(false, {
32
+ ...ngDevMode ? { debugName: "spaced" } : /* istanbul ignore next */ {},
33
+ transform: booleanAttribute
34
+ });
35
+ classes = computed(() => [
36
+ "w-full border-separate border-spacing-0",
37
+ ROW_CLASSES[this.row()],
38
+ this.rule() ? "[--table-rule:inset_0_-1px_0_var(--hairline)]" : "[--table-rule:none]",
39
+ this.spaced() ? "[--table-head-gap:0.25rem]" : "[--table-head-gap:0px]"
40
+ ].join(" "), ...ngDevMode ? [{ debugName: "classes" }] : /* istanbul ignore next */ []);
41
+ constructor() {
42
+ holdTransitionsUntilRendered();
43
+ }
44
+ static ɵfac = i0.ɵɵngDeclareFactory({
45
+ minVersion: "12.0.0",
46
+ version: "22.2.0",
47
+ ngImport: i0,
48
+ type: UiTable,
49
+ deps: [],
50
+ target: i0.ɵɵFactoryTarget.Directive
51
+ });
52
+ static ɵdir = i0.ɵɵngDeclareDirective({
53
+ minVersion: "17.1.0",
54
+ version: "22.2.0",
55
+ type: UiTable,
56
+ isStandalone: true,
57
+ selector: "table[uiTable]",
58
+ inputs: {
59
+ row: {
60
+ classPropertyName: "row",
61
+ publicName: "row",
62
+ isSignal: true,
63
+ isRequired: false,
64
+ transformFunction: null
65
+ },
66
+ rule: {
67
+ classPropertyName: "rule",
68
+ publicName: "rule",
69
+ isSignal: true,
70
+ isRequired: false,
71
+ transformFunction: null
72
+ },
73
+ spaced: {
74
+ classPropertyName: "spaced",
75
+ publicName: "spaced",
76
+ isSignal: true,
77
+ isRequired: false,
78
+ transformFunction: null
79
+ }
80
+ },
81
+ host: { properties: { "class": "classes()" } },
82
+ ngImport: i0
83
+ });
84
+ };
85
+ i0.ɵɵngDeclareClassMetadata({
86
+ minVersion: "12.0.0",
87
+ version: "22.2.0",
88
+ ngImport: i0,
89
+ type: UiTable,
90
+ decorators: [{
91
+ type: Directive,
92
+ args: [{
93
+ selector: "table[uiTable]",
94
+ host: { "[class]": "classes()" }
95
+ }]
96
+ }],
97
+ ctorParameters: () => [],
98
+ propDecorators: {
99
+ row: [{
100
+ type: i0.Input,
101
+ args: [{
102
+ isSignal: true,
103
+ alias: "row",
104
+ required: false
105
+ }]
106
+ }],
107
+ rule: [{
108
+ type: i0.Input,
109
+ args: [{
110
+ isSignal: true,
111
+ alias: "rule",
112
+ required: false
113
+ }]
114
+ }],
115
+ spaced: [{
116
+ type: i0.Input,
117
+ args: [{
118
+ isSignal: true,
119
+ alias: "spaced",
120
+ required: false
121
+ }]
122
+ }]
123
+ }
124
+ });
125
+ var UiGroup = class UiGroup {
126
+ collapsed = input(false, {
127
+ ...ngDevMode ? { debugName: "collapsed" } : /* istanbul ignore next */ {},
128
+ transform: booleanAttribute
129
+ });
130
+ static ɵfac = i0.ɵɵngDeclareFactory({
131
+ minVersion: "12.0.0",
132
+ version: "22.2.0",
133
+ ngImport: i0,
134
+ type: UiGroup,
135
+ deps: [],
136
+ target: i0.ɵɵFactoryTarget.Directive
137
+ });
138
+ static ɵdir = i0.ɵɵngDeclareDirective({
139
+ minVersion: "17.1.0",
140
+ version: "22.2.0",
141
+ type: UiGroup,
142
+ isStandalone: true,
143
+ selector: "tbody[uiGroup]",
144
+ inputs: { collapsed: {
145
+ classPropertyName: "collapsed",
146
+ publicName: "collapsed",
147
+ isSignal: true,
148
+ isRequired: false,
149
+ transformFunction: null
150
+ } },
151
+ host: { classAttribute: "after:table-row after:h-1 after:content-[\"\"]" },
152
+ ngImport: i0
153
+ });
154
+ };
155
+ i0.ɵɵngDeclareClassMetadata({
156
+ minVersion: "12.0.0",
157
+ version: "22.2.0",
158
+ ngImport: i0,
159
+ type: UiGroup,
160
+ decorators: [{
161
+ type: Directive,
162
+ args: [{
163
+ selector: "tbody[uiGroup]",
164
+ host: { class: "after:table-row after:h-1 after:content-[\"\"]" }
165
+ }]
166
+ }],
167
+ propDecorators: { collapsed: [{
168
+ type: i0.Input,
169
+ args: [{
170
+ isSignal: true,
171
+ alias: "collapsed",
172
+ required: false
173
+ }]
174
+ }] }
175
+ });
176
+ var UiTr = class UiTr {
177
+ body = inject(UiGroup, { optional: true });
178
+ group = input(false, {
179
+ ...ngDevMode ? { debugName: "group" } : /* istanbul ignore next */ {},
180
+ transform: booleanAttribute
181
+ });
182
+ selected = input(false, {
183
+ ...ngDevMode ? { debugName: "selected" } : /* istanbul ignore next */ {},
184
+ transform: booleanAttribute
185
+ });
186
+ interactive = input(false, {
187
+ ...ngDevMode ? { debugName: "interactive" } : /* istanbul ignore next */ {},
188
+ transform: booleanAttribute
189
+ });
190
+ classes = computed(() => {
191
+ if (this.group()) return "";
192
+ return [
193
+ "relative [&>td:first-child]:rounded-l-control [&>td:last-child]:rounded-r-control",
194
+ this.selected() ? "[&>td]:bg-(--soft)" : "",
195
+ "hover:[&>td]:bg-(--glow) [&>td]:transition-colors [&>td]:duration-(--duration-fast) [&>td]:ease-out",
196
+ this.interactive() ? "active:[&>td]:bg-(--soft) transition-transform duration-(--duration-press) ease-out active:scale-(--press-scale)" : ""
197
+ ].filter(Boolean).join(" ");
198
+ }, ...ngDevMode ? [{ debugName: "classes" }] : /* istanbul ignore next */ []);
199
+ static ɵfac = i0.ɵɵngDeclareFactory({
200
+ minVersion: "12.0.0",
201
+ version: "22.2.0",
202
+ ngImport: i0,
203
+ type: UiTr,
204
+ deps: [],
205
+ target: i0.ɵɵFactoryTarget.Directive
206
+ });
207
+ static ɵdir = i0.ɵɵngDeclareDirective({
208
+ minVersion: "17.1.0",
209
+ version: "22.2.0",
210
+ type: UiTr,
211
+ isStandalone: true,
212
+ selector: "tr[uiTr]",
213
+ inputs: {
214
+ group: {
215
+ classPropertyName: "group",
216
+ publicName: "group",
217
+ isSignal: true,
218
+ isRequired: false,
219
+ transformFunction: null
220
+ },
221
+ selected: {
222
+ classPropertyName: "selected",
223
+ publicName: "selected",
224
+ isSignal: true,
225
+ isRequired: false,
226
+ transformFunction: null
227
+ },
228
+ interactive: {
229
+ classPropertyName: "interactive",
230
+ publicName: "interactive",
231
+ isSignal: true,
232
+ isRequired: false,
233
+ transformFunction: null
234
+ }
235
+ },
236
+ host: { properties: {
237
+ "class": "classes()",
238
+ "attr.aria-selected": "selected() ? \"true\" : null",
239
+ "hidden": "!group() && body?.collapsed()"
240
+ } },
241
+ ngImport: i0
242
+ });
243
+ };
244
+ i0.ɵɵngDeclareClassMetadata({
245
+ minVersion: "12.0.0",
246
+ version: "22.2.0",
247
+ ngImport: i0,
248
+ type: UiTr,
249
+ decorators: [{
250
+ type: Directive,
251
+ args: [{
252
+ selector: "tr[uiTr]",
253
+ host: {
254
+ "[class]": "classes()",
255
+ "[attr.aria-selected]": "selected() ? \"true\" : null",
256
+ "[hidden]": "!group() && body?.collapsed()"
257
+ }
258
+ }]
259
+ }],
260
+ propDecorators: {
261
+ group: [{
262
+ type: i0.Input,
263
+ args: [{
264
+ isSignal: true,
265
+ alias: "group",
266
+ required: false
267
+ }]
268
+ }],
269
+ selected: [{
270
+ type: i0.Input,
271
+ args: [{
272
+ isSignal: true,
273
+ alias: "selected",
274
+ required: false
275
+ }]
276
+ }],
277
+ interactive: [{
278
+ type: i0.Input,
279
+ args: [{
280
+ isSignal: true,
281
+ alias: "interactive",
282
+ required: false
283
+ }]
284
+ }]
285
+ }
286
+ });
113
287
  const cellClasses = (base, numeric, primary, from, secondary) => {
114
- const breakpoint = from ?? (secondary ? 'lg' : null);
115
- return [
116
- base,
117
- numeric ? NUMERIC_CLASSES : TEXTUAL_CLASSES,
118
- primary ? PRIMARY_CLASSES : '',
119
- breakpoint ? FROM_CLASSES[breakpoint] : '',
120
- ]
121
- .filter(Boolean)
122
- .join(' ');
288
+ const breakpoint = from ?? (secondary ? "lg" : null);
289
+ return [
290
+ base,
291
+ numeric ? NUMERIC_CLASSES : TEXTUAL_CLASSES,
292
+ primary ? PRIMARY_CLASSES : "",
293
+ breakpoint ? FROM_CLASSES[breakpoint] : ""
294
+ ].filter(Boolean).join(" ");
123
295
  };
124
- /**
125
- * Column header, centred in its 36px. `numeric` right-aligns and lines the digits up; `secondary`
126
- * (or `from`) holds a column back until the viewport is wide enough for it; `primary` makes it
127
- * the column that absorbs the free width and truncates; `tall` is a 40px header; `width` fixes the column width and keeps it from shrinking.
128
- *
129
- * @example
130
- * <th uiTh numeric secondary width="108px">Quantity</th>
131
- */
132
- class UiTh {
133
- width = input(null, /* @ts-ignore */
134
- ...(ngDevMode ? [{ debugName: "width" }] : /* istanbul ignore next */ []));
135
- numeric = input(false, { ...(ngDevMode ? { debugName: "numeric" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
136
- primary = input(false, { ...(ngDevMode ? { debugName: "primary" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
137
- secondary = input(false, { ...(ngDevMode ? { debugName: "secondary" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
138
- tall = input(false, { ...(ngDevMode ? { debugName: "tall" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
139
- from = input(null, /* @ts-ignore */
140
- ...(ngDevMode ? [{ debugName: "from" }] : /* istanbul ignore next */ []));
141
- classes = computed(() => cellClasses(`${this.tall() ? '[--table-head:2.5rem]' : '[--table-head:2.25rem]'} ${TH_CLASSES}`, this.numeric(), this.primary(), this.from(), this.secondary()), /* @ts-ignore */
142
- ...(ngDevMode ? [{ debugName: "classes" }] : /* istanbul ignore next */ []));
143
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: UiTh, deps: [], target: i0.ɵɵFactoryTarget.Directive });
144
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "22.1.7", type: UiTh, isStandalone: true, selector: "th[uiTh]", inputs: { width: { classPropertyName: "width", publicName: "width", isSignal: true, isRequired: false, transformFunction: null }, numeric: { classPropertyName: "numeric", publicName: "numeric", isSignal: true, isRequired: false, transformFunction: null }, primary: { classPropertyName: "primary", publicName: "primary", isSignal: true, isRequired: false, transformFunction: null }, secondary: { classPropertyName: "secondary", publicName: "secondary", isSignal: true, isRequired: false, transformFunction: null }, tall: { classPropertyName: "tall", publicName: "tall", isSignal: true, isRequired: false, transformFunction: null }, from: { classPropertyName: "from", publicName: "from", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "classes()", "style.width": "width()", "style.min-width": "width()" } }, ngImport: i0 });
145
- }
146
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: UiTh, decorators: [{
147
- type: Directive,
148
- args: [{
149
- selector: 'th[uiTh]',
150
- host: {
151
- '[class]': 'classes()',
152
- '[style.width]': 'width()',
153
- '[style.min-width]': 'width()',
154
- },
155
- }]
156
- }], propDecorators: { width: [{ type: i0.Input, args: [{ isSignal: true, alias: "width", required: false }] }], numeric: [{ type: i0.Input, args: [{ isSignal: true, alias: "numeric", required: false }] }], primary: [{ type: i0.Input, args: [{ isSignal: true, alias: "primary", required: false }] }], secondary: [{ type: i0.Input, args: [{ isSignal: true, alias: "secondary", required: false }] }], tall: [{ type: i0.Input, args: [{ isSignal: true, alias: "tall", required: false }] }], from: [{ type: i0.Input, args: [{ isSignal: true, alias: "from", required: false }] }] } });
157
- /** Body cell. Same inputs as `UiTh` (bar `tall` and `width`), and they must be set on both to match. */
158
- class UiTd {
159
- numeric = input(false, { ...(ngDevMode ? { debugName: "numeric" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
160
- primary = input(false, { ...(ngDevMode ? { debugName: "primary" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
161
- secondary = input(false, { ...(ngDevMode ? { debugName: "secondary" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
162
- from = input(null, /* @ts-ignore */
163
- ...(ngDevMode ? [{ debugName: "from" }] : /* istanbul ignore next */ []));
164
- classes = computed(() => cellClasses(TD_CLASSES, this.numeric(), this.primary(), this.from(), this.secondary()), /* @ts-ignore */
165
- ...(ngDevMode ? [{ debugName: "classes" }] : /* istanbul ignore next */ []));
166
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: UiTd, deps: [], target: i0.ɵɵFactoryTarget.Directive });
167
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "22.1.7", type: UiTd, isStandalone: true, selector: "td[uiTd]", inputs: { numeric: { classPropertyName: "numeric", publicName: "numeric", isSignal: true, isRequired: false, transformFunction: null }, primary: { classPropertyName: "primary", publicName: "primary", isSignal: true, isRequired: false, transformFunction: null }, secondary: { classPropertyName: "secondary", publicName: "secondary", isSignal: true, isRequired: false, transformFunction: null }, from: { classPropertyName: "from", publicName: "from", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "classes()" } }, ngImport: i0 });
168
- }
169
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: UiTd, decorators: [{
170
- type: Directive,
171
- args: [{
172
- selector: 'td[uiTd]',
173
- host: {
174
- '[class]': 'classes()',
175
- },
176
- }]
177
- }], propDecorators: { numeric: [{ type: i0.Input, args: [{ isSignal: true, alias: "numeric", required: false }] }], primary: [{ type: i0.Input, args: [{ isSignal: true, alias: "primary", required: false }] }], secondary: [{ type: i0.Input, args: [{ isSignal: true, alias: "secondary", required: false }] }], from: [{ type: i0.Input, args: [{ isSignal: true, alias: "from", required: false }] }] } });
178
- /** Group band sizes. */
179
- const GROUP_SIZES = ['md', 'lg'];
180
- /**
181
- * The band that opens a group of rows: name in 600 (a heading), meta beside it, the projected
182
- * total pinned to the right. Spans the whole row through `colspan`.
183
- *
184
- * @example
185
- * <tr uiTr group><td ui-group-cell colspan="4" name="Brokerage" meta="Savings plan">...total...</td></tr>
186
- */
187
- class UiGroupCell {
188
- name = input.required(/* @ts-ignore */
189
- ...(ngDevMode ? [{ debugName: "name" }] : /* istanbul ignore next */ []));
190
- meta = input(/* @ts-ignore */
191
- ...(ngDevMode ? [undefined, { debugName: "meta" }] : /* istanbul ignore next */ []));
192
- size = input('md', /* @ts-ignore */
193
- ...(ngDevMode ? [{ debugName: "size" }] : /* istanbul ignore next */ []));
194
- hostClasses = computed(() => `px-0 ${this.size() === 'lg' ? 'pt-3' : 'pt-2.5'} pb-1 align-middle text-body`, /* @ts-ignore */
195
- ...(ngDevMode ? [{ debugName: "hostClasses" }] : /* istanbul ignore next */ []));
196
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: UiGroupCell, deps: [], target: i0.ɵɵFactoryTarget.Component });
197
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.7", type: UiGroupCell, isStandalone: true, selector: "td[ui-group-cell]", inputs: { name: { classPropertyName: "name", publicName: "name", isSignal: true, isRequired: true, transformFunction: null }, meta: { classPropertyName: "meta", publicName: "meta", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "hostClasses()" } }, ngImport: i0, template: `
198
- <div
199
- class="rounded-control flex items-center justify-between gap-4 bg-(--muted) px-2"
200
- [class]="size() === 'lg' ? 'min-h-12' : 'min-h-11'"
201
- >
202
- <div class="flex min-w-0 items-baseline gap-3">
203
- <h2 class="text-body m-0 font-semibold whitespace-nowrap outline-none" data-group-heading tabindex="-1">
204
- {{ name() }}
205
- </h2>
206
- @if (meta()) {
207
- <span class="text-label truncate text-(--muted-foreground)">{{ meta() }}</span>
208
- }
209
- </div>
210
- <span class="font-semibold whitespace-nowrap tabular-nums"><ng-content /></span>
211
- </div>
212
- `, isInline: true });
213
- }
214
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: UiGroupCell, decorators: [{
215
- type: Component,
216
- args: [{
217
- selector: 'td[ui-group-cell]',
218
- host: {
219
- '[class]': 'hostClasses()',
220
- },
221
- template: `
222
- <div
223
- class="rounded-control flex items-center justify-between gap-4 bg-(--muted) px-2"
224
- [class]="size() === 'lg' ? 'min-h-12' : 'min-h-11'"
225
- >
226
- <div class="flex min-w-0 items-baseline gap-3">
227
- <h2 class="text-body m-0 font-semibold whitespace-nowrap outline-none" data-group-heading tabindex="-1">
228
- {{ name() }}
229
- </h2>
230
- @if (meta()) {
231
- <span class="text-label truncate text-(--muted-foreground)">{{ meta() }}</span>
232
- }
296
+ var UiTh = class UiTh {
297
+ width = input(null, ...ngDevMode ? [{ debugName: "width" }] : /* istanbul ignore next */ []);
298
+ numeric = input(false, {
299
+ ...ngDevMode ? { debugName: "numeric" } : /* istanbul ignore next */ {},
300
+ transform: booleanAttribute
301
+ });
302
+ primary = input(false, {
303
+ ...ngDevMode ? { debugName: "primary" } : /* istanbul ignore next */ {},
304
+ transform: booleanAttribute
305
+ });
306
+ secondary = input(false, {
307
+ ...ngDevMode ? { debugName: "secondary" } : /* istanbul ignore next */ {},
308
+ transform: booleanAttribute
309
+ });
310
+ tall = input(false, {
311
+ ...ngDevMode ? { debugName: "tall" } : /* istanbul ignore next */ {},
312
+ transform: booleanAttribute
313
+ });
314
+ from = input(null, ...ngDevMode ? [{ debugName: "from" }] : /* istanbul ignore next */ []);
315
+ classes = computed(() => cellClasses(`${this.tall() ? "[--table-head:2.5rem]" : "[--table-head:2.25rem]"} ${TH_CLASSES}`, this.numeric(), this.primary(), this.from(), this.secondary()), ...ngDevMode ? [{ debugName: "classes" }] : /* istanbul ignore next */ []);
316
+ static ɵfac = i0.ɵɵngDeclareFactory({
317
+ minVersion: "12.0.0",
318
+ version: "22.2.0",
319
+ ngImport: i0,
320
+ type: UiTh,
321
+ deps: [],
322
+ target: i0.ɵɵFactoryTarget.Directive
323
+ });
324
+ static ɵdir = i0.ɵɵngDeclareDirective({
325
+ minVersion: "17.1.0",
326
+ version: "22.2.0",
327
+ type: UiTh,
328
+ isStandalone: true,
329
+ selector: "th[uiTh]",
330
+ inputs: {
331
+ width: {
332
+ classPropertyName: "width",
333
+ publicName: "width",
334
+ isSignal: true,
335
+ isRequired: false,
336
+ transformFunction: null
337
+ },
338
+ numeric: {
339
+ classPropertyName: "numeric",
340
+ publicName: "numeric",
341
+ isSignal: true,
342
+ isRequired: false,
343
+ transformFunction: null
344
+ },
345
+ primary: {
346
+ classPropertyName: "primary",
347
+ publicName: "primary",
348
+ isSignal: true,
349
+ isRequired: false,
350
+ transformFunction: null
351
+ },
352
+ secondary: {
353
+ classPropertyName: "secondary",
354
+ publicName: "secondary",
355
+ isSignal: true,
356
+ isRequired: false,
357
+ transformFunction: null
358
+ },
359
+ tall: {
360
+ classPropertyName: "tall",
361
+ publicName: "tall",
362
+ isSignal: true,
363
+ isRequired: false,
364
+ transformFunction: null
365
+ },
366
+ from: {
367
+ classPropertyName: "from",
368
+ publicName: "from",
369
+ isSignal: true,
370
+ isRequired: false,
371
+ transformFunction: null
372
+ }
373
+ },
374
+ host: { properties: {
375
+ "class": "classes()",
376
+ "style.width": "width()",
377
+ "style.min-width": "width()"
378
+ } },
379
+ ngImport: i0
380
+ });
381
+ };
382
+ i0.ɵɵngDeclareClassMetadata({
383
+ minVersion: "12.0.0",
384
+ version: "22.2.0",
385
+ ngImport: i0,
386
+ type: UiTh,
387
+ decorators: [{
388
+ type: Directive,
389
+ args: [{
390
+ selector: "th[uiTh]",
391
+ host: {
392
+ "[class]": "classes()",
393
+ "[style.width]": "width()",
394
+ "[style.min-width]": "width()"
395
+ }
396
+ }]
397
+ }],
398
+ propDecorators: {
399
+ width: [{
400
+ type: i0.Input,
401
+ args: [{
402
+ isSignal: true,
403
+ alias: "width",
404
+ required: false
405
+ }]
406
+ }],
407
+ numeric: [{
408
+ type: i0.Input,
409
+ args: [{
410
+ isSignal: true,
411
+ alias: "numeric",
412
+ required: false
413
+ }]
414
+ }],
415
+ primary: [{
416
+ type: i0.Input,
417
+ args: [{
418
+ isSignal: true,
419
+ alias: "primary",
420
+ required: false
421
+ }]
422
+ }],
423
+ secondary: [{
424
+ type: i0.Input,
425
+ args: [{
426
+ isSignal: true,
427
+ alias: "secondary",
428
+ required: false
429
+ }]
430
+ }],
431
+ tall: [{
432
+ type: i0.Input,
433
+ args: [{
434
+ isSignal: true,
435
+ alias: "tall",
436
+ required: false
437
+ }]
438
+ }],
439
+ from: [{
440
+ type: i0.Input,
441
+ args: [{
442
+ isSignal: true,
443
+ alias: "from",
444
+ required: false
445
+ }]
446
+ }]
447
+ }
448
+ });
449
+ var UiTd = class UiTd {
450
+ numeric = input(false, {
451
+ ...ngDevMode ? { debugName: "numeric" } : /* istanbul ignore next */ {},
452
+ transform: booleanAttribute
453
+ });
454
+ primary = input(false, {
455
+ ...ngDevMode ? { debugName: "primary" } : /* istanbul ignore next */ {},
456
+ transform: booleanAttribute
457
+ });
458
+ secondary = input(false, {
459
+ ...ngDevMode ? { debugName: "secondary" } : /* istanbul ignore next */ {},
460
+ transform: booleanAttribute
461
+ });
462
+ from = input(null, ...ngDevMode ? [{ debugName: "from" }] : /* istanbul ignore next */ []);
463
+ classes = computed(() => cellClasses(TD_CLASSES, this.numeric(), this.primary(), this.from(), this.secondary()), ...ngDevMode ? [{ debugName: "classes" }] : /* istanbul ignore next */ []);
464
+ static ɵfac = i0.ɵɵngDeclareFactory({
465
+ minVersion: "12.0.0",
466
+ version: "22.2.0",
467
+ ngImport: i0,
468
+ type: UiTd,
469
+ deps: [],
470
+ target: i0.ɵɵFactoryTarget.Directive
471
+ });
472
+ static ɵdir = i0.ɵɵngDeclareDirective({
473
+ minVersion: "17.1.0",
474
+ version: "22.2.0",
475
+ type: UiTd,
476
+ isStandalone: true,
477
+ selector: "td[uiTd]",
478
+ inputs: {
479
+ numeric: {
480
+ classPropertyName: "numeric",
481
+ publicName: "numeric",
482
+ isSignal: true,
483
+ isRequired: false,
484
+ transformFunction: null
485
+ },
486
+ primary: {
487
+ classPropertyName: "primary",
488
+ publicName: "primary",
489
+ isSignal: true,
490
+ isRequired: false,
491
+ transformFunction: null
492
+ },
493
+ secondary: {
494
+ classPropertyName: "secondary",
495
+ publicName: "secondary",
496
+ isSignal: true,
497
+ isRequired: false,
498
+ transformFunction: null
499
+ },
500
+ from: {
501
+ classPropertyName: "from",
502
+ publicName: "from",
503
+ isSignal: true,
504
+ isRequired: false,
505
+ transformFunction: null
506
+ }
507
+ },
508
+ host: { properties: { "class": "classes()" } },
509
+ ngImport: i0
510
+ });
511
+ };
512
+ i0.ɵɵngDeclareClassMetadata({
513
+ minVersion: "12.0.0",
514
+ version: "22.2.0",
515
+ ngImport: i0,
516
+ type: UiTd,
517
+ decorators: [{
518
+ type: Directive,
519
+ args: [{
520
+ selector: "td[uiTd]",
521
+ host: { "[class]": "classes()" }
522
+ }]
523
+ }],
524
+ propDecorators: {
525
+ numeric: [{
526
+ type: i0.Input,
527
+ args: [{
528
+ isSignal: true,
529
+ alias: "numeric",
530
+ required: false
531
+ }]
532
+ }],
533
+ primary: [{
534
+ type: i0.Input,
535
+ args: [{
536
+ isSignal: true,
537
+ alias: "primary",
538
+ required: false
539
+ }]
540
+ }],
541
+ secondary: [{
542
+ type: i0.Input,
543
+ args: [{
544
+ isSignal: true,
545
+ alias: "secondary",
546
+ required: false
547
+ }]
548
+ }],
549
+ from: [{
550
+ type: i0.Input,
551
+ args: [{
552
+ isSignal: true,
553
+ alias: "from",
554
+ required: false
555
+ }]
556
+ }]
557
+ }
558
+ });
559
+ const GROUP_SIZES = ["md", "lg"];
560
+ var UiGroupCell = class UiGroupCell {
561
+ name = input.required(...ngDevMode ? [{ debugName: "name" }] : /* istanbul ignore next */ []);
562
+ meta = input(...ngDevMode ? [void 0, { debugName: "meta" }] : /* istanbul ignore next */ []);
563
+ size = input("md", ...ngDevMode ? [{ debugName: "size" }] : /* istanbul ignore next */ []);
564
+ collapsible = input(false, {
565
+ ...ngDevMode ? { debugName: "collapsible" } : /* istanbul ignore next */ {},
566
+ transform: booleanAttribute
567
+ });
568
+ expanded = model(true, ...ngDevMode ? [{ debugName: "expanded" }] : /* istanbul ignore next */ []);
569
+ toggleDisabled = input(false, {
570
+ ...ngDevMode ? { debugName: "toggleDisabled" } : /* istanbul ignore next */ {},
571
+ transform: booleanAttribute
572
+ });
573
+ controls = input(...ngDevMode ? [void 0, { debugName: "controls" }] : /* istanbul ignore next */ []);
574
+ hostClasses = computed(() => `px-0 ${this.size() === "lg" ? "pt-3" : "pt-2.5"} pb-1 align-middle text-body`, ...ngDevMode ? [{ debugName: "hostClasses" }] : /* istanbul ignore next */ []);
575
+ toggle() {
576
+ if (!this.toggleDisabled()) this.expanded.update((expanded) => !expanded);
577
+ }
578
+ static ɵfac = i0.ɵɵngDeclareFactory({
579
+ minVersion: "12.0.0",
580
+ version: "22.2.0",
581
+ ngImport: i0,
582
+ type: UiGroupCell,
583
+ deps: [],
584
+ target: i0.ɵɵFactoryTarget.Component
585
+ });
586
+ static ɵcmp = i0.ɵɵngDeclareComponent({
587
+ minVersion: "17.0.0",
588
+ version: "22.2.0",
589
+ type: UiGroupCell,
590
+ isStandalone: true,
591
+ selector: "td[ui-group-cell]",
592
+ inputs: {
593
+ name: {
594
+ classPropertyName: "name",
595
+ publicName: "name",
596
+ isSignal: true,
597
+ isRequired: true,
598
+ transformFunction: null
599
+ },
600
+ meta: {
601
+ classPropertyName: "meta",
602
+ publicName: "meta",
603
+ isSignal: true,
604
+ isRequired: false,
605
+ transformFunction: null
606
+ },
607
+ size: {
608
+ classPropertyName: "size",
609
+ publicName: "size",
610
+ isSignal: true,
611
+ isRequired: false,
612
+ transformFunction: null
613
+ },
614
+ collapsible: {
615
+ classPropertyName: "collapsible",
616
+ publicName: "collapsible",
617
+ isSignal: true,
618
+ isRequired: false,
619
+ transformFunction: null
620
+ },
621
+ expanded: {
622
+ classPropertyName: "expanded",
623
+ publicName: "expanded",
624
+ isSignal: true,
625
+ isRequired: false,
626
+ transformFunction: null
627
+ },
628
+ toggleDisabled: {
629
+ classPropertyName: "toggleDisabled",
630
+ publicName: "toggleDisabled",
631
+ isSignal: true,
632
+ isRequired: false,
633
+ transformFunction: null
634
+ },
635
+ controls: {
636
+ classPropertyName: "controls",
637
+ publicName: "controls",
638
+ isSignal: true,
639
+ isRequired: false,
640
+ transformFunction: null
641
+ }
642
+ },
643
+ outputs: { expanded: "expandedChange" },
644
+ host: { properties: { "class": "hostClasses()" } },
645
+ ngImport: i0,
646
+ template: `
647
+ <ng-template #total><ng-content /></ng-template>
648
+ @if (collapsible()) {
649
+ <h2 class="m-0 font-normal">
650
+ <button
651
+ class="rounded-control flex w-full items-center justify-between gap-4 bg-(--muted) px-2 text-left not-aria-disabled:cursor-pointer not-aria-disabled:hover:bg-(--soft) focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-(--ring)"
652
+ data-group-heading
653
+ type="button"
654
+ [attr.aria-controls]="controls() || null"
655
+ [attr.aria-disabled]="toggleDisabled() ? 'true' : null"
656
+ [attr.aria-expanded]="expanded()"
657
+ [class]="size() === 'lg' ? 'min-h-12' : 'min-h-11'"
658
+ (click)="toggle()"
659
+ >
660
+ <span class="flex min-w-0 items-center gap-2.5">
661
+ <svg
662
+ aria-hidden="true"
663
+ class="flex-none stroke-(--muted-foreground) transition-transform duration-(--duration-fast) ease-out"
664
+ fill="none"
665
+ height="18"
666
+ stroke-linecap="round"
667
+ stroke-linejoin="round"
668
+ stroke-width="1.75"
669
+ viewBox="0 0 24 24"
670
+ width="18"
671
+ [class.-rotate-90]="!expanded()"
672
+ >
673
+ <path d="m6 9 6 6 6-6" />
674
+ </svg>
675
+ <span class="flex min-w-0 items-baseline gap-3">
676
+ <span class="text-body font-semibold whitespace-nowrap">{{ name() }}</span>
677
+ @if (meta()) {
678
+ <span class="text-label truncate text-(--muted-foreground)">{{ meta() }}</span>
679
+ }
680
+ </span>
681
+ </span>
682
+ <span class="text-body font-semibold whitespace-nowrap tabular-nums">
683
+ <ng-container [ngTemplateOutlet]="total" />
684
+ </span>
685
+ </button>
686
+ </h2>
687
+ } @else {
688
+ <div
689
+ class="rounded-control flex items-center justify-between gap-4 bg-(--muted) px-2"
690
+ [class]="size() === 'lg' ? 'min-h-12' : 'min-h-11'"
691
+ >
692
+ <div class="flex min-w-0 items-baseline gap-3">
693
+ <h2 class="text-body m-0 font-semibold whitespace-nowrap outline-none" data-group-heading tabindex="-1">
694
+ {{ name() }}
695
+ </h2>
696
+ @if (meta()) {
697
+ <span class="text-label truncate text-(--muted-foreground)">{{ meta() }}</span>
698
+ }
699
+ </div>
700
+ <span class="font-semibold whitespace-nowrap tabular-nums"><ng-container [ngTemplateOutlet]="total" /></span>
233
701
  </div>
234
- <span class="font-semibold whitespace-nowrap tabular-nums"><ng-content /></span>
235
- </div>
702
+ }
236
703
  `,
237
- }]
238
- }], propDecorators: { name: [{ type: i0.Input, args: [{ isSignal: true, alias: "name", required: true }] }], meta: [{ type: i0.Input, args: [{ isSignal: true, alias: "meta", required: false }] }], size: [{ type: i0.Input, args: [{ isSignal: true, alias: "size", required: false }] }] } });
239
- /**
240
- * Makes a link or button the way into its row. By default an invisible layer stretches over the
241
- * whole row, so the row is one target for the pointer, the keyboard and a screen reader, and its
242
- * focus ring wraps the row. With `[stretch]="false"` only the name is the
243
- * target: it underlines on hover and takes its own ring. `current` marks the open line.
244
- *
245
- * @example
246
- * <td uiTd primary><a uiRowLink href="/lines/42">Ferrari</a></td>
247
- * <td uiTd primary><a uiRowLink [stretch]="false" href="/accounts/3">Brokerage</a></td>
248
- */
249
- class UiRowLink {
250
- stretch = input(true, { ...(ngDevMode ? { debugName: "stretch" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
251
- current = input(false, { ...(ngDevMode ? { debugName: "current" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
252
- classes = computed(() => this.stretch()
253
- ? 'block max-w-full truncate rounded-control text-left font-medium outline-none after:absolute after:inset-0 after:rounded-control after:content-[""] focus-visible:after:outline-2 focus-visible:after:-outline-offset-2 focus-visible:after:outline-(--ring)'
254
- : 'block max-w-full truncate rounded-sm text-left font-medium underline-offset-[3px] outline-none hover:underline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-(--ring)', /* @ts-ignore */
255
- ...(ngDevMode ? [{ debugName: "classes" }] : /* istanbul ignore next */ []));
256
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: UiRowLink, deps: [], target: i0.ɵɵFactoryTarget.Directive });
257
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "22.1.7", type: UiRowLink, isStandalone: true, selector: "a[uiRowLink], button[uiRowLink]", inputs: { stretch: { classPropertyName: "stretch", publicName: "stretch", isSignal: true, isRequired: false, transformFunction: null }, current: { classPropertyName: "current", publicName: "current", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "classes()", "attr.aria-current": "current() ? \"true\" : null" } }, ngImport: i0 });
258
- }
259
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: UiRowLink, decorators: [{
260
- type: Directive,
261
- args: [{
262
- selector: 'a[uiRowLink], button[uiRowLink]',
263
- host: {
264
- '[class]': 'classes()',
265
- '[attr.aria-current]': 'current() ? "true" : null',
266
- },
267
- }]
268
- }], propDecorators: { stretch: [{ type: i0.Input, args: [{ isSignal: true, alias: "stretch", required: false }] }], current: [{ type: i0.Input, args: [{ isSignal: true, alias: "current", required: false }] }] } });
269
- /** A control in another cell of a stretched-link row: lifts it above the layer that covers the row. */
270
- class UiRowAction {
271
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: UiRowAction, deps: [], target: i0.ɵɵFactoryTarget.Directive });
272
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.1.7", type: UiRowAction, isStandalone: true, selector: "[uiRowAction]", host: { classAttribute: "relative z-1" }, ngImport: i0 });
273
- }
274
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: UiRowAction, decorators: [{
275
- type: Directive,
276
- args: [{
277
- selector: '[uiRowAction]',
278
- host: { class: 'relative z-1' },
279
- }]
280
- }] });
281
- /** Tones of a subtitle: subtle (default), `--stale` at 500, or the color of the cell. */
282
- const SUB_TONES = ['subtle', 'stale', 'inherit'];
704
+ isInline: true,
705
+ dependencies: [{
706
+ kind: "directive",
707
+ type: NgTemplateOutlet,
708
+ selector: "[ngTemplateOutlet]",
709
+ inputs: [
710
+ "ngTemplateOutletContext",
711
+ "ngTemplateOutlet",
712
+ "ngTemplateOutletInjector"
713
+ ]
714
+ }]
715
+ });
716
+ };
717
+ i0.ɵɵngDeclareClassMetadata({
718
+ minVersion: "12.0.0",
719
+ version: "22.2.0",
720
+ ngImport: i0,
721
+ type: UiGroupCell,
722
+ decorators: [{
723
+ type: Component,
724
+ args: [{
725
+ selector: "td[ui-group-cell]",
726
+ imports: [NgTemplateOutlet],
727
+ host: { "[class]": "hostClasses()" },
728
+ template: `
729
+ <ng-template #total><ng-content /></ng-template>
730
+ @if (collapsible()) {
731
+ <h2 class="m-0 font-normal">
732
+ <button
733
+ class="rounded-control flex w-full items-center justify-between gap-4 bg-(--muted) px-2 text-left not-aria-disabled:cursor-pointer not-aria-disabled:hover:bg-(--soft) focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-(--ring)"
734
+ data-group-heading
735
+ type="button"
736
+ [attr.aria-controls]="controls() || null"
737
+ [attr.aria-disabled]="toggleDisabled() ? 'true' : null"
738
+ [attr.aria-expanded]="expanded()"
739
+ [class]="size() === 'lg' ? 'min-h-12' : 'min-h-11'"
740
+ (click)="toggle()"
741
+ >
742
+ <span class="flex min-w-0 items-center gap-2.5">
743
+ <svg
744
+ aria-hidden="true"
745
+ class="flex-none stroke-(--muted-foreground) transition-transform duration-(--duration-fast) ease-out"
746
+ fill="none"
747
+ height="18"
748
+ stroke-linecap="round"
749
+ stroke-linejoin="round"
750
+ stroke-width="1.75"
751
+ viewBox="0 0 24 24"
752
+ width="18"
753
+ [class.-rotate-90]="!expanded()"
754
+ >
755
+ <path d="m6 9 6 6 6-6" />
756
+ </svg>
757
+ <span class="flex min-w-0 items-baseline gap-3">
758
+ <span class="text-body font-semibold whitespace-nowrap">{{ name() }}</span>
759
+ @if (meta()) {
760
+ <span class="text-label truncate text-(--muted-foreground)">{{ meta() }}</span>
761
+ }
762
+ </span>
763
+ </span>
764
+ <span class="text-body font-semibold whitespace-nowrap tabular-nums">
765
+ <ng-container [ngTemplateOutlet]="total" />
766
+ </span>
767
+ </button>
768
+ </h2>
769
+ } @else {
770
+ <div
771
+ class="rounded-control flex items-center justify-between gap-4 bg-(--muted) px-2"
772
+ [class]="size() === 'lg' ? 'min-h-12' : 'min-h-11'"
773
+ >
774
+ <div class="flex min-w-0 items-baseline gap-3">
775
+ <h2 class="text-body m-0 font-semibold whitespace-nowrap outline-none" data-group-heading tabindex="-1">
776
+ {{ name() }}
777
+ </h2>
778
+ @if (meta()) {
779
+ <span class="text-label truncate text-(--muted-foreground)">{{ meta() }}</span>
780
+ }
781
+ </div>
782
+ <span class="font-semibold whitespace-nowrap tabular-nums"><ng-container [ngTemplateOutlet]="total" /></span>
783
+ </div>
784
+ }
785
+ `
786
+ }]
787
+ }],
788
+ propDecorators: {
789
+ name: [{
790
+ type: i0.Input,
791
+ args: [{
792
+ isSignal: true,
793
+ alias: "name",
794
+ required: true
795
+ }]
796
+ }],
797
+ meta: [{
798
+ type: i0.Input,
799
+ args: [{
800
+ isSignal: true,
801
+ alias: "meta",
802
+ required: false
803
+ }]
804
+ }],
805
+ size: [{
806
+ type: i0.Input,
807
+ args: [{
808
+ isSignal: true,
809
+ alias: "size",
810
+ required: false
811
+ }]
812
+ }],
813
+ collapsible: [{
814
+ type: i0.Input,
815
+ args: [{
816
+ isSignal: true,
817
+ alias: "collapsible",
818
+ required: false
819
+ }]
820
+ }],
821
+ expanded: [{
822
+ type: i0.Input,
823
+ args: [{
824
+ isSignal: true,
825
+ alias: "expanded",
826
+ required: false
827
+ }]
828
+ }, {
829
+ type: i0.Output,
830
+ args: ["expandedChange"]
831
+ }],
832
+ toggleDisabled: [{
833
+ type: i0.Input,
834
+ args: [{
835
+ isSignal: true,
836
+ alias: "toggleDisabled",
837
+ required: false
838
+ }]
839
+ }],
840
+ controls: [{
841
+ type: i0.Input,
842
+ args: [{
843
+ isSignal: true,
844
+ alias: "controls",
845
+ required: false
846
+ }]
847
+ }]
848
+ }
849
+ });
850
+ var UiRowLink = class UiRowLink {
851
+ stretch = input(true, {
852
+ ...ngDevMode ? { debugName: "stretch" } : /* istanbul ignore next */ {},
853
+ transform: booleanAttribute
854
+ });
855
+ current = input(false, {
856
+ ...ngDevMode ? { debugName: "current" } : /* istanbul ignore next */ {},
857
+ transform: booleanAttribute
858
+ });
859
+ classes = computed(() => this.stretch() ? "block max-w-full truncate rounded-control text-left font-medium outline-none after:absolute after:inset-0 after:rounded-control after:content-[\"\"] focus-visible:after:outline-2 focus-visible:after:-outline-offset-2 focus-visible:after:outline-(--ring)" : "block max-w-full truncate rounded-sm text-left font-medium underline-offset-[3px] outline-none hover:underline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-(--ring)", ...ngDevMode ? [{ debugName: "classes" }] : /* istanbul ignore next */ []);
860
+ static ɵfac = i0.ɵɵngDeclareFactory({
861
+ minVersion: "12.0.0",
862
+ version: "22.2.0",
863
+ ngImport: i0,
864
+ type: UiRowLink,
865
+ deps: [],
866
+ target: i0.ɵɵFactoryTarget.Directive
867
+ });
868
+ static ɵdir = i0.ɵɵngDeclareDirective({
869
+ minVersion: "17.1.0",
870
+ version: "22.2.0",
871
+ type: UiRowLink,
872
+ isStandalone: true,
873
+ selector: "a[uiRowLink], button[uiRowLink]",
874
+ inputs: {
875
+ stretch: {
876
+ classPropertyName: "stretch",
877
+ publicName: "stretch",
878
+ isSignal: true,
879
+ isRequired: false,
880
+ transformFunction: null
881
+ },
882
+ current: {
883
+ classPropertyName: "current",
884
+ publicName: "current",
885
+ isSignal: true,
886
+ isRequired: false,
887
+ transformFunction: null
888
+ }
889
+ },
890
+ host: { properties: {
891
+ "class": "classes()",
892
+ "attr.aria-current": "current() ? \"true\" : null"
893
+ } },
894
+ ngImport: i0
895
+ });
896
+ };
897
+ i0.ɵɵngDeclareClassMetadata({
898
+ minVersion: "12.0.0",
899
+ version: "22.2.0",
900
+ ngImport: i0,
901
+ type: UiRowLink,
902
+ decorators: [{
903
+ type: Directive,
904
+ args: [{
905
+ selector: "a[uiRowLink], button[uiRowLink]",
906
+ host: {
907
+ "[class]": "classes()",
908
+ "[attr.aria-current]": "current() ? \"true\" : null"
909
+ }
910
+ }]
911
+ }],
912
+ propDecorators: {
913
+ stretch: [{
914
+ type: i0.Input,
915
+ args: [{
916
+ isSignal: true,
917
+ alias: "stretch",
918
+ required: false
919
+ }]
920
+ }],
921
+ current: [{
922
+ type: i0.Input,
923
+ args: [{
924
+ isSignal: true,
925
+ alias: "current",
926
+ required: false
927
+ }]
928
+ }]
929
+ }
930
+ });
931
+ var UiRowAction = class UiRowAction {
932
+ static ɵfac = i0.ɵɵngDeclareFactory({
933
+ minVersion: "12.0.0",
934
+ version: "22.2.0",
935
+ ngImport: i0,
936
+ type: UiRowAction,
937
+ deps: [],
938
+ target: i0.ɵɵFactoryTarget.Directive
939
+ });
940
+ static ɵdir = i0.ɵɵngDeclareDirective({
941
+ minVersion: "14.0.0",
942
+ version: "22.2.0",
943
+ type: UiRowAction,
944
+ isStandalone: true,
945
+ selector: "[uiRowAction]",
946
+ host: { classAttribute: "relative z-1" },
947
+ ngImport: i0
948
+ });
949
+ };
950
+ i0.ɵɵngDeclareClassMetadata({
951
+ minVersion: "12.0.0",
952
+ version: "22.2.0",
953
+ ngImport: i0,
954
+ type: UiRowAction,
955
+ decorators: [{
956
+ type: Directive,
957
+ args: [{
958
+ selector: "[uiRowAction]",
959
+ host: { class: "relative z-1" }
960
+ }]
961
+ }]
962
+ });
963
+ const SUB_TONES = [
964
+ "subtle",
965
+ "stale",
966
+ "inherit"
967
+ ];
283
968
  const SUB_TONE_CLASSES = {
284
- subtle: 'font-normal text-(--subtle-foreground)',
285
- stale: 'font-medium text-(--stale)',
286
- inherit: 'font-normal',
969
+ subtle: "font-normal text-(--subtle-foreground)",
970
+ stale: "font-medium text-(--stale)",
971
+ inherit: "font-normal"
287
972
  };
288
- /**
289
- * A second line under a cell's main text. `narrow` shows it only under 1024px, where it carries
290
- * the quantity, average cost and quote that were held back. Its amounts go through `ui-amount`
291
- * so they mask.
292
- *
293
- * @example
294
- * <span uiCellSub narrow>10 × 421.26 € · cost 388.10 €</span>
295
- * <span uiCellSub tone="stale">Quote of 24/09</span>
296
- */
297
- class UiCellSub {
298
- narrow = input(false, { ...(ngDevMode ? { debugName: "narrow" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
299
- tone = input('subtle', /* @ts-ignore */
300
- ...(ngDevMode ? [{ debugName: "tone" }] : /* istanbul ignore next */ []));
301
- classes = computed(() => `${this.narrow() ? 'lg:hidden ' : ''}block truncate text-caption tabular-nums ${SUB_TONE_CLASSES[this.tone()]}`, /* @ts-ignore */
302
- ...(ngDevMode ? [{ debugName: "classes" }] : /* istanbul ignore next */ []));
303
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: UiCellSub, deps: [], target: i0.ɵɵFactoryTarget.Directive });
304
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "22.1.7", type: UiCellSub, isStandalone: true, selector: "[uiCellSub]", inputs: { narrow: { classPropertyName: "narrow", publicName: "narrow", isSignal: true, isRequired: false, transformFunction: null }, tone: { classPropertyName: "tone", publicName: "tone", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "classes()" } }, ngImport: i0 });
305
- }
306
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: UiCellSub, decorators: [{
307
- type: Directive,
308
- args: [{
309
- selector: '[uiCellSub]',
310
- host: {
311
- '[class]': 'classes()',
312
- },
313
- }]
314
- }], propDecorators: { narrow: [{ type: i0.Input, args: [{ isSignal: true, alias: "narrow", required: false }] }], tone: [{ type: i0.Input, args: [{ isSignal: true, alias: "tone", required: false }] }] } });
315
-
316
- /**
317
- * Generated bundle index. Do not edit.
318
- */
319
-
973
+ var UiCellSub = class UiCellSub {
974
+ narrow = input(false, {
975
+ ...ngDevMode ? { debugName: "narrow" } : /* istanbul ignore next */ {},
976
+ transform: booleanAttribute
977
+ });
978
+ tone = input("subtle", ...ngDevMode ? [{ debugName: "tone" }] : /* istanbul ignore next */ []);
979
+ classes = computed(() => `${this.narrow() ? "lg:hidden " : ""}block truncate text-caption tabular-nums ${SUB_TONE_CLASSES[this.tone()]}`, ...ngDevMode ? [{ debugName: "classes" }] : /* istanbul ignore next */ []);
980
+ static ɵfac = i0.ɵɵngDeclareFactory({
981
+ minVersion: "12.0.0",
982
+ version: "22.2.0",
983
+ ngImport: i0,
984
+ type: UiCellSub,
985
+ deps: [],
986
+ target: i0.ɵɵFactoryTarget.Directive
987
+ });
988
+ static ɵdir = i0.ɵɵngDeclareDirective({
989
+ minVersion: "17.1.0",
990
+ version: "22.2.0",
991
+ type: UiCellSub,
992
+ isStandalone: true,
993
+ selector: "[uiCellSub]",
994
+ inputs: {
995
+ narrow: {
996
+ classPropertyName: "narrow",
997
+ publicName: "narrow",
998
+ isSignal: true,
999
+ isRequired: false,
1000
+ transformFunction: null
1001
+ },
1002
+ tone: {
1003
+ classPropertyName: "tone",
1004
+ publicName: "tone",
1005
+ isSignal: true,
1006
+ isRequired: false,
1007
+ transformFunction: null
1008
+ }
1009
+ },
1010
+ host: { properties: { "class": "classes()" } },
1011
+ ngImport: i0
1012
+ });
1013
+ };
1014
+ i0.ɵɵngDeclareClassMetadata({
1015
+ minVersion: "12.0.0",
1016
+ version: "22.2.0",
1017
+ ngImport: i0,
1018
+ type: UiCellSub,
1019
+ decorators: [{
1020
+ type: Directive,
1021
+ args: [{
1022
+ selector: "[uiCellSub]",
1023
+ host: { "[class]": "classes()" }
1024
+ }]
1025
+ }],
1026
+ propDecorators: {
1027
+ narrow: [{
1028
+ type: i0.Input,
1029
+ args: [{
1030
+ isSignal: true,
1031
+ alias: "narrow",
1032
+ required: false
1033
+ }]
1034
+ }],
1035
+ tone: [{
1036
+ type: i0.Input,
1037
+ args: [{
1038
+ isSignal: true,
1039
+ alias: "tone",
1040
+ required: false
1041
+ }]
1042
+ }]
1043
+ }
1044
+ });
320
1045
  export { CELL_BREAKPOINTS, GROUP_SIZES, SUB_TONES, TABLE_ROWS, UiCellSub, UiGroup, UiGroupCell, UiRowAction, UiRowLink, UiTable, UiTd, UiTh, UiTr };
321
- //# sourceMappingURL=joanroucoux-cairn-ui-table.mjs.map
1046
+
1047
+ //# sourceMappingURL=joanroucoux-cairn-ui-table.mjs.map