@eduboxpro/studio 0.1.16 → 0.1.18

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
@@ -370,6 +370,15 @@ interface CardDefaultsConfig {
370
370
  shadow?: 'none' | 'sm' | 'md' | 'lg' | 'xl';
371
371
  padding?: 'none' | 'sm' | 'md' | 'lg';
372
372
  }
373
+ /**
374
+ * Table component defaults configuration
375
+ */
376
+ interface TableDefaultsConfig {
377
+ variant?: 'default' | 'striped' | 'bordered' | 'minimal';
378
+ density?: 'compact' | 'comfortable' | 'spacious';
379
+ hoverable?: boolean;
380
+ stickyHeader?: boolean;
381
+ }
373
382
  /**
374
383
  * Components defaults configuration
375
384
  */
@@ -394,6 +403,7 @@ interface ComponentsConfig {
394
403
  modal?: ModalDefaultsConfig;
395
404
  bottomNavigation?: BottomNavigationDefaultsConfig;
396
405
  card?: CardDefaultsConfig;
406
+ table?: TableDefaultsConfig;
397
407
  }
398
408
  /**
399
409
  * Main Studio configuration interface
@@ -2086,6 +2096,273 @@ declare class SwitchComponent implements ControlValueAccessor {
2086
2096
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<SwitchComponent, "studio-switch", never, { "checked": { "alias": "checked"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "labelPosition": { "alias": "labelPosition"; "required": false; "isSignal": true; }; "showIcons": { "alias": "showIcons"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; "sizeInput": { "alias": "size"; "required": false; "isSignal": true; }; "colorInput": { "alias": "color"; "required": false; "isSignal": true; }; }, { "checked": "checkedChange"; "checkedChange": "checkedChange"; }, never, never, true, never>;
2087
2097
  }
2088
2098
 
2099
+ /**
2100
+ * Table component types and interfaces
2101
+ * Enterprise-grade type-safe table with full feature set
2102
+ */
2103
+
2104
+ /**
2105
+ * Column definition with type safety
2106
+ */
2107
+ interface TableColumn<T = any> {
2108
+ /** Unique column identifier */
2109
+ key: keyof T | string;
2110
+ /** Column header label */
2111
+ label: string;
2112
+ /** Data accessor function or property path */
2113
+ field?: keyof T | ((row: T) => any);
2114
+ /** Column width (CSS value) */
2115
+ width?: string;
2116
+ /** Minimum column width */
2117
+ minWidth?: string;
2118
+ /** Maximum column width */
2119
+ maxWidth?: string;
2120
+ /** Enable sorting for this column */
2121
+ sortable?: boolean;
2122
+ /** Custom sort comparator */
2123
+ sortFn?: (a: T, b: T, direction: SortDirection) => number;
2124
+ /** Enable filtering */
2125
+ filterable?: boolean;
2126
+ /** Column alignment */
2127
+ align?: 'left' | 'center' | 'right';
2128
+ /** Fixed column (sticky) */
2129
+ fixed?: 'left' | 'right' | false;
2130
+ /** Hide column on mobile */
2131
+ hideOnMobile?: boolean;
2132
+ /** Column priority for responsive (higher = keep visible longer) */
2133
+ priority?: number;
2134
+ /** Custom cell template */
2135
+ cellTemplate?: TemplateRef<TableCellContext<T>>;
2136
+ /** Custom header template */
2137
+ headerTemplate?: TemplateRef<TableHeaderContext<T>>;
2138
+ /** Cell CSS class */
2139
+ cellClass?: string | ((row: T) => string);
2140
+ /** Header CSS class */
2141
+ headerClass?: string;
2142
+ /** Format cell value */
2143
+ formatter?: (value: any, row: T) => string;
2144
+ /** Column is resizable */
2145
+ resizable?: boolean;
2146
+ }
2147
+ /**
2148
+ * Table cell template context
2149
+ */
2150
+ interface TableCellContext<T> {
2151
+ $implicit: any;
2152
+ row: T;
2153
+ column: TableColumn<T>;
2154
+ index: number;
2155
+ }
2156
+ /**
2157
+ * Table header template context
2158
+ */
2159
+ interface TableHeaderContext<T> {
2160
+ column: TableColumn<T>;
2161
+ sorted: boolean;
2162
+ direction: SortDirection | null;
2163
+ }
2164
+ /**
2165
+ * Sort configuration
2166
+ */
2167
+ interface TableSort<T = any> {
2168
+ column: keyof T | string;
2169
+ direction: SortDirection;
2170
+ }
2171
+ type SortDirection = 'asc' | 'desc';
2172
+ /**
2173
+ * Selection mode
2174
+ */
2175
+ type SelectionMode = 'none' | 'single' | 'multiple';
2176
+ /**
2177
+ * Table density/size
2178
+ */
2179
+ type TableDensity = 'compact' | 'comfortable' | 'spacious';
2180
+ /**
2181
+ * Table variant styles
2182
+ */
2183
+ type TableVariant = 'default' | 'striped' | 'bordered' | 'minimal';
2184
+ /**
2185
+ * Row expansion state
2186
+ */
2187
+ interface RowExpansion<T> {
2188
+ row: T;
2189
+ expanded: boolean;
2190
+ }
2191
+ /**
2192
+ * Table state (for external control)
2193
+ */
2194
+ interface TableState<T = any> {
2195
+ /** Currently sorted column */
2196
+ sort?: TableSort<T>;
2197
+ /** Selected row indices or IDs */
2198
+ selection?: Set<number | string>;
2199
+ /** Expanded row indices or IDs */
2200
+ expanded?: Set<number | string>;
2201
+ /** Current page (if using pagination) */
2202
+ page?: number;
2203
+ /** Page size */
2204
+ pageSize?: number;
2205
+ /** Global filter/search value */
2206
+ filter?: string;
2207
+ }
2208
+ /**
2209
+ * Sort event payload
2210
+ */
2211
+ interface SortEvent<T = any> {
2212
+ column: TableColumn<T>;
2213
+ direction: SortDirection;
2214
+ previousDirection: SortDirection | null;
2215
+ }
2216
+ /**
2217
+ * Selection event payload
2218
+ */
2219
+ interface SelectionEvent<T = any> {
2220
+ selected: T[];
2221
+ row?: T;
2222
+ isSelected: boolean;
2223
+ }
2224
+ /**
2225
+ * Row action definition
2226
+ */
2227
+ interface RowAction<T = any> {
2228
+ label: string;
2229
+ icon?: string;
2230
+ handler: (row: T) => void;
2231
+ visible?: (row: T) => boolean;
2232
+ disabled?: (row: T) => boolean;
2233
+ variant?: 'default' | 'danger';
2234
+ divider?: boolean;
2235
+ }
2236
+ /**
2237
+ * Empty state configuration
2238
+ */
2239
+ interface EmptyStateConfig {
2240
+ icon?: string;
2241
+ title?: string;
2242
+ message?: string;
2243
+ action?: {
2244
+ label: string;
2245
+ handler: () => void;
2246
+ };
2247
+ }
2248
+
2249
+ /**
2250
+ * Directive for declarative column definition
2251
+ *
2252
+ * @example
2253
+ * <studio-table-column
2254
+ * key="name"
2255
+ * label="Name"
2256
+ * [sortable]="true">
2257
+ * <ng-template let-row>{{ row.name }}</ng-template>
2258
+ * </studio-table-column>
2259
+ */
2260
+ declare class TableColumnDirective<T = any> {
2261
+ key: keyof T | string;
2262
+ label: string;
2263
+ field?: keyof T | ((row: T) => any);
2264
+ width?: string;
2265
+ minWidth?: string;
2266
+ maxWidth?: string;
2267
+ sortable?: boolean;
2268
+ sortFn?: (a: T, b: T, direction: 'asc' | 'desc') => number;
2269
+ filterable?: boolean;
2270
+ align?: 'left' | 'center' | 'right';
2271
+ fixed?: 'left' | 'right' | false;
2272
+ hideOnMobile?: boolean;
2273
+ priority?: number;
2274
+ cellClass?: string | ((row: T) => string);
2275
+ headerClass?: string;
2276
+ formatter?: (value: any, row: T) => string;
2277
+ resizable?: boolean;
2278
+ template?: TemplateRef<any>;
2279
+ /**
2280
+ * Convert directive inputs to TableColumn config
2281
+ */
2282
+ toColumnConfig(): TableColumn<T>;
2283
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<TableColumnDirective<any>, never>;
2284
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<TableColumnDirective<any>, "studio-table-column", never, { "key": { "alias": "key"; "required": true; }; "label": { "alias": "label"; "required": true; }; "field": { "alias": "field"; "required": false; }; "width": { "alias": "width"; "required": false; }; "minWidth": { "alias": "minWidth"; "required": false; }; "maxWidth": { "alias": "maxWidth"; "required": false; }; "sortable": { "alias": "sortable"; "required": false; }; "sortFn": { "alias": "sortFn"; "required": false; }; "filterable": { "alias": "filterable"; "required": false; }; "align": { "alias": "align"; "required": false; }; "fixed": { "alias": "fixed"; "required": false; }; "hideOnMobile": { "alias": "hideOnMobile"; "required": false; }; "priority": { "alias": "priority"; "required": false; }; "cellClass": { "alias": "cellClass"; "required": false; }; "headerClass": { "alias": "headerClass"; "required": false; }; "formatter": { "alias": "formatter"; "required": false; }; "resizable": { "alias": "resizable"; "required": false; }; }, {}, ["template"], never, true, never>;
2285
+ }
2286
+
2287
+ /**
2288
+ * Enterprise-grade Table component with full feature set
2289
+ *
2290
+ * @example
2291
+ * <studio-table
2292
+ * [data]="users"
2293
+ * [columns]="columns"
2294
+ * selectionMode="multiple"
2295
+ * [(selected)]="selectedUsers">
2296
+ * </studio-table>
2297
+ */
2298
+ declare class TableComponent<T = any> {
2299
+ private readonly configService;
2300
+ private readonly tableDefaults;
2301
+ variantInput: _angular_core.InputSignal<TableVariant | undefined>;
2302
+ densityInput: _angular_core.InputSignal<TableDensity | undefined>;
2303
+ variant: _angular_core.Signal<"default" | "minimal" | "bordered" | "striped">;
2304
+ density: _angular_core.Signal<"compact" | "comfortable" | "spacious">;
2305
+ data: _angular_core.InputSignal<T[]>;
2306
+ columns: _angular_core.InputSignal<TableColumn<T>[]>;
2307
+ rowKey: _angular_core.InputSignal<keyof T | ((row: T) => string | number)>;
2308
+ columnDirectives: _angular_core.Signal<readonly TableColumnDirective<any>[]>;
2309
+ selectionMode: _angular_core.InputSignal<SelectionMode>;
2310
+ sortable: _angular_core.InputSignal<boolean>;
2311
+ sortMode: _angular_core.InputSignal<"client" | "server">;
2312
+ hoverable: _angular_core.InputSignal<boolean>;
2313
+ stickyHeader: _angular_core.InputSignal<boolean>;
2314
+ showHeader: _angular_core.InputSignal<boolean>;
2315
+ expandable: _angular_core.InputSignal<boolean>;
2316
+ expandedRowTemplate: _angular_core.Signal<TemplateRef<any> | undefined>;
2317
+ expandMultiple: _angular_core.InputSignal<boolean>;
2318
+ loading: _angular_core.InputSignal<boolean>;
2319
+ loadingRows: _angular_core.InputSignal<number>;
2320
+ emptyState: _angular_core.InputSignal<EmptyStateConfig>;
2321
+ rowActions: _angular_core.InputSignal<RowAction<T>[]>;
2322
+ responsive: _angular_core.InputSignal<boolean>;
2323
+ mobileBreakpoint: _angular_core.InputSignal<number>;
2324
+ selected: _angular_core.ModelSignal<T[]>;
2325
+ sort: _angular_core.ModelSignal<TableSort<T> | null>;
2326
+ expanded: _angular_core.ModelSignal<Set<string | number>>;
2327
+ sortChange: _angular_core.OutputEmitterRef<SortEvent<T>>;
2328
+ selectionChange: _angular_core.OutputEmitterRef<SelectionEvent<T>>;
2329
+ rowClick: _angular_core.OutputEmitterRef<T>;
2330
+ rowDblClick: _angular_core.OutputEmitterRef<T>;
2331
+ protected currentSort: _angular_core.WritableSignal<TableSort<T> | null>;
2332
+ protected selectedRows: _angular_core.WritableSignal<Set<string | number>>;
2333
+ protected expandedRows: _angular_core.WritableSignal<Set<string | number>>;
2334
+ protected finalColumns: _angular_core.Signal<TableColumn<T>[] | TableColumn<any>[]>;
2335
+ protected processedData: _angular_core.Signal<T[]>;
2336
+ protected allSelected: _angular_core.Signal<boolean>;
2337
+ protected someSelected: _angular_core.Signal<boolean>;
2338
+ protected hostClasses: _angular_core.Signal<string>;
2339
+ constructor();
2340
+ sortBy(column: TableColumn<T>, direction?: SortDirection): void;
2341
+ selectRow(row: T): void;
2342
+ selectAll(select: boolean): void;
2343
+ toggleRowExpansion(row: T): void;
2344
+ isRowExpanded(row: T): boolean;
2345
+ isRowSelected(row: T): boolean;
2346
+ getCellValue(row: T, column: TableColumn<T>): any;
2347
+ getHeaderClass(column: TableColumn<T>): string;
2348
+ getCellClass(row: T, column: TableColumn<T>): string;
2349
+ getFullCellClass(row: T, column: TableColumn<T>): string;
2350
+ getCellContext(row: T, column: TableColumn<T>, index: number): TableCellContext<T>;
2351
+ getHeaderContext(column: TableColumn<T>): TableHeaderContext<T>;
2352
+ getSortIcon(column: TableColumn<T>): string;
2353
+ handleRowClick(row: T, event: Event): void;
2354
+ handleRowDblClick(row: T): void;
2355
+ executeRowAction(action: RowAction<T>, row: T, event: Event): void;
2356
+ isActionVisible(action: RowAction<T>, row: T): boolean;
2357
+ isActionDisabled(action: RowAction<T>, row: T): boolean;
2358
+ getRowKey(row: T): string | number;
2359
+ private getSelectedRows;
2360
+ private updateSelectedModel;
2361
+ private applySorting;
2362
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<TableComponent<any>, never>;
2363
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<TableComponent<any>, "studio-table", never, { "variantInput": { "alias": "variant"; "required": false; "isSignal": true; }; "densityInput": { "alias": "density"; "required": false; "isSignal": true; }; "data": { "alias": "data"; "required": false; "isSignal": true; }; "columns": { "alias": "columns"; "required": false; "isSignal": true; }; "rowKey": { "alias": "rowKey"; "required": false; "isSignal": true; }; "selectionMode": { "alias": "selectionMode"; "required": false; "isSignal": true; }; "sortable": { "alias": "sortable"; "required": false; "isSignal": true; }; "sortMode": { "alias": "sortMode"; "required": false; "isSignal": true; }; "hoverable": { "alias": "hoverable"; "required": false; "isSignal": true; }; "stickyHeader": { "alias": "stickyHeader"; "required": false; "isSignal": true; }; "showHeader": { "alias": "showHeader"; "required": false; "isSignal": true; }; "expandable": { "alias": "expandable"; "required": false; "isSignal": true; }; "expandMultiple": { "alias": "expandMultiple"; "required": false; "isSignal": true; }; "loading": { "alias": "loading"; "required": false; "isSignal": true; }; "loadingRows": { "alias": "loadingRows"; "required": false; "isSignal": true; }; "emptyState": { "alias": "emptyState"; "required": false; "isSignal": true; }; "rowActions": { "alias": "rowActions"; "required": false; "isSignal": true; }; "responsive": { "alias": "responsive"; "required": false; "isSignal": true; }; "mobileBreakpoint": { "alias": "mobileBreakpoint"; "required": false; "isSignal": true; }; "selected": { "alias": "selected"; "required": false; "isSignal": true; }; "sort": { "alias": "sort"; "required": false; "isSignal": true; }; "expanded": { "alias": "expanded"; "required": false; "isSignal": true; }; }, { "selected": "selectedChange"; "sort": "sortChange"; "expanded": "expandedChange"; "sortChange": "sortChange"; "selectionChange": "selectionChange"; "rowClick": "rowClick"; "rowDblClick": "rowDblClick"; }, ["columnDirectives", "expandedRowTemplate"], never, true, never>;
2364
+ }
2365
+
2089
2366
  type TabsVariant = 'line' | 'pills' | 'enclosed';
