@joanroucoux/cairn-ui 0.10.0 → 0.11.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.
- package/CHANGELOG.md +37 -0
- package/README.md +2 -0
- package/fesm2022/joanroucoux-cairn-ui-action-bar.mjs +3 -3
- package/fesm2022/joanroucoux-cairn-ui-alert.mjs +3 -3
- package/fesm2022/joanroucoux-cairn-ui-amount.mjs +3 -3
- package/fesm2022/joanroucoux-cairn-ui-async.mjs +85 -81
- package/fesm2022/joanroucoux-cairn-ui-async.mjs.map +1 -1
- package/fesm2022/joanroucoux-cairn-ui-avatar.mjs +6 -6
- package/fesm2022/joanroucoux-cairn-ui-back-link.mjs +3 -3
- package/fesm2022/joanroucoux-cairn-ui-badge.mjs +3 -3
- package/fesm2022/joanroucoux-cairn-ui-button.mjs +3 -3
- package/fesm2022/joanroucoux-cairn-ui-card.mjs +3 -3
- package/fesm2022/joanroucoux-cairn-ui-choice-chips.mjs +3 -3
- package/fesm2022/joanroucoux-cairn-ui-choice-chips.mjs.map +1 -1
- package/fesm2022/joanroucoux-cairn-ui-delta.mjs +3 -3
- package/fesm2022/joanroucoux-cairn-ui-dialog.mjs +3 -3
- package/fesm2022/joanroucoux-cairn-ui-dialog.mjs.map +1 -1
- package/fesm2022/joanroucoux-cairn-ui-donut.mjs +7 -7
- package/fesm2022/joanroucoux-cairn-ui-donut.mjs.map +1 -1
- package/fesm2022/joanroucoux-cairn-ui-drawer.mjs +3 -3
- package/fesm2022/joanroucoux-cairn-ui-drawer.mjs.map +1 -1
- package/fesm2022/joanroucoux-cairn-ui-empty.mjs +3 -3
- package/fesm2022/joanroucoux-cairn-ui-empty.mjs.map +1 -1
- package/fesm2022/joanroucoux-cairn-ui-external-link.mjs +3 -3
- package/fesm2022/joanroucoux-cairn-ui-external-link.mjs.map +1 -1
- package/fesm2022/joanroucoux-cairn-ui-fact.mjs +6 -6
- package/fesm2022/joanroucoux-cairn-ui-fact.mjs.map +1 -1
- package/fesm2022/joanroucoux-cairn-ui-field.mjs +9 -9
- package/fesm2022/joanroucoux-cairn-ui-filter-chips.mjs +3 -3
- package/fesm2022/joanroucoux-cairn-ui-group-header.mjs +3 -3
- package/fesm2022/joanroucoux-cairn-ui-group-header.mjs.map +1 -1
- package/fesm2022/joanroucoux-cairn-ui-icon-toggle.mjs +3 -3
- package/fesm2022/joanroucoux-cairn-ui-input.mjs +6 -6
- package/fesm2022/joanroucoux-cairn-ui-input.mjs.map +1 -1
- package/fesm2022/joanroucoux-cairn-ui-line-chart.mjs +3 -3
- package/fesm2022/joanroucoux-cairn-ui-menu.mjs +17 -10
- package/fesm2022/joanroucoux-cairn-ui-menu.mjs.map +1 -1
- package/fesm2022/joanroucoux-cairn-ui-meter.mjs +3 -3
- package/fesm2022/joanroucoux-cairn-ui-motion.mjs +12 -12
- package/fesm2022/joanroucoux-cairn-ui-nav-item.mjs +3 -3
- package/fesm2022/joanroucoux-cairn-ui-result-group.mjs +3 -3
- package/fesm2022/joanroucoux-cairn-ui-result-group.mjs.map +1 -1
- package/fesm2022/joanroucoux-cairn-ui-row.mjs +15 -15
- package/fesm2022/joanroucoux-cairn-ui-row.mjs.map +1 -1
- package/fesm2022/joanroucoux-cairn-ui-segmented.mjs +3 -3
- package/fesm2022/joanroucoux-cairn-ui-select-pill.mjs +3 -3
- package/fesm2022/joanroucoux-cairn-ui-select.mjs +3 -3
- package/fesm2022/joanroucoux-cairn-ui-skeleton.mjs +3 -3
- package/fesm2022/joanroucoux-cairn-ui-stale-link.mjs +3 -3
- package/fesm2022/joanroucoux-cairn-ui-stale-link.mjs.map +1 -1
- package/fesm2022/joanroucoux-cairn-ui-stat.mjs +3 -3
- package/fesm2022/joanroucoux-cairn-ui-switch.mjs +3 -3
- package/fesm2022/joanroucoux-cairn-ui-tab-bar.mjs +6 -6
- package/fesm2022/joanroucoux-cairn-ui-table.mjs +27 -27
- package/fesm2022/joanroucoux-cairn-ui-table.mjs.map +1 -1
- package/fesm2022/joanroucoux-cairn-ui-toast.mjs +7 -7
- package/fesm2022/joanroucoux-cairn-ui-toast.mjs.map +1 -1
- package/mcp-manifest.json +1 -0
- package/package.json +5 -2
- package/styles/theme.css +4 -0
- package/styles/tokens.css +0 -4
- package/types/joanroucoux-cairn-ui-async.d.ts +7 -5
- package/types/joanroucoux-cairn-ui-choice-chips.d.ts +2 -2
- package/types/joanroucoux-cairn-ui-dialog.d.ts +3 -0
- package/types/joanroucoux-cairn-ui-donut.d.ts +1 -1
- package/types/joanroucoux-cairn-ui-drawer.d.ts +1 -1
- package/types/joanroucoux-cairn-ui-empty.d.ts +3 -3
- package/types/joanroucoux-cairn-ui-external-link.d.ts +1 -1
- package/types/joanroucoux-cairn-ui-fact.d.ts +1 -1
- package/types/joanroucoux-cairn-ui-group-header.d.ts +1 -1
- package/types/joanroucoux-cairn-ui-input.d.ts +4 -1
- package/types/joanroucoux-cairn-ui-menu.d.ts +3 -3
- package/types/joanroucoux-cairn-ui-result-group.d.ts +3 -3
- package/types/joanroucoux-cairn-ui-row.d.ts +1 -1
- package/types/joanroucoux-cairn-ui-stale-link.d.ts +2 -2
- package/types/joanroucoux-cairn-ui-table.d.ts +16 -6
- package/types/joanroucoux-cairn-ui-toast.d.ts +3 -3
|
@@ -15,7 +15,7 @@ var UiNavItem = class UiNavItem {
|
|
|
15
15
|
}
|
|
16
16
|
static ɵfac = i0.ɵɵngDeclareFactory({
|
|
17
17
|
minVersion: "12.0.0",
|
|
18
|
-
version: "22.2.
|
|
18
|
+
version: "22.2.2",
|
|
19
19
|
ngImport: i0,
|
|
20
20
|
type: UiNavItem,
|
|
21
21
|
deps: [],
|
|
@@ -23,7 +23,7 @@ var UiNavItem = class UiNavItem {
|
|
|
23
23
|
});
|
|
24
24
|
static ɵcmp = i0.ɵɵngDeclareComponent({
|
|
25
25
|
minVersion: "17.1.0",
|
|
26
|
-
version: "22.2.
|
|
26
|
+
version: "22.2.2",
|
|
27
27
|
type: UiNavItem,
|
|
28
28
|
isStandalone: true,
|
|
29
29
|
selector: "a[ui-nav-item]",
|
|
@@ -45,7 +45,7 @@ var UiNavItem = class UiNavItem {
|
|
|
45
45
|
};
|
|
46
46
|
i0.ɵɵngDeclareClassMetadata({
|
|
47
47
|
minVersion: "12.0.0",
|
|
48
|
-
version: "22.2.
|
|
48
|
+
version: "22.2.2",
|
|
49
49
|
ngImport: i0,
|
|
50
50
|
type: UiNavItem,
|
|
51
51
|
decorators: [{
|
|
@@ -14,7 +14,7 @@ var UiResultGroup = class UiResultGroup {
|
|
|
14
14
|
animation = PULSE_ANIMATION;
|
|
15
15
|
static ɵfac = i0.ɵɵngDeclareFactory({
|
|
16
16
|
minVersion: "12.0.0",
|
|
17
|
-
version: "22.2.
|
|
17
|
+
version: "22.2.2",
|
|
18
18
|
ngImport: i0,
|
|
19
19
|
type: UiResultGroup,
|
|
20
20
|
deps: [],
|
|
@@ -22,7 +22,7 @@ var UiResultGroup = class UiResultGroup {
|
|
|
22
22
|
});
|
|
23
23
|
static ɵcmp = i0.ɵɵngDeclareComponent({
|
|
24
24
|
minVersion: "17.0.0",
|
|
25
|
-
version: "22.2.
|
|
25
|
+
version: "22.2.2",
|
|
26
26
|
type: UiResultGroup,
|
|
27
27
|
isStandalone: true,
|
|
28
28
|
selector: "ui-result-group",
|
|
@@ -93,7 +93,7 @@ var UiResultGroup = class UiResultGroup {
|
|
|
93
93
|
};
|
|
94
94
|
i0.ɵɵngDeclareClassMetadata({
|
|
95
95
|
minVersion: "12.0.0",
|
|
96
|
-
version: "22.2.
|
|
96
|
+
version: "22.2.2",
|
|
97
97
|
ngImport: i0,
|
|
98
98
|
type: UiResultGroup,
|
|
99
99
|
decorators: [{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"joanroucoux-cairn-ui-result-group.mjs","names":[],"sources":["../../../projects/ui/result-group/result-group.ts"],"sourcesContent":["import { Component, computed, input, output } from '@angular/core';\n\nimport { type AsyncState, UiAsync } from '@joanroucoux/cairn-ui/async';\n\nconst PULSE_ANIMATION = 'cairn-pulse var(--pulse-duration) var(--ease-out) infinite alternate';\n\nconst BAR_CLASSES = 'block h-4 rounded-control bg-(--muted)';\n\n/**\n * One source of a search: a two-tone heading, then its rows, or a skeleton while it answers, a\n * message when it has nothing, or an inline error with a retry.\n *\n * @example\n * <ui-result-group label=\"Yahoo Finance\" hint=\"
|
|
1
|
+
{"version":3,"file":"joanroucoux-cairn-ui-result-group.mjs","names":[],"sources":["../../../projects/ui/result-group/result-group.ts"],"sourcesContent":["import { Component, computed, input, output } from '@angular/core';\n\nimport { type AsyncState, UiAsync } from '@joanroucoux/cairn-ui/async';\n\nconst PULSE_ANIMATION = 'cairn-pulse var(--pulse-duration) var(--ease-out) infinite alternate';\n\nconst BAR_CLASSES = 'block h-4 rounded-control bg-(--muted)';\n\n/**\n * One source of a search: a two-tone heading, then its rows, or a skeleton while it answers, a\n * message when it has nothing, or an inline error with a retry.\n *\n * @example\n * <ui-result-group label=\"Yahoo Finance\" hint=\"live prices\" [state]=\"state()\"\n * errorMessage=\"Yahoo Finance didn’t respond.\" retryLabel=\"Try again\" (retry)=\"search()\">\n * <button ui-row size=\"dense\" type=\"button\">...</button>\n * <span resultGroupMessage>No results from Yahoo Finance.</span>\n * </ui-result-group>\n */\n@Component({\n selector: 'ui-result-group',\n imports: [UiAsync],\n template: `\n <div class=\"text-caption flex items-baseline gap-1.5 pt-3 pr-2.5 pb-1 pl-2.5 tracking-(--tracking-caption)\">\n <span class=\"font-semibold text-(--foreground)\">{{ label() }}</span>\n @if (hint()) {\n <span class=\"text-(--subtle-foreground)\">{{ hint() }}</span>\n }\n </div>\n <ui-async\n variant=\"inline\"\n [errorMessage]=\"errorMessage()\"\n [retryIcon]=\"false\"\n [retryLabel]=\"retryLabel()\"\n [state]=\"state()\"\n (retry)=\"retry.emit()\"\n >\n <div asyncLoading class=\"flex flex-col gap-3.5 px-2.5 pt-2.5 pb-3\">\n <span class=\"flex justify-between\">\n <span class=\"${BAR_CLASSES} w-50\" [style.animation]=\"animation\"></span>\n <span class=\"${BAR_CLASSES} w-16\" [style.animation]=\"animation\"></span>\n </span>\n <span class=\"flex justify-between\">\n <span class=\"${BAR_CLASSES} w-40\" [style.animation]=\"animation\"></span>\n <span class=\"${BAR_CLASSES} w-16\" [style.animation]=\"animation\"></span>\n </span>\n </div>\n <div asyncEmpty class=\"text-label px-2.5 pt-1 pb-2.5 text-pretty text-(--muted-foreground) empty:hidden\">\n <ng-content select=\"[resultGroupMessage]\" />\n </div>\n <ng-content />\n </ui-async>\n `,\n host: {\n class: 'block',\n role: 'group',\n '[attr.aria-label]': 'name()',\n },\n})\nexport class UiResultGroup {\n readonly label = input.required<string>();\n readonly hint = input<string>();\n readonly state = input<AsyncState>('ready');\n readonly errorMessage = input<string>();\n readonly retryLabel = input<string>();\n readonly retry = output<void>();\n\n protected readonly name = computed(() => (this.hint() ? `${this.label()}, ${this.hint()}` : this.label()));\n protected readonly animation = PULSE_ANIMATION;\n}\n"],"mappings":";;;AAIA,MAAM,kBAAkB;AAExB,MAAM,cAAc;AAqDpB,IAAa,gBAAb,MAAa,cAAa;CACf,QAAQ,MAAM,SAAkB,GAAA,YAAA,CAAA,EAAA,WAAA,QAAA,CAAA,+BAAA,CAAA,CAAA;CAChC,OAAO,MAAe,GAAA,YAAA,CAAA,QAAA,EAAA,WAAA,OAAA,CAAA,+BAAA,CAAA,CAAA;CACtB,QAAQ,MAAkB,SAAQ,GAAA,YAAA,CAAA,EAAA,WAAA,QAAA,CAAA,+BAAA,CAAA,CAAA;CAClC,eAAe,MAAe,GAAA,YAAA,CAAA,QAAA,EAAA,WAAA,eAAA,CAAA,+BAAA,CAAA,CAAA;CAC9B,aAAa,MAAe,GAAA,YAAA,CAAA,QAAA,EAAA,WAAA,aAAA,CAAA,+BAAA,CAAA,CAAA;CAC5B,QAAQ,OAAM;CAEJ,OAAO,eAAgB,KAAK,KAAI,IAAK,GAAG,KAAK,MAAK,EAAE,IAAK,KAAK,KAAI,MAAO,KAAK,MAAK,GAAI,GAAA,YAAA,CAAA,EAAA,WAAA,OAAA,CAAA,+BAAA,CAAA,CAAA;CACvF,YAAY;CATpB,OAAA,OAAA,GAAA,mBAAA;EAAA,YAAA;EAAA,SAAA;EAAA,UAAA;EAAA,MAAA;EAAa,MAAA,CAAA;EAAA,QAAA,GAAA,gBAAA;CAAA,CAAA;CAAb,OAAA,OAAA,GAAA,qBAAA;EAAA,YAAA;EAAA,SAAA;EAAA,MAAA;EAAa,cAAA;EAAA,UAAA;EAAA,QAAA;GAAA,OAAA;IAAA,mBAAA;IAAA,YAAA;IAAA,UAAA;IAAA,YAAA;IAAA,mBAAA;GAAA;GAAA,MAAA;IAAA,mBAAA;IAAA,YAAA;IAAA,UAAA;IAAA,YAAA;IAAA,mBAAA;GAAA;GAAA,OAAA;IAAA,mBAAA;IAAA,YAAA;IAAA,UAAA;IAAA,YAAA;IAAA,mBAAA;GAAA;GAAA,cAAA;IAAA,mBAAA;IAAA,YAAA;IAAA,UAAA;IAAA,YAAA;IAAA,mBAAA;GAAA;GAAA,YAAA;IAAA,mBAAA;IAAA,YAAA;IAAA,UAAA;IAAA,YAAA;IAAA,mBAAA;GAAA;EAAA;EAAA,SAAA,EAAA,OAAA,QAAA;EAAA,MAAA;GAAA,YAAA,EAAA,QAAA,QAAA;GAAA,YAAA,EAAA,mBAAA,SAAA;GAAA,gBAAA;EAAA;EAAA,UAAA;EAAA,UAAA;EAAA,UAAA;EAAA,cAAA,CAAA;GAAA,MAAA;GAAA,MAtCd;GAAO,UAAA;GAAA,QAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;GAAA;GAAA,SAAA,CAAA,OAAA;EAAA,CAAA;CAAA,CAAA;;AAsCN,GAAA,yBAAA;CAAA,YAAA;CAAA,SAAA;CAAA,UAAA;CAAA,MAAA;CAAa,YAAA,CAAA;EAxCzB,MAAA;EAAU,MAAA,CAAA;GACT,UAAU;GACV,SAAS,CAAC,OAAO;GACjB,UAAU;;;;;;;;;;;;;;;;;yBAiBa,YAAW;yBACX,YAAW;;;yBAGX,YAAW;yBACX,YAAW;;;;;;;;;GASlC,MAAM;IACJ,OAAO;IACP,MAAM;IACN,qBAAqB;GACtB;EACF,CAAA"}
|
|
@@ -77,7 +77,7 @@ var UiRow = class UiRow {
|
|
|
77
77
|
}
|
|
78
78
|
static ɵfac = i0.ɵɵngDeclareFactory({
|
|
79
79
|
minVersion: "12.0.0",
|
|
80
|
-
version: "22.2.
|
|
80
|
+
version: "22.2.2",
|
|
81
81
|
ngImport: i0,
|
|
82
82
|
type: UiRow,
|
|
83
83
|
deps: [],
|
|
@@ -85,7 +85,7 @@ var UiRow = class UiRow {
|
|
|
85
85
|
});
|
|
86
86
|
static ɵcmp = i0.ɵɵngDeclareComponent({
|
|
87
87
|
minVersion: "17.0.0",
|
|
88
|
-
version: "22.2.
|
|
88
|
+
version: "22.2.2",
|
|
89
89
|
type: UiRow,
|
|
90
90
|
isStandalone: true,
|
|
91
91
|
selector: "a[ui-row], button[ui-row]",
|
|
@@ -175,7 +175,7 @@ var UiRow = class UiRow {
|
|
|
175
175
|
};
|
|
176
176
|
i0.ɵɵngDeclareClassMetadata({
|
|
177
177
|
minVersion: "12.0.0",
|
|
178
|
-
version: "22.2.
|
|
178
|
+
version: "22.2.2",
|
|
179
179
|
ngImport: i0,
|
|
180
180
|
type: UiRow,
|
|
181
181
|
decorators: [{
|
|
@@ -276,7 +276,7 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
276
276
|
var UiRowItem = class UiRowItem {
|
|
277
277
|
static ɵfac = i0.ɵɵngDeclareFactory({
|
|
278
278
|
minVersion: "12.0.0",
|
|
279
|
-
version: "22.2.
|
|
279
|
+
version: "22.2.2",
|
|
280
280
|
ngImport: i0,
|
|
281
281
|
type: UiRowItem,
|
|
282
282
|
deps: [],
|
|
@@ -284,7 +284,7 @@ var UiRowItem = class UiRowItem {
|
|
|
284
284
|
});
|
|
285
285
|
static ɵdir = i0.ɵɵngDeclareDirective({
|
|
286
286
|
minVersion: "14.0.0",
|
|
287
|
-
version: "22.2.
|
|
287
|
+
version: "22.2.2",
|
|
288
288
|
type: UiRowItem,
|
|
289
289
|
isStandalone: true,
|
|
290
290
|
selector: "[uiRowItem]",
|
|
@@ -294,7 +294,7 @@ var UiRowItem = class UiRowItem {
|
|
|
294
294
|
};
|
|
295
295
|
i0.ɵɵngDeclareClassMetadata({
|
|
296
296
|
minVersion: "12.0.0",
|
|
297
|
-
version: "22.2.
|
|
297
|
+
version: "22.2.2",
|
|
298
298
|
ngImport: i0,
|
|
299
299
|
type: UiRowItem,
|
|
300
300
|
decorators: [{
|
|
@@ -313,7 +313,7 @@ var UiListRow = class UiListRow {
|
|
|
313
313
|
classes = computed(() => this.ruled() ? "flex min-h-18 items-center gap-3 py-1.5 lg:min-h-17 shadow-[inset_0_-1px_0_var(--hairline)]" : "flex min-h-18 items-center gap-3 py-1.5 lg:min-h-17", ...ngDevMode ? [{ debugName: "classes" }] : /* istanbul ignore next */ []);
|
|
314
314
|
static ɵfac = i0.ɵɵngDeclareFactory({
|
|
315
315
|
minVersion: "12.0.0",
|
|
316
|
-
version: "22.2.
|
|
316
|
+
version: "22.2.2",
|
|
317
317
|
ngImport: i0,
|
|
318
318
|
type: UiListRow,
|
|
319
319
|
deps: [],
|
|
@@ -321,7 +321,7 @@ var UiListRow = class UiListRow {
|
|
|
321
321
|
});
|
|
322
322
|
static ɵdir = i0.ɵɵngDeclareDirective({
|
|
323
323
|
minVersion: "17.1.0",
|
|
324
|
-
version: "22.2.
|
|
324
|
+
version: "22.2.2",
|
|
325
325
|
type: UiListRow,
|
|
326
326
|
isStandalone: true,
|
|
327
327
|
selector: "[uiListRow]",
|
|
@@ -338,7 +338,7 @@ var UiListRow = class UiListRow {
|
|
|
338
338
|
};
|
|
339
339
|
i0.ɵɵngDeclareClassMetadata({
|
|
340
340
|
minVersion: "12.0.0",
|
|
341
|
-
version: "22.2.
|
|
341
|
+
version: "22.2.2",
|
|
342
342
|
ngImport: i0,
|
|
343
343
|
type: UiListRow,
|
|
344
344
|
decorators: [{
|
|
@@ -360,7 +360,7 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
360
360
|
var UiRowGroup = class UiRowGroup {
|
|
361
361
|
static ɵfac = i0.ɵɵngDeclareFactory({
|
|
362
362
|
minVersion: "12.0.0",
|
|
363
|
-
version: "22.2.
|
|
363
|
+
version: "22.2.2",
|
|
364
364
|
ngImport: i0,
|
|
365
365
|
type: UiRowGroup,
|
|
366
366
|
deps: [],
|
|
@@ -368,7 +368,7 @@ var UiRowGroup = class UiRowGroup {
|
|
|
368
368
|
});
|
|
369
369
|
static ɵdir = i0.ɵɵngDeclareDirective({
|
|
370
370
|
minVersion: "14.0.0",
|
|
371
|
-
version: "22.2.
|
|
371
|
+
version: "22.2.2",
|
|
372
372
|
type: UiRowGroup,
|
|
373
373
|
isStandalone: true,
|
|
374
374
|
selector: "[uiRowGroup]",
|
|
@@ -378,7 +378,7 @@ var UiRowGroup = class UiRowGroup {
|
|
|
378
378
|
};
|
|
379
379
|
i0.ɵɵngDeclareClassMetadata({
|
|
380
380
|
minVersion: "12.0.0",
|
|
381
|
-
version: "22.2.
|
|
381
|
+
version: "22.2.2",
|
|
382
382
|
ngImport: i0,
|
|
383
383
|
type: UiRowGroup,
|
|
384
384
|
decorators: [{
|
|
@@ -392,7 +392,7 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
392
392
|
var UiRowTile = class UiRowTile {
|
|
393
393
|
static ɵfac = i0.ɵɵngDeclareFactory({
|
|
394
394
|
minVersion: "12.0.0",
|
|
395
|
-
version: "22.2.
|
|
395
|
+
version: "22.2.2",
|
|
396
396
|
ngImport: i0,
|
|
397
397
|
type: UiRowTile,
|
|
398
398
|
deps: [],
|
|
@@ -400,7 +400,7 @@ var UiRowTile = class UiRowTile {
|
|
|
400
400
|
});
|
|
401
401
|
static ɵdir = i0.ɵɵngDeclareDirective({
|
|
402
402
|
minVersion: "14.0.0",
|
|
403
|
-
version: "22.2.
|
|
403
|
+
version: "22.2.2",
|
|
404
404
|
type: UiRowTile,
|
|
405
405
|
isStandalone: true,
|
|
406
406
|
selector: "[uiRowTile]",
|
|
@@ -410,7 +410,7 @@ var UiRowTile = class UiRowTile {
|
|
|
410
410
|
};
|
|
411
411
|
i0.ɵɵngDeclareClassMetadata({
|
|
412
412
|
minVersion: "12.0.0",
|
|
413
|
-
version: "22.2.
|
|
413
|
+
version: "22.2.2",
|
|
414
414
|
ngImport: i0,
|
|
415
415
|
type: UiRowTile,
|
|
416
416
|
decorators: [{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"joanroucoux-cairn-ui-row.mjs","names":[],"sources":["../../../projects/ui/row/row.ts"],"sourcesContent":["import { Component, DestroyRef, Directive, ElementRef, booleanAttribute, computed, inject, input } from '@angular/core';\n\nimport { holdTransitionsUntilRendered } from '@joanroucoux/cairn-ui/motion';\n\nexport const ROW_SIZES = ['md', 'lg', 'xl', 'card', 'dense'] as const;\nexport type RowSize = (typeof ROW_SIZES)[number];\n\nexport const ROW_PADDINGS = ['md', 'sm', 'none'] as const;\nexport type RowPadding = (typeof ROW_PADDINGS)[number];\n\nexport const ROW_GAPS = ['default', 'sm'] as const;\nexport type RowGap = (typeof ROW_GAPS)[number];\n\nexport const ROW_TRAILINGS = ['none', 'chevron'] as const;\nexport type RowTrailing = (typeof ROW_TRAILINGS)[number];\n\nconst SIZE_CLASSES: Record<RowSize, string> = {\n md: 'min-h-14',\n lg: 'min-h-15',\n xl: 'min-h-18 pointer-fine:min-h-17',\n card: 'min-h-17',\n dense: 'min-h-14',\n};\n\nconst SIZE_GAPS: Record<RowSize, string> = { md: 'gap-2.5', lg: 'gap-2.5', xl: 'gap-3', card: 'gap-2', dense: 'gap-3' };\n\nconst PADDING_CLASSES: Record<RowPadding, string> = { md: 'px-2.5', sm: 'px-2', none: 'px-0' };\n\nconst BASE_CLASSES =\n 'flex w-full items-center py-1.5 rounded-control text-left select-none touch-manipulation focus-visible:outline-2 focus-visible:-outline-offset-2 focus-visible:outline-(--ring)';\n\nconst INTERACTIVE_CLASSES =\n 'transition-[scale,background-color] [transition-duration:var(--duration-press),var(--duration-fast)] ease-out hover:bg-(--glow) active:bg-(--soft) active:scale-(--press-scale)';\n\nconst CHEVRON_CLASSES = 'min-h-(--row-min) gap-3 px-0 hover:text-(--muted-foreground)';\n\nconst CHEVRON_INTERACTIVE_CLASSES = 'transition-colors [transition-duration:var(--duration-fast)] ease-out';\n\nconst UNAVAILABLE_CLASSES = 'opacity-50 cursor-not-allowed';\n\nconst SELECTED_CLASSES = 'bg-(--soft)';\n\n/**\n * Clickable row of a list: a holding, an account, a search result. With `trailing=\"chevron\"` it is a\n * flush link row: no side padding, a 16 px chevron at the end, the text dimming on hover.\n *\n * @example\n * <a ui-row [selected]=\"holding.id === openId()\" [routerLink]=\"['/holdings', holding.id]\">\n * {{ holding.name }}\n * </a>\n */\n@Component({\n selector: 'a[ui-row], button[ui-row]',\n template: `\n <ng-content />\n @if (trailing() === 'chevron') {\n <svg\n aria-hidden=\"true\"\n class=\"block flex-none fill-none stroke-(--subtle-foreground)\"\n height=\"16\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n stroke-width=\"1.75\"\n viewBox=\"0 0 24 24\"\n width=\"16\"\n >\n <path d=\"m9 18 6-6-6-6\" />\n </svg>\n }\n @if (busy()) {\n <span\n aria-hidden=\"true\"\n class=\"rounded-pill animate-cairn-spin size-4 flex-none border-2 border-current border-r-transparent\"\n ></span>\n }\n `,\n host: {\n '[class]': 'classes()',\n '[attr.aria-busy]': 'busy() || null',\n '[attr.aria-disabled]': \"busy() || unavailable() ? 'true' : null\",\n '[attr.aria-current]': \"selected() ? 'true' : null\",\n },\n})\nexport class UiRow {\n readonly selected = input(false, { transform: booleanAttribute });\n readonly busy = input(false, { transform: booleanAttribute });\n readonly unavailable = input(false, { transform: booleanAttribute });\n readonly size = input<RowSize>('md');\n readonly padding = input<RowPadding>('md');\n readonly gap = input<RowGap>('default');\n readonly trailing = input<RowTrailing>('none');\n\n protected readonly classes = computed(() => {\n const chevron = this.trailing() === 'chevron';\n const layout = chevron\n ? CHEVRON_CLASSES\n : `${SIZE_CLASSES[this.size()]} ${this.gap() === 'sm' ? 'gap-2' : SIZE_GAPS[this.size()]} ${PADDING_CLASSES[this.padding()]}`;\n const interactive = chevron ? CHEVRON_INTERACTIVE_CLASSES : INTERACTIVE_CLASSES;\n\n return `${BASE_CLASSES} ${layout}${this.unavailable() ? ` ${UNAVAILABLE_CLASSES}` : ` ${interactive}`}${this.selected() ? ` ${SELECTED_CLASSES}` : ''}${this.busy() ? ' pointer-events-none' : ''}`;\n });\n\n constructor() {\n holdTransitionsUntilRendered();\n const host = inject<ElementRef<HTMLElement>>(ElementRef).nativeElement;\n const guard = (event: Event): void => {\n if (this.busy() || this.unavailable()) {\n event.preventDefault();\n event.stopImmediatePropagation();\n }\n };\n\n host.addEventListener('click', guard, { capture: true });\n inject(DestroyRef).onDestroy(() => host.removeEventListener('click', guard, { capture: true }));\n }\n}\n\n/**\n * Lays out a `ui-row` with a trailing action beside it, such as a \"more\" icon button.\n *\n * @example\n * <div uiRowItem>\n * <a ui-row size=\"xl\" padding=\"sm\" routerLink=\"/accounts/1\">...</a>\n * <button ui-button variant=\"quiet\" size=\"icon-sm\" aria-label=\"Account actions\">...</button>\n * </div>\n */\n@Directive({\n selector: '[uiRowItem]',\n host: {\n class:\n 'flex items-center gap-1 [&>[ui-row]]:w-auto [&>[ui-row]]:min-w-0 [&>[ui-row]]:flex-1 [&>:not([ui-row])]:flex-none',\n },\n})\nexport class UiRowItem {}\n\n/**\n * Non-interactive row of a list, separated from the next by a hairline: a passkey with its delete\n * button, a device, a setting. Put it on an `li` or a `div`. Use `ui-row` instead when the whole\n * row is a link or an action.\n *\n * @example\n * <ul>\n * <li uiListRow>\n * <span class=\"flex-1\">MacBook Air</span>\n * <button ui-button variant=\"quiet-destructive\" size=\"icon-sm\" aria-label=\"Delete MacBook Air\">...</button>\n * </li>\n * </ul>\n */\n@Directive({\n selector: '[uiListRow]',\n host: { '[class]': 'classes()' },\n})\nexport class UiListRow {\n readonly ruled = input(true, { transform: booleanAttribute });\n\n protected readonly classes = computed(() =>\n this.ruled()\n ? 'flex min-h-18 items-center gap-3 py-1.5 lg:min-h-17 shadow-[inset_0_-1px_0_var(--hairline)]'\n : 'flex min-h-18 items-center gap-3 py-1.5 lg:min-h-17',\n );\n}\n\n/**\n * Groups link rows under a hairline, as the \"other ways\" links under a search list. Put it on a `div`\n * around `ui-row` with `trailing=\"chevron\"`.\n *\n * @example\n * <div uiRowGroup>\n * <button ui-row type=\"button\" trailing=\"chevron\">Saisir à la main</button>\n * </div>\n */\n@Directive({\n selector: '[uiRowGroup]',\n host: { class: 'flex flex-col pt-1 shadow-[inset_0_1px_0_var(--hairline)]' },\n})\nexport class UiRowGroup {}\n\n/**\n * The filled tile that leads a row, holding an icon. Put it on a `span` as the first child of a\n * `ui-row` or a `uiListRow`.\n *\n * @example\n * <a ui-row size=\"xl\" padding=\"sm\" href=\"/export\">\n * <span uiRowTile><svg lucideDownload [size]=\"18\" /></span>\n * Export\n * </a>\n */\n@Directive({\n selector: '[uiRowTile]',\n host: { class: 'rounded-control grid size-9 flex-none place-items-center bg-(--muted)' },\n})\nexport class UiRowTile {}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"joanroucoux-cairn-ui-row.mjs","names":[],"sources":["../../../projects/ui/row/row.ts"],"sourcesContent":["import { Component, DestroyRef, Directive, ElementRef, booleanAttribute, computed, inject, input } from '@angular/core';\n\nimport { holdTransitionsUntilRendered } from '@joanroucoux/cairn-ui/motion';\n\nexport const ROW_SIZES = ['md', 'lg', 'xl', 'card', 'dense'] as const;\nexport type RowSize = (typeof ROW_SIZES)[number];\n\nexport const ROW_PADDINGS = ['md', 'sm', 'none'] as const;\nexport type RowPadding = (typeof ROW_PADDINGS)[number];\n\nexport const ROW_GAPS = ['default', 'sm'] as const;\nexport type RowGap = (typeof ROW_GAPS)[number];\n\nexport const ROW_TRAILINGS = ['none', 'chevron'] as const;\nexport type RowTrailing = (typeof ROW_TRAILINGS)[number];\n\nconst SIZE_CLASSES: Record<RowSize, string> = {\n md: 'min-h-14',\n lg: 'min-h-15',\n xl: 'min-h-18 pointer-fine:min-h-17',\n card: 'min-h-17',\n dense: 'min-h-14',\n};\n\nconst SIZE_GAPS: Record<RowSize, string> = { md: 'gap-2.5', lg: 'gap-2.5', xl: 'gap-3', card: 'gap-2', dense: 'gap-3' };\n\nconst PADDING_CLASSES: Record<RowPadding, string> = { md: 'px-2.5', sm: 'px-2', none: 'px-0' };\n\nconst BASE_CLASSES =\n 'flex w-full items-center py-1.5 rounded-control text-left select-none touch-manipulation focus-visible:outline-2 focus-visible:-outline-offset-2 focus-visible:outline-(--ring)';\n\nconst INTERACTIVE_CLASSES =\n 'transition-[scale,background-color] [transition-duration:var(--duration-press),var(--duration-fast)] ease-out hover:bg-(--glow) active:bg-(--soft) active:scale-(--press-scale)';\n\nconst CHEVRON_CLASSES = 'min-h-(--row-min) gap-3 px-0 hover:text-(--muted-foreground)';\n\nconst CHEVRON_INTERACTIVE_CLASSES = 'transition-colors [transition-duration:var(--duration-fast)] ease-out';\n\nconst UNAVAILABLE_CLASSES = 'opacity-50 cursor-not-allowed';\n\nconst SELECTED_CLASSES = 'bg-(--soft)';\n\n/**\n * Clickable row of a list: a holding, an account, a search result. With `trailing=\"chevron\"` it is a\n * flush link row: no side padding, a 16 px chevron at the end, the text dimming on hover.\n *\n * @example\n * <a ui-row [selected]=\"holding.id === openId()\" [routerLink]=\"['/holdings', holding.id]\">\n * {{ holding.name }}\n * </a>\n */\n@Component({\n selector: 'a[ui-row], button[ui-row]',\n template: `\n <ng-content />\n @if (trailing() === 'chevron') {\n <svg\n aria-hidden=\"true\"\n class=\"block flex-none fill-none stroke-(--subtle-foreground)\"\n height=\"16\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n stroke-width=\"1.75\"\n viewBox=\"0 0 24 24\"\n width=\"16\"\n >\n <path d=\"m9 18 6-6-6-6\" />\n </svg>\n }\n @if (busy()) {\n <span\n aria-hidden=\"true\"\n class=\"rounded-pill animate-cairn-spin size-4 flex-none border-2 border-current border-r-transparent\"\n ></span>\n }\n `,\n host: {\n '[class]': 'classes()',\n '[attr.aria-busy]': 'busy() || null',\n '[attr.aria-disabled]': \"busy() || unavailable() ? 'true' : null\",\n '[attr.aria-current]': \"selected() ? 'true' : null\",\n },\n})\nexport class UiRow {\n readonly selected = input(false, { transform: booleanAttribute });\n readonly busy = input(false, { transform: booleanAttribute });\n readonly unavailable = input(false, { transform: booleanAttribute });\n readonly size = input<RowSize>('md');\n readonly padding = input<RowPadding>('md');\n readonly gap = input<RowGap>('default');\n readonly trailing = input<RowTrailing>('none');\n\n protected readonly classes = computed(() => {\n const chevron = this.trailing() === 'chevron';\n const layout = chevron\n ? CHEVRON_CLASSES\n : `${SIZE_CLASSES[this.size()]} ${this.gap() === 'sm' ? 'gap-2' : SIZE_GAPS[this.size()]} ${PADDING_CLASSES[this.padding()]}`;\n const interactive = chevron ? CHEVRON_INTERACTIVE_CLASSES : INTERACTIVE_CLASSES;\n\n return `${BASE_CLASSES} ${layout}${this.unavailable() ? ` ${UNAVAILABLE_CLASSES}` : ` ${interactive}`}${this.selected() ? ` ${SELECTED_CLASSES}` : ''}${this.busy() ? ' pointer-events-none' : ''}`;\n });\n\n constructor() {\n holdTransitionsUntilRendered();\n const host = inject<ElementRef<HTMLElement>>(ElementRef).nativeElement;\n const guard = (event: Event): void => {\n if (this.busy() || this.unavailable()) {\n event.preventDefault();\n event.stopImmediatePropagation();\n }\n };\n\n host.addEventListener('click', guard, { capture: true });\n inject(DestroyRef).onDestroy(() => host.removeEventListener('click', guard, { capture: true }));\n }\n}\n\n/**\n * Lays out a `ui-row` with a trailing action beside it, such as a \"more\" icon button.\n *\n * @example\n * <div uiRowItem>\n * <a ui-row size=\"xl\" padding=\"sm\" routerLink=\"/accounts/1\">...</a>\n * <button ui-button variant=\"quiet\" size=\"icon-sm\" aria-label=\"Account actions\">...</button>\n * </div>\n */\n@Directive({\n selector: '[uiRowItem]',\n host: {\n class:\n 'flex items-center gap-1 [&>[ui-row]]:w-auto [&>[ui-row]]:min-w-0 [&>[ui-row]]:flex-1 [&>:not([ui-row])]:flex-none',\n },\n})\nexport class UiRowItem {}\n\n/**\n * Non-interactive row of a list, separated from the next by a hairline: a passkey with its delete\n * button, a device, a setting. Put it on an `li` or a `div`. Use `ui-row` instead when the whole\n * row is a link or an action.\n *\n * @example\n * <ul>\n * <li uiListRow>\n * <span class=\"flex-1\">MacBook Air</span>\n * <button ui-button variant=\"quiet-destructive\" size=\"icon-sm\" aria-label=\"Delete MacBook Air\">...</button>\n * </li>\n * </ul>\n */\n@Directive({\n selector: '[uiListRow]',\n host: { '[class]': 'classes()' },\n})\nexport class UiListRow {\n readonly ruled = input(true, { transform: booleanAttribute });\n\n protected readonly classes = computed(() =>\n this.ruled()\n ? 'flex min-h-18 items-center gap-3 py-1.5 lg:min-h-17 shadow-[inset_0_-1px_0_var(--hairline)]'\n : 'flex min-h-18 items-center gap-3 py-1.5 lg:min-h-17',\n );\n}\n\n/**\n * Groups link rows under a hairline, as the \"other ways\" links under a search list. Put it on a `div`\n * around `ui-row` with `trailing=\"chevron\"`.\n *\n * @example\n * <div uiRowGroup>\n * <button ui-row type=\"button\" trailing=\"chevron\">Enter manually</button>\n * </div>\n */\n@Directive({\n selector: '[uiRowGroup]',\n host: { class: 'flex flex-col pt-1 shadow-[inset_0_1px_0_var(--hairline)]' },\n})\nexport class UiRowGroup {}\n\n/**\n * The filled tile that leads a row, holding an icon. Put it on a `span` as the first child of a\n * `ui-row` or a `uiListRow`.\n *\n * @example\n * <a ui-row size=\"xl\" padding=\"sm\" href=\"/export\">\n * <span uiRowTile><svg lucideDownload [size]=\"18\" /></span>\n * Export\n * </a>\n */\n@Directive({\n selector: '[uiRowTile]',\n host: { class: 'rounded-control grid size-9 flex-none place-items-center bg-(--muted)' },\n})\nexport class UiRowTile {}\n"],"mappings":"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"}
|
|
@@ -58,7 +58,7 @@ var UiSegmented = class UiSegmented {
|
|
|
58
58
|
}
|
|
59
59
|
static ɵfac = i0.ɵɵngDeclareFactory({
|
|
60
60
|
minVersion: "12.0.0",
|
|
61
|
-
version: "22.2.
|
|
61
|
+
version: "22.2.2",
|
|
62
62
|
ngImport: i0,
|
|
63
63
|
type: UiSegmented,
|
|
64
64
|
deps: [],
|
|
@@ -66,7 +66,7 @@ var UiSegmented = class UiSegmented {
|
|
|
66
66
|
});
|
|
67
67
|
static ɵcmp = i0.ɵɵngDeclareComponent({
|
|
68
68
|
minVersion: "17.0.0",
|
|
69
|
-
version: "22.2.
|
|
69
|
+
version: "22.2.2",
|
|
70
70
|
type: UiSegmented,
|
|
71
71
|
isStandalone: true,
|
|
72
72
|
selector: "ui-segmented",
|
|
@@ -161,7 +161,7 @@ var UiSegmented = class UiSegmented {
|
|
|
161
161
|
};
|
|
162
162
|
i0.ɵɵngDeclareClassMetadata({
|
|
163
163
|
minVersion: "12.0.0",
|
|
164
|
-
version: "22.2.
|
|
164
|
+
version: "22.2.2",
|
|
165
165
|
ngImport: i0,
|
|
166
166
|
type: UiSegmented,
|
|
167
167
|
decorators: [{
|
|
@@ -33,7 +33,7 @@ var UiSelectPill = class UiSelectPill {
|
|
|
33
33
|
pillClasses = computed(() => `${PILL_CLASSES} ${this.active() ? ACTIVE_PILL_CLASSES : REST_PILL_CLASSES}`, ...ngDevMode ? [{ debugName: "pillClasses" }] : /* istanbul ignore next */ []);
|
|
34
34
|
static ɵfac = i0.ɵɵngDeclareFactory({
|
|
35
35
|
minVersion: "12.0.0",
|
|
36
|
-
version: "22.2.
|
|
36
|
+
version: "22.2.2",
|
|
37
37
|
ngImport: i0,
|
|
38
38
|
type: UiSelectPill,
|
|
39
39
|
deps: [],
|
|
@@ -41,7 +41,7 @@ var UiSelectPill = class UiSelectPill {
|
|
|
41
41
|
});
|
|
42
42
|
static ɵcmp = i0.ɵɵngDeclareComponent({
|
|
43
43
|
minVersion: "17.0.0",
|
|
44
|
-
version: "22.2.
|
|
44
|
+
version: "22.2.2",
|
|
45
45
|
type: UiSelectPill,
|
|
46
46
|
isStandalone: true,
|
|
47
47
|
selector: "ui-select-pill",
|
|
@@ -155,7 +155,7 @@ var UiSelectPill = class UiSelectPill {
|
|
|
155
155
|
};
|
|
156
156
|
i0.ɵɵngDeclareClassMetadata({
|
|
157
157
|
minVersion: "12.0.0",
|
|
158
|
-
version: "22.2.
|
|
158
|
+
version: "22.2.2",
|
|
159
159
|
ngImport: i0,
|
|
160
160
|
type: UiSelectPill,
|
|
161
161
|
decorators: [{
|
|
@@ -32,7 +32,7 @@ var UiSelect = class UiSelect {
|
|
|
32
32
|
classes = computed(() => `${CONTROL_BASE_CLASSES} bg-(--background) ${SELECT_CLASSES} ${PICKER_CLASSES} ${CONTROL_SIZE_CLASSES[this.size()]}`, ...ngDevMode ? [{ debugName: "classes" }] : /* istanbul ignore next */ []);
|
|
33
33
|
static ɵfac = i0.ɵɵngDeclareFactory({
|
|
34
34
|
minVersion: "12.0.0",
|
|
35
|
-
version: "22.2.
|
|
35
|
+
version: "22.2.2",
|
|
36
36
|
ngImport: i0,
|
|
37
37
|
type: UiSelect,
|
|
38
38
|
deps: [],
|
|
@@ -40,7 +40,7 @@ var UiSelect = class UiSelect {
|
|
|
40
40
|
});
|
|
41
41
|
static ɵdir = i0.ɵɵngDeclareDirective({
|
|
42
42
|
minVersion: "17.1.0",
|
|
43
|
-
version: "22.2.
|
|
43
|
+
version: "22.2.2",
|
|
44
44
|
type: UiSelect,
|
|
45
45
|
isStandalone: true,
|
|
46
46
|
selector: "select[uiSelect]",
|
|
@@ -77,7 +77,7 @@ var UiSelect = class UiSelect {
|
|
|
77
77
|
};
|
|
78
78
|
i0.ɵɵngDeclareClassMetadata({
|
|
79
79
|
minVersion: "12.0.0",
|
|
80
|
-
version: "22.2.
|
|
80
|
+
version: "22.2.2",
|
|
81
81
|
ngImport: i0,
|
|
82
82
|
type: UiSelect,
|
|
83
83
|
decorators: [{
|
|
@@ -23,7 +23,7 @@ var UiSkeleton = class UiSkeleton {
|
|
|
23
23
|
}, ...ngDevMode ? [{ debugName: "bars" }] : /* istanbul ignore next */ []);
|
|
24
24
|
static ɵfac = i0.ɵɵngDeclareFactory({
|
|
25
25
|
minVersion: "12.0.0",
|
|
26
|
-
version: "22.2.
|
|
26
|
+
version: "22.2.2",
|
|
27
27
|
ngImport: i0,
|
|
28
28
|
type: UiSkeleton,
|
|
29
29
|
deps: [],
|
|
@@ -31,7 +31,7 @@ var UiSkeleton = class UiSkeleton {
|
|
|
31
31
|
});
|
|
32
32
|
static ɵcmp = i0.ɵɵngDeclareComponent({
|
|
33
33
|
minVersion: "17.0.0",
|
|
34
|
-
version: "22.2.
|
|
34
|
+
version: "22.2.2",
|
|
35
35
|
type: UiSkeleton,
|
|
36
36
|
isStandalone: true,
|
|
37
37
|
selector: "ui-skeleton",
|
|
@@ -76,7 +76,7 @@ var UiSkeleton = class UiSkeleton {
|
|
|
76
76
|
};
|
|
77
77
|
i0.ɵɵngDeclareClassMetadata({
|
|
78
78
|
minVersion: "12.0.0",
|
|
79
|
-
version: "22.2.
|
|
79
|
+
version: "22.2.2",
|
|
80
80
|
ngImport: i0,
|
|
81
81
|
type: UiSkeleton,
|
|
82
82
|
decorators: [{
|
|
@@ -16,7 +16,7 @@ var UiStaleLink = class UiStaleLink {
|
|
|
16
16
|
classes = computed(() => `${BASE_CLASSES} ${SIZE_CLASSES[this.size()]}${this.chevron() ? ` ${CHEVRON_CLASSES}` : ""}`, ...ngDevMode ? [{ debugName: "classes" }] : /* istanbul ignore next */ []);
|
|
17
17
|
static ɵfac = i0.ɵɵngDeclareFactory({
|
|
18
18
|
minVersion: "12.0.0",
|
|
19
|
-
version: "22.2.
|
|
19
|
+
version: "22.2.2",
|
|
20
20
|
ngImport: i0,
|
|
21
21
|
type: UiStaleLink,
|
|
22
22
|
deps: [],
|
|
@@ -24,7 +24,7 @@ var UiStaleLink = class UiStaleLink {
|
|
|
24
24
|
});
|
|
25
25
|
static ɵdir = i0.ɵɵngDeclareDirective({
|
|
26
26
|
minVersion: "17.1.0",
|
|
27
|
-
version: "22.2.
|
|
27
|
+
version: "22.2.2",
|
|
28
28
|
type: UiStaleLink,
|
|
29
29
|
isStandalone: true,
|
|
30
30
|
selector: "a[uiStaleLink]",
|
|
@@ -50,7 +50,7 @@ var UiStaleLink = class UiStaleLink {
|
|
|
50
50
|
};
|
|
51
51
|
i0.ɵɵngDeclareClassMetadata({
|
|
52
52
|
minVersion: "12.0.0",
|
|
53
|
-
version: "22.2.
|
|
53
|
+
version: "22.2.2",
|
|
54
54
|
ngImport: i0,
|
|
55
55
|
type: UiStaleLink,
|
|
56
56
|
decorators: [{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"joanroucoux-cairn-ui-stale-link.mjs","names":[],"sources":["../../../projects/ui/stale-link/stale-link.ts"],"sourcesContent":["import { Directive, booleanAttribute, computed, input } from '@angular/core';\n\n/** Available stale link sizes. */\nexport const STALE_LINK_SIZES = ['caption', 'label'] as const;\nexport type StaleLinkSize = (typeof STALE_LINK_SIZES)[number];\n\nconst BASE_CLASSES =\n \"relative inline-flex items-center gap-1 pointer-fine:gap-0.5 rounded-[4px] font-medium text-(--stale) hover:underline underline-offset-3 focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-(--ring) before:absolute before:inset-x-0 before:top-1/2 before:h-11 pointer-fine:before:h-10 before:-translate-y-1/2 before:content-['']\";\n\nconst SIZE_CLASSES: Record<StaleLinkSize, string> = {\n caption: 'text-caption',\n label: 'text-label',\n};\n\nconst CHEVRON_CLASSES =\n \"after:size-4 after:flex-none after:bg-current after:content-[''] after:mask-center after:mask-no-repeat after:mask-[url(data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27black%27%20stroke-width%3D%271.75%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D%27m9%2018%206-6-6-6%27%2F%3E%3C%2Fsvg%3E)]\";\n\n/**\n * Link in the stale tone, for a caption about data that is late or left out of a total, such as\n * \"1
|
|
1
|
+
{"version":3,"file":"joanroucoux-cairn-ui-stale-link.mjs","names":[],"sources":["../../../projects/ui/stale-link/stale-link.ts"],"sourcesContent":["import { Directive, booleanAttribute, computed, input } from '@angular/core';\n\n/** Available stale link sizes. */\nexport const STALE_LINK_SIZES = ['caption', 'label'] as const;\nexport type StaleLinkSize = (typeof STALE_LINK_SIZES)[number];\n\nconst BASE_CLASSES =\n \"relative inline-flex items-center gap-1 pointer-fine:gap-0.5 rounded-[4px] font-medium text-(--stale) hover:underline underline-offset-3 focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-(--ring) before:absolute before:inset-x-0 before:top-1/2 before:h-11 pointer-fine:before:h-10 before:-translate-y-1/2 before:content-['']\";\n\nconst SIZE_CLASSES: Record<StaleLinkSize, string> = {\n caption: 'text-caption',\n label: 'text-label',\n};\n\nconst CHEVRON_CLASSES =\n \"after:size-4 after:flex-none after:bg-current after:content-[''] after:mask-center after:mask-no-repeat after:mask-[url(data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27black%27%20stroke-width%3D%271.75%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D%27m9%2018%206-6-6-6%27%2F%3E%3C%2Fsvg%3E)]\";\n\n/**\n * Link in the stale tone, for a caption about data that is late or left out of a total, such as\n * \"1 holding without a price, not counted\". `chevron` adds a trailing chevron, `size` is `caption` (the\n * default) or `label`.\n *\n * @example\n * <a uiStaleLink chevron size=\"label\" routerLink=\"/holdings\">1 stale price</a>\n */\n@Directive({\n selector: 'a[uiStaleLink]',\n host: { '[class]': 'classes()' },\n})\nexport class UiStaleLink {\n readonly chevron = input(false, { transform: booleanAttribute });\n readonly size = input<StaleLinkSize>('caption');\n\n protected readonly classes = computed(\n () => `${BASE_CLASSES} ${SIZE_CLASSES[this.size()]}${this.chevron() ? ` ${CHEVRON_CLASSES}` : ''}`,\n );\n}\n"],"mappings":";;AAGA,MAAa,mBAAmB,CAAC,WAAW,OAAO;AAGnD,MAAM,eACJ;AAEF,MAAM,eAA8C;CAClD,SAAS;CACT,OAAO;AACR;AAED,MAAM,kBACJ;AAcF,IAAa,cAAb,MAAa,YAAW;CACb,UAAU,MAAM,OAAK;EAAA,GAAA,YAAA,EAAA,WAAA,UAAA,+BAAA,CAAA;EAAI,WAAW;CAAgB,CAAA;CACpD,OAAO,MAAqB,WAAU,GAAA,YAAA,CAAA,EAAA,WAAA,OAAA,CAAA,+BAAA,CAAA,CAAA;CAE5B,UAAU,eACrB,GAAG,aAAY,GAAI,aAAa,KAAK,KAAI,KAAM,KAAK,QAAO,IAAK,IAAI,oBAAoB,MAC/F,GAAA,YAAA,CAAA,EAAA,WAAA,UAAA,CAAA,+BAAA,CAAA,CAAA;CANU,OAAA,OAAA,GAAA,mBAAA;EAAA,YAAA;EAAA,SAAA;EAAA,UAAA;EAAA,MAAA;EAAW,MAAA,CAAA;EAAA,QAAA,GAAA,gBAAA;CAAA,CAAA;CAAX,OAAA,OAAA,GAAA,qBAAA;EAAA,YAAA;EAAA,SAAA;EAAA,MAAA;EAAW,cAAA;EAAA,UAAA;EAAA,QAAA;GAAA,SAAA;IAAA,mBAAA;IAAA,YAAA;IAAA,UAAA;IAAA,YAAA;IAAA,mBAAA;GAAA;GAAA,MAAA;IAAA,mBAAA;IAAA,YAAA;IAAA,UAAA;IAAA,YAAA;IAAA,mBAAA;GAAA;EAAA;EAAA,MAAA,EAAA,YAAA,EAAA,SAAA,YAAA,EAAA;EAAA,UAAA;CAAA,CAAA;;AAAX,GAAA,yBAAA;CAAA,YAAA;CAAA,SAAA;CAAA,UAAA;CAAA,MAAA;CAAW,YAAA,CAAA;EAJvB,MAAA;EAAU,MAAA,CAAA;GACT,UAAU;GACV,MAAM,EAAE,WAAW,YAAW;EAC/B,CAAA"}
|
|
@@ -21,7 +21,7 @@ var UiStat = class UiStat {
|
|
|
21
21
|
valueClasses = computed(() => VALUE_CLASSES[this.size()], ...ngDevMode ? [{ debugName: "valueClasses" }] : /* istanbul ignore next */ []);
|
|
22
22
|
static ɵfac = i0.ɵɵngDeclareFactory({
|
|
23
23
|
minVersion: "12.0.0",
|
|
24
|
-
version: "22.2.
|
|
24
|
+
version: "22.2.2",
|
|
25
25
|
ngImport: i0,
|
|
26
26
|
type: UiStat,
|
|
27
27
|
deps: [],
|
|
@@ -29,7 +29,7 @@ var UiStat = class UiStat {
|
|
|
29
29
|
});
|
|
30
30
|
static ɵcmp = i0.ɵɵngDeclareComponent({
|
|
31
31
|
minVersion: "17.1.0",
|
|
32
|
-
version: "22.2.
|
|
32
|
+
version: "22.2.2",
|
|
33
33
|
type: UiStat,
|
|
34
34
|
isStandalone: true,
|
|
35
35
|
selector: "ui-stat",
|
|
@@ -74,7 +74,7 @@ var UiStat = class UiStat {
|
|
|
74
74
|
};
|
|
75
75
|
i0.ɵɵngDeclareClassMetadata({
|
|
76
76
|
minVersion: "12.0.0",
|
|
77
|
-
version: "22.2.
|
|
77
|
+
version: "22.2.2",
|
|
78
78
|
ngImport: i0,
|
|
79
79
|
type: UiStat,
|
|
80
80
|
decorators: [{
|
|
@@ -9,7 +9,7 @@ var UiSwitch = class UiSwitch {
|
|
|
9
9
|
}
|
|
10
10
|
static ɵfac = i0.ɵɵngDeclareFactory({
|
|
11
11
|
minVersion: "12.0.0",
|
|
12
|
-
version: "22.2.
|
|
12
|
+
version: "22.2.2",
|
|
13
13
|
ngImport: i0,
|
|
14
14
|
type: UiSwitch,
|
|
15
15
|
deps: [],
|
|
@@ -17,7 +17,7 @@ var UiSwitch = class UiSwitch {
|
|
|
17
17
|
});
|
|
18
18
|
static ɵdir = i0.ɵɵngDeclareDirective({
|
|
19
19
|
minVersion: "14.0.0",
|
|
20
|
-
version: "22.2.
|
|
20
|
+
version: "22.2.2",
|
|
21
21
|
type: UiSwitch,
|
|
22
22
|
isStandalone: true,
|
|
23
23
|
selector: "input[type=checkbox][uiSwitch]",
|
|
@@ -30,7 +30,7 @@ var UiSwitch = class UiSwitch {
|
|
|
30
30
|
};
|
|
31
31
|
i0.ɵɵngDeclareClassMetadata({
|
|
32
32
|
minVersion: "12.0.0",
|
|
33
|
-
version: "22.2.
|
|
33
|
+
version: "22.2.2",
|
|
34
34
|
ngImport: i0,
|
|
35
35
|
type: UiSwitch,
|
|
36
36
|
decorators: [{
|
|
@@ -14,7 +14,7 @@ var UiTabBar = class UiTabBar {
|
|
|
14
14
|
}
|
|
15
15
|
static ɵfac = i0.ɵɵngDeclareFactory({
|
|
16
16
|
minVersion: "12.0.0",
|
|
17
|
-
version: "22.2.
|
|
17
|
+
version: "22.2.2",
|
|
18
18
|
ngImport: i0,
|
|
19
19
|
type: UiTabBar,
|
|
20
20
|
deps: [],
|
|
@@ -22,7 +22,7 @@ var UiTabBar = class UiTabBar {
|
|
|
22
22
|
});
|
|
23
23
|
static ɵcmp = i0.ɵɵngDeclareComponent({
|
|
24
24
|
minVersion: "14.0.0",
|
|
25
|
-
version: "22.2.
|
|
25
|
+
version: "22.2.2",
|
|
26
26
|
type: UiTabBar,
|
|
27
27
|
isStandalone: true,
|
|
28
28
|
selector: "nav[ui-tab-bar]",
|
|
@@ -34,7 +34,7 @@ var UiTabBar = class UiTabBar {
|
|
|
34
34
|
};
|
|
35
35
|
i0.ɵɵngDeclareClassMetadata({
|
|
36
36
|
minVersion: "12.0.0",
|
|
37
|
-
version: "22.2.
|
|
37
|
+
version: "22.2.2",
|
|
38
38
|
ngImport: i0,
|
|
39
39
|
type: UiTabBar,
|
|
40
40
|
decorators: [{
|
|
@@ -55,7 +55,7 @@ var UiTab = class UiTab {
|
|
|
55
55
|
classes = computed(() => `${TAB_CLASSES} ${this.active() ? ACTIVE_TAB_CLASSES : INACTIVE_TAB_CLASSES}`, ...ngDevMode ? [{ debugName: "classes" }] : /* istanbul ignore next */ []);
|
|
56
56
|
static ɵfac = i0.ɵɵngDeclareFactory({
|
|
57
57
|
minVersion: "12.0.0",
|
|
58
|
-
version: "22.2.
|
|
58
|
+
version: "22.2.2",
|
|
59
59
|
ngImport: i0,
|
|
60
60
|
type: UiTab,
|
|
61
61
|
deps: [],
|
|
@@ -63,7 +63,7 @@ var UiTab = class UiTab {
|
|
|
63
63
|
});
|
|
64
64
|
static ɵcmp = i0.ɵɵngDeclareComponent({
|
|
65
65
|
minVersion: "17.1.0",
|
|
66
|
-
version: "22.2.
|
|
66
|
+
version: "22.2.2",
|
|
67
67
|
type: UiTab,
|
|
68
68
|
isStandalone: true,
|
|
69
69
|
selector: "a[ui-tab]",
|
|
@@ -88,7 +88,7 @@ var UiTab = class UiTab {
|
|
|
88
88
|
};
|
|
89
89
|
i0.ɵɵngDeclareClassMetadata({
|
|
90
90
|
minVersion: "12.0.0",
|
|
91
|
-
version: "22.2.
|
|
91
|
+
version: "22.2.2",
|
|
92
92
|
ngImport: i0,
|
|
93
93
|
type: UiTab,
|
|
94
94
|
decorators: [{
|