commons-shared-web-ui 0.0.11 → 0.0.13
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/index.d.ts
CHANGED
|
@@ -20,6 +20,7 @@ import * as i15 from '@angular/material/button';
|
|
|
20
20
|
import * as i16 from '@angular/material/menu';
|
|
21
21
|
import * as i17 from '@angular/material/progress-bar';
|
|
22
22
|
import * as i18 from '@angular/material/tooltip';
|
|
23
|
+
import { TooltipPosition } from '@angular/material/tooltip';
|
|
23
24
|
import * as i19 from '@angular/material/slider';
|
|
24
25
|
import * as i20 from '@angular/material/list';
|
|
25
26
|
import * as i21 from '@angular/material/chips';
|
|
@@ -33,6 +34,7 @@ import * as i28 from '@angular/material/expansion';
|
|
|
33
34
|
import * as i29 from '@angular/cdk/accordion';
|
|
34
35
|
import * as i3$1 from '@angular/forms';
|
|
35
36
|
import { ControlValueAccessor, FormGroup, FormBuilder, AbstractControl, FormControl, FormArray, ValidatorFn, ValidationErrors } from '@angular/forms';
|
|
37
|
+
import * as i3$2 from '@angular/router';
|
|
36
38
|
import { Router, ActivatedRoute } from '@angular/router';
|
|
37
39
|
import * as i11$1 from '@angular/cdk/scrolling';
|
|
38
40
|
import { CdkVirtualScrollViewport } from '@angular/cdk/scrolling';
|
|
@@ -1521,6 +1523,27 @@ interface SectionConfig {
|
|
|
1521
1523
|
allowMulti?: boolean;
|
|
1522
1524
|
name?: string;
|
|
1523
1525
|
label?: string;
|
|
1526
|
+
/** Configuration for the card-based multi-save UI (FAQ style) */
|
|
1527
|
+
multiSaveConfig?: MultiSaveConfig;
|
|
1528
|
+
}
|
|
1529
|
+
interface MultiSaveConfig {
|
|
1530
|
+
/** If TRUE, enable the Save/Cancel card-based flow for this repeater */
|
|
1531
|
+
active?: boolean;
|
|
1532
|
+
/**
|
|
1533
|
+
* The name of the field to show as the main 'heading' in the collapsed card.
|
|
1534
|
+
* Typically matches the question or name.
|
|
1535
|
+
*/
|
|
1536
|
+
summaryField?: string;
|
|
1537
|
+
/**
|
|
1538
|
+
* Optional name of the field to show as the sub-text in the collapsed card.
|
|
1539
|
+
* Typically matches the answer or description.
|
|
1540
|
+
*/
|
|
1541
|
+
descriptionField?: string;
|
|
1542
|
+
/**
|
|
1543
|
+
* Custom label key for the 'Add' button. If omitted, defaults to
|
|
1544
|
+
* '+ Add a [label]'.
|
|
1545
|
+
*/
|
|
1546
|
+
addLabel?: string;
|
|
1524
1547
|
}
|
|
1525
1548
|
interface StepperConfig {
|
|
1526
1549
|
children: FieldConfig[];
|
|
@@ -1666,6 +1689,17 @@ interface AttachmentConfig {
|
|
|
1666
1689
|
acceptLabel?: string;
|
|
1667
1690
|
/** Legacy: explicit list of allowed extensions (e.g. ['.pdf', '.jpg']) */
|
|
1668
1691
|
allowedExtensions?: string[];
|
|
1692
|
+
/**
|
|
1693
|
+
* API endpoint to upload the file to. When provided, the file is POSTed as
|
|
1694
|
+
* multipart/form-data and the returned URL is stored as dataUrl instead of
|
|
1695
|
+
* the base64 data URL produced by FileReader.
|
|
1696
|
+
*/
|
|
1697
|
+
uploadUrl?: string;
|
|
1698
|
+
/**
|
|
1699
|
+
* Entity type sent along with the upload request (e.g. 'ENTITY_TYPE.SESSION').
|
|
1700
|
+
* Only relevant when uploadUrl is set.
|
|
1701
|
+
*/
|
|
1702
|
+
entityType?: string;
|
|
1669
1703
|
}
|
|
1670
1704
|
interface LocationConfig {
|
|
1671
1705
|
enableCurrentLocation?: boolean;
|
|
@@ -1874,7 +1908,15 @@ declare class FormFieldComponent implements OnInit, OnDestroy {
|
|
|
1874
1908
|
showPassword: boolean;
|
|
1875
1909
|
isDragOver: boolean;
|
|
1876
1910
|
fileUploadError: string;
|
|
1911
|
+
multiSaveError: string;
|
|
1877
1912
|
private destroy$;
|
|
1913
|
+
/** FormControl used ONLY for the autocomplete text-input display value */
|
|
1914
|
+
autocompleteInputCtrl: FormControl<string>;
|
|
1915
|
+
/** Filtered option list shown in the mat-autocomplete panel */
|
|
1916
|
+
filteredOptions: {
|
|
1917
|
+
label: string;
|
|
1918
|
+
code: any;
|
|
1919
|
+
}[];
|
|
1878
1920
|
/** For GROUP fields with allowMulti = true */
|
|
1879
1921
|
groupFormArray: FormArray;
|
|
1880
1922
|
/** For GROUP fields with allowMulti = false — single nested FormGroup */
|
|
@@ -1884,11 +1926,17 @@ declare class FormFieldComponent implements OnInit, OnDestroy {
|
|
|
1884
1926
|
* Using a separate array (not FormArray.controls) + trackBy(id) ensures
|
|
1885
1927
|
* Angular creates FRESH child components for every new row, preventing
|
|
1886
1928
|
* cached values from bleeding into new instances.
|
|
1929
|
+
*
|
|
1930
|
+
* Enhanced with isEditing and isSaved flags for the 'multiSave' card UI.
|
|
1887
1931
|
*/
|
|
1888
|
-
instanceList:
|
|
1932
|
+
instanceList: {
|
|
1889
1933
|
id: number;
|
|
1890
1934
|
fg: FormGroup;
|
|
1891
|
-
|
|
1935
|
+
initialValue?: any;
|
|
1936
|
+
isEditing?: boolean;
|
|
1937
|
+
isSaved?: boolean;
|
|
1938
|
+
isExpanded?: boolean;
|
|
1939
|
+
}[];
|
|
1892
1940
|
private _nextInstanceId;
|
|
1893
1941
|
/**
|
|
1894
1942
|
* Key used to register the GROUP control on the parent formGroup.
|
|
@@ -1897,6 +1945,7 @@ declare class FormFieldComponent implements OnInit, OnDestroy {
|
|
|
1897
1945
|
get groupKey(): string;
|
|
1898
1946
|
constructor(fb: FormBuilder, expressionService: ExpressionService, http: HttpClient);
|
|
1899
1947
|
ngOnInit(): void;
|
|
1948
|
+
get addMultiLabel(): string;
|
|
1900
1949
|
private initGroupField;
|
|
1901
1950
|
/**
|
|
1902
1951
|
* Sets up cross-field validation based on the `onValidate` formula.
|
|
@@ -1905,7 +1954,11 @@ declare class FormFieldComponent implements OnInit, OnDestroy {
|
|
|
1905
1954
|
*/
|
|
1906
1955
|
private setupFormulaValidation;
|
|
1907
1956
|
addGroupInstance(): void;
|
|
1908
|
-
|
|
1957
|
+
saveGroupInstance(index: number): void;
|
|
1958
|
+
cancelGroupInstance(index: number): void;
|
|
1959
|
+
editGroupInstance(index: number): void;
|
|
1960
|
+
toggleExpandGroupInstance(index: number): void;
|
|
1961
|
+
removeGroupInstance(index: number, force?: boolean): void;
|
|
1909
1962
|
trackByInstanceId(_: number, item: {
|
|
1910
1963
|
id: number;
|
|
1911
1964
|
fg: FormGroup;
|
|
@@ -1942,7 +1995,9 @@ declare class FormFieldComponent implements OnInit, OnDestroy {
|
|
|
1942
1995
|
get isTextField(): boolean;
|
|
1943
1996
|
get isNumberField(): boolean;
|
|
1944
1997
|
get isDateField(): boolean;
|
|
1998
|
+
get isTimeField(): boolean;
|
|
1945
1999
|
get isDropdown(): boolean;
|
|
2000
|
+
get isAutocomplete(): boolean;
|
|
1946
2001
|
get isFileUpload(): boolean;
|
|
1947
2002
|
get isRadio(): boolean;
|
|
1948
2003
|
get isCheckbox(): boolean;
|
|
@@ -1953,6 +2008,22 @@ declare class FormFieldComponent implements OnInit, OnDestroy {
|
|
|
1953
2008
|
get isGenerated(): boolean;
|
|
1954
2009
|
get isRow(): boolean;
|
|
1955
2010
|
get isGroup(): boolean;
|
|
2011
|
+
/**
|
|
2012
|
+
* Initialise the separate display-control that drives the mat-autocomplete
|
|
2013
|
+
* text input. The real form control always stores the *code* value.
|
|
2014
|
+
*/
|
|
2015
|
+
private initAutocomplete;
|
|
2016
|
+
/** Filter options by the user's search text (matches label or code). */
|
|
2017
|
+
private _filterOptions;
|
|
2018
|
+
/** Put the human-readable label into the display control based on the stored code. */
|
|
2019
|
+
private _syncAutocompleteDisplayValue;
|
|
2020
|
+
/** Called when user picks an option from the mat-autocomplete panel. */
|
|
2021
|
+
onAutocompleteSelected(option: {
|
|
2022
|
+
label: string;
|
|
2023
|
+
code: any;
|
|
2024
|
+
}): void;
|
|
2025
|
+
/** Called when the input loses focus — clear display & value if text was manually deleted. */
|
|
2026
|
+
onAutocompleteClear(): void;
|
|
1956
2027
|
/**
|
|
1957
2028
|
* Returns the effective grid column span for a child inside a ROW.
|
|
1958
2029
|
* If the child declares an explicit colSpan, use it.
|
|
@@ -1983,9 +2054,78 @@ declare class SmartFormModule {
|
|
|
1983
2054
|
static ɵinj: i0.ɵɵInjectorDeclaration<SmartFormModule>;
|
|
1984
2055
|
}
|
|
1985
2056
|
|
|
2057
|
+
interface SideNavItem {
|
|
2058
|
+
id: string;
|
|
2059
|
+
label: string;
|
|
2060
|
+
icon?: string;
|
|
2061
|
+
route?: string;
|
|
2062
|
+
roles?: string[];
|
|
2063
|
+
disabled?: boolean;
|
|
2064
|
+
showArrow?: boolean;
|
|
2065
|
+
tooltip?: string;
|
|
2066
|
+
}
|
|
2067
|
+
interface SideNavStyleConfig {
|
|
2068
|
+
bg?: string;
|
|
2069
|
+
width?: string;
|
|
2070
|
+
collapsedWidth?: string;
|
|
2071
|
+
fontFamily?: string;
|
|
2072
|
+
headingColor?: string;
|
|
2073
|
+
itemColor?: string;
|
|
2074
|
+
itemHoverBg?: string;
|
|
2075
|
+
activeBg?: string;
|
|
2076
|
+
activeColor?: string;
|
|
2077
|
+
activeHoverBg?: string;
|
|
2078
|
+
}
|
|
2079
|
+
interface SideNavSection {
|
|
2080
|
+
heading?: string;
|
|
2081
|
+
items: SideNavItem[];
|
|
2082
|
+
}
|
|
2083
|
+
|
|
2084
|
+
declare class SideNavComponent implements OnChanges {
|
|
2085
|
+
sections: SideNavSection[];
|
|
2086
|
+
userRoles?: string[];
|
|
2087
|
+
activeId?: string;
|
|
2088
|
+
styleConfig?: SideNavStyleConfig;
|
|
2089
|
+
/** Control whether the nav is collapsed externally (two-way bindable) */
|
|
2090
|
+
collapsed: boolean;
|
|
2091
|
+
/** Width of the nav when expanded. Overrides the CSS variable default. */
|
|
2092
|
+
width?: string;
|
|
2093
|
+
/** Width of the nav when collapsed (icons only). Overrides the CSS variable default. */
|
|
2094
|
+
collapsedWidth?: string;
|
|
2095
|
+
/** Whether to show the collapse toggle button */
|
|
2096
|
+
showCollapseToggle: boolean;
|
|
2097
|
+
/** Whether to hide icons when the side nav is expanded */
|
|
2098
|
+
hideIconsWhenExpanded: boolean;
|
|
2099
|
+
/** Whether to show tooltips on nav items */
|
|
2100
|
+
showTooltips: boolean;
|
|
2101
|
+
/** Position of the tooltip */
|
|
2102
|
+
tooltipPosition: TooltipPosition;
|
|
2103
|
+
itemClicked: EventEmitter<SideNavItem>;
|
|
2104
|
+
/** Emits whenever the collapsed state changes (supports two-way binding via [(collapsed)]) */
|
|
2105
|
+
collapsedChange: EventEmitter<boolean>;
|
|
2106
|
+
/** Applies collapsed class to :host for the width CSS transition */
|
|
2107
|
+
get isHostCollapsed(): boolean;
|
|
2108
|
+
filteredSections: SideNavSection[];
|
|
2109
|
+
ngOnChanges(changes: SimpleChanges): void;
|
|
2110
|
+
private filterSections;
|
|
2111
|
+
onItemClick(item: SideNavItem, event: Event): void;
|
|
2112
|
+
toggleCollapse(): void;
|
|
2113
|
+
get customStyles(): {
|
|
2114
|
+
[key: string]: string;
|
|
2115
|
+
};
|
|
2116
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<SideNavComponent, never>;
|
|
2117
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<SideNavComponent, "lib-side-nav", never, { "sections": { "alias": "sections"; "required": false; }; "userRoles": { "alias": "userRoles"; "required": false; }; "activeId": { "alias": "activeId"; "required": false; }; "styleConfig": { "alias": "styleConfig"; "required": false; }; "collapsed": { "alias": "collapsed"; "required": false; }; "width": { "alias": "width"; "required": false; }; "collapsedWidth": { "alias": "collapsedWidth"; "required": false; }; "showCollapseToggle": { "alias": "showCollapseToggle"; "required": false; }; "hideIconsWhenExpanded": { "alias": "hideIconsWhenExpanded"; "required": false; }; "showTooltips": { "alias": "showTooltips"; "required": false; }; "tooltipPosition": { "alias": "tooltipPosition"; "required": false; }; }, { "itemClicked": "itemClicked"; "collapsedChange": "collapsedChange"; }, never, never, false, never>;
|
|
2118
|
+
}
|
|
2119
|
+
|
|
2120
|
+
declare class SideNavModule {
|
|
2121
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<SideNavModule, never>;
|
|
2122
|
+
static ɵmod: i0.ɵɵNgModuleDeclaration<SideNavModule, [typeof SideNavComponent], [typeof i2$1.CommonModule, typeof i3$2.RouterModule, typeof MaterialModule], [typeof SideNavComponent]>;
|
|
2123
|
+
static ɵinj: i0.ɵɵInjectorDeclaration<SideNavModule>;
|
|
2124
|
+
}
|
|
2125
|
+
|
|
1986
2126
|
declare class SharedUiModule {
|
|
1987
2127
|
static ɵfac: i0.ɵɵFactoryDeclaration<SharedUiModule, never>;
|
|
1988
|
-
static ɵmod: i0.ɵɵNgModuleDeclaration<SharedUiModule, never, [typeof i2$1.CommonModule, typeof MaterialModule, typeof AlertModule, typeof ButtonModule, typeof ConfirmationModalModule, typeof FilterSidebarModule, typeof FilterModule, typeof SummaryCardModule, typeof ConfigurableFormModule, typeof FormComponentsModule, typeof SmartFormModule], [typeof MaterialModule, typeof AlertModule, typeof ButtonModule, typeof ConfirmationModalModule, typeof FilterSidebarModule, typeof FilterModule, typeof SummaryCardModule, typeof ConfigurableFormModule, typeof FormComponentsModule, typeof SmartFormModule]>;
|
|
2128
|
+
static ɵmod: i0.ɵɵNgModuleDeclaration<SharedUiModule, never, [typeof i2$1.CommonModule, typeof MaterialModule, typeof AlertModule, typeof ButtonModule, typeof ConfirmationModalModule, typeof FilterSidebarModule, typeof FilterModule, typeof SummaryCardModule, typeof ConfigurableFormModule, typeof FormComponentsModule, typeof SmartFormModule, typeof SideNavModule], [typeof MaterialModule, typeof AlertModule, typeof ButtonModule, typeof ConfirmationModalModule, typeof FilterSidebarModule, typeof FilterModule, typeof SummaryCardModule, typeof ConfigurableFormModule, typeof FormComponentsModule, typeof SmartFormModule, typeof SideNavModule]>;
|
|
1989
2129
|
static ɵinj: i0.ɵɵInjectorDeclaration<SharedUiModule>;
|
|
1990
2130
|
}
|
|
1991
2131
|
|
|
@@ -2147,6 +2287,7 @@ declare const PAGINATION_THEME_DEFAULT = "theme-1";
|
|
|
2147
2287
|
declare const PAGINATION_THEME_DARK = "theme-2";
|
|
2148
2288
|
declare const NAV_VARIANT_DEFAULT: 'filled' | 'underline' | 'pills';
|
|
2149
2289
|
declare const NAV_ORIENTATION_DEFAULT: 'horizontal' | 'vertical';
|
|
2290
|
+
declare const DEFAULT_SIDE_NAV_TOOLTIP_POSITION = "right";
|
|
2150
2291
|
|
|
2151
2292
|
interface TableOption {
|
|
2152
2293
|
label: string;
|
|
@@ -2385,6 +2526,7 @@ declare const SAMPLE_FORMS: {
|
|
|
2385
2526
|
documentUploadForm: string;
|
|
2386
2527
|
demandDefinitionForm: string;
|
|
2387
2528
|
projectInfoForm: string;
|
|
2529
|
+
faqForm: string;
|
|
2388
2530
|
};
|
|
2389
2531
|
|
|
2390
2532
|
declare const smartForm_examples_d_SAMPLE_FORMS: typeof SAMPLE_FORMS;
|
|
@@ -2408,5 +2550,5 @@ declare class SnackbarModule {
|
|
|
2408
2550
|
static ɵinj: i0.ɵɵInjectorDeclaration<SnackbarModule>;
|
|
2409
2551
|
}
|
|
2410
2552
|
|
|
2411
|
-
export { AlertComponent, AlertModule, ButtonComponent, ButtonModule, CheckboxComponent, ConfigurableFormComponent, configurableForm_examples_d as ConfigurableFormExamples, ConfigurableFormModule, ConfirmationModalComponent, ConfirmationModalModule, DEFAULT_ITEMS_PER_PAGE, DEFAULT_PAGE_SIZE_OPTIONS, DatepickerComponent, DropdownComponent, ExpressionService, FilterComponent, FilterModule, FilterSidebarComponent, FilterSidebarModule, FormComponentsModule, InputComponent, MaterialModule, NAV_ORIENTATION_DEFAULT, NAV_VARIANT_DEFAULT, NavComponent, NavModule, PAGINATION_THEME_DARK, PAGINATION_THEME_DEFAULT, PaginationComponent, PaginationModule, RadioComponent, SearchComponent, SharedUiModule, SmartFormComponent, SmartFormController, smartForm_examples_d as SmartFormExamples, SmartFormModule, SmartTableComponent, SmartTableModule, SnackbarComponent, SnackbarModule, SnackbarService, StringUtils, SummaryCardComponent, SummaryCardModule, ToggleComponent, ValidationUtils, clearLocalStorage, clearSessionStorage, getLocalStorageItem, getSessionStorageItem, removeLocalStorageItem, removeSessionStorageItem, setLocalStorageItem, setSessionStorageItem, translateConfig };
|
|
2412
|
-
export type { AlertLabels, AlertVariant, AttachmentConfig, ButtonLabels, ButtonVariant, CheckboxConfig, CheckboxLabels, CheckboxOption, ConfirmationModalConfig, DateConfig, DatePickerConfig, DatepickerLabels, DropdownConfig, DropdownLabels, DropdownOption, EmailConfig, FieldConfig, FieldType, FilterChangeEvent, FilterConfig, FilterItem, FilterItemType, FilterOutput, FilterSearchConfig, FilterSidebarChangeEvent, FilterSidebarConfig, FilterSidebarOutput, FormConfig, FormField, FormOption, FormSchema, FormSection, GeneratedConfig, IconInput, InputConfig, InputLabels, InputType, JsonFieldConfig, JsonFormConfig, KeyType, LengthConstraint, LocationConfig, NavItem, NavStyleConfig, NestedStringConfig, NumberConfig, OptionConfig$1 as OptionConfig, OptionDTO, OptionItem, PaginationConfig, PaginationLabels, PhoneConfig, QueryParamsConfig, RadioConfig, RadioLabels, RadioOption, RangeConfig, RatingConfig, SearchConfig, SearchLabels, SectionConfig, SnackbarConfig, SnackbarVariant, StepperConfig, SubmitConfig, SummaryCardConfig, SummaryCardLabels, SummaryCardMeta, TableAction, TableActionItem, TableColumn, TableConfig, TableFilter, TableFilterChangeEvent, TableFilterColumn, TableFilterConfig, TableFilterItem, TableFilterLabels, TableFilterOutput, TableLabels, TableOption, TableTheme, TextConfig, ToggleConfig, ToggleLabels, UIConfig, UISubType, UIType, UploadedFile, ValidationResult, ValidationRules };
|
|
2553
|
+
export { AlertComponent, AlertModule, ButtonComponent, ButtonModule, CheckboxComponent, ConfigurableFormComponent, configurableForm_examples_d as ConfigurableFormExamples, ConfigurableFormModule, ConfirmationModalComponent, ConfirmationModalModule, DEFAULT_ITEMS_PER_PAGE, DEFAULT_PAGE_SIZE_OPTIONS, DEFAULT_SIDE_NAV_TOOLTIP_POSITION, DatepickerComponent, DropdownComponent, ExpressionService, FilterComponent, FilterModule, FilterSidebarComponent, FilterSidebarModule, FormComponentsModule, InputComponent, MaterialModule, NAV_ORIENTATION_DEFAULT, NAV_VARIANT_DEFAULT, NavComponent, NavModule, PAGINATION_THEME_DARK, PAGINATION_THEME_DEFAULT, PaginationComponent, PaginationModule, RadioComponent, SearchComponent, SharedUiModule, SideNavComponent, SideNavModule, SmartFormComponent, SmartFormController, smartForm_examples_d as SmartFormExamples, SmartFormModule, SmartTableComponent, SmartTableModule, SnackbarComponent, SnackbarModule, SnackbarService, StringUtils, SummaryCardComponent, SummaryCardModule, ToggleComponent, ValidationUtils, clearLocalStorage, clearSessionStorage, getLocalStorageItem, getSessionStorageItem, removeLocalStorageItem, removeSessionStorageItem, setLocalStorageItem, setSessionStorageItem, translateConfig };
|
|
2554
|
+
export type { AlertLabels, AlertVariant, AttachmentConfig, ButtonLabels, ButtonVariant, CheckboxConfig, CheckboxLabels, CheckboxOption, ConfirmationModalConfig, DateConfig, DatePickerConfig, DatepickerLabels, DropdownConfig, DropdownLabels, DropdownOption, EmailConfig, FieldConfig, FieldType, FilterChangeEvent, FilterConfig, FilterItem, FilterItemType, FilterOutput, FilterSearchConfig, FilterSidebarChangeEvent, FilterSidebarConfig, FilterSidebarOutput, FormConfig, FormField, FormOption, FormSchema, FormSection, GeneratedConfig, IconInput, InputConfig, InputLabels, InputType, JsonFieldConfig, JsonFormConfig, KeyType, LengthConstraint, LocationConfig, NavItem, NavStyleConfig, NestedStringConfig, NumberConfig, OptionConfig$1 as OptionConfig, OptionDTO, OptionItem, PaginationConfig, PaginationLabels, PhoneConfig, QueryParamsConfig, RadioConfig, RadioLabels, RadioOption, RangeConfig, RatingConfig, SearchConfig, SearchLabels, SectionConfig, SideNavItem, SideNavSection, SideNavStyleConfig, SnackbarConfig, SnackbarVariant, StepperConfig, SubmitConfig, SummaryCardConfig, SummaryCardLabels, SummaryCardMeta, TableAction, TableActionItem, TableColumn, TableConfig, TableFilter, TableFilterChangeEvent, TableFilterColumn, TableFilterConfig, TableFilterItem, TableFilterLabels, TableFilterOutput, TableLabels, TableOption, TableTheme, TextConfig, ToggleConfig, ToggleLabels, UIConfig, UISubType, UIType, UploadedFile, ValidationResult, ValidationRules };
|
package/package.json
CHANGED
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
@use 'sass:map';
|
|
2
|
+
|
|
3
|
+
$default-side-nav-config: (
|
|
4
|
+
// Container & Global
|
|
5
|
+
bg: #F9C80E0D,
|
|
6
|
+
width: 220px,
|
|
7
|
+
collapsed-width: 56px,
|
|
8
|
+
gap-sections: 24px,
|
|
9
|
+
padding: 16px,
|
|
10
|
+
|
|
11
|
+
// Typographic Global
|
|
12
|
+
font-family: ('Poppins', sans-serif),
|
|
13
|
+
|
|
14
|
+
// Header Typography
|
|
15
|
+
heading-font-weight: 500,
|
|
16
|
+
heading-font-size: 16px,
|
|
17
|
+
heading-color: #3C4043,
|
|
18
|
+
|
|
19
|
+
// Item Defaults (Inactive)
|
|
20
|
+
item-gap: 4px,
|
|
21
|
+
item-padding: 12px 16px,
|
|
22
|
+
item-border-radius: 8px,
|
|
23
|
+
item-font-weight: 400,
|
|
24
|
+
item-font-size: 14px,
|
|
25
|
+
item-color: #5F6368,
|
|
26
|
+
|
|
27
|
+
// Item Hover
|
|
28
|
+
// (Figma didn't strictly specify hover for inactive, assume subtle transparency on the active color)
|
|
29
|
+
item-hover-bg: rgba(#E63E30, 0.05),
|
|
30
|
+
item-hover-color: #3C4043,
|
|
31
|
+
|
|
32
|
+
// Active Item
|
|
33
|
+
active-bg: #E63E30,
|
|
34
|
+
active-color: #FFFFFF,
|
|
35
|
+
active-font-weight: 500,
|
|
36
|
+
active-hover-bg: #D4382B, // Darkened active color
|
|
37
|
+
|
|
38
|
+
// Disable State
|
|
39
|
+
disabled-opacity: 0.5,
|
|
40
|
+
|
|
41
|
+
// Tooltip Styling
|
|
42
|
+
tooltip-bg: rgba(0, 0, 0, 0.8),
|
|
43
|
+
tooltip-color: #FFFFFF,
|
|
44
|
+
tooltip-padding: 8px 12px,
|
|
45
|
+
tooltip-border-radius: 6px,
|
|
46
|
+
tooltip-font-size: 12px
|
|
47
|
+
);
|
|
48
|
+
|
|
49
|
+
@mixin side-nav-theme($user-config: ()) {
|
|
50
|
+
$config: map.merge($default-side-nav-config, $user-config);
|
|
51
|
+
|
|
52
|
+
// Container
|
|
53
|
+
--cc-side-nav-bg: #{map.get($config, bg)};
|
|
54
|
+
--cc-side-nav-width: #{map.get($config, width)};
|
|
55
|
+
--cc-side-nav-collapsed-width: #{map.get($config, collapsed-width)};
|
|
56
|
+
--cc-side-nav-gap-sections: #{map.get($config, gap-sections)};
|
|
57
|
+
--cc-side-nav-padding: #{map.get($config, padding)};
|
|
58
|
+
|
|
59
|
+
// Typography Family
|
|
60
|
+
--cc-side-nav-font-family: #{map.get($config, font-family)};
|
|
61
|
+
|
|
62
|
+
// Headers
|
|
63
|
+
--cc-side-nav-heading-font-weight: #{map.get($config, heading-font-weight)};
|
|
64
|
+
--cc-side-nav-heading-font-size: #{map.get($config, heading-font-size)};
|
|
65
|
+
--cc-side-nav-heading-color: #{map.get($config, heading-color)};
|
|
66
|
+
|
|
67
|
+
// Items Config
|
|
68
|
+
--cc-side-nav-item-gap: #{map.get($config, item-gap)};
|
|
69
|
+
--cc-side-nav-item-padding: #{map.get($config, item-padding)};
|
|
70
|
+
--cc-side-nav-item-border-radius: #{map.get($config, item-border-radius)};
|
|
71
|
+
|
|
72
|
+
// Inactive Items
|
|
73
|
+
--cc-side-nav-item-font-weight: #{map.get($config, item-font-weight)};
|
|
74
|
+
--cc-side-nav-item-font-size: #{map.get($config, item-font-size)};
|
|
75
|
+
--cc-side-nav-item-color: #{map.get($config, item-color)};
|
|
76
|
+
--cc-side-nav-item-hover-bg: #{map.get($config, item-hover-bg)};
|
|
77
|
+
--cc-side-nav-item-hover-color: #{map.get($config, item-hover-color)};
|
|
78
|
+
|
|
79
|
+
// Active Items
|
|
80
|
+
--cc-side-nav-active-bg: #{map.get($config, active-bg)};
|
|
81
|
+
--cc-side-nav-active-color: #{map.get($config, active-color)};
|
|
82
|
+
--cc-side-nav-active-font-weight: #{map.get($config, active-font-weight)};
|
|
83
|
+
--cc-side-nav-active-hover-bg: #{map.get($config, active-hover-bg)};
|
|
84
|
+
|
|
85
|
+
// Disabled
|
|
86
|
+
--cc-side-nav-disabled-opacity: #{map.get($config, disabled-opacity)};
|
|
87
|
+
|
|
88
|
+
// Tooltip
|
|
89
|
+
--cc-side-nav-tooltip-bg: #{map.get($config, tooltip-bg)};
|
|
90
|
+
--cc-side-nav-tooltip-color: #{map.get($config, tooltip-color)};
|
|
91
|
+
--cc-side-nav-tooltip-padding: #{map.get($config, tooltip-padding)};
|
|
92
|
+
--cc-side-nav-tooltip-border-radius: #{map.get($config, tooltip-border-radius)};
|
|
93
|
+
--cc-side-nav-tooltip-font-size: #{map.get($config, tooltip-font-size)};
|
|
94
|
+
}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
@use '../modules/side-nav/side-nav.theme' as sideNav;
|
|
1
2
|
@import 'quill/dist/quill.snow.css';
|
|
2
3
|
|
|
3
4
|
:root {
|
|
@@ -49,6 +50,19 @@
|
|
|
49
50
|
--field-input-height: 40px;
|
|
50
51
|
--field-input-radius: 7px;
|
|
51
52
|
--field-hint-color: #5f6368;
|
|
53
|
+
|
|
54
|
+
/* MultiSave (Card Repeater) */
|
|
55
|
+
--ms-card-bg: #ffffff;
|
|
56
|
+
--ms-card-border: #e8eaed;
|
|
57
|
+
--ms-card-radius: 10px;
|
|
58
|
+
--ms-card-shadow: 0 1px 4px rgba(0, 0, 0, 0.05);
|
|
59
|
+
--ms-card-shadow-hover: 0 6px 16px rgba(0, 0, 0, 0.08);
|
|
60
|
+
--ms-title-color: #111827;
|
|
61
|
+
--ms-desc-color: #6b7280;
|
|
62
|
+
--ms-btn-add-color: #3b82f6;
|
|
63
|
+
--ms-btn-add-hover: #2563eb;
|
|
64
|
+
|
|
65
|
+
@include sideNav.side-nav-theme();
|
|
52
66
|
}
|
|
53
67
|
|
|
54
68
|
/* ----------------------------------------------------
|