@oondemand/oon-core-front 0.7.34 → 0.7.35

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.
@@ -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: "gray.500", fontSize: "sm", textAlign: "center", children: message }) : null,
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-ALZCHGGI.js.map
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-ALZCHGGI.js";
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-32GGDIWB.js.map
71
+ //# sourceMappingURL=chunk-HS3Q4SCM.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  LoadingScreen
3
- } from "./chunk-ALZCHGGI.js";
3
+ } from "./chunk-H4RCPPT3.js";
4
4
  import {
5
5
  useModelSchema,
6
6
  useOonApi,
@@ -5744,4 +5744,4 @@ export {
5744
5744
  CoreOrganizationSwitcher,
5745
5745
  coreInitials
5746
5746
  };
5747
- //# sourceMappingURL=chunk-GIDNQRK6.js.map
5747
+ //# sourceMappingURL=chunk-INIAEP7H.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-VC6NTMZS.js.map
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-GIDNQRK6.js";
3
+ } from "./chunk-INIAEP7H.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-WZD4ACMX.js.map
103
+ //# sourceMappingURL=chunk-PAKV3SCB.js.map
@@ -9,16 +9,16 @@ import {
9
9
  MissingRenderer,
10
10
  coreInitials,
11
11
  resolveComponent
12
- } from "./chunk-GIDNQRK6.js";
12
+ } from "./chunk-INIAEP7H.js";
13
13
  import {
14
14
  OON_RESERVED_ROUTES,
15
15
  defineOonNavigation,
16
16
  defineOonRoutes,
17
17
  routeElement
18
- } from "./chunk-32GGDIWB.js";
18
+ } from "./chunk-HS3Q4SCM.js";
19
19
  import {
20
20
  LoadingScreen
21
- } from "./chunk-ALZCHGGI.js";
21
+ } from "./chunk-H4RCPPT3.js";
22
22
  import {
23
23
  ActivationProvider,
24
24
  ApiProvider,
@@ -33,7 +33,7 @@ import {
33
33
  } from "./chunk-PQOP5CQP.js";
34
34
  import {
35
35
  OonThemeProvider
36
- } from "./chunk-VC6NTMZS.js";
36
+ } from "./chunk-O4M3YJRY.js";
37
37
 
38
38
  // src/security/tenantStorage.ts
