@chefuicore/core 0.7.0 → 1.0.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.
Files changed (69) hide show
  1. package/dist/components/chef-ui-alert.d.ts +25 -0
  2. package/dist/components/chef-ui-alert.d.ts.map +1 -0
  3. package/dist/components/chef-ui-app-bar.d.ts +23 -0
  4. package/dist/components/chef-ui-app-bar.d.ts.map +1 -0
  5. package/dist/components/chef-ui-avatar.d.ts +40 -0
  6. package/dist/components/chef-ui-avatar.d.ts.map +1 -0
  7. package/dist/components/chef-ui-badge.d.ts +25 -0
  8. package/dist/components/chef-ui-badge.d.ts.map +1 -0
  9. package/dist/components/chef-ui-breadcrumbs.d.ts +32 -0
  10. package/dist/components/chef-ui-breadcrumbs.d.ts.map +1 -0
  11. package/dist/components/chef-ui-card.d.ts +32 -0
  12. package/dist/components/chef-ui-card.d.ts.map +1 -0
  13. package/dist/components/chef-ui-chip.d.ts +26 -0
  14. package/dist/components/chef-ui-chip.d.ts.map +1 -0
  15. package/dist/components/chef-ui-data-grid.d.ts +128 -0
  16. package/dist/components/chef-ui-data-grid.d.ts.map +1 -0
  17. package/dist/components/chef-ui-dialog.d.ts +31 -0
  18. package/dist/components/chef-ui-dialog.d.ts.map +1 -0
  19. package/dist/components/chef-ui-divider.d.ts +16 -0
  20. package/dist/components/chef-ui-divider.d.ts.map +1 -0
  21. package/dist/components/chef-ui-drawer.d.ts +29 -0
  22. package/dist/components/chef-ui-drawer.d.ts.map +1 -0
  23. package/dist/components/chef-ui-list.d.ts +39 -0
  24. package/dist/components/chef-ui-list.d.ts.map +1 -0
  25. package/dist/components/chef-ui-menu.d.ts +44 -0
  26. package/dist/components/chef-ui-menu.d.ts.map +1 -0
  27. package/dist/components/chef-ui-pagination.d.ts +28 -0
  28. package/dist/components/chef-ui-pagination.d.ts.map +1 -0
  29. package/dist/components/chef-ui-progress.d.ts +38 -0
  30. package/dist/components/chef-ui-progress.d.ts.map +1 -0
  31. package/dist/components/chef-ui-rating.d.ts +33 -0
  32. package/dist/components/chef-ui-rating.d.ts.map +1 -0
  33. package/dist/components/chef-ui-skeleton.d.ts +15 -0
  34. package/dist/components/chef-ui-skeleton.d.ts.map +1 -0
  35. package/dist/components/chef-ui-slider.d.ts +36 -0
  36. package/dist/components/chef-ui-slider.d.ts.map +1 -0
  37. package/dist/components/chef-ui-snackbar.d.ts +37 -0
  38. package/dist/components/chef-ui-snackbar.d.ts.map +1 -0
  39. package/dist/components/chef-ui-stepper.d.ts +31 -0
  40. package/dist/components/chef-ui-stepper.d.ts.map +1 -0
  41. package/dist/components/chef-ui-switch.d.ts +27 -0
  42. package/dist/components/chef-ui-switch.d.ts.map +1 -0
  43. package/dist/components/chef-ui-tabs.d.ts +41 -0
  44. package/dist/components/chef-ui-tabs.d.ts.map +1 -0
  45. package/dist/components/chef-ui-text-field.d.ts +57 -0
  46. package/dist/components/chef-ui-text-field.d.ts.map +1 -0
  47. package/dist/components/chef-ui-tooltip.d.ts +33 -0
  48. package/dist/components/chef-ui-tooltip.d.ts.map +1 -0
  49. package/dist/index.cjs +11629 -127
  50. package/dist/index.cjs.map +1 -1
  51. package/dist/index.d.ts +28 -0
  52. package/dist/index.d.ts.map +1 -1
  53. package/dist/index.js +11621 -127
  54. package/dist/index.js.map +1 -1
  55. package/dist/utils/data-grid-clipboard.d.ts +15 -0
  56. package/dist/utils/data-grid-clipboard.d.ts.map +1 -0
  57. package/dist/utils/data-grid-export.d.ts +22 -0
  58. package/dist/utils/data-grid-export.d.ts.map +1 -0
  59. package/dist/utils/data-grid-filter.d.ts +10 -0
  60. package/dist/utils/data-grid-filter.d.ts.map +1 -0
  61. package/dist/utils/data-grid-sort.d.ts +16 -0
  62. package/dist/utils/data-grid-sort.d.ts.map +1 -0
  63. package/dist/utils/data-grid-types.d.ts +114 -0
  64. package/dist/utils/data-grid-types.d.ts.map +1 -0
  65. package/dist/utils/license.d.ts +114 -0
  66. package/dist/utils/license.d.ts.map +1 -0
  67. package/dist/utils/licensed-element.d.ts +19 -0
  68. package/dist/utils/licensed-element.d.ts.map +1 -0
  69. package/package.json +1 -1