2090
2367
  type TabsSize = 'sm' | 'md' | 'lg';
2091
2368
  type TabsOrientation = 'horizontal' | 'vertical';
@@ -2692,5 +2969,5 @@ declare function loadGoogleFonts(fonts: Array<{
2692
2969
  display?: 'auto' | 'block' | 'swap' | 'fallback' | 'optional';
2693
2970
  }>): void;
2694
2971
 
2695
- export { BadgeComponent, BadgeWrapperComponent, BottomNavigationComponent, ButtonComponent, ButtonGroupComponent, ButtonToggleGroupComponent, CardComponent, ChatComponent, ChatInputComponent, ChatMessageComponent, CheckboxComponent, ColorPickerCompactComponent, ColorPickerComponent, DEFAULT_COLOR_PRESETS, DrawerComponent, DrawerService, DropdownComponent, IconComponent, InputComponent, InspectorComponent, MASK_PRESETS, MaskDirective, MaskEngine, MenuComponent, ModalComponent, NavbarComponent, PopoverComponent, RadioButtonComponent, STUDIO_CONFIG, SelectComponent, SidebarComponent, StudioConfigService, SwitchComponent, TabsComponent, TextareaComponent, ThemeSwitchComponent, TooltipComponent, classNames, isSafeUrl, loadGoogleFont, loadGoogleFonts, provideStudioConfig, provideStudioIcons, sanitizeUrl, withConfigDefault };
2696
- export type { BadgeColor, BadgeDefaultsConfig, BadgeIconPosition, BadgeRadius, BadgeSize, BadgeVariant, BadgeWrapperPosition, BadgeWrapperSize, BottomNavigationDefaultsConfig, BottomNavigationFabPosition, BottomNavigationItem, BottomNavigationLabelMode, BottomNavigationSize, BottomNavigationVariant, ButtonDefaultsConfig, ButtonGroupDefaultsConfig, ButtonToggleGroupDefaultsConfig, ButtonToggleGroupOption, ButtonToggleGroupValue, CardColor, CardDefaultsConfig, CardImagePosition, CardOrientation, CardPadding, CardRadius, CardShadow, CardSize, CardVariant, ChatMessage, ChatSize, ChatUser, ChatVariant, CheckboxColor, CheckboxDefaultsConfig, CheckboxRadius, CheckboxSize, CheckboxVariant, ColorConfig, ColorFormat, ColorPickerDefaultsConfig, ColorPickerSize, ColorPickerVariant, ColorPreset, ColorSwatchGroup, ColorValue, ComponentsConfig, DrawerAnimationEasing, DrawerCloseButtonPosition, DrawerConfig, DrawerDefaultsConfig, DrawerPosition, DrawerRadius, DrawerRole, DrawerShadowSize, DrawerSize, DropdownDefaultsConfig, DropdownItem, DropdownPosition, HSL, InputDefaultsConfig, InputMode, InputType, InspectorComponentSize, InspectorComponentVariant, InspectorData, InspectorGroup, InspectorGroupDivider, InspectorOption, InspectorParameter, InspectorParameterType, InspectorSection, InspectorSpacing, MaskConfig, MaskPreset, MaskResult, MaskToken, MenuColor, MenuExpandEvent, MenuExpandIconPosition, MenuItem, MenuItemBadgeColor, MenuItemClickEvent, MenuItemCommandEvent, MenuItemIconPosition, MenuItemTarget, MenuItemTooltipPosition, MenuMode, MenuOrientation, MenuRadius, MenuSize, MenuSpacing, MenuVariant, ModalAnimation, ModalDefaultsConfig, ModalPosition, ModalSize, ModalVariant, NavbarColor, NavbarShadow, NavbarSize, NavbarVariant, PopoverAnimation, PopoverBoundary, PopoverConfig, PopoverDefaultsConfig, PopoverPosition, PopoverSize, PopoverTrigger, PopoverVariant, PopoverWidth, RGB, RadioButtonColor, RadioButtonDefaultsConfig, RadioButtonRadius, RadioButtonSize, RadioButtonVariant, SelectDefaultsConfig, SelectDisplayContext, SelectOption, SelectOptionGroup, SelectPosition, SelectSize, SelectVariant, SidebarConfig, SidebarDefaultsConfig, SidebarPosition, SidebarSize, SidebarVariant, StudioConfig, StudioThemeConfig, SwitchDefaultsConfig, TabItem, TabsDefaultsConfig, TabsOrientation, TabsSize, TabsVariant, TextareaColor, TextareaDefaultsConfig, TextareaRadius, TextareaSize, TextareaVariant, ThemeMode, TooltipDefaultsConfig };
2972
+ export { BadgeComponent, BadgeWrapperComponent, BottomNavigationComponent, ButtonComponent, ButtonGroupComponent, ButtonToggleGroupComponent, CardComponent, ChatComponent, ChatInputComponent, ChatMessageComponent, CheckboxComponent, ColorPickerCompactComponent, ColorPickerComponent, DEFAULT_COLOR_PRESETS, DrawerComponent, DrawerService, DropdownComponent, IconComponent, InputComponent, InspectorComponent, MASK_PRESETS, MaskDirective, MaskEngine, MenuComponent, ModalComponent, NavbarComponent, PopoverComponent, RadioButtonComponent, STUDIO_CONFIG, SelectComponent, SidebarComponent, StudioConfigService, SwitchComponent, TableColumnDirective, TableComponent, TabsComponent, TextareaComponent, ThemeSwitchComponent, TooltipComponent, classNames, isSafeUrl, loadGoogleFont, loadGoogleFonts, provideStudioConfig, provideStudioIcons, sanitizeUrl, withConfigDefault };
2973
+ export type { BadgeColor, BadgeDefaultsConfig, BadgeIconPosition, BadgeRadius, BadgeSize, BadgeVariant, BadgeWrapperPosition, BadgeWrapperSize, BottomNavigationDefaultsConfig, BottomNavigationFabPosition, BottomNavigationItem, BottomNavigationLabelMode, BottomNavigationSize, BottomNavigationVariant, ButtonDefaultsConfig, ButtonGroupDefaultsConfig, ButtonToggleGroupDefaultsConfig, ButtonToggleGroupOption, ButtonToggleGroupValue, CardColor, CardDefaultsConfig, CardImagePosition, CardOrientation, CardPadding, CardRadius, CardShadow, CardSize, CardVariant, ChatMessage, ChatSize, ChatUser, ChatVariant, CheckboxColor, CheckboxDefaultsConfig, CheckboxRadius, CheckboxSize, CheckboxVariant, ColorConfig, ColorFormat, ColorPickerDefaultsConfig, ColorPickerSize, ColorPickerVariant, ColorPreset, ColorSwatchGroup, ColorValue, ComponentsConfig, DrawerAnimationEasing, DrawerCloseButtonPosition, DrawerConfig, DrawerDefaultsConfig, DrawerPosition, DrawerRadius, DrawerRole, DrawerShadowSize, DrawerSize, DropdownDefaultsConfig, DropdownItem, DropdownPosition, EmptyStateConfig, HSL, InputDefaultsConfig, InputMode, InputType, InspectorComponentSize, InspectorComponentVariant, InspectorData, InspectorGroup, InspectorGroupDivider, InspectorOption, InspectorParameter, InspectorParameterType, InspectorSection, InspectorSpacing, MaskConfig, MaskPreset, MaskResult, MaskToken, MenuColor, MenuExpandEvent, MenuExpandIconPosition, MenuItem, MenuItemBadgeColor, MenuItemClickEvent, MenuItemCommandEvent, MenuItemIconPosition, MenuItemTarget, MenuItemTooltipPosition, MenuMode, MenuOrientation, MenuRadius, MenuSize, MenuSpacing, MenuVariant, ModalAnimation, ModalDefaultsConfig, ModalPosition, ModalSize, ModalVariant, NavbarColor, NavbarShadow, NavbarSize, NavbarVariant, PopoverAnimation, PopoverBoundary, PopoverConfig, PopoverDefaultsConfig, PopoverPosition, PopoverSize, PopoverTrigger, PopoverVariant, PopoverWidth, RGB, RadioButtonColor, RadioButtonDefaultsConfig, RadioButtonRadius, RadioButtonSize, RadioButtonVariant, RowAction, RowExpansion, SelectDefaultsConfig, SelectDisplayContext, SelectOption, SelectOptionGroup, SelectPosition, SelectSize, SelectVariant, SelectionEvent, SelectionMode, SidebarConfig, SidebarDefaultsConfig, SidebarPosition, SidebarSize, SidebarVariant, SortDirection, SortEvent, StudioConfig, StudioThemeConfig, SwitchDefaultsConfig, TabItem, TableCellContext, TableColumn, TableDefaultsConfig, TableDensity, TableHeaderContext, TableSort, TableState, TableVariant, TabsDefaultsConfig, TabsOrientation, TabsSize, TabsVariant, TextareaColor, TextareaDefaultsConfig, TextareaRadius, TextareaSize, TextareaVariant, ThemeMode, TooltipDefaultsConfig };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@eduboxpro/studio",
3
- "version": "0.1.16",
3
+ "version": "0.1.18",
4
4
  "description": "Modern Angular UI library for educational platforms with customizable design system",
