@oondemand/oon-core-front 0.7.34 → 0.7.36
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/dist/{chunk-GIDNQRK6.js → chunk-4J7L5PIO.js} +68 -24
- package/dist/chunk-4J7L5PIO.js.map +1 -0
- package/dist/{chunk-B4QFRGOK.js → chunk-74ATSPSO.js} +24 -24
- package/dist/chunk-74ATSPSO.js.map +1 -0
- package/dist/{chunk-ALZCHGGI.js → chunk-H4RCPPT3.js} +2 -2
- package/dist/chunk-H4RCPPT3.js.map +1 -0
- package/dist/{chunk-32GGDIWB.js → chunk-HS3Q4SCM.js} +2 -2
- package/dist/{chunk-VC6NTMZS.js → chunk-O4M3YJRY.js} +23 -20
- package/dist/chunk-O4M3YJRY.js.map +1 -0
- package/dist/{chunk-WZD4ACMX.js → chunk-RUE7ZDZS.js} +2 -2
- package/dist/hooks.js +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.js +6 -6
- package/dist/routing.js +2 -2
- package/dist/testing.js +5 -5
- package/dist/theme.js +1 -1
- package/dist/{ui-D1u6ze-h.d.ts → ui-BBEP4aNZ.d.ts} +5 -0
- package/dist/ui.d.ts +1 -1
- package/dist/ui.js +3 -3
- package/package.json +1 -1
- package/dist/chunk-ALZCHGGI.js.map +0 -1
- package/dist/chunk-B4QFRGOK.js.map +0 -1
- package/dist/chunk-GIDNQRK6.js.map +0 -1
- package/dist/chunk-VC6NTMZS.js.map +0 -1
- /package/dist/{chunk-32GGDIWB.js.map → chunk-HS3Q4SCM.js.map} +0 -0
- /package/dist/{chunk-WZD4ACMX.js.map → chunk-RUE7ZDZS.js.map} +0 -0
|
@@ -8,7 +8,7 @@ function LoadingScreen({
|
|
|
8
8
|
}) {
|
|
9
9
|
return /* @__PURE__ */ jsxs(Flex, { direction: "column", align: "center", justify: "center", minH: "60vh", gap: 4, children: [
|
|
10
10
|
/* @__PURE__ */ jsx(Spinner, { size: "lg" }),
|
|
11
|
-
message ? /* @__PURE__ */ jsx(Text, { color: "
|
|
11
|
+
message ? /* @__PURE__ */ jsx(Text, { color: "text.muted", fontSize: "sm", textAlign: "center", children: message }) : null,
|
|
12
12
|
actionLabel && onAction ? /* @__PURE__ */ jsx(Button, { size: "sm", variant: "outline", onClick: onAction, children: actionLabel }) : null
|
|
13
13
|
] });
|
|
14
14
|
}
|
|
@@ -16,4 +16,4 @@ function LoadingScreen({
|
|
|
16
16
|
export {
|
|
17
17
|
LoadingScreen
|
|
18
18
|
};
|
|
19
|
-
//# sourceMappingURL=chunk-
|
|
19
|
+
//# sourceMappingURL=chunk-H4RCPPT3.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/shell/LoadingScreen.tsx"],"sourcesContent":["import { Button, Flex, Spinner, Text } from \"@chakra-ui/react\";\n\ninterface LoadingScreenProps {\n message?: string;\n actionLabel?: string;\n onAction?: () => void;\n}\n\n/** Tela de carregamento/estado neutro reutilizada por guards e Suspense. */\nexport function LoadingScreen({\n message,\n actionLabel,\n onAction,\n}: LoadingScreenProps) {\n return (\n <Flex direction=\"column\" align=\"center\" justify=\"center\" minH=\"60vh\" gap={4}>\n <Spinner size=\"lg\" />\n {message ? (\n <Text color=\"text.muted\" fontSize=\"sm\" textAlign=\"center\">\n {message}\n </Text>\n ) : null}\n {actionLabel && onAction ? (\n <Button size=\"sm\" variant=\"outline\" onClick={onAction}>\n {actionLabel}\n </Button>\n ) : null}\n </Flex>\n );\n}\n"],"mappings":";AAAA,SAAS,QAAQ,MAAM,SAAS,YAAY;AAexC,SACE,KADF;AANG,SAAS,cAAc;AAAA,EAC5B;AAAA,EACA;AAAA,EACA;AACF,GAAuB;AACrB,SACE,qBAAC,QAAK,WAAU,UAAS,OAAM,UAAS,SAAQ,UAAS,MAAK,QAAO,KAAK,GACxE;AAAA,wBAAC,WAAQ,MAAK,MAAK;AAAA,IAClB,UACC,oBAAC,QAAK,OAAM,cAAa,UAAS,MAAK,WAAU,UAC9C,mBACH,IACE;AAAA,IACH,eAAe,WACd,oBAAC,UAAO,MAAK,MAAK,SAAQ,WAAU,SAAS,UAC1C,uBACH,IACE;AAAA,KACN;AAEJ;","names":[]}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
LoadingScreen
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-H4RCPPT3.js";
|
|
4
4
|
|
|
5
5
|
// src/routing.tsx
|
|
6
6
|
import { lazy, Suspense } from "react";
|
|
@@ -68,4 +68,4 @@ export {
|
|
|
68
68
|
routeElement,
|
|
69
69
|
navigation
|
|
70
70
|
};
|
|
71
|
-
//# sourceMappingURL=chunk-
|
|
71
|
+
//# sourceMappingURL=chunk-HS3Q4SCM.js.map
|
|
@@ -62,35 +62,38 @@ var oonThemeConfig = defineConfig({
|
|
|
62
62
|
}
|
|
63
63
|
},
|
|
64
64
|
semanticTokens: {
|
|
65
|
+
// Cada token tem o valor do tema claro (base) e do escuro (_dark, classe `dark` no <html>).
|
|
66
|
+
// O shell usa só estes tokens, para o menu e o cabeçalho acompanharem o tema escolhido pelo App.
|
|
65
67
|
colors: {
|
|
66
68
|
brand: {
|
|
67
|
-
solid: { value: "{colors.brand.500}" },
|
|
68
|
-
contrast: { value: "white" },
|
|
69
|
-
fg: { value: "{colors.brand.700}" },
|
|
70
|
-
muted: { value: "{colors.brand.50}" },
|
|
71
|
-
subtle: { value: "{colors.brand.75}" },
|
|
72
|
-
emphasized: { value: "{colors.brand.600}" },
|
|
73
|
-
focusRing: { value: "{colors.brand.500}" }
|
|
69
|
+
solid: { value: { base: "{colors.brand.500}", _dark: "{colors.brand.300}" } },
|
|
70
|
+
contrast: { value: { base: "white", _dark: "{colors.brand.900}" } },
|
|
71
|
+
fg: { value: { base: "{colors.brand.700}", _dark: "{colors.brand.200}" } },
|
|
72
|
+
muted: { value: { base: "{colors.brand.50}", _dark: "{colors.brand.850}" } },
|
|
73
|
+
subtle: { value: { base: "{colors.brand.75}", _dark: "{colors.brand.800}" } },
|
|
74
|
+
emphasized: { value: { base: "{colors.brand.600}", _dark: "{colors.brand.200}" } },
|
|
75
|
+
focusRing: { value: { base: "{colors.brand.500}", _dark: "{colors.brand.300}" } }
|
|
74
76
|
},
|
|
75
77
|
surface: {
|
|
76
|
-
canvas: { value: "{colors.gray.50}" },
|
|
77
|
-
panel: { value: "white" },
|
|
78
|
-
elevated: { value: "white" }
|
|
78
|
+
canvas: { value: { base: "{colors.gray.50}", _dark: "{colors.gray.950}" } },
|
|
79
|
+
panel: { value: { base: "white", _dark: "{colors.gray.900}" } },
|
|
80
|
+
elevated: { value: { base: "white", _dark: "{colors.gray.800}" } },
|
|
81
|
+
hover: { value: { base: "#F8F9FA", _dark: "{colors.gray.800}" } }
|
|
79
82
|
},
|
|
80
83
|
text: {
|
|
81
|
-
primary: { value: "{colors.gray.800}" },
|
|
82
|
-
muted: { value: "{colors.gray.600}" },
|
|
83
|
-
inverse: { value: "white" }
|
|
84
|
+
primary: { value: { base: "{colors.gray.800}", _dark: "{colors.gray.100}" } },
|
|
85
|
+
muted: { value: { base: "{colors.gray.600}", _dark: "{colors.gray.400}" } },
|
|
86
|
+
inverse: { value: { base: "white", _dark: "{colors.gray.900}" } }
|
|
84
87
|
},
|
|
85
88
|
border: {
|
|
86
|
-
default: { value: "{colors.gray.200}" },
|
|
87
|
-
strong: { value: "{colors.gray.300}" }
|
|
89
|
+
default: { value: { base: "{colors.gray.200}", _dark: "{colors.gray.700}" } },
|
|
90
|
+
strong: { value: { base: "{colors.gray.300}", _dark: "{colors.gray.600}" } }
|
|
88
91
|
},
|
|
89
92
|
status: {
|
|
90
|
-
success: { value: "{colors.green.600}" },
|
|
91
|
-
warning: { value: "{colors.orange.600}" },
|
|
92
|
-
danger: { value: "{colors.red.600}" },
|
|
93
|
-
info: { value: "{colors.blue.600}" }
|
|
93
|
+
success: { value: { base: "{colors.green.600}", _dark: "{colors.green.400}" } },
|
|
94
|
+
warning: { value: { base: "{colors.orange.600}", _dark: "{colors.orange.400}" } },
|
|
95
|
+
danger: { value: { base: "{colors.red.600}", _dark: "{colors.red.400}" } },
|
|
96
|
+
info: { value: { base: "{colors.blue.600}", _dark: "{colors.blue.400}" } }
|
|
94
97
|
}
|
|
95
98
|
}
|
|
96
99
|
}
|
|
@@ -184,4 +187,4 @@ export {
|
|
|
184
187
|
OonThemeProvider,
|
|
185
188
|
useOonTheme
|
|
186
189
|
};
|
|
187
|
-
//# sourceMappingURL=chunk-
|
|
190
|
+
//# sourceMappingURL=chunk-O4M3YJRY.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/config/theme.ts","../src/config/ThemeProvider.tsx"],"sourcesContent":["import { createSystem, defaultConfig, defineConfig, mergeConfigs } from \"@chakra-ui/react\";\nimport type { SystemConfig } from \"@chakra-ui/react\";\n\nexport type OonThemeDensity = \"compact\" | \"comfortable\";\nexport type OonThemeContrast = \"standard\" | \"high\";\n\nexport interface OonThemeDefinition {\n id: string;\n label?: string;\n extends?: OonThemeDefinition;\n density?: OonThemeDensity;\n contrast?: OonThemeContrast;\n /** Configuração pública do Chakra baseada em tokens, sem CSS remoto. */\n config?: Record<string, unknown>;\n}\n\nexport function createOonTheme<const T extends OonThemeDefinition>(definition: T): T {\n if (!/^[a-z][a-z0-9-]*$/.test(definition?.id || \"\")) {\n throw new Error(\"createOonTheme: id deve usar letras minúsculas, números e hífen.\");\n }\n if (definition.extends?.id === definition.id) {\n throw new Error(`createOonTheme: o tema ${definition.id} não pode estender a si mesmo.`);\n }\n return Object.freeze({ ...definition });\n}\n\n/**\n * Identidade visual padrão das Centrais Oon, consolidada a partir da Central\n * Minexco/CST: azul operacional, superfícies claras, tipografia Poppins e alta\n * densidade de informação.\n */\nexport const brandColors = {\n brand: {\n 25: { value: \"#F8FCFF\" },\n 50: { value: \"#EEF8FD\" },\n 75: { value: \"#E2F3FB\" },\n 100: { value: \"#C7E8F7\" },\n 200: { value: \"#82C8E8\" },\n 300: { value: \"#3FA6E0\" },\n 350: { value: \"#0F8DD0\" },\n 400: { value: \"#0580B9\" },\n 500: { value: \"#0474AF\" },\n 600: { value: \"#036491\" },\n 700: { value: \"#014364\" },\n 800: { value: \"#073A52\" },\n 850: { value: \"#082F3F\" },\n 900: { value: \"#07262E\" },\n },\n} as const;\n\nconst oonThemeConfig = defineConfig({\n globalCss: {\n \"html, body, #root\": {\n minHeight: \"100%\",\n },\n body: {\n margin: 0,\n bg: \"#F8F9FA\",\n color: \"#24323A\",\n fontFamily: \"Poppins, Inter, system-ui, sans-serif\",\n fontSize: \"14px\",\n },\n \"button, input, select, textarea\": {\n fontFamily: \"inherit\",\n },\n \"::selection\": {\n bg: \"#C7E8F7\",\n color: \"#07262E\",\n },\n },\n theme: {\n tokens: {\n colors: brandColors,\n fonts: {\n body: { value: \"Poppins, Inter, system-ui, sans-serif\" },\n heading: { value: \"Poppins, Inter, system-ui, sans-serif\" },\n },\n radii: {\n oon: { value: \"10px\" },\n },\n shadows: {\n oon: { value: \"0 8px 24px rgba(7, 38, 46, 0.08)\" },\n },\n },\n semanticTokens: {\n // Cada token tem o valor do tema claro (base) e do escuro (_dark, classe `dark` no <html>).\n // O shell usa só estes tokens, para o menu e o cabeçalho acompanharem o tema escolhido pelo App.\n colors: {\n brand: {\n solid: { value: { base: \"{colors.brand.500}\", _dark: \"{colors.brand.300}\" } },\n contrast: { value: { base: \"white\", _dark: \"{colors.brand.900}\" } },\n fg: { value: { base: \"{colors.brand.700}\", _dark: \"{colors.brand.200}\" } },\n muted: { value: { base: \"{colors.brand.50}\", _dark: \"{colors.brand.850}\" } },\n subtle: { value: { base: \"{colors.brand.75}\", _dark: \"{colors.brand.800}\" } },\n emphasized: { value: { base: \"{colors.brand.600}\", _dark: \"{colors.brand.200}\" } },\n focusRing: { value: { base: \"{colors.brand.500}\", _dark: \"{colors.brand.300}\" } },\n },\n surface: {\n canvas: { value: { base: \"{colors.gray.50}\", _dark: \"{colors.gray.950}\" } },\n panel: { value: { base: \"white\", _dark: \"{colors.gray.900}\" } },\n elevated: { value: { base: \"white\", _dark: \"{colors.gray.800}\" } },\n hover: { value: { base: \"#F8F9FA\", _dark: \"{colors.gray.800}\" } },\n },\n text: {\n primary: { value: { base: \"{colors.gray.800}\", _dark: \"{colors.gray.100}\" } },\n muted: { value: { base: \"{colors.gray.600}\", _dark: \"{colors.gray.400}\" } },\n inverse: { value: { base: \"white\", _dark: \"{colors.gray.900}\" } },\n },\n border: {\n default: { value: { base: \"{colors.gray.200}\", _dark: \"{colors.gray.700}\" } },\n strong: { value: { base: \"{colors.gray.300}\", _dark: \"{colors.gray.600}\" } },\n },\n status: {\n success: { value: { base: \"{colors.green.600}\", _dark: \"{colors.green.400}\" } },\n warning: { value: { base: \"{colors.orange.600}\", _dark: \"{colors.orange.400}\" } },\n danger: { value: { base: \"{colors.red.600}\", _dark: \"{colors.red.400}\" } },\n info: { value: { base: \"{colors.blue.600}\", _dark: \"{colors.blue.400}\" } },\n },\n },\n },\n },\n});\n\nexport const oonDefaultTheme = createOonTheme({\n id: \"oon-default\",\n label: \"Oon\",\n density: \"comfortable\",\n contrast: \"standard\",\n config: oonThemeConfig as unknown as Record<string, unknown>,\n});\n\nfunction isThemeDefinition(value: unknown): value is OonThemeDefinition {\n return Boolean(value) && typeof value === \"object\" && typeof (value as { id?: unknown }).id === \"string\";\n}\n\nfunction densityConfig(density?: OonThemeDensity): SystemConfig {\n if (density !== \"compact\") return defineConfig({});\n return defineConfig({ globalCss: { body: { fontSize: \"13px\" }, \"button, input, select, textarea\": { minH: \"32px\" } } });\n}\n\nfunction contrastConfig(contrast?: OonThemeContrast): SystemConfig {\n if (contrast !== \"high\") return defineConfig({});\n return defineConfig({\n theme: {\n semanticTokens: {\n colors: {\n text: { primary: { value: \"{colors.black}\" }, muted: { value: \"{colors.gray.800}\" } },\n border: { default: { value: \"{colors.gray.500}\" }, strong: { value: \"{colors.black}\" } },\n },\n },\n },\n });\n}\n\nfunction definitionConfig(theme: OonThemeDefinition): SystemConfig {\n const inherited = theme.extends ? definitionConfig(theme.extends) : defineConfig({});\n const own = defineConfig((theme.config ?? {}) as SystemConfig);\n return mergeConfigs(inherited, own, densityConfig(theme.density), contrastConfig(theme.contrast));\n}\n\n/**\n * Constrói o system do Chakra. O padrão Minexco é aplicado primeiro e pode ser\n * sobrescrito por uma identidade específica da Central sem reescrever o shell.\n */\nexport function createOonSystem(themeOverride?: OonThemeDefinition | Record<string, unknown>) {\n const base = mergeConfigs(defaultConfig, oonThemeConfig);\n const config = themeOverride\n ? mergeConfigs(base, isThemeDefinition(themeOverride)\n ? definitionConfig(themeOverride)\n : defineConfig(themeOverride as SystemConfig))\n : base;\n return createSystem(config);\n}\n\nexport const oonSystem = createOonSystem();\n","import { ChakraProvider } from \"@chakra-ui/react\";\nimport { createContext, type ReactNode, useContext, useMemo, useState } from \"react\";\nimport type { OonCoreFrontConfig } from \"../types\";\nimport type { OonThemeDefinition } from \"./theme\";\nimport { createOonSystem } from \"./theme\";\n\nexport interface OonThemeContextValue {\n themes: readonly OonThemeDefinition[];\n currentThemeId?: string;\n setTheme(themeId: string): void;\n}\n\nconst OonThemeContext = createContext<OonThemeContextValue | null>(null);\n\nfunction isThemeDefinition(value: unknown): value is OonThemeDefinition {\n return Boolean(value) && typeof value === \"object\" && typeof (value as { id?: unknown }).id === \"string\";\n}\n\nexport function OonThemeProvider({ config, children }: { config: OonCoreFrontConfig; children: ReactNode }) {\n const themes = useMemo(() => {\n const items = [...(config.themes ?? [])];\n const primaryTheme = config.theme;\n if (isThemeDefinition(primaryTheme) && !items.some((item) => item.id === primaryTheme.id)) items.unshift(primaryTheme);\n return items;\n }, [config.theme, config.themes]);\n const storageKey = `oon:theme:${config.app.id}`;\n const initial = (() => {\n const stored = typeof window !== \"undefined\" ? window.localStorage.getItem(storageKey) : null;\n if (stored && themes.some((item) => item.id === stored)) return stored;\n if (config.defaultThemeId && themes.some((item) => item.id === config.defaultThemeId)) return config.defaultThemeId;\n return themes[0]?.id;\n })();\n const [currentThemeId, setCurrentThemeId] = useState<string | undefined>(initial);\n const selected = themes.find((item) => item.id === currentThemeId);\n const system = useMemo(() => createOonSystem(selected ?? config.theme), [selected, config.theme]);\n const value = useMemo<OonThemeContextValue>(() => ({\n themes,\n currentThemeId,\n setTheme(themeId) {\n if (!themes.some((item) => item.id === themeId)) throw new Error(`Tema Oon desconhecido: ${themeId}.`);\n setCurrentThemeId(themeId);\n if (typeof window !== \"undefined\") window.localStorage.setItem(storageKey, themeId);\n },\n }), [themes, currentThemeId, storageKey]);\n\n return <OonThemeContext.Provider value={value}><ChakraProvider value={system}>{children}</ChakraProvider></OonThemeContext.Provider>;\n}\n\nexport function useOonTheme(): OonThemeContextValue {\n const value = useContext(OonThemeContext);\n if (!value) throw new Error(\"useOonTheme deve ser usado dentro do OonCore.\");\n return value;\n}\n"],"mappings":"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","names":["isThemeDefinition"]}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
CoreCollection
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-4J7L5PIO.js";
|
|
4
4
|
import {
|
|
5
5
|
useOonApi
|
|
6
6
|
} from "./chunk-PQOP5CQP.js";
|
|
@@ -100,4 +100,4 @@ export {
|
|
|
100
100
|
CoreCurrency,
|
|
101
101
|
CoreAssistant
|
|
102
102
|
};
|
|
103
|
-
//# sourceMappingURL=chunk-
|
|
103
|
+
//# sourceMappingURL=chunk-RUE7ZDZS.js.map
|
package/dist/hooks.js
CHANGED
package/dist/index.d.ts
CHANGED
|
@@ -3,8 +3,8 @@ export { g as CollectionMode, h as CoreMetadata, i as DashboardWidgetDef, F as F
|
|
|
3
3
|
export { OON_RESERVED_ROUTES, defineOonNavigation, defineOonRoutes } from './routing.js';
|
|
4
4
|
export { a as OonThemeContrast, O as OonThemeDefinition, b as OonThemeDensity, c as createOonTheme, o as oonDefaultTheme } from './theme-Clhoswb3.js';
|
|
5
5
|
export { useOonTheme } from './theme.js';
|
|
6
|
-
import { O as OonPipelineViewDef } from './ui-
|
|
7
|
-
export { C as CoreActions, a as CoreAssistant, b as CoreCards, c as CoreCollection, d as CoreConfirmDialog, e as CoreCurrency, f as CoreDashboard, g as CoreDataGrid, h as CoreDataTable, i as CoreDataTableProps, j as CoreDetailDrawer, k as CoreDocument, l as CoreEmpty, m as CoreEmptyState, n as CoreField, o as CoreForm, p as CoreFormSection, q as CoreKpi, r as CoreKpiGrid, s as CoreLoadingState, t as CoreOrganizationSwitcher, u as CorePage, v as CorePageHeader, w as CorePipeline, x as CoreRelationField, y as CoreStatusBadge, z as CoreStatusKind, A as CoreStatusTone, B as CoreStatusView, D as CoreTableColumn, E as CoreTechnicalDetails, F as CoreToolbar, G as CoreTransactionalEmail, H as CoreUsersAccess, I as OonPipelineActionDef, J as OonPipelineActionGroup, K as OonPipelineActionTone, L as OonPipelineDefaultActionsConfig, M as OonPipelineDefaultActionsDef, N as OonPipelineTicketModalConfig, P as coreInitials, Q as coreStatus } from './ui-
|
|
6
|
+
import { O as OonPipelineViewDef } from './ui-BBEP4aNZ.js';
|
|
7
|
+
export { C as CoreActions, a as CoreAssistant, b as CoreCards, c as CoreCollection, d as CoreConfirmDialog, e as CoreCurrency, f as CoreDashboard, g as CoreDataGrid, h as CoreDataTable, i as CoreDataTableProps, j as CoreDetailDrawer, k as CoreDocument, l as CoreEmpty, m as CoreEmptyState, n as CoreField, o as CoreForm, p as CoreFormSection, q as CoreKpi, r as CoreKpiGrid, s as CoreLoadingState, t as CoreOrganizationSwitcher, u as CorePage, v as CorePageHeader, w as CorePipeline, x as CoreRelationField, y as CoreStatusBadge, z as CoreStatusKind, A as CoreStatusTone, B as CoreStatusView, D as CoreTableColumn, E as CoreTechnicalDetails, F as CoreToolbar, G as CoreTransactionalEmail, H as CoreUsersAccess, I as OonPipelineActionDef, J as OonPipelineActionGroup, K as OonPipelineActionTone, L as OonPipelineDefaultActionsConfig, M as OonPipelineDefaultActionsDef, N as OonPipelineTicketModalConfig, P as coreInitials, Q as coreStatus } from './ui-BBEP4aNZ.js';
|
|
8
8
|
export { O as OonTenantContextValue, c as can, u as useCoreMetadata, a as useModelSchema, b as useOonApi, d as useOonAuth, e as useOonResource, f as useOonTenant } from './hooks-DghQKr0s.js';
|
|
9
9
|
import * as react from 'react';
|
|
10
10
|
import { ReactNode } from 'react';
|
package/dist/index.js
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import {
|
|
2
2
|
CoreAssistant,
|
|
3
3
|
CoreCurrency
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-RUE7ZDZS.js";
|
|
5
5
|
import {
|
|
6
6
|
appDefinitionToConfig,
|
|
7
7
|
createTenantStorage,
|
|
8
8
|
defineOonApp,
|
|
9
9
|
startOonApp
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-74ATSPSO.js";
|
|
11
11
|
import {
|
|
12
12
|
Can,
|
|
13
13
|
CoreActions,
|
|
@@ -44,13 +44,13 @@ import {
|
|
|
44
44
|
coreInitials,
|
|
45
45
|
coreStatus,
|
|
46
46
|
evaluateDomainExpression
|
|
47
|
-
} from "./chunk-
|
|
47
|
+
} from "./chunk-4J7L5PIO.js";
|
|
48
48
|
import {
|
|
49
49
|
OON_RESERVED_ROUTES,
|
|
50
50
|
defineOonNavigation,
|
|
51
51
|
defineOonRoutes
|
|
52
|
-
} from "./chunk-
|
|
53
|
-
import "./chunk-
|
|
52
|
+
} from "./chunk-HS3Q4SCM.js";
|
|
53
|
+
import "./chunk-H4RCPPT3.js";
|
|
54
54
|
import {
|
|
55
55
|
can,
|
|
56
56
|
useCoreMetadata,
|
|
@@ -64,7 +64,7 @@ import {
|
|
|
64
64
|
createOonTheme,
|
|
65
65
|
oonDefaultTheme,
|
|
66
66
|
useOonTheme
|
|
67
|
-
} from "./chunk-
|
|
67
|
+
} from "./chunk-O4M3YJRY.js";
|
|
68
68
|
import "./chunk-V6TY7KAL.js";
|
|
69
69
|
|
|
70
70
|
// src/define/views.ts
|
package/dist/routing.js
CHANGED
package/dist/testing.js
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import {
|
|
2
2
|
appDefinitionToConfig
|
|
3
|
-
} from "./chunk-
|
|
4
|
-
import "./chunk-
|
|
5
|
-
import "./chunk-
|
|
6
|
-
import "./chunk-
|
|
3
|
+
} from "./chunk-74ATSPSO.js";
|
|
4
|
+
import "./chunk-4J7L5PIO.js";
|
|
5
|
+
import "./chunk-HS3Q4SCM.js";
|
|
6
|
+
import "./chunk-H4RCPPT3.js";
|
|
7
7
|
import "./chunk-PQOP5CQP.js";
|
|
8
|
-
import "./chunk-
|
|
8
|
+
import "./chunk-O4M3YJRY.js";
|
|
9
9
|
import "./chunk-V6TY7KAL.js";
|
|
10
10
|
|
|
11
11
|
// src/testing.ts
|
package/dist/theme.js
CHANGED
|
@@ -276,6 +276,11 @@ declare function CoreErrorState({ title, description, retryLabel, onRetry }: {
|
|
|
276
276
|
retryLabel?: string;
|
|
277
277
|
onRetry?: () => void;
|
|
278
278
|
}): react.JSX.Element;
|
|
279
|
+
/**
|
|
280
|
+
* Abas simples para páginas próprias. Controlada (`value` + `onChange`) ou não
|
|
281
|
+
* controlada (estado interno a partir da primeira aba). Usa somente tokens
|
|
282
|
+
* semânticos, para acompanhar temas claros e escuros.
|
|
283
|
+
*/
|
|
279
284
|
declare function CoreTabs({ items, value, onChange }: {
|
|
280
285
|
items: Array<{
|
|
281
286
|
id: string;
|
package/dist/ui.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export { Badge as OonBadge, Button as OonButton, Card as OonCard, Drawer as OonDrawer, Grid as OonGrid, Input as OonInput, Dialog as OonModal, NativeSelect as OonSelect, Stack as OonStack } from '@chakra-ui/react';
|
|
2
|
-
export { C as CoreActions, R as CoreActivityLog, a as CoreAssistant, b as CoreCards, c as CoreCollection, S as CoreConfirmAction, d as CoreConfirmDialog, e as CoreCurrency, f as CoreDashboard, g as CoreDataGrid, h as CoreDataTable, i as CoreDataTableProps, j as CoreDetailDrawer, k as CoreDocument, l as CoreEmpty, m as CoreEmptyState, T as CoreErrorState, n as CoreField, o as CoreForm, p as CoreFormSection, q as CoreKpi, r as CoreKpiGrid, s as CoreLoadingState, t as CoreOrganizationSwitcher, u as CorePage, v as CorePageHeader, w as CorePipeline, x as CoreRelationField, y as CoreStatusBadge, z as CoreStatusKind, U as CoreStatusPanel, A as CoreStatusTone, B as CoreStatusView, V as CoreStepper, W as CoreSummaryCards, D as CoreTableColumn, X as CoreTabs, E as CoreTechnicalDetails, Y as CoreTimeline, F as CoreToolbar, G as CoreTransactionalEmail, H as CoreUsersAccess, P as coreInitials, Q as coreStatus } from './ui-
|
|
2
|
+
export { C as CoreActions, R as CoreActivityLog, a as CoreAssistant, b as CoreCards, c as CoreCollection, S as CoreConfirmAction, d as CoreConfirmDialog, e as CoreCurrency, f as CoreDashboard, g as CoreDataGrid, h as CoreDataTable, i as CoreDataTableProps, j as CoreDetailDrawer, k as CoreDocument, l as CoreEmpty, m as CoreEmptyState, T as CoreErrorState, n as CoreField, o as CoreForm, p as CoreFormSection, q as CoreKpi, r as CoreKpiGrid, s as CoreLoadingState, t as CoreOrganizationSwitcher, u as CorePage, v as CorePageHeader, w as CorePipeline, x as CoreRelationField, y as CoreStatusBadge, z as CoreStatusKind, U as CoreStatusPanel, A as CoreStatusTone, B as CoreStatusView, V as CoreStepper, W as CoreSummaryCards, D as CoreTableColumn, X as CoreTabs, E as CoreTechnicalDetails, Y as CoreTimeline, F as CoreToolbar, G as CoreTransactionalEmail, H as CoreUsersAccess, P as coreInitials, Q as coreStatus } from './ui-BBEP4aNZ.js';
|
|
3
3
|
import 'react';
|
|
4
4
|
import './types-D1vB-V0g.js';
|
|
5
5
|
import './theme-Clhoswb3.js';
|
package/dist/ui.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import {
|
|
2
2
|
CoreAssistant,
|
|
3
3
|
CoreCurrency
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-RUE7ZDZS.js";
|
|
5
5
|
import {
|
|
6
6
|
CoreActions,
|
|
7
7
|
CoreActivityLog,
|
|
@@ -39,8 +39,8 @@ import {
|
|
|
39
39
|
CoreUsersAccess,
|
|
40
40
|
coreInitials,
|
|
41
41
|
coreStatus
|
|
42
|
-
} from "./chunk-
|
|
43
|
-
import "./chunk-
|
|
42
|
+
} from "./chunk-4J7L5PIO.js";
|
|
43
|
+
import "./chunk-H4RCPPT3.js";
|
|
44
44
|
import "./chunk-PQOP5CQP.js";
|
|
45
45
|
import "./chunk-V6TY7KAL.js";
|
|
46
46
|
|
package/package.json
CHANGED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/shell/LoadingScreen.tsx"],"sourcesContent":["import { Button, Flex, Spinner, Text } from \"@chakra-ui/react\";\n\ninterface LoadingScreenProps {\n message?: string;\n actionLabel?: string;\n onAction?: () => void;\n}\n\n/** Tela de carregamento/estado neutro reutilizada por guards e Suspense. */\nexport function LoadingScreen({\n message,\n actionLabel,\n onAction,\n}: LoadingScreenProps) {\n return (\n <Flex direction=\"column\" align=\"center\" justify=\"center\" minH=\"60vh\" gap={4}>\n <Spinner size=\"lg\" />\n {message ? (\n <Text color=\"gray.500\" fontSize=\"sm\" textAlign=\"center\">\n {message}\n </Text>\n ) : null}\n {actionLabel && onAction ? (\n <Button size=\"sm\" variant=\"outline\" onClick={onAction}>\n {actionLabel}\n </Button>\n ) : null}\n </Flex>\n );\n}\n"],"mappings":";AAAA,SAAS,QAAQ,MAAM,SAAS,YAAY;AAexC,SACE,KADF;AANG,SAAS,cAAc;AAAA,EAC5B;AAAA,EACA;AAAA,EACA;AACF,GAAuB;AACrB,SACE,qBAAC,QAAK,WAAU,UAAS,OAAM,UAAS,SAAQ,UAAS,MAAK,QAAO,KAAK,GACxE;AAAA,wBAAC,WAAQ,MAAK,MAAK;AAAA,IAClB,UACC,oBAAC,QAAK,OAAM,YAAW,UAAS,MAAK,WAAU,UAC5C,mBACH,IACE;AAAA,IACH,eAAe,WACd,oBAAC,UAAO,MAAK,MAAK,SAAQ,WAAU,SAAS,UAC1C,uBACH,IACE;AAAA,KACN;AAEJ;","names":[]}
|