@bitforgehq/ui 0.3.3 → 0.4.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 +91 -0
- package/README.md +4 -4
- package/ai/MANIFEST.index.json +36 -0
- package/ai/MANIFEST.json +414 -14
- package/ai/REFERENCE.index.json +35 -0
- package/ai/REFERENCE.json +184 -8
- package/ai/UI_GUIDE.md +25 -4
- package/ai/components/badge.md +39 -2
- package/ai/components/list-item.md +105 -9
- package/ai/components/step.md +112 -0
- package/ai/components/steps.md +124 -0
- package/ai/components/table.md +98 -2
- package/ai/components/timeline-event.md +144 -0
- package/ai/components/timeline.md +201 -0
- package/ai/components/toggle.md +11 -1
- package/ai/reference/bf-action-directive.md +3 -1
- package/ai/reference/bf-badge-emphasis.md +27 -0
- package/ai/reference/bf-labels.md +1 -0
- package/ai/reference/bf-step-heading-level.md +28 -0
- package/ai/reference/bf-table-align.md +1 -1
- package/ai/reference/bf-table-column-align.md +33 -0
- package/ai/reference/bf-table-column.md +7 -7
- package/ai/reference/bf-table-harness.md +12 -0
- package/ai/reference/bf-timeline-tone.md +31 -0
- package/ai/reference/bf-toggle-harness.md +55 -0
- package/ai/reference/provide-bf-labels.md +1 -1
- package/dark-ink.css +124 -0
- package/fesm2022/bitforgehq-ui-mobile.mjs +2 -1
- package/fesm2022/bitforgehq-ui-mobile.mjs.map +1 -1
- package/fesm2022/bitforgehq-ui-testing.mjs +51 -2
- package/fesm2022/bitforgehq-ui-testing.mjs.map +1 -1
- package/fesm2022/bitforgehq-ui.mjs +682 -32
- package/fesm2022/bitforgehq-ui.mjs.map +1 -1
- package/llms-full.txt +1072 -15
- package/llms.txt +9 -0
- package/package.json +2 -1
- package/theme.css +24 -0
- package/types/bitforgehq-ui-testing.d.ts +76 -1
- package/types/bitforgehq-ui.d.ts +288 -8
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as i0 from "@angular/core";
|
|
2
|
-
import { Component, DOCUMENT, DestroyRef, Directive, ElementRef, HostAttributeToken, Injectable, InjectionToken, Injector, PLATFORM_ID, TemplateRef, afterNextRender, afterRenderEffect, booleanAttribute, computed, contentChild, contentChildren, effect, inject, input, linkedSignal, makeEnvironmentProviders, model, numberAttribute, output, provideEnvironmentInitializer, signal, untracked, viewChild, viewChildren } from "@angular/core";
|
|
2
|
+
import { Component, DOCUMENT, DestroyRef, Directive, ElementRef, HostAttributeToken, Injectable, InjectionToken, Injector, LOCALE_ID, PLATFORM_ID, TemplateRef, afterNextRender, afterRenderEffect, booleanAttribute, computed, contentChild, contentChildren, effect, inject, input, linkedSignal, makeEnvironmentProviders, model, numberAttribute, output, provideEnvironmentInitializer, signal, untracked, viewChild, viewChildren } from "@angular/core";
|
|
3
3
|
import { NgTemplateOutlet, isPlatformBrowser } from "@angular/common";
|
|
4
4
|
const BF_DEFAULT_VALUES = {
|
|
5
5
|
fieldSize: "md",
|
|
@@ -96,6 +96,7 @@ const BF_DEFAULT_LABELS = {
|
|
|
96
96
|
chartValue: "Value",
|
|
97
97
|
chartEmpty: "No data to show",
|
|
98
98
|
chartError: "The data could not be loaded",
|
|
99
|
+
listItemUnread: "Unread",
|
|
99
100
|
validation: {
|
|
100
101
|
required: "Fill in this field",
|
|
101
102
|
email: "Enter a valid email address",
|
|
@@ -198,6 +199,7 @@ function mergeLabels(parent, o) {
|
|
|
198
199
|
chartValue: o.chartValue ?? parent.chartValue,
|
|
199
200
|
chartEmpty: o.chartEmpty ?? parent.chartEmpty,
|
|
200
201
|
chartError: o.chartError ?? parent.chartError,
|
|
202
|
+
listItemUnread: o.listItemUnread ?? parent.listItemUnread,
|
|
201
203
|
validation: {
|
|
202
204
|
required: v.required ?? pv.required,
|
|
203
205
|
email: v.email ?? pv.email,
|
|
@@ -1129,7 +1131,9 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
1129
1131
|
}
|
|
1130
1132
|
});
|
|
1131
1133
|
const LABEL_BASE$1 = "inline-flex items-center rounded-control px-2.5 py-1.25 text-micro font-bold leading-none";
|
|
1132
|
-
const COUNT_BASE = "inline-flex h-box min-w-box items-center justify-center rounded-control
|
|
1134
|
+
const COUNT_BASE = "inline-flex h-box min-w-box items-center justify-center rounded-control px-1.75 text-micro font-bold leading-none";
|
|
1135
|
+
const COUNT_SOFT = "bg-primary text-on-primary";
|
|
1136
|
+
const STRONG_FORCED = "forced-colors:outline forced-colors:outline-[CanvasText]";
|
|
1133
1137
|
const VARIANT$4 = {
|
|
1134
1138
|
neutral: "bg-neutral-soft text-neutral",
|
|
1135
1139
|
primary: "bg-primary-soft text-primary-strong",
|
|
@@ -1138,16 +1142,25 @@ const VARIANT$4 = {
|
|
|
1138
1142
|
danger: "bg-danger-soft text-danger",
|
|
1139
1143
|
info: "bg-info-soft text-info"
|
|
1140
1144
|
};
|
|
1145
|
+
const STRONG = {
|
|
1146
|
+
neutral: "bg-neutral-strong text-on-neutral-strong",
|
|
1147
|
+
primary: "bg-primary text-on-primary",
|
|
1148
|
+
success: "bg-success-strong text-on-success-strong",
|
|
1149
|
+
warning: "bg-warning-strong text-on-warning-strong",
|
|
1150
|
+
danger: "bg-danger-strong text-on-danger-strong",
|
|
1151
|
+
info: "bg-info-strong text-on-info-strong"
|
|
1152
|
+
};
|
|
1141
1153
|
var BfBadgeComponent = class BfBadgeComponent {
|
|
1142
1154
|
variant = input("neutral", ...ngDevMode ? [{ debugName: "variant" }] : /* istanbul ignore next */ []);
|
|
1155
|
+
emphasis = input("soft", ...ngDevMode ? [{ debugName: "emphasis" }] : /* istanbul ignore next */ []);
|
|
1143
1156
|
count = input(void 0, ...ngDevMode ? [{ debugName: "count" }] : /* istanbul ignore next */ []);
|
|
1144
1157
|
countLabel = input("", ...ngDevMode ? [{ debugName: "countLabel" }] : /* istanbul ignore next */ []);
|
|
1145
|
-
classes = computed(() => `${LABEL_BASE$1} ${VARIANT$4[this.variant()]}`, ...ngDevMode ? [{ debugName: "classes" }] : /* istanbul ignore next */ []);
|
|
1158
|
+
classes = computed(() => this.emphasis() === "strong" ? `${LABEL_BASE$1} ${STRONG[this.variant()]} ${STRONG_FORCED}` : `${LABEL_BASE$1} ${VARIANT$4[this.variant()]}`, ...ngDevMode ? [{ debugName: "classes" }] : /* istanbul ignore next */ []);
|
|
1146
1159
|
countText = computed(() => {
|
|
1147
1160
|
const c = this.count();
|
|
1148
1161
|
return c === void 0 ? null : c > 99 ? "99+" : String(c);
|
|
1149
1162
|
}, ...ngDevMode ? [{ debugName: "countText" }] : /* istanbul ignore next */ []);
|
|
1150
|
-
countClasses = COUNT_BASE;
|
|
1163
|
+
countClasses = computed(() => this.emphasis() === "strong" ? `${COUNT_BASE} ${STRONG[this.variant()]} ${STRONG_FORCED}` : `${COUNT_BASE} ${COUNT_SOFT}`, ...ngDevMode ? [{ debugName: "countClasses" }] : /* istanbul ignore next */ []);
|
|
1151
1164
|
static ɵfac = i0.ɵɵngDeclareFactory({
|
|
1152
1165
|
minVersion: "12.0.0",
|
|
1153
1166
|
version: "22.1.7",
|
|
@@ -1170,6 +1183,13 @@ var BfBadgeComponent = class BfBadgeComponent {
|
|
|
1170
1183
|
isRequired: false,
|
|
1171
1184
|
transformFunction: null
|
|
1172
1185
|
},
|
|
1186
|
+
emphasis: {
|
|
1187
|
+
classPropertyName: "emphasis",
|
|
1188
|
+
publicName: "emphasis",
|
|
1189
|
+
isSignal: true,
|
|
1190
|
+
isRequired: false,
|
|
1191
|
+
transformFunction: null
|
|
1192
|
+
},
|
|
1173
1193
|
count: {
|
|
1174
1194
|
classPropertyName: "count",
|
|
1175
1195
|
publicName: "count",
|
|
@@ -1189,7 +1209,7 @@ var BfBadgeComponent = class BfBadgeComponent {
|
|
|
1189
1209
|
ngImport: i0,
|
|
1190
1210
|
template: `
|
|
1191
1211
|
@if (countText(); as text) {
|
|
1192
|
-
<span [class]="countClasses"
|
|
1212
|
+
<span [class]="countClasses()"
|
|
1193
1213
|
>{{ text }}
|
|
1194
1214
|
@if (countLabel()) {
|
|
1195
1215
|
<span class="sr-only"> {{ countLabel() }}</span>
|
|
@@ -1214,7 +1234,7 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
1214
1234
|
host: { class: "inline-flex" },
|
|
1215
1235
|
template: `
|
|
1216
1236
|
@if (countText(); as text) {
|
|
1217
|
-
<span [class]="countClasses"
|
|
1237
|
+
<span [class]="countClasses()"
|
|
1218
1238
|
>{{ text }}
|
|
1219
1239
|
@if (countLabel()) {
|
|
1220
1240
|
<span class="sr-only"> {{ countLabel() }}</span>
|
|
@@ -1235,6 +1255,14 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
1235
1255
|
required: false
|
|
1236
1256
|
}]
|
|
1237
1257
|
}],
|
|
1258
|
+
emphasis: [{
|
|
1259
|
+
type: i0.Input,
|
|
1260
|
+
args: [{
|
|
1261
|
+
isSignal: true,
|
|
1262
|
+
alias: "emphasis",
|
|
1263
|
+
required: false
|
|
1264
|
+
}]
|
|
1265
|
+
}],
|
|
1238
1266
|
count: [{
|
|
1239
1267
|
type: i0.Input,
|
|
1240
1268
|
args: [{
|
|
@@ -3516,7 +3544,7 @@ const ROW$4 = {
|
|
|
3516
3544
|
md: "min-h-10 pointer-coarse:min-h-hit",
|
|
3517
3545
|
lg: "min-h-12"
|
|
3518
3546
|
};
|
|
3519
|
-
const TEXT$
|
|
3547
|
+
const TEXT$4 = {
|
|
3520
3548
|
sm: "text-label-sm",
|
|
3521
3549
|
md: "text-label",
|
|
3522
3550
|
lg: "text-label"
|
|
@@ -3593,7 +3621,7 @@ var BfCheckboxComponent = class BfCheckboxComponent {
|
|
|
3593
3621
|
ROW$4[this.resolvedSize()],
|
|
3594
3622
|
LABEL_MODE$1[this.mode()]
|
|
3595
3623
|
].join(" "), ...ngDevMode ? [{ debugName: "labelClasses" }] : /* istanbul ignore next */ []);
|
|
3596
|
-
textClasses = computed(() => `text-text peer-disabled:text-text-disabled font-semibold empty:hidden ${TEXT$
|
|
3624
|
+
textClasses = computed(() => `text-text peer-disabled:text-text-disabled font-semibold empty:hidden ${TEXT$4[this.resolvedSize()]}`, ...ngDevMode ? [{ debugName: "textClasses" }] : /* istanbul ignore next */ []);
|
|
3597
3625
|
errorClasses = computed(() => `text-danger text-micro ${ERROR_INDENT[this.resolvedSize()]}`, ...ngDevMode ? [{ debugName: "errorClasses" }] : /* istanbul ignore next */ []);
|
|
3598
3626
|
boxClasses = computed(() => {
|
|
3599
3627
|
const state = this.checked() || this.indeterminate() ? this.readonly() ? "readonlyOn" : "on" : this.showError() ? "error" : this.readonly() ? "readonly" : "off";
|
|
@@ -3985,7 +4013,7 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
3985
4013
|
const TRACK_BASE$1 = "relative flex shrink-0 items-center rounded-control border-[1.5px] p-[1.5px] transition-colors peer-focus-visible:ring-4 peer-focus-visible:ring-ring peer-focus-visible:outline-hidden";
|
|
3986
4014
|
const KNOB_BASE = "block rounded-control border-[1.5px] border-transparent shadow-segment transition-transform";
|
|
3987
4015
|
const ROW$3 = {
|
|
3988
|
-
sm: "min-h-8 pointer-coarse:min-h-hit",
|
|
4016
|
+
sm: "min-h-8 pointer-coarse:min-h-hit pointer-coarse:min-w-hit",
|
|
3989
4017
|
md: "min-h-10 pointer-coarse:min-h-hit",
|
|
3990
4018
|
lg: "min-h-12"
|
|
3991
4019
|
};
|
|
@@ -4013,7 +4041,7 @@ const KNOB_TRAVEL = {
|
|
|
4013
4041
|
off: "translate-x-0"
|
|
4014
4042
|
}
|
|
4015
4043
|
};
|
|
4016
|
-
const TEXT$
|
|
4044
|
+
const TEXT$3 = {
|
|
4017
4045
|
sm: "text-label-sm",
|
|
4018
4046
|
md: "text-label",
|
|
4019
4047
|
lg: "text-label"
|
|
@@ -4094,7 +4122,7 @@ var BfToggleComponent = class BfToggleComponent {
|
|
|
4094
4122
|
resolvedSize = computed(() => this.size() ?? this.defaults.controlSize, ...ngDevMode ? [{ debugName: "resolvedSize" }] : /* istanbul ignore next */ []);
|
|
4095
4123
|
mode = computed(() => this.disabled() ? "disabled" : this.readonly() ? "readonly" : "editable", ...ngDevMode ? [{ debugName: "mode" }] : /* istanbul ignore next */ []);
|
|
4096
4124
|
labelClasses = computed(() => [
|
|
4097
|
-
this.labelPosition() === "start" ? "flex w-full flex-row-reverse items-center justify-between gap-2.5" : "inline-flex items-center gap-2.5",
|
|
4125
|
+
this.labelPosition() === "start" ? "flex w-full flex-row-reverse items-center justify-between gap-2.5" : "inline-flex items-center justify-center gap-2.5",
|
|
4098
4126
|
ROW$3[this.resolvedSize()],
|
|
4099
4127
|
LABEL_MODE[this.mode()]
|
|
4100
4128
|
].join(" "), ...ngDevMode ? [{ debugName: "labelClasses" }] : /* istanbul ignore next */ []);
|
|
@@ -4104,7 +4132,7 @@ var BfToggleComponent = class BfToggleComponent {
|
|
|
4104
4132
|
TRACK_FILL$1[this.mode()][this.checked() ? "on" : "off"],
|
|
4105
4133
|
TRACK_PRESSED[this.mode()]
|
|
4106
4134
|
].filter(Boolean).join(" "), ...ngDevMode ? [{ debugName: "trackClasses" }] : /* istanbul ignore next */ []);
|
|
4107
|
-
textClasses = computed(() => `text-text peer-disabled:text-text-disabled min-w-0 font-semibold wrap-anywhere ${TEXT$
|
|
4135
|
+
textClasses = computed(() => `text-text peer-disabled:text-text-disabled min-w-0 font-semibold wrap-anywhere ${TEXT$3[this.resolvedSize()]}`, ...ngDevMode ? [{ debugName: "textClasses" }] : /* istanbul ignore next */ []);
|
|
4108
4136
|
knobClasses = computed(() => {
|
|
4109
4137
|
const on = this.checked();
|
|
4110
4138
|
const fill = KNOB_FILL[this.mode()][on ? "on" : "off"];
|
|
@@ -4518,7 +4546,7 @@ const DOT_SIZE = {
|
|
|
4518
4546
|
md: "size-3",
|
|
4519
4547
|
lg: "size-3.5"
|
|
4520
4548
|
};
|
|
4521
|
-
const TEXT$
|
|
4549
|
+
const TEXT$2 = {
|
|
4522
4550
|
sm: "text-label-sm",
|
|
4523
4551
|
md: "text-label",
|
|
4524
4552
|
lg: "text-label"
|
|
@@ -4580,7 +4608,7 @@ var BfRadioGroupComponent = class BfRadioGroupComponent {
|
|
|
4580
4608
|
defaults = inject(BF_DEFAULTS);
|
|
4581
4609
|
selectedIndex = computed(() => choiceIndex(this.options(), this.value(), this.compareWith()), ...ngDevMode ? [{ debugName: "selectedIndex" }] : /* istanbul ignore next */ []);
|
|
4582
4610
|
resolvedSize = computed(() => this.size() ?? this.defaults.controlSize, ...ngDevMode ? [{ debugName: "resolvedSize" }] : /* istanbul ignore next */ []);
|
|
4583
|
-
textClasses = computed(() => `font-semibold ${TEXT$
|
|
4611
|
+
textClasses = computed(() => `font-semibold ${TEXT$2[this.resolvedSize()]}`, ...ngDevMode ? [{ debugName: "textClasses" }] : /* istanbul ignore next */ []);
|
|
4584
4612
|
errorText = computed(() => fieldErrorText(this.errorMessage(), this.touched(), this.errors(), this.labels.validation), ...ngDevMode ? [{ debugName: "errorText" }] : /* istanbul ignore next */ []);
|
|
4585
4613
|
showError = computed(() => fieldShowsError(this.errorText(), this.invalid(), this.touched()), ...ngDevMode ? [{ debugName: "showError" }] : /* istanbul ignore next */ []);
|
|
4586
4614
|
message = heldMessage(this.errorText);
|
|
@@ -6443,10 +6471,11 @@ const ACTION$1 = {
|
|
|
6443
6471
|
action: "cursor-pointer hover:bg-surface-muted has-[[data-bf-action]:active]:bg-surface-pressed has-[[data-bf-action]:active]:after:border-text-muted",
|
|
6444
6472
|
focused: "cursor-pointer hover:bg-surface-muted has-[[data-bf-action]:active]:bg-surface-pressed has-[[data-bf-action]:active]:after:border-text-muted ring-4 ring-ring"
|
|
6445
6473
|
};
|
|
6446
|
-
const TEXT = {
|
|
6474
|
+
const TEXT$1 = {
|
|
6447
6475
|
wrap: "wrap-anywhere",
|
|
6448
6476
|
truncate: "truncate"
|
|
6449
6477
|
};
|
|
6478
|
+
const UNREAD_DOT = "absolute -start-2.5 mt-[7px] size-1.5 rounded-full bg-primary forced-colors:bg-[CanvasText]";
|
|
6450
6479
|
const CHEVRON$2 = "after:ms-auto after:h-2.5 after:w-2.5 after:shrink-0 after:-translate-x-1 after:rotate-45 rtl:after:translate-x-1 rtl:after:-rotate-135 after:border-t-[1.5px] after:border-r-[1.5px] after:border-text-subtle after:content-['']";
|
|
6451
6480
|
var BfListItemComponent = class BfListItemComponent {
|
|
6452
6481
|
title = input("", ...ngDevMode ? [{ debugName: "title" }] : /* istanbul ignore next */ []);
|
|
@@ -6467,15 +6496,26 @@ var BfListItemComponent = class BfListItemComponent {
|
|
|
6467
6496
|
...ngDevMode ? { debugName: "truncate" } : /* istanbul ignore next */ {},
|
|
6468
6497
|
transform: booleanAttribute
|
|
6469
6498
|
});
|
|
6499
|
+
unread = input(false, {
|
|
6500
|
+
...ngDevMode ? { debugName: "unread" } : /* istanbul ignore next */ {},
|
|
6501
|
+
transform: booleanAttribute
|
|
6502
|
+
});
|
|
6470
6503
|
clicked = output();
|
|
6471
6504
|
role = inject(BF_LIST, { optional: true }) ? "listitem" : null;
|
|
6505
|
+
labels = inject(BF_LABELS);
|
|
6506
|
+
unreadDot = UNREAD_DOT;
|
|
6472
6507
|
actions = signal(0, ...ngDevMode ? [{ debugName: "actions" }] : /* istanbul ignore next */ []);
|
|
6473
6508
|
actionFocusVisible = signal(false, ...ngDevMode ? [{ debugName: "actionFocusVisible" }] : /* istanbul ignore next */ []);
|
|
6474
6509
|
actionState = computed(() => {
|
|
6475
6510
|
if (this.actions() === 0) return "none";
|
|
6476
6511
|
return this.actionFocusVisible() ? "focused" : "action";
|
|
6477
6512
|
}, ...ngDevMode ? [{ debugName: "actionState" }] : /* istanbul ignore next */ []);
|
|
6478
|
-
|
|
6513
|
+
hasAction = computed(() => this.actions() > 0, ...ngDevMode ? [{ debugName: "hasAction" }] : /* istanbul ignore next */ []);
|
|
6514
|
+
unreadIdValue;
|
|
6515
|
+
unreadId = computed(() => this.unread() ? this.unreadIdValue ??= uniqueId("bf-list-item-unread") : null, ...ngDevMode ? [{ debugName: "unreadId" }] : /* istanbul ignore next */ []);
|
|
6516
|
+
actionLabelPrefix = computed(() => this.hasAction() ? this.unreadId() : null, ...ngDevMode ? [{ debugName: "actionLabelPrefix" }] : /* istanbul ignore next */ []);
|
|
6517
|
+
titleWeight = computed(() => this.unread() ? "font-extrabold" : "font-bold", ...ngDevMode ? [{ debugName: "titleWeight" }] : /* istanbul ignore next */ []);
|
|
6518
|
+
textClasses = computed(() => TEXT$1[this.truncate() ? "truncate" : "wrap"], ...ngDevMode ? [{ debugName: "textClasses" }] : /* istanbul ignore next */ []);
|
|
6479
6519
|
classes = computed(() => [
|
|
6480
6520
|
ROW$1,
|
|
6481
6521
|
this.interactive() ? INTERACTIVE$1 : ACTION$1[this.actionState()],
|
|
@@ -6544,6 +6584,13 @@ var BfListItemComponent = class BfListItemComponent {
|
|
|
6544
6584
|
isSignal: true,
|
|
6545
6585
|
isRequired: false,
|
|
6546
6586
|
transformFunction: null
|
|
6587
|
+
},
|
|
6588
|
+
unread: {
|
|
6589
|
+
classPropertyName: "unread",
|
|
6590
|
+
publicName: "unread",
|
|
6591
|
+
isSignal: true,
|
|
6592
|
+
isRequired: false,
|
|
6593
|
+
transformFunction: null
|
|
6547
6594
|
}
|
|
6548
6595
|
},
|
|
6549
6596
|
outputs: { clicked: "clicked" },
|
|
@@ -6571,11 +6618,20 @@ var BfListItemComponent = class BfListItemComponent {
|
|
|
6571
6618
|
}
|
|
6572
6619
|
<ng-template #content>
|
|
6573
6620
|
<ng-content select="[bfSlot=leading]" />
|
|
6574
|
-
<span class="flex min-w-0 flex-1 flex-col">
|
|
6621
|
+
<span class="relative flex min-w-0 flex-1 flex-col">
|
|
6622
|
+
@if (unreadId(); as id) {
|
|
6623
|
+
<!-- Read before the title; with a bfAction the link's name takes it (aria-labelledby),
|
|
6624
|
+
so the text itself is hidden from the tree to be read once. -->
|
|
6625
|
+
<span [class]="unreadDot"
|
|
6626
|
+
><span [id]="id" class="sr-only" [attr.aria-hidden]="hasAction() ? 'true' : null"
|
|
6627
|
+
>{{ labels.listItemUnread }},
|
|
6628
|
+
</span></span
|
|
6629
|
+
>
|
|
6630
|
+
}
|
|
6575
6631
|
@if (title()) {
|
|
6576
|
-
<span class="text-label
|
|
6632
|
+
<span class="text-label {{ titleWeight() }} {{ textClasses() }}">{{ title() }}</span>
|
|
6577
6633
|
}
|
|
6578
|
-
<span class="text-label
|
|
6634
|
+
<span class="text-label {{ titleWeight() }} empty:hidden {{ textClasses() }}"
|
|
6579
6635
|
><ng-content select="[bfSlot=title]"
|
|
6580
6636
|
/></span>
|
|
6581
6637
|
@if (subtitle()) {
|
|
@@ -6635,11 +6691,20 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
6635
6691
|
}
|
|
6636
6692
|
<ng-template #content>
|
|
6637
6693
|
<ng-content select="[bfSlot=leading]" />
|
|
6638
|
-
<span class="flex min-w-0 flex-1 flex-col">
|
|
6694
|
+
<span class="relative flex min-w-0 flex-1 flex-col">
|
|
6695
|
+
@if (unreadId(); as id) {
|
|
6696
|
+
<!-- Read before the title; with a bfAction the link's name takes it (aria-labelledby),
|
|
6697
|
+
so the text itself is hidden from the tree to be read once. -->
|
|
6698
|
+
<span [class]="unreadDot"
|
|
6699
|
+
><span [id]="id" class="sr-only" [attr.aria-hidden]="hasAction() ? 'true' : null"
|
|
6700
|
+
>{{ labels.listItemUnread }},
|
|
6701
|
+
</span></span
|
|
6702
|
+
>
|
|
6703
|
+
}
|
|
6639
6704
|
@if (title()) {
|
|
6640
|
-
<span class="text-label
|
|
6705
|
+
<span class="text-label {{ titleWeight() }} {{ textClasses() }}">{{ title() }}</span>
|
|
6641
6706
|
}
|
|
6642
|
-
<span class="text-label
|
|
6707
|
+
<span class="text-label {{ titleWeight() }} empty:hidden {{ textClasses() }}"
|
|
6643
6708
|
><ng-content select="[bfSlot=title]"
|
|
6644
6709
|
/></span>
|
|
6645
6710
|
@if (subtitle()) {
|
|
@@ -6704,6 +6769,14 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
6704
6769
|
required: false
|
|
6705
6770
|
}]
|
|
6706
6771
|
}],
|
|
6772
|
+
unread: [{
|
|
6773
|
+
type: i0.Input,
|
|
6774
|
+
args: [{
|
|
6775
|
+
isSignal: true,
|
|
6776
|
+
alias: "unread",
|
|
6777
|
+
required: false
|
|
6778
|
+
}]
|
|
6779
|
+
}],
|
|
6707
6780
|
clicked: [{
|
|
6708
6781
|
type: i0.Output,
|
|
6709
6782
|
args: ["clicked"]
|
|
@@ -6892,7 +6965,7 @@ const SIZE$1 = {
|
|
|
6892
6965
|
sm: "h-2",
|
|
6893
6966
|
md: "h-2.5"
|
|
6894
6967
|
};
|
|
6895
|
-
const TONE = {
|
|
6968
|
+
const TONE$1 = {
|
|
6896
6969
|
primary: "[&::-webkit-progress-value]:bg-primary-strong [&::-moz-progress-bar]:bg-primary-strong",
|
|
6897
6970
|
success: "[&::-webkit-progress-value]:bg-success [&::-moz-progress-bar]:bg-success",
|
|
6898
6971
|
warning: "[&::-webkit-progress-value]:bg-warning [&::-moz-progress-bar]:bg-warning",
|
|
@@ -6920,7 +6993,7 @@ var BfProgressComponent = class BfProgressComponent {
|
|
|
6920
6993
|
if (raw === void 0 || !Number.isFinite(raw)) return 0;
|
|
6921
6994
|
return Math.min(100, Math.max(0, Math.round(raw)));
|
|
6922
6995
|
}, ...ngDevMode ? [{ debugName: "percent" }] : /* istanbul ignore next */ []);
|
|
6923
|
-
classes = computed(() => `${TRACK} ${SIZE$1[this.size()]} ${TONE[this.tone()]}`, ...ngDevMode ? [{ debugName: "classes" }] : /* istanbul ignore next */ []);
|
|
6996
|
+
classes = computed(() => `${TRACK} ${SIZE$1[this.size()]} ${TONE$1[this.tone()]}`, ...ngDevMode ? [{ debugName: "classes" }] : /* istanbul ignore next */ []);
|
|
6924
6997
|
stripeClasses = computed(() => `${STRIPE} ${STRIPE_TONE[this.tone()]}`, ...ngDevMode ? [{ debugName: "stripeClasses" }] : /* istanbul ignore next */ []);
|
|
6925
6998
|
static ɵfac = i0.ɵɵngDeclareFactory({
|
|
6926
6999
|
minVersion: "12.0.0",
|
|
@@ -8263,6 +8336,20 @@ var BfActionDirective = class BfActionDirective {
|
|
|
8263
8336
|
host = inject(BF_ACTION_HOST, { optional: true });
|
|
8264
8337
|
element = inject(ElementRef).nativeElement;
|
|
8265
8338
|
constructor() {
|
|
8339
|
+
const own = this.element.getAttribute("aria-labelledby");
|
|
8340
|
+
let prefixed = false;
|
|
8341
|
+
afterRenderEffect({ write: () => {
|
|
8342
|
+
const prefix = this.host?.actionLabelPrefix?.() ?? null;
|
|
8343
|
+
if (prefix) {
|
|
8344
|
+
this.element.id ||= uniqueId("bf-action");
|
|
8345
|
+
this.element.setAttribute("aria-labelledby", `${prefix} ${own ?? this.element.id}`);
|
|
8346
|
+
prefixed = true;
|
|
8347
|
+
} else if (prefixed) {
|
|
8348
|
+
if (own === null) this.element.removeAttribute("aria-labelledby");
|
|
8349
|
+
else this.element.setAttribute("aria-labelledby", own);
|
|
8350
|
+
prefixed = false;
|
|
8351
|
+
}
|
|
8352
|
+
} });
|
|
8266
8353
|
const unregister = this.host?.registerAction();
|
|
8267
8354
|
inject(DestroyRef).onDestroy(() => {
|
|
8268
8355
|
this.host?.setActionFocusVisible(false);
|
|
@@ -9219,7 +9306,13 @@ const BODY_TOUCH = {
|
|
|
9219
9306
|
};
|
|
9220
9307
|
const ALIGN = {
|
|
9221
9308
|
start: "text-start",
|
|
9222
|
-
end: "text-end tabular-nums"
|
|
9309
|
+
end: "text-end tabular-nums",
|
|
9310
|
+
center: "text-center"
|
|
9311
|
+
};
|
|
9312
|
+
const CENTER_CELL = {
|
|
9313
|
+
never: "[&>*]:mx-auto [&>*]:w-fit",
|
|
9314
|
+
narrow: "@min-xl:[&>*]:mx-auto [&>*]:w-fit @max-xl:items-center",
|
|
9315
|
+
coarse: "not-pointer-coarse:[&>*]:mx-auto [&>*]:w-fit pointer-coarse:items-center"
|
|
9223
9316
|
};
|
|
9224
9317
|
const HEAD_BASE = "px-3 py-0 align-middle text-label-xs font-bold text-text-muted";
|
|
9225
9318
|
const BODY_BASE = "px-3 align-middle font-medium text-text";
|
|
@@ -9308,8 +9401,13 @@ const STACK_FIRST_CELL = {
|
|
|
9308
9401
|
};
|
|
9309
9402
|
const STACK_CELL = {
|
|
9310
9403
|
never: "",
|
|
9311
|
-
narrow: "@max-xl:col-span-full @max-xl:flex @max-xl:h-auto @max-xl:
|
|
9312
|
-
coarse: "pointer-coarse:col-span-full pointer-coarse:flex pointer-coarse:h-auto pointer-coarse:
|
|
9404
|
+
narrow: "@max-xl:col-span-full @max-xl:flex @max-xl:h-auto @max-xl:justify-between @max-xl:gap-3 @max-xl:px-0 @max-xl:py-1 @max-xl:text-end @max-xl:before:shrink-0 @max-xl:before:text-start @max-xl:before:text-label-xs @max-xl:before:font-bold @max-xl:before:text-text-muted @max-xl:before:content-data-label",
|
|
9405
|
+
coarse: "pointer-coarse:col-span-full pointer-coarse:flex pointer-coarse:h-auto pointer-coarse:justify-between pointer-coarse:gap-3 pointer-coarse:px-0 pointer-coarse:py-1 pointer-coarse:text-end pointer-coarse:before:shrink-0 pointer-coarse:before:text-start pointer-coarse:before:text-label-xs pointer-coarse:before:font-bold pointer-coarse:before:text-text-muted pointer-coarse:before:content-data-label"
|
|
9406
|
+
};
|
|
9407
|
+
const STACK_CELL_BASELINE = {
|
|
9408
|
+
never: "",
|
|
9409
|
+
narrow: "@max-xl:items-baseline",
|
|
9410
|
+
coarse: "pointer-coarse:items-baseline"
|
|
9313
9411
|
};
|
|
9314
9412
|
const SORT_NONE = "";
|
|
9315
9413
|
const STACK_EMPTY = {
|
|
@@ -9398,8 +9496,11 @@ var BfTableComponent = class BfTableComponent {
|
|
|
9398
9496
|
return `${HEAD_BASE} ${HEAD_CELL[this.resolvedSize()]} ${ALIGN[column.align ?? "start"]}`;
|
|
9399
9497
|
}
|
|
9400
9498
|
bodyClasses(column, first) {
|
|
9401
|
-
const
|
|
9402
|
-
|
|
9499
|
+
const stack = this.stack();
|
|
9500
|
+
const align = column.align ?? "start";
|
|
9501
|
+
const center = align === "center" ? CENTER_CELL[stack] : "";
|
|
9502
|
+
const stacked = first ? STACK_FIRST_CELL[stack] : `${STACK_CELL[stack]} ${center ? "" : STACK_CELL_BASELINE[stack]}`;
|
|
9503
|
+
return `${BODY_BASE} ${this.bodyHeight()} ${ALIGN[align]} ${center} ${stacked}`.replace(/\s+/g, " ").trim();
|
|
9403
9504
|
}
|
|
9404
9505
|
rowClasses(key) {
|
|
9405
9506
|
const state = this.selectedKeys().has(key) ? "selected" : this.selectable() ? "selectable" : "static";
|
|
@@ -10408,6 +10509,320 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
10408
10509
|
}]
|
|
10409
10510
|
}
|
|
10410
10511
|
});
|
|
10512
|
+
const TIMELINE_TIME_FORMAT = {
|
|
10513
|
+
dateStyle: "medium",
|
|
10514
|
+
timeStyle: "short"
|
|
10515
|
+
};
|
|
10516
|
+
const BF_TIMELINE = new InjectionToken("BF_TIMELINE");
|
|
10517
|
+
var BfTimelineComponent = class BfTimelineComponent {
|
|
10518
|
+
label = input("", ...ngDevMode ? [{ debugName: "label" }] : /* istanbul ignore next */ []);
|
|
10519
|
+
timeFormat = input(TIMELINE_TIME_FORMAT, ...ngDevMode ? [{ debugName: "timeFormat" }] : /* istanbul ignore next */ []);
|
|
10520
|
+
locale = input("", ...ngDevMode ? [{ debugName: "locale" }] : /* istanbul ignore next */ []);
|
|
10521
|
+
static ɵfac = i0.ɵɵngDeclareFactory({
|
|
10522
|
+
minVersion: "12.0.0",
|
|
10523
|
+
version: "22.1.7",
|
|
10524
|
+
ngImport: i0,
|
|
10525
|
+
type: BfTimelineComponent,
|
|
10526
|
+
deps: [],
|
|
10527
|
+
target: i0.ɵɵFactoryTarget.Component
|
|
10528
|
+
});
|
|
10529
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({
|
|
10530
|
+
minVersion: "17.1.0",
|
|
10531
|
+
version: "22.1.7",
|
|
10532
|
+
type: BfTimelineComponent,
|
|
10533
|
+
isStandalone: true,
|
|
10534
|
+
selector: "bf-timeline",
|
|
10535
|
+
inputs: {
|
|
10536
|
+
label: {
|
|
10537
|
+
classPropertyName: "label",
|
|
10538
|
+
publicName: "label",
|
|
10539
|
+
isSignal: true,
|
|
10540
|
+
isRequired: false,
|
|
10541
|
+
transformFunction: null
|
|
10542
|
+
},
|
|
10543
|
+
timeFormat: {
|
|
10544
|
+
classPropertyName: "timeFormat",
|
|
10545
|
+
publicName: "timeFormat",
|
|
10546
|
+
isSignal: true,
|
|
10547
|
+
isRequired: false,
|
|
10548
|
+
transformFunction: null
|
|
10549
|
+
},
|
|
10550
|
+
locale: {
|
|
10551
|
+
classPropertyName: "locale",
|
|
10552
|
+
publicName: "locale",
|
|
10553
|
+
isSignal: true,
|
|
10554
|
+
isRequired: false,
|
|
10555
|
+
transformFunction: null
|
|
10556
|
+
}
|
|
10557
|
+
},
|
|
10558
|
+
host: { classAttribute: "block" },
|
|
10559
|
+
providers: [{
|
|
10560
|
+
provide: BF_TIMELINE,
|
|
10561
|
+
useExisting: BfTimelineComponent
|
|
10562
|
+
}],
|
|
10563
|
+
ngImport: i0,
|
|
10564
|
+
template: `<div role="list" class="flex flex-col" [attr.aria-label]="label() || null">
|
|
10565
|
+
<ng-content />
|
|
10566
|
+
</div>`,
|
|
10567
|
+
isInline: true
|
|
10568
|
+
});
|
|
10569
|
+
};
|
|
10570
|
+
i0.ɵɵngDeclareClassMetadata({
|
|
10571
|
+
minVersion: "12.0.0",
|
|
10572
|
+
version: "22.1.7",
|
|
10573
|
+
ngImport: i0,
|
|
10574
|
+
type: BfTimelineComponent,
|
|
10575
|
+
decorators: [{
|
|
10576
|
+
type: Component,
|
|
10577
|
+
args: [{
|
|
10578
|
+
selector: "bf-timeline",
|
|
10579
|
+
host: { class: "block" },
|
|
10580
|
+
providers: [{
|
|
10581
|
+
provide: BF_TIMELINE,
|
|
10582
|
+
useExisting: BfTimelineComponent
|
|
10583
|
+
}],
|
|
10584
|
+
template: `<div role="list" class="flex flex-col" [attr.aria-label]="label() || null">
|
|
10585
|
+
<ng-content />
|
|
10586
|
+
</div>`
|
|
10587
|
+
}]
|
|
10588
|
+
}],
|
|
10589
|
+
propDecorators: {
|
|
10590
|
+
label: [{
|
|
10591
|
+
type: i0.Input,
|
|
10592
|
+
args: [{
|
|
10593
|
+
isSignal: true,
|
|
10594
|
+
alias: "label",
|
|
10595
|
+
required: false
|
|
10596
|
+
}]
|
|
10597
|
+
}],
|
|
10598
|
+
timeFormat: [{
|
|
10599
|
+
type: i0.Input,
|
|
10600
|
+
args: [{
|
|
10601
|
+
isSignal: true,
|
|
10602
|
+
alias: "timeFormat",
|
|
10603
|
+
required: false
|
|
10604
|
+
}]
|
|
10605
|
+
}],
|
|
10606
|
+
locale: [{
|
|
10607
|
+
type: i0.Input,
|
|
10608
|
+
args: [{
|
|
10609
|
+
isSignal: true,
|
|
10610
|
+
alias: "locale",
|
|
10611
|
+
required: false
|
|
10612
|
+
}]
|
|
10613
|
+
}]
|
|
10614
|
+
}
|
|
10615
|
+
});
|
|
10616
|
+
const TONE = {
|
|
10617
|
+
neutral: "bg-text-subtle",
|
|
10618
|
+
primary: "bg-primary",
|
|
10619
|
+
success: "bg-success",
|
|
10620
|
+
warning: "bg-warning",
|
|
10621
|
+
danger: "bg-danger",
|
|
10622
|
+
info: "bg-info"
|
|
10623
|
+
};
|
|
10624
|
+
const DOT = "relative mt-[calc(0.75rem-5px)] size-2.5 shrink-0 rounded-control forced-colors:bg-[CanvasText]";
|
|
10625
|
+
const MARKER$1 = "relative flex w-2.5 shrink-0 justify-center before:absolute before:top-3 before:-bottom-3 before:start-[calc(50%-0.5px)] before:border-s before:border-border before:content-[''] group-last/bf-timeline-event:before:hidden";
|
|
10626
|
+
const TEXT = "text-body text-text wrap-anywhere [&_a]:rounded-tile [&_a]:text-primary-text [&_a]:underline [&_a]:underline-offset-2 [&_a]:hover:decoration-2 [&_a]:focus-visible:ring-4 [&_a]:focus-visible:ring-ring [&_a]:focus-visible:outline-hidden";
|
|
10627
|
+
function toDate(time) {
|
|
10628
|
+
if (time === null || time === "") return null;
|
|
10629
|
+
const date = typeof time === "string" ? new Date(time) : time;
|
|
10630
|
+
return Number.isNaN(date.getTime()) ? null : date;
|
|
10631
|
+
}
|
|
10632
|
+
function formatDate(date, locales, options) {
|
|
10633
|
+
for (const locale of locales) for (const format of [options, TIMELINE_TIME_FORMAT]) try {
|
|
10634
|
+
return new Intl.DateTimeFormat(locale, format).format(date);
|
|
10635
|
+
} catch {}
|
|
10636
|
+
return "";
|
|
10637
|
+
}
|
|
10638
|
+
var BfTimelineEventComponent = class BfTimelineEventComponent {
|
|
10639
|
+
actor = input("", ...ngDevMode ? [{ debugName: "actor" }] : /* istanbul ignore next */ []);
|
|
10640
|
+
time = input(null, ...ngDevMode ? [{ debugName: "time" }] : /* istanbul ignore next */ []);
|
|
10641
|
+
timeText = input("", ...ngDevMode ? [{ debugName: "timeText" }] : /* istanbul ignore next */ []);
|
|
10642
|
+
tone = input("neutral", ...ngDevMode ? [{ debugName: "tone" }] : /* istanbul ignore next */ []);
|
|
10643
|
+
timeline = inject(BF_TIMELINE, { optional: true });
|
|
10644
|
+
appLocale = inject(LOCALE_ID);
|
|
10645
|
+
role = this.timeline ? "listitem" : null;
|
|
10646
|
+
date = computed(() => toDate(this.time()), ...ngDevMode ? [{ debugName: "date" }] : /* istanbul ignore next */ []);
|
|
10647
|
+
datetime = computed(() => {
|
|
10648
|
+
const date = this.date();
|
|
10649
|
+
if (!date) return null;
|
|
10650
|
+
const time = this.time();
|
|
10651
|
+
return typeof time === "string" ? time : date.toISOString();
|
|
10652
|
+
}, ...ngDevMode ? [{ debugName: "datetime" }] : /* istanbul ignore next */ []);
|
|
10653
|
+
timeLabel = computed(() => {
|
|
10654
|
+
const date = this.date();
|
|
10655
|
+
if (this.timeText()) return this.timeText();
|
|
10656
|
+
if (!date) return "";
|
|
10657
|
+
return formatDate(date, [
|
|
10658
|
+
this.timeline?.locale() ?? "",
|
|
10659
|
+
this.appLocale,
|
|
10660
|
+
"en"
|
|
10661
|
+
].filter(Boolean), this.timeline?.timeFormat() ?? TIMELINE_TIME_FORMAT);
|
|
10662
|
+
}, ...ngDevMode ? [{ debugName: "timeLabel" }] : /* istanbul ignore next */ []);
|
|
10663
|
+
markerClasses = MARKER$1;
|
|
10664
|
+
textClasses = TEXT;
|
|
10665
|
+
dotClasses = computed(() => `${DOT} ${TONE[this.tone()]}`, ...ngDevMode ? [{ debugName: "dotClasses" }] : /* istanbul ignore next */ []);
|
|
10666
|
+
static ɵfac = i0.ɵɵngDeclareFactory({
|
|
10667
|
+
minVersion: "12.0.0",
|
|
10668
|
+
version: "22.1.7",
|
|
10669
|
+
ngImport: i0,
|
|
10670
|
+
type: BfTimelineEventComponent,
|
|
10671
|
+
deps: [],
|
|
10672
|
+
target: i0.ɵɵFactoryTarget.Component
|
|
10673
|
+
});
|
|
10674
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({
|
|
10675
|
+
minVersion: "17.0.0",
|
|
10676
|
+
version: "22.1.7",
|
|
10677
|
+
type: BfTimelineEventComponent,
|
|
10678
|
+
isStandalone: true,
|
|
10679
|
+
selector: "bf-timeline-event",
|
|
10680
|
+
inputs: {
|
|
10681
|
+
actor: {
|
|
10682
|
+
classPropertyName: "actor",
|
|
10683
|
+
publicName: "actor",
|
|
10684
|
+
isSignal: true,
|
|
10685
|
+
isRequired: false,
|
|
10686
|
+
transformFunction: null
|
|
10687
|
+
},
|
|
10688
|
+
time: {
|
|
10689
|
+
classPropertyName: "time",
|
|
10690
|
+
publicName: "time",
|
|
10691
|
+
isSignal: true,
|
|
10692
|
+
isRequired: false,
|
|
10693
|
+
transformFunction: null
|
|
10694
|
+
},
|
|
10695
|
+
timeText: {
|
|
10696
|
+
classPropertyName: "timeText",
|
|
10697
|
+
publicName: "timeText",
|
|
10698
|
+
isSignal: true,
|
|
10699
|
+
isRequired: false,
|
|
10700
|
+
transformFunction: null
|
|
10701
|
+
},
|
|
10702
|
+
tone: {
|
|
10703
|
+
classPropertyName: "tone",
|
|
10704
|
+
publicName: "tone",
|
|
10705
|
+
isSignal: true,
|
|
10706
|
+
isRequired: false,
|
|
10707
|
+
transformFunction: null
|
|
10708
|
+
}
|
|
10709
|
+
},
|
|
10710
|
+
host: {
|
|
10711
|
+
properties: { "attr.role": "role" },
|
|
10712
|
+
classAttribute: "group/bf-timeline-event flex gap-3"
|
|
10713
|
+
},
|
|
10714
|
+
ngImport: i0,
|
|
10715
|
+
template: `
|
|
10716
|
+
<span aria-hidden="true" [class]="markerClasses"><span [class]="dotClasses()"></span></span>
|
|
10717
|
+
<!-- The end slot wraps under the text once the text would get narrower than 16rem. -->
|
|
10718
|
+
<div
|
|
10719
|
+
class="flex min-w-0 flex-1 flex-wrap items-start gap-x-3 gap-y-2 pb-5 group-last/bf-timeline-event:pb-0"
|
|
10720
|
+
>
|
|
10721
|
+
<div class="min-w-0 flex-[1_1_16rem]">
|
|
10722
|
+
<div [class]="textClasses"><ng-content /></div>
|
|
10723
|
+
@if (actor() || timeLabel()) {
|
|
10724
|
+
<p class="text-caption text-text-muted mt-0.5 wrap-anywhere">
|
|
10725
|
+
@if (actor()) {
|
|
10726
|
+
<span>{{ actor() }}</span>
|
|
10727
|
+
}
|
|
10728
|
+
@if (actor() && timeLabel()) {
|
|
10729
|
+
<span aria-hidden="true"> · </span>
|
|
10730
|
+
}
|
|
10731
|
+
@if (datetime(); as machine) {
|
|
10732
|
+
<time [attr.datetime]="machine">{{ timeLabel() }}</time>
|
|
10733
|
+
} @else if (timeLabel()) {
|
|
10734
|
+
<span>{{ timeLabel() }}</span>
|
|
10735
|
+
}
|
|
10736
|
+
</p>
|
|
10737
|
+
}
|
|
10738
|
+
</div>
|
|
10739
|
+
<div class="flex shrink-0 items-center gap-2 empty:hidden">
|
|
10740
|
+
<ng-content select="[bfSlot=end]" />
|
|
10741
|
+
</div>
|
|
10742
|
+
</div>
|
|
10743
|
+
`,
|
|
10744
|
+
isInline: true
|
|
10745
|
+
});
|
|
10746
|
+
};
|
|
10747
|
+
i0.ɵɵngDeclareClassMetadata({
|
|
10748
|
+
minVersion: "12.0.0",
|
|
10749
|
+
version: "22.1.7",
|
|
10750
|
+
ngImport: i0,
|
|
10751
|
+
type: BfTimelineEventComponent,
|
|
10752
|
+
decorators: [{
|
|
10753
|
+
type: Component,
|
|
10754
|
+
args: [{
|
|
10755
|
+
selector: "bf-timeline-event",
|
|
10756
|
+
host: {
|
|
10757
|
+
class: "group/bf-timeline-event flex gap-3",
|
|
10758
|
+
"[attr.role]": "role"
|
|
10759
|
+
},
|
|
10760
|
+
template: `
|
|
10761
|
+
<span aria-hidden="true" [class]="markerClasses"><span [class]="dotClasses()"></span></span>
|
|
10762
|
+
<!-- The end slot wraps under the text once the text would get narrower than 16rem. -->
|
|
10763
|
+
<div
|
|
10764
|
+
class="flex min-w-0 flex-1 flex-wrap items-start gap-x-3 gap-y-2 pb-5 group-last/bf-timeline-event:pb-0"
|
|
10765
|
+
>
|
|
10766
|
+
<div class="min-w-0 flex-[1_1_16rem]">
|
|
10767
|
+
<div [class]="textClasses"><ng-content /></div>
|
|
10768
|
+
@if (actor() || timeLabel()) {
|
|
10769
|
+
<p class="text-caption text-text-muted mt-0.5 wrap-anywhere">
|
|
10770
|
+
@if (actor()) {
|
|
10771
|
+
<span>{{ actor() }}</span>
|
|
10772
|
+
}
|
|
10773
|
+
@if (actor() && timeLabel()) {
|
|
10774
|
+
<span aria-hidden="true"> · </span>
|
|
10775
|
+
}
|
|
10776
|
+
@if (datetime(); as machine) {
|
|
10777
|
+
<time [attr.datetime]="machine">{{ timeLabel() }}</time>
|
|
10778
|
+
} @else if (timeLabel()) {
|
|
10779
|
+
<span>{{ timeLabel() }}</span>
|
|
10780
|
+
}
|
|
10781
|
+
</p>
|
|
10782
|
+
}
|
|
10783
|
+
</div>
|
|
10784
|
+
<div class="flex shrink-0 items-center gap-2 empty:hidden">
|
|
10785
|
+
<ng-content select="[bfSlot=end]" />
|
|
10786
|
+
</div>
|
|
10787
|
+
</div>
|
|
10788
|
+
`
|
|
10789
|
+
}]
|
|
10790
|
+
}],
|
|
10791
|
+
propDecorators: {
|
|
10792
|
+
actor: [{
|
|
10793
|
+
type: i0.Input,
|
|
10794
|
+
args: [{
|
|
10795
|
+
isSignal: true,
|
|
10796
|
+
alias: "actor",
|
|
10797
|
+
required: false
|
|
10798
|
+
}]
|
|
10799
|
+
}],
|
|
10800
|
+
time: [{
|
|
10801
|
+
type: i0.Input,
|
|
10802
|
+
args: [{
|
|
10803
|
+
isSignal: true,
|
|
10804
|
+
alias: "time",
|
|
10805
|
+
required: false
|
|
10806
|
+
}]
|
|
10807
|
+
}],
|
|
10808
|
+
timeText: [{
|
|
10809
|
+
type: i0.Input,
|
|
10810
|
+
args: [{
|
|
10811
|
+
isSignal: true,
|
|
10812
|
+
alias: "timeText",
|
|
10813
|
+
required: false
|
|
10814
|
+
}]
|
|
10815
|
+
}],
|
|
10816
|
+
tone: [{
|
|
10817
|
+
type: i0.Input,
|
|
10818
|
+
args: [{
|
|
10819
|
+
isSignal: true,
|
|
10820
|
+
alias: "tone",
|
|
10821
|
+
required: false
|
|
10822
|
+
}]
|
|
10823
|
+
}]
|
|
10824
|
+
}
|
|
10825
|
+
});
|
|
10411
10826
|
const BF_BREADCRUMB = new InjectionToken("BF_BREADCRUMB");
|
|
10412
10827
|
const CONTENT = {
|
|
10413
10828
|
ancestor: "inline-flex min-w-0 items-center px-1 wrap-anywhere text-text-muted [&>a]:-mx-1 [&>a]:inline-flex [&>a]:min-h-6 [&>a]:items-center [&>a]:rounded-tile [&>a]:px-1 [&>a]:text-text-muted [&>a]:underline-offset-4 [&>a]:transition-colors [&>a]:hover:text-text [&>a]:hover:underline [&>a]:focus-visible:ring-4 [&>a]:focus-visible:ring-ring [&>a]:focus-visible:outline-hidden [&>a]:pointer-coarse:min-h-hit",
|
|
@@ -11424,7 +11839,7 @@ const HOST = {
|
|
|
11424
11839
|
rect: `${BAR} block h-[var(--bf-skeleton-height,6rem)] rounded-field`,
|
|
11425
11840
|
circle: `${BAR} inline-block size-10 shrink-0 rounded-full`
|
|
11426
11841
|
};
|
|
11427
|
-
const LINE = `${BAR} block h-[var(--bf-skeleton-height,0.75rem)] w-full rounded-full`;
|
|
11842
|
+
const LINE$1 = `${BAR} block h-[var(--bf-skeleton-height,0.75rem)] w-full rounded-full`;
|
|
11428
11843
|
const LAST_LINE = `${BAR} block h-[var(--bf-skeleton-height,0.75rem)] w-3/5 rounded-full`;
|
|
11429
11844
|
var BfSkeletonComponent = class BfSkeletonComponent {
|
|
11430
11845
|
shape = input("text", ...ngDevMode ? [{ debugName: "shape" }] : /* istanbul ignore next */ []);
|
|
@@ -11434,7 +11849,7 @@ var BfSkeletonComponent = class BfSkeletonComponent {
|
|
|
11434
11849
|
});
|
|
11435
11850
|
width = input("", ...ngDevMode ? [{ debugName: "width" }] : /* istanbul ignore next */ []);
|
|
11436
11851
|
height = input("", ...ngDevMode ? [{ debugName: "height" }] : /* istanbul ignore next */ []);
|
|
11437
|
-
lineClasses = LINE;
|
|
11852
|
+
lineClasses = LINE$1;
|
|
11438
11853
|
lastLineClasses = LAST_LINE;
|
|
11439
11854
|
lineList = computed(() => {
|
|
11440
11855
|
const count = Math.max(1, Math.floor(this.lines()) || 1);
|
|
@@ -13338,6 +13753,241 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
13338
13753
|
}]
|
|
13339
13754
|
}
|
|
13340
13755
|
});
|
|
13756
|
+
const BF_STEPS = new InjectionToken("BF_STEPS");
|
|
13757
|
+
const MARKER = "flex size-6 shrink-0 items-center justify-center rounded-full bg-primary-soft text-label-sm font-bold text-primary-strong forced-colors:outline forced-colors:outline-[CanvasText]";
|
|
13758
|
+
const LINE = "my-1 w-0 flex-1 border-s border-border group-last/bf-step:hidden";
|
|
13759
|
+
const TITLE = "pt-0.5 text-label font-bold text-text wrap-anywhere";
|
|
13760
|
+
var BfStepComponent = class BfStepComponent {
|
|
13761
|
+
steps = inject(BF_STEPS, { optional: true });
|
|
13762
|
+
title = input("", ...ngDevMode ? [{ debugName: "title" }] : /* istanbul ignore next */ []);
|
|
13763
|
+
headingLevel = input(void 0, ...ngDevMode ? [{ debugName: "headingLevel" }] : /* istanbul ignore next */ []);
|
|
13764
|
+
role = this.steps ? "listitem" : null;
|
|
13765
|
+
markerClasses = MARKER;
|
|
13766
|
+
lineClasses = LINE;
|
|
13767
|
+
titleClasses = TITLE;
|
|
13768
|
+
number = computed(() => {
|
|
13769
|
+
const steps = this.steps;
|
|
13770
|
+
return steps ? steps.start() + Math.max(steps.indexOf(this), 0) : 1;
|
|
13771
|
+
}, ...ngDevMode ? [{ debugName: "number" }] : /* istanbul ignore next */ []);
|
|
13772
|
+
positionInSet = computed(() => this.steps && this.steps.start() !== 1 ? this.number() : null, ...ngDevMode ? [{ debugName: "positionInSet" }] : /* istanbul ignore next */ []);
|
|
13773
|
+
setSize = computed(() => {
|
|
13774
|
+
const steps = this.steps;
|
|
13775
|
+
return steps && steps.start() !== 1 ? steps.start() - 1 + steps.count() : null;
|
|
13776
|
+
}, ...ngDevMode ? [{ debugName: "setSize" }] : /* istanbul ignore next */ []);
|
|
13777
|
+
static ɵfac = i0.ɵɵngDeclareFactory({
|
|
13778
|
+
minVersion: "12.0.0",
|
|
13779
|
+
version: "22.1.7",
|
|
13780
|
+
ngImport: i0,
|
|
13781
|
+
type: BfStepComponent,
|
|
13782
|
+
deps: [],
|
|
13783
|
+
target: i0.ɵɵFactoryTarget.Component
|
|
13784
|
+
});
|
|
13785
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({
|
|
13786
|
+
minVersion: "17.0.0",
|
|
13787
|
+
version: "22.1.7",
|
|
13788
|
+
type: BfStepComponent,
|
|
13789
|
+
isStandalone: true,
|
|
13790
|
+
selector: "bf-step",
|
|
13791
|
+
inputs: {
|
|
13792
|
+
title: {
|
|
13793
|
+
classPropertyName: "title",
|
|
13794
|
+
publicName: "title",
|
|
13795
|
+
isSignal: true,
|
|
13796
|
+
isRequired: false,
|
|
13797
|
+
transformFunction: null
|
|
13798
|
+
},
|
|
13799
|
+
headingLevel: {
|
|
13800
|
+
classPropertyName: "headingLevel",
|
|
13801
|
+
publicName: "headingLevel",
|
|
13802
|
+
isSignal: true,
|
|
13803
|
+
isRequired: false,
|
|
13804
|
+
transformFunction: null
|
|
13805
|
+
}
|
|
13806
|
+
},
|
|
13807
|
+
host: {
|
|
13808
|
+
properties: {
|
|
13809
|
+
"attr.role": "role",
|
|
13810
|
+
"attr.aria-posinset": "positionInSet()",
|
|
13811
|
+
"attr.aria-setsize": "setSize()"
|
|
13812
|
+
},
|
|
13813
|
+
classAttribute: "group/bf-step block"
|
|
13814
|
+
},
|
|
13815
|
+
ngImport: i0,
|
|
13816
|
+
template: `
|
|
13817
|
+
<div class="flex gap-3">
|
|
13818
|
+
<div class="flex shrink-0 flex-col items-center">
|
|
13819
|
+
<span aria-hidden="true" [class]="markerClasses">{{ number() }}</span>
|
|
13820
|
+
<span [class]="lineClasses"></span>
|
|
13821
|
+
</div>
|
|
13822
|
+
<div class="min-w-0 flex-1 pb-6 group-last/bf-step:pb-0">
|
|
13823
|
+
@if (title()) {
|
|
13824
|
+
@switch (headingLevel()) {
|
|
13825
|
+
@case (2) {
|
|
13826
|
+
<h2 [class]="titleClasses">{{ title() }}</h2>
|
|
13827
|
+
}
|
|
13828
|
+
@case (3) {
|
|
13829
|
+
<h3 [class]="titleClasses">{{ title() }}</h3>
|
|
13830
|
+
}
|
|
13831
|
+
@case (4) {
|
|
13832
|
+
<h4 [class]="titleClasses">{{ title() }}</h4>
|
|
13833
|
+
}
|
|
13834
|
+
@default {
|
|
13835
|
+
<p [class]="titleClasses">{{ title() }}</p>
|
|
13836
|
+
}
|
|
13837
|
+
}
|
|
13838
|
+
}
|
|
13839
|
+
<div class="text-body text-text-secondary mt-1 wrap-anywhere empty:hidden">
|
|
13840
|
+
<ng-content />
|
|
13841
|
+
</div>
|
|
13842
|
+
</div>
|
|
13843
|
+
</div>
|
|
13844
|
+
`,
|
|
13845
|
+
isInline: true
|
|
13846
|
+
});
|
|
13847
|
+
};
|
|
13848
|
+
i0.ɵɵngDeclareClassMetadata({
|
|
13849
|
+
minVersion: "12.0.0",
|
|
13850
|
+
version: "22.1.7",
|
|
13851
|
+
ngImport: i0,
|
|
13852
|
+
type: BfStepComponent,
|
|
13853
|
+
decorators: [{
|
|
13854
|
+
type: Component,
|
|
13855
|
+
args: [{
|
|
13856
|
+
selector: "bf-step",
|
|
13857
|
+
host: {
|
|
13858
|
+
class: "group/bf-step block",
|
|
13859
|
+
"[attr.role]": "role",
|
|
13860
|
+
"[attr.aria-posinset]": "positionInSet()",
|
|
13861
|
+
"[attr.aria-setsize]": "setSize()"
|
|
13862
|
+
},
|
|
13863
|
+
template: `
|
|
13864
|
+
<div class="flex gap-3">
|
|
13865
|
+
<div class="flex shrink-0 flex-col items-center">
|
|
13866
|
+
<span aria-hidden="true" [class]="markerClasses">{{ number() }}</span>
|
|
13867
|
+
<span [class]="lineClasses"></span>
|
|
13868
|
+
</div>
|
|
13869
|
+
<div class="min-w-0 flex-1 pb-6 group-last/bf-step:pb-0">
|
|
13870
|
+
@if (title()) {
|
|
13871
|
+
@switch (headingLevel()) {
|
|
13872
|
+
@case (2) {
|
|
13873
|
+
<h2 [class]="titleClasses">{{ title() }}</h2>
|
|
13874
|
+
}
|
|
13875
|
+
@case (3) {
|
|
13876
|
+
<h3 [class]="titleClasses">{{ title() }}</h3>
|
|
13877
|
+
}
|
|
13878
|
+
@case (4) {
|
|
13879
|
+
<h4 [class]="titleClasses">{{ title() }}</h4>
|
|
13880
|
+
}
|
|
13881
|
+
@default {
|
|
13882
|
+
<p [class]="titleClasses">{{ title() }}</p>
|
|
13883
|
+
}
|
|
13884
|
+
}
|
|
13885
|
+
}
|
|
13886
|
+
<div class="text-body text-text-secondary mt-1 wrap-anywhere empty:hidden">
|
|
13887
|
+
<ng-content />
|
|
13888
|
+
</div>
|
|
13889
|
+
</div>
|
|
13890
|
+
</div>
|
|
13891
|
+
`
|
|
13892
|
+
}]
|
|
13893
|
+
}],
|
|
13894
|
+
propDecorators: {
|
|
13895
|
+
title: [{
|
|
13896
|
+
type: i0.Input,
|
|
13897
|
+
args: [{
|
|
13898
|
+
isSignal: true,
|
|
13899
|
+
alias: "title",
|
|
13900
|
+
required: false
|
|
13901
|
+
}]
|
|
13902
|
+
}],
|
|
13903
|
+
headingLevel: [{
|
|
13904
|
+
type: i0.Input,
|
|
13905
|
+
args: [{
|
|
13906
|
+
isSignal: true,
|
|
13907
|
+
alias: "headingLevel",
|
|
13908
|
+
required: false
|
|
13909
|
+
}]
|
|
13910
|
+
}]
|
|
13911
|
+
}
|
|
13912
|
+
});
|
|
13913
|
+
var BfStepsComponent = class BfStepsComponent {
|
|
13914
|
+
start = input(1, {
|
|
13915
|
+
...ngDevMode ? { debugName: "start" } : /* istanbul ignore next */ {},
|
|
13916
|
+
transform: numberAttribute
|
|
13917
|
+
});
|
|
13918
|
+
steps = contentChildren(BfStepComponent, ...ngDevMode ? [{ debugName: "steps" }] : /* istanbul ignore next */ []);
|
|
13919
|
+
count = computed(() => this.steps().length, ...ngDevMode ? [{ debugName: "count" }] : /* istanbul ignore next */ []);
|
|
13920
|
+
indexOf(step) {
|
|
13921
|
+
return this.steps().findIndex((item) => item === step);
|
|
13922
|
+
}
|
|
13923
|
+
static ɵfac = i0.ɵɵngDeclareFactory({
|
|
13924
|
+
minVersion: "12.0.0",
|
|
13925
|
+
version: "22.1.7",
|
|
13926
|
+
ngImport: i0,
|
|
13927
|
+
type: BfStepsComponent,
|
|
13928
|
+
deps: [],
|
|
13929
|
+
target: i0.ɵɵFactoryTarget.Component
|
|
13930
|
+
});
|
|
13931
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({
|
|
13932
|
+
minVersion: "17.2.0",
|
|
13933
|
+
version: "22.1.7",
|
|
13934
|
+
type: BfStepsComponent,
|
|
13935
|
+
isStandalone: true,
|
|
13936
|
+
selector: "bf-steps",
|
|
13937
|
+
inputs: { start: {
|
|
13938
|
+
classPropertyName: "start",
|
|
13939
|
+
publicName: "start",
|
|
13940
|
+
isSignal: true,
|
|
13941
|
+
isRequired: false,
|
|
13942
|
+
transformFunction: null
|
|
13943
|
+
} },
|
|
13944
|
+
host: { classAttribute: "block" },
|
|
13945
|
+
providers: [{
|
|
13946
|
+
provide: BF_STEPS,
|
|
13947
|
+
useExisting: BfStepsComponent
|
|
13948
|
+
}],
|
|
13949
|
+
queries: [{
|
|
13950
|
+
propertyName: "steps",
|
|
13951
|
+
predicate: BfStepComponent,
|
|
13952
|
+
isSignal: true
|
|
13953
|
+
}],
|
|
13954
|
+
ngImport: i0,
|
|
13955
|
+
template: `<div role="list" class="flex flex-col"><ng-content /></div>`,
|
|
13956
|
+
isInline: true
|
|
13957
|
+
});
|
|
13958
|
+
};
|
|
13959
|
+
i0.ɵɵngDeclareClassMetadata({
|
|
13960
|
+
minVersion: "12.0.0",
|
|
13961
|
+
version: "22.1.7",
|
|
13962
|
+
ngImport: i0,
|
|
13963
|
+
type: BfStepsComponent,
|
|
13964
|
+
decorators: [{
|
|
13965
|
+
type: Component,
|
|
13966
|
+
args: [{
|
|
13967
|
+
selector: "bf-steps",
|
|
13968
|
+
host: { class: "block" },
|
|
13969
|
+
providers: [{
|
|
13970
|
+
provide: BF_STEPS,
|
|
13971
|
+
useExisting: BfStepsComponent
|
|
13972
|
+
}],
|
|
13973
|
+
template: `<div role="list" class="flex flex-col"><ng-content /></div>`
|
|
13974
|
+
}]
|
|
13975
|
+
}],
|
|
13976
|
+
propDecorators: {
|
|
13977
|
+
start: [{
|
|
13978
|
+
type: i0.Input,
|
|
13979
|
+
args: [{
|
|
13980
|
+
isSignal: true,
|
|
13981
|
+
alias: "start",
|
|
13982
|
+
required: false
|
|
13983
|
+
}]
|
|
13984
|
+
}],
|
|
13985
|
+
steps: [{
|
|
13986
|
+
type: i0.ContentChildren,
|
|
13987
|
+
args: [i0.forwardRef(() => BfStepComponent), { isSignal: true }]
|
|
13988
|
+
}]
|
|
13989
|
+
}
|
|
13990
|
+
});
|
|
13341
13991
|
function resetBfDocument(document) {
|
|
13342
13992
|
document.documentElement.classList.remove("dark", "cdk-global-scrollblock");
|
|
13343
13993
|
for (const child of Array.from(document.body.children)) child.removeAttribute("inert");
|
|
@@ -13349,6 +13999,6 @@ function provideBfDocumentReset() {
|
|
|
13349
13999
|
inject(DestroyRef).onDestroy(() => resetBfDocument(document));
|
|
13350
14000
|
});
|
|
13351
14001
|
}
|
|
13352
|
-
export { BF_COLOR_SCHEME_STORAGE, BF_DEFAULTS, BF_DEFAULT_LABELS, BF_DEFAULT_VALUES, BF_LABELS, BF_SIDEBAR_STATE_STORAGE, BF_TAB_BAR, BF_TAB_BAR_CONTROLLER, BF_TAB_LINKS, BfActionBarComponent, BfActionDirective, BfAlertComponent, BfAppFrameComponent, BfAvatarComponent, BfBadgeComponent, BfBreadcrumbComponent, BfBreadcrumbItemComponent, BfButtonComponent, BfCalendarComponent, BfCardComponent, BfCheckboxComponent, BfChipComponent, BfChipGroupComponent, BfColorSchemeService, BfDescriptionItemComponent, BfDescriptionListComponent, BfEmptyStateComponent, BfFieldComponent, BfIconButtonComponent, BfInputComponent, BfListComponent, BfListItemComponent, BfNavGroupComponent, BfNavItemComponent, BfPageHeaderComponent, BfPaginationComponent, BfProgressComponent, BfRadioGroupComponent, BfSegmentedComponent, BfSelectComponent, BfSidebarComponent, BfSidebarStateService, BfSkeletonComponent, BfSpinnerComponent, BfStatComponent, BfTabBarComponent, BfTabComponent, BfTabGroupComponent, BfTabPanelComponent, BfTableCellDirective, BfTableComponent, BfTextareaComponent, BfThemeSwitchComponent, BfToggleComponent, BfToolbarComponent, BfTopNavComponent, bfFieldControlClass, bfValidationMessage, provideBfColorScheme, provideBfDefaults, provideBfLabels, provideBfSidebarState, BUTTON_CLASSES as ɵBF_BUTTON_CLASSES, ICON_BUTTON_CLASSES as ɵBF_ICON_BUTTON_CLASSES, BF_NAV as ɵBF_NAV, FIELD_BOX as ɵFIELD_BOX, FIELD_ICON_END as ɵFIELD_ICON_END, FIELD_ICON_START as ɵFIELD_ICON_START, FIELD_PADDING_END as ɵFIELD_PADDING_END, FIELD_PADDING_START as ɵFIELD_PADDING_START, PILL_HIT as ɵPILL_HIT, compareIso as ɵcompareIso, createMemoryColorSchemeStorage as ɵcreateMemoryColorSchemeStorage, daysInMonth as ɵdaysInMonth, fieldDescribedBy as ɵfieldDescribedBy, fieldErrorMessageId as ɵfieldErrorMessageId, fieldErrorText as ɵfieldErrorText, fieldShowsError as ɵfieldShowsError, formatIsoDate as ɵformatIsoDate, localIsoDate as ɵlocalIsoDate, parseIsoDate as ɵparseIsoDate, provideBfDocumentReset as ɵprovideBfDocumentReset, uniqueId as ɵuniqueId, validIsoDate as ɵvalidIsoDate };
|
|
14002
|
+
export { BF_COLOR_SCHEME_STORAGE, BF_DEFAULTS, BF_DEFAULT_LABELS, BF_DEFAULT_VALUES, BF_LABELS, BF_SIDEBAR_STATE_STORAGE, BF_TAB_BAR, BF_TAB_BAR_CONTROLLER, BF_TAB_LINKS, BfActionBarComponent, BfActionDirective, BfAlertComponent, BfAppFrameComponent, BfAvatarComponent, BfBadgeComponent, BfBreadcrumbComponent, BfBreadcrumbItemComponent, BfButtonComponent, BfCalendarComponent, BfCardComponent, BfCheckboxComponent, BfChipComponent, BfChipGroupComponent, BfColorSchemeService, BfDescriptionItemComponent, BfDescriptionListComponent, BfEmptyStateComponent, BfFieldComponent, BfIconButtonComponent, BfInputComponent, BfListComponent, BfListItemComponent, BfNavGroupComponent, BfNavItemComponent, BfPageHeaderComponent, BfPaginationComponent, BfProgressComponent, BfRadioGroupComponent, BfSegmentedComponent, BfSelectComponent, BfSidebarComponent, BfSidebarStateService, BfSkeletonComponent, BfSpinnerComponent, BfStatComponent, BfStepComponent, BfStepsComponent, BfTabBarComponent, BfTabComponent, BfTabGroupComponent, BfTabPanelComponent, BfTableCellDirective, BfTableComponent, BfTextareaComponent, BfThemeSwitchComponent, BfTimelineComponent, BfTimelineEventComponent, BfToggleComponent, BfToolbarComponent, BfTopNavComponent, bfFieldControlClass, bfValidationMessage, provideBfColorScheme, provideBfDefaults, provideBfLabels, provideBfSidebarState, BUTTON_CLASSES as ɵBF_BUTTON_CLASSES, ICON_BUTTON_CLASSES as ɵBF_ICON_BUTTON_CLASSES, BF_NAV as ɵBF_NAV, FIELD_BOX as ɵFIELD_BOX, FIELD_ICON_END as ɵFIELD_ICON_END, FIELD_ICON_START as ɵFIELD_ICON_START, FIELD_PADDING_END as ɵFIELD_PADDING_END, FIELD_PADDING_START as ɵFIELD_PADDING_START, PILL_HIT as ɵPILL_HIT, compareIso as ɵcompareIso, createMemoryColorSchemeStorage as ɵcreateMemoryColorSchemeStorage, daysInMonth as ɵdaysInMonth, fieldDescribedBy as ɵfieldDescribedBy, fieldErrorMessageId as ɵfieldErrorMessageId, fieldErrorText as ɵfieldErrorText, fieldShowsError as ɵfieldShowsError, formatIsoDate as ɵformatIsoDate, localIsoDate as ɵlocalIsoDate, parseIsoDate as ɵparseIsoDate, provideBfDocumentReset as ɵprovideBfDocumentReset, uniqueId as ɵuniqueId, validIsoDate as ɵvalidIsoDate };
|
|
13353
14003
|
|
|
13354
14004
|
//# sourceMappingURL=bitforgehq-ui.mjs.map
|