5
5
  "keywords": [
6
6
  "angular",
@@ -0,0 +1,41 @@
1
+ /**
2
+ * @eduboxpro/studio - Stylesheet WITHOUT Reset
3
+ *
4
+ * Use this when you already have a CSS reset (like Tailwind's preflight)
5
+ * and only need Studio's design tokens and component styles.
6
+ *
7
+ * Import in your styles.scss:
8
+ * @use "@eduboxpro/studio/src/styles/studio-no-reset";
9
+ */
10
+
11
+ /* Design Tokens */
12
+ @forward 'tokens';
13
+
14
+ /* Mixins - use in component styles as needed */
15
+ /* @use '@eduboxpro/studio/styles/mixins'; */
16
+
17
+ /* Force font-family to all studio components (fixes ViewEncapsulation issue) */
18
+ studio-button,
19
+ studio-input,
20
+ studio-badge,
21
+ studio-switch,
22
+ studio-theme-switch,
23
+ studio-checkbox,
24
+ studio-textarea,
25
+ studio-navbar,
26
+ studio-drawer,
27
+ studio-card,
28
+ studio-icon,
29
+ studio-button *,
30
+ studio-input *,
31
+ studio-badge *,
32
+ studio-switch *,
33
+ studio-theme-switch *,
34
+ studio-checkbox *,
35
+ studio-textarea *,
36
+ studio-navbar *,
37
+ studio-drawer *,
38
+ studio-card *,
39
+ studio-icon * {
40
+ font-family: var(--studio-font-family) !important;
41
+ }