@framework-m/desk 0.4.2

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 (121) hide show
  1. package/LICENSE +202 -0
  2. package/README.md +153 -0
  3. package/dist/auth.d.ts +11 -0
  4. package/dist/auth.d.ts.map +1 -0
  5. package/dist/authConfig.d.ts +42 -0
  6. package/dist/authConfig.d.ts.map +1 -0
  7. package/dist/components/CommandPalette.d.ts +49 -0
  8. package/dist/components/CommandPalette.d.ts.map +1 -0
  9. package/dist/components/breadcrumb/index.d.ts +2 -0
  10. package/dist/components/breadcrumb/index.d.ts.map +1 -0
  11. package/dist/components/feedback/AlertBanner.d.ts +8 -0
  12. package/dist/components/feedback/AlertBanner.d.ts.map +1 -0
  13. package/dist/components/feedback/ConfirmDialog.d.ts +13 -0
  14. package/dist/components/feedback/ConfirmDialog.d.ts.map +1 -0
  15. package/dist/components/feedback/index.d.ts +5 -0
  16. package/dist/components/feedback/index.d.ts.map +1 -0
  17. package/dist/components/form/AutoForm.d.ts +61 -0
  18. package/dist/components/form/AutoForm.d.ts.map +1 -0
  19. package/dist/components/form/LinkWidget.d.ts +20 -0
  20. package/dist/components/form/LinkWidget.d.ts.map +1 -0
  21. package/dist/components/form/index.d.ts +10 -0
  22. package/dist/components/form/index.d.ts.map +1 -0
  23. package/dist/components/form/templates.d.ts +58 -0
  24. package/dist/components/form/templates.d.ts.map +1 -0
  25. package/dist/components/layout/index.d.ts +3 -0
  26. package/dist/components/layout/index.d.ts.map +1 -0
  27. package/dist/components/menu/index.d.ts +2 -0
  28. package/dist/components/menu/index.d.ts.map +1 -0
  29. package/dist/components/table/AutoTable.d.ts +47 -0
  30. package/dist/components/table/AutoTable.d.ts.map +1 -0
  31. package/dist/components/table/BulkActionsBar.d.ts +40 -0
  32. package/dist/components/table/BulkActionsBar.d.ts.map +1 -0
  33. package/dist/components/table/EditableCell.d.ts +54 -0
  34. package/dist/components/table/EditableCell.d.ts.map +1 -0
  35. package/dist/components/table/index.d.ts +12 -0
  36. package/dist/components/table/index.d.ts.map +1 -0
  37. package/dist/components/workflow/StateBadge.d.ts +29 -0
  38. package/dist/components/workflow/StateBadge.d.ts.map +1 -0
  39. package/dist/components/workflow/WorkflowActions.d.ts +37 -0
  40. package/dist/components/workflow/WorkflowActions.d.ts.map +1 -0
  41. package/dist/components/workflow/index.d.ts +10 -0
  42. package/dist/components/workflow/index.d.ts.map +1 -0
  43. package/dist/config/i18n.d.ts +3 -0
  44. package/dist/config/i18n.d.ts.map +1 -0
  45. package/dist/config/index.d.ts +13 -0
  46. package/dist/config/index.d.ts.map +1 -0
  47. package/dist/config/registry.d.ts +75 -0
  48. package/dist/config/registry.d.ts.map +1 -0
  49. package/dist/config/types.d.ts +130 -0
  50. package/dist/config/types.d.ts.map +1 -0
  51. package/dist/config/useConfig.d.ts +18 -0
  52. package/dist/config/useConfig.d.ts.map +1 -0
  53. package/dist/constants.d.ts +35 -0
  54. package/dist/constants.d.ts.map +1 -0
  55. package/dist/data.d.ts +6 -0
  56. package/dist/data.d.ts.map +1 -0
  57. package/dist/hooks/index.d.ts +21 -0
  58. package/dist/hooks/index.d.ts.map +1 -0
  59. package/dist/hooks/types.d.ts +113 -0
  60. package/dist/hooks/types.d.ts.map +1 -0
  61. package/dist/hooks/useBulkActions.d.ts +82 -0
  62. package/dist/hooks/useBulkActions.d.ts.map +1 -0
  63. package/dist/hooks/useCommandPalette.d.ts +33 -0
  64. package/dist/hooks/useCommandPalette.d.ts.map +1 -0
  65. package/dist/hooks/useDocTypeMeta.d.ts +48 -0
  66. package/dist/hooks/useDocTypeMeta.d.ts.map +1 -0
  67. package/dist/hooks/useDocTypes.d.ts +66 -0
  68. package/dist/hooks/useDocTypes.d.ts.map +1 -0
  69. package/dist/hooks/useInlineEdit.d.ts +64 -0
  70. package/dist/hooks/useInlineEdit.d.ts.map +1 -0
  71. package/dist/hooks/useTranslation.d.ts +36 -0
  72. package/dist/hooks/useTranslation.d.ts.map +1 -0
  73. package/dist/hooks/useUIMeta.d.ts +111 -0
  74. package/dist/hooks/useUIMeta.d.ts.map +1 -0
  75. package/dist/hooks/useWorkflowActions.d.ts +75 -0
  76. package/dist/hooks/useWorkflowActions.d.ts.map +1 -0
  77. package/dist/index.d.ts +68 -0
  78. package/dist/index.d.ts.map +1 -0
  79. package/dist/index.js +5302 -0
  80. package/dist/index.js.map +1 -0
  81. package/dist/live.d.ts +21 -0
  82. package/dist/live.d.ts.map +1 -0
  83. package/dist/pages/FormView.d.ts +40 -0
  84. package/dist/pages/FormView.d.ts.map +1 -0
  85. package/dist/pages/ListView.d.ts +39 -0
  86. package/dist/pages/ListView.d.ts.map +1 -0
  87. package/dist/pages/LoginPage.d.ts +32 -0
  88. package/dist/pages/LoginPage.d.ts.map +1 -0
  89. package/dist/plugins/Slot.d.ts +27 -0
  90. package/dist/plugins/Slot.d.ts.map +1 -0
  91. package/dist/plugins/index.d.ts +14 -0
  92. package/dist/plugins/index.d.ts.map +1 -0
  93. package/dist/plugins/registry.d.ts +104 -0
  94. package/dist/plugins/registry.d.ts.map +1 -0
  95. package/dist/plugins/types.d.ts +130 -0
  96. package/dist/plugins/types.d.ts.map +1 -0
  97. package/dist/types.d.ts +51 -0
  98. package/dist/types.d.ts.map +1 -0
  99. package/dist/views/CalendarView.d.ts +14 -0
  100. package/dist/views/CalendarView.d.ts.map +1 -0
  101. package/dist/views/GanttView.d.ts +14 -0
  102. package/dist/views/GanttView.d.ts.map +1 -0
  103. package/dist/views/KanbanView.d.ts +16 -0
  104. package/dist/views/KanbanView.d.ts.map +1 -0
  105. package/dist/views/TreeView.d.ts +15 -0
  106. package/dist/views/TreeView.d.ts.map +1 -0
  107. package/dist/views/index.d.ts +17 -0
  108. package/dist/views/index.d.ts.map +1 -0
  109. package/dist/views/registry.d.ts +32 -0
  110. package/dist/views/registry.d.ts.map +1 -0
  111. package/dist/views/types.d.ts +97 -0
  112. package/dist/views/types.d.ts.map +1 -0
  113. package/dist/workspace/WorkspaceSection.d.ts +16 -0
  114. package/dist/workspace/WorkspaceSection.d.ts.map +1 -0
  115. package/dist/workspace/index.d.ts +12 -0
  116. package/dist/workspace/index.d.ts.map +1 -0
  117. package/dist/workspace/types.d.ts +95 -0
  118. package/dist/workspace/types.d.ts.map +1 -0
  119. package/dist/workspace/useWorkspaces.d.ts +38 -0
  120. package/dist/workspace/useWorkspaces.d.ts.map +1 -0
  121. package/package.json +89 -0
