@object-ui/console 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (129) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +118 -0
  3. package/dist/assets/AdvancedChartImpl-DAS1mU9o.js +7 -0
  4. package/dist/assets/AdvancedChartImpl-DAS1mU9o.js.br +0 -0
  5. package/dist/assets/AdvancedChartImpl-DAS1mU9o.js.gz +0 -0
  6. package/dist/assets/AuditLogPage-BQW_Xbnm.js +1 -0
  7. package/dist/assets/AuditLogPage-BQW_Xbnm.js.br +0 -0
  8. package/dist/assets/AuditLogPage-BQW_Xbnm.js.gz +0 -0
  9. package/dist/assets/ChartImpl-2ivTljUi.js +1 -0
  10. package/dist/assets/ChartImpl-2ivTljUi.js.br +0 -0
  11. package/dist/assets/ChartImpl-2ivTljUi.js.gz +0 -0
  12. package/dist/assets/DashboardView-Dt-4VhH6.js +1 -0
  13. package/dist/assets/DashboardView-Dt-4VhH6.js.br +0 -0
  14. package/dist/assets/DashboardView-Dt-4VhH6.js.gz +0 -0
  15. package/dist/assets/ForgotPasswordPage-zr9S5vrE.js +1 -0
  16. package/dist/assets/KanbanEnhanced-BlGp--J7.js +1 -0
  17. package/dist/assets/KanbanEnhanced-BlGp--J7.js.br +0 -0
  18. package/dist/assets/KanbanEnhanced-BlGp--J7.js.gz +0 -0
  19. package/dist/assets/KanbanImpl-B5wWMXrJ.js +1 -0
  20. package/dist/assets/KanbanImpl-B5wWMXrJ.js.br +0 -0
  21. package/dist/assets/KanbanImpl-B5wWMXrJ.js.gz +0 -0
  22. package/dist/assets/LoginPage-H688gsah.js +1 -0
  23. package/dist/assets/MarkdownImpl-BshtTFK2.js +29 -0
  24. package/dist/assets/MarkdownImpl-BshtTFK2.js.br +0 -0
  25. package/dist/assets/MarkdownImpl-BshtTFK2.js.gz +0 -0
  26. package/dist/assets/OrgManagementPage-x3qIkxHL.js +1 -0
  27. package/dist/assets/OrgManagementPage-x3qIkxHL.js.br +0 -0
  28. package/dist/assets/OrgManagementPage-x3qIkxHL.js.gz +0 -0
  29. package/dist/assets/PageView-BRN1h8QD.js +1 -0
  30. package/dist/assets/PageView-BRN1h8QD.js.br +0 -0
  31. package/dist/assets/PageView-BRN1h8QD.js.gz +0 -0
  32. package/dist/assets/ProfilePage-DjAiGvFb.js +1 -0
  33. package/dist/assets/ProfilePage-DjAiGvFb.js.br +0 -0
  34. package/dist/assets/ProfilePage-DjAiGvFb.js.gz +0 -0
  35. package/dist/assets/RecordDetailView-Bfu7541n.js +1 -0
  36. package/dist/assets/RecordDetailView-Bfu7541n.js.br +0 -0
  37. package/dist/assets/RecordDetailView-Bfu7541n.js.gz +0 -0
  38. package/dist/assets/RegisterPage-CR91Lc7x.js +1 -0
  39. package/dist/assets/ReportView-CwWsv2yl.js +1 -0
  40. package/dist/assets/ReportView-CwWsv2yl.js.br +0 -0
  41. package/dist/assets/ReportView-CwWsv2yl.js.gz +0 -0
  42. package/dist/assets/RoleManagementPage-DnWuzxKJ.js +1 -0
  43. package/dist/assets/RoleManagementPage-DnWuzxKJ.js.br +0 -0
  44. package/dist/assets/RoleManagementPage-DnWuzxKJ.js.gz +0 -0
  45. package/dist/assets/SearchResultsPage-DBpjAlh2.js +1 -0
  46. package/dist/assets/SearchResultsPage-DBpjAlh2.js.br +0 -0
  47. package/dist/assets/SearchResultsPage-DBpjAlh2.js.gz +0 -0
  48. package/dist/assets/UserManagementPage-o0_K0dzR.js +1 -0
  49. package/dist/assets/UserManagementPage-o0_K0dzR.js.br +0 -0
  50. package/dist/assets/UserManagementPage-o0_K0dzR.js.gz +0 -0
  51. package/dist/assets/ViewDesignerPage-BbwrZa9D.js +1 -0
  52. package/dist/assets/ViewDesignerPage-BbwrZa9D.js.br +0 -0
  53. package/dist/assets/ViewDesignerPage-BbwrZa9D.js.gz +0 -0
  54. package/dist/assets/data-adapter-Cn800k4a.js +1 -0
  55. package/dist/assets/data-adapter-Cn800k4a.js.br +0 -0
  56. package/dist/assets/data-adapter-Cn800k4a.js.gz +0 -0
  57. package/dist/assets/framework-mHWN965c.js +10 -0
  58. package/dist/assets/framework-mHWN965c.js.br +0 -0
  59. package/dist/assets/framework-mHWN965c.js.gz +0 -0
  60. package/dist/assets/index-BjEGJcpx.js +56 -0
  61. package/dist/assets/index-BjEGJcpx.js.br +0 -0
  62. package/dist/assets/index-BjEGJcpx.js.gz +0 -0
  63. package/dist/assets/index-CUnVdETN.css +1 -0
  64. package/dist/assets/index-CUnVdETN.css.br +0 -0
  65. package/dist/assets/index-CUnVdETN.css.gz +0 -0
  66. package/dist/assets/infrastructure-aS2LF8OZ.js +1 -0
  67. package/dist/assets/infrastructure-aS2LF8OZ.js.br +0 -0
  68. package/dist/assets/infrastructure-aS2LF8OZ.js.gz +0 -0
  69. package/dist/assets/maplibre-gl-D2AsLM0J.js +811 -0
  70. package/dist/assets/maplibre-gl-D2AsLM0J.js.br +0 -0
  71. package/dist/assets/maplibre-gl-D2AsLM0J.js.gz +0 -0
  72. package/dist/assets/plugins-core-CcBSZCjG.js +4 -0
  73. package/dist/assets/plugins-core-CcBSZCjG.js.br +0 -0
  74. package/dist/assets/plugins-core-CcBSZCjG.js.gz +0 -0
  75. package/dist/assets/plugins-views-DQwkCaaO.js +60 -0
  76. package/dist/assets/plugins-views-DQwkCaaO.js.br +0 -0
  77. package/dist/assets/plugins-views-DQwkCaaO.js.gz +0 -0
  78. package/dist/assets/plugins-views-P3eB-els.css +1 -0
  79. package/dist/assets/plugins-views-P3eB-els.css.br +0 -0
  80. package/dist/assets/plugins-views-P3eB-els.css.gz +0 -0
  81. package/dist/assets/systemObjects-DSpePIIy.js +1 -0
  82. package/dist/assets/systemObjects-DSpePIIy.js.br +2 -0
  83. package/dist/assets/systemObjects-DSpePIIy.js.gz +0 -0
  84. package/dist/assets/ui-components-DVonQS7H.js +31 -0
  85. package/dist/assets/ui-components-DVonQS7H.js.br +0 -0
  86. package/dist/assets/ui-components-DVonQS7H.js.gz +0 -0
  87. package/dist/assets/ui-components-GrNdJOi1.css +1 -0
  88. package/dist/assets/ui-components-GrNdJOi1.css.br +0 -0
  89. package/dist/assets/ui-components-GrNdJOi1.css.gz +0 -0
  90. package/dist/assets/ui-layout-BENIRxAF.js +1 -0
  91. package/dist/assets/ui-layout-BENIRxAF.js.br +0 -0
  92. package/dist/assets/ui-layout-BENIRxAF.js.gz +0 -0
  93. package/dist/assets/vendor-charts-CSvoW-yB.js +65 -0
  94. package/dist/assets/vendor-charts-CSvoW-yB.js.br +0 -0
  95. package/dist/assets/vendor-charts-CSvoW-yB.js.gz +0 -0
  96. package/dist/assets/vendor-dndkit-DRGpK6sP.js +5 -0
  97. package/dist/assets/vendor-dndkit-DRGpK6sP.js.br +0 -0
  98. package/dist/assets/vendor-dndkit-DRGpK6sP.js.gz +0 -0
  99. package/dist/assets/vendor-i18n-D5KbMT7w.js +9 -0
  100. package/dist/assets/vendor-i18n-D5KbMT7w.js.br +0 -0
  101. package/dist/assets/vendor-i18n-D5KbMT7w.js.gz +0 -0
  102. package/dist/assets/vendor-icons-CQ8b-fGy.js +8671 -0
  103. package/dist/assets/vendor-icons-CQ8b-fGy.js.br +0 -0
  104. package/dist/assets/vendor-icons-CQ8b-fGy.js.gz +0 -0
  105. package/dist/assets/vendor-objectstack-DqojdwYW.js +37 -0
  106. package/dist/assets/vendor-objectstack-DqojdwYW.js.br +0 -0
  107. package/dist/assets/vendor-objectstack-DqojdwYW.js.gz +0 -0
  108. package/dist/assets/vendor-radix-BbeYj_o4.js +56 -0
  109. package/dist/assets/vendor-radix-BbeYj_o4.js.br +0 -0
  110. package/dist/assets/vendor-radix-BbeYj_o4.js.gz +0 -0
  111. package/dist/assets/vendor-react-Dy_xkBQQ.js +60 -0
  112. package/dist/assets/vendor-react-Dy_xkBQQ.js.br +0 -0
  113. package/dist/assets/vendor-react-Dy_xkBQQ.js.gz +0 -0
  114. package/dist/assets/vendor-ui-utils-h6yAcIi9.js +1 -0
  115. package/dist/assets/vendor-ui-utils-h6yAcIi9.js.br +0 -0
  116. package/dist/assets/vendor-ui-utils-h6yAcIi9.js.gz +0 -0
  117. package/dist/assets/vendor-zod-Dpl-cylz.js +39 -0
  118. package/dist/assets/vendor-zod-Dpl-cylz.js.br +0 -0
  119. package/dist/assets/vendor-zod-Dpl-cylz.js.gz +0 -0
  120. package/dist/index.html +49 -0
  121. package/dist/index.html.br +0 -0
  122. package/dist/index.html.gz +0 -0
  123. package/dist/manifest.json +19 -0
  124. package/dist/mockServiceWorker.js +349 -0
  125. package/dist/mockServiceWorker.js.br +0 -0
  126. package/dist/mockServiceWorker.js.gz +0 -0
  127. package/dist/stats.html +4949 -0
  128. package/package.json +98 -0
  129. package/plugin.ts +177 -0