@@ -0,0 +1,15 @@
1
+ import type { GridColDef } from './data-grid-types';
2
+ /**
3
+ * Convert selected rows to tab-separated text for clipboard.
4
+ * Compatible with Excel/Google Sheets paste.
5
+ */
6
+ export declare function rowsToClipboardText(rows: any[], columns: GridColDef[], includeHeaders?: boolean): string;
7
+ /**
8
+ * Copy text to clipboard using the Clipboard API.
9
+ */
10
+ export declare function copyToClipboard(text: string): Promise<boolean>;
11
+ /**
12
+ * Parse clipboard text (tab-separated) into row data.
13
+ */
14
+ export declare function parseClipboardText(text: string, columns: GridColDef[]): any[];
15
+ //# sourceMappingURL=data-grid-clipboard.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"data-grid-clipboard.d.ts","sourceRoot":"","sources":["../../src/utils/data-grid-clipboard.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAcpD;;;GAGG;AACH,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,GAAG,EAAE,EACX,OAAO,EAAE,UAAU,EAAE,EACrB,cAAc,GAAE,OAAc,GAC7B,MAAM,CAiBR;AAED;;GAEG;AACH,wBAAsB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAmBpE;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAChC,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,UAAU,EAAE,GACpB,GAAG,EAAE,CA6BP"}
@@ -0,0 +1,22 @@
1
+ import type { GridColDef, GridExportOptions } from './data-grid-types';
2
+ /**
3
+ * Export rows to CSV format string.
4
+ */
5
+ export declare function exportToCsv(rows: any[], columns: GridColDef[], options?: GridExportOptions): string;
6
+ /**
7
+ * Export rows to Excel-compatible format (tab-separated).
8
+ */
9
+ export declare function exportToExcel(rows: any[], columns: GridColDef[], options?: GridExportOptions): string;
10
+ /**
11
+ * Trigger a file download in the browser.
12
+ */
13
+ export declare function downloadFile(content: string, fileName: string, mimeType: string): void;
14
+ /**
15
+ * Export and download as CSV.
16
+ */
17
+ export declare function downloadCsv(rows: any[], columns: GridColDef[], options?: GridExportOptions): void;
18
+ /**
19
+ * Export and download as Excel (tab-separated .xls).
20
+ */
21
+ export declare function downloadExcel(rows: any[], columns: GridColDef[], options?: GridExportOptions): void;
22
+ //# sourceMappingURL=data-grid-export.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"data-grid-export.d.ts","sourceRoot":"","sources":["../../src/utils/data-grid-export.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAwBvE;;GAEG;AACH,wBAAgB,WAAW,CACzB,IAAI,EAAE,GAAG,EAAE,EACX,OAAO,EAAE,UAAU,EAAE,EACrB,OAAO,GAAE,iBAAsB,GAC9B,MAAM,CAuBR;AAED;;GAEG;AACH,wBAAgB,aAAa,CAC3B,IAAI,EAAE,GAAG,EAAE,EACX,OAAO,EAAE,UAAU,EAAE,EACrB,OAAO,GAAE,iBAAsB,GAC9B,MAAM,CAER;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,CAWtF;AAED;;GAEG;AACH,wBAAgB,WAAW,CACzB,IAAI,EAAE,GAAG,EAAE,EACX,OAAO,EAAE,UAAU,EAAE,EACrB,OAAO,GAAE,iBAAsB,GAC9B,IAAI,CAIN;AAED;;GAEG;AACH,wBAAgB,aAAa,CAC3B,IAAI,EAAE,GAAG,EAAE,EACX,OAAO,EAAE,UAAU,EAAE,EACrB,OAAO,GAAE,iBAAsB,GAC9B,IAAI,CAIN"}
@@ -0,0 +1,10 @@
1
+ import type { GridColDef, GridFilterModel } from './data-grid-types';
2
+ /**
3
+ * Filter rows using the filter model.
4
+ */
5
+ export declare function filterRows(rows: any[], filterModel: GridFilterModel, columns: GridColDef[]): any[];
6
+ /**
7
+ * Get the default operator for a column type.
8
+ */
9
+ export declare function getDefaultOperator(type: string): string;
10
+ //# sourceMappingURL=data-grid-filter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"data-grid-filter.d.ts","sourceRoot":"","sources":["../../src/utils/data-grid-filter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,eAAe,EAAkB,MAAM,mBAAmB,CAAC;AAgIrF;;GAEG;AACH,wBAAgB,UAAU,CACxB,IAAI,EAAE,GAAG,EAAE,EACX,WAAW,EAAE,eAAe,EAC5B,OAAO,EAAE,UAAU,EAAE,GACpB,GAAG,EAAE,CAuCP;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAQvD"}
@@ -0,0 +1,16 @@
1
+ import type { GridColDef, GridSortModel, GridSortDirection } from './data-grid-types';
2
+ /**
3
+ * Sort rows using a multi-column sort model.
4
+ * Uses stable sort (maintains relative order of equal elements).
5
+ */
6
+ export declare function sortRows(rows: any[], sortModel: GridSortModel, columns: GridColDef[]): any[];
7
+ /**
8
+ * Cycle sort direction: null -> 'asc' -> 'desc' -> null
9
+ */
10
+ export declare function getNextSortDirection(current: GridSortDirection): GridSortDirection;
11
+ /**
12
+ * Toggle sort for a field in the sort model.
13
+ * If multiSort is false, replaces the entire sort model.
14
+ */
15
+ export declare function toggleSort(sortModel: GridSortModel, field: string, multiSort: boolean): GridSortModel;
16
+ //# sourceMappingURL=data-grid-sort.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"data-grid-sort.d.ts","sourceRoot":"","sources":["../../src/utils/data-grid-sort.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AA+CtF;;;GAGG;AACH,wBAAgB,QAAQ,CACtB,IAAI,EAAE,GAAG,EAAE,EACX,SAAS,EAAE,aAAa,EACxB,OAAO,EAAE,UAAU,EAAE,GACpB,GAAG,EAAE,CA8BP;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,iBAAiB,GAAG,iBAAiB,CAIlF;AAED;;;GAGG;AACH,wBAAgB,UAAU,CACxB,SAAS,EAAE,aAAa,EACxB,KAAK,EAAE,MAAM,EACb,SAAS,EAAE,OAAO,GACjB,aAAa,CAuBf"}
@@ -0,0 +1,114 @@
1
+ export type GridColumnType = 'string' | 'number' | 'date' | 'boolean' | 'singleSelect';
2
+ export type GridAlignment = 'left' | 'center' | 'right';
3
+ export type GridDensity = 'compact' | 'standard' | 'comfortable';
4
+ export type GridSortDirection = 'asc' | 'desc' | null;
5
+ export type GridFilterOperator = 'contains' | 'equals' | 'startsWith' | 'endsWith' | 'isEmpty' | 'isNotEmpty' | '=' | '!=' | '>' | '>=' | '<' | '<=' | 'is' | 'before' | 'after' | 'onOrBefore' | 'onOrAfter' | 'isTrue' | 'isFalse';
6
+ export type GridAggregationFunction = 'sum' | 'avg' | 'min' | 'max' | 'count' | 'size';
7
+ export interface GridRenderCellParams {
8
+ value: any;
9
+ row: any;
10
+ field: string;
11
+ colDef: GridColDef;
12
+ rowIndex: number;
13
+ isEditing: boolean;
14
+ }
15
+ export interface GridRenderHeaderParams {
16
+ field: string;
17
+ colDef: GridColDef;
18
+ sortDirection: GridSortDirection;
19
+ sortIndex: number;
20
+ }
21
+ export interface GridRenderEditCellParams {
22
+ value: any;
23
+ row: any;
24
+ field: string;
25
+ colDef: GridColDef;
26
+ }
27
+ export interface GridColDef {
28
+ field: string;
29
+ headerName?: string;
30
+ width?: number;
31
+ minWidth?: number;
32
+ maxWidth?: number;
33
+ flex?: number;
34
+ type?: GridColumnType;
35
+ sortable?: boolean;
36
+ filterable?: boolean;
37
+ editable?: boolean;
38
+ resizable?: boolean;
39
+ hideable?: boolean;
40
+ pinnable?: boolean;
41
+ groupable?: boolean;
42
+ aggregable?: boolean;
43
+ align?: GridAlignment;
44
+ headerAlign?: GridAlignment;
45
+ renderCell?: (params: GridRenderCellParams) => unknown;
46
+ renderHeader?: (params: GridRenderHeaderParams) => unknown;
47
+ renderEditCell?: (params: GridRenderEditCellParams) => unknown;
48
+ valueFormatter?: (value: any, row: any) => string;
49
+ valueGetter?: (row: any) => any;
50
+ valueSetter?: (row: any, value: any) => any;
51
+ valueOptions?: Array<{
52
+ value: any;
53
+ label: string;
54
+ }> | string[];
55
+ description?: string;
56
+ }
57
+ export interface GridSortItem {
58
+ field: string;
59
+ sort: 'asc' | 'desc';
60
+ }
61
+ export type GridSortModel = GridSortItem[];
62
+ export interface GridFilterItem {
63
+ field: string;
64
+ operator: GridFilterOperator;
65
+ value?: any;
66
+ }
67
+ export interface GridFilterModel {
68
+ items: GridFilterItem[];
69
+ logicOperator?: 'and' | 'or';
70
+ quickFilterValue?: string;
71
+ }
72
+ export type GridRowId = string | number;
73
+ export type GridRowSelectionModel = Set<GridRowId>;
74
+ export interface GridPinnedColumns {
75
+ left?: string[];
76
+ right?: string[];
77
+ }
78
+ export type GridRowGroupingModel = string[];
79
+ export interface GridAggregationModel {
80
+ [field: string]: GridAggregationFunction;
81
+ }
82
+ export type GridTreeDataPath = (row: any) => string[];
83
+ export interface GridExportOptions {
84
+ fileName?: string;
85
+ includeHeaders?: boolean;
86
+ includeColumnGroupHeaders?: boolean;
87
+ delimiter?: string;
88
+ utf8WithBom?: boolean;
89
+ allColumns?: boolean;
90
+ }
91
+ export interface GridEditingCell {
92
+ rowId: GridRowId;
93
+ field: string;
94
+ }
95
+ export interface GridInternalRow {
96
+ id: GridRowId;
97
+ data: any;
98
+ type: 'data' | 'group' | 'tree';
99
+ depth?: number;
100
+ isExpanded?: boolean;
101
+ childCount?: number;
102
+ groupField?: string;
103
+ groupValue?: any;
104
+ aggregations?: Record<string, any>;
105
+ path?: string[];
106
+ parentId?: GridRowId | null;
107
+ }
108
+ export declare const DENSITY_ROW_HEIGHT: Record<GridDensity, number>;
109
+ export declare const DENSITY_HEADER_HEIGHT: Record<GridDensity, number>;
110
+ export declare const FILTER_OPERATORS: Record<GridColumnType, {
111
+ label: string;
112
+ value: GridFilterOperator;
113
+ }[]>;
114
+ //# sourceMappingURL=data-grid-types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"data-grid-types.d.ts","sourceRoot":"","sources":["../../src/utils/data-grid-types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,114 @@
1
+ /**
2
+ * ChefUI License Manager
3
+ *
4
+ * Token-based licensing system for commercial use.
5
+ * Each token is tied to a single project and priced per developer.
6
+ *
7
+ * Usage:
8
+ * import { ChefUILicense } from '@chefuicore/core';
9
+ * ChefUILicense.init({ token: 'your-token-here' });
10
+ */
11
+ export interface LicenseConfig {
12
+ /** The license token provided to the customer */
13
+ token: string;
14
+ /** Optional: License validation endpoint URL */
15
+ validationEndpoint?: string;
16
+ }
17
+ export interface LicensePayload {
18
+ /** Unique license ID */
19
+ lid: string;
20
+ /** Organization / customer name */
21
+ org: string;
22
+ /** Project identifier this license is bound to */
23
+ project: string;
24
+ /** Maximum number of developers allowed */
25
+ maxDevs: number;
26
+ /** License type */
27
+ type: 'trial' | 'standard' | 'enterprise';
28
+ /** Expiration timestamp (ms since epoch) */
29
+ exp: number;
30
+ /** Issued at timestamp (ms since epoch) */
31
+ iat: number;
32
+ /** Feature flags (optional) */
33
+ features?: string[];
34
+ }
35
+ export type LicenseStatus = 'valid' | 'expired' | 'invalid' | 'missing';
36
+ type LicenseChangeCallback = (status: LicenseStatus) => void;
37
+ declare class LicenseManager {
38
+ private _token;
39
+ private _payload;
40
+ private _status;
41
+ private _validationEndpoint;
42
+ private _listeners;
43
+ private _remoteValidated;
44
+ private _remoteValidationPromise;
45
+ /**
46
+ * Initialize the license system. Call once at application startup.
47
+ */
48
+ init(config: LicenseConfig): void;
49
+ /**
50
+ * Get the current license status
51
+ */
52
+ get status(): LicenseStatus;
53
+ /**
54
+ * Check if the license is currently valid
55
+ */
56
+ get isValid(): boolean;
57
+ /**
58
+ * Get the decoded license payload
59
+ */
60
+ get payload(): LicensePayload | null;
61
+ /**
62
+ * Get the raw token string
63
+ */
64
+ get token(): string | null;
65
+ /**
66
+ * Subscribe to license status changes
67
+ */
68
+ onChange(callback: LicenseChangeCallback): () => void;
69
+ /**
70
+ * Reset the license (for testing or logout scenarios)
71
+ */
72
+ reset(): void;
73
+ /**
74
+ * Decode a ChefUI license token.
75
+ * Token format: base64(JSON payload).base64(signature)
76
+ */
77
+ private decodeToken;
78
+ /**
79
+ * Check if the license has expired
80
+ */
81
+ private isExpired;
82
+ /**
83
+ * Simple signature computation for token validation.
84
+ * In production, this should use a proper HMAC or RSA verification.
85
+ */
86
+ private computeSignature;
87
+ /**
88
+ * Base64 decode (browser & Node compatible)
89
+ */
90
+ private base64Decode;
91
+ /**
92
+ * Base64 encode (browser & Node compatible)
93
+ */
94
+ private base64Encode;
95
+ /**
96
+ * Remote validation against a licensing server
97
+ */
98
+ private validateRemote;
99
+ /**
100
+ * Notify all listeners of status change
101
+ */
102
+ private _notifyListeners;
103
+ /**
104
+ * Generate a license token (utility for server-side token generation).
105
+ * This is provided as a helper — in production, tokens should be generated server-side.
106
+ */
107
+ static generateToken(payload: LicensePayload): string;
108
+ }
109
+ /** Singleton license manager instance */
110
+ export declare const ChefUILicense: LicenseManager;
111
+ /** Re-export for static token generation */
112
+ export declare const generateLicenseToken: typeof LicenseManager.generateToken;
113
+ export {};
114
+ //# sourceMappingURL=license.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"license.d.ts","sourceRoot":"","sources":["../../src/utils/license.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,MAAM,WAAW,aAAa;IAC1B,iDAAiD;IACjD,KAAK,EAAE,MAAM,CAAC;IACd,gDAAgD;IAChD,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC/B;AAED,MAAM,WAAW,cAAc;IAC3B,wBAAwB;IACxB,GAAG,EAAE,MAAM,CAAC;IACZ,mCAAmC;IACnC,GAAG,EAAE,MAAM,CAAC;IACZ,kDAAkD;IAClD,OAAO,EAAE,MAAM,CAAC;IAChB,2CAA2C;IAC3C,OAAO,EAAE,MAAM,CAAC;IAChB,mBAAmB;IACnB,IAAI,EAAE,OAAO,GAAG,UAAU,GAAG,YAAY,CAAC;IAC1C,4CAA4C;IAC5C,GAAG,EAAE,MAAM,CAAC;IACZ,2CAA2C;IAC3C,GAAG,EAAE,MAAM,CAAC;IACZ,+BAA+B;IAC/B,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;CACvB;AAED,MAAM,MAAM,aAAa,GAAG,OAAO,GAAG,SAAS,GAAG,SAAS,GAAG,SAAS,CAAC;AAExE,KAAK,qBAAqB,GAAG,CAAC,MAAM,EAAE,aAAa,KAAK,IAAI,CAAC;AAE7D,cAAM,cAAc;IAChB,OAAO,CAAC,MAAM,CAAuB;IACrC,OAAO,CAAC,QAAQ,CAA+B;IAC/C,OAAO,CAAC,OAAO,CAA4B;IAC3C,OAAO,CAAC,mBAAmB,CAAuB;IAClD,OAAO,CAAC,UAAU,CAAyC;IAC3D,OAAO,CAAC,gBAAgB,CAAS;IACjC,OAAO,CAAC,wBAAwB,CAAiC;IAEjE;;OAEG;IACH,IAAI,CAAC,MAAM,EAAE,aAAa,GAAG,IAAI;IAyBjC;;OAEG;IACH,IAAI,MAAM,IAAI,aAAa,CAE1B;IAED;;OAEG;IACH,IAAI,OAAO,IAAI,OAAO,CAErB;IAED;;OAEG;IACH,IAAI,OAAO,IAAI,cAAc,GAAG,IAAI,CAEnC;IAED;;OAEG;IACH,IAAI,KAAK,IAAI,MAAM,GAAG,IAAI,CAEzB;IAED;;OAEG;IACH,QAAQ,CAAC,QAAQ,EAAE,qBAAqB,GAAG,MAAM,IAAI;IAKrD;;OAEG;IACH,KAAK,IAAI,IAAI;IASb;;;OAGG;IACH,OAAO,CAAC,WAAW;IA0BnB;;OAEG;IACH,OAAO,CAAC,SAAS;IAIjB;;;OAGG;IACH,OAAO,CAAC,gBAAgB;IAYxB;;OAEG;IACH,OAAO,CAAC,YAAY;IAQpB;;OAEG;IACH,OAAO,CAAC,YAAY;IAQpB;;OAEG;YACW,cAAc;IAoC5B;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAIxB;;;OAGG;IACH,MAAM,CAAC,aAAa,CAAC,OAAO,EAAE,cAAc,GAAG,MAAM;CAMxD;AAED,yCAAyC;AACzC,eAAO,MAAM,aAAa,gBAAuB,CAAC;AAElD,4CAA4C;AAC5C,eAAO,MAAM,oBAAoB,qCAA+B,CAAC"}
@@ -0,0 +1,19 @@
1
+ /**
2
+ * ChefUI License Guard
3
+ *
4
+ * A non-invasive license enforcement layer that works with all ChefUI components.
5
+ * Instead of modifying every component's base class, this module uses a MutationObserver
6
+ * to monitor the DOM for ChefUI elements and applies license enforcement automatically.
7
+ *
8
+ * When the license is invalid/missing/expired:
9
+ * - Components get a visual overlay indicating the license issue
10
+ * - A console warning is printed
11
+ *
12
+ * This approach is scalable: no changes needed in individual component files.
13
+ */
14
+ /**
15
+ * Start the license guard observer.
16
+ * This is called automatically when the core module is loaded.
17
+ */
18
+ export declare function startLicenseGuard(): void;
19
+ //# sourceMappingURL=licensed-element.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"licensed-element.d.ts","sourceRoot":"","sources":["../../src/utils/licensed-element.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AA4IH;;;GAGG;AACH,wBAAgB,iBAAiB,IAAI,IAAI,CAoDxC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@chefuicore/core",
3
- "version": "0.7.0",
3
+ "version": "1.0.1",
4
4
  "description": "Cross-framework UI components built with Lit - works with React, Vue, Angular, and vanilla JS",
5
5
  "type": "module",
6
6
  "main": "./dist/index.cjs",