@flusys/ng-ui 6.3.0 → 6.4.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +13 -1
- package/fesm2022/flusys-ng-ui.mjs +290 -192
- package/fesm2022/flusys-ng-ui.mjs.map +1 -1
- package/package.json +1 -1
- package/themes/tailwind.scss +124 -1
- package/types/flusys-ng-ui.d.ts +18 -8
package/package.json
CHANGED
package/themes/tailwind.scss
CHANGED
|
@@ -1,13 +1,28 @@
|
|
|
1
1
|
@custom-variant dark (&:where(.app-dark, .app-dark *));
|
|
2
2
|
|
|
3
3
|
@theme inline {
|
|
4
|
-
/* ─── Border radius (preset-driven)
|
|
4
|
+
/* ─── Border radius (preset-driven) ─────────────────────────────────────────
|
|
5
|
+
Every rounded-* step resolves from the active preset. The mapping is offset
|
|
6
|
+
by one deliberately — Tailwind's `rounded-lg`, the app's most-used control
|
|
7
|
+
radius, lands on the preset's *medium* semantic step, not its large one —
|
|
8
|
+
and the far ends are covered too, so no rounded-* utility is left holding a
|
|
9
|
+
fixed Tailwind default that would look identical under every preset. */
|
|
5
10
|
--radius-border: var(--content-border-radius);
|
|
11
|
+
--radius-xs: var(--f-radius-xs);
|
|
6
12
|
--radius-sm: var(--f-border-radius-sm);
|
|
7
13
|
--radius-md: var(--f-border-radius-sm);
|
|
8
14
|
--radius-lg: var(--f-border-radius-md);
|
|
9
15
|
--radius-xl: var(--f-border-radius-lg);
|
|
10
16
|
--radius-2xl: var(--f-border-radius-xl);
|
|
17
|
+
--radius-3xl: var(--f-radius-3xl);
|
|
18
|
+
--radius-4xl: var(--f-radius-4xl);
|
|
19
|
+
|
|
20
|
+
/* ─── Line weight (preset-driven) ───────────────────────────────────────────
|
|
21
|
+
Tailwind resolves a bare `border` / `divide-*` against this key, so routing
|
|
22
|
+
it through the preset is what lets a heavy-linework preset thicken every
|
|
23
|
+
border in the app without touching a single component. Explicit widths —
|
|
24
|
+
`border-2` and friends — are unaffected. */
|
|
25
|
+
--default-border-width: var(--f-border-width, 1px);
|
|
11
26
|
|
|
12
27
|
/* ─── Shadows (preset-driven) ───────────────────────────── */
|
|
13
28
|
--shadow-sm: var(--f-shadow-sm);
|
|
@@ -83,3 +98,111 @@
|
|
|
83
98
|
outline-offset: var(--f-focus-ring-offset);
|
|
84
99
|
outline-color: var(--f-focus-ring-color);
|
|
85
100
|
}
|
|
101
|
+
|
|
102
|
+
/* ── Control density and shape (preset-driven) ──────────────────────────────
|
|
103
|
+
Form fields and buttons used to hard-code their padding and radius as fixed
|
|
104
|
+
Tailwind classes, which meant a preset could recolour the UI but never change
|
|
105
|
+
how dense or how sharp it felt — the difference that actually reads as a
|
|
106
|
+
different design language. These utilities put both under the preset's
|
|
107
|
+
control; the small and large steps are derived from the base so a preset
|
|
108
|
+
only has to state one value per axis. */
|
|
109
|
+
|
|
110
|
+
@utility f-field {
|
|
111
|
+
padding-inline: var(--f-field-padding-x);
|
|
112
|
+
padding-block: var(--f-field-padding-y);
|
|
113
|
+
border-radius: var(--f-field-border-radius);
|
|
114
|
+
font-weight: var(--f-field-font-weight);
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
@utility f-field-sm {
|
|
118
|
+
padding-inline: calc(var(--f-field-padding-x) - 0.125rem);
|
|
119
|
+
padding-block: calc(var(--f-field-padding-y) - 0.125rem);
|
|
120
|
+
border-radius: var(--f-field-border-radius);
|
|
121
|
+
font-weight: var(--f-field-font-weight);
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
@utility f-field-lg {
|
|
125
|
+
padding-inline: calc(var(--f-field-padding-x) + 0.25rem);
|
|
126
|
+
padding-block: calc(var(--f-field-padding-y) + 0.25rem);
|
|
127
|
+
border-radius: var(--f-field-border-radius);
|
|
128
|
+
font-weight: var(--f-field-font-weight);
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
/* Multi-value triggers (multiselect, treeselect, cascadeselect) whose chips
|
|
132
|
+
already supply most of the row height, so they take one step less block padding
|
|
133
|
+
than a plain field while keeping the same inline padding and shape. */
|
|
134
|
+
@utility f-field-compact {
|
|
135
|
+
padding-inline: var(--f-field-padding-x);
|
|
136
|
+
padding-block: calc(var(--f-field-padding-y) - 0.125rem);
|
|
137
|
+
border-radius: var(--f-field-border-radius);
|
|
138
|
+
font-weight: var(--f-field-font-weight);
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
/* Shape only — for the parts of a composite field (a select trigger's panel, a
|
|
142
|
+
segmented control's ends) that inherit the field radius but set their own box. */
|
|
143
|
+
@utility f-field-shape {
|
|
144
|
+
border-radius: var(--f-field-border-radius);
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
@utility f-btn {
|
|
148
|
+
padding-inline: var(--f-button-padding-x);
|
|
149
|
+
padding-block: var(--f-button-padding-y);
|
|
150
|
+
border-radius: var(--f-button-border-radius);
|
|
151
|
+
font-weight: var(--f-button-font-weight);
|
|
152
|
+
letter-spacing: var(--f-button-letter-spacing);
|
|
153
|
+
}
|
|
154
|
+
|
|
155
|
+
@utility f-btn-sm {
|
|
156
|
+
padding-inline: calc(var(--f-button-padding-x) - 0.25rem);
|
|
157
|
+
padding-block: calc(var(--f-button-padding-y) - 0.125rem);
|
|
158
|
+
border-radius: var(--f-button-border-radius);
|
|
159
|
+
font-weight: var(--f-button-font-weight);
|
|
160
|
+
letter-spacing: var(--f-button-letter-spacing);
|
|
161
|
+
}
|
|
162
|
+
|
|
163
|
+
@utility f-btn-lg {
|
|
164
|
+
padding-inline: calc(var(--f-button-padding-x) + 0.25rem);
|
|
165
|
+
padding-block: calc(var(--f-button-padding-y) + 0.25rem);
|
|
166
|
+
border-radius: var(--f-button-border-radius);
|
|
167
|
+
font-weight: var(--f-button-font-weight);
|
|
168
|
+
letter-spacing: var(--f-button-letter-spacing);
|
|
169
|
+
}
|
|
170
|
+
|
|
171
|
+
/* Icon-only buttons stay square: one padding on every side. */
|
|
172
|
+
@utility f-btn-icon {
|
|
173
|
+
padding: var(--f-button-padding-y);
|
|
174
|
+
border-radius: var(--f-button-border-radius);
|
|
175
|
+
font-weight: var(--f-button-font-weight);
|
|
176
|
+
letter-spacing: var(--f-button-letter-spacing);
|
|
177
|
+
}
|
|
178
|
+
|
|
179
|
+
@utility f-btn-icon-sm {
|
|
180
|
+
padding: calc(var(--f-button-padding-y) - 0.125rem);
|
|
181
|
+
border-radius: var(--f-button-border-radius);
|
|
182
|
+
font-weight: var(--f-button-font-weight);
|
|
183
|
+
letter-spacing: var(--f-button-letter-spacing);
|
|
184
|
+
}
|
|
185
|
+
|
|
186
|
+
@utility f-btn-icon-lg {
|
|
187
|
+
padding: calc(var(--f-button-padding-y) + 0.25rem);
|
|
188
|
+
border-radius: var(--f-button-border-radius);
|
|
189
|
+
font-weight: var(--f-button-font-weight);
|
|
190
|
+
letter-spacing: var(--f-button-letter-spacing);
|
|
191
|
+
}
|
|
192
|
+
|
|
193
|
+
/* A pill button keeps its shape in every preset — only the padding follows. */
|
|
194
|
+
@utility f-btn-round {
|
|
195
|
+
border-radius: 9999px;
|
|
196
|
+
}
|
|
197
|
+
|
|
198
|
+
/* Floating panels — dropdown lists, popovers, dialogs. */
|
|
199
|
+
@utility f-overlay {
|
|
200
|
+
border-radius: var(--f-overlay-border-radius);
|
|
201
|
+
box-shadow: var(--f-overlay-shadow);
|
|
202
|
+
}
|
|
203
|
+
|
|
204
|
+
/* An inline panel that shares the overlay's shape but sits in the page, so it
|
|
205
|
+
takes no elevation of its own — an inline datepicker, for one. */
|
|
206
|
+
@utility f-overlay-shape {
|
|
207
|
+
border-radius: var(--f-overlay-border-radius);
|
|
208
|
+
}
|
package/types/flusys-ng-ui.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as _angular_core from '@angular/core';
|
|
2
|
-
import { TemplateRef, OnDestroy,
|
|
2
|
+
import { TemplateRef, OnDestroy, AfterViewInit, ElementRef, OnInit, InjectionToken, Type, Injector, EnvironmentProviders } from '@angular/core';
|
|
3
3
|
import * as i1 from '@angular/forms';
|
|
4
4
|
import { ControlValueAccessor } from '@angular/forms';
|
|
5
5
|
import * as rxjs from 'rxjs';
|
|
@@ -828,15 +828,12 @@ declare class InputNumberComponent implements ControlValueAccessor {
|
|
|
828
828
|
|
|
829
829
|
type InputVariant = 'outlined' | 'filled';
|
|
830
830
|
type InputSize = 'small' | 'large' | null;
|
|
831
|
-
declare class InputTextDirective
|
|
831
|
+
declare class InputTextDirective {
|
|
832
832
|
readonly invalid: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
833
833
|
readonly touched: _angular_core.InputSignal<boolean>;
|
|
834
834
|
readonly variant: _angular_core.InputSignal<InputVariant>;
|
|
835
835
|
readonly size: _angular_core.InputSignal<InputSize>;
|
|
836
836
|
readonly fluid: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
837
|
-
private readonly _el;
|
|
838
|
-
private readonly _iconLeft;
|
|
839
|
-
ngOnInit(): void;
|
|
840
837
|
readonly classes: _angular_core.Signal<string>;
|
|
841
838
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<InputTextDirective, never>;
|
|
842
839
|
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<InputTextDirective, "[fInputText]", never, { "invalid": { "alias": "invalid"; "required": false; "isSignal": true; }; "touched": { "alias": "touched"; "required": false; "isSignal": true; }; "variant": { "alias": "variant"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "fluid": { "alias": "fluid"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
@@ -4375,10 +4372,13 @@ interface SelectButtonTokens {
|
|
|
4375
4372
|
}
|
|
4376
4373
|
interface ThemePreset {
|
|
4377
4374
|
name: PresetName;
|
|
4378
|
-
|
|
4375
|
+
radiusXs: string;
|
|
4379
4376
|
borderRadiusSm: string;
|
|
4377
|
+
borderRadius: string;
|
|
4380
4378
|
borderRadiusLg: string;
|
|
4381
4379
|
borderRadiusXl: string;
|
|
4380
|
+
radius3xl: string;
|
|
4381
|
+
radius4xl: string;
|
|
4382
4382
|
borderWidth: string;
|
|
4383
4383
|
shadowSm: string;
|
|
4384
4384
|
shadow: string;
|
|
@@ -4389,9 +4389,19 @@ interface ThemePreset {
|
|
|
4389
4389
|
focusRingWidth: string;
|
|
4390
4390
|
focusRingStyle: string;
|
|
4391
4391
|
focusRingOffset: string;
|
|
4392
|
-
buttonFontWeight: string;
|
|
4393
4392
|
highlightVariant: 'tint' | 'solid';
|
|
4394
4393
|
strongBorders: boolean;
|
|
4394
|
+
fieldPaddingX: string;
|
|
4395
|
+
fieldPaddingY: string;
|
|
4396
|
+
fieldBorderRadius: string;
|
|
4397
|
+
fieldFontWeight: string;
|
|
4398
|
+
buttonPaddingX: string;
|
|
4399
|
+
buttonPaddingY: string;
|
|
4400
|
+
buttonBorderRadius: string;
|
|
4401
|
+
buttonFontWeight: string;
|
|
4402
|
+
buttonLetterSpacing: string;
|
|
4403
|
+
overlayBorderRadius: string;
|
|
4404
|
+
overlayShadow: string;
|
|
4395
4405
|
selectButton: SelectButtonTokens;
|
|
4396
4406
|
cardBorderRadius: string;
|
|
4397
4407
|
cardPadding: string;
|
|
@@ -4408,8 +4418,8 @@ interface ThemePreset {
|
|
|
4408
4418
|
signaturePrimary: string;
|
|
4409
4419
|
}
|
|
4410
4420
|
declare const AURA_PRESET: ThemePreset;
|
|
4411
|
-
declare const NORA_PRESET: ThemePreset;
|
|
4412
4421
|
declare const LARA_PRESET: ThemePreset;
|
|
4422
|
+
declare const NORA_PRESET: ThemePreset;
|
|
4413
4423
|
declare const PRESETS: Record<PresetName, ThemePreset>;
|
|
4414
4424
|
declare const PRESET_NAMES: PresetName[];
|
|
4415
4425
|
|