forlogic-core 2.0.0 → 2.0.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 (186) hide show
  1. package/README.md +0 -46
  2. package/dist/assets/AccordionDoc-CGNlubG3.js +31 -0
  3. package/dist/assets/ActionButtonDoc-CYtkXR0k.js +47 -0
  4. package/dist/assets/ActionPlanDoc-BSuPRftQ.js +65 -0
  5. package/dist/assets/AlertDoc-Cpvxneqg.js +37 -0
  6. package/dist/assets/AliasUrlDoc-DIpUWf4Y.js +189 -0
  7. package/dist/assets/AppHeaderDoc-DNQErj_t.js +74 -0
  8. package/dist/assets/AppSidebarDoc-DkeQarDu.js +221 -0
  9. package/dist/assets/ApprovalFlowDoc-8YgXbhKJ.js +31 -0
  10. package/dist/assets/AuditLogDoc-BBvNcHIo.js +67 -0
  11. package/dist/assets/AuditTrailDoc-DgFHO-uo.js +17 -0
  12. package/dist/assets/AuthDoc-WIA_Aetl.js +200 -0
  13. package/dist/assets/AvatarDoc-B6go1C1T.js +11 -0
  14. package/dist/assets/BadgeDoc-BONhfqB_.js +36 -0
  15. package/dist/assets/BaseFormDoc-CuyUArcj.js +169 -0
  16. package/dist/assets/BodyContentDoc-CterHC1E.js +83 -0
  17. package/dist/assets/BreadcrumbDoc-Dwn9nLeO.js +75 -0
  18. package/dist/assets/ButtonDoc-BOjRseZT.js +41 -0
  19. package/dist/assets/ButtonGroupDoc-8IS6PPh4.js +7 -0
  20. package/dist/assets/CalendarDoc-CMwIEqgT.js +81 -0
  21. package/dist/assets/CardDoc-BZz1CVg2.js +49 -0
  22. package/dist/assets/ChartDoc-B5vZVtqD.js +76 -0
  23. package/dist/assets/CheckboxDoc-lAbYO9I5.js +55 -0
  24. package/dist/assets/ColorPickerDoc-Dpsprp4N.js +10 -0
  25. package/dist/assets/ColorsFoundationDoc-CCHeSL3p.js +13 -0
  26. package/dist/assets/ComboTreeDoc-D4dTkIt-.js +46 -0
  27. package/dist/assets/ComboboxDoc-CqqZPvZq.js +134 -0
  28. package/dist/assets/ComponentDocTemplate-CQbBhfvZ.js +1 -0
  29. package/dist/assets/ContextMenuDoc-D3jC-MVA.js +182 -0
  30. package/dist/assets/ContextsDoc-XFH0-JdS.js +211 -0
  31. package/dist/assets/CreateCrudPageDoc-CpuiWI-g.js +106 -0
  32. package/dist/assets/CrudActionBarDoc-wuBGXD9Y.js +112 -0
  33. package/dist/assets/CrudGridDoc-BYWqSXBH.js +85 -0
  34. package/dist/assets/CrudOverviewDoc-B_bk2a2t.js +14 -0
  35. package/dist/assets/CrudPrimitivesDoc-CxaTB94A.js +164 -0
  36. package/dist/assets/CrudTableDoc-Dga1VgCu.js +113 -0
  37. package/dist/assets/CustomFormFieldsDoc-C1hwwSl3.js +33 -0
  38. package/dist/assets/DashboardFormDoc-BUDCmrMl.js +49 -0
  39. package/dist/assets/DashboardGeneralViewDoc-Cyg1SIiG.js +71 -0
  40. package/dist/assets/DashboardGridDoc-BavePiRF.js +49 -0
  41. package/dist/assets/DashboardListDoc-CLyMA6UK.js +37 -0
  42. package/dist/assets/DashboardOverviewDoc-DRVvNIF1.js +35 -0
  43. package/dist/assets/DashboardPanelRendererDoc--mfwb8Nc.js +60 -0
  44. package/dist/assets/DashboardPanelsBasicDoc-BQ2V_52D.js +62 -0
  45. package/dist/assets/DashboardPanelsCartesianDoc-sy-hcVQY.js +75 -0
  46. package/dist/assets/DashboardPanelsSpecialDoc-DsIUCRRP.js +83 -0
  47. package/dist/assets/DashboardViewDoc-CtlCNlEF.js +45 -0
  48. package/dist/assets/DataListDoc-DUy88lCQ.js +13 -0
  49. package/dist/assets/DesignSystemHome-DHl9YtbH.js +1 -0
  50. package/dist/assets/DialogDoc-CMQqnTV-.js +981 -0
  51. package/dist/assets/DropdownMenuDoc-S7X9csGt.js +175 -0
  52. package/dist/assets/ElectronicSignatureDialogDoc-BfithaL_.js +57 -0
  53. package/dist/assets/EmptyStateDoc-CHGCiGIk.js +35 -0
  54. package/dist/assets/EnvironmentsDoc-DZHJZ2nm.js +96 -0
  55. package/dist/assets/ErrorBoundaryDoc-DoaAg68p.js +111 -0
  56. package/dist/assets/ExampleActionPlanPage-C0fIMZCD.js +1 -0
  57. package/dist/assets/ExampleAppDoc-DzIU81Fn.js +1 -0
  58. package/dist/assets/ExampleCard-DuLrb3t-.js +1 -0
  59. package/dist/assets/ExampleCrudReportsPage-M0pz6tdM.js +1 -0
  60. package/dist/assets/ExampleDashboardPage-CRG5r3Vw.js +1 -0
  61. package/dist/assets/ExampleIdeasPage-I84ZMLY4.js +1 -0
  62. package/dist/assets/ExampleImportWizardPage-h4YqrrSe.js +1 -0
  63. package/dist/assets/ExampleSettingsPage-CwdWqoaP.js +1 -0
  64. package/dist/assets/FileUploadDoc-9-UujFNX.js +34 -0
  65. package/dist/assets/FilterBar-DDTqqUfZ.js +1 -0
  66. package/dist/assets/FormDoc-CVES6n3d.js +81 -0
  67. package/dist/assets/FoundationOverview-DT0u11Gz.js +1 -0
  68. package/dist/assets/GridDoc-CbHFSILF.js +28 -0
  69. package/dist/assets/HooksDoc-Ctxdk6Wq.js +665 -0
  70. package/dist/assets/HoverCardDoc-8Wkaafdj.js +31 -0
  71. package/dist/assets/I18nDoc-D3Q2m7ik.js +167 -0
  72. package/dist/assets/IconPickerDoc-DZ26Gdpg.js +10 -0
  73. package/dist/assets/IconsFoundationDoc-xOxtC7CW.js +33 -0
  74. package/dist/assets/InputDoc-BhztAiuJ.js +211 -0
  75. package/dist/assets/LabelDoc-A4hmTRRV.js +42 -0
  76. package/dist/assets/LeadershipDoc-CqOSfWsP.js +452 -0
  77. package/dist/assets/MediaDoc-C78gvC8p.js +459 -0
  78. package/dist/assets/MenubarDoc-DCnmd2tO.js +165 -0
  79. package/dist/assets/ModuleAccessDoc-CmD5nHDp.js +153 -0
  80. package/dist/assets/ModulesDialogDoc-DVit1CA-.js +46 -0
  81. package/dist/assets/MultiselectPermissionsDoc-tlJMs04L.js +34 -0
  82. package/dist/assets/NavigationMenuDoc-q1fbc89j.js +116 -0
  83. package/dist/assets/OnboardingDialogDoc-3A3eBYrq.js +55 -0
  84. package/dist/assets/PaginationDoc-B8-bMz5J.js +27 -0
  85. package/dist/assets/PaginationDoc-BkGdxHL3.js +98 -0
  86. package/dist/assets/PlacesDoc-CKPO6ATs.js +226 -0
  87. package/dist/assets/PopoverDoc-CJPU4Ags.js +64 -0
  88. package/dist/assets/ProgressDoc-CpjbTL4o.js +29 -0
  89. package/dist/assets/QualiexUserFieldDoc-DDwumlRw.js +149 -0
  90. package/dist/assets/RadioGroupDoc-D6tSZz8G.js +57 -0
  91. package/dist/assets/RadiusDoc-B4xSnajw.js +7 -0
  92. package/dist/assets/ReportRequestListDoc-C0LIaU8P.js +15 -0
  93. package/dist/assets/RequiredFieldsCounterDoc-COesoSdx.js +58 -0
  94. package/dist/assets/ResizableDoc-CW0-XQuB.js +104 -0
  95. package/dist/assets/RichTextEditorDoc-C8c_XA9P.js +24 -0
  96. package/dist/assets/ScrollAreaDoc-BxtoAPaZ.js +28 -0
  97. package/dist/assets/SecurityDoc-wOVqpg2F.js +204 -0
  98. package/dist/assets/SelectDoc-C75gtY9D.js +80 -0
  99. package/dist/assets/SeparatorDoc-BjQBPB1P.js +4 -0
  100. package/dist/assets/ServicesDoc-CXTctwBl.js +308 -0
  101. package/dist/assets/ShadowsDoc-C6Lw8_x2.js +9 -0
  102. package/dist/assets/SignDoc-Bh5ZUg5x.js +66 -0
  103. package/dist/assets/SkeletonDoc-rTLGK5VE.js +54 -0
  104. package/dist/assets/SliderDoc-JMAMDub7.js +41 -0
  105. package/dist/assets/SpacingDoc-RljOrpwA.js +12 -0
  106. package/dist/assets/SplitButtonDoc-CvShUW3w.js +53 -0
  107. package/dist/assets/StepSelectorDoc-C-nAap9H.js +41 -0
  108. package/dist/assets/SwitchDoc-DLnqmkPr.js +56 -0
  109. package/dist/assets/TableDoc-B8EpWLVg.js +128 -0
  110. package/dist/assets/TabsDoc-DIBtl_uC.js +42 -0
  111. package/dist/assets/TeamSelectorDoc-B7OnCbL7.js +10 -0
  112. package/dist/assets/TermsOfUseDoc-Bb-pw08s.js +16 -0
  113. package/dist/assets/TextareaDoc-DGnqMqEC.js +46 -0
  114. package/dist/assets/ToastDoc-DjYyc7ae.js +157 -0
  115. package/dist/assets/ToggleDoc-C9ZOVjkY.js +51 -0
  116. package/dist/assets/TooltipDoc-BEx4l9-i.js +58 -0
  117. package/dist/assets/TruncatedCellDoc-BbV1bRSY.js +12 -0
  118. package/dist/assets/TypographyFoundationDoc-CUDYjRo9.js +7 -0
  119. package/dist/assets/UpdatesNotificationDoc-7nyjzLMJ.js +29 -0
  120. package/dist/assets/UsersGroupsSelectorDoc-C0KlTAL5.js +18 -0
  121. package/dist/assets/UtilitiesDoc-DGxaHVV1.js +145 -0
  122. package/dist/assets/ViewerDialogsDoc-CnTPTEz0.js +1 -0
  123. package/dist/assets/blocks-B6LrJeAM.js +1 -0
  124. package/dist/assets/building-DeVappnD.js +1 -0
  125. package/dist/assets/calendar-days-BQ0na5kM.js +1 -0
  126. package/dist/assets/check-check-C_-PJCJa.js +1 -0
  127. package/dist/assets/circle-plus-CpIcep-O.js +1 -0
  128. package/dist/assets/circle-x-jPpBPew0.js +1 -0
  129. package/dist/assets/clipboard-list-CXNPdciZ.js +1 -0
  130. package/dist/assets/cloud-upload-BEjzumjl.js +1 -0
  131. package/dist/assets/crown-CqNsQIsm.js +1 -0
  132. package/dist/assets/date-picker-BW3eGOe_.js +1 -0
  133. package/dist/assets/disabled-menu-item-C2YaMvSt.js +1 -0
  134. package/dist/assets/drawer-D5rflIcD.js +3 -0
  135. package/dist/assets/file-braces-DFb5X9so.js +1 -0
  136. package/dist/assets/file-pen-line-CyUGKkEN.js +1 -0
  137. package/dist/assets/git-branch-BcXv9mpp.js +1 -0
  138. package/dist/assets/globe-CpMIWAcv.js +1 -0
  139. package/dist/assets/hash-cQWdKjya.js +1 -0
  140. package/dist/assets/hourglass-BahQ3eDv.js +1 -0
  141. package/dist/assets/hover-card-R66N85sZ.js +1 -0
  142. package/dist/assets/iframe-dialog-V0mW5aBb.js +1 -0
  143. package/dist/assets/index-DkiftrvI.js +352 -0
  144. package/dist/assets/index-nmBjO9Th.css +1 -0
  145. package/dist/assets/life-buoy-ByXiPddz.js +1 -0
  146. package/dist/assets/loading-state-Cb5_t5uE.js +1 -0
  147. package/dist/assets/lucide-react-Cp3Yw3Zm.js +1 -0
  148. package/dist/assets/package-B3-pVvPM.js +1 -0
  149. package/dist/assets/pen-Bi_lmmKT.js +1 -0
  150. package/dist/assets/pin-DVsSl8QA.js +1 -0
  151. package/dist/assets/printer-BnJ8B6m-.js +1 -0
  152. package/dist/assets/radio-group-BHAaNGsm.js +1 -0
  153. package/dist/assets/server-CtzFTfKR.js +1 -0
  154. package/dist/assets/share-2-Dv8Do445.js +1 -0
  155. package/dist/assets/shield-check-CFXjOV_w.js +1 -0
  156. package/dist/assets/shield-x-DJTRfVux.js +1 -0
  157. package/dist/assets/slider-v9tXBSnB.js +1 -0
  158. package/dist/assets/smartphone-BSNR60L7.js +1 -0
  159. package/dist/assets/step-selector-ATTh_9Wa.js +1 -0
  160. package/dist/assets/text-align-start-qE-MbYYw.js +1 -0
  161. package/dist/assets/thumbs-up-D_XIW_uX.js +1 -0
  162. package/dist/assets/trash-DTWQwpwA.js +1 -0
  163. package/dist/assets/trending-up-jip5-leJ.js +1 -0
  164. package/dist/assets/useMockCrud-CN4vjyOZ.js +1 -0
  165. package/dist/assets/user-check-BlH3EDWK.js +1 -0
  166. package/dist/assets/user-plus-BqwXwD-c.js +1 -0
  167. package/dist/components/modules/ModulesContent.d.ts +7 -3
  168. package/dist/components/modules/ModulesFooterCards.d.ts +3 -1
  169. package/dist/components/modules/types.d.ts +3 -1
  170. package/dist/components/ui/button.d.ts +1 -1
  171. package/dist/components/ui/resizable.d.ts +1 -1
  172. package/dist/exports/crud.d.ts +5 -1
  173. package/dist/exports/ui.d.ts +8 -1
  174. package/dist/index.css +1 -1
  175. package/dist/index.css.map +1 -1
  176. package/dist/index.d.ts +1 -0
  177. package/dist/index.esm.js +1 -1
  178. package/dist/index.html +33 -0
  179. package/dist/index.js +1 -1
  180. package/dist/setup/favicon.d.ts +1 -0
  181. package/docs/PUBLISH.md +3 -3
  182. package/package.json +1 -5
  183. package/dist/README.md +0 -1079
  184. package/dist/bin/bootstrap.js +0 -40
  185. package/dist/bin/pull-docs.js +0 -186
  186. package/dist/docs/KNOWLEDGE.md +0 -109