39
39
  function normalize(value2) {
@@ -715,16 +715,16 @@ function PlatformAppMenuItem({ item, appCode }) {
715
715
  borderRadius: "9px",
716
716
  fontSize: "13px",
717
717
  fontWeight: "500",
718
- color: "#46545C",
718
+ color: "text.primary",
719
719
  cursor: opening ? "wait" : "pointer",
720
720
  "aria-disabled": opening,
721
721
  pointerEvents: opening ? "none" : "auto",
722
722
  title: item.label,
723
723
  "aria-label": `Abrir ${item.label} em uma nova aba`,
724
724
  onClick: () => void launch(),
725
- _hover: { bg: "#F8F9FA", color: "brand.700" },
725
+ _hover: { bg: "surface.hover", color: "brand.fg" },
726
726
  children: [
727
- opening ? /* @__PURE__ */ jsx7(Spinner, { size: "xs" }) : /* @__PURE__ */ jsx7(Box4, { w: "7px", h: "7px", borderRadius: "full", bg: "gray.300" }),
727
+ opening ? /* @__PURE__ */ jsx7(Spinner, { size: "xs" }) : /* @__PURE__ */ jsx7(Box4, { w: "7px", h: "7px", borderRadius: "full", bg: "border.strong" }),
728
728
  /* @__PURE__ */ jsx7(Text4, { display: { base: "none", lg: "block" }, lineClamp: 1, children: item.label })
729
729
  ]
730
730
  }
@@ -752,7 +752,7 @@ function SidebarNav({ menu, registry, onNavigate, compact = false }) {
752
752
  display: compact ? { base: "none", lg: "block" } : "block",
753
753
  fontSize: "10px",
754
754
  fontWeight: "600",
755
- color: "gray.500",
755
+ color: "text.muted",
756
756
  textTransform: "uppercase",
757
757
  letterSpacing: "0.08em",
758
758
  px: 3,
@@ -775,17 +775,17 @@ function SidebarNav({ menu, registry, onNavigate, compact = false }) {
775
775
  borderRadius: "9px",
776
776
  fontSize: "14px",
777
777
  fontWeight: isActive ? "600" : "500",
778
- bg: isActive ? "brand.50" : "transparent",
779
- color: isActive ? "brand.700" : "#374151",
778
+ bg: isActive ? "brand.muted" : "transparent",
779
+ color: isActive ? "brand.fg" : "text.primary",
780
780
  borderLeftWidth: "3px",
781
- borderLeftColor: isActive ? "brand.500" : "transparent",
781
+ borderLeftColor: isActive ? "brand.solid" : "transparent",
782
782
  transition: "all 0.15s ease",
783
- _hover: { bg: isActive ? "brand.50" : "#F8F9FA", color: "brand.700" },
783
+ _hover: { bg: isActive ? "brand.muted" : "surface.hover", color: "brand.fg" },
784
784
  "aria-current": isActive ? "page" : void 0,
785
785
  children: [
786
786
  item.icon ? /* @__PURE__ */ jsx7(Box4, { flex: "0 0 auto", children: item.icon }) : null,
787
787
  /* @__PURE__ */ jsx7(Text4, { lineClamp: 1, children: item.label }),
788
- item.badge !== void 0 ? /* @__PURE__ */ jsx7(Box4, { ml: "auto", fontSize: "xs", fontWeight: "700", color: "brand.700", children: item.badge }) : null
788
+ item.badge !== void 0 ? /* @__PURE__ */ jsx7(Box4, { ml: "auto", fontSize: "xs", fontWeight: "700", color: "brand.fg", children: item.badge }) : null
789
789
  ]
790
790
  }
791
791
  ) }, item.href);
@@ -802,10 +802,10 @@ function Sidebar({ app, menu, registry }) {
802
802
  display: { base: "none", lg: "block" },
803
803
  minH: "100vh",
804
804
  borderRightWidth: "1px",
805
- borderColor: "#E8ECEF",
805
+ borderColor: "border.default",
806
806
  px: { base: 2, lg: 3 },
807
807
  py: 4,
808
- bg: "white",
808
+ bg: "surface.panel",
809
809
  position: "sticky",
810
810
  top: 0,
811
811
  alignSelf: "flex-start",
@@ -821,16 +821,16 @@ function Sidebar({ app, menu, registry }) {
821
821
  borderRadius: "12px",
822
822
  align: "center",
823
823
  justify: "center",
824
- bg: "brand.500",
825
- color: "white",
824
+ bg: "brand.solid",
825
+ color: "brand.contrast",
826
826
  fontWeight: "700",
827
827
  fontSize: "lg",
828
828
  children: "O"
829
829
  }
830
830
  ),
831
831
  /* @__PURE__ */ jsxs5(Box4, { minW: 0, children: [
832
- /* @__PURE__ */ jsx7(Text4, { fontWeight: "700", fontSize: "sm", color: "#07262E", lineClamp: 1, children: app.name }),
833
- /* @__PURE__ */ jsx7(Text4, { fontSize: "10px", color: "gray.500", textTransform: "uppercase", letterSpacing: "0.08em", children: "Opera\xE7\xE3o digital" })
832
+ /* @__PURE__ */ jsx7(Text4, { fontWeight: "700", fontSize: "sm", color: "text.primary", lineClamp: 1, children: app.name }),
833
+ /* @__PURE__ */ jsx7(Text4, { fontSize: "10px", color: "text.muted", textTransform: "uppercase", letterSpacing: "0.08em", children: "Opera\xE7\xE3o digital" })
834
834
  ] })
835
835
  ] }),
836
836
  /* @__PURE__ */ jsx7(SidebarNav, { menu, registry })
