@codebit-programando-solucoes/codebit-web-antd 1.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/LoggedMainContainer.d.ts +28 -0
- package/dist/components/ThemeToggle.d.ts +11 -0
- package/dist/components/index.d.ts +2 -0
- package/dist/contexts/CodebitConfigContext.d.ts +86 -0
- package/dist/contexts/index.d.ts +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.js +1 -0
- package/dist/public-pages/HandleError.d.ts +17 -0
- package/dist/public-pages/Login.d.ts +19 -0
- package/dist/public-pages/LoginContainer.d.ts +20 -0
- package/dist/public-pages/NotFound.d.ts +10 -0
- package/dist/public-pages/index.d.ts +4 -0
- package/package.json +59 -0
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
|
|
3
|
+
/** Props for the LoggedMainContainer component */
|
|
4
|
+
export interface LoggedMainContainerProps {
|
|
5
|
+
/** Content to render in the main area */
|
|
6
|
+
children: React.ReactNode;
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* Container component with sidebar navigation for logged-in users.
|
|
11
|
+
*
|
|
12
|
+
* Provides a responsive layout with:
|
|
13
|
+
*
|
|
14
|
+
* - Collapsible sidebar navigation (desktop) or drawer menu (mobile)
|
|
15
|
+
* - Dynamic theme switching (light/dark mode)
|
|
16
|
+
* - Role-based menu filtering
|
|
17
|
+
* - User logout functionality
|
|
18
|
+
* - Application version display
|
|
19
|
+
*
|
|
20
|
+
* This component must be used within a CodebitConfigProvider context to access configuration such as menu items, user data, and theme settings.
|
|
21
|
+
*
|
|
22
|
+
* @param props - Component props
|
|
23
|
+
* @returns JSX.Element - Logged container layout
|
|
24
|
+
* @throws Error if used CodebitConfigProvider context
|
|
25
|
+
*/
|
|
26
|
+
export function LoggedMainContainer(
|
|
27
|
+
props: LoggedMainContainerProps,
|
|
28
|
+
): React.JSX.Element;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Theme switcher component that toggles between light and dark modes.
|
|
5
|
+
*
|
|
6
|
+
* This component displays a switch with sun/moon icons and handles theme toggling based on the context. It can be used independently or integrated with a theme context.
|
|
7
|
+
*
|
|
8
|
+
* @returns JSX.Element - A Switch component with theme toggle functionality.
|
|
9
|
+
* @throws Error if used outside CodebitConfigProvider context
|
|
10
|
+
*/
|
|
11
|
+
export const ThemeToggle: () => React.JSX.Element;
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
|
|
3
|
+
/** Menu item configuration */
|
|
4
|
+
export interface MenuItem {
|
|
5
|
+
/** Unique identifier for the menu item */
|
|
6
|
+
key: string;
|
|
7
|
+
/** Icon component to display */
|
|
8
|
+
icon?: React.ReactNode;
|
|
9
|
+
/** Display text for the menu item */
|
|
10
|
+
label: string;
|
|
11
|
+
/** Array of roles that can access this item */
|
|
12
|
+
roles?: string[];
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
/** User object type */
|
|
16
|
+
export interface UserType {
|
|
17
|
+
/** User's full name */
|
|
18
|
+
name: string;
|
|
19
|
+
/** User's email address */
|
|
20
|
+
email: string;
|
|
21
|
+
/** Unique user identifier */
|
|
22
|
+
id: string;
|
|
23
|
+
/** User roles/permissions */
|
|
24
|
+
roles: string[];
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
/** Context type for Codebit configuration */
|
|
28
|
+
export interface CodebitConfigContextType {
|
|
29
|
+
/** Array of menu items */
|
|
30
|
+
menuItems: MenuItem[];
|
|
31
|
+
/** Current user object */
|
|
32
|
+
user: UserType;
|
|
33
|
+
/** Logout handler */
|
|
34
|
+
onLogout: () => void | Promise<void>;
|
|
35
|
+
/** Function to toggle the theme */
|
|
36
|
+
toggleTheme: () => void;
|
|
37
|
+
/** Current dark mode state */
|
|
38
|
+
isDarkMode: boolean;
|
|
39
|
+
/** Application version */
|
|
40
|
+
version?: string;
|
|
41
|
+
/** Show version in menu */
|
|
42
|
+
showVersion?: boolean;
|
|
43
|
+
/** OAuth callback URL for authentication */
|
|
44
|
+
oauthCallbackUrl: string;
|
|
45
|
+
/** Preferred locale (e.g. 'en' or 'pt') */
|
|
46
|
+
locale?: string;
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
/** Context for Codebit configuration */
|
|
50
|
+
export const CodebitConfigContext: React.Context<CodebitConfigContextType | null>;
|
|
51
|
+
|
|
52
|
+
/** Props for the CodebitConfigProvider component */
|
|
53
|
+
export interface CodebitConfigProviderProps {
|
|
54
|
+
/** Child components */
|
|
55
|
+
children: React.ReactNode;
|
|
56
|
+
/** Menu items configuration */
|
|
57
|
+
menuItems: MenuItem[];
|
|
58
|
+
/** Current user object */
|
|
59
|
+
user: UserType;
|
|
60
|
+
/** Logout handler */
|
|
61
|
+
onLogout: () => void | Promise<void>;
|
|
62
|
+
/** Function to toggle the theme */
|
|
63
|
+
toggleTheme: () => void;
|
|
64
|
+
/** Current dark mode state */
|
|
65
|
+
isDarkMode: boolean;
|
|
66
|
+
/** OAuth callback URL for authentication */
|
|
67
|
+
oauthCallbackUrl: string;
|
|
68
|
+
/** Preferred locale (e.g. 'en' or 'pt') */
|
|
69
|
+
locale?: string;
|
|
70
|
+
/** Application version. Default is '1.0' */
|
|
71
|
+
version?: string;
|
|
72
|
+
/** Show version in menu. Default is true */
|
|
73
|
+
showVersion?: boolean;
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
/**
|
|
77
|
+
* Configuration provider for Codebit components. Similar to Ant Design's ConfigProvider.
|
|
78
|
+
*
|
|
79
|
+
* Provides global configuration for theme, user data, menu items, and authentication settings to all child components within the provider tree.
|
|
80
|
+
*
|
|
81
|
+
* @param props - Component props
|
|
82
|
+
* @returns JSX.Element - Provider wrapper
|
|
83
|
+
*/
|
|
84
|
+
export function CodebitConfigProvider(
|
|
85
|
+
props: CodebitConfigProviderProps,
|
|
86
|
+
): React.JSX.Element;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './CodebitConfigContext';
|
package/dist/index.d.ts
ADDED
package/dist/index.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
function _array_like_to_array(arr,len){(null==len||len>arr.length)&&(len=arr.length);for(var i=0,arr2=Array(len);i<len;i++)arr2[i]=arr[i];return arr2}function asyncGeneratorStep(gen,resolve,reject,_next,_throw,key,arg){try{var info=gen[key](arg),value=info.value}catch(error){reject(error);return}info.done?resolve(value):Promise.resolve(value).then(_next,_throw)}function _sliced_to_array(arr,i){return function(arr){if(Array.isArray(arr))return arr}(arr)||function(arr,i){var _s,_e,_i=null==arr?null:"undefined"!=typeof Symbol&&arr[Symbol.iterator]||arr["@@iterator"];if(null!=_i){var _arr=[],_n=!0,_d=!1;try{for(_i=_i.call(arr);!(_n=(_s=_i.next()).done)&&(_arr.push(_s.value),!i||_arr.length!==i);_n=!0);}catch(err){_d=!0,_e=err}finally{try{_n||null==_i.return||_i.return()}finally{if(_d)throw _e}}return _arr}}(arr,i)||function(o,minLen){if(o){if("string"==typeof o)return _array_like_to_array(o,minLen);var n=Object.prototype.toString.call(o).slice(8,-1);if("Object"===n&&o.constructor&&(n=o.constructor.name),"Map"===n||"Set"===n)return Array.from(n);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return _array_like_to_array(o,minLen)}}(arr,i)||function(){throw TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}var __webpack_modules__={"../../node_modules/.pnpm/react@19.2.0/node_modules/react/cjs/react-jsx-runtime.production.js":function(__unused_webpack_module,exports1){var REACT_ELEMENT_TYPE=Symbol.for("react.transitional.element");function jsxProd(type,config,maybeKey){var key=null;if(void 0!==maybeKey&&(key=""+maybeKey),void 0!==config.key&&(key=""+config.key),"key"in config)for(var propName in maybeKey={},config)"key"!==propName&&(maybeKey[propName]=config[propName]);else maybeKey=config;return{$$typeof:REACT_ELEMENT_TYPE,type:type,key:key,ref:void 0!==(config=maybeKey.ref)?config:null,props:maybeKey}}exports1.Fragment=Symbol.for("react.fragment"),exports1.jsx=jsxProd,exports1.jsxs=jsxProd},"../../node_modules/.pnpm/react@19.2.0/node_modules/react/jsx-runtime.js":function(module,__unused_webpack_exports,__webpack_require__){module.exports=__webpack_require__("../../node_modules/.pnpm/react@19.2.0/node_modules/react/cjs/react-jsx-runtime.production.js")},"../../../../node_modules/.pnpm/@rsbuild+core@1.0.1-beta.11/node_modules/@rsbuild/core/compiled/css-loader/index.js??ruleSet[1].rules[1].use[1]!builtin:lightningcss-loader??ruleSet[1].rules[1].use[2]!./src/components/LoggedMainContainer.module.css":function(module,__webpack_exports__,__webpack_require__){__webpack_require__.d(__webpack_exports__,{Z:function(){return __WEBPACK_DEFAULT_EXPORT__}});var _node_modules_pnpm_rsbuild_core_1_0_1_beta_11_node_modules_rsbuild_core_compiled_css_loader_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("../../node_modules/.pnpm/@rsbuild+core@1.0.1-beta.11/node_modules/@rsbuild/core/compiled/css-loader/noSourceMaps.js"),_node_modules_pnpm_rsbuild_core_1_0_1_beta_11_node_modules_rsbuild_core_compiled_css_loader_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default=__webpack_require__.n(_node_modules_pnpm_rsbuild_core_1_0_1_beta_11_node_modules_rsbuild_core_compiled_css_loader_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__),_node_modules_pnpm_rsbuild_core_1_0_1_beta_11_node_modules_rsbuild_core_compiled_css_loader_api_js__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__("../../node_modules/.pnpm/@rsbuild+core@1.0.1-beta.11/node_modules/@rsbuild/core/compiled/css-loader/api.js"),___CSS_LOADER_EXPORT___=__webpack_require__.n(_node_modules_pnpm_rsbuild_core_1_0_1_beta_11_node_modules_rsbuild_core_compiled_css_loader_api_js__WEBPACK_IMPORTED_MODULE_1__)()(_node_modules_pnpm_rsbuild_core_1_0_1_beta_11_node_modules_rsbuild_core_compiled_css_loader_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default());___CSS_LOADER_EXPORT___.push([module.id,".layout-Q8IwNz {\n height: 100vh;\n position: fixed;\n inset: 0;\n}\n\n.drawer-ZlP0PM {\n padding: 0;\n\n :is(& .ant-drawer-header, & .ant-drawer-header-close-only) {\n display: none;\n }\n}\n\n.drawerBody-xro7v2 {\n flex-direction: column;\n height: 100%;\n padding: 0;\n display: flex;\n}\n\n.drawerFlex-sAykhM {\n height: 100%;\n}\n\n.sider-F5Zucj {\n flex-direction: column;\n height: 100vh;\n display: flex;\n}\n\n.siderLayout-MujeBI {\n background: none;\n flex-direction: column;\n height: 100%;\n display: flex;\n}\n\n.menu-HeHbpC {\n background: none;\n border-inline-end: none;\n}\n\n.menuSpacer-FAdv4x {\n flex: auto;\n min-height: 20px;\n}\n\n.versionMenu-cf4ory {\n background: none;\n justify-content: center;\n align-items: center;\n display: flex;\n}\n\n.logoutMenu-CGwW4m {\n background: none;\n border-top: 1px solid #ffffff1a;\n justify-content: center;\n align-items: center;\n margin-top: auto;\n display: flex;\n}\n\n.header-LoqtTB {\n z-index: 1;\n background: none;\n justify-content: space-between;\n align-items: center;\n height: 64px;\n padding: 0 16px;\n display: flex;\n\n &.mobile-o3qvEb {\n height: 56px;\n padding: 0 8px;\n }\n}\n\n.headerSpace-CUO7KP {\n gap: 16px;\n\n &.mobile-o3qvEb {\n gap: 8px;\n }\n}\n\n.content-gr_8Ds {\n height: 100vh;\n padding: 28px;\n position: relative;\n overflow-y: auto;\n\n &.mobile-o3qvEb {\n padding: 12px;\n }\n}\n",""]),___CSS_LOADER_EXPORT___.locals={layout:"layout-Q8IwNz",drawer:"drawer-ZlP0PM",drawerBody:"drawerBody-xro7v2",drawerFlex:"drawerFlex-sAykhM",sider:"sider-F5Zucj",siderLayout:"siderLayout-MujeBI",menu:"menu-HeHbpC",menuSpacer:"menuSpacer-FAdv4x",versionMenu:"versionMenu-cf4ory",logoutMenu:"logoutMenu-CGwW4m",header:"header-LoqtTB",mobile:"mobile-o3qvEb",headerSpace:"headerSpace-CUO7KP",content:"content-gr_8Ds"};var __WEBPACK_DEFAULT_EXPORT__=___CSS_LOADER_EXPORT___},"../../../../node_modules/.pnpm/@rsbuild+core@1.0.1-beta.11/node_modules/@rsbuild/core/compiled/css-loader/index.js??ruleSet[1].rules[1].use[1]!builtin:lightningcss-loader??ruleSet[1].rules[1].use[2]!./src/public-pages/HandleError.module.css":function(module,__webpack_exports__,__webpack_require__){__webpack_require__.d(__webpack_exports__,{Z:function(){return __WEBPACK_DEFAULT_EXPORT__}});var _node_modules_pnpm_rsbuild_core_1_0_1_beta_11_node_modules_rsbuild_core_compiled_css_loader_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("../../node_modules/.pnpm/@rsbuild+core@1.0.1-beta.11/node_modules/@rsbuild/core/compiled/css-loader/noSourceMaps.js"),_node_modules_pnpm_rsbuild_core_1_0_1_beta_11_node_modules_rsbuild_core_compiled_css_loader_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default=__webpack_require__.n(_node_modules_pnpm_rsbuild_core_1_0_1_beta_11_node_modules_rsbuild_core_compiled_css_loader_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__),_node_modules_pnpm_rsbuild_core_1_0_1_beta_11_node_modules_rsbuild_core_compiled_css_loader_api_js__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__("../../node_modules/.pnpm/@rsbuild+core@1.0.1-beta.11/node_modules/@rsbuild/core/compiled/css-loader/api.js"),___CSS_LOADER_EXPORT___=__webpack_require__.n(_node_modules_pnpm_rsbuild_core_1_0_1_beta_11_node_modules_rsbuild_core_compiled_css_loader_api_js__WEBPACK_IMPORTED_MODULE_1__)()(_node_modules_pnpm_rsbuild_core_1_0_1_beta_11_node_modules_rsbuild_core_compiled_css_loader_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default());___CSS_LOADER_EXPORT___.push([module.id,".container-DhBAe5 {\n justify-content: center;\n align-items: center;\n min-height: 100vh;\n padding: 0 16px;\n}\n\n.content-TcRZtM {\n width: 100%;\n max-width: 80%;\n}\n\n.title-MpqK_N {\n margin: 0;\n}\n\n.errorDetails-wSJSlC {\n text-align: left;\n margin-top: 24px;\n}\n\n.errorStack-S1xWky {\n background: #f5f5f5;\n border-radius: 4px;\n max-height: 300px;\n padding: 16px;\n overflow: auto;\n}\n",""]),___CSS_LOADER_EXPORT___.locals={container:"container-DhBAe5",content:"content-TcRZtM",title:"title-MpqK_N",errorDetails:"errorDetails-wSJSlC",errorStack:"errorStack-S1xWky"};var __WEBPACK_DEFAULT_EXPORT__=___CSS_LOADER_EXPORT___},"../../../../node_modules/.pnpm/@rsbuild+core@1.0.1-beta.11/node_modules/@rsbuild/core/compiled/css-loader/index.js??ruleSet[1].rules[1].use[1]!builtin:lightningcss-loader??ruleSet[1].rules[1].use[2]!./src/public-pages/Login.module.css":function(module,__webpack_exports__,__webpack_require__){__webpack_require__.d(__webpack_exports__,{Z:function(){return __WEBPACK_DEFAULT_EXPORT__}});var _node_modules_pnpm_rsbuild_core_1_0_1_beta_11_node_modules_rsbuild_core_compiled_css_loader_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("../../node_modules/.pnpm/@rsbuild+core@1.0.1-beta.11/node_modules/@rsbuild/core/compiled/css-loader/noSourceMaps.js"),_node_modules_pnpm_rsbuild_core_1_0_1_beta_11_node_modules_rsbuild_core_compiled_css_loader_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default=__webpack_require__.n(_node_modules_pnpm_rsbuild_core_1_0_1_beta_11_node_modules_rsbuild_core_compiled_css_loader_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__),_node_modules_pnpm_rsbuild_core_1_0_1_beta_11_node_modules_rsbuild_core_compiled_css_loader_api_js__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__("../../node_modules/.pnpm/@rsbuild+core@1.0.1-beta.11/node_modules/@rsbuild/core/compiled/css-loader/api.js"),___CSS_LOADER_EXPORT___=__webpack_require__.n(_node_modules_pnpm_rsbuild_core_1_0_1_beta_11_node_modules_rsbuild_core_compiled_css_loader_api_js__WEBPACK_IMPORTED_MODULE_1__)()(_node_modules_pnpm_rsbuild_core_1_0_1_beta_11_node_modules_rsbuild_core_compiled_css_loader_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default());___CSS_LOADER_EXPORT___.push([module.id,".containerRow-lnjnDt {\n min-height: 100vh;\n}\n\n.themeRow-ZhL0jS {\n margin-bottom: 16px;\n}\n\n.loginCard-k07Wjb {\n box-shadow: 0 4px 15px #00000026;\n\n &.dark-JBf6Fe {\n box-shadow: 0 4px 20px #00000080;\n }\n}\n\n.titleRow-XMkFzo {\n margin-bottom: 20px;\n}\n\n.appTitle-tL41k9 {\n margin: 0;\n}\n\n.divider-oJpEKR {\n margin: 12px 0;\n}\n\n.loginHeader-bBGO5B {\n text-align: center;\n margin-bottom: 24px;\n font-weight: normal;\n}\n",""]),___CSS_LOADER_EXPORT___.locals={containerRow:"containerRow-lnjnDt",themeRow:"themeRow-ZhL0jS",loginCard:"loginCard-k07Wjb",dark:"dark-JBf6Fe",titleRow:"titleRow-XMkFzo",appTitle:"appTitle-tL41k9",divider:"divider-oJpEKR",loginHeader:"loginHeader-bBGO5B"};var __WEBPACK_DEFAULT_EXPORT__=___CSS_LOADER_EXPORT___},"../../../../node_modules/.pnpm/@rsbuild+core@1.0.1-beta.11/node_modules/@rsbuild/core/compiled/css-loader/index.js??ruleSet[1].rules[1].use[1]!builtin:lightningcss-loader??ruleSet[1].rules[1].use[2]!./src/public-pages/NotFound.module.css":function(module,__webpack_exports__,__webpack_require__){__webpack_require__.d(__webpack_exports__,{Z:function(){return __WEBPACK_DEFAULT_EXPORT__}});var _node_modules_pnpm_rsbuild_core_1_0_1_beta_11_node_modules_rsbuild_core_compiled_css_loader_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("../../node_modules/.pnpm/@rsbuild+core@1.0.1-beta.11/node_modules/@rsbuild/core/compiled/css-loader/noSourceMaps.js"),_node_modules_pnpm_rsbuild_core_1_0_1_beta_11_node_modules_rsbuild_core_compiled_css_loader_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default=__webpack_require__.n(_node_modules_pnpm_rsbuild_core_1_0_1_beta_11_node_modules_rsbuild_core_compiled_css_loader_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__),_node_modules_pnpm_rsbuild_core_1_0_1_beta_11_node_modules_rsbuild_core_compiled_css_loader_api_js__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__("../../node_modules/.pnpm/@rsbuild+core@1.0.1-beta.11/node_modules/@rsbuild/core/compiled/css-loader/api.js"),___CSS_LOADER_EXPORT___=__webpack_require__.n(_node_modules_pnpm_rsbuild_core_1_0_1_beta_11_node_modules_rsbuild_core_compiled_css_loader_api_js__WEBPACK_IMPORTED_MODULE_1__)()(_node_modules_pnpm_rsbuild_core_1_0_1_beta_11_node_modules_rsbuild_core_compiled_css_loader_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default());___CSS_LOADER_EXPORT___.push([module.id,".layout-ANR1PQ {\n justify-content: center;\n align-items: center;\n min-height: 100vh;\n display: flex;\n}\n\n.content-KqdG7L {\n justify-content: center;\n align-items: center;\n width: 100%;\n min-height: 100vh;\n display: flex;\n}\n\n.row-ZeyoGY {\n width: 100%;\n min-height: 100vh;\n padding: 20px;\n}\n\n.card-HqMDaS {\n border-radius: 16px;\n overflow: hidden;\n box-shadow: 0 10px 30px #0000001a;\n}\n\n.icon404-Zd_Kh_ {\n background: linear-gradient(45deg, #1890ff, #722ed1);\n -webkit-text-fill-color: transparent;\n letter-spacing: -4px;\n background-clip: text;\n margin: 0;\n font-weight: 800;\n line-height: 1;\n font-size: 6rem !important;\n}\n\n.title-XC7S3d {\n margin-top: 16px;\n}\n\n.subtitle-UuNnV2 {\n color: #666;\n font-size: 16px;\n}\n\n.backButton-YayFMs {\n border-radius: 24px;\n height: 48px;\n padding-left: 24px;\n padding-right: 24px;\n font-size: 16px;\n font-weight: 500;\n box-shadow: 0 6px 16px #1890ff59;\n}\n\n.footer-lW2f6T {\n margin-top: 24px;\n}\n",""]),___CSS_LOADER_EXPORT___.locals={layout:"layout-ANR1PQ",content:"content-KqdG7L",row:"row-ZeyoGY",card:"card-HqMDaS",icon404:"icon404-Zd_Kh_",title:"title-XC7S3d",subtitle:"subtitle-UuNnV2",backButton:"backButton-YayFMs",footer:"footer-lW2f6T"};var __WEBPACK_DEFAULT_EXPORT__=___CSS_LOADER_EXPORT___},"../../node_modules/.pnpm/@rsbuild+core@1.0.1-beta.11/node_modules/@rsbuild/core/compiled/css-loader/api.js":function(module){module.exports=function(cssWithMappingToString){var list=[];return list.toString=function(){return this.map(function(item){var content="",needLayer=void 0!==item[5];return item[4]&&(content+="@supports (".concat(item[4],") {")),item[2]&&(content+="@media ".concat(item[2]," {")),needLayer&&(content+="@layer".concat(item[5].length>0?" ".concat(item[5]):""," {")),content+=cssWithMappingToString(item),needLayer&&(content+="}"),item[2]&&(content+="}"),item[4]&&(content+="}"),content}).join("")},list.i=function(modules,media,dedupe,supports,layer){"string"==typeof modules&&(modules=[[null,modules,void 0]]);var alreadyImportedModules={};if(dedupe)for(var k=0;k<this.length;k++){var id=this[k][0];null!=id&&(alreadyImportedModules[id]=!0)}for(var _k=0;_k<modules.length;_k++){var item=[].concat(modules[_k]);dedupe&&alreadyImportedModules[item[0]]||(void 0!==layer&&(void 0===item[5]||(item[1]="@layer".concat(item[5].length>0?" ".concat(item[5]):""," {").concat(item[1],"}")),item[5]=layer),media&&(item[2]&&(item[1]="@media ".concat(item[2]," {").concat(item[1],"}")),item[2]=media),supports&&(item[4]?(item[1]="@supports (".concat(item[4],") {").concat(item[1],"}"),item[4]=supports):item[4]="".concat(supports)),list.push(item))}},list}},"../../node_modules/.pnpm/@rsbuild+core@1.0.1-beta.11/node_modules/@rsbuild/core/compiled/css-loader/noSourceMaps.js":function(module){module.exports=function(i){return i[1]}},"../../node_modules/.pnpm/@rsbuild+core@1.0.1-beta.11/node_modules/@rsbuild/core/compiled/style-loader/runtime/injectStylesIntoStyleTag.js":function(module){var stylesInDOM=[];function getIndexByIdentifier(identifier){for(var result=-1,i=0;i<stylesInDOM.length;i++)if(stylesInDOM[i].identifier===identifier){result=i;break}return result}function modulesToDom(list,options){for(var idCountMap={},identifiers=[],i=0;i<list.length;i++){var item=list[i],id=options.base?item[0]+options.base:item[0],count=idCountMap[id]||0,identifier="".concat(id," ").concat(count);idCountMap[id]=count+1;var indexByIdentifier=getIndexByIdentifier(identifier),obj={css:item[1],media:item[2],sourceMap:item[3],supports:item[4],layer:item[5]};if(-1!==indexByIdentifier)stylesInDOM[indexByIdentifier].references++,stylesInDOM[indexByIdentifier].updater(obj);else{var updater=function(obj,options){var api=options.domAPI(options);return api.update(obj),function(newObj){newObj?(newObj.css!==obj.css||newObj.media!==obj.media||newObj.sourceMap!==obj.sourceMap||newObj.supports!==obj.supports||newObj.layer!==obj.layer)&&api.update(obj=newObj):api.remove()}}(obj,options);options.byIndex=i,stylesInDOM.splice(i,0,{identifier:identifier,updater:updater,references:1})}identifiers.push(identifier)}return identifiers}module.exports=function(list,options){var lastIdentifiers=modulesToDom(list=list||[],options=options||{});return function(newList){newList=newList||[];for(var i=0;i<lastIdentifiers.length;i++){var index=getIndexByIdentifier(lastIdentifiers[i]);stylesInDOM[index].references--}for(var newLastIdentifiers=modulesToDom(newList,options),_i=0;_i<lastIdentifiers.length;_i++){var _index=getIndexByIdentifier(lastIdentifiers[_i]);0===stylesInDOM[_index].references&&(stylesInDOM[_index].updater(),stylesInDOM.splice(_index,1))}lastIdentifiers=newLastIdentifiers}}},"../../node_modules/.pnpm/@rsbuild+core@1.0.1-beta.11/node_modules/@rsbuild/core/compiled/style-loader/runtime/insertBySelector.js":function(module){var memo={};module.exports=function(insert,style){var target=function(target){if(void 0===memo[target]){var left,right,styleTarget=document.querySelector(target);if(window.HTMLIFrameElement&&(left=styleTarget,null!=(right=window.HTMLIFrameElement)&&"undefined"!=typeof Symbol&&right[Symbol.hasInstance]?!!right[Symbol.hasInstance](left):left instanceof right))try{styleTarget=styleTarget.contentDocument.head}catch(e){styleTarget=null}memo[target]=styleTarget}return memo[target]}(insert);if(!target)throw Error("Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.");target.appendChild(style)}},"../../node_modules/.pnpm/@rsbuild+core@1.0.1-beta.11/node_modules/@rsbuild/core/compiled/style-loader/runtime/insertStyleElement.js":function(module){module.exports=function(options){var element=document.createElement("style");return options.setAttributes(element,options.attributes),options.insert(element,options.options),element}},"../../node_modules/.pnpm/@rsbuild+core@1.0.1-beta.11/node_modules/@rsbuild/core/compiled/style-loader/runtime/setAttributesWithoutAttributes.js":function(module,__unused_webpack_exports,__webpack_require__){module.exports=function(styleElement){var nonce=__webpack_require__.nc;nonce&&styleElement.setAttribute("nonce",nonce)}},"../../node_modules/.pnpm/@rsbuild+core@1.0.1-beta.11/node_modules/@rsbuild/core/compiled/style-loader/runtime/styleDomAPI.js":function(module){module.exports=function(options){if("undefined"==typeof document)return{update:function(){},remove:function(){}};var styleElement=options.insertStyleElement(options);return{update:function(obj){var css,needLayer,sourceMap;css="",obj.supports&&(css+="@supports (".concat(obj.supports,") {")),obj.media&&(css+="@media ".concat(obj.media," {")),(needLayer=void 0!==obj.layer)&&(css+="@layer".concat(obj.layer.length>0?" ".concat(obj.layer):""," {")),css+=obj.css,needLayer&&(css+="}"),obj.media&&(css+="}"),obj.supports&&(css+="}"),(sourceMap=obj.sourceMap)&&"undefined"!=typeof btoa&&(css+="\n/*# sourceMappingURL=data:application/json;base64,".concat(btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap))))," */")),options.styleTagTransform(css,styleElement,options.options)},remove:function(){!function(styleElement){if(null!==styleElement.parentNode)styleElement.parentNode.removeChild(styleElement)}(styleElement)}}}},"../../node_modules/.pnpm/@rsbuild+core@1.0.1-beta.11/node_modules/@rsbuild/core/compiled/style-loader/runtime/styleTagTransform.js":function(module){module.exports=function(css,styleElement){if(styleElement.styleSheet)styleElement.styleSheet.cssText=css;else{for(;styleElement.firstChild;)styleElement.removeChild(styleElement.firstChild);styleElement.appendChild(document.createTextNode(css))}}}},__webpack_module_cache__={};function __webpack_require__(moduleId){var cachedModule=__webpack_module_cache__[moduleId];if(void 0!==cachedModule)return cachedModule.exports;var module=__webpack_module_cache__[moduleId]={id:moduleId,exports:{}};return __webpack_modules__[moduleId](module,module.exports,__webpack_require__),module.exports}__webpack_require__.n=function(module){var getter=module&&module.__esModule?function(){return module.default}:function(){return module};return __webpack_require__.d(getter,{a:getter}),getter},__webpack_require__.d=function(exports1,definition){for(var key in definition)__webpack_require__.o(definition,key)&&!__webpack_require__.o(exports1,key)&&Object.defineProperty(exports1,key,{enumerable:!0,get:definition[key]})},__webpack_require__.o=function(obj,prop){return Object.prototype.hasOwnProperty.call(obj,prop)},__webpack_require__.r=function(exports1){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(exports1,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(exports1,"__esModule",{value:!0})},__webpack_require__.nc=void 0;var __webpack_exports__={};__webpack_require__.r(__webpack_exports__),__webpack_require__.d(__webpack_exports__,{NotFoundPage:function(){return NotFoundPage},CodebitConfigContext:function(){return CodebitConfigContext},HandleError:function(){return HandleError},Login:function(){return Login},LoginContainer:function(){return LoginContainer},CodebitConfigProvider:function(){return CodebitConfigProvider},ThemeToggle:function(){return ThemeToggle},LoggedMainContainer:function(){return LoggedMainContainer}});var jsx_runtime=__webpack_require__("../../node_modules/.pnpm/react@19.2.0/node_modules/react/jsx-runtime.js"),icons_namespaceObject=require("@ant-design/icons"),external_antd_namespaceObject=require("antd"),external_prop_types_namespaceObject=require("prop-types"),external_prop_types_default=__webpack_require__.n(external_prop_types_namespaceObject),external_react_namespaceObject=require("react"),external_react_router_namespaceObject=require("react-router"),CodebitConfigContext=(0,external_react_namespaceObject.createContext)(null);function CodebitConfigProvider(param){var children=param.children,menuItems=param.menuItems,user=param.user,onLogout=param.onLogout,toggleTheme=param.toggleTheme,isDarkMode=param.isDarkMode,oauthCallbackUrl=param.oauthCallbackUrl,_param_version=param.version,version=void 0===_param_version?"1.0":_param_version,_param_showVersion=param.showVersion,showVersion=void 0===_param_showVersion||_param_showVersion,locale=param.locale,contextValue=(0,external_react_namespaceObject.useMemo)(function(){return{menuItems:menuItems,user:user,onLogout:onLogout,toggleTheme:toggleTheme,isDarkMode:isDarkMode,oauthCallbackUrl:oauthCallbackUrl,version:version,showVersion:showVersion,locale:locale}},[menuItems,user,onLogout,toggleTheme,isDarkMode,version,showVersion,oauthCallbackUrl,locale]);return(0,jsx_runtime.jsx)(CodebitConfigContext.Provider,{value:contextValue,children:children})}CodebitConfigProvider.propTypes={children:external_prop_types_default().node.isRequired,menuItems:external_prop_types_default().arrayOf(external_prop_types_default().shape({key:external_prop_types_default().string.isRequired,icon:external_prop_types_default().node,label:external_prop_types_default().string.isRequired,roles:external_prop_types_default().arrayOf(external_prop_types_default().string)})).isRequired,user:external_prop_types_default().shape({name:external_prop_types_default().string.isRequired,email:external_prop_types_default().string.isRequired,id:external_prop_types_default().string.isRequired,roles:external_prop_types_default().arrayOf(external_prop_types_default().string).isRequired}).isRequired,onLogout:external_prop_types_default().func.isRequired,version:external_prop_types_default().string,showVersion:external_prop_types_default().bool,toggleTheme:external_prop_types_default().func.isRequired,isDarkMode:external_prop_types_default().bool.isRequired,oauthCallbackUrl:external_prop_types_default().string.isRequired,locale:external_prop_types_default().string};var ThemeToggle=function(){var config=(0,external_react_namespaceObject.useContext)(CodebitConfigContext);if(!config)throw Error("ThemeToggle must be used within CodebitConfigProvider");return(0,jsx_runtime.jsx)(external_antd_namespaceObject.Switch,{theme:config.isDarkMode?"dark":"light",checked:config.isDarkMode,onChange:config.toggleTheme,checkedChildren:(0,jsx_runtime.jsx)(icons_namespaceObject.MoonOutlined,{}),unCheckedChildren:(0,jsx_runtime.jsx)(icons_namespaceObject.SunOutlined,{})})},injectStylesIntoStyleTag=__webpack_require__("../../node_modules/.pnpm/@rsbuild+core@1.0.1-beta.11/node_modules/@rsbuild/core/compiled/style-loader/runtime/injectStylesIntoStyleTag.js"),injectStylesIntoStyleTag_default=__webpack_require__.n(injectStylesIntoStyleTag),styleDomAPI=__webpack_require__("../../node_modules/.pnpm/@rsbuild+core@1.0.1-beta.11/node_modules/@rsbuild/core/compiled/style-loader/runtime/styleDomAPI.js"),styleDomAPI_default=__webpack_require__.n(styleDomAPI),insertBySelector=__webpack_require__("../../node_modules/.pnpm/@rsbuild+core@1.0.1-beta.11/node_modules/@rsbuild/core/compiled/style-loader/runtime/insertBySelector.js"),insertBySelector_default=__webpack_require__.n(insertBySelector),setAttributesWithoutAttributes=__webpack_require__("../../node_modules/.pnpm/@rsbuild+core@1.0.1-beta.11/node_modules/@rsbuild/core/compiled/style-loader/runtime/setAttributesWithoutAttributes.js"),setAttributesWithoutAttributes_default=__webpack_require__.n(setAttributesWithoutAttributes),insertStyleElement=__webpack_require__("../../node_modules/.pnpm/@rsbuild+core@1.0.1-beta.11/node_modules/@rsbuild/core/compiled/style-loader/runtime/insertStyleElement.js"),insertStyleElement_default=__webpack_require__.n(insertStyleElement),styleTagTransform=__webpack_require__("../../node_modules/.pnpm/@rsbuild+core@1.0.1-beta.11/node_modules/@rsbuild/core/compiled/style-loader/runtime/styleTagTransform.js"),styleTagTransform_default=__webpack_require__.n(styleTagTransform),LoggedMainContainer_module=__webpack_require__("../../../../node_modules/.pnpm/@rsbuild+core@1.0.1-beta.11/node_modules/@rsbuild/core/compiled/css-loader/index.js??ruleSet[1].rules[1].use[1]!builtin:lightningcss-loader??ruleSet[1].rules[1].use[2]!./src/components/LoggedMainContainer.module.css"),options={};options.styleTagTransform=styleTagTransform_default(),options.setAttributes=setAttributesWithoutAttributes_default(),options.insert=insertBySelector_default().bind(null,"head"),options.domAPI=styleDomAPI_default(),options.insertStyleElement=insertStyleElement_default(),injectStylesIntoStyleTag_default()(LoggedMainContainer_module.Z,options);var components_LoggedMainContainer_module=LoggedMainContainer_module.Z&&LoggedMainContainer_module.Z.locals?LoggedMainContainer_module.Z.locals:void 0,_external_antd_namespaceObject_Layout=external_antd_namespaceObject.Layout,Header=_external_antd_namespaceObject_Layout.Header,Sider=_external_antd_namespaceObject_Layout.Sider,Content=_external_antd_namespaceObject_Layout.Content,Text=external_antd_namespaceObject.Typography.Text,translations={en:{theme:"Theme",logout:"Logout",version:"Version"},pt:{theme:"Tema",logout:"Sair",version:"Vers\xe3o"}};function LoggedMainContainer(param){var locale,children=param.children,_ref=_sliced_to_array((0,external_react_namespaceObject.useState)(!1),2),collapsed=_ref[0],setCollapsed=_ref[1],_ref1=_sliced_to_array((0,external_react_namespaceObject.useState)(!1),2),isMobile=_ref1[0],setIsMobile=_ref1[1],_ref2=_sliced_to_array((0,external_react_namespaceObject.useState)(!1),2),drawerVisible=_ref2[0],setDrawerVisible=_ref2[1],navigate=(0,external_react_router_namespaceObject.useNavigate)(),location=(0,external_react_router_namespaceObject.useLocation)(),config=(0,external_react_namespaceObject.useContext)(CodebitConfigContext);if(!config)throw Error("LoggedContainer must be used within CodebitConfigProvider");var menuItems=config.menuItems,user=config.user,onLogout=config.onLogout,version=config.version,showVersion=config.showVersion,isDarkMode=config.isDarkMode,t=(locale=config.locale||("undefined"!=typeof navigator&&navigator.language&&navigator.language.startsWith("en")?"en":"pt"),function(key){return translations[locale]&&translations[locale][key]||translations.en[key]||key}),systemTheme=isDarkMode?"dark":"light",filteredMenuItems=(0,external_react_namespaceObject.useMemo)(function(){return menuItems.filter(function(item){return!item.role&&!item.roles||!!user&&!!user.roles&&(item.role?user.roles.includes(item.role):!!item.roles&&item.roles.some(function(role){return user.roles.includes(role)}))})},[menuItems,user]);(0,external_react_namespaceObject.useEffect)(function(){var checkScreenSize=function(){setIsMobile(window.innerWidth<768)};return checkScreenSize(),window.addEventListener("resize",checkScreenSize),function(){return window.removeEventListener("resize",checkScreenSize)}},[]);var handleMenuClick=function(key){navigate(key),isMobile&&setDrawerVisible(!1)},menuContent=(0,jsx_runtime.jsxs)(jsx_runtime.Fragment,{children:[(0,jsx_runtime.jsx)(external_antd_namespaceObject.Menu,{theme:systemTheme,mode:"inline",selectedKeys:[function(){var path=location.pathname,exactMatch=filteredMenuItems.find(function(item){return item.key===path});if(exactMatch)return exactMatch.key;var prefixMatch=filteredMenuItems.find(function(item){return path.startsWith(item.key)&&"/"!==item.key});return prefixMatch?prefixMatch.key:path}()],onClick:function(param){return handleMenuClick(param.key)},items:filteredMenuItems,className:components_LoggedMainContainer_module.menu}),(0,jsx_runtime.jsx)(external_antd_namespaceObject.Layout.Content,{className:components_LoggedMainContainer_module.menuSpacer}),showVersion&&version&&(0,jsx_runtime.jsx)(external_antd_namespaceObject.Menu,{theme:systemTheme,mode:"horizontal",className:components_LoggedMainContainer_module.versionMenu,disabled:!0,items:[{icon:collapsed?"".concat(t("version"),": ").concat(version):version,title:""}]}),(0,jsx_runtime.jsx)(external_antd_namespaceObject.Menu,{theme:systemTheme,mode:"horizontal",onClick:function(){var fn;return(fn=function(){return function(thisArg,body){var f,y,t,_={label:0,sent:function(){if(1&t[0])throw t[1];return t[1]},trys:[],ops:[]},g=Object.create(("function"==typeof Iterator?Iterator:Object).prototype);return g.next=verb(0),g.throw=verb(1),g.return=verb(2),"function"==typeof Symbol&&(g[Symbol.iterator]=function(){return this}),g;function verb(n){return function(v){var op=[n,v];if(f)throw TypeError("Generator is already executing.");for(;g&&(g=0,op[0]&&(_=0)),_;)try{if(f=1,y&&(t=2&op[0]?y.return:op[0]?y.throw||((t=y.return)&&t.call(y),0):y.next)&&!(t=t.call(y,op[1])).done)return t;switch(y=0,t&&(op=[2&op[0],t.value]),op[0]){case 0:case 1:t=op;break;case 4:return _.label++,{value:op[1],done:!1};case 5:_.label++,y=op[1],op=[0];continue;case 7:op=_.ops.pop(),_.trys.pop();continue;default:if(!(t=(t=_.trys).length>0&&t[t.length-1])&&(6===op[0]||2===op[0])){_=0;continue}if(3===op[0]&&(!t||op[1]>t[0]&&op[1]<t[3])){_.label=op[1];break}if(6===op[0]&&_.label<t[1]){_.label=t[1],t=op;break}if(t&&_.label<t[2]){_.label=t[2],_.ops.push(op);break}t[2]&&_.ops.pop(),_.trys.pop();continue}op=body.call(thisArg,_)}catch(e){op=[6,e],y=0}finally{f=t=0}if(5&op[0])throw op[1];return{value:op[0]?op[1]:void 0,done:!0}}}}(this,function(_state){switch(_state.label){case 0:if(!onLogout)return[3,2];return[4,onLogout()];case 1:_state.sent(),_state.label=2;case 2:return isMobile&&setDrawerVisible(!1),navigate("/"),[2]}})},function(){var self=this,args=arguments;return new Promise(function(resolve,reject){var gen=fn.apply(self,args);function _next(value){asyncGeneratorStep(gen,resolve,reject,_next,_throw,"next",value)}function _throw(err){asyncGeneratorStep(gen,resolve,reject,_next,_throw,"throw",err)}_next(void 0)})})()},className:components_LoggedMainContainer_module.logoutMenu,items:[{key:"logout",icon:(0,jsx_runtime.jsx)(icons_namespaceObject.LogoutOutlined,{}),label:t("logout"),danger:!0}]})]});return(0,jsx_runtime.jsxs)(external_antd_namespaceObject.Layout,{className:components_LoggedMainContainer_module.layout,children:[isMobile?(0,jsx_runtime.jsx)(external_antd_namespaceObject.Drawer,{placement:"left",onClose:function(){return setDrawerVisible(!1)},open:drawerVisible,width:250,className:components_LoggedMainContainer_module.drawer,classNames:{body:components_LoggedMainContainer_module.drawerBody},children:(0,jsx_runtime.jsx)(external_antd_namespaceObject.Flex,{vertical:!0,className:components_LoggedMainContainer_module.drawerFlex,children:menuContent})}):(0,jsx_runtime.jsx)(Sider,{theme:systemTheme,trigger:null,collapsible:!0,collapsed:!collapsed,breakpoint:"lg",collapsedWidth:80,className:components_LoggedMainContainer_module.sider,children:(0,jsx_runtime.jsx)(external_antd_namespaceObject.Layout,{className:components_LoggedMainContainer_module.siderLayout,children:menuContent})}),(0,jsx_runtime.jsxs)(external_antd_namespaceObject.Layout,{children:[(0,jsx_runtime.jsxs)(Header,{className:"".concat(components_LoggedMainContainer_module.header," ").concat(isMobile?components_LoggedMainContainer_module.mobile:""),children:[isMobile?(0,jsx_runtime.jsx)(external_antd_namespaceObject.Button,{type:"text",icon:(0,jsx_runtime.jsx)(icons_namespaceObject.MenuOutlined,{}),onClick:function(){return setDrawerVisible(!0)}}):(0,jsx_runtime.jsx)(external_antd_namespaceObject.Button,{type:"text",icon:collapsed?(0,jsx_runtime.jsx)(icons_namespaceObject.MenuUnfoldOutlined,{}):(0,jsx_runtime.jsx)(icons_namespaceObject.MenuFoldOutlined,{}),onClick:function(){return setCollapsed(!collapsed)}}),(0,jsx_runtime.jsxs)(external_antd_namespaceObject.Space,{size:isMobile?"small":"middle",className:"".concat(components_LoggedMainContainer_module.headerSpace," ").concat(isMobile?components_LoggedMainContainer_module.mobile:""),children:[!isMobile&&(0,jsx_runtime.jsx)(Text,{children:t("theme")}),(0,jsx_runtime.jsx)(ThemeToggle,{})]})]}),(0,jsx_runtime.jsx)(Content,{className:"".concat(components_LoggedMainContainer_module.content," ").concat(isMobile?components_LoggedMainContainer_module.mobile:""),children:children})]})]})}LoggedMainContainer.propTypes={children:external_prop_types_default().node.isRequired};var Login_module=__webpack_require__("../../../../node_modules/.pnpm/@rsbuild+core@1.0.1-beta.11/node_modules/@rsbuild/core/compiled/css-loader/index.js??ruleSet[1].rules[1].use[1]!builtin:lightningcss-loader??ruleSet[1].rules[1].use[2]!./src/public-pages/Login.module.css"),Login_module_options={};Login_module_options.styleTagTransform=styleTagTransform_default(),Login_module_options.setAttributes=setAttributesWithoutAttributes_default(),Login_module_options.insert=insertBySelector_default().bind(null,"head"),Login_module_options.domAPI=styleDomAPI_default(),Login_module_options.insertStyleElement=insertStyleElement_default(),injectStylesIntoStyleTag_default()(Login_module.Z,Login_module_options);var public_pages_Login_module=Login_module.Z&&Login_module.Z.locals?Login_module.Z.locals:void 0;function LoginContainer(param){var title=param.title,children=param.children,config=(0,external_react_namespaceObject.useContext)(CodebitConfigContext);if(!config)throw Error("Login must be used within CodebitConfigProvider");var classList=[public_pages_Login_module.loginCard];return config.isDarkMode&&classList.push(public_pages_Login_module.dark),(0,jsx_runtime.jsx)(external_antd_namespaceObject.Row,{justify:"center",align:"middle",className:public_pages_Login_module.containerRow,children:(0,jsx_runtime.jsxs)(external_antd_namespaceObject.Col,{xs:22,sm:18,md:14,lg:10,xl:8,children:[(0,jsx_runtime.jsx)(external_antd_namespaceObject.Row,{justify:"end",className:public_pages_Login_module.themeRow,children:(0,jsx_runtime.jsxs)(external_antd_namespaceObject.Space,{children:[(0,jsx_runtime.jsx)(external_antd_namespaceObject.Typography.Text,{children:"Tema"}),(0,jsx_runtime.jsx)(ThemeToggle,{})]})}),(0,jsx_runtime.jsxs)(external_antd_namespaceObject.Card,{className:classList.join(" "),children:[(0,jsx_runtime.jsxs)(external_antd_namespaceObject.Row,{justify:"center",className:public_pages_Login_module.titleRow,children:[(0,jsx_runtime.jsx)(external_antd_namespaceObject.Typography.Title,{level:3,className:public_pages_Login_module.appTitle,children:title}),(0,jsx_runtime.jsx)(external_antd_namespaceObject.Divider,{className:public_pages_Login_module.divider})]}),(0,jsx_runtime.jsx)(external_antd_namespaceObject.Typography.Title,{level:4,className:"login-header ".concat(public_pages_Login_module.loginHeader),children:"Entrar com Google"}),children]})]})})}LoginContainer.propTypes={title:external_prop_types_default().string.isRequired,children:external_prop_types_default().node};var Login_translations={en:{loginTitle:"Sign in",googleLogin:"Sign in with Google"},pt:{loginTitle:"Entrar",googleLogin:"Fazer login com o Google"}};function Login(param){var locale,title=param.title,_ref=_sliced_to_array((0,external_react_namespaceObject.useState)(!1),2),loading=_ref[0],setLoading=_ref[1],config=(0,external_react_namespaceObject.useContext)(CodebitConfigContext);if(!config)throw Error("Login must be used within CodebitConfigProvider");var oauthCallbackUrl=config.oauthCallbackUrl,t=(locale=config.locale||("undefined"!=typeof navigator&&navigator.language&&navigator.language.startsWith("en")?"en":"pt"),function(key){return Login_translations[locale]&&Login_translations[locale][key]||Login_translations.en[key]||key});return(0,jsx_runtime.jsx)(LoginContainer,{title:title||t("loginTitle"),children:(0,jsx_runtime.jsx)(external_antd_namespaceObject.Flex,{vertical:!0,align:"center",gap:20,children:(0,jsx_runtime.jsx)(external_antd_namespaceObject.Button,{type:"primary",size:"large",icon:(0,jsx_runtime.jsx)(icons_namespaceObject.GoogleOutlined,{}),loading:loading,onClick:function(){setLoading(!0),setTimeout(function(){console.debug("Redirecting to Google Login..."),globalThis.location.assign(oauthCallbackUrl)},1e3)},block:!0,children:t("googleLogin")})})})}Login.propTypes={title:external_prop_types_default().string.isRequired};var NotFound_module=__webpack_require__("../../../../node_modules/.pnpm/@rsbuild+core@1.0.1-beta.11/node_modules/@rsbuild/core/compiled/css-loader/index.js??ruleSet[1].rules[1].use[1]!builtin:lightningcss-loader??ruleSet[1].rules[1].use[2]!./src/public-pages/NotFound.module.css"),NotFound_module_options={};NotFound_module_options.styleTagTransform=styleTagTransform_default(),NotFound_module_options.setAttributes=setAttributesWithoutAttributes_default(),NotFound_module_options.insert=insertBySelector_default().bind(null,"head"),NotFound_module_options.domAPI=styleDomAPI_default(),NotFound_module_options.insertStyleElement=insertStyleElement_default(),injectStylesIntoStyleTag_default()(NotFound_module.Z,NotFound_module_options);var public_pages_NotFound_module=NotFound_module.Z&&NotFound_module.Z.locals?NotFound_module.Z.locals:void 0,Paragraph=external_antd_namespaceObject.Typography.Paragraph,NotFound_Content=external_antd_namespaceObject.Layout.Content,NotFoundPage=function(){var navigate=(0,external_react_router_namespaceObject.useNavigate)();return(0,jsx_runtime.jsx)(external_antd_namespaceObject.Layout,{className:public_pages_NotFound_module.layout,children:(0,jsx_runtime.jsx)(NotFound_Content,{className:public_pages_NotFound_module.content,children:(0,jsx_runtime.jsx)(external_antd_namespaceObject.Row,{justify:"center",align:"middle",className:public_pages_NotFound_module.row,children:(0,jsx_runtime.jsxs)(external_antd_namespaceObject.Col,{xs:22,sm:20,md:16,lg:14,xl:12,children:[(0,jsx_runtime.jsx)(external_antd_namespaceObject.Card,{className:public_pages_NotFound_module.card,children:(0,jsx_runtime.jsxs)(external_antd_namespaceObject.Row,{gutter:[0,24],children:[(0,jsx_runtime.jsx)(external_antd_namespaceObject.Col,{span:24,children:(0,jsx_runtime.jsx)(external_antd_namespaceObject.Result,{icon:(0,jsx_runtime.jsx)(external_antd_namespaceObject.Typography.Title,{level:1,className:public_pages_NotFound_module.icon404,children:"404"}),title:(0,jsx_runtime.jsx)(external_antd_namespaceObject.Typography.Title,{level:2,className:public_pages_NotFound_module.title,children:"P\xe1gina n\xe3o encontrada"}),subTitle:(0,jsx_runtime.jsx)(Paragraph,{className:public_pages_NotFound_module.subtitle,children:"Desculpe, a p\xe1gina que voc\xea est\xe1 procurando n\xe3o existe ou foi removida."})})}),(0,jsx_runtime.jsx)(external_antd_namespaceObject.Col,{span:24,children:(0,jsx_runtime.jsx)(external_antd_namespaceObject.Row,{justify:"center",children:(0,jsx_runtime.jsx)(external_antd_namespaceObject.Col,{children:(0,jsx_runtime.jsx)(external_antd_namespaceObject.Space,{direction:"vertical",size:"large",align:"center",children:(0,jsx_runtime.jsx)(external_antd_namespaceObject.Space,{size:"middle",children:(0,jsx_runtime.jsx)(external_antd_namespaceObject.Button,{type:"primary",size:"large",icon:(0,jsx_runtime.jsx)(icons_namespaceObject.HomeOutlined,{}),onClick:function(){navigate("/")},className:public_pages_NotFound_module.backButton,children:"Voltar"})})})})})})]})}),(0,jsx_runtime.jsx)(external_antd_namespaceObject.Row,{justify:"center",className:public_pages_NotFound_module.footer,children:(0,jsx_runtime.jsx)(external_antd_namespaceObject.Col,{children:(0,jsx_runtime.jsxs)(external_antd_namespaceObject.Typography.Text,{type:"secondary",children:["\xa9 ",new Date().getFullYear()," ","Codebit - Todos os direitos reservados"]})})})]})})})})},HandleError_module=__webpack_require__("../../../../node_modules/.pnpm/@rsbuild+core@1.0.1-beta.11/node_modules/@rsbuild/core/compiled/css-loader/index.js??ruleSet[1].rules[1].use[1]!builtin:lightningcss-loader??ruleSet[1].rules[1].use[2]!./src/public-pages/HandleError.module.css"),HandleError_module_options={};HandleError_module_options.styleTagTransform=styleTagTransform_default(),HandleError_module_options.setAttributes=setAttributesWithoutAttributes_default(),HandleError_module_options.insert=insertBySelector_default().bind(null,"head"),HandleError_module_options.domAPI=styleDomAPI_default(),HandleError_module_options.insertStyleElement=insertStyleElement_default(),injectStylesIntoStyleTag_default()(HandleError_module.Z,HandleError_module_options);var public_pages_HandleError_module=HandleError_module.Z&&HandleError_module.Z.locals?HandleError_module.Z.locals:void 0,HandleError_translations={en:{notFoundTitle:"Page not found",forbiddenTitle:"Access denied",internalTitle:"Internal error",genericTitle:"Unexpected error",notFoundMessage:"The page you were looking for does not exist.",forbiddenMessage:"You don't have permission to access this page.",internalMessage:"An internal server error occurred.",genericMessage:"An unexpected error occurred.",backHome:"Back to home"},pt:{notFoundTitle:"P\xe1gina n\xe3o encontrada",forbiddenTitle:"Acesso negado",internalTitle:"Erro interno",genericTitle:"Erro inesperado",notFoundMessage:"A p\xe1gina que voc\xea estava procurando n\xe3o existe.",forbiddenMessage:"Voc\xea n\xe3o tem permiss\xe3o para acessar esta p\xe1gina.",internalMessage:"Ocorreu um erro interno no servidor.",genericMessage:"Ocorreu um erro inesperado.",backHome:"Voltar para p\xe1gina inicial"}};function HandleError(param){var locale,title=param.title,error=(0,external_react_router_namespaceObject.useRouteError)(),navigate=(0,external_react_router_namespaceObject.useNavigate)(),config=(0,external_react_namespaceObject.useContext)(CodebitConfigContext),t=(locale=config&&config.locale||("undefined"!=typeof navigator&&navigator.language&&navigator.language.startsWith("en")?"en":"pt"),function(key){return HandleError_translations[locale]&&HandleError_translations[locale][key]||HandleError_translations.en[key]||HandleError_translations.pt[key]||key});return(0,jsx_runtime.jsx)(external_antd_namespaceObject.Flex,{justify:"center",align:"center",className:public_pages_HandleError_module.container,children:(0,jsx_runtime.jsx)(external_antd_namespaceObject.Flex,{className:public_pages_HandleError_module.content,children:(0,jsx_runtime.jsx)(external_antd_namespaceObject.Result,{status:error&&404===error.status?404:error&&403===error.status?403:error&&500===error.status?500:"error",title:(0,jsx_runtime.jsxs)(jsx_runtime.Fragment,{children:[(0,jsx_runtime.jsx)(external_antd_namespaceObject.Typography.Title,{level:2,className:public_pages_HandleError_module.title,children:title}),t(error&&404===error.status?"notFoundTitle":error&&403===error.status?"forbiddenTitle":error&&500===error.status?"internalTitle":"genericTitle")]}),subTitle:error&&404===error.status?t("notFoundMessage"):error&&403===error.status?t("forbiddenMessage"):error&&500===error.status?t("internalMessage"):error&&error.message||t("genericMessage"),extra:(0,jsx_runtime.jsx)(external_antd_namespaceObject.Button,{type:"primary",size:"large",onClick:function(){navigate("/")},children:t("backHome")})})})})}HandleError.propTypes={title:external_prop_types_default().string};var __webpack_export_target__=exports;for(var i in __webpack_exports__)__webpack_export_target__[i]=__webpack_exports__[i];__webpack_exports__.__esModule&&Object.defineProperty(__webpack_export_target__,"__esModule",{value:!0});
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
|
|
3
|
+
/** Props for the HandleError component */
|
|
4
|
+
export interface HandleErrorProps {
|
|
5
|
+
/** Optional title to display above the error message */
|
|
6
|
+
title?: string;
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* Error handling component for React Router.
|
|
11
|
+
*
|
|
12
|
+
* Displays an error page based on the route error status (404, 403, 500, or generic error). Provides a button to navigate back to the home page.
|
|
13
|
+
*
|
|
14
|
+
* @param props - Component props
|
|
15
|
+
* @returns JSX.Element - Error page layout
|
|
16
|
+
*/
|
|
17
|
+
export function HandleError(props: HandleErrorProps): React.JSX.Element;
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
|
|
3
|
+
/** Props for the Login component */
|
|
4
|
+
export interface LoginProps {
|
|
5
|
+
/** Title for the login screen */
|
|
6
|
+
title: string;
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* Login component that renders a login screen with Google OAuth integration.
|
|
11
|
+
*
|
|
12
|
+
* This component displays a login button that redirects to the configured OAuth callback URL. It must be used within a CodebitConfigProvider context to access the OAuth
|
|
13
|
+
* configuration.
|
|
14
|
+
*
|
|
15
|
+
* @param props - Component props
|
|
16
|
+
* @returns Login screen with Google login button
|
|
17
|
+
* @throws Error if used outside CodebitConfigProvider context
|
|
18
|
+
*/
|
|
19
|
+
export function Login(props: LoginProps): React.JSX.Element;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
|
|
3
|
+
/** Props for the LoginContainer component */
|
|
4
|
+
export interface LoginContainerProps {
|
|
5
|
+
/** Title to display in the login container */
|
|
6
|
+
title: string;
|
|
7
|
+
/** Child components to render inside the container */
|
|
8
|
+
children?: React.ReactNode;
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
/**
|
|
12
|
+
* Container component for login screens.
|
|
13
|
+
*
|
|
14
|
+
* Provides a centered card layout with theme toggle and title display. It must be used within a CodebitConfigProvider context to access theme settings.
|
|
15
|
+
*
|
|
16
|
+
* @param props - Component props
|
|
17
|
+
* @returns JSX.Element - Login container layout
|
|
18
|
+
* @throws Error if used outside CodebitConfigProvider context
|
|
19
|
+
*/
|
|
20
|
+
export function LoginContainer(props: LoginContainerProps): React.JSX.Element;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Component that renders a 404 not found page.
|
|
5
|
+
*
|
|
6
|
+
* Displays a centered card with a 404 icon, title, subtitle, and a button to navigate back home. Includes a footer with copyright information.
|
|
7
|
+
*
|
|
8
|
+
* @returns JSX.Element - Not found page layout
|
|
9
|
+
*/
|
|
10
|
+
export function NotFoundPage(): React.JSX.Element;
|
package/package.json
ADDED
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@codebit-programando-solucoes/codebit-web-antd",
|
|
3
|
+
"version": "1.1.1",
|
|
4
|
+
"main": "./dist/index.js",
|
|
5
|
+
"type": "commonjs",
|
|
6
|
+
"types": "./src/index.d.ts",
|
|
7
|
+
"description": "",
|
|
8
|
+
"author": "",
|
|
9
|
+
"license": "UNLICENSED",
|
|
10
|
+
"files": [
|
|
11
|
+
"dist",
|
|
12
|
+
"package.json",
|
|
13
|
+
"README.md"
|
|
14
|
+
],
|
|
15
|
+
"exports": {
|
|
16
|
+
".": {
|
|
17
|
+
"types": "./dist/index.d.ts",
|
|
18
|
+
"default": "./dist/index.js"
|
|
19
|
+
}
|
|
20
|
+
},
|
|
21
|
+
"dependencies": {
|
|
22
|
+
"@ant-design/icons": "^6.1.0",
|
|
23
|
+
"antd": "^5.27.6",
|
|
24
|
+
"prop-types": "^15.8.1",
|
|
25
|
+
"react": "^19.1.1",
|
|
26
|
+
"react-dom": "^19.1.1",
|
|
27
|
+
"react-router": "^7.9.4",
|
|
28
|
+
"sass": "^1.89.0"
|
|
29
|
+
},
|
|
30
|
+
"devDependencies": {
|
|
31
|
+
"@eslint/js": "^9.32.0",
|
|
32
|
+
"@rsbuild/plugin-react": "^1.4.1",
|
|
33
|
+
"@rslib/core": "^0.0.1",
|
|
34
|
+
"@swc/core": "^1.13.5",
|
|
35
|
+
"cross-env": "^10.0.0",
|
|
36
|
+
"css-loader": "^7.1.2",
|
|
37
|
+
"del-cli": "^6.0.0",
|
|
38
|
+
"dotenv": "^17.2.2",
|
|
39
|
+
"eslint": "^9.32.0",
|
|
40
|
+
"eslint-plugin-jsdoc": "^54.4.1",
|
|
41
|
+
"eslint-plugin-jsx-a11y": "^6.10.2",
|
|
42
|
+
"eslint-plugin-react": "^7.37.5",
|
|
43
|
+
"eslint-plugin-react-hooks": "^5.2.0",
|
|
44
|
+
"eslint-plugin-react-refresh": "^0.4.20",
|
|
45
|
+
"globals": "^16.3.0",
|
|
46
|
+
"prettier": "^3.6.2",
|
|
47
|
+
"prettier-plugin-jsdoc": "^1.3.3",
|
|
48
|
+
"glob": "^11.0.3",
|
|
49
|
+
"style-loader": "^4.0.0"
|
|
50
|
+
},
|
|
51
|
+
"scripts": {
|
|
52
|
+
"format:write": "prettier --write \"src/**/*.{js,jsx,mjs}\"",
|
|
53
|
+
"format:check": "prettier --check \"src/**/*.{js,jsx,mjs}\"",
|
|
54
|
+
"lint:check": "eslint \"{src,apps,libs,test}/**/*.{js,jsx,mjs}\"",
|
|
55
|
+
"lint:fix": "eslint \"{src,apps,libs,test}/**/*.{js,jsx,mjs}\" --fix",
|
|
56
|
+
"build": "rslib build",
|
|
57
|
+
"minify": "node scripts/minify.js"
|
|
58
|
+
}
|
|
59
|
+
}
|