@mesgflow/ui-kit 0.7.0 → 0.8.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/fesm2022/mesgflow-ui-kit-accordion.mjs +6 -6
- package/fesm2022/mesgflow-ui-kit-agenda.mjs +3 -3
- package/fesm2022/mesgflow-ui-kit-alert.mjs +3 -3
- package/fesm2022/mesgflow-ui-kit-aspect-ratio.mjs +3 -3
- package/fesm2022/mesgflow-ui-kit-avatar-group.mjs +3 -3
- package/fesm2022/mesgflow-ui-kit-avatar.mjs +3 -3
- package/fesm2022/mesgflow-ui-kit-badge.mjs +3 -3
- package/fesm2022/mesgflow-ui-kit-banner.mjs +3 -3
- package/fesm2022/mesgflow-ui-kit-blocks.mjs +16 -16
- package/fesm2022/mesgflow-ui-kit-blocks.mjs.map +1 -1
- package/fesm2022/mesgflow-ui-kit-box-input.mjs +3 -3
- package/fesm2022/mesgflow-ui-kit-brand.mjs +3 -3
- package/fesm2022/mesgflow-ui-kit-breadcrumb.mjs +3 -3
- package/fesm2022/mesgflow-ui-kit-button-group.mjs +3 -3
- package/fesm2022/mesgflow-ui-kit-button.mjs +3 -3
- package/fesm2022/mesgflow-ui-kit-card.mjs +12 -12
- package/fesm2022/mesgflow-ui-kit-carousel.mjs +3 -3
- package/fesm2022/mesgflow-ui-kit-chart.mjs +12 -12
- package/fesm2022/mesgflow-ui-kit-checkbox.mjs +3 -3
- package/fesm2022/mesgflow-ui-kit-chip.mjs +3 -3
- package/fesm2022/mesgflow-ui-kit-code-block.mjs +3 -3
- package/fesm2022/mesgflow-ui-kit-collapsible.mjs +9 -9
- package/fesm2022/mesgflow-ui-kit-color-picker.mjs +3 -3
- package/fesm2022/mesgflow-ui-kit-combobox.mjs +3 -3
- package/fesm2022/mesgflow-ui-kit-command.mjs +15 -16
- package/fesm2022/mesgflow-ui-kit-command.mjs.map +1 -1
- package/fesm2022/mesgflow-ui-kit-context-menu.mjs +3 -3
- package/fesm2022/mesgflow-ui-kit-copy-button.mjs +6 -6
- package/fesm2022/mesgflow-ui-kit-core.mjs +9 -4
- package/fesm2022/mesgflow-ui-kit-core.mjs.map +1 -1
- package/fesm2022/mesgflow-ui-kit-countdown.mjs +3 -3
- package/fesm2022/mesgflow-ui-kit-date-picker.mjs +12 -12
- package/fesm2022/mesgflow-ui-kit-description-list.mjs +3 -3
- package/fesm2022/mesgflow-ui-kit-dialog.mjs +197 -34
- package/fesm2022/mesgflow-ui-kit-dialog.mjs.map +1 -1
- package/fesm2022/mesgflow-ui-kit-divider.mjs +3 -3
- package/fesm2022/mesgflow-ui-kit-drawer.mjs +4 -4
- package/fesm2022/mesgflow-ui-kit-drawer.mjs.map +1 -1
- package/fesm2022/mesgflow-ui-kit-dropzone.mjs +3 -3
- package/fesm2022/mesgflow-ui-kit-empty-state.mjs +3 -3
- package/fesm2022/mesgflow-ui-kit-field.mjs +3 -3
- package/fesm2022/mesgflow-ui-kit-file-upload.mjs +3 -3
- package/fesm2022/mesgflow-ui-kit-hover-card.mjs +6 -6
- package/fesm2022/mesgflow-ui-kit-i18n-tr.mjs +4 -0
- package/fesm2022/mesgflow-ui-kit-i18n-tr.mjs.map +1 -1
- package/fesm2022/mesgflow-ui-kit-icon.mjs +3 -3
- package/fesm2022/mesgflow-ui-kit-inline-edit.mjs +3 -3
- package/fesm2022/mesgflow-ui-kit-input.mjs +18 -18
- package/fesm2022/mesgflow-ui-kit-kbd.mjs +3 -3
- package/fesm2022/mesgflow-ui-kit-lightbox.mjs +9 -9
- package/fesm2022/mesgflow-ui-kit-link.mjs +3 -3
- package/fesm2022/mesgflow-ui-kit-listbox.mjs +3 -3
- package/fesm2022/mesgflow-ui-kit-mention.mjs +6 -6
- package/fesm2022/mesgflow-ui-kit-menu.mjs +12 -12
- package/fesm2022/mesgflow-ui-kit-nav-menu.mjs +3 -3
- package/fesm2022/mesgflow-ui-kit-notification-center.mjs +3 -3
- package/fesm2022/mesgflow-ui-kit-number-input.mjs +3 -3
- package/fesm2022/mesgflow-ui-kit-otp-input.mjs +3 -3
- package/fesm2022/mesgflow-ui-kit-page-header.mjs +6 -6
- package/fesm2022/mesgflow-ui-kit-pagination.mjs +3 -3
- package/fesm2022/mesgflow-ui-kit-password-input.mjs +35 -70
- package/fesm2022/mesgflow-ui-kit-password-input.mjs.map +1 -1
- package/fesm2022/mesgflow-ui-kit-popover.mjs +3 -3
- package/fesm2022/mesgflow-ui-kit-progress.mjs +3 -3
- package/fesm2022/mesgflow-ui-kit-qr-code.mjs +766 -0
- package/fesm2022/mesgflow-ui-kit-qr-code.mjs.map +1 -0
- package/fesm2022/mesgflow-ui-kit-radio.mjs +6 -6
- package/fesm2022/mesgflow-ui-kit-rating.mjs +3 -3
- package/fesm2022/mesgflow-ui-kit-scroll-area.mjs +3 -3
- package/fesm2022/mesgflow-ui-kit-search-input.mjs +3 -3
- package/fesm2022/mesgflow-ui-kit-segmented-control.mjs +3 -3
- package/fesm2022/mesgflow-ui-kit-select.mjs +3 -3
- package/fesm2022/mesgflow-ui-kit-sidebar.mjs +12 -12
- package/fesm2022/mesgflow-ui-kit-skeleton.mjs +3 -3
- package/fesm2022/mesgflow-ui-kit-slider.mjs +6 -6
- package/fesm2022/mesgflow-ui-kit-sortable.mjs +6 -6
- package/fesm2022/mesgflow-ui-kit-spinner.mjs +3 -3
- package/fesm2022/mesgflow-ui-kit-split-button.mjs +3 -3
- package/fesm2022/mesgflow-ui-kit-splitter.mjs +12 -12
- package/fesm2022/mesgflow-ui-kit-stat-tile.mjs +3 -3
- package/fesm2022/mesgflow-ui-kit-stepper.mjs +6 -6
- package/fesm2022/mesgflow-ui-kit-switch.mjs +3 -3
- package/fesm2022/mesgflow-ui-kit-table.mjs +21 -21
- package/fesm2022/mesgflow-ui-kit-tabs.mjs +27 -27
- package/fesm2022/mesgflow-ui-kit-tag-input.mjs +3 -3
- package/fesm2022/mesgflow-ui-kit-theme-switcher.mjs +3 -3
- package/fesm2022/mesgflow-ui-kit-theming.mjs +3 -3
- package/fesm2022/mesgflow-ui-kit-time-picker.mjs +3 -3
- package/fesm2022/mesgflow-ui-kit-timeline.mjs +3 -3
- package/fesm2022/mesgflow-ui-kit-toast.mjs +6 -6
- package/fesm2022/mesgflow-ui-kit-toggle.mjs +9 -9
- package/fesm2022/mesgflow-ui-kit-toolbar.mjs +9 -9
- package/fesm2022/mesgflow-ui-kit-tooltip.mjs +3 -3
- package/fesm2022/mesgflow-ui-kit-tour.mjs +9 -9
- package/fesm2022/mesgflow-ui-kit-transfer-list.mjs +3 -3
- package/fesm2022/mesgflow-ui-kit-tree-select.mjs +3 -3
- package/fesm2022/mesgflow-ui-kit-tree.mjs +3 -3
- package/fesm2022/mesgflow-ui-kit-virtual-list.mjs +3 -3
- package/fesm2022/mesgflow-ui-kit.mjs +1 -0
- package/fesm2022/mesgflow-ui-kit.mjs.map +1 -1
- package/package.json +5 -1
- package/tokens.json +1 -1
- package/types/mesgflow-ui-kit-command.d.ts +2 -2
- package/types/mesgflow-ui-kit-core.d.ts +10 -2
- package/types/mesgflow-ui-kit-dialog.d.ts +97 -12
- package/types/mesgflow-ui-kit-password-input.d.ts +33 -5
- package/types/mesgflow-ui-kit-qr-code.d.ts +160 -0
- package/types/mesgflow-ui-kit.d.ts +1 -0
|
@@ -63,10 +63,10 @@ class TourCard {
|
|
|
63
63
|
this.host.nativeElement.querySelector('[role="dialog"]')?.focus();
|
|
64
64
|
});
|
|
65
65
|
}
|
|
66
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.
|
|
67
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.
|
|
66
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: TourCard, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
67
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.7", type: TourCard, isStandalone: true, selector: "mf-tour-card", ngImport: i0, template: "<div\r\n role=\"dialog\"\r\n aria-modal=\"true\"\r\n tabindex=\"-1\"\r\n cdkTrapFocus\r\n [attr.aria-labelledby]=\"titleId\"\r\n [attr.aria-describedby]=\"contentId\"\r\n class=\"w-[min(20rem,calc(100vw-2rem))] animate-overlay-in rounded-xl border border-hairline bg-overlay p-4 shadow-3 outline-none\"\r\n (keydown.escape)=\"run.skip()\"\r\n>\r\n <div class=\"flex items-center justify-between gap-2\">\r\n <span class=\"font-mono text-eyebrow text-help uppercase tabular-nums\">\r\n {{ run.index() + 1 }} {{ labels().stepOf }} {{ run.steps.length }}\r\n </span>\r\n <button\r\n type=\"button\"\r\n class=\"-me-1.5 inline-flex size-7 cursor-pointer appearance-none items-center justify-center rounded-md border-0 bg-transparent text-fg-subtle transition-colors duration-fast ease-emphasis hover:bg-state-hover hover:text-fg focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-focus-ring\"\r\n [attr.aria-label]=\"labels().skip\"\r\n (click)=\"run.skip()\"\r\n >\r\n <span mfIcon [size]=\"16\">close</span>\r\n </button>\r\n </div>\r\n\r\n <h2 [id]=\"titleId\" class=\"mt-1.5 font-display text-base font-semibold text-fg\">\r\n {{ run.step().title }}\r\n </h2>\r\n <p [id]=\"contentId\" class=\"mt-1 text-sm text-fg-muted\">{{ run.step().content }}</p>\r\n\r\n <div class=\"mt-4 flex items-center gap-2\">\r\n <!-- \u0130lerleme: ad\u0131m ba\u015F\u0131na bir \u00E7izgi; salt g\u00F6rsel, say\u0131 zaten yukar\u0131da. -->\r\n <div class=\"flex flex-1 items-center gap-1\" aria-hidden=\"true\">\r\n @for (step of run.steps; track $index) {\r\n <span\r\n class=\"h-1 flex-1 rounded-full transition-colors duration-base ease-emphasis\"\r\n [class]=\"$index <= run.index() ? 'bg-help' : 'bg-surface-alt'\"\r\n ></span>\r\n }\r\n </div>\r\n @if (!run.isFirst()) {\r\n <button\r\n mfButton\r\n appearance=\"text\"\r\n tone=\"neutral\"\r\n size=\"sm\"\r\n type=\"button\"\r\n (click)=\"run.back()\"\r\n >\r\n {{ labels().back }}\r\n </button>\r\n }\r\n <button mfButton tone=\"help\" size=\"sm\" type=\"button\" (click)=\"run.next()\">\r\n {{ run.isLast() ? labels().done : labels().next }}\r\n </button>\r\n </div>\r\n</div>\r\n", dependencies: [{ kind: "ngmodule", type: A11yModule }, { kind: "directive", type: i1.CdkTrapFocus, selector: "[cdkTrapFocus]", inputs: ["cdkTrapFocus", "cdkTrapFocusAutoCapture"], exportAs: ["cdkTrapFocus"] }, { kind: "component", type: Button, selector: "button[mfButton], a[mfButton]", inputs: ["tone", "appearance", "size", "shape", "type", "loading", "iconStart", "iconEnd"], exportAs: ["mfButton"] }, { kind: "directive", type: Icon, selector: "span[mfIcon]", inputs: ["size", "filled"] }] });
|
|
68
68
|
}
|
|
69
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.
|
|
69
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: TourCard, decorators: [{
|
|
70
70
|
type: Component,
|
|
71
71
|
args: [{ selector: 'mf-tour-card', imports: [A11yModule, Button, Icon], template: "<div\r\n role=\"dialog\"\r\n aria-modal=\"true\"\r\n tabindex=\"-1\"\r\n cdkTrapFocus\r\n [attr.aria-labelledby]=\"titleId\"\r\n [attr.aria-describedby]=\"contentId\"\r\n class=\"w-[min(20rem,calc(100vw-2rem))] animate-overlay-in rounded-xl border border-hairline bg-overlay p-4 shadow-3 outline-none\"\r\n (keydown.escape)=\"run.skip()\"\r\n>\r\n <div class=\"flex items-center justify-between gap-2\">\r\n <span class=\"font-mono text-eyebrow text-help uppercase tabular-nums\">\r\n {{ run.index() + 1 }} {{ labels().stepOf }} {{ run.steps.length }}\r\n </span>\r\n <button\r\n type=\"button\"\r\n class=\"-me-1.5 inline-flex size-7 cursor-pointer appearance-none items-center justify-center rounded-md border-0 bg-transparent text-fg-subtle transition-colors duration-fast ease-emphasis hover:bg-state-hover hover:text-fg focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-focus-ring\"\r\n [attr.aria-label]=\"labels().skip\"\r\n (click)=\"run.skip()\"\r\n >\r\n <span mfIcon [size]=\"16\">close</span>\r\n </button>\r\n </div>\r\n\r\n <h2 [id]=\"titleId\" class=\"mt-1.5 font-display text-base font-semibold text-fg\">\r\n {{ run.step().title }}\r\n </h2>\r\n <p [id]=\"contentId\" class=\"mt-1 text-sm text-fg-muted\">{{ run.step().content }}</p>\r\n\r\n <div class=\"mt-4 flex items-center gap-2\">\r\n <!-- \u0130lerleme: ad\u0131m ba\u015F\u0131na bir \u00E7izgi; salt g\u00F6rsel, say\u0131 zaten yukar\u0131da. -->\r\n <div class=\"flex flex-1 items-center gap-1\" aria-hidden=\"true\">\r\n @for (step of run.steps; track $index) {\r\n <span\r\n class=\"h-1 flex-1 rounded-full transition-colors duration-base ease-emphasis\"\r\n [class]=\"$index <= run.index() ? 'bg-help' : 'bg-surface-alt'\"\r\n ></span>\r\n }\r\n </div>\r\n @if (!run.isFirst()) {\r\n <button\r\n mfButton\r\n appearance=\"text\"\r\n tone=\"neutral\"\r\n size=\"sm\"\r\n type=\"button\"\r\n (click)=\"run.back()\"\r\n >\r\n {{ labels().back }}\r\n </button>\r\n }\r\n <button mfButton tone=\"help\" size=\"sm\" type=\"button\" (click)=\"run.next()\">\r\n {{ run.isLast() ? labels().done : labels().next }}\r\n </button>\r\n </div>\r\n</div>\r\n" }]
|
|
72
72
|
}], ctorParameters: () => [] });
|
|
@@ -81,8 +81,8 @@ const SCRIM = 'color-mix(in srgb, var(--color-neutral-975) 55%, transparent)';
|
|
|
81
81
|
class TourSpotlight {
|
|
82
82
|
run = inject(TourRun);
|
|
83
83
|
scrim = SCRIM;
|
|
84
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.
|
|
85
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.
|
|
84
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: TourSpotlight, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
85
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.7", type: TourSpotlight, isStandalone: true, selector: "mf-tour-spotlight", host: { classAttribute: "fixed inset-0 block" }, ngImport: i0, template: `
|
|
86
86
|
@if (run.rect(); as rect) {
|
|
87
87
|
<div class="absolute inset-0" aria-hidden="true"></div>
|
|
88
88
|
<div
|
|
@@ -99,7 +99,7 @@ class TourSpotlight {
|
|
|
99
99
|
}
|
|
100
100
|
`, isInline: true });
|
|
101
101
|
}
|
|
102
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.
|
|
102
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: TourSpotlight, decorators: [{
|
|
103
103
|
type: Component,
|
|
104
104
|
args: [{
|
|
105
105
|
selector: 'mf-tour-spotlight',
|
|
@@ -238,10 +238,10 @@ class TourService {
|
|
|
238
238
|
});
|
|
239
239
|
return this.active;
|
|
240
240
|
}
|
|
241
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.
|
|
242
|
-
static ɵprov = i0.ɵɵngDeclareService({ minVersion: "22.0.0", version: "22.1.
|
|
241
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: TourService, deps: [], target: i0.ɵɵFactoryTarget.Service });
|
|
242
|
+
static ɵprov = i0.ɵɵngDeclareService({ minVersion: "22.0.0", version: "22.1.7", ngImport: i0, type: TourService });
|
|
243
243
|
}
|
|
244
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.
|
|
244
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: TourService, decorators: [{
|
|
245
245
|
type: Service
|
|
246
246
|
}] });
|
|
247
247
|
function resolveTarget(target, doc) {
|
|
@@ -74,8 +74,8 @@ class TransferList {
|
|
|
74
74
|
}
|
|
75
75
|
this.checked.set({ left: [], right: [] });
|
|
76
76
|
}
|
|
77
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.
|
|
78
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.
|
|
77
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: TransferList, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
78
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.7", type: TransferList, isStandalone: true, selector: "mf-transfer-list", inputs: { options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: true, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { value: "valueChange" }, host: { classAttribute: "grid gap-3 sm:grid-cols-[1fr_auto_1fr] sm:items-stretch" }, exportAs: ["mfTransferList"], ngImport: i0, template: `
|
|
79
79
|
@for (side of sides; track side) {
|
|
80
80
|
@if (side === 'right') {
|
|
81
81
|
<div class="flex flex-row items-center justify-center gap-1.5 sm:flex-col">
|
|
@@ -173,7 +173,7 @@ class TransferList {
|
|
|
173
173
|
}
|
|
174
174
|
`, isInline: true, dependencies: [{ kind: "component", type: Button, selector: "button[mfButton], a[mfButton]", inputs: ["tone", "appearance", "size", "shape", "type", "loading", "iconStart", "iconEnd"], exportAs: ["mfButton"] }, { kind: "directive", type: Icon, selector: "span[mfIcon]", inputs: ["size", "filled"] }, { kind: "component", type: Listbox, selector: "mf-listbox", inputs: ["options", "value", "multi", "disabled", "ariaLabel"], outputs: ["valueChange"], exportAs: ["mfListbox"] }] });
|
|
175
175
|
}
|
|
176
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.
|
|
176
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: TransferList, decorators: [{
|
|
177
177
|
type: Component,
|
|
178
178
|
args: [{
|
|
179
179
|
selector: 'mf-transfer-list',
|
|
@@ -157,12 +157,12 @@ class TreeSelect extends ValueAccessorBase {
|
|
|
157
157
|
setDisabledState(disabled) {
|
|
158
158
|
this.formDisabled.set(disabled);
|
|
159
159
|
}
|
|
160
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.
|
|
161
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.
|
|
160
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: TreeSelect, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
161
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.7", type: TreeSelect, isStandalone: true, selector: "mf-tree-select", inputs: { nodes: { classPropertyName: "nodes", publicName: "nodes", isSignal: true, isRequired: true, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, multi: { classPropertyName: "multi", publicName: "multi", isSignal: true, isRequired: false, transformFunction: null }, searchable: { classPropertyName: "searchable", publicName: "searchable", isSignal: true, isRequired: false, transformFunction: null }, placeholder: { classPropertyName: "placeholder", publicName: "placeholder", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, hasError: { classPropertyName: "hasError", publicName: "hasError", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, ariaLabel: { classPropertyName: "ariaLabel", publicName: "ariaLabel", isSignal: true, isRequired: false, transformFunction: null }, maxVisibleChips: { classPropertyName: "maxVisibleChips", publicName: "maxVisibleChips", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { value: "valueChange" }, host: { classAttribute: "block" }, providers: [
|
|
162
162
|
{ provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => TreeSelect), multi: true },
|
|
163
163
|
], viewQueries: [{ propertyName: "trigger", first: true, predicate: ["trigger"], descendants: true, isSignal: true }, { propertyName: "panel", first: true, predicate: ["panel"], descendants: true, isSignal: true }], exportAs: ["mfTreeSelect"], usesInheritance: true, ngImport: i0, template: "<button\r\n #trigger\r\n type=\"button\"\r\n cdkOverlayOrigin\r\n #origin=\"cdkOverlayOrigin\"\r\n [class]=\"triggerClasses()\"\r\n [disabled]=\"isDisabled()\"\r\n [attr.aria-label]=\"ariaLabel() || null\"\r\n [attr.aria-expanded]=\"open()\"\r\n aria-haspopup=\"tree\"\r\n (click)=\"toggle()\"\r\n (keydown)=\"onTriggerKeydown($event)\"\r\n>\r\n @if (selectedLabels().length === 0) {\r\n <span class=\"truncate text-fg-subtle\">{{ effectivePlaceholder() }}</span>\r\n } @else if (multi()) {\r\n <span class=\"flex min-w-0 flex-1 flex-wrap items-center gap-1\">\r\n @for (label of visibleChips(); track label) {\r\n <mf-chip size=\"sm\">{{ label }}</mf-chip>\r\n }\r\n @if (overflowCount() > 0) {\r\n <mf-chip size=\"sm\">+{{ overflowCount() }}</mf-chip>\r\n }\r\n </span>\r\n } @else {\r\n <span class=\"truncate\">{{ selectedLabels()[0] }}</span>\r\n }\r\n <span mfIcon [size]=\"18\" class=\"shrink-0 text-fg-subtle\">unfold_more</span>\r\n</button>\r\n\r\n<mf-popover\r\n [origin]=\"origin\"\r\n [open]=\"open()\"\r\n placement=\"bottom-start\"\r\n padding=\"sm\"\r\n [matchTriggerWidth]=\"true\"\r\n (closed)=\"close(true)\"\r\n>\r\n <div #panel class=\"flex max-h-80 flex-col gap-1\">\r\n @if (searchable()) {\r\n <input\r\n mfInput\r\n size=\"sm\"\r\n type=\"search\"\r\n autocomplete=\"off\"\r\n [placeholder]=\"labels().searchPlaceholder\"\r\n [attr.aria-label]=\"labels().searchPlaceholder\"\r\n [value]=\"query()\"\r\n (input)=\"query.set($any($event.target).value)\"\r\n />\r\n }\r\n <div class=\"min-h-0 overflow-y-auto\">\r\n @if (visibleNodes().length === 0) {\r\n <p class=\"px-2.5 py-6 text-center text-sm text-fg-subtle\" role=\"status\">\r\n {{ labels().noResults }}\r\n </p>\r\n } @else {\r\n <mf-tree\r\n [nodes]=\"visibleNodes()\"\r\n [value]=\"value()\"\r\n (valueChange)=\"onTreeValue($event)\"\r\n [multi]=\"multi()\"\r\n [expandAll]=\"searching()\"\r\n [ariaLabel]=\"ariaLabel() || effectivePlaceholder()\"\r\n />\r\n }\r\n </div>\r\n </div>\r\n</mf-popover>\r\n", dependencies: [{ kind: "ngmodule", type: OverlayModule }, { kind: "directive", type: i1.CdkOverlayOrigin, selector: "[cdk-overlay-origin], [overlay-origin], [cdkOverlayOrigin]", exportAs: ["cdkOverlayOrigin"] }, { kind: "component", type: Chip, selector: "mf-chip", inputs: ["tone", "size", "selected", "disabled", "removable", "removeLabel"], outputs: ["removed"], exportAs: ["mfChip"] }, { kind: "directive", type: Icon, selector: "span[mfIcon]", inputs: ["size", "filled"] }, { kind: "directive", type: Input, selector: "input[mfInput]:not([type=checkbox]):not([type=radio]), textarea[mfInput]", inputs: ["size", "hasError", "autosize", "minRows", "maxRows"] }, { kind: "component", type: Popover, selector: "mf-popover", inputs: ["origin", "open", "placement", "padding", "hasBackdrop", "matchTriggerWidth", "panelClass"], outputs: ["openChange", "closed"], exportAs: ["mfPopover"] }, { kind: "component", type: Tree, selector: "mf-tree", inputs: ["nodes", "value", "multi", "ariaLabel", "expandAll"], outputs: ["valueChange"], exportAs: ["mfTree"] }] });
|
|
164
164
|
}
|
|
165
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.
|
|
165
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: TreeSelect, decorators: [{
|
|
166
166
|
type: Component,
|
|
167
167
|
args: [{ selector: 'mf-tree-select', exportAs: 'mfTreeSelect', imports: [OverlayModule, Chip, Icon, Input, Popover, Tree], host: { class: 'block' }, providers: [
|
|
168
168
|
{ provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => TreeSelect), multi: true },
|
|
@@ -66,10 +66,10 @@ class Tree extends ValueAccessorBase {
|
|
|
66
66
|
rowClasses(selected, disabled) {
|
|
67
67
|
return cn(treeRowVariants({ selected: !!selected, disabled }));
|
|
68
68
|
}
|
|
69
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.
|
|
70
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.
|
|
69
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: Tree, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
70
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.7", type: Tree, isStandalone: true, selector: "mf-tree", inputs: { nodes: { classPropertyName: "nodes", publicName: "nodes", isSignal: true, isRequired: true, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, multi: { classPropertyName: "multi", publicName: "multi", isSignal: true, isRequired: false, transformFunction: null }, ariaLabel: { classPropertyName: "ariaLabel", publicName: "ariaLabel", isSignal: true, isRequired: false, transformFunction: null }, expandAll: { classPropertyName: "expandAll", publicName: "expandAll", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { value: "valueChange" }, host: { classAttribute: "block" }, providers: [{ provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => Tree), multi: true }], exportAs: ["mfTree"], usesInheritance: true, ngImport: i0, template: "<ul\r\n ngTree\r\n #treeRef=\"ngTree\"\r\n [(value)]=\"value\"\r\n [multi]=\"multi()\"\r\n [attr.aria-label]=\"ariaLabel() || null\"\r\n class=\"text-sm\"\r\n>\r\n <ng-template\r\n [ngTemplateOutlet]=\"treeNodes\"\r\n [ngTemplateOutletContext]=\"{ $implicit: nodes(), parent: treeRef }\"\r\n />\r\n</ul>\r\n\r\n<ng-template #treeNodes let-nodes let-parent=\"parent\">\r\n @for (node of nodes; track node.id) {\r\n <li\r\n ngTreeItem\r\n #item=\"ngTreeItem\"\r\n [parent]=\"parent\"\r\n [value]=\"node.value\"\r\n [label]=\"node.label\"\r\n [disabled]=\"!!node.disabled\"\r\n [expanded]=\"expandAll()\"\r\n >\r\n <span\r\n [class]=\"rowClasses(item.selected(), !!node.disabled)\"\r\n [style.padding-inline-start.px]=\"item.level() * 16\"\r\n >\r\n @if (node.children && node.children.length > 0) {\r\n <span\r\n mfIcon\r\n [size]=\"16\"\r\n class=\"shrink-0 transition-transform duration-fast rtl:-scale-x-100\"\r\n [class.rotate-90]=\"item.expanded()\"\r\n [class.rtl:-rotate-90]=\"item.expanded()\"\r\n >chevron_right</span\r\n >\r\n } @else {\r\n <span class=\"w-4 shrink-0\" aria-hidden=\"true\"></span>\r\n }\r\n <span class=\"truncate\">{{ node.label }}</span>\r\n </span>\r\n @if (node.children && node.children.length > 0) {\r\n <ul role=\"group\">\r\n <ng-template ngTreeItemGroup [ownedBy]=\"item\" #group=\"ngTreeItemGroup\">\r\n <ng-template\r\n [ngTemplateOutlet]=\"treeNodes\"\r\n [ngTemplateOutletContext]=\"{ $implicit: node.children, parent: group }\"\r\n />\r\n </ng-template>\r\n </ul>\r\n }\r\n </li>\r\n }\r\n</ng-template>\r\n", dependencies: [{ kind: "directive", type: Tree$1, selector: "[ngTree]", inputs: ["id", "orientation", "multi", "disabled", "selectionMode", "focusMode", "wrap", "softDisabled", "typeaheadDelay", "tabindex", "value", "nav", "currentType"], outputs: ["valueChange"], exportAs: ["ngTree"] }, { kind: "directive", type: TreeItem, selector: "[ngTreeItem]", inputs: ["id", "value", "parent", "disabled", "selectable", "expanded", "label"], outputs: ["expandedChange"], exportAs: ["ngTreeItem"] }, { kind: "directive", type: TreeItemGroup, selector: "ng-template[ngTreeItemGroup]", inputs: ["ownedBy"], exportAs: ["ngTreeItemGroup"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: Icon, selector: "span[mfIcon]", inputs: ["size", "filled"] }] });
|
|
71
71
|
}
|
|
72
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.
|
|
72
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: Tree, decorators: [{
|
|
73
73
|
type: Component,
|
|
74
74
|
args: [{ selector: 'mf-tree', exportAs: 'mfTree', host: { class: 'block' }, imports: [Tree$1, TreeItem, TreeItemGroup, NgTemplateOutlet, Icon], providers: [{ provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => Tree), multi: true }], template: "<ul\r\n ngTree\r\n #treeRef=\"ngTree\"\r\n [(value)]=\"value\"\r\n [multi]=\"multi()\"\r\n [attr.aria-label]=\"ariaLabel() || null\"\r\n class=\"text-sm\"\r\n>\r\n <ng-template\r\n [ngTemplateOutlet]=\"treeNodes\"\r\n [ngTemplateOutletContext]=\"{ $implicit: nodes(), parent: treeRef }\"\r\n />\r\n</ul>\r\n\r\n<ng-template #treeNodes let-nodes let-parent=\"parent\">\r\n @for (node of nodes; track node.id) {\r\n <li\r\n ngTreeItem\r\n #item=\"ngTreeItem\"\r\n [parent]=\"parent\"\r\n [value]=\"node.value\"\r\n [label]=\"node.label\"\r\n [disabled]=\"!!node.disabled\"\r\n [expanded]=\"expandAll()\"\r\n >\r\n <span\r\n [class]=\"rowClasses(item.selected(), !!node.disabled)\"\r\n [style.padding-inline-start.px]=\"item.level() * 16\"\r\n >\r\n @if (node.children && node.children.length > 0) {\r\n <span\r\n mfIcon\r\n [size]=\"16\"\r\n class=\"shrink-0 transition-transform duration-fast rtl:-scale-x-100\"\r\n [class.rotate-90]=\"item.expanded()\"\r\n [class.rtl:-rotate-90]=\"item.expanded()\"\r\n >chevron_right</span\r\n >\r\n } @else {\r\n <span class=\"w-4 shrink-0\" aria-hidden=\"true\"></span>\r\n }\r\n <span class=\"truncate\">{{ node.label }}</span>\r\n </span>\r\n @if (node.children && node.children.length > 0) {\r\n <ul role=\"group\">\r\n <ng-template ngTreeItemGroup [ownedBy]=\"item\" #group=\"ngTreeItemGroup\">\r\n <ng-template\r\n [ngTemplateOutlet]=\"treeNodes\"\r\n [ngTemplateOutletContext]=\"{ $implicit: node.children, parent: group }\"\r\n />\r\n </ng-template>\r\n </ul>\r\n }\r\n </li>\r\n }\r\n</ng-template>\r\n" }]
|
|
75
75
|
}], ctorParameters: () => [], propDecorators: { nodes: [{ type: i0.Input, args: [{ isSignal: true, alias: "nodes", required: true }] }], value: [{ type: i0.Input, args: [{ isSignal: true, alias: "value", required: false }] }, { type: i0.Output, args: ["valueChange"] }], multi: [{ type: i0.Input, args: [{ isSignal: true, alias: "multi", required: false }] }], ariaLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "ariaLabel", required: false }] }], expandAll: [{ type: i0.Input, args: [{ isSignal: true, alias: "expandAll", required: false }] }] } });
|
|
@@ -39,8 +39,8 @@ class VirtualList {
|
|
|
39
39
|
scrollToIndex(index, behavior = 'smooth') {
|
|
40
40
|
this.viewport().scrollToIndex(index, behavior);
|
|
41
41
|
}
|
|
42
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.
|
|
43
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "22.1.
|
|
42
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: VirtualList, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
43
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "22.1.7", type: VirtualList, isStandalone: true, selector: "mf-virtual-list", inputs: { items: { classPropertyName: "items", publicName: "items", isSignal: true, isRequired: true, transformFunction: null }, itemSize: { classPropertyName: "itemSize", publicName: "itemSize", isSignal: true, isRequired: false, transformFunction: null }, height: { classPropertyName: "height", publicName: "height", isSignal: true, isRequired: false, transformFunction: null }, ariaLabel: { classPropertyName: "ariaLabel", publicName: "ariaLabel", isSignal: true, isRequired: false, transformFunction: null }, trackBy: { classPropertyName: "trackBy", publicName: "trackBy", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { indexChange: "indexChange" }, host: { classAttribute: "block" }, queries: [{ propertyName: "template", first: true, predicate: (TemplateRef), descendants: true, isSignal: true }], viewQueries: [{ propertyName: "viewport", first: true, predicate: CdkVirtualScrollViewport, descendants: true, isSignal: true }], exportAs: ["mfVirtualList"], ngImport: i0, template: `
|
|
44
44
|
<cdk-virtual-scroll-viewport
|
|
45
45
|
[itemSize]="itemSize()"
|
|
46
46
|
[style.height]="height()"
|
|
@@ -66,7 +66,7 @@ class VirtualList {
|
|
|
66
66
|
</cdk-virtual-scroll-viewport>
|
|
67
67
|
`, isInline: true, dependencies: [{ kind: "component", type: CdkVirtualScrollViewport, selector: "cdk-virtual-scroll-viewport", inputs: ["orientation", "appendOnly"], outputs: ["scrolledIndexChange"] }, { kind: "directive", type: CdkFixedSizeVirtualScroll, selector: "cdk-virtual-scroll-viewport[itemSize]", inputs: ["itemSize", "minBufferPx", "maxBufferPx"] }, { kind: "directive", type: CdkVirtualForOf, selector: "[cdkVirtualFor][cdkVirtualForOf]", inputs: ["cdkVirtualForOf", "cdkVirtualForTrackBy", "cdkVirtualForTemplate", "cdkVirtualForTemplateCacheSize"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }] });
|
|
68
68
|
}
|
|
69
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.
|
|
69
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: VirtualList, decorators: [{
|
|
70
70
|
type: Component,
|
|
71
71
|
args: [{
|
|
72
72
|
selector: 'mf-virtual-list',
|
|
@@ -54,6 +54,7 @@ export * from '@mesgflow/ui-kit/pagination';
|
|
|
54
54
|
export * from '@mesgflow/ui-kit/password-input';
|
|
55
55
|
export * from '@mesgflow/ui-kit/popover';
|
|
56
56
|
export * from '@mesgflow/ui-kit/progress';
|
|
57
|
+
export * from '@mesgflow/ui-kit/qr-code';
|
|
57
58
|
export * from '@mesgflow/ui-kit/radio';
|
|
58
59
|
export * from '@mesgflow/ui-kit/rating';
|
|
59
60
|
export * from '@mesgflow/ui-kit/scroll-area';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mesgflow-ui-kit.mjs","sources":["../../../projects/ui-kit/index.ts","../../../projects/ui-kit/mesgflow-ui-kit.ts"],"sourcesContent":["/*\r\n * Public API Surface of @mesgflow/ui-kit — birincil giriş noktası.\r\n *\r\n * Her satır bir ikincil giriş noktasının (`@mesgflow/ui-kit/<klasör>`) kendi\r\n * `index.ts` barrel'ını yeniden dışa verir — tüketici `import { Button }\r\n * from '@mesgflow/ui-kit'` yazmaya devam eder, ama isterse `import { Button }\r\n * from '@mesgflow/ui-kit/button'` ile yalnız o girişi de çekebilir (bkz.\r\n * `@angular/cdk`'nin `./overlay`/`./a11y` deseni).\r\n */\r\n\r\n// Yeniden dışa aktarımlar PAKET YOLUYLA (`@mesgflow/ui-kit/<entry>`), göreli `./<entry>` DEĞİL:\r\n// göreli yolda ng-packagr her entry'nin kodunu birincil FESM'e İKİNCİ KEZ gömüyordu (1.3 MB,\r\n// ayrı sınıf/InjectionToken kimlikleri — `provideMesgflowUi` barrel'dan, bileşen `/button`'dan\r\n// gelince etiketler bileşene ulaşmıyordu). `check:size`'ın `(barrel)` bütçesi bunu korur.\r\n// icons-lucide BİLEREK birincil barrel'da YOK — opsiyonel veri seti, import edilmezse pakete girmez.\r\nexport * from '@mesgflow/ui-kit/core';\r\nexport * from '@mesgflow/ui-kit/accordion';\r\nexport * from '@mesgflow/ui-kit/agenda';\r\nexport * from '@mesgflow/ui-kit/alert';\r\nexport * from '@mesgflow/ui-kit/aspect-ratio';\r\nexport * from '@mesgflow/ui-kit/avatar-group';\r\nexport * from '@mesgflow/ui-kit/avatar';\r\nexport * from '@mesgflow/ui-kit/badge';\r\nexport * from '@mesgflow/ui-kit/blocks';\r\nexport * from '@mesgflow/ui-kit/banner';\r\nexport * from '@mesgflow/ui-kit/box-input';\r\nexport * from '@mesgflow/ui-kit/brand';\r\nexport * from '@mesgflow/ui-kit/breadcrumb';\r\nexport * from '@mesgflow/ui-kit/button-group';\r\nexport * from '@mesgflow/ui-kit/button';\r\nexport * from '@mesgflow/ui-kit/card';\r\nexport * from '@mesgflow/ui-kit/carousel';\r\nexport * from '@mesgflow/ui-kit/chart';\r\nexport * from '@mesgflow/ui-kit/checkbox';\r\nexport * from '@mesgflow/ui-kit/chip';\r\nexport * from '@mesgflow/ui-kit/code-block';\r\nexport * from '@mesgflow/ui-kit/collapsible';\r\nexport * from '@mesgflow/ui-kit/color-picker';\r\nexport * from '@mesgflow/ui-kit/combobox';\r\nexport * from '@mesgflow/ui-kit/command';\r\nexport * from '@mesgflow/ui-kit/context-menu';\r\nexport * from '@mesgflow/ui-kit/copy-button';\r\nexport * from '@mesgflow/ui-kit/countdown';\r\nexport * from '@mesgflow/ui-kit/date-picker';\r\nexport * from '@mesgflow/ui-kit/description-list';\r\nexport * from '@mesgflow/ui-kit/dialog';\r\nexport * from '@mesgflow/ui-kit/divider';\r\nexport * from '@mesgflow/ui-kit/drawer';\r\nexport * from '@mesgflow/ui-kit/dropzone';\r\nexport * from '@mesgflow/ui-kit/empty-state';\r\nexport * from '@mesgflow/ui-kit/field';\r\nexport * from '@mesgflow/ui-kit/file-upload';\r\nexport * from '@mesgflow/ui-kit/hover-card';\r\nexport * from '@mesgflow/ui-kit/icon';\r\nexport * from '@mesgflow/ui-kit/inline-edit';\r\nexport * from '@mesgflow/ui-kit/input';\r\nexport * from '@mesgflow/ui-kit/kbd';\r\nexport * from '@mesgflow/ui-kit/lightbox';\r\nexport * from '@mesgflow/ui-kit/link';\r\nexport * from '@mesgflow/ui-kit/listbox';\r\nexport * from '@mesgflow/ui-kit/mention';\r\nexport * from '@mesgflow/ui-kit/menu';\r\nexport * from '@mesgflow/ui-kit/nav-menu';\r\nexport * from '@mesgflow/ui-kit/notification-center';\r\nexport * from '@mesgflow/ui-kit/number-input';\r\nexport * from '@mesgflow/ui-kit/otp-input';\r\nexport * from '@mesgflow/ui-kit/page-header';\r\nexport * from '@mesgflow/ui-kit/pagination';\r\nexport * from '@mesgflow/ui-kit/password-input';\r\nexport * from '@mesgflow/ui-kit/popover';\r\nexport * from '@mesgflow/ui-kit/progress';\r\nexport * from '@mesgflow/ui-kit/radio';\r\nexport * from '@mesgflow/ui-kit/rating';\r\nexport * from '@mesgflow/ui-kit/scroll-area';\r\nexport * from '@mesgflow/ui-kit/search-input';\r\nexport * from '@mesgflow/ui-kit/segmented-control';\r\nexport * from '@mesgflow/ui-kit/select';\r\nexport * from '@mesgflow/ui-kit/sidebar';\r\nexport * from '@mesgflow/ui-kit/skeleton';\r\nexport * from '@mesgflow/ui-kit/slider';\r\nexport * from '@mesgflow/ui-kit/sortable';\r\nexport * from '@mesgflow/ui-kit/spinner';\r\nexport * from '@mesgflow/ui-kit/split-button';\r\nexport * from '@mesgflow/ui-kit/splitter';\r\nexport * from '@mesgflow/ui-kit/stat-tile';\r\nexport * from '@mesgflow/ui-kit/stepper';\r\nexport * from '@mesgflow/ui-kit/switch';\r\nexport * from '@mesgflow/ui-kit/table';\r\nexport * from '@mesgflow/ui-kit/tabs';\r\nexport * from '@mesgflow/ui-kit/tag-input';\r\nexport * from '@mesgflow/ui-kit/theme-switcher';\r\nexport * from '@mesgflow/ui-kit/time-picker';\r\nexport * from '@mesgflow/ui-kit/timeline';\r\nexport * from '@mesgflow/ui-kit/toast';\r\nexport * from '@mesgflow/ui-kit/toggle';\r\nexport * from '@mesgflow/ui-kit/toolbar';\r\nexport * from '@mesgflow/ui-kit/tooltip';\r\nexport * from '@mesgflow/ui-kit/tour';\r\nexport * from '@mesgflow/ui-kit/transfer-list';\r\nexport * from '@mesgflow/ui-kit/tree-select';\r\nexport * from '@mesgflow/ui-kit/tree';\r\nexport * from '@mesgflow/ui-kit/virtual-list';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"mesgflow-ui-kit.mjs","sources":["../../../projects/ui-kit/index.ts","../../../projects/ui-kit/mesgflow-ui-kit.ts"],"sourcesContent":["/*\r\n * Public API Surface of @mesgflow/ui-kit — birincil giriş noktası.\r\n *\r\n * Her satır bir ikincil giriş noktasının (`@mesgflow/ui-kit/<klasör>`) kendi\r\n * `index.ts` barrel'ını yeniden dışa verir — tüketici `import { Button }\r\n * from '@mesgflow/ui-kit'` yazmaya devam eder, ama isterse `import { Button }\r\n * from '@mesgflow/ui-kit/button'` ile yalnız o girişi de çekebilir (bkz.\r\n * `@angular/cdk`'nin `./overlay`/`./a11y` deseni).\r\n */\r\n\r\n// Yeniden dışa aktarımlar PAKET YOLUYLA (`@mesgflow/ui-kit/<entry>`), göreli `./<entry>` DEĞİL:\r\n// göreli yolda ng-packagr her entry'nin kodunu birincil FESM'e İKİNCİ KEZ gömüyordu (1.3 MB,\r\n// ayrı sınıf/InjectionToken kimlikleri — `provideMesgflowUi` barrel'dan, bileşen `/button`'dan\r\n// gelince etiketler bileşene ulaşmıyordu). `check:size`'ın `(barrel)` bütçesi bunu korur.\r\n// icons-lucide BİLEREK birincil barrel'da YOK — opsiyonel veri seti, import edilmezse pakete girmez.\r\nexport * from '@mesgflow/ui-kit/core';\r\nexport * from '@mesgflow/ui-kit/accordion';\r\nexport * from '@mesgflow/ui-kit/agenda';\r\nexport * from '@mesgflow/ui-kit/alert';\r\nexport * from '@mesgflow/ui-kit/aspect-ratio';\r\nexport * from '@mesgflow/ui-kit/avatar-group';\r\nexport * from '@mesgflow/ui-kit/avatar';\r\nexport * from '@mesgflow/ui-kit/badge';\r\nexport * from '@mesgflow/ui-kit/blocks';\r\nexport * from '@mesgflow/ui-kit/banner';\r\nexport * from '@mesgflow/ui-kit/box-input';\r\nexport * from '@mesgflow/ui-kit/brand';\r\nexport * from '@mesgflow/ui-kit/breadcrumb';\r\nexport * from '@mesgflow/ui-kit/button-group';\r\nexport * from '@mesgflow/ui-kit/button';\r\nexport * from '@mesgflow/ui-kit/card';\r\nexport * from '@mesgflow/ui-kit/carousel';\r\nexport * from '@mesgflow/ui-kit/chart';\r\nexport * from '@mesgflow/ui-kit/checkbox';\r\nexport * from '@mesgflow/ui-kit/chip';\r\nexport * from '@mesgflow/ui-kit/code-block';\r\nexport * from '@mesgflow/ui-kit/collapsible';\r\nexport * from '@mesgflow/ui-kit/color-picker';\r\nexport * from '@mesgflow/ui-kit/combobox';\r\nexport * from '@mesgflow/ui-kit/command';\r\nexport * from '@mesgflow/ui-kit/context-menu';\r\nexport * from '@mesgflow/ui-kit/copy-button';\r\nexport * from '@mesgflow/ui-kit/countdown';\r\nexport * from '@mesgflow/ui-kit/date-picker';\r\nexport * from '@mesgflow/ui-kit/description-list';\r\nexport * from '@mesgflow/ui-kit/dialog';\r\nexport * from '@mesgflow/ui-kit/divider';\r\nexport * from '@mesgflow/ui-kit/drawer';\r\nexport * from '@mesgflow/ui-kit/dropzone';\r\nexport * from '@mesgflow/ui-kit/empty-state';\r\nexport * from '@mesgflow/ui-kit/field';\r\nexport * from '@mesgflow/ui-kit/file-upload';\r\nexport * from '@mesgflow/ui-kit/hover-card';\r\nexport * from '@mesgflow/ui-kit/icon';\r\nexport * from '@mesgflow/ui-kit/inline-edit';\r\nexport * from '@mesgflow/ui-kit/input';\r\nexport * from '@mesgflow/ui-kit/kbd';\r\nexport * from '@mesgflow/ui-kit/lightbox';\r\nexport * from '@mesgflow/ui-kit/link';\r\nexport * from '@mesgflow/ui-kit/listbox';\r\nexport * from '@mesgflow/ui-kit/mention';\r\nexport * from '@mesgflow/ui-kit/menu';\r\nexport * from '@mesgflow/ui-kit/nav-menu';\r\nexport * from '@mesgflow/ui-kit/notification-center';\r\nexport * from '@mesgflow/ui-kit/number-input';\r\nexport * from '@mesgflow/ui-kit/otp-input';\r\nexport * from '@mesgflow/ui-kit/page-header';\r\nexport * from '@mesgflow/ui-kit/pagination';\r\nexport * from '@mesgflow/ui-kit/password-input';\r\nexport * from '@mesgflow/ui-kit/popover';\r\nexport * from '@mesgflow/ui-kit/progress';\r\nexport * from '@mesgflow/ui-kit/qr-code';\r\nexport * from '@mesgflow/ui-kit/radio';\r\nexport * from '@mesgflow/ui-kit/rating';\r\nexport * from '@mesgflow/ui-kit/scroll-area';\r\nexport * from '@mesgflow/ui-kit/search-input';\r\nexport * from '@mesgflow/ui-kit/segmented-control';\r\nexport * from '@mesgflow/ui-kit/select';\r\nexport * from '@mesgflow/ui-kit/sidebar';\r\nexport * from '@mesgflow/ui-kit/skeleton';\r\nexport * from '@mesgflow/ui-kit/slider';\r\nexport * from '@mesgflow/ui-kit/sortable';\r\nexport * from '@mesgflow/ui-kit/spinner';\r\nexport * from '@mesgflow/ui-kit/split-button';\r\nexport * from '@mesgflow/ui-kit/splitter';\r\nexport * from '@mesgflow/ui-kit/stat-tile';\r\nexport * from '@mesgflow/ui-kit/stepper';\r\nexport * from '@mesgflow/ui-kit/switch';\r\nexport * from '@mesgflow/ui-kit/table';\r\nexport * from '@mesgflow/ui-kit/tabs';\r\nexport * from '@mesgflow/ui-kit/tag-input';\r\nexport * from '@mesgflow/ui-kit/theme-switcher';\r\nexport * from '@mesgflow/ui-kit/time-picker';\r\nexport * from '@mesgflow/ui-kit/timeline';\r\nexport * from '@mesgflow/ui-kit/toast';\r\nexport * from '@mesgflow/ui-kit/toggle';\r\nexport * from '@mesgflow/ui-kit/toolbar';\r\nexport * from '@mesgflow/ui-kit/tooltip';\r\nexport * from '@mesgflow/ui-kit/tour';\r\nexport * from '@mesgflow/ui-kit/transfer-list';\r\nexport * from '@mesgflow/ui-kit/tree-select';\r\nexport * from '@mesgflow/ui-kit/tree';\r\nexport * from '@mesgflow/ui-kit/virtual-list';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;;;;;;;AAQG;AAEH;AACA;AACA;AACA;AACA;;ACdA;;AAEG"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mesgflow/ui-kit",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.8.0",
|
|
4
4
|
"description": "Independent Angular component kit (button, select, dialog, table, sidebar, and more) built on a Tailwind v4 design token system. See README.md for setup and prerequisites.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"author": "Hurdeniz YENER",
|
|
@@ -323,6 +323,10 @@
|
|
|
323
323
|
"types": "./types/mesgflow-ui-kit-progress.d.ts",
|
|
324
324
|
"default": "./fesm2022/mesgflow-ui-kit-progress.mjs"
|
|
325
325
|
},
|
|
326
|
+
"./qr-code": {
|
|
327
|
+
"types": "./types/mesgflow-ui-kit-qr-code.d.ts",
|
|
328
|
+
"default": "./fesm2022/mesgflow-ui-kit-qr-code.mjs"
|
|
329
|
+
},
|
|
326
330
|
"./radio": {
|
|
327
331
|
"types": "./types/mesgflow-ui-kit-radio.d.ts",
|
|
328
332
|
"default": "./fesm2022/mesgflow-ui-kit-radio.mjs"
|
package/tokens.json
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"$description": "@mesgflow/ui-kit 0.
|
|
2
|
+
"$description": "@mesgflow/ui-kit 0.7.0 design tokens (W3C DTCG). Generated from projects/ui-kit/styles/tokens/*.css by scripts/export-tokens.mjs — do not edit.",
|
|
3
3
|
"primitives": {
|
|
4
4
|
"color": {
|
|
5
5
|
"primary": {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import * as _mesgflow_ui_kit_command from '@mesgflow/ui-kit/command';
|
|
2
2
|
import * as _mesgflow_ui_kit_core from '@mesgflow/ui-kit/core';
|
|
3
3
|
import * as _angular_core from '@angular/core';
|
|
4
|
-
import
|
|
4
|
+
import * as _mesgflow_ui_kit_dialog from '@mesgflow/ui-kit/dialog';
|
|
5
5
|
|
|
6
6
|
/** `mf-command`'ın tek öğesi — `data` tüketicinin kendi yükü (rota, eylem kimliği vb.). */
|
|
7
7
|
interface MfCommandItem<T = unknown> {
|
|
@@ -125,7 +125,7 @@ interface CommandPaletteData<T = unknown> {
|
|
|
125
125
|
*/
|
|
126
126
|
declare class CommandPalette<T = unknown> {
|
|
127
127
|
protected readonly data: CommandPaletteData<T>;
|
|
128
|
-
protected readonly ref:
|
|
128
|
+
protected readonly ref: _mesgflow_ui_kit_dialog.MfDialogRef<MfCommandItem<T>, CommandPalette<T>>;
|
|
129
129
|
/** `DialogService` çıkış animasyonu turu — `Dialog`'un aynı reaktif sınıfı (bkz. dialog.service.ts). */
|
|
130
130
|
private readonly surface;
|
|
131
131
|
protected readonly closing: _angular_core.Signal<boolean>;
|
|
@@ -384,6 +384,12 @@ interface MfPasswordInputLabels {
|
|
|
384
384
|
show: string;
|
|
385
385
|
hide: string;
|
|
386
386
|
}
|
|
387
|
+
interface MfQrCodeLabels {
|
|
388
|
+
/** `role="img"` için varsayılan erişilebilir ad. */
|
|
389
|
+
ariaLabel: string;
|
|
390
|
+
/** İçerik seçilen hata düzeltme seviyesiyle sığmadığında. */
|
|
391
|
+
error: string;
|
|
392
|
+
}
|
|
387
393
|
interface MfChipLabels {
|
|
388
394
|
remove: string;
|
|
389
395
|
}
|
|
@@ -622,6 +628,7 @@ interface MfLabels {
|
|
|
622
628
|
stepper: MfStepperLabels;
|
|
623
629
|
progress: MfProgressLabels;
|
|
624
630
|
passwordInput: MfPasswordInputLabels;
|
|
631
|
+
qrCode: MfQrCodeLabels;
|
|
625
632
|
chip: MfChipLabels;
|
|
626
633
|
alert: MfAlertLabels;
|
|
627
634
|
breadcrumb: MfBreadcrumbLabels;
|
|
@@ -696,6 +703,7 @@ declare const MF_OTP_INPUT_LABELS: InjectionToken<Signal<_mesgflow_ui_kit_core.M
|
|
|
696
703
|
declare const MF_STEPPER_LABELS: InjectionToken<Signal<_mesgflow_ui_kit_core.MfStepperLabels>>;
|
|
697
704
|
declare const MF_PROGRESS_LABELS: InjectionToken<Signal<_mesgflow_ui_kit_core.MfProgressLabels>>;
|
|
698
705
|
declare const MF_PASSWORD_INPUT_LABELS: InjectionToken<Signal<_mesgflow_ui_kit_core.MfPasswordInputLabels>>;
|
|
706
|
+
declare const MF_QR_CODE_LABELS: InjectionToken<Signal<_mesgflow_ui_kit_core.MfQrCodeLabels>>;
|
|
699
707
|
declare const MF_CHIP_LABELS: InjectionToken<Signal<_mesgflow_ui_kit_core.MfChipLabels>>;
|
|
700
708
|
declare const MF_ALERT_LABELS: InjectionToken<Signal<_mesgflow_ui_kit_core.MfAlertLabels>>;
|
|
701
709
|
declare const MF_BREADCRUMB_LABELS: InjectionToken<Signal<_mesgflow_ui_kit_core.MfBreadcrumbLabels>>;
|
|
@@ -754,5 +762,5 @@ interface ProvideMesgflowUiOptions {
|
|
|
754
762
|
*/
|
|
755
763
|
declare function provideMesgflowUi(options?: ProvideMesgflowUiOptions): EnvironmentProviders;
|
|
756
764
|
|
|
757
|
-
export { MF_AGENDA_LABELS, MF_ALERT_LABELS, MF_AUTH_CARD_LABELS, MF_AVATAR_GROUP_LABELS, MF_BOX_INPUT_LABELS, MF_BREADCRUMB_LABELS, MF_CAROUSEL_LABELS, MF_CHARACTER_COUNT_LABELS, MF_CHART_LABELS, MF_CHIP_LABELS, MF_COLOR_PICKER_LABELS, MF_COMBOBOX_LABELS, MF_COMMAND_LABELS, MF_COMMON_LABELS, MF_COPY_LABELS, MF_COUNTDOWN_LABELS, MF_DATE_LOCALE, MF_DATE_PICKER_LABELS, MF_DIALOG_LABELS, MF_DROPZONE_LABELS, MF_FILE_UPLOAD_LABELS, MF_INLINE_EDIT_LABELS, MF_INVITE_MEMBERS_LABELS, MF_LABELS, MF_LIGHTBOX_LABELS, MF_MENTION_LABELS, MF_NOTIFICATION_CENTER_LABELS, MF_OTP_INPUT_LABELS, MF_PAGINATION_LABELS, MF_PANEL_GROUP_LABELS, MF_PASSWORD_INPUT_LABELS, MF_PROGRESS_LABELS, MF_RATING_LABELS, MF_SEARCH_INPUT_LABELS, MF_SELECT_LABELS, MF_SIDEBAR_LABELS, MF_SLIDER_LABELS, MF_SORTABLE_LABELS, MF_SPLIT_BUTTON_LABELS, MF_STAT_TILE_LABELS, MF_STEPPER_LABELS, MF_TABLE_LABELS, MF_TABS_LABELS, MF_THEME_SWITCHER_LABELS, MF_TIME_PICKER_LABELS, MF_TOAST_LABELS, MF_TOUR_LABELS, MF_TRANSFER_LIST_LABELS, MF_TREE_SELECT_LABELS, SlidingIndicator, ValueAccessorBase, cn, containerSurface, controlSize, controlSurface, disabledRecipe, errorRecipe, exitDurationMs, focusRecipe, glassSurface, inlineStartRatio, isRtl, mergeLabels, mfLabelsEn, nextId, overlayPositions, overlaySurface, parseCssDuration, pointerPositions, prefersReducedMotion, pressRecipe, provideMesgflowUi, scrollFromInlineStart, transitionRecipe };
|
|
758
|
-
export type { DeepPartial, MfAgendaLabels, MfAlertLabels, MfAuthCardLabels, MfAvatarGroupLabels, MfBoxInputLabels, MfBreadcrumbLabels, MfCarouselLabels, MfCharacterCountLabels, MfChartLabels, MfChipLabels, MfColorPickerLabels, MfComboboxLabels, MfCommandLabels, MfCommonLabels, MfControlSize, MfCopyLabels, MfCountdownLabels, MfDatePickerLabels, MfDialogLabels, MfDropzoneLabels, MfFileUploadLabels, MfInlineEditLabels, MfInviteMembersLabels, MfLabels, MfLightboxLabels, MfMentionLabels, MfNotificationCenterLabels, MfOtpInputLabels, MfPaginationLabels, MfPanelGroupLabels, MfPasswordInputLabels, MfPlacement, MfProgressLabels, MfRatingLabels, MfSearchInputLabels, MfSelectLabels, MfSidebarLabels, MfSize, MfSliderLabels, MfSortableLabels, MfSplitButtonLabels, MfStatTileLabels, MfStepperLabels, MfTableFilterLabels, MfTableFilterOperatorLabels, MfTableLabels, MfTablePaginationLabels, MfTabsLabels, MfThemeSwitcherLabels, MfTimePickerLabels, MfToastLabels, MfTone, MfTourLabels, MfTransferListLabels, MfTreeSelectLabels, ProvideMesgflowUiOptions, SlidingIndicatorAxis };
|
|
765
|
+
export { MF_AGENDA_LABELS, MF_ALERT_LABELS, MF_AUTH_CARD_LABELS, MF_AVATAR_GROUP_LABELS, MF_BOX_INPUT_LABELS, MF_BREADCRUMB_LABELS, MF_CAROUSEL_LABELS, MF_CHARACTER_COUNT_LABELS, MF_CHART_LABELS, MF_CHIP_LABELS, MF_COLOR_PICKER_LABELS, MF_COMBOBOX_LABELS, MF_COMMAND_LABELS, MF_COMMON_LABELS, MF_COPY_LABELS, MF_COUNTDOWN_LABELS, MF_DATE_LOCALE, MF_DATE_PICKER_LABELS, MF_DIALOG_LABELS, MF_DROPZONE_LABELS, MF_FILE_UPLOAD_LABELS, MF_INLINE_EDIT_LABELS, MF_INVITE_MEMBERS_LABELS, MF_LABELS, MF_LIGHTBOX_LABELS, MF_MENTION_LABELS, MF_NOTIFICATION_CENTER_LABELS, MF_OTP_INPUT_LABELS, MF_PAGINATION_LABELS, MF_PANEL_GROUP_LABELS, MF_PASSWORD_INPUT_LABELS, MF_PROGRESS_LABELS, MF_QR_CODE_LABELS, MF_RATING_LABELS, MF_SEARCH_INPUT_LABELS, MF_SELECT_LABELS, MF_SIDEBAR_LABELS, MF_SLIDER_LABELS, MF_SORTABLE_LABELS, MF_SPLIT_BUTTON_LABELS, MF_STAT_TILE_LABELS, MF_STEPPER_LABELS, MF_TABLE_LABELS, MF_TABS_LABELS, MF_THEME_SWITCHER_LABELS, MF_TIME_PICKER_LABELS, MF_TOAST_LABELS, MF_TOUR_LABELS, MF_TRANSFER_LIST_LABELS, MF_TREE_SELECT_LABELS, SlidingIndicator, ValueAccessorBase, cn, containerSurface, controlSize, controlSurface, disabledRecipe, errorRecipe, exitDurationMs, focusRecipe, glassSurface, inlineStartRatio, isRtl, mergeLabels, mfLabelsEn, nextId, overlayPositions, overlaySurface, parseCssDuration, pointerPositions, prefersReducedMotion, pressRecipe, provideMesgflowUi, scrollFromInlineStart, transitionRecipe };
|
|
766
|
+
export type { DeepPartial, MfAgendaLabels, MfAlertLabels, MfAuthCardLabels, MfAvatarGroupLabels, MfBoxInputLabels, MfBreadcrumbLabels, MfCarouselLabels, MfCharacterCountLabels, MfChartLabels, MfChipLabels, MfColorPickerLabels, MfComboboxLabels, MfCommandLabels, MfCommonLabels, MfControlSize, MfCopyLabels, MfCountdownLabels, MfDatePickerLabels, MfDialogLabels, MfDropzoneLabels, MfFileUploadLabels, MfInlineEditLabels, MfInviteMembersLabels, MfLabels, MfLightboxLabels, MfMentionLabels, MfNotificationCenterLabels, MfOtpInputLabels, MfPaginationLabels, MfPanelGroupLabels, MfPasswordInputLabels, MfPlacement, MfProgressLabels, MfQrCodeLabels, MfRatingLabels, MfSearchInputLabels, MfSelectLabels, MfSidebarLabels, MfSize, MfSliderLabels, MfSortableLabels, MfSplitButtonLabels, MfStatTileLabels, MfStepperLabels, MfTableFilterLabels, MfTableFilterOperatorLabels, MfTableLabels, MfTablePaginationLabels, MfTabsLabels, MfThemeSwitcherLabels, MfTimePickerLabels, MfToastLabels, MfTone, MfTourLabels, MfTransferListLabels, MfTreeSelectLabels, ProvideMesgflowUiOptions, SlidingIndicatorAxis };
|
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
import * as _angular_core from '@angular/core';
|
|
2
|
-
import { TemplateRef } from '@angular/core';
|
|
2
|
+
import { Signal, ComponentRef, TemplateRef } from '@angular/core';
|
|
3
3
|
import * as _mesgflow_ui_kit_core from '@mesgflow/ui-kit/core';
|
|
4
4
|
import * as i1 from '@angular/cdk/drag-drop';
|
|
5
5
|
import { DialogRef } from '@angular/cdk/dialog';
|
|
6
|
+
import { OverlayRef } from '@angular/cdk/overlay';
|
|
7
|
+
import { Observable } from 'rxjs';
|
|
6
8
|
import { ComponentType } from '@angular/cdk/portal';
|
|
7
9
|
import * as class_variance_authority_types from 'class-variance-authority/types';
|
|
8
10
|
import { VariantProps } from 'class-variance-authority';
|
|
@@ -160,9 +162,20 @@ declare class Dialog {
|
|
|
160
162
|
* kuralının uygulama noktası: dialog gövdesi + içerik aynı anda kaymaz.
|
|
161
163
|
*/
|
|
162
164
|
readonly fillBody: _angular_core.InputSignal<boolean>;
|
|
165
|
+
/**
|
|
166
|
+
* `true` (varsayılan): kapat (X) düğmesi `close` olayını yayınladıktan SONRA
|
|
167
|
+
* dialog'u kendisi de kapatır (`MfDialogRef.close()` — idempotent, tüketicinin
|
|
168
|
+
* `(close)` handler'ında sonuçla yaptığı kapanış önce davranır ve kazanır).
|
|
169
|
+
* `false`: yalnızca `close` yayınlanır — kapanışı tamamen tüketici yönetir.
|
|
170
|
+
*/
|
|
171
|
+
readonly autoClose: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
163
172
|
readonly close: _angular_core.OutputEmitterRef<void>;
|
|
164
173
|
protected readonly surface: DialogSurface;
|
|
165
174
|
protected readonly labels: _angular_core.Signal<_mesgflow_ui_kit_core.MfDialogLabels>;
|
|
175
|
+
/** Görünür başlığın id'si — CDK konteynerinin `aria-labelledby`'ı buna bağlanır. */
|
|
176
|
+
protected readonly titleId: string;
|
|
177
|
+
private readonly mfRef;
|
|
178
|
+
private readonly cdkRef;
|
|
166
179
|
private readonly elementRef;
|
|
167
180
|
private readonly cdkDrag;
|
|
168
181
|
private readonly scrollBody;
|
|
@@ -184,6 +197,8 @@ declare class Dialog {
|
|
|
184
197
|
protected readonly headerBorder: _angular_core.Signal<boolean>;
|
|
185
198
|
protected readonly footerBorder: _angular_core.Signal<boolean>;
|
|
186
199
|
constructor();
|
|
200
|
+
/** Kapat (X): önce `close` olayı (tüketici sonuçla kapatabilsin), sonra — `autoClose` ise — ref'in kendisi. */
|
|
201
|
+
protected onDismiss(): void;
|
|
187
202
|
protected updateScrollShadow(): void;
|
|
188
203
|
/**
|
|
189
204
|
* Ctrl/Cmd+Enter — tek yerde çözülür, her form bedava kazanır. Kaydet düğmesi
|
|
@@ -194,9 +209,72 @@ declare class Dialog {
|
|
|
194
209
|
*/
|
|
195
210
|
protected requestSubmit(): void;
|
|
196
211
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<Dialog, never>;
|
|
197
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<Dialog, "mf-dialog", ["mfDialog"], { "title": { "alias": "title"; "required": false; "isSignal": true; }; "subtitle": { "alias": "subtitle"; "required": false; "isSignal": true; }; "icon": { "alias": "icon"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "fillBody": { "alias": "fillBody"; "required": false; "isSignal": true; }; }, { "close": "close"; }, never, ["[dialog-header]", "*", "[dialog-footer]"], true, [{ directive: typeof i1.CdkDrag; inputs: {}; outputs: {}; }]>;
|
|
212
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<Dialog, "mf-dialog", ["mfDialog"], { "title": { "alias": "title"; "required": false; "isSignal": true; }; "subtitle": { "alias": "subtitle"; "required": false; "isSignal": true; }; "icon": { "alias": "icon"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "fillBody": { "alias": "fillBody"; "required": false; "isSignal": true; }; "autoClose": { "alias": "autoClose"; "required": false; "isSignal": true; }; }, { "close": "close"; }, never, ["[dialog-header]", "*", "[dialog-footer]"], true, [{ directive: typeof i1.CdkDrag; inputs: {}; outputs: {}; }]>;
|
|
198
213
|
}
|
|
199
214
|
|
|
215
|
+
/** `open` → (`close()` çağrıldı, çıkış animasyonu oynuyor) `closing` → (dispose edildi) `closed`. */
|
|
216
|
+
type DialogState = 'open' | 'closing' | 'closed';
|
|
217
|
+
/**
|
|
218
|
+
* `DialogService.open()`/`openDrawer()`'ın döndürdüğü, kite ait dialog referansı.
|
|
219
|
+
*
|
|
220
|
+
* CDK `DialogRef`'in günlük kullanılan yüzeyini (`close`, `closed`,
|
|
221
|
+
* `componentInstance`, `disableClose`, `backdropClick`, `keydownEvents` …)
|
|
222
|
+
* birebir DELEGE eder — yani eski `ref.closed.subscribe(...)` kodu aynen derlenir.
|
|
223
|
+
* Üstüne kitin kendi dünyasını ekler:
|
|
224
|
+
*
|
|
225
|
+
* - `afterClosed()` — `await` edilebilir sonuç (çıkış animasyonu BİTTİKTEN sonra çözülür).
|
|
226
|
+
* - `state` — `'open' | 'closing' | 'closed'` signal'i (şablonda/`computed`'ta okunur).
|
|
227
|
+
* - `surface` — boyut/maximize/kirli-form durumuna tipli erişim (`setSize`, `toggleMaximize`,
|
|
228
|
+
* `registerDirty`, `markClean` kısayolları).
|
|
229
|
+
* - `cdk` — ham CDK referansı (kaçış kapısı; ör. `updatePosition()`).
|
|
230
|
+
*
|
|
231
|
+
* `close()` İDEMPOTENT'tir: çıkış animasyonu sürerken ya da kirli-form onayı
|
|
232
|
+
* açıkken gelen ek çağrılar yok sayılır (bkz. `dialog.service.ts` `closePredicate`).
|
|
233
|
+
*
|
|
234
|
+
* İçerik component'i içinde `injectDialogRef<Sonuç>()` ile alınır.
|
|
235
|
+
*/
|
|
236
|
+
declare class MfDialogRef<R = unknown, C = unknown> {
|
|
237
|
+
readonly cdk: DialogRef<R, C>;
|
|
238
|
+
readonly surface: DialogSurface;
|
|
239
|
+
readonly closed: Observable<R | undefined>;
|
|
240
|
+
readonly backdropClick: Observable<MouseEvent>;
|
|
241
|
+
readonly keydownEvents: Observable<KeyboardEvent>;
|
|
242
|
+
readonly outsidePointerEvents: Observable<MouseEvent>;
|
|
243
|
+
readonly overlayRef: OverlayRef;
|
|
244
|
+
readonly id: string;
|
|
245
|
+
private readonly isClosed;
|
|
246
|
+
private readonly result;
|
|
247
|
+
/** Dialog'un yaşam döngüsü — `closing` çıkış animasyonu boyunca. */
|
|
248
|
+
readonly state: Signal<DialogState>;
|
|
249
|
+
constructor(cdk: DialogRef<R, C>, surface: DialogSurface);
|
|
250
|
+
/** Açılan component örneği (şablonla açıldıysa ve kapandıktan sonra `null`). */
|
|
251
|
+
get componentInstance(): C | null;
|
|
252
|
+
get componentRef(): ComponentRef<C> | null;
|
|
253
|
+
/** `true` iken ESC/backdrop kapatmaz; programatik `close()` yine çalışır. */
|
|
254
|
+
get disableClose(): boolean | undefined;
|
|
255
|
+
set disableClose(value: boolean | undefined);
|
|
256
|
+
/** Dialog'u (çıkış animasyonu + kirli-form koruması üzerinden) kapatır. İdempotent. */
|
|
257
|
+
close(result?: R): void;
|
|
258
|
+
/** Kapanış tamamlandığında (animasyon dahil) sonuçla çözülür; ESC/backdrop'ta `undefined`. */
|
|
259
|
+
afterClosed(): Promise<R | undefined>;
|
|
260
|
+
/** Açıkken genişlik basamağını değiştirir (`sm`…`xl`, `full`). */
|
|
261
|
+
setSize(size: DialogSize): void;
|
|
262
|
+
toggleMaximize(): void;
|
|
263
|
+
/** Kirli-form sorusunu kaydeder — ESC/backdrop/X kapanışında `true` dönerse onay sorulur. */
|
|
264
|
+
registerDirty(check: () => boolean): void;
|
|
265
|
+
/** Başarılı kayıttan hemen önce — sonraki `close()` kirli-form onayı sormaz. */
|
|
266
|
+
markClean(): void;
|
|
267
|
+
}
|
|
268
|
+
/**
|
|
269
|
+
* `DIALOG_DATA`'nın kite ait adı — AYNI token nesnesi, CDK'dan ayrıca import
|
|
270
|
+
* etmeye gerek kalmasın diye. `inject(MF_DIALOG_DATA)` ≡ `injectDialogData()`.
|
|
271
|
+
*/
|
|
272
|
+
declare const MF_DIALOG_DATA: _angular_core.InjectionToken<any>;
|
|
273
|
+
/** İçerik component'inde `DialogService.open(..., { data })` ile geçilen veriyi okur. */
|
|
274
|
+
declare function injectDialogData<D>(): D;
|
|
275
|
+
/** İçerik component'inde kendi dialog referansını alır — `ref.close(sonuç)`. */
|
|
276
|
+
declare function injectDialogRef<R = unknown, C = unknown>(): MfDialogRef<R, C>;
|
|
277
|
+
|
|
200
278
|
/**
|
|
201
279
|
* `<button mfDialogResizeHandle [ariaLabel]="...">` — `Dialog`'un (dialog.ts)
|
|
202
280
|
* sağ-alt köşesinde, `DialogSurface.customSize`'ı besleyen serbest boyutlandırma
|
|
@@ -231,9 +309,10 @@ declare class DialogResizeHandle {
|
|
|
231
309
|
* engelleme davranışının TAMAMI CDK'dan geliyor, burada TEKRAR YAZILMADI — bkz.
|
|
232
310
|
* projects/ui-kit/README.md "a11y checklist" bölümündeki "elle yazmak son çare" ilkesi).
|
|
233
311
|
*
|
|
234
|
-
*
|
|
235
|
-
*
|
|
236
|
-
*
|
|
312
|
+
* `open()` kite ait `MfDialogRef` döndürür (CDK `DialogRef` yüzeyini delege eder +
|
|
313
|
+
* `afterClosed()`/`state`/`surface`). İçerik component'i `injectDialogRef()`/
|
|
314
|
+
* `injectDialogData()` (bkz. dialog-ref.ts) kullanır — CDK'nın kendi `DialogRef`/
|
|
315
|
+
* `DIALOG_DATA` token'larını inject etmek de çalışmaya devam eder. Boyut/placement/maximize/drag/resize/sheet durumu
|
|
237
316
|
* `DialogSurface` (bkz. o dosya) üzerinden, `providers` ile o dialog'un injector'ına
|
|
238
317
|
* verilir — `Dialog` (dialog.ts) bunu DI'dan okuyarak render eder.
|
|
239
318
|
*
|
|
@@ -250,7 +329,9 @@ declare class DialogResizeHandle {
|
|
|
250
329
|
* kendi reaktif `animate-dialog-out`/`animate-sheet-out`/`animate-drawer-out` class'ıyla
|
|
251
330
|
* görsel olarak kapanır), ikinci çağrıda (zaten `closing()===true`) gerçek `dispose()`'a
|
|
252
331
|
* izin veriyoruz. ESC/backdrop/programatik `dialogRef.close(...)` HEPSİ bu predicate'ten
|
|
253
|
-
* geçtiği için davranış tekdüze.
|
|
332
|
+
* geçtiği için davranış tekdüze. Animasyon sürerken gelen EK `close()` çağrıları
|
|
333
|
+
* yok sayılır (`disposeArmed` yalnızca zamanlayıcı tarafından kurulur) — X düğmesi +
|
|
334
|
+
* tüketicinin `(close)` handler'ı aynı anda kapatsa bile animasyon kesilmez. `prefers-reduced-motion` gecikmeyi tamamen atlıyor —
|
|
254
335
|
* AMA kirli-form kontrolünden SONRA: koruma reduced-motion kullanıcılarında da çalışmalı.
|
|
255
336
|
*
|
|
256
337
|
* **Kirli form koruması**: `surface.isDirty()` `true` dönerse kapanış iptal edilip
|
|
@@ -271,7 +352,7 @@ declare class DialogService {
|
|
|
271
352
|
* Bir component'i ya da bir `TemplateRef'i açar (şablon yolu `<mf-drawer>` gibi
|
|
272
353
|
* bildirimsel sarmalayıcılar içindir — şablonun injector'ı da `DialogSurface'i görür).
|
|
273
354
|
*/
|
|
274
|
-
open<R = void, D = undefined, C = unknown>(component: ComponentType<C> | TemplateRef<C>, options?: DialogOptions<D>):
|
|
355
|
+
open<R = void, D = undefined, C = unknown>(component: ComponentType<C> | TemplateRef<C>, options?: DialogOptions<D>): MfDialogRef<R, C>;
|
|
275
356
|
/**
|
|
276
357
|
* Kayıt oluştur/düzenle formlarının TEK açılış noktası — sağdan drawer.
|
|
277
358
|
* `maximizable` bilerek zorla kapatılıyor: drawer zaten tam yükseklik, büyütme
|
|
@@ -283,7 +364,7 @@ declare class DialogService {
|
|
|
283
364
|
*/
|
|
284
365
|
openDrawer<R = void, D = undefined, C = unknown>(component: ComponentType<C>, options?: Omit<DialogOptions<D>, 'placement'> & {
|
|
285
366
|
placement?: Exclude<DialogPlacement, 'center'>;
|
|
286
|
-
}):
|
|
367
|
+
}): MfDialogRef<R, C>;
|
|
287
368
|
/** `Promise<boolean>` döner — `if (await dialog.confirm(...))` çağıran taraf için `.subscribe()` zincirinden daha sade. */
|
|
288
369
|
confirm(data: ConfirmDialogData): Promise<boolean>;
|
|
289
370
|
/**
|
|
@@ -298,8 +379,12 @@ declare class DialogService {
|
|
|
298
379
|
* kaldırıldı).
|
|
299
380
|
*/
|
|
300
381
|
confirmDiscard(): Promise<boolean>;
|
|
301
|
-
/**
|
|
302
|
-
|
|
382
|
+
/**
|
|
383
|
+
* Tüketici bir ref'i kapatmadan ÖNCE kirli mi diye sormak istiyorsa — kendi `closePredicate`'inin
|
|
384
|
+
* async akışıyla yarışmamak için `DialogSurface`'e doğrudan erişim. `MfDialogRef` için
|
|
385
|
+
* `ref.surface` tercih edilir; ham CDK ref'i (ör. içerikte inject edilen) de kabul edilir.
|
|
386
|
+
*/
|
|
387
|
+
getSurface(ref: DialogRef<any, any> | MfDialogRef<any, any>): DialogSurface | undefined;
|
|
303
388
|
/** `confirm()`'in silme kısayolu — `tone:'danger'` + varsayılan "Sil" etiketi. */
|
|
304
389
|
confirmDelete(data: Omit<ConfirmDialogData, 'tone'>): Promise<boolean>;
|
|
305
390
|
/** Tek butonlu bilgilendirme modu — sonuç önemsiz olduğu için `Promise<void>` döner. */
|
|
@@ -361,5 +446,5 @@ declare const dialogVariants: (props?: ({
|
|
|
361
446
|
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
362
447
|
type DialogVariants = VariantProps<typeof dialogVariants>;
|
|
363
448
|
|
|
364
|
-
export { ConfirmDialog, Dialog, DialogResizeHandle, DialogService, DialogSurface, dialogVariants };
|
|
365
|
-
export type { ConfirmDialogData, ConfirmTone, DialogCustomSize, DialogOptions, DialogPlacement, DialogSize, DialogVariants, DrawerSide };
|
|
449
|
+
export { ConfirmDialog, Dialog, DialogResizeHandle, DialogService, DialogSurface, MF_DIALOG_DATA, MfDialogRef, dialogVariants, injectDialogData, injectDialogRef };
|
|
450
|
+
export type { ConfirmDialogData, ConfirmTone, DialogCustomSize, DialogOptions, DialogPlacement, DialogSize, DialogState, DialogVariants, DrawerSide };
|
|
@@ -2,6 +2,16 @@ import * as _angular_core from '@angular/core';
|
|
|
2
2
|
import { ControlValueAccessor } from '@angular/forms';
|
|
3
3
|
import { ValueAccessorBase } from '@mesgflow/ui-kit/core';
|
|
4
4
|
|
|
5
|
+
/**
|
|
6
|
+
* Parola alanının `autocomplete` ipucu — parola yöneticileri/tarayıcı bunu okur:
|
|
7
|
+
* - `current-password` (varsayılan): giriş formu — kayıtlı parolayı doldurur.
|
|
8
|
+
* - `new-password`: kayıt/parola değiştirme — güçlü parola ÖNERİR, eskisini doldurmaz
|
|
9
|
+
* (hem "yeni" hem "tekrar" alanında kullanılır).
|
|
10
|
+
* - `off`: modern tarayıcılar parola alanlarında çoğunlukla YOK SAYAR — sadece
|
|
11
|
+
* gerçekten tek kullanımlık alanlarda (ör. API anahtarı onayı) kullanın.
|
|
12
|
+
* - Diğer geçerli token dizileri de kabul edilir (ör. `section-billing current-password`).
|
|
13
|
+
*/
|
|
14
|
+
type PasswordAutocomplete = 'current-password' | 'new-password' | 'off' | (string & {});
|
|
5
15
|
/**
|
|
6
16
|
* `<mf-password-input [(value)]="password" />` — `InputGroup` üstüne kompoze
|
|
7
17
|
* edilmiş, sağda göster/gizle düğmesi taşıyan parola alanı (emsal:
|
|
@@ -9,27 +19,45 @@ import { ValueAccessorBase } from '@mesgflow/ui-kit/core';
|
|
|
9
19
|
* kullanma deseni). `type="password"`/`"text"` arasında geçiş SADECE
|
|
10
20
|
* görünürlük içindir — değer her zaman `value` model'inde düz metin olarak
|
|
11
21
|
* tutulur.
|
|
22
|
+
*
|
|
23
|
+
* Parola yöneticisi uyumu: `autocomplete` (varsayılan `current-password`) ve
|
|
24
|
+
* `name` iç `<input>`'a iletilir; `autocapitalize="off"`/`spellcheck="false"`
|
|
25
|
+
* sabit — parola görünür moda (`type="text"`) geçtiğinde de mobil klavye büyük
|
|
26
|
+
* harfe çevirmez, yazım denetimi parolayı bir sözlük servisine göndermez.
|
|
27
|
+
* Signal Forms `[formField]` bağlandığında `name`/`required`/`readonly`/`disabled`
|
|
28
|
+
* alan durumundan OTOMATİK doldurulur.
|
|
12
29
|
*/
|
|
13
30
|
declare class PasswordInput extends ValueAccessorBase<string> implements ControlValueAccessor {
|
|
14
31
|
readonly value: _angular_core.ModelSignal<string>;
|
|
15
32
|
readonly placeholder: _angular_core.InputSignal<string>;
|
|
16
|
-
readonly disabled: _angular_core.
|
|
17
|
-
readonly hasError: _angular_core.
|
|
33
|
+
readonly disabled: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
34
|
+
readonly hasError: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
18
35
|
/** İç `<input>`'un id'si — harici bir `<label for>` / `mf-field for` ile ilişkilendirmek için. */
|
|
19
36
|
readonly inputId: _angular_core.InputSignal<string | undefined>;
|
|
20
37
|
readonly ariaLabel: _angular_core.InputSignal<string>;
|
|
21
|
-
readonly fullWidth: _angular_core.
|
|
38
|
+
readonly fullWidth: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
22
39
|
readonly showLabel: _angular_core.InputSignal<string | undefined>;
|
|
23
40
|
readonly hideLabel: _angular_core.InputSignal<string | undefined>;
|
|
41
|
+
/** Parola yöneticisi ipucu — bkz. `PasswordAutocomplete`. */
|
|
42
|
+
readonly autocomplete: _angular_core.InputSignal<PasswordAutocomplete>;
|
|
43
|
+
/** İç `<input>`'un `name`'i — form gönderimi ve parola yöneticilerinin alanı tanıması için. */
|
|
44
|
+
readonly name: _angular_core.InputSignal<string | undefined>;
|
|
45
|
+
readonly required: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
46
|
+
readonly readonly: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
24
47
|
private readonly passwordLabels;
|
|
25
48
|
protected readonly effectiveShowLabel: _angular_core.Signal<string>;
|
|
26
49
|
protected readonly effectiveHideLabel: _angular_core.Signal<string>;
|
|
50
|
+
/** Reactive Forms `control.disable()` — `disabled` girdisiyle VEYA'lanır. */
|
|
51
|
+
private readonly formDisabled;
|
|
52
|
+
protected readonly isDisabled: _angular_core.Signal<boolean>;
|
|
27
53
|
protected readonly visible: _angular_core.WritableSignal<boolean>;
|
|
28
|
-
writeValue(value: string): void;
|
|
54
|
+
writeValue(value: string | null): void;
|
|
55
|
+
setDisabledState(disabled: boolean): void;
|
|
29
56
|
protected toggle(): void;
|
|
30
57
|
protected onInput(raw: string): void;
|
|
31
58
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<PasswordInput, never>;
|
|
32
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<PasswordInput, "mf-password-input", ["mfPasswordInput"], { "value": { "alias": "value"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "hasError": { "alias": "hasError"; "required": false; "isSignal": true; }; "inputId": { "alias": "inputId"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; "fullWidth": { "alias": "fullWidth"; "required": false; "isSignal": true; }; "showLabel": { "alias": "showLabel"; "required": false; "isSignal": true; }; "hideLabel": { "alias": "hideLabel"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; }, never, never, true, never>;
|
|
59
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<PasswordInput, "mf-password-input", ["mfPasswordInput"], { "value": { "alias": "value"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "hasError": { "alias": "hasError"; "required": false; "isSignal": true; }; "inputId": { "alias": "inputId"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; "fullWidth": { "alias": "fullWidth"; "required": false; "isSignal": true; }; "showLabel": { "alias": "showLabel"; "required": false; "isSignal": true; }; "hideLabel": { "alias": "hideLabel"; "required": false; "isSignal": true; }; "autocomplete": { "alias": "autocomplete"; "required": false; "isSignal": true; }; "name": { "alias": "name"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; "readonly": { "alias": "readonly"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; }, never, never, true, never>;
|
|
33
60
|
}
|
|
34
61
|
|
|
35
62
|
export { PasswordInput };
|
|
63
|
+
export type { PasswordAutocomplete };
|