package/dist/data.d.ts ADDED
@@ -0,0 +1,6 @@
1
+ import { DataProvider } from '@refinedev/core';
2
+ /**
3
+ * Framework M Data Provider
4
+ */
5
+ export declare const frameworkMDataProvider: DataProvider;
6
+ //# sourceMappingURL=data.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"data.d.ts","sourceRoot":"","sources":["../src/data.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAMV,YAAY,EASb,MAAM,iBAAiB,CAAC;AA8MzB;;GAEG;AACH,eAAO,MAAM,sBAAsB,EAAE,YAsLpC,CAAC"}
@@ -0,0 +1,21 @@
1
+ /**
2
+ * Custom Hooks for Framework M
3
+ *
4
+ * Re-exports all hooks for convenient importing.
5
+ */
6
+ export { useDocTypeMeta, usePrefetchDocTypeMeta } from './useDocTypeMeta';
7
+ export type { UseDocTypeMetaResult } from './useDocTypeMeta';
8
+ export { useDocTypes } from './useDocTypes';
9
+ export { useWorkflowActions } from './useWorkflowActions';
10
+ export type { UseWorkflowActionsResult, WorkflowAction, WorkflowState } from './useWorkflowActions';
11
+ export { useInlineEdit } from './useInlineEdit';
12
+ export type { UseInlineEditOptions, UseInlineEditReturn, EditingCell } from './useInlineEdit';
13
+ export { useBulkActions } from './useBulkActions';
14
+ export type { UseBulkActionsOptions, UseBulkActionsReturn, BulkItem } from './useBulkActions';
15
+ export { useCommandPalette } from './useCommandPalette';
16
+ export type { UseCommandPaletteReturn } from './useCommandPalette';
17
+ export { useTranslation } from './useTranslation';
18
+ export { useUIMeta } from './useUIMeta';
19
+ export type { UIMeta, FormMeta, FormSection, FormTab, ListMeta, ListColumn, KanbanConfig, TreeConfig, CalendarConfig, AdditionalViews, UseUIMetaResult, } from './useUIMeta';
20
+ export type { DocTypeMeta, DocTypeSchema, DocTypePermissions, LayoutConfig, WorkflowConfig, FieldSchema, JSONSchemaProperty, LayoutSection, WorkflowState as WorkflowStateConfig, WorkflowTransition, } from './types';
21
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/hooks/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,cAAc,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAC;AAC1E,YAAY,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAE7D,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAE5C,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,YAAY,EAAE,wBAAwB,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAEpG,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,YAAY,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAE9F,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,YAAY,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAE9F,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,YAAY,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAC;AAEnE,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAElD,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,YAAY,EACV,MAAM,EACN,QAAQ,EACR,WAAW,EACX,OAAO,EACP,QAAQ,EACR,UAAU,EACV,YAAY,EACZ,UAAU,EACV,cAAc,EACd,eAAe,EACf,eAAe,GAChB,MAAM,aAAa,CAAC;AAGrB,YAAY,EACV,WAAW,EACX,aAAa,EACb,kBAAkB,EAClB,YAAY,EACZ,cAAc,EACd,WAAW,EACX,kBAAkB,EAClB,aAAa,EACb,aAAa,IAAI,mBAAmB,EACpC,kBAAkB,GACnB,MAAM,SAAS,CAAC"}
@@ -0,0 +1,113 @@
1
+ /**
2
+ * DocType Metadata Types
3
+ *
4
+ * Types for metadata returned from /api/meta/{doctype}
5
+ */
6
+ /**
7
+ * Field definition from DocType schema
8
+ */
9
+ export interface FieldSchema {
10
+ name: string;
11
+ fieldtype: string;
12
+ label?: string;
13
+ required?: boolean;
14
+ read_only?: boolean;
15
+ hidden?: boolean;
16
+ default?: unknown;
17
+ options?: string;
18
+ description?: string;
19
+ }
20
+ /**
21
+ * JSON Schema representation of a DocType
22
+ */
23
+ export interface DocTypeSchema {
24
+ $schema?: string;
25
+ type: "object";
26
+ title: string;
27
+ description?: string;
28
+ properties: Record<string, JSONSchemaProperty>;
29
+ required?: string[];
30
+ }
31
+ /**
32
+ * JSON Schema property definition
33
+ */
34
+ export interface JSONSchemaProperty {
35
+ type: string | string[];
36
+ title?: string;
37
+ description?: string;
38
+ enum?: string[];
39
+ format?: string;
40
+ default?: unknown;
41
+ "x-fieldtype"?: string;
42
+ "x-options"?: string;
43
+ "x-read-only"?: boolean;
44
+ "x-hidden"?: boolean;
45
+ }
46
+ /**
47
+ * Layout configuration for form rendering
48
+ */
49
+ export interface LayoutConfig {
50
+ sections?: LayoutSection[];
51
+ columns?: number;
52
+ }
53
+ /**
54
+ * Section within a form layout
55
+ */
56
+ export interface LayoutSection {
57
+ label?: string;
58
+ collapsible?: boolean;
59
+ collapsed?: boolean;
60
+ fields: string[];
61
+ }
62
+ /**
63
+ * Permissions for the current user on this DocType
64
+ */
65
+ export interface DocTypePermissions {
66
+ read: boolean;
67
+ write: boolean;
68
+ create: boolean;
69
+ delete: boolean;
70
+ submit?: boolean;
71
+ cancel?: boolean;
72
+ amend?: boolean;
73
+ }
74
+ /**
75
+ * Workflow configuration if DocType has workflow
76
+ */
77
+ export interface WorkflowConfig {
78
+ name: string;
79
+ states: WorkflowState[];
80
+ transitions: WorkflowTransition[];
81
+ }
82
+ /**
83
+ * Workflow state definition
84
+ */
85
+ export interface WorkflowState {
86
+ name: string;
87
+ doc_status?: number;
88
+ allow_edit?: string[];
89
+ }
90
+ /**
91
+ * Workflow transition definition
92
+ */
93
+ export interface WorkflowTransition {
94
+ action: string;
95
+ from_state: string;
96
+ to_state: string;
97
+ allowed_roles?: string[];
98
+ }
99
+ /**
100
+ * Complete metadata for a DocType
101
+ */
102
+ export interface DocTypeMeta {
103
+ doctype: string;
104
+ schema: DocTypeSchema;
105
+ layout?: LayoutConfig;
106
+ permissions: DocTypePermissions;
107
+ workflow?: WorkflowConfig;
108
+ is_submittable?: boolean;
109
+ is_child_table?: boolean;
110
+ title_field?: string;
111
+ search_fields?: string[];
112
+ }
113
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/hooks/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,82 @@
1
+ /**
2
+ * useBulkActions Hook
3
+ *
4
+ * Hook for managing bulk operations on table rows.
5
+ * Per checklist 5.3: Bulk Operations.
6
+ */
7
+ /**
8
+ * Row item type
9
+ */
10
+ export interface BulkItem {
11
+ id: string;
12
+ [key: string]: unknown;
13
+ }
14
+ /**
15
+ * Hook options
16
+ */
17
+ export interface UseBulkActionsOptions<T extends BulkItem = BulkItem> {
18
+ /** Resource/DocType name */
19
+ resource: string;
20
+ /** All available items */
21
+ items: T[];
22
+ /** Callback after successful bulk action */
23
+ onSuccess?: () => void;
24
+ /** Callback on error */
25
+ onError?: (error: Error) => void;
26
+ }
27
+ /**
28
+ * Hook return type
29
+ */
30
+ export interface UseBulkActionsReturn<T extends BulkItem = BulkItem> {
31
+ /** Selected row IDs */
32
+ selectedIds: Set<string>;
33
+ /** Selected items */
34
+ selectedItems: T[];
35
+ /** Number of selected items */
36
+ selectedCount: number;
37
+ /** Whether all items are selected */
38
+ isAllSelected: boolean;
39
+ /** Whether some items are selected */
40
+ isSomeSelected: boolean;
41
+ /** Select a single row */
42
+ selectRow: (id: string) => void;
43
+ /** Deselect a single row */
44
+ deselectRow: (id: string) => void;
45
+ /** Toggle a single row */
46
+ toggleRow: (id: string) => void;
47
+ /** Select all rows */
48
+ selectAll: () => void;
49
+ /** Deselect all rows */
50
+ deselectAll: () => void;
51
+ /** Toggle all rows */
52
+ toggleAll: () => void;
53
+ /** Check if a row is selected */
54
+ isSelected: (id: string) => boolean;
55
+ /** Bulk delete selected rows */
56
+ bulkDelete: () => Promise<void>;
57
+ /** Bulk update selected rows */
58
+ bulkUpdate: (values: Record<string, unknown>) => Promise<void>;
59
+ /** Export selected rows as JSON */
60
+ exportAsJson: () => void;
61
+ /** Export selected rows as CSV */
62
+ exportAsCsv: (fields: string[]) => void;
63
+ /** Whether bulk action is in progress */
64
+ isLoading: boolean;
65
+ }
66
+ /**
67
+ * useBulkActions Hook
68
+ *
69
+ * @example
70
+ * ```tsx
71
+ * const {
72
+ * selectedIds, toggleRow, toggleAll, isAllSelected,
73
+ * bulkDelete, bulkUpdate, exportAsCsv
74
+ * } = useBulkActions({
75
+ * resource: "Customer",
76
+ * items: data,
77
+ * onSuccess: () => refetch(),
78
+ * });
79
+ * ```
80
+ */
81
+ export declare function useBulkActions<T extends BulkItem = BulkItem>({ resource, items, onSuccess, onError, }: UseBulkActionsOptions<T>): UseBulkActionsReturn<T>;
82
+ //# sourceMappingURL=useBulkActions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useBulkActions.d.ts","sourceRoot":"","sources":["../../src/hooks/useBulkActions.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH;;GAEG;AACH,MAAM,WAAW,QAAQ;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB,CAAC,CAAC,SAAS,QAAQ,GAAG,QAAQ;IAClE,4BAA4B;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,0BAA0B;IAC1B,KAAK,EAAE,CAAC,EAAE,CAAC;IACX,4CAA4C;IAC5C,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;IACvB,wBAAwB;IACxB,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;CAClC;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB,CAAC,CAAC,SAAS,QAAQ,GAAG,QAAQ;IACjE,uBAAuB;IACvB,WAAW,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACzB,qBAAqB;IACrB,aAAa,EAAE,CAAC,EAAE,CAAC;IACnB,+BAA+B;IAC/B,aAAa,EAAE,MAAM,CAAC;IACtB,qCAAqC;IACrC,aAAa,EAAE,OAAO,CAAC;IACvB,sCAAsC;IACtC,cAAc,EAAE,OAAO,CAAC;IACxB,0BAA0B;IAC1B,SAAS,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IAChC,4BAA4B;IAC5B,WAAW,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,0BAA0B;IAC1B,SAAS,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IAChC,sBAAsB;IACtB,SAAS,EAAE,MAAM,IAAI,CAAC;IACtB,wBAAwB;IACxB,WAAW,EAAE,MAAM,IAAI,CAAC;IACxB,sBAAsB;IACtB,SAAS,EAAE,MAAM,IAAI,CAAC;IACtB,iCAAiC;IACjC,UAAU,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC;IACpC,gCAAgC;IAChC,UAAU,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAChC,gCAAgC;IAChC,UAAU,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/D,mCAAmC;IACnC,YAAY,EAAE,MAAM,IAAI,CAAC;IACzB,kCAAkC;IAClC,WAAW,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;IACxC,yCAAyC;IACzC,SAAS,EAAE,OAAO,CAAC;CACpB;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,cAAc,CAAC,CAAC,SAAS,QAAQ,GAAG,QAAQ,EAAE,EAC5D,QAAQ,EACR,KAAK,EACL,SAAS,EACT,OAAO,GACR,EAAE,qBAAqB,CAAC,CAAC,CAAC,GAAG,oBAAoB,CAAC,CAAC,CAAC,CAwKpD"}
@@ -0,0 +1,33 @@
1
+ /**
2
+ * useCommandPalette Hook
3
+ *
4
+ * Hook for managing global command palette state and keyboard shortcut.
5
+ * Per checklist 6.5: Global Command Palette.
6
+ */
7
+ /**
8
+ * Hook return type
9
+ */
10
+ export interface UseCommandPaletteReturn {
11
+ /** Whether palette is open */
12
+ isOpen: boolean;
13
+ /** Open the palette */
14
+ open: () => void;
15
+ /** Close the palette */
16
+ close: () => void;
17
+ /** Toggle the palette */
18
+ toggle: () => void;
19
+ }
20
+ /**
21
+ * useCommandPalette Hook
22
+ *
23
+ * Listens for Ctrl+K (or Cmd+K on Mac) to toggle command palette.
24
+ *
25
+ * @example
26
+ * ```tsx
27
+ * const { isOpen, close } = useCommandPalette();
28
+ *
29
+ * return <CommandPalette open={isOpen} onClose={close} />;
30
+ * ```
31
+ */
32
+ export declare function useCommandPalette(): UseCommandPaletteReturn;
33
+ //# sourceMappingURL=useCommandPalette.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useCommandPalette.d.ts","sourceRoot":"","sources":["../../src/hooks/useCommandPalette.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC,8BAA8B;IAC9B,MAAM,EAAE,OAAO,CAAC;IAChB,uBAAuB;IACvB,IAAI,EAAE,MAAM,IAAI,CAAC;IACjB,wBAAwB;IACxB,KAAK,EAAE,MAAM,IAAI,CAAC;IAClB,yBAAyB;IACzB,MAAM,EAAE,MAAM,IAAI,CAAC;CACpB;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,iBAAiB,IAAI,uBAAuB,CA2B3D"}
@@ -0,0 +1,48 @@
1
+ import { DocTypeMeta, DocTypeSchema, DocTypePermissions, LayoutConfig, WorkflowConfig } from './types';
2
+ /**
3
+ * Return type for useDocTypeMeta hook
4
+ */
5
+ export interface UseDocTypeMetaResult {
6
+ /** JSON Schema for the DocType */
7
+ schema: DocTypeSchema | undefined;
8
+ /** Layout configuration for form rendering */
9
+ layout: LayoutConfig | undefined;
10
+ /** Permissions for current user */
11
+ permissions: DocTypePermissions | undefined;
12
+ /** Workflow configuration if applicable */
13
+ workflow: WorkflowConfig | undefined;
14
+ /** Full metadata object */
15
+ meta: DocTypeMeta | undefined;
16
+ /** Loading state */
17
+ isLoading: boolean;
18
+ /** Error if fetch failed */
19
+ error: Error | null;
20
+ /** Refetch function */
21
+ refetch: () => void;
22
+ }
23
+ /**
24
+ * Hook to fetch and cache DocType metadata
25
+ *
26
+ * @param doctype - Name of the DocType to fetch metadata for
27
+ * @returns Metadata including schema, layout, permissions, and workflow
28
+ *
29
+ * @example
30
+ * ```tsx
31
+ * const { schema, layout, permissions, workflow } = useDocTypeMeta("Todo");
32
+ *
33
+ * if (isLoading) return <Spinner />;
34
+ * if (!permissions?.read) return <AccessDenied />;
35
+ *
36
+ * return <AutoForm schema={schema} layout={layout} />;
37
+ * ```
38
+ */
39
+ export declare function useDocTypeMeta(doctype: string): UseDocTypeMetaResult;
40
+ /**
41
+ * Hook to prefetch DocType metadata
42
+ *
43
+ * Useful for preloading metadata before navigation
44
+ */
45
+ export declare function usePrefetchDocTypeMeta(): {
46
+ prefetch: (doctype: string) => void;
47
+ };
48
+ //# sourceMappingURL=useDocTypeMeta.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useDocTypeMeta.d.ts","sourceRoot":"","sources":["../../src/hooks/useDocTypeMeta.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,KAAK,EACV,WAAW,EACX,aAAa,EACb,kBAAkB,EAClB,YAAY,EACZ,cAAc,EACf,MAAM,SAAS,CAAC;AA8BjB;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,kCAAkC;IAClC,MAAM,EAAE,aAAa,GAAG,SAAS,CAAC;IAClC,8CAA8C;IAC9C,MAAM,EAAE,YAAY,GAAG,SAAS,CAAC;IACjC,mCAAmC;IACnC,WAAW,EAAE,kBAAkB,GAAG,SAAS,CAAC;IAC5C,2CAA2C;IAC3C,QAAQ,EAAE,cAAc,GAAG,SAAS,CAAC;IACrC,2BAA2B;IAC3B,IAAI,EAAE,WAAW,GAAG,SAAS,CAAC;IAC9B,oBAAoB;IACpB,SAAS,EAAE,OAAO,CAAC;IACnB,4BAA4B;IAC5B,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IACpB,uBAAuB;IACvB,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,oBAAoB,CA0BpE;AAED;;;;GAIG;AACH,wBAAgB,sBAAsB;wBASd,MAAM;EAQ7B"}
@@ -0,0 +1,66 @@
1
+ /**
2
+ * useDocTypes Hook
3
+ *
4
+ * Fetches DocTypes from the backend API and converts them to Refine resources.
5
+ * Used to dynamically populate the sidebar with available DocTypes.
6
+ */
7
+ /**
8
+ * DocType metadata from API
9
+ */
10
+ export interface DocTypeMeta {
11
+ name: string;
12
+ module: string;
13
+ label: string;
14
+ is_child_table: boolean;
15
+ api_resource: boolean;
16
+ show_in_desk: boolean;
17
+ }
18
+ /**
19
+ * Refine resource configuration
20
+ */
21
+ export interface RefineResource {
22
+ name: string;
23
+ list?: string;
24
+ create?: string;
25
+ edit?: string;
26
+ show?: string;
27
+ meta?: {
28
+ label?: string;
29
+ canDelete?: boolean;
30
+ };
31
+ }
32
+ /**
33
+ * Hook return type
34
+ */
35
+ export interface UseDocTypesResult {
36
+ /** Array of DocType metadata */
37
+ doctypes: DocTypeMeta[];
38
+ /** Array of Refine resources for dynamic routing */
39
+ resources: RefineResource[];
40
+ /** Loading state */
41
+ isLoading: boolean;
42
+ /** Error state */
43
+ error: Error | null;
44
+ /** Refetch function */
45
+ refetch: () => Promise<void>;
46
+ }
47
+ /**
48
+ * Fetch DocTypes from Backend API
49
+ *
50
+ * Fetches all registered DocTypes from /api/meta/doctypes and converts
51
+ * them to Refine resource format for use in the application.
52
+ *
53
+ * @returns Object containing doctypes, resources, loading state, and error
54
+ *
55
+ * @example
56
+ * ```tsx
57
+ * const { resources, isLoading, error } = useDocTypes();
58
+ *
59
+ * if (isLoading) return <Spinner />;
60
+ *
61
+ * return <Refine resources={resources}>...</Refine>;
62
+ * ```
63
+ */
64
+ export declare function useDocTypes(): UseDocTypesResult;
65
+ export default useDocTypes;
66
+ //# sourceMappingURL=useDocTypes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useDocTypes.d.ts","sourceRoot":"","sources":["../../src/hooks/useDocTypes.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,cAAc,EAAE,OAAO,CAAC;IACxB,YAAY,EAAE,OAAO,CAAC;IACtB,YAAY,EAAE,OAAO,CAAC;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE;QACL,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,SAAS,CAAC,EAAE,OAAO,CAAC;KACrB,CAAC;CACH;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,gCAAgC;IAChC,QAAQ,EAAE,WAAW,EAAE,CAAC;IACxB,oDAAoD;IACpD,SAAS,EAAE,cAAc,EAAE,CAAC;IAC5B,oBAAoB;IACpB,SAAS,EAAE,OAAO,CAAC;IACnB,kBAAkB;IAClB,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IACpB,uBAAuB;IACvB,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC9B;AAUD;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,WAAW,IAAI,iBAAiB,CAoD/C;AAED,eAAe,WAAW,CAAC"}
@@ -0,0 +1,64 @@
1
+ /**
2
+ * useInlineEdit Hook
3
+ *
4
+ * Hook for managing inline edit state in tables.
5
+ * Per checklist 5.2: Inline Editing.
6
+ */
7
+ /**
8
+ * Cell being edited
9
+ */
10
+ export interface EditingCell {
11
+ rowId: string;
12
+ field: string;
13
+ originalValue: unknown;
14
+ }
15
+ /**
16
+ * Hook options
17
+ */
18
+ export interface UseInlineEditOptions {
19
+ /** Resource/DocType name */
20
+ resource: string;
21
+ /** Callback after successful save */
22
+ onSaveSuccess?: () => void;
23
+ /** Callback on error */
24
+ onError?: (error: Error) => void;
25
+ }
26
+ /**
27
+ * Hook return type
28
+ */
29
+ export interface UseInlineEditReturn {
30
+ /** Currently editing cell */
31
+ editingCell: EditingCell | null;
32
+ /** Start editing a cell */
33
+ startEdit: (rowId: string, field: string, value: unknown) => void;
34
+ /** Cancel current edit */
35
+ cancelEdit: () => void;
36
+ /** Save current edit */
37
+ saveEdit: (value: unknown) => Promise<void>;
38
+ /** Check if a cell is being edited */
39
+ isEditing: (rowId: string, field: string) => boolean;
40
+ /** Whether save is in progress */
41
+ isSaving: boolean;
42
+ /** Current error */
43
+ error: string | null;
44
+ }
45
+ /**
46
+ * useInlineEdit Hook
47
+ *
48
+ * @example
49
+ * ```tsx
50
+ * const { editingCell, startEdit, saveEdit, isEditing, isSaving } = useInlineEdit({
51
+ * resource: "Customer",
52
+ * onSaveSuccess: () => refetch(),
53
+ * });
54
+ *
55
+ * // In table cell
56
+ * {isEditing(row.id, "name") ? (
57
+ * <input onBlur={(e) => saveEdit(e.target.value)} />
58
+ * ) : (
59
+ * <div onClick={() => startEdit(row.id, "name", row.name)}>{row.name}</div>
60
+ * )}
61
+ * ```
62
+ */
63
+ export declare function useInlineEdit({ resource, onSaveSuccess, onError, }: UseInlineEditOptions): UseInlineEditReturn;
64
+ //# sourceMappingURL=useInlineEdit.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useInlineEdit.d.ts","sourceRoot":"","sources":["../../src/hooks/useInlineEdit.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,aAAa,EAAE,OAAO,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,4BAA4B;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,qCAAqC;IACrC,aAAa,CAAC,EAAE,MAAM,IAAI,CAAC;IAC3B,wBAAwB;IACxB,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;CAClC;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,6BAA6B;IAC7B,WAAW,EAAE,WAAW,GAAG,IAAI,CAAC;IAChC,2BAA2B;IAC3B,SAAS,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;IAClE,0BAA0B;IAC1B,UAAU,EAAE,MAAM,IAAI,CAAC;IACvB,wBAAwB;IACxB,QAAQ,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5C,sCAAsC;IACtC,SAAS,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC;IACrD,kCAAkC;IAClC,QAAQ,EAAE,OAAO,CAAC;IAClB,oBAAoB;IACpB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;CACtB;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,aAAa,CAAC,EAC5B,QAAQ,EACR,aAAa,EACb,OAAO,GACR,EAAE,oBAAoB,GAAG,mBAAmB,CAiE5C"}
@@ -0,0 +1,36 @@
1
+ /**
2
+ * Return type for useTranslation hook
3
+ */
4
+ export interface UseTranslationResult {
5
+ /** Translate a key with optional interpolation values */
6
+ t: (key: string, options?: Record<string, unknown>) => string;
7
+ /** Current language code (e.g., "en", "hi", "ta") */
8
+ language: string;
9
+ /** Change the current language */
10
+ changeLanguage: (lng: string) => Promise<void>;
11
+ /** Available languages */
12
+ languages: readonly string[];
13
+ /** Whether translations are ready/loaded */
14
+ ready: boolean;
15
+ }
16
+ /**
17
+ * Custom hook wrapper for react-i18next's useTranslation.
18
+ *
19
+ * Provides translation functions with app-specific defaults and utilities.
20
+ *
21
+ * @param namespace - Translation namespace (default: "common")
22
+ * @returns Translation functions and state
23
+ *
24
+ * @example
25
+ * ```tsx
26
+ * const { t } = useTranslation();
27
+ *
28
+ * // Basic translation
29
+ * <h1>{t("Welcome")}</h1>
30
+ *
31
+ * // With interpolation
32
+ * <p>{t("Hello, {{name}}!", { name: "John" })}</p>
33
+ * ```
34
+ */
35
+ export declare function useTranslation(namespace?: string): UseTranslationResult;
36
+ //# sourceMappingURL=useTranslation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useTranslation.d.ts","sourceRoot":"","sources":["../../src/hooks/useTranslation.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,yDAAyD;IACzD,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,MAAM,CAAC;IAC9D,qDAAqD;IACrD,QAAQ,EAAE,MAAM,CAAC;IACjB,kCAAkC;IAClC,cAAc,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/C,0BAA0B;IAC1B,SAAS,EAAE,SAAS,MAAM,EAAE,CAAC;IAC7B,4CAA4C;IAC5C,KAAK,EAAE,OAAO,CAAC;CAChB;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,cAAc,CAAC,SAAS,SAAW,GAAG,oBAAoB,CAUzE"}
@@ -0,0 +1,111 @@
1
+ /**
2
+ * UIMeta — Unified UI Metadata hook for Framework M.
3
+ *
4
+ * Fetches and caches the UIMeta for a DocType from the backend API.
5
+ * UIMeta is a single object that encapsulates form layout, list columns,
6
+ * and additional view configurations (Kanban, Tree, Calendar) — replacing
7
+ * the old FormMeta/ListMeta split.
8
+ *
9
+ * Defined in line with Phase 14 (ADR: Unified UIMeta Structure, Phase 14 §6.1):
10
+ * - `form`: Layout sections and tabs for the form view.
11
+ * - `list`: Columns, sorting, and row-level styling for the list view.
12
+ * - `additional_views`: Kanban, Tree, Calendar configurations.
13
+ * - Plugin adapters can extend UIMeta with custom namespaces (e.g., WMSMeta).
14
+ *
15
+ * @example
16
+ * ```tsx
17
+ * const { uiMeta, isLoading } = useUIMeta("SalesInvoice");
18
+ * if (uiMeta?.list?.columns) { ... }
19
+ * ```
20
+ */
21
+ /** A single form section with a label and ordered field names. */
22
+ export interface FormSection {
23
+ label: string;
24
+ fields: string[];
25
+ collapsible?: boolean;
26
+ columns?: 1 | 2 | 3;
27
+ }
28
+ /** A tab containing multiple form sections. */
29
+ export interface FormTab {
30
+ label: string;
31
+ sections: FormSection[];
32
+ }
33
+ /** Form view configuration: tabs and/or flat sections. */
34
+ export interface FormMeta {
35
+ tabs?: FormTab[];
36
+ sections?: FormSection[];
37
+ }
38
+ /** A single column in the list view. */
39
+ export interface ListColumn {
40
+ field: string;
41
+ label?: string;
42
+ width?: number | string;
43
+ sortable?: boolean;
44
+ visible?: boolean;
45
+ }
46
+ /** List view configuration: columns, default sort, row styling. */
47
+ export interface ListMeta {
48
+ columns: ListColumn[];
49
+ defaultSort?: {
50
+ field: string;
51
+ direction: "asc" | "desc";
52
+ };
53
+ /** JMESPath expression for row color (e.g. "status == 'Overdue'") */
54
+ rowColorExpr?: string;
55
+ rowColorValue?: string;
56
+ }
57
+ /** Kanban column definition. */
58
+ export interface KanbanConfig {
59
+ groupByField: string;
60
+ cardTitleField: string;
61
+ cardSubtitleField?: string;
62
+ swimlaneField?: string;
63
+ }
64
+ /** Tree view definition. */
65
+ export interface TreeConfig {
66
+ parentField: string;
67
+ labelField: string;
68
+ orderField?: string;
69
+ }
70
+ /** Calendar view definition. */
71
+ export interface CalendarConfig {
72
+ startField: string;
73
+ endField?: string;
74
+ titleField: string;
75
+ colorField?: string;
76
+ }
77
+ /** Additional (non-standard) views registered by plugins. */
78
+ export interface AdditionalViews {
79
+ kanban?: KanbanConfig;
80
+ tree?: TreeConfig;
81
+ calendar?: CalendarConfig;
82
+ /** Custom plugin-registered view namespaces (e.g. WMSMeta, MobileMeta) */
83
+ [key: string]: unknown;
84
+ }
85
+ /**
86
+ * Unified UI Metadata structure.
87
+ *
88
+ * A single object that all frontend views read from, replacing FormMeta/ListMeta.
89
+ * The `/api/meta/:doctype` endpoint returns this as `ui_meta`.
90
+ */
91
+ export interface UIMeta {
92
+ doctype: string;
93
+ form?: FormMeta;
94
+ list?: ListMeta;
95
+ additional_views?: AdditionalViews;
96
+ }
97
+ export interface UseUIMetaResult {
98
+ uiMeta: UIMeta | null;
99
+ isLoading: boolean;
100
+ error: string | null;
101
+ refetch: () => void;
102
+ }
103
+ /**
104
+ * Hook to fetch and cache UIMeta for a given DocType.
105
+ *
106
+ * Reads from `/api/meta/:doctype` (Backend Meta endpoint).
107
+ * Falls back to a minimal UIMeta on error.
108
+ * Plugin adapters may extend the `additional_views` namespace.
109
+ */
110
+ export declare function useUIMeta(doctype: string, baseUrl?: string, uiContext?: string): UseUIMetaResult;
111
+ //# sourceMappingURL=useUIMeta.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useUIMeta.d.ts","sourceRoot":"","sources":["../../src/hooks/useUIMeta.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAIH,kEAAkE;AAClE,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,OAAO,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;CACrB;AAED,+CAA+C;AAC/C,MAAM,WAAW,OAAO;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,WAAW,EAAE,CAAC;CACzB;AAED,0DAA0D;AAC1D,MAAM,WAAW,QAAQ;IACvB,IAAI,CAAC,EAAE,OAAO,EAAE,CAAC;IACjB,QAAQ,CAAC,EAAE,WAAW,EAAE,CAAC;CAC1B;AAED,wCAAwC;AACxC,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACxB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,mEAAmE;AACnE,MAAM,WAAW,QAAQ;IACvB,OAAO,EAAE,UAAU,EAAE,CAAC;IACtB,WAAW,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,KAAK,GAAG,MAAM,CAAA;KAAE,CAAC;IAC3D,qEAAqE;IACrE,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,gCAAgC;AAChC,MAAM,WAAW,YAAY;IAC3B,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,MAAM,CAAC;IACvB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,4BAA4B;AAC5B,MAAM,WAAW,UAAU;IACzB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,gCAAgC;AAChC,MAAM,WAAW,cAAc;IAC7B,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,6DAA6D;AAC7D,MAAM,WAAW,eAAe;IAC9B,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB,IAAI,CAAC,EAAE,UAAU,CAAC;IAClB,QAAQ,CAAC,EAAE,cAAc,CAAC;IAC1B,0EAA0E;IAC1E,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED;;;;;GAKG;AACH,MAAM,WAAW,MAAM;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,QAAQ,CAAC;IAChB,IAAI,CAAC,EAAE,QAAQ,CAAC;IAChB,gBAAgB,CAAC,EAAE,eAAe,CAAC;CACpC;AAED,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,SAAS,EAAE,OAAO,CAAC;IACnB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB;AAgBD;;;;;;GAMG;AACH,wBAAgB,SAAS,CACvB,OAAO,EAAE,MAAM,EACf,OAAO,GAAE,MAAW,EACpB,SAAS,CAAC,EAAE,MAAM,GACjB,eAAe,CA8CjB"}