@@ -0,0 +1 @@
1
+ import{r as a,R as N,j as e}from"./vendor-react-Dy_xkBQQ.js";import{i as V,I as O,u as z}from"./vendor-i18n-D5KbMT7w.js";const q={common:{loading:"Loading...",save:"Save",cancel:"Cancel",delete:"Delete",edit:"Edit",create:"Create",search:"Search",filter:"Filter",reset:"Reset",confirm:"Confirm",close:"Close",back:"Back",next:"Next",previous:"Previous",submit:"Submit",refresh:"Refresh",export:"Export",import:"Import",yes:"Yes",no:"No",ok:"OK",actions:"Actions",more:"More",selectAll:"Select All",clearAll:"Clear All",noData:"No data",noResults:"No results found",required:"Required",optional:"Optional"},validation:{required:"{{field}} is required",minLength:"{{field}} must be at least {{min}} characters",maxLength:"{{field}} must be at most {{max}} characters",min:"{{field}} must be at least {{min}}",max:"{{field}} must be at most {{max}}",email:"Please enter a valid email address",url:"Please enter a valid URL",pattern:"{{field}} format is invalid",unique:"{{field}} must be unique",type:"{{field}} must be a valid {{type}}"},form:{addItem:"Add item",removeItem:"Remove item",fieldRequired:"This field is required",invalidFormat:"Invalid format",saveSuccess:"Saved successfully",saveError:"Failed to save",unsavedChanges:"You have unsaved changes. Are you sure you want to leave?",stepOf:"Step {{current}} of {{total}}"},table:{rowsPerPage:"Rows per page",showing:"Showing {{from}} to {{to}} of {{total}}",noRows:"No rows to display",sortAsc:"Sort ascending",sortDesc:"Sort descending",filterColumn:"Filter {{column}}",columns:"Columns",exportCSV:"Export CSV",exportExcel:"Export Excel",selectRow:"Select row",selectAllRows:"Select all rows",expandRow:"Expand row",collapseRow:"Collapse row"},calendar:{today:"Today",month:"Month",week:"Week",day:"Day",agenda:"Agenda",allDay:"All Day",noEvents:"No events",newEvent:"New event"},kanban:{addCard:"Add card",addColumn:"Add column",moveCard:"Move card",deleteCard:"Delete card",deleteColumn:"Delete column"},chart:{noData:"No chart data available",loading:"Loading chart..."},dashboard:{addWidget:"Add widget",removeWidget:"Remove widget",editLayout:"Edit layout",saveLayout:"Save layout",resetLayout:"Reset layout"},console:{title:"ObjectStack Console",initializing:"Initializing application...",loadingSteps:{connecting:"Connecting to data source",loadingConfig:"Loading configuration",preparingWorkspace:"Preparing workspace"},shortcuts:{title:"Keyboard Shortcuts",description:"Quick reference for all available keyboard shortcuts.",groups:{general:"General",navigation:"Navigation",dataViews:"Data Views",preferences:"Preferences"},openCommandPalette:"Open command palette",showShortcuts:"Show keyboard shortcuts",closeDialog:"Close dialog / panel",toggleSidebar:"Toggle sidebar",focusSearch:"Focus search",createRecord:"Create new record",refreshData:"Refresh data",editRecord:"Edit selected record",toggleDarkMode:"Toggle dark mode"},commandPalette:{placeholder:"Type a command or search...",noResults:"No results found.",objects:"Objects",dashboards:"Dashboards",pages:"Pages",reports:"Reports",switchApp:"Switch App",current:"Current",preferences:"Preferences",lightTheme:"Light Theme",darkTheme:"Dark Theme",systemTheme:"System Theme",actions:"Actions",openFullSearch:"Open Full Search Page"},errors:{somethingWentWrong:"Something went wrong",unexpectedError:"An unexpected error occurred while rendering this view.",tryAgain:"Try Again",goHome:"Go Home",errorDetails:"Error Details (dev only)"},theme:{toggle:"Toggle theme",light:"Light",dark:"Dark",system:"System"},objectView:{objectNotFound:"Object Not Found",objectNotFoundDescription:'The object "{{objectName}}" does not exist in the current configuration.',objectNotFoundHint:"Check your app navigation settings or select a different object from the sidebar.",allRecords:"All Records",exitDesignMode:"Exit Design Mode",enterDesignMode:"Enter Design Mode",metadataInspector:"Metadata Inspector",editView:"Edit View",addView:"Add View",designTools:"Design tools",new:"New"},localeSwitcher:{label:"Language"}},errors:{networkError:"Network error. Please check your connection.",serverError:"Server error. Please try again later.",notFound:"Resource not found.",unauthorized:"You are not authorized to perform this action.",forbidden:"Access denied.",timeout:"Request timed out. Please try again.",unknown:"An unexpected error occurred."}},I={common:{loading:"加载中...",save:"保存",cancel:"取消",delete:"删除",edit:"编辑",create:"新建",search:"搜索",filter:"筛选",reset:"重置",confirm:"确认",close:"关闭",back:"返回",next:"下一步",previous:"上一步",submit:"提交",refresh:"刷新",export:"导出",import:"导入",yes:"是",no:"否",ok:"确定",actions:"操作",more:"更多",selectAll:"全选",clearAll:"清除全部",noData:"暂无数据",noResults:"未找到结果",required:"必填",optional:"选填"},validation:{required:"{{field}}不能为空",minLength:"{{field}}至少需要{{min}}个字符",maxLength:"{{field}}最多{{max}}个字符",min:"{{field}}不能小于{{min}}",max:"{{field}}不能大于{{max}}",email:"请输入有效的邮箱地址",url:"请输入有效的URL",pattern:"{{field}}格式不正确",unique:"{{field}}必须唯一",type:"{{field}}必须是有效的{{type}}"},form:{addItem:"添加项目",removeItem:"移除项目",fieldRequired:"此字段为必填项",invalidFormat:"格式不正确",saveSuccess:"保存成功",saveError:"保存失败",unsavedChanges:"您有未保存的更改,确定要离开吗?",stepOf:"第{{current}}步,共{{total}}步"},table:{rowsPerPage:"每页行数",showing:"显示第{{from}}到{{to}}条,共{{total}}条",noRows:"暂无数据",sortAsc:"升序排列",sortDesc:"降序排列",filterColumn:"筛选{{column}}",columns:"列",exportCSV:"导出CSV",exportExcel:"导出Excel",selectRow:"选择行",selectAllRows:"选择所有行",expandRow:"展开行",collapseRow:"折叠行"},calendar:{today:"今天",month:"月",week:"周",day:"日",agenda:"日程",allDay:"全天",noEvents:"暂无事件",newEvent:"新建事件"},kanban:{addCard:"添加卡片",addColumn:"添加列",moveCard:"移动卡片",deleteCard:"删除卡片",deleteColumn:"删除列"},chart:{noData:"暂无图表数据",loading:"图表加载中..."},dashboard:{addWidget:"添加组件",removeWidget:"移除组件",editLayout:"编辑布局",saveLayout:"保存布局",resetLayout:"重置布局"},console:{title:"ObjectStack 控制台",initializing:"正在初始化应用程序...",loadingSteps:{connecting:"正在连接数据源",loadingConfig:"正在加载配置",preparingWorkspace:"正在准备工作区"},shortcuts:{title:"键盘快捷键",description:"所有可用键盘快捷键的快速参考。",groups:{general:"通用",navigation:"导航",dataViews:"数据视图",preferences:"偏好设置"},openCommandPalette:"打开命令面板",showShortcuts:"显示键盘快捷键",closeDialog:"关闭对话框/面板",toggleSidebar:"切换侧边栏",focusSearch:"聚焦搜索",createRecord:"新建记录",refreshData:"刷新数据",editRecord:"编辑选中记录",toggleDarkMode:"切换深色模式"},commandPalette:{placeholder:"输入命令或搜索...",noResults:"未找到结果。",objects:"对象",dashboards:"仪表盘",pages:"页面",reports:"报表",switchApp:"切换应用",current:"当前",preferences:"偏好设置",lightTheme:"浅色主题",darkTheme:"深色主题",systemTheme:"系统主题",actions:"操作",openFullSearch:"打开完整搜索页面"},errors:{somethingWentWrong:"出错了",unexpectedError:"渲染此视图时发生意外错误。",tryAgain:"重试",goHome:"返回首页",errorDetails:"错误详情(仅开发模式)"},theme:{toggle:"切换主题",light:"浅色",dark:"深色",system:"系统"},objectView:{objectNotFound:"未找到对象",objectNotFoundDescription:'对象"{{objectName}}"在当前配置中不存在。',objectNotFoundHint:"请检查您的应用导航设置或从侧边栏选择其他对象。",allRecords:"所有记录",exitDesignMode:"退出设计模式",enterDesignMode:"进入设计模式",metadataInspector:"元数据检查器",editView:"编辑视图",addView:"添加视图",designTools:"设计工具",new:"新建"},localeSwitcher:{label:"语言"}},errors:{networkError:"网络错误,请检查网络连接。",serverError:"服务器错误,请稍后重试。",notFound:"资源未找到。",unauthorized:"您没有权限执行此操作。",forbidden:"访问被拒绝。",timeout:"请求超时,请重试。",unknown:"发生未知错误。"}},M={common:{loading:"読み込み中...",save:"保存",cancel:"キャンセル",delete:"削除",edit:"編集",create:"作成",search:"検索",filter:"フィルター",reset:"リセット",confirm:"確認",close:"閉じる",back:"戻る",next:"次へ",previous:"前へ",submit:"送信",refresh:"更新",export:"エクスポート",import:"インポート",yes:"はい",no:"いいえ",ok:"OK",actions:"操作",more:"もっと見る",selectAll:"すべて選択",clearAll:"すべてクリア",noData:"データがありません",noResults:"結果が見つかりません",required:"必須",optional:"任意"},validation:{required:"{{field}}は必須です",minLength:"{{field}}は{{min}}文字以上で入力してください",maxLength:"{{field}}は{{max}}文字以下で入力してください",min:"{{field}}は{{min}}以上にしてください",max:"{{field}}は{{max}}以下にしてください",email:"有効なメールアドレスを入力してください",url:"有効なURLを入力してください",pattern:"{{field}}の形式が正しくありません",unique:"{{field}}は一意である必要があります",type:"{{field}}は有効な{{type}}である必要があります"},form:{addItem:"項目を追加",removeItem:"項目を削除",fieldRequired:"この項目は必須です",invalidFormat:"形式が正しくありません",saveSuccess:"保存しました",saveError:"保存に失敗しました",unsavedChanges:"保存されていない変更があります。このページを離れますか?",stepOf:"ステップ {{current}} / {{total}}"},table:{rowsPerPage:"1ページの行数",showing:"{{total}}件中{{from}}〜{{to}}件を表示",noRows:"表示するデータがありません",sortAsc:"昇順",sortDesc:"降順",filterColumn:"{{column}}でフィルター",columns:"列",exportCSV:"CSVエクスポート",exportExcel:"Excelエクスポート",selectRow:"行を選択",selectAllRows:"すべての行を選択",expandRow:"行を展開",collapseRow:"行を折りたたむ"},calendar:{today:"今日",month:"月",week:"週",day:"日",agenda:"予定表",allDay:"終日",noEvents:"予定はありません",newEvent:"新しい予定"},kanban:{addCard:"カードを追加",addColumn:"カラムを追加",moveCard:"カードを移動",deleteCard:"カードを削除",deleteColumn:"カラムを削除"},chart:{noData:"チャートデータがありません",loading:"チャート読み込み中..."},dashboard:{addWidget:"ウィジェットを追加",removeWidget:"ウィジェットを削除",editLayout:"レイアウトを編集",saveLayout:"レイアウトを保存",resetLayout:"レイアウトをリセット"},console:{title:"ObjectStack コンソール",initializing:"アプリケーションを初期化中...",loadingSteps:{connecting:"データソースに接続中",loadingConfig:"設定を読み込み中",preparingWorkspace:"ワークスペースを準備中"},shortcuts:{title:"キーボードショートカット",description:"利用可能なすべてのキーボードショートカットのクイックリファレンス。",groups:{general:"一般",navigation:"ナビゲーション",dataViews:"データビュー",preferences:"設定"},openCommandPalette:"コマンドパレットを開く",showShortcuts:"キーボードショートカットを表示",closeDialog:"ダイアログ / パネルを閉じる",toggleSidebar:"サイドバーを切り替え",focusSearch:"検索にフォーカス",createRecord:"新しいレコードを作成",refreshData:"データを更新",editRecord:"選択したレコードを編集",toggleDarkMode:"ダークモードを切り替え"},commandPalette:{placeholder:"コマンドを入力または検索...",noResults:"結果が見つかりません。",objects:"オブジェクト",dashboards:"ダッシュボード",pages:"ページ",reports:"レポート",switchApp:"アプリを切り替え",current:"現在",preferences:"設定",lightTheme:"ライトテーマ",darkTheme:"ダークテーマ",systemTheme:"システムテーマ",actions:"アクション",openFullSearch:"完全な検索ページを開く"},errors:{somethingWentWrong:"問題が発生しました",unexpectedError:"このビューのレンダリング中に予期しないエラーが発生しました。",tryAgain:"再試行",goHome:"ホームに戻る",errorDetails:"エラー詳細(開発モードのみ)"},theme:{toggle:"テーマを切り替え",light:"ライト",dark:"ダーク",system:"システム"},objectView:{objectNotFound:"オブジェクトが見つかりません",objectNotFoundDescription:"オブジェクト「{{objectName}}」は現在の設定に存在しません。",objectNotFoundHint:"アプリのナビゲーション設定を確認するか、サイドバーから別のオブジェクトを選択してください。",allRecords:"すべてのレコード",exitDesignMode:"デザインモードを終了",enterDesignMode:"デザインモードに入る",metadataInspector:"メタデータインスペクター",editView:"ビューを編集",addView:"ビューを追加",designTools:"デザインツール",new:"新規"},localeSwitcher:{label:"言語"}},errors:{networkError:"ネットワークエラーです。接続を確認してください。",serverError:"サーバーエラーです。後でもう一度お試しください。",notFound:"リソースが見つかりません。",unauthorized:"この操作を実行する権限がありません。",forbidden:"アクセスが拒否されました。",timeout:"リクエストがタイムアウトしました。もう一度お試しください。",unknown:"予期しないエラーが発生しました。"}},W={common:{loading:"로딩 중...",save:"저장",cancel:"취소",delete:"삭제",edit:"편집",create:"생성",search:"검색",filter:"필터",reset:"초기화",confirm:"확인",close:"닫기",back:"뒤로",next:"다음",previous:"이전",submit:"제출",refresh:"새로고침",export:"내보내기",import:"가져오기",yes:"예",no:"아니오",ok:"확인",actions:"작업",more:"더보기",selectAll:"모두 선택",clearAll:"모두 지우기",noData:"데이터 없음",noResults:"결과를 찾을 수 없습니다",required:"필수",optional:"선택"},validation:{required:"{{field}}은(는) 필수입니다",minLength:"{{field}}은(는) 최소 {{min}}자 이상이어야 합니다",maxLength:"{{field}}은(는) 최대 {{max}}자까지 가능합니다",min:"{{field}}은(는) {{min}} 이상이어야 합니다",max:"{{field}}은(는) {{max}} 이하여야 합니다",email:"유효한 이메일 주소를 입력해주세요",url:"유효한 URL을 입력해주세요",pattern:"{{field}} 형식이 올바르지 않습니다",unique:"{{field}}은(는) 고유해야 합니다",type:"{{field}}은(는) 유효한 {{type}}이어야 합니다"},form:{addItem:"항목 추가",removeItem:"항목 제거",fieldRequired:"이 필드는 필수입니다",invalidFormat:"형식이 올바르지 않습니다",saveSuccess:"저장되었습니다",saveError:"저장에 실패했습니다",unsavedChanges:"저장하지 않은 변경사항이 있습니다. 페이지를 떠나시겠습니까?",stepOf:"{{total}}단계 중 {{current}}단계"},table:{rowsPerPage:"페이지당 행 수",showing:"{{total}}개 중 {{from}}~{{to}} 표시",noRows:"표시할 데이터가 없습니다",sortAsc:"오름차순 정렬",sortDesc:"내림차순 정렬",filterColumn:"{{column}} 필터",columns:"열",exportCSV:"CSV 내보내기",exportExcel:"Excel 내보내기",selectRow:"행 선택",selectAllRows:"모든 행 선택",expandRow:"행 펼치기",collapseRow:"행 접기"},calendar:{today:"오늘",month:"월",week:"주",day:"일",agenda:"일정",allDay:"종일",noEvents:"일정이 없습니다",newEvent:"새 일정"},kanban:{addCard:"카드 추가",addColumn:"열 추가",moveCard:"카드 이동",deleteCard:"카드 삭제",deleteColumn:"열 삭제"},chart:{noData:"차트 데이터가 없습니다",loading:"차트 로딩 중..."},dashboard:{addWidget:"위젯 추가",removeWidget:"위젯 제거",editLayout:"레이아웃 편집",saveLayout:"레이아웃 저장",resetLayout:"레이아웃 초기화"},console:{title:"ObjectStack 콘솔",initializing:"애플리케이션 초기화 중...",loadingSteps:{connecting:"데이터 소스에 연결 중",loadingConfig:"설정 로드 중",preparingWorkspace:"워크스페이스 준비 중"},shortcuts:{title:"키보드 단축키",description:"사용 가능한 모든 키보드 단축키 빠른 참조.",groups:{general:"일반",navigation:"탐색",dataViews:"데이터 뷰",preferences:"환경설정"},openCommandPalette:"명령 팔레트 열기",showShortcuts:"키보드 단축키 표시",closeDialog:"대화상자 / 패널 닫기",toggleSidebar:"사이드바 전환",focusSearch:"검색에 포커스",createRecord:"새 레코드 생성",refreshData:"데이터 새로고침",editRecord:"선택한 레코드 편집",toggleDarkMode:"다크 모드 전환"},commandPalette:{placeholder:"명령어를 입력하거나 검색...",noResults:"결과를 찾을 수 없습니다.",objects:"객체",dashboards:"대시보드",pages:"페이지",reports:"보고서",switchApp:"앱 전환",current:"현재",preferences:"환경설정",lightTheme:"라이트 테마",darkTheme:"다크 테마",systemTheme:"시스템 테마",actions:"작업",openFullSearch:"전체 검색 페이지 열기"},errors:{somethingWentWrong:"문제가 발생했습니다",unexpectedError:"이 뷰를 렌더링하는 중 예기치 않은 오류가 발생했습니다.",tryAgain:"다시 시도",goHome:"홈으로 이동",errorDetails:"오류 상세정보 (개발 모드 전용)"},theme:{toggle:"테마 전환",light:"라이트",dark:"다크",system:"시스템"},objectView:{objectNotFound:"객체를 찾을 수 없음",objectNotFoundDescription:'객체 "{{objectName}}"이(가) 현재 구성에 존재하지 않습니다.',objectNotFoundHint:"앱 탐색 설정을 확인하거나 사이드바에서 다른 객체를 선택하세요.",allRecords:"모든 레코드",exitDesignMode:"디자인 모드 종료",enterDesignMode:"디자인 모드 시작",metadataInspector:"메타데이터 인스펙터",editView:"뷰 편집",addView:"뷰 추가",designTools:"디자인 도구",new:"새로 만들기"},localeSwitcher:{label:"언어"}},errors:{networkError:"네트워크 오류입니다. 연결을 확인해주세요.",serverError:"서버 오류입니다. 나중에 다시 시도해주세요.",notFound:"리소스를 찾을 수 없습니다.",unauthorized:"이 작업을 수행할 권한이 없습니다.",forbidden:"접근이 거부되었습니다.",timeout:"요청 시간이 초과되었습니다. 다시 시도해주세요.",unknown:"예기치 않은 오류가 발생했습니다."}},H={common:{loading:"Wird geladen...",save:"Speichern",cancel:"Abbrechen",delete:"Löschen",edit:"Bearbeiten",create:"Erstellen",search:"Suchen",filter:"Filtern",reset:"Zurücksetzen",confirm:"Bestätigen",close:"Schließen",back:"Zurück",next:"Weiter",previous:"Zurück",submit:"Absenden",refresh:"Aktualisieren",export:"Exportieren",import:"Importieren",yes:"Ja",no:"Nein",ok:"OK",actions:"Aktionen",more:"Mehr",selectAll:"Alle auswählen",clearAll:"Alle löschen",noData:"Keine Daten",noResults:"Keine Ergebnisse gefunden",required:"Erforderlich",optional:"Optional"},validation:{required:"{{field}} ist erforderlich",minLength:"{{field}} muss mindestens {{min}} Zeichen lang sein",maxLength:"{{field}} darf höchstens {{max}} Zeichen lang sein",min:"{{field}} muss mindestens {{min}} sein",max:"{{field}} darf höchstens {{max}} sein",email:"Bitte geben Sie eine gültige E-Mail-Adresse ein",url:"Bitte geben Sie eine gültige URL ein",pattern:"{{field}} hat ein ungültiges Format",unique:"{{field}} muss eindeutig sein",type:"{{field}} muss ein gültiger {{type}} sein"},form:{addItem:"Element hinzufügen",removeItem:"Element entfernen",fieldRequired:"Dieses Feld ist erforderlich",invalidFormat:"Ungültiges Format",saveSuccess:"Erfolgreich gespeichert",saveError:"Speichern fehlgeschlagen",unsavedChanges:"Sie haben nicht gespeicherte Änderungen. Möchten Sie die Seite wirklich verlassen?",stepOf:"Schritt {{current}} von {{total}}"},table:{rowsPerPage:"Zeilen pro Seite",showing:"{{from}} bis {{to}} von {{total}} angezeigt",noRows:"Keine Zeilen vorhanden",sortAsc:"Aufsteigend sortieren",sortDesc:"Absteigend sortieren",filterColumn:"{{column}} filtern",columns:"Spalten",exportCSV:"CSV exportieren",exportExcel:"Excel exportieren",selectRow:"Zeile auswählen",selectAllRows:"Alle Zeilen auswählen",expandRow:"Zeile erweitern",collapseRow:"Zeile reduzieren"},calendar:{today:"Heute",month:"Monat",week:"Woche",day:"Tag",agenda:"Agenda",allDay:"Ganztägig",noEvents:"Keine Termine",newEvent:"Neuer Termin"},kanban:{addCard:"Karte hinzufügen",addColumn:"Spalte hinzufügen",moveCard:"Karte verschieben",deleteCard:"Karte löschen",deleteColumn:"Spalte löschen"},chart:{noData:"Keine Diagrammdaten verfügbar",loading:"Diagramm wird geladen..."},dashboard:{addWidget:"Widget hinzufügen",removeWidget:"Widget entfernen",editLayout:"Layout bearbeiten",saveLayout:"Layout speichern",resetLayout:"Layout zurücksetzen"},console:{title:"ObjectStack Konsole",initializing:"Anwendung wird initialisiert...",loadingSteps:{connecting:"Verbindung zur Datenquelle herstellen",loadingConfig:"Konfiguration laden",preparingWorkspace:"Arbeitsbereich vorbereiten"},shortcuts:{title:"Tastenkürzel",description:"Kurzreferenz für alle verfügbaren Tastenkürzel.",groups:{general:"Allgemein",navigation:"Navigation",dataViews:"Datenansichten",preferences:"Einstellungen"},openCommandPalette:"Befehlspalette öffnen",showShortcuts:"Tastenkürzel anzeigen",closeDialog:"Dialog / Panel schließen",toggleSidebar:"Seitenleiste umschalten",focusSearch:"Suche fokussieren",createRecord:"Neuen Datensatz erstellen",refreshData:"Daten aktualisieren",editRecord:"Ausgewählten Datensatz bearbeiten",toggleDarkMode:"Dunkelmodus umschalten"},commandPalette:{placeholder:"Befehl eingeben oder suchen...",noResults:"Keine Ergebnisse gefunden.",objects:"Objekte",dashboards:"Dashboards",pages:"Seiten",reports:"Berichte",switchApp:"App wechseln",current:"Aktuell",preferences:"Einstellungen",lightTheme:"Helles Design",darkTheme:"Dunkles Design",systemTheme:"Systemdesign",actions:"Aktionen",openFullSearch:"Vollständige Suchseite öffnen"},errors:{somethingWentWrong:"Etwas ist schiefgelaufen",unexpectedError:"Beim Rendern dieser Ansicht ist ein unerwarteter Fehler aufgetreten.",tryAgain:"Erneut versuchen",goHome:"Zur Startseite",errorDetails:"Fehlerdetails (nur Entwicklung)"},theme:{toggle:"Design umschalten",light:"Hell",dark:"Dunkel",system:"System"},objectView:{objectNotFound:"Objekt nicht gefunden",objectNotFoundDescription:'Das Objekt „{{objectName}}" existiert in der aktuellen Konfiguration nicht.',objectNotFoundHint:"Überprüfen Sie Ihre App-Navigationseinstellungen oder wählen Sie ein anderes Objekt aus der Seitenleiste.",allRecords:"Alle Datensätze",exitDesignMode:"Designmodus beenden",enterDesignMode:"Designmodus starten",metadataInspector:"Metadaten-Inspektor",editView:"Ansicht bearbeiten",addView:"Ansicht hinzufügen",designTools:"Design-Werkzeuge",new:"Neu"},localeSwitcher:{label:"Sprache"}},errors:{networkError:"Netzwerkfehler. Bitte überprüfen Sie Ihre Verbindung.",serverError:"Serverfehler. Bitte versuchen Sie es später erneut.",notFound:"Ressource nicht gefunden.",unauthorized:"Sie sind nicht berechtigt, diese Aktion auszuführen.",forbidden:"Zugriff verweigert.",timeout:"Zeitüberschreitung. Bitte versuchen Sie es erneut.",unknown:"Ein unerwarteter Fehler ist aufgetreten."}},U={common:{loading:"Chargement...",save:"Enregistrer",cancel:"Annuler",delete:"Supprimer",edit:"Modifier",create:"Créer",search:"Rechercher",filter:"Filtrer",reset:"Réinitialiser",confirm:"Confirmer",close:"Fermer",back:"Retour",next:"Suivant",previous:"Précédent",submit:"Soumettre",refresh:"Actualiser",export:"Exporter",import:"Importer",yes:"Oui",no:"Non",ok:"OK",actions:"Actions",more:"Plus",selectAll:"Tout sélectionner",clearAll:"Tout effacer",noData:"Aucune donnée",noResults:"Aucun résultat trouvé",required:"Obligatoire",optional:"Facultatif"},validation:{required:"{{field}} est obligatoire",minLength:"{{field}} doit contenir au moins {{min}} caractères",maxLength:"{{field}} doit contenir au plus {{max}} caractères",min:"{{field}} doit être au moins {{min}}",max:"{{field}} doit être au plus {{max}}",email:"Veuillez saisir une adresse e-mail valide",url:"Veuillez saisir une URL valide",pattern:"Le format de {{field}} est invalide",unique:"{{field}} doit être unique",type:"{{field}} doit être un {{type}} valide"},form:{addItem:"Ajouter un élément",removeItem:"Supprimer un élément",fieldRequired:"Ce champ est obligatoire",invalidFormat:"Format invalide",saveSuccess:"Enregistré avec succès",saveError:"Échec de l'enregistrement",unsavedChanges:"Vous avez des modifications non enregistrées. Voulez-vous vraiment quitter ?",stepOf:"Étape {{current}} sur {{total}}"},table:{rowsPerPage:"Lignes par page",showing:"Affichage de {{from}} à {{to}} sur {{total}}",noRows:"Aucune ligne à afficher",sortAsc:"Tri croissant",sortDesc:"Tri décroissant",filterColumn:"Filtrer {{column}}",columns:"Colonnes",exportCSV:"Exporter en CSV",exportExcel:"Exporter en Excel",selectRow:"Sélectionner la ligne",selectAllRows:"Sélectionner toutes les lignes",expandRow:"Développer la ligne",collapseRow:"Réduire la ligne"},calendar:{today:"Aujourd'hui",month:"Mois",week:"Semaine",day:"Jour",agenda:"Agenda",allDay:"Toute la journée",noEvents:"Aucun événement",newEvent:"Nouvel événement"},kanban:{addCard:"Ajouter une carte",addColumn:"Ajouter une colonne",moveCard:"Déplacer la carte",deleteCard:"Supprimer la carte",deleteColumn:"Supprimer la colonne"},chart:{noData:"Aucune donnée de graphique disponible",loading:"Chargement du graphique..."},dashboard:{addWidget:"Ajouter un widget",removeWidget:"Supprimer un widget",editLayout:"Modifier la mise en page",saveLayout:"Enregistrer la mise en page",resetLayout:"Réinitialiser la mise en page"},console:{title:"Console ObjectStack",initializing:"Initialisation de l'application...",loadingSteps:{connecting:"Connexion à la source de données",loadingConfig:"Chargement de la configuration",preparingWorkspace:"Préparation de l'espace de travail"},shortcuts:{title:"Raccourcis clavier",description:"Référence rapide de tous les raccourcis clavier disponibles.",groups:{general:"Général",navigation:"Navigation",dataViews:"Vues de données",preferences:"Préférences"},openCommandPalette:"Ouvrir la palette de commandes",showShortcuts:"Afficher les raccourcis clavier",closeDialog:"Fermer le dialogue / panneau",toggleSidebar:"Basculer la barre latérale",focusSearch:"Focus sur la recherche",createRecord:"Créer un nouvel enregistrement",refreshData:"Actualiser les données",editRecord:"Modifier l'enregistrement sélectionné",toggleDarkMode:"Basculer le mode sombre"},commandPalette:{placeholder:"Tapez une commande ou recherchez...",noResults:"Aucun résultat trouvé.",objects:"Objets",dashboards:"Tableaux de bord",pages:"Pages",reports:"Rapports",switchApp:"Changer d'application",current:"Actuel",preferences:"Préférences",lightTheme:"Thème clair",darkTheme:"Thème sombre",systemTheme:"Thème système",actions:"Actions",openFullSearch:"Ouvrir la page de recherche complète"},errors:{somethingWentWrong:"Quelque chose s'est mal passé",unexpectedError:"Une erreur inattendue est survenue lors du rendu de cette vue.",tryAgain:"Réessayer",goHome:"Retour à l'accueil",errorDetails:"Détails de l'erreur (développement uniquement)"},theme:{toggle:"Changer de thème",light:"Clair",dark:"Sombre",system:"Système"},objectView:{objectNotFound:"Objet introuvable",objectNotFoundDescription:"L'objet « {{objectName}} » n'existe pas dans la configuration actuelle.",objectNotFoundHint:"Vérifiez les paramètres de navigation de votre application ou sélectionnez un autre objet dans la barre latérale.",allRecords:"Tous les enregistrements",exitDesignMode:"Quitter le mode conception",enterDesignMode:"Entrer en mode conception",metadataInspector:"Inspecteur de métadonnées",editView:"Modifier la vue",addView:"Ajouter une vue",designTools:"Outils de conception",new:"Nouveau"},localeSwitcher:{label:"Langue"}},errors:{networkError:"Erreur réseau. Veuillez vérifier votre connexion.",serverError:"Erreur serveur. Veuillez réessayer plus tard.",notFound:"Ressource introuvable.",unauthorized:"Vous n'êtes pas autorisé à effectuer cette action.",forbidden:"Accès refusé.",timeout:"Délai d'attente dépassé. Veuillez réessayer.",unknown:"Une erreur inattendue s'est produite."}},B={common:{loading:"Cargando...",save:"Guardar",cancel:"Cancelar",delete:"Eliminar",edit:"Editar",create:"Crear",search:"Buscar",filter:"Filtrar",reset:"Restablecer",confirm:"Confirmar",close:"Cerrar",back:"Atrás",next:"Siguiente",previous:"Anterior",submit:"Enviar",refresh:"Actualizar",export:"Exportar",import:"Importar",yes:"Sí",no:"No",ok:"Aceptar",actions:"Acciones",more:"Más",selectAll:"Seleccionar todo",clearAll:"Borrar todo",noData:"Sin datos",noResults:"No se encontraron resultados",required:"Obligatorio",optional:"Opcional"},validation:{required:"{{field}} es obligatorio",minLength:"{{field}} debe tener al menos {{min}} caracteres",maxLength:"{{field}} debe tener como máximo {{max}} caracteres",min:"{{field}} debe ser al menos {{min}}",max:"{{field}} debe ser como máximo {{max}}",email:"Por favor, introduzca un correo electrónico válido",url:"Por favor, introduzca una URL válida",pattern:"El formato de {{field}} no es válido",unique:"{{field}} debe ser único",type:"{{field}} debe ser un {{type}} válido"},form:{addItem:"Añadir elemento",removeItem:"Eliminar elemento",fieldRequired:"Este campo es obligatorio",invalidFormat:"Formato no válido",saveSuccess:"Guardado correctamente",saveError:"Error al guardar",unsavedChanges:"Tiene cambios sin guardar. ¿Está seguro de que desea salir?",stepOf:"Paso {{current}} de {{total}}"},table:{rowsPerPage:"Filas por página",showing:"Mostrando {{from}} a {{to}} de {{total}}",noRows:"No hay filas para mostrar",sortAsc:"Ordenar ascendente",sortDesc:"Ordenar descendente",filterColumn:"Filtrar {{column}}",columns:"Columnas",exportCSV:"Exportar CSV",exportExcel:"Exportar Excel",selectRow:"Seleccionar fila",selectAllRows:"Seleccionar todas las filas",expandRow:"Expandir fila",collapseRow:"Contraer fila"},calendar:{today:"Hoy",month:"Mes",week:"Semana",day:"Día",agenda:"Agenda",allDay:"Todo el día",noEvents:"Sin eventos",newEvent:"Nuevo evento"},kanban:{addCard:"Añadir tarjeta",addColumn:"Añadir columna",moveCard:"Mover tarjeta",deleteCard:"Eliminar tarjeta",deleteColumn:"Eliminar columna"},chart:{noData:"No hay datos de gráfico disponibles",loading:"Cargando gráfico..."},dashboard:{addWidget:"Añadir widget",removeWidget:"Eliminar widget",editLayout:"Editar diseño",saveLayout:"Guardar diseño",resetLayout:"Restablecer diseño"},console:{title:"Consola ObjectStack",initializing:"Inicializando aplicación...",loadingSteps:{connecting:"Conectando a la fuente de datos",loadingConfig:"Cargando configuración",preparingWorkspace:"Preparando espacio de trabajo"},shortcuts:{title:"Atajos de teclado",description:"Referencia rápida de todos los atajos de teclado disponibles.",groups:{general:"General",navigation:"Navegación",dataViews:"Vistas de datos",preferences:"Preferencias"},openCommandPalette:"Abrir paleta de comandos",showShortcuts:"Mostrar atajos de teclado",closeDialog:"Cerrar diálogo / panel",toggleSidebar:"Alternar barra lateral",focusSearch:"Enfocar búsqueda",createRecord:"Crear nuevo registro",refreshData:"Actualizar datos",editRecord:"Editar registro seleccionado",toggleDarkMode:"Alternar modo oscuro"},commandPalette:{placeholder:"Escriba un comando o busque...",noResults:"No se encontraron resultados.",objects:"Objetos",dashboards:"Paneles",pages:"Páginas",reports:"Informes",switchApp:"Cambiar aplicación",current:"Actual",preferences:"Preferencias",lightTheme:"Tema claro",darkTheme:"Tema oscuro",systemTheme:"Tema del sistema",actions:"Acciones",openFullSearch:"Abrir página de búsqueda completa"},errors:{somethingWentWrong:"Algo salió mal",unexpectedError:"Ocurrió un error inesperado al renderizar esta vista.",tryAgain:"Intentar de nuevo",goHome:"Ir al inicio",errorDetails:"Detalles del error (solo desarrollo)"},theme:{toggle:"Cambiar tema",light:"Claro",dark:"Oscuro",system:"Sistema"},objectView:{objectNotFound:"Objeto no encontrado",objectNotFoundDescription:'El objeto "{{objectName}}" no existe en la configuración actual.',objectNotFoundHint:"Verifique la configuración de navegación de su aplicación o seleccione un objeto diferente en la barra lateral.",allRecords:"Todos los registros",exitDesignMode:"Salir del modo de diseño",enterDesignMode:"Entrar en modo de diseño",metadataInspector:"Inspector de metadatos",editView:"Editar vista",addView:"Agregar vista",designTools:"Herramientas de diseño",new:"Nuevo"},localeSwitcher:{label:"Idioma"}},errors:{networkError:"Error de red. Por favor, compruebe su conexión.",serverError:"Error del servidor. Por favor, inténtelo de nuevo más tarde.",notFound:"Recurso no encontrado.",unauthorized:"No está autorizado para realizar esta acción.",forbidden:"Acceso denegado.",timeout:"Tiempo de espera agotado. Por favor, inténtelo de nuevo.",unknown:"Ha ocurrido un error inesperado."}},K={common:{loading:"Carregando...",save:"Salvar",cancel:"Cancelar",delete:"Excluir",edit:"Editar",create:"Criar",search:"Pesquisar",filter:"Filtrar",reset:"Redefinir",confirm:"Confirmar",close:"Fechar",back:"Voltar",next:"Próximo",previous:"Anterior",submit:"Enviar",refresh:"Atualizar",export:"Exportar",import:"Importar",yes:"Sim",no:"Não",ok:"OK",actions:"Ações",more:"Mais",selectAll:"Selecionar tudo",clearAll:"Limpar tudo",noData:"Sem dados",noResults:"Nenhum resultado encontrado",required:"Obrigatório",optional:"Opcional"},validation:{required:"{{field}} é obrigatório",minLength:"{{field}} deve ter pelo menos {{min}} caracteres",maxLength:"{{field}} deve ter no máximo {{max}} caracteres",min:"{{field}} deve ser pelo menos {{min}}",max:"{{field}} deve ser no máximo {{max}}",email:"Por favor, insira um endereço de e-mail válido",url:"Por favor, insira uma URL válida",pattern:"O formato de {{field}} é inválido",unique:"{{field}} deve ser único",type:"{{field}} deve ser um {{type}} válido"},form:{addItem:"Adicionar item",removeItem:"Remover item",fieldRequired:"Este campo é obrigatório",invalidFormat:"Formato inválido",saveSuccess:"Salvo com sucesso",saveError:"Falha ao salvar",unsavedChanges:"Você tem alterações não salvas. Tem certeza de que deseja sair?",stepOf:"Etapa {{current}} de {{total}}"},table:{rowsPerPage:"Linhas por página",showing:"Mostrando {{from}} a {{to}} de {{total}}",noRows:"Nenhuma linha para exibir",sortAsc:"Ordenar crescente",sortDesc:"Ordenar decrescente",filterColumn:"Filtrar {{column}}",columns:"Colunas",exportCSV:"Exportar CSV",exportExcel:"Exportar Excel",selectRow:"Selecionar linha",selectAllRows:"Selecionar todas as linhas",expandRow:"Expandir linha",collapseRow:"Recolher linha"},calendar:{today:"Hoje",month:"Mês",week:"Semana",day:"Dia",agenda:"Agenda",allDay:"Dia inteiro",noEvents:"Sem eventos",newEvent:"Novo evento"},kanban:{addCard:"Adicionar cartão",addColumn:"Adicionar coluna",moveCard:"Mover cartão",deleteCard:"Excluir cartão",deleteColumn:"Excluir coluna"},chart:{noData:"Nenhum dado de gráfico disponível",loading:"Carregando gráfico..."},dashboard:{addWidget:"Adicionar widget",removeWidget:"Remover widget",editLayout:"Editar layout",saveLayout:"Salvar layout",resetLayout:"Redefinir layout"},console:{title:"Console ObjectStack",initializing:"Inicializando aplicação...",loadingSteps:{connecting:"Conectando à fonte de dados",loadingConfig:"Carregando configuração",preparingWorkspace:"Preparando espaço de trabalho"},shortcuts:{title:"Atalhos de teclado",description:"Referência rápida de todos os atalhos de teclado disponíveis.",groups:{general:"Geral",navigation:"Navegação",dataViews:"Visualizações de dados",preferences:"Preferências"},openCommandPalette:"Abrir paleta de comandos",showShortcuts:"Mostrar atalhos de teclado",closeDialog:"Fechar diálogo / painel",toggleSidebar:"Alternar barra lateral",focusSearch:"Focar na pesquisa",createRecord:"Criar novo registro",refreshData:"Atualizar dados",editRecord:"Editar registro selecionado",toggleDarkMode:"Alternar modo escuro"},commandPalette:{placeholder:"Digite um comando ou pesquise...",noResults:"Nenhum resultado encontrado.",objects:"Objetos",dashboards:"Painéis",pages:"Páginas",reports:"Relatórios",switchApp:"Trocar aplicativo",current:"Atual",preferences:"Preferências",lightTheme:"Tema claro",darkTheme:"Tema escuro",systemTheme:"Tema do sistema",actions:"Ações",openFullSearch:"Abrir página de pesquisa completa"},errors:{somethingWentWrong:"Algo deu errado",unexpectedError:"Ocorreu um erro inesperado ao renderizar esta visualização.",tryAgain:"Tentar novamente",goHome:"Ir para início",errorDetails:"Detalhes do erro (somente desenvolvimento)"},theme:{toggle:"Alternar tema",light:"Claro",dark:"Escuro",system:"Sistema"},objectView:{objectNotFound:"Objeto não encontrado",objectNotFoundDescription:'O objeto "{{objectName}}" não existe na configuração atual.',objectNotFoundHint:"Verifique as configurações de navegação do seu aplicativo ou selecione um objeto diferente na barra lateral.",allRecords:"Todos os registros",exitDesignMode:"Sair do modo de design",enterDesignMode:"Entrar no modo de design",metadataInspector:"Inspetor de metadados",editView:"Editar visualização",addView:"Adicionar visualização",designTools:"Ferramentas de design",new:"Novo"},localeSwitcher:{label:"Idioma"}},errors:{networkError:"Erro de rede. Por favor, verifique sua conexão.",serverError:"Erro no servidor. Por favor, tente novamente mais tarde.",notFound:"Recurso não encontrado.",unauthorized:"Você não tem permissão para realizar esta ação.",forbidden:"Acesso negado.",timeout:"Tempo limite excedido. Por favor, tente novamente.",unknown:"Ocorreu um erro inesperado."}},G={common:{loading:"Загрузка...",save:"Сохранить",cancel:"Отмена",delete:"Удалить",edit:"Редактировать",create:"Создать",search:"Поиск",filter:"Фильтр",reset:"Сбросить",confirm:"Подтвердить",close:"Закрыть",back:"Назад",next:"Далее",previous:"Назад",submit:"Отправить",refresh:"Обновить",export:"Экспорт",import:"Импорт",yes:"Да",no:"Нет",ok:"ОК",actions:"Действия",more:"Ещё",selectAll:"Выбрать все",clearAll:"Очистить все",noData:"Нет данных",noResults:"Результаты не найдены",required:"Обязательно",optional:"Необязательно"},validation:{required:"Поле {{field}} обязательно для заполнения",minLength:"{{field}} должно содержать не менее {{min}} символов",maxLength:"{{field}} должно содержать не более {{max}} символов",min:"{{field}} должно быть не менее {{min}}",max:"{{field}} должно быть не более {{max}}",email:"Пожалуйста, введите корректный адрес электронной почты",url:"Пожалуйста, введите корректный URL",pattern:"Неверный формат поля {{field}}",unique:"{{field}} должно быть уникальным",type:"{{field}} должно быть допустимым {{type}}"},form:{addItem:"Добавить элемент",removeItem:"Удалить элемент",fieldRequired:"Это поле обязательно",invalidFormat:"Неверный формат",saveSuccess:"Успешно сохранено",saveError:"Ошибка сохранения",unsavedChanges:"У вас есть несохранённые изменения. Вы уверены, что хотите покинуть страницу?",stepOf:"Шаг {{current}} из {{total}}"},table:{rowsPerPage:"Строк на странице",showing:"Показано с {{from}} по {{to}} из {{total}}",noRows:"Нет строк для отображения",sortAsc:"Сортировка по возрастанию",sortDesc:"Сортировка по убыванию",filterColumn:"Фильтр по {{column}}",columns:"Столбцы",exportCSV:"Экспорт в CSV",exportExcel:"Экспорт в Excel",selectRow:"Выбрать строку",selectAllRows:"Выбрать все строки",expandRow:"Развернуть строку",collapseRow:"Свернуть строку"},calendar:{today:"Сегодня",month:"Месяц",week:"Неделя",day:"День",agenda:"Расписание",allDay:"Весь день",noEvents:"Нет событий",newEvent:"Новое событие"},kanban:{addCard:"Добавить карточку",addColumn:"Добавить колонку",moveCard:"Переместить карточку",deleteCard:"Удалить карточку",deleteColumn:"Удалить колонку"},chart:{noData:"Нет данных для графика",loading:"Загрузка графика..."},dashboard:{addWidget:"Добавить виджет",removeWidget:"Удалить виджет",editLayout:"Редактировать макет",saveLayout:"Сохранить макет",resetLayout:"Сбросить макет"},console:{title:"Консоль ObjectStack",initializing:"Инициализация приложения...",loadingSteps:{connecting:"Подключение к источнику данных",loadingConfig:"Загрузка конфигурации",preparingWorkspace:"Подготовка рабочего пространства"},shortcuts:{title:"Горячие клавиши",description:"Краткий справочник по всем доступным горячим клавишам.",groups:{general:"Общие",navigation:"Навигация",dataViews:"Представления данных",preferences:"Настройки"},openCommandPalette:"Открыть палитру команд",showShortcuts:"Показать горячие клавиши",closeDialog:"Закрыть диалог / панель",toggleSidebar:"Переключить боковую панель",focusSearch:"Фокус на поиске",createRecord:"Создать новую запись",refreshData:"Обновить данные",editRecord:"Редактировать выбранную запись",toggleDarkMode:"Переключить тёмный режим"},commandPalette:{placeholder:"Введите команду или поиск...",noResults:"Результаты не найдены.",objects:"Объекты",dashboards:"Панели мониторинга",pages:"Страницы",reports:"Отчёты",switchApp:"Переключить приложение",current:"Текущее",preferences:"Настройки",lightTheme:"Светлая тема",darkTheme:"Тёмная тема",systemTheme:"Системная тема",actions:"Действия",openFullSearch:"Открыть полную страницу поиска"},errors:{somethingWentWrong:"Что-то пошло не так",unexpectedError:"При отображении этого представления произошла непредвиденная ошибка.",tryAgain:"Попробовать снова",goHome:"На главную",errorDetails:"Подробности ошибки (только для разработки)"},theme:{toggle:"Переключить тему",light:"Светлая",dark:"Тёмная",system:"Системная"},objectView:{objectNotFound:"Объект не найден",objectNotFoundDescription:"Объект «{{objectName}}» не существует в текущей конфигурации.",objectNotFoundHint:"Проверьте настройки навигации приложения или выберите другой объект на боковой панели.",allRecords:"Все записи",exitDesignMode:"Выйти из режима дизайна",enterDesignMode:"Войти в режим дизайна",metadataInspector:"Инспектор метаданных",editView:"Редактировать представление",addView:"Добавить представление",designTools:"Инструменты дизайна",new:"Создать"},localeSwitcher:{label:"Язык"}},errors:{networkError:"Ошибка сети. Проверьте подключение к интернету.",serverError:"Ошибка сервера. Попробуйте позже.",notFound:"Ресурс не найден.",unauthorized:"У вас нет прав для выполнения этого действия.",forbidden:"Доступ запрещён.",timeout:"Время ожидания истекло. Попробуйте снова.",unknown:"Произошла непредвиденная ошибка."}},Z={common:{loading:"جاري التحميل...",save:"حفظ",cancel:"إلغاء",delete:"حذف",edit:"تعديل",create:"إنشاء",search:"بحث",filter:"تصفية",reset:"إعادة تعيين",confirm:"تأكيد",close:"إغلاق",back:"رجوع",next:"التالي",previous:"السابق",submit:"إرسال",refresh:"تحديث",export:"تصدير",import:"استيراد",yes:"نعم",no:"لا",ok:"موافق",actions:"إجراءات",more:"المزيد",selectAll:"تحديد الكل",clearAll:"مسح الكل",noData:"لا توجد بيانات",noResults:"لم يتم العثور على نتائج",required:"مطلوب",optional:"اختياري"},validation:{required:"{{field}} مطلوب",minLength:"{{field}} يجب أن يكون {{min}} حرفاً على الأقل",maxLength:"{{field}} يجب ألا يتجاوز {{max}} حرفاً",min:"{{field}} يجب أن يكون {{min}} على الأقل",max:"{{field}} يجب ألا يتجاوز {{max}}",email:"يرجى إدخال بريد إلكتروني صالح",url:"يرجى إدخال رابط صالح",pattern:"صيغة {{field}} غير صالحة",unique:"{{field}} يجب أن يكون فريداً",type:"{{field}} يجب أن يكون {{type}} صالحاً"},form:{addItem:"إضافة عنصر",removeItem:"إزالة عنصر",fieldRequired:"هذا الحقل مطلوب",invalidFormat:"صيغة غير صالحة",saveSuccess:"تم الحفظ بنجاح",saveError:"فشل في الحفظ",unsavedChanges:"لديك تغييرات غير محفوظة. هل أنت متأكد أنك تريد المغادرة؟",stepOf:"الخطوة {{current}} من {{total}}"},table:{rowsPerPage:"صفوف في الصفحة",showing:"عرض {{from}} إلى {{to}} من {{total}}",noRows:"لا توجد صفوف للعرض",sortAsc:"ترتيب تصاعدي",sortDesc:"ترتيب تنازلي",filterColumn:"تصفية {{column}}",columns:"الأعمدة",exportCSV:"تصدير CSV",exportExcel:"تصدير Excel",selectRow:"تحديد صف",selectAllRows:"تحديد جميع الصفوف",expandRow:"توسيع الصف",collapseRow:"طي الصف"},calendar:{today:"اليوم",month:"شهر",week:"أسبوع",day:"يوم",agenda:"جدول أعمال",allDay:"طوال اليوم",noEvents:"لا توجد أحداث",newEvent:"حدث جديد"},kanban:{addCard:"إضافة بطاقة",addColumn:"إضافة عمود",moveCard:"نقل بطاقة",deleteCard:"حذف بطاقة",deleteColumn:"حذف عمود"},chart:{noData:"لا تتوفر بيانات للرسم البياني",loading:"جاري تحميل الرسم البياني..."},dashboard:{addWidget:"إضافة أداة",removeWidget:"إزالة أداة",editLayout:"تعديل التخطيط",saveLayout:"حفظ التخطيط",resetLayout:"إعادة تعيين التخطيط"},console:{title:"وحدة تحكم ObjectStack",initializing:"جاري تهيئة التطبيق...",loadingSteps:{connecting:"جاري الاتصال بمصدر البيانات",loadingConfig:"جاري تحميل الإعدادات",preparingWorkspace:"جاري تجهيز مساحة العمل"},shortcuts:{title:"اختصارات لوحة المفاتيح",description:"مرجع سريع لجميع اختصارات لوحة المفاتيح المتاحة.",groups:{general:"عام",navigation:"التنقل",dataViews:"عروض البيانات",preferences:"التفضيلات"},openCommandPalette:"فتح لوحة الأوامر",showShortcuts:"عرض اختصارات لوحة المفاتيح",closeDialog:"إغلاق النافذة / اللوحة",toggleSidebar:"تبديل الشريط الجانبي",focusSearch:"التركيز على البحث",createRecord:"إنشاء سجل جديد",refreshData:"تحديث البيانات",editRecord:"تعديل السجل المحدد",toggleDarkMode:"تبديل الوضع الداكن"},commandPalette:{placeholder:"اكتب أمراً أو ابحث...",noResults:"لم يتم العثور على نتائج.",objects:"الكائنات",dashboards:"لوحات المعلومات",pages:"الصفحات",reports:"التقارير",switchApp:"تبديل التطبيق",current:"الحالي",preferences:"التفضيلات",lightTheme:"المظهر الفاتح",darkTheme:"المظهر الداكن",systemTheme:"مظهر النظام",actions:"الإجراءات",openFullSearch:"فتح صفحة البحث الكاملة"},errors:{somethingWentWrong:"حدث خطأ ما",unexpectedError:"حدث خطأ غير متوقع أثناء عرض هذا المحتوى.",tryAgain:"إعادة المحاولة",goHome:"العودة للرئيسية",errorDetails:"تفاصيل الخطأ (وضع التطوير فقط)"},theme:{toggle:"تبديل المظهر",light:"فاتح",dark:"داكن",system:"النظام"},objectView:{objectNotFound:"الكائن غير موجود",objectNotFoundDescription:'الكائن "{{objectName}}" غير موجود في الإعدادات الحالية.',objectNotFoundHint:"تحقق من إعدادات التنقل في تطبيقك أو اختر كائنًا آخر من الشريط الجانبي.",allRecords:"جميع السجلات",exitDesignMode:"الخروج من وضع التصميم",enterDesignMode:"الدخول إلى وضع التصميم",metadataInspector:"مفتش البيانات الوصفية",editView:"تعديل العرض",addView:"إضافة عرض",designTools:"أدوات التصميم",new:"جديد"},localeSwitcher:{label:"اللغة"}},errors:{networkError:"خطأ في الشبكة. يرجى التحقق من اتصالك.",serverError:"خطأ في الخادم. يرجى المحاولة مرة أخرى لاحقاً.",notFound:"المورد غير موجود.",unauthorized:"ليس لديك صلاحية لتنفيذ هذا الإجراء.",forbidden:"تم رفض الوصول.",timeout:"انتهت مهلة الطلب. يرجى المحاولة مرة أخرى.",unknown:"حدث خطأ غير متوقع."}},J={en:q,zh:I,ja:M,ko:W,de:H,fr:U,es:B,pt:K,ru:G,ar:Z},$=["ar","he","fa","ur"];function Q(t){return $.includes(t)}function Y(t={}){const{defaultLanguage:l="en",fallbackLanguage:d="en",resources:c={},detectBrowserLanguage:r=!0,interpolation:n}=t,s={};for(const[o,g]of Object.entries(J))s[o]={translation:{...g,...c[o]||{}}};for(const[o,g]of Object.entries(c))s[o]||(s[o]={translation:g});let i=l;if(r&&typeof navigator<"u"){const o=navigator.language?.split("-")[0];o&&s[o]&&(i=o)}const m=V.createInstance();return m.init({lng:i,fallbackLng:d,resources:s,interpolation:{escapeValue:!1,...n},returnNull:!1}),m}function P(t){return Q(t)?"rtl":"ltr"}const F=a.createContext(null);function te({config:t,instance:l,loadLanguage:d,children:c}){const r=a.useMemo(()=>l||Y(t),[l,t]),[n,s]=a.useState(r.language||"en"),i=P(n);a.useEffect(()=>{const o=g=>{s(g),typeof document<"u"&&(document.documentElement.dir=P(g),document.documentElement.lang=g)};return r.on("languageChanged",o),()=>{r.off("languageChanged",o)}},[r]);const m=a.useMemo(()=>({language:n,changeLanguage:async o=>{if(d&&!r.hasResourceBundle(o,"translation")){const g=await d(o);r.addResourceBundle(o,"translation",g,!0,!0)}await r.changeLanguage(o)},direction:i,i18n:r}),[n,i,r,d]);return N.createElement(F.Provider,{value:m},N.createElement(O,{i18n:r},c))}function re(t){const l=a.useContext(F),{t:d,i18n:c}=z();return{t:d,language:l?.language||c.language||"en",changeLanguage:l?.changeLanguage||(async r=>{await c.changeLanguage(r)}),direction:l?.direction||"ltr",i18n:c}}const R=a.createContext(null);R.displayName="AuthContext";function _(t){const{baseURL:l,fetchFn:d=fetch}=t;async function c(r,n){const s=`${l}${r}`,i=await d(s,{...n,headers:{"Content-Type":"application/json",...n?.headers},credentials:"include"});if(!i.ok){const m=await i.json().catch(()=>null),o=m&&typeof m=="object"&&"message"in m?String(m.message):`Auth request failed with status ${i.status}`;throw new Error(o)}return i.json()}return{async signIn(r){return c("/sign-in/email",{method:"POST",body:JSON.stringify(r)})},async signUp(r){return c("/sign-up/email",{method:"POST",body:JSON.stringify(r)})},async signOut(){await c("/sign-out",{method:"POST"})},async getSession(){try{return await c("/get-session",{method:"GET"})}catch{return null}},async forgotPassword(r){await c("/forgot-password",{method:"POST",body:JSON.stringify({email:r})})},async resetPassword(r,n){await c("/reset-password",{method:"POST",body:JSON.stringify({token:r,newPassword:n})})},async updateUser(r){return(await c("/update-user",{method:"POST",body:JSON.stringify(r)})).user}}}function oe({authUrl:t,client:l,onAuthStateChange:d,enabled:c=!0,children:r}){const n=a.useMemo(()=>l??_({baseURL:t}),[l,t]),[s,i]=a.useState(null),[m,o]=a.useState(null),[g,h]=a.useState(!0),[E,p]=a.useState(null),w=c?s!==null&&m!==null:!0;a.useEffect(()=>{if(!c){i({id:"guest",email:"guest@local",name:"Guest User"}),o({token:"guest-token",expiresAt:new Date(Date.now()+365*24*60*60*1e3)}),h(!1);return}let f=!1;async function b(){try{const u=await n.getSession();if(f)return;u&&(i(u.user),o(u.session))}catch(u){if(f)return;p(u instanceof Error?u:new Error(String(u)))}finally{f||h(!1)}}return b(),()=>{f=!0}},[n,c]),a.useEffect(()=>{d?.({user:s,session:m,isAuthenticated:w,isLoading:g,error:E})},[s,m,w,g,E,d]);const v=a.useCallback(async(f,b)=>{h(!0),p(null);try{const u=await n.signIn({email:f,password:b});i(u.user),o(u.session)}catch(u){const S=u instanceof Error?u:new Error(String(u));throw p(S),S}finally{h(!1)}},[n]),x=a.useCallback(async(f,b,u)=>{h(!0),p(null);try{const S=await n.signUp({name:f,email:b,password:u});i(S.user),o(S.session)}catch(S){const D=S instanceof Error?S:new Error(String(S));throw p(D),D}finally{h(!1)}},[n]),C=a.useCallback(async()=>{h(!0);try{await n.signOut(),i(null),o(null),p(null)}catch(f){p(f instanceof Error?f:new Error(String(f)))}finally{h(!1)}},[n]),y=a.useCallback(async f=>{p(null);try{const b=await n.updateUser(f);i(b)}catch(b){const u=b instanceof Error?b:new Error(String(b));throw p(u),u}},[n]),A=a.useCallback(async f=>{p(null);try{await n.forgotPassword(f)}catch(b){const u=b instanceof Error?b:new Error(String(b));throw p(u),u}},[n]),k=a.useCallback(async(f,b)=>{p(null);try{await n.resetPassword(f,b)}catch(u){const S=u instanceof Error?u:new Error(String(u));throw p(S),S}},[n]),T=a.useMemo(()=>({user:s,session:m,isAuthenticated:w,isLoading:g,error:E,signIn:v,signUp:x,signOut:C,updateUser:y,forgotPassword:A,resetPassword:k}),[s,m,w,g,E,v,x,C,y,A,k]);return e.jsx(R.Provider,{value:T,children:r})}function j(){const t=a.useContext(R);return t||{user:null,session:null,isAuthenticated:!1,isLoading:!1,error:null,signIn:async()=>{throw new Error("useAuth must be used within an AuthProvider")},signUp:async()=>{throw new Error("useAuth must be used within an AuthProvider")},signOut:async()=>{throw new Error("useAuth must be used within an AuthProvider")},updateUser:async()=>{throw new Error("useAuth must be used within an AuthProvider")},forgotPassword:async()=>{throw new Error("useAuth must be used within an AuthProvider")},resetPassword:async()=>{throw new Error("useAuth must be used within an AuthProvider")}}}function ae({fallback:t=null,requiredRoles:l,loadingFallback:d,children:c}){const{isAuthenticated:r,isLoading:n,user:s}=j();if(n)return e.jsx(e.Fragment,{children:d??null});if(!r)return e.jsx(e.Fragment,{children:t});if(l&&l.length>0&&s){const i=s.roles??(s.role?[s.role]:[]);if(!l.some(o=>i.includes(o)))return e.jsx(e.Fragment,{children:t})}return e.jsx(e.Fragment,{children:c})}function ne({onSuccess:t,onError:l,registerUrl:d="/register",forgotPasswordUrl:c="/forgot-password",title:r="Sign in to your account",description:n="Enter your email and password to continue"}){const{signIn:s,isLoading:i}=j(),[m,o]=a.useState(""),[g,h]=a.useState(""),[E,p]=a.useState(null),w=async v=>{v.preventDefault(),p(null);try{await s(m,g),t?.()}catch(x){const C=x instanceof Error?x:new Error(String(x));p(C.message),l?.(C)}};return e.jsxs("div",{className:"mx-auto flex w-full flex-col justify-center space-y-6 sm:w-[350px]",children:[e.jsxs("div",{className:"flex flex-col space-y-2 text-center",children:[e.jsx("h1",{className:"text-2xl font-semibold tracking-tight",children:r}),e.jsx("p",{className:"text-sm text-muted-foreground",children:n})]}),e.jsxs("form",{onSubmit:w,className:"space-y-4",children:[E&&e.jsx("div",{className:"rounded-md bg-destructive/15 p-3 text-sm text-destructive",role:"alert",children:E}),e.jsxs("div",{className:"space-y-2",children:[e.jsx("label",{htmlFor:"login-email",className:"text-sm font-medium leading-none",children:"Email"}),e.jsx("input",{id:"login-email",type:"email",placeholder:"name@example.com",value:m,onChange:v=>o(v.target.value),required:!0,autoComplete:"email",disabled:i,className:"flex h-10 w-full rounded-md border border-input bg-background px-3 py-2 text-sm ring-offset-background placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50"})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsx("label",{htmlFor:"login-password",className:"text-sm font-medium leading-none",children:"Password"}),c&&e.jsx("a",{href:c,className:"text-sm text-primary underline-offset-4 hover:underline",children:"Forgot password?"})]}),e.jsx("input",{id:"login-password",type:"password",placeholder:"Enter your password",value:g,onChange:v=>h(v.target.value),required:!0,autoComplete:"current-password",disabled:i,className:"flex h-10 w-full rounded-md border border-input bg-background px-3 py-2 text-sm ring-offset-background placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50"})]}),e.jsx("button",{type:"submit",disabled:i,className:"inline-flex h-10 w-full items-center justify-center rounded-md bg-primary px-4 py-2 text-sm font-medium text-primary-foreground ring-offset-background transition-colors hover:bg-primary/90 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50",children:i?"Signing in...":"Sign In"})]}),d&&e.jsxs("p",{className:"px-8 text-center text-sm text-muted-foreground",children:["Don't have an account?"," ",e.jsx("a",{href:d,className:"text-primary underline-offset-4 hover:underline",children:"Sign up"})]})]})}function se({onSuccess:t,onError:l,loginUrl:d="/login",title:c="Create an account",description:r="Enter your information to get started"}){const{signUp:n,isLoading:s}=j(),[i,m]=a.useState(""),[o,g]=a.useState(""),[h,E]=a.useState(""),[p,w]=a.useState(""),[v,x]=a.useState(null),C=async y=>{if(y.preventDefault(),x(null),h!==p){x("Passwords do not match");return}if(h.length<8){x("Password must be at least 8 characters");return}try{await n(i,o,h),t?.()}catch(A){const k=A instanceof Error?A:new Error(String(A));x(k.message),l?.(k)}};return e.jsxs("div",{className:"mx-auto flex w-full flex-col justify-center space-y-6 sm:w-[350px]",children:[e.jsxs("div",{className:"flex flex-col space-y-2 text-center",children:[e.jsx("h1",{className:"text-2xl font-semibold tracking-tight",children:c}),e.jsx("p",{className:"text-sm text-muted-foreground",children:r})]}),e.jsxs("form",{onSubmit:C,className:"space-y-4",children:[v&&e.jsx("div",{className:"rounded-md bg-destructive/15 p-3 text-sm text-destructive",role:"alert",children:v}),e.jsxs("div",{className:"space-y-2",children:[e.jsx("label",{htmlFor:"register-name",className:"text-sm font-medium leading-none",children:"Name"}),e.jsx("input",{id:"register-name",type:"text",placeholder:"John Doe",value:i,onChange:y=>m(y.target.value),required:!0,autoComplete:"name",disabled:s,className:"flex h-10 w-full rounded-md border border-input bg-background px-3 py-2 text-sm ring-offset-background placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50"})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsx("label",{htmlFor:"register-email",className:"text-sm font-medium leading-none",children:"Email"}),e.jsx("input",{id:"register-email",type:"email",placeholder:"name@example.com",value:o,onChange:y=>g(y.target.value),required:!0,autoComplete:"email",disabled:s,className:"flex h-10 w-full rounded-md border border-input bg-background px-3 py-2 text-sm ring-offset-background placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50"})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsx("label",{htmlFor:"register-password",className:"text-sm font-medium leading-none",children:"Password"}),e.jsx("input",{id:"register-password",type:"password",placeholder:"Create a password (min. 8 characters)",value:h,onChange:y=>E(y.target.value),required:!0,minLength:8,autoComplete:"new-password",disabled:s,className:"flex h-10 w-full rounded-md border border-input bg-background px-3 py-2 text-sm ring-offset-background placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50"})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsx("label",{htmlFor:"register-confirm-password",className:"text-sm font-medium leading-none",children:"Confirm Password"}),e.jsx("input",{id:"register-confirm-password",type:"password",placeholder:"Confirm your password",value:p,onChange:y=>w(y.target.value),required:!0,minLength:8,autoComplete:"new-password",disabled:s,className:"flex h-10 w-full rounded-md border border-input bg-background px-3 py-2 text-sm ring-offset-background placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50"})]}),e.jsx("button",{type:"submit",disabled:s,className:"inline-flex h-10 w-full items-center justify-center rounded-md bg-primary px-4 py-2 text-sm font-medium text-primary-foreground ring-offset-background transition-colors hover:bg-primary/90 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50",children:s?"Creating account...":"Create Account"})]}),d&&e.jsxs("p",{className:"px-8 text-center text-sm text-muted-foreground",children:["Already have an account?"," ",e.jsx("a",{href:d,className:"text-primary underline-offset-4 hover:underline",children:"Sign in"})]})]})}function ie({onSuccess:t,onError:l,loginUrl:d="/login",title:c="Reset your password",description:r="Enter your email address and we'll send you a link to reset your password"}){const{forgotPassword:n,isLoading:s}=j(),[i,m]=a.useState(""),[o,g]=a.useState(null),[h,E]=a.useState(!1),p=async w=>{w.preventDefault(),g(null);try{await n(i),E(!0),t?.()}catch(v){const x=v instanceof Error?v:new Error(String(v));g(x.message),l?.(x)}};return h?e.jsxs("div",{className:"mx-auto flex w-full flex-col justify-center space-y-6 sm:w-[350px]",children:[e.jsxs("div",{className:"flex flex-col space-y-2 text-center",children:[e.jsx("h1",{className:"text-2xl font-semibold tracking-tight",children:"Check your email"}),e.jsxs("p",{className:"text-sm text-muted-foreground",children:["We've sent a password reset link to ",e.jsx("strong",{children:i}),". Please check your inbox and follow the instructions."]})]}),d&&e.jsx("p",{className:"px-8 text-center text-sm text-muted-foreground",children:e.jsx("a",{href:d,className:"text-primary underline-offset-4 hover:underline",children:"Back to sign in"})})]}):e.jsxs("div",{className:"mx-auto flex w-full flex-col justify-center space-y-6 sm:w-[350px]",children:[e.jsxs("div",{className:"flex flex-col space-y-2 text-center",children:[e.jsx("h1",{className:"text-2xl font-semibold tracking-tight",children:c}),e.jsx("p",{className:"text-sm text-muted-foreground",children:r})]}),e.jsxs("form",{onSubmit:p,className:"space-y-4",children:[o&&e.jsx("div",{className:"rounded-md bg-destructive/15 p-3 text-sm text-destructive",role:"alert",children:o}),e.jsxs("div",{className:"space-y-2",children:[e.jsx("label",{htmlFor:"forgot-email",className:"text-sm font-medium leading-none",children:"Email"}),e.jsx("input",{id:"forgot-email",type:"email",placeholder:"name@example.com",value:i,onChange:w=>m(w.target.value),required:!0,autoComplete:"email",disabled:s,className:"flex h-10 w-full rounded-md border border-input bg-background px-3 py-2 text-sm ring-offset-background placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50"})]}),e.jsx("button",{type:"submit",disabled:s,className:"inline-flex h-10 w-full items-center justify-center rounded-md bg-primary px-4 py-2 text-sm font-medium text-primary-foreground ring-offset-background transition-colors hover:bg-primary/90 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50",children:s?"Sending...":"Send Reset Link"})]}),d&&e.jsxs("p",{className:"px-8 text-center text-sm text-muted-foreground",children:["Remember your password?"," ",e.jsx("a",{href:d,className:"text-primary underline-offset-4 hover:underline",children:"Sign in"})]})]})}function le(t){return t?t.name?t.name.split(" ").map(l=>l[0]).join("").toUpperCase().slice(0,2):t.email?.[0]?.toUpperCase()??"?":"?"}const L=a.createContext(null);L.displayName="PermissionContext";function de(){const t=a.useContext(L);return t?{...t,can:(l,d)=>t.check(l,d).allowed,cannot:(l,d)=>!t.check(l,d).allowed}:{check:()=>({allowed:!0}),checkField:()=>!0,getFieldPermissions:()=>[],getRowFilter:()=>{},roles:[],isLoaded:!1,can:()=>!0,cannot:()=>!1}}export{oe as A,ie as F,te as I,ne as L,se as R,de as a,re as b,ae as c,le as g,j as u};