@@ -842,7 +842,7 @@ function Sidebar({ app, menu, registry }) {
842
842
  // package.json
843
843
  var package_default = {
844
844
  name: "@oondemand/oon-core-front",
845
- version: "0.7.34",
845
+ version: "0.7.35",
846
846
  repository: {
847
847
  type: "git",
848
848
  url: "git+https://github.com/oondemand/oon-platform.git",
@@ -1099,7 +1099,7 @@ ${details}`, children: [
1099
1099
  {
1100
1100
  fontSize: "xs",
1101
1101
  fontWeight: "600",
1102
- color: "brand.500",
1102
+ color: "brand.solid",
1103
1103
  textTransform: "uppercase",
1104
1104
  letterSpacing: "0.08em",
1105
1105
  children: "Central Oon"
@@ -1134,7 +1134,7 @@ ${details}`, children: [
1134
1134
  }
1135
1135
  ) : null,
1136
1136
  /* @__PURE__ */ jsxs6(Menu.Root, { positioning: { placement: "bottom-end" }, children: [
1137
- /* @__PURE__ */ jsx8(Menu.Trigger, { asChild: true, children: /* @__PURE__ */ jsx8(Button3, { size: "sm", variant: "ghost", borderRadius: "full", px: 1, "aria-label": "Abrir menu do usu\xE1rio", children: avatar ? /* @__PURE__ */ jsx8(Image2, { src: avatar, alt: "", boxSize: "32px", borderRadius: "full", objectFit: "cover" }) : /* @__PURE__ */ jsx8(Flex4, { boxSize: "32px", borderRadius: "full", bg: "brand.100", color: "brand.700", align: "center", justify: "center", fontWeight: "700", fontSize: "xs", children: coreInitials(user.nome) }) }) }),
1137
+ /* @__PURE__ */ jsx8(Menu.Trigger, { asChild: true, children: /* @__PURE__ */ jsx8(Button3, { size: "sm", variant: "ghost", borderRadius: "full", px: 1, "aria-label": "Abrir menu do usu\xE1rio", children: avatar ? /* @__PURE__ */ jsx8(Image2, { src: avatar, alt: "", boxSize: "32px", borderRadius: "full", objectFit: "cover" }) : /* @__PURE__ */ jsx8(Flex4, { boxSize: "32px", borderRadius: "full", bg: "brand.muted", color: "brand.fg", align: "center", justify: "center", fontWeight: "700", fontSize: "xs", children: coreInitials(user.nome) }) }) }),
1138
1138
  /* @__PURE__ */ jsx8(Portal, { children: /* @__PURE__ */ jsx8(Menu.Positioner, { children: /* @__PURE__ */ jsxs6(Menu.Content, { children: [
1139
1139
  profileHref ? /* @__PURE__ */ jsx8(Menu.Item, { value: "perfil", onClick: () => navigate(profileHref), children: "Meu perfil" }) : null,
1140
1140
  userMenu.map((item) => /* @__PURE__ */ jsxs6(
@@ -1173,7 +1173,7 @@ function Slot({
1173
1173
  if (name === "sidebar") return /* @__PURE__ */ jsx8(Sidebar, { app, menu, registry });
1174
1174
  if (name === "topbar") return /* @__PURE__ */ jsx8(CoreTopbar, { app, menu, registry });
1175
1175
  if (name === "footer" && slot === "core") {
1176
- return /* @__PURE__ */ jsx8(Box5, { as: "footer", px: 6, py: 4, color: "gray.500", fontSize: "xs", borderTopWidth: "1px", children: "OonCore" });
1176
+ return /* @__PURE__ */ jsx8(Box5, { as: "footer", px: 6, py: 4, color: "text.muted", fontSize: "xs", borderTopWidth: "1px", children: "OonCore" });
1177
1177
  }
1178
1178
  return null;
1179
1179
  }
@@ -2267,4 +2267,4 @@ export {
2267
2267
  appDefinitionToConfig,
2268
2268
  startOonApp
2269
2269
  };
2270
- //# sourceMappingURL=chunk-B4QFRGOK.js.map
2270
+ //# sourceMappingURL=chunk-X6QNHP3Y.js.map