@@ -1,40 +0,0 @@
1
- #!/usr/bin/env node
2
- import { execSync } from 'child_process';
3
- import * as path from 'path';
4
- import * as fs from 'fs';
5
-
6
- const skipUpdate = process.argv.includes("--skip-update");
7
- if (!skipUpdate) {
8
- try {
9
- console.log("\u{1F504} Verificando atualiza\xE7\xF5es do forlogic-core...");
10
- execSync("npm install forlogic-core@latest", { stdio: "inherit" });
11
- console.log("\u2705 forlogic-core atualizado com sucesso!\n");
12
- } catch {
13
- console.warn("\u26A0\uFE0F N\xE3o foi poss\xEDvel atualizar o forlogic-core automaticamente.");
14
- console.warn(" Continuando com a vers\xE3o instalada...\n");
15
- }
16
- } else {
17
- console.log("\u23ED\uFE0F --skip-update: pulando atualiza\xE7\xE3o do pacote.\n");
18
- }
19
- const syncScript = path.join(
20
- process.cwd(),
21
- "node_modules",
22
- "forlogic-core",
23
- "dist",
24
- "bin",
25
- "pull-docs.js"
26
- );
27
- if (!fs.existsSync(syncScript)) {
28
- console.error(`\u274C Script de sync n\xE3o encontrado: ${syncScript}`);
29
- console.error(" Verifique se forlogic-core est\xE1 instalado: npm install forlogic-core");
30
- process.exit(1);
31
- }
32
- try {
33
- execSync(`node "${syncScript}"`, {
34
- stdio: "inherit",
35
- cwd: process.cwd()
36
- });
37
- } catch {
38
- console.error("\u274C Falha ao executar o sync. Verifique os logs acima.");
39
- process.exit(1);
40
- }
@@ -1,186 +0,0 @@
1
- #!/usr/bin/env node
2
- import * as fs from 'fs';
3
- import * as path from 'path';
4
-
5
- function resolvePackagePath() {
6
- const directPath = path.join(process.cwd(), "node_modules", "forlogic-core");
7
- if (fs.existsSync(path.join(directPath, "package.json"))) {
8
- return directPath;
9
- }
10
- try {
11
- const pkgJsonPath = require.resolve("forlogic-core/package.json", {
12
- paths: [process.cwd()]
13
- });
14
- return path.dirname(pkgJsonPath);
15
- } catch {
16
- throw new Error(
17
- "Pacote forlogic-core n\xE3o encontrado.\nExecute: npm install forlogic-core"
18
- );
19
- }
20
- }
21
- function copyFile(src, dest) {
22
- if (!fs.existsSync(src)) {
23
- return false;
24
- }
25
- const destDir = path.dirname(dest);
26
- if (!fs.existsSync(destDir)) {
27
- fs.mkdirSync(destDir, { recursive: true });
28
- }
29
- fs.copyFileSync(src, dest);
30
- return true;
31
- }
32
- const README_MARKER = "<!-- managed by lib-update -->";
33
- function generateProjectReadme(readmePath, projectName, coreVersion) {
34
- const template = `${README_MARKER}
35
- # ${projectName}
36
-
37
- > Projeto baseado em [forlogic-core](https://www.npmjs.com/package/forlogic-core) v${coreVersion}
38
-
39
- ## Setup
40
-
41
- \`\`\`bash
42
- # Instalar depend\xEAncias
43
- npm install
44
-
45
- # Rodar em desenvolvimento
46
- npm run dev
47
-
48
- # Build de produ\xE7\xE3o
49
- npm run build
50
- \`\`\`
51
-
52
- ## Scripts Dispon\xEDveis
53
-
54
- | Comando | Descri\xE7\xE3o |
55
- |---------|-----------|
56
- | \`npm run dev\` | Servidor de desenvolvimento (Vite) |
57
- | \`npm run build\` | Build de produ\xE7\xE3o |
58
- | \`npm run preview\` | Preview do build |
59
- | \`npx lib-update\` | Sincronizar regras e docs do forlogic-core |
60
-
61
- ## Documenta\xE7\xE3o
62
-
63
- - \u{1F4D6} **Regras do projeto**: \`docs/KNOWLEDGE.md\`
64
- - \u{1F916} **Mem\xF3rias da IA**: \`.note/memory/\`
65
- - \u{1F3A8} **Design System**: Rota \`/ds\` no app (projeto Admin)
66
- - \u{1F4E6} **forlogic-core**: [README no npm](https://www.npmjs.com/package/forlogic-core)
67
-
68
- ## Conven\xE7\xF5es
69
-
70
- - Schema Supabase: \`common\` (nunca \`public\`)
71
- - Soft delete obrigat\xF3rio (coluna \`deleted_at\`)
72
- - Sempre usar componentes do \`forlogic-core\` antes de criar novos
73
- - RLS policies: nunca \`FOR DELETE\`
74
-
75
- ---
76
- *Gerado automaticamente por \`lib-update\`. \xDAltima sync: forlogic-core v${coreVersion}*
77
- ${README_MARKER}`;
78
- if (fs.existsSync(readmePath)) {
79
- const existing = fs.readFileSync(readmePath, "utf-8");
80
- if (existing.includes(README_MARKER)) {
81
- const markerRegex = new RegExp(
82
- `${README_MARKER.replace(/[.*+?^${}()|[\]\\]/g, "\\$&")}[\\s\\S]*?${README_MARKER.replace(/[.*+?^${}()|[\]\\]/g, "\\$&")}`,
83
- "m"
84
- );
85
- const updated2 = existing.replace(markerRegex, template);
86
- fs.writeFileSync(readmePath, updated2, "utf-8");
87
- return true;
88
- }
89
- const updated = template + "\n\n" + existing;
90
- fs.writeFileSync(readmePath, updated, "utf-8");
91
- return true;
92
- }
93
- const destDir = path.dirname(readmePath);
94
- if (!fs.existsSync(destDir)) {
95
- fs.mkdirSync(destDir, { recursive: true });
96
- }
97
- fs.writeFileSync(readmePath, template, "utf-8");
98
- return true;
99
- }
100
- async function syncDocs() {
101
- console.log("\u{1F4E5} Sincronizando regras e conven\xE7\xF5es do forlogic-core...\n");
102
- console.log("\u2139\uFE0F Detalhes de componentes, props e tipos s\xE3o lidos via cross-project.\n");
103
- let pkgPath;
104
- try {
105
- pkgPath = resolvePackagePath();
106
- } catch (err) {
107
- console.error(`\u274C ${err.message}`);
108
- process.exit(1);
109
- }
110
- const pkgJson = JSON.parse(fs.readFileSync(path.join(pkgPath, "package.json"), "utf-8"));
111
- console.log(`\u{1F4E6} forlogic-core v${pkgJson.version}
112
- `);
113
- const projectRoot = process.cwd();
114
- let successCount = 0;
115
- let errorCount = 0;
116
- const filesToCopy = [
117
- { src: path.join(pkgPath, "docs", "KNOWLEDGE.md"), dest: path.join(projectRoot, "docs", "KNOWLEDGE.md"), label: "docs/KNOWLEDGE.md" }
118
- ];
119
- for (const file of filesToCopy) {
120
- if (copyFile(file.src, file.dest)) {
121
- const size = fs.statSync(file.dest).size;
122
- console.log(`\u2705 ${file.label} (${(size / 1024).toFixed(2)} KB)`);
123
- successCount++;
124
- } else {
125
- console.warn(`\u26A0\uFE0F ${file.label} \u2014 n\xE3o encontrado no pacote`);
126
- errorCount++;
127
- }
128
- }
129
- const obsoleteFiles = [
130
- "docs/DESIGN_SYSTEM.md",
131
- "docs/COMPONENTS.md",
132
- "docs/PATTERNS.md",
133
- ".note/memory/rules/supabase-schema-rule.md",
134
- ".note/memory/rules/supabase-import-rule.md",
135
- ".note/memory/rules/lib-first-rule.md",
136
- ".note/memory/rules/no-auto-index-rule.md",
137
- ".note/memory/rules/no-delete-policy-rule.md",
138
- ".note/memory/rules/no-env-modification-rule.md",
139
- ".note/memory/rules/rls-syntax-rule.md",
140
- ".note/memory/rules/sql-naming-rule.md",
141
- ".note/memory/rules/i18n-import-rule.md",
142
- ".note/memory/patterns/deprecated-patterns.md",
143
- ".note/memory/patterns/spa-navigation-pattern.md",
144
- ".note/memory/architecture/documentation-strategy.md",
145
- // Pastas reestruturadas (v2 — padronização 3 pastas)
146
- ".note/memory/rules/doc-sync-rule.md",
147
- ".note/memory/ui/components/combo-tree.md",
148
- ".note/memory/ui/design-system/documentation-standard.md",
149
- ".note/memory/documentation/consolidated-components-registry.md"
150
- ];
151
- let cleanedCount = 0;
152
- for (const relPath of obsoleteFiles) {
153
- const fullPath = path.join(projectRoot, relPath);
154
- if (fs.existsSync(fullPath)) {
155
- fs.unlinkSync(fullPath);
156
- console.log(`\u{1F5D1}\uFE0F ${relPath} (removido \u2014 obsoleto)`);
157
- cleanedCount++;
158
- }
159
- }
160
- if (cleanedCount > 0) {
161
- successCount++;
162
- }
163
- const projectReadmePath = path.join(projectRoot, "README.md");
164
- const projectName = path.basename(projectRoot);
165
- const readmeGenerated = generateProjectReadme(projectReadmePath, projectName, pkgJson.version);
166
- if (readmeGenerated) {
167
- console.log(`\u2705 README.md (gerado/atualizado)`);
168
- successCount++;
169
- }
170
- console.log("\n\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501");
171
- console.log(`\u{1F389} Sincroniza\xE7\xE3o conclu\xEDda!`);
172
- console.log(` \u2705 Sucesso: ${successCount}`);
173
- if (errorCount > 0) {
174
- console.log(` \u26A0\uFE0F Avisos: ${errorCount}`);
175
- }
176
- console.log("");
177
- if (successCount > 0) {
178
- console.log("\u{1F4A1} Arquivos sincronizados:");
179
- console.log(" docs/KNOWLEDGE.md \u2014 Regras cr\xEDticas + mapa de m\xF3dulos (fonte \xFAnica de verdade)");
180
- console.log(" README.md \u2014 Template com setup, scripts e links");
181
- console.log("");
182
- console.log("\u{1F4D6} Documenta\xE7\xE3o de componentes, props e padr\xF5es s\xE3o lidos");
183
- console.log(" diretamente do forlogic-core via cross-project.\n");
184
- }
185
- }
186
- syncDocs();
@@ -1,109 +0,0 @@
1
- # KNOWLEDGE — Regras Críticas do Projeto
2
-
3
- > 🤖 **Para IA**: Detalhes de componentes, props e tipos → ler do projeto **Admin** via cross-project.
4
- > Consulte `.note/memory/` para padrões de layout e componentes.
5
-
6
- ---
7
-
8
- ## 0. Schema do Projeto
9
-
10
- **SCHEMA = `common`**
11
-
12
- ☝️ Este é o **único local** onde o schema é definido. Toda query Supabase
13
- **DEVE** usar `.schema('<valor acima>')`. Altere **apenas aqui** ao configurar
14
- um novo projeto.
15
-
16
- ```ts
17
- // ✅ usar o schema definido acima
18
- supabase.schema('common').from('tabela').select('*');
19
- // ❌ vai falhar (sem schema)
20
- supabase.from('tabela').select('*');
21
- ```
22
-
23
- ---
24
-
25
- ## 1. Regras Invioláveis
26
-
27
- | Regra | Detalhe |
28
- |-------|---------|
29
- | Schema obrigatório | `.schema()` com o schema do projeto (seção 0) em toda query |
30
- | Sem DELETE físico | Soft delete com `deleted_at` + policy `FOR UPDATE` |
31
- | Sem índices automáticos | Apenas com aprovação explícita |
32
- | Sem modificar `.env` | Apenas com autorização do usuário |
33
- | Sem hardcoded admin | Nunca localStorage/sessionStorage para roles |
34
- | Lib-first | Usar `forlogic-core` antes de criar componente |
35
- | Import do Supabase | Sempre `getSupabaseClient()` de `forlogic-core`, nunca `@/integrations/supabase/client` |
36
-
37
- ---
38
-
39
- ## 2. RLS — Resumo de Sintaxe
40
-
41
- - `SELECT` → `USING` | `INSERT` → `WITH CHECK` | `UPDATE` → `USING` + `WITH CHECK`
42
- - **Nunca** `FOR DELETE`
43
- - **Sempre** `(SELECT auth.jwt())` com parênteses (evita re-execução por linha)
44
- - Padrão multi-tenant: `((SELECT auth.jwt()) ->> 'alias'::text) = alias`
45
-
46
- ---
47
-
48
- ## 3. Convenções SQL
49
-
50
- | Tipo | Padrão | Exemplo |
51
- |------|--------|---------|
52
- | FK | `id_<singular>` | `id_process` |
53
- | Boolean | `is_` / `has_` | `is_active` |
54
- | Timestamps | `created_at`, `updated_at`, `deleted_at` | — |
55
- | Tabelas | plural, snake_case | `processes` |
56
-
57
- ---
58
-
59
- ## 4. Mapa de Módulos (forlogic-core)
60
-
61
- > Para props, tipos e implementação: ler do projeto **Admin** (forlogic-core) via cross-project.
62
-
63
- | Módulo | Caminho | O que contém |
64
- |--------|---------|--------------|
65
- | **UI Components** | `lib/components/ui/` | Button, Dialog, Input, Select, Combobox, Badge, Tabs, etc. |
66
- | **Layout** | `lib/components/layout/` | AppLayout, AppHeader, AppSidebar, BodyContent |
67
- | **CRUD** | `lib/crud/` | createCrudPage, CrudTable, CrudGrid, BaseForm, ActionBar |
68
- | **CRUD Primitives** | `lib/crud/primitives/` | Table, FilterBar, Pagination, ActionMenu, TreeTable |
69
- | **Auth** | `lib/auth/` | AuthContext, ProtectedRoute, LoginPage, TokenManager |
70
- | **Módulos** | `lib/components/modules/` | ModulesDialog, ModuleGrid, ModuleAccessGuard |
71
- | **Places** | `lib/places/` | PlacesList, PlaceCard, ManageAccessModal |
72
- | **Leadership** | `lib/leadership/` | LeadershipPage, LeadershipDialog |
73
- | **Media** | `lib/media/` | ImageEditor, VideoEditor, useMediaUpload |
74
- | **Sign** | `lib/sign/` | SignWidget, D4SignWidget, SignConfigForm |
75
- | **Qualiex** | `lib/qualiex/` | QualiexUserField, useQualiexUsers |
76
- | **i18n** | `lib/i18n/` | Namespaces core/app, JSONs por idioma, addAppTranslations, formatadores |
77
- | **Config** | `lib/config/` | Environments, CRUD defaults, mensagens |
78
- | **Services** | `lib/services/` | BaseService, EmailService, ErrorService |
79
- | **Hooks** | `lib/hooks/` | useDebounce, useWizard, useModuleAccess, useColumnResize |
80
- | **Providers** | `lib/providers/` | CoreProviders (setup simplificado) |
81
- | **Vite** | `lib/vite/` | create-config, CSP, security headers |
82
- | **Tailwind** | `lib/tailwind/` | Preset compartilhado |
83
-
84
- ---
85
-
86
- ## 5. Padrões Deprecated
87
-
88
- | ❌ Não usar | ✅ Usar |
89
- |------------|--------|
90
- | `BulkActionBar` separado | Dropdown no `CrudActionBar` |
91
- | `<MoreHorizontal>` genérico | `ActionButton` |
92
- | Paginação manual | `CrudPrimitivePagination` |
93
- | `StatusSelect` | `Combobox` |
94
- | `DeleteConfirmationDialog` | `Dialog` |
95
- | `Searchbar` | `Input` com ícone |
96
-
97
- ---
98
-
99
- ## 6. Fontes de Contexto
100
-
101
- | Fonte | Caminho | Conteúdo |
102
- |-------|---------|----------|
103
- | Memory components | `.note/memory/components/` | Props, variantes e exemplos de componentes |
104
- | Memory patterns | `.note/memory/patterns/` | Layouts, setup, convenções, regras do projeto |
105
- | Memory features | `.note/memory/features/` | Contexto de features específicas do projeto |
106
- | Código-fonte da lib | Cross-project → projeto **Admin** (forlogic-core) | Props, tipos, implementação |
107
- | Design System (visual) | Rota `/ds` no app do projeto **Admin** | Documentação interativa |
108
-
109
- > ℹ️ `.note/memory/` usa 3 pastas padronizadas: `components/`, `patterns/`, `features/`. `KNOWLEDGE.md` é a fonte única de verdade para regras e convenções.