@vicacha-devs/strapi-plugin-global-search 0.0.0-stage → 2.0.3
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/LICENSE +21 -0
- package/README.md +136 -2
- package/dist/admin/index.d.ts +2 -0
- package/dist/admin/index.js +2310 -0
- package/dist/admin/index.js.map +7 -0
- package/dist/admin/index.mjs +2310 -0
- package/dist/admin/index.mjs.map +7 -0
- package/dist/admin/translations/ar.json +89 -0
- package/dist/admin/translations/en.json +89 -0
- package/dist/admin/translations/es.json +89 -0
- package/dist/admin/translations/fr.json +89 -0
- package/dist/admin/translations/tr.json +89 -0
- package/dist/server/bootstrap.d.ts +6 -0
- package/dist/server/bootstrap.d.ts.map +1 -0
- package/dist/server/config/index.d.ts +15 -0
- package/dist/server/config/index.d.ts.map +1 -0
- package/dist/server/controllers/index.d.ts +94 -0
- package/dist/server/controllers/index.d.ts.map +1 -0
- package/dist/server/controllers/schema.d.ts +24 -0
- package/dist/server/controllers/schema.d.ts.map +1 -0
- package/dist/server/controllers/search.d.ts +21 -0
- package/dist/server/controllers/search.d.ts.map +1 -0
- package/dist/server/controllers/settings.d.ts +23 -0
- package/dist/server/controllers/settings.d.ts.map +1 -0
- package/dist/server/index.d.ts +212 -0
- package/dist/server/index.d.ts.map +1 -0
- package/dist/server/index.js +1186 -0
- package/dist/server/index.js.map +7 -0
- package/dist/server/index.mjs +1186 -0
- package/dist/server/index.mjs.map +7 -0
- package/dist/server/register.d.ts +6 -0
- package/dist/server/register.d.ts.map +1 -0
- package/dist/server/routes/index.d.ts +20 -0
- package/dist/server/routes/index.d.ts.map +1 -0
- package/dist/server/services/index.d.ts +89 -0
- package/dist/server/services/index.d.ts.map +1 -0
- package/dist/server/services/permissions.d.ts +13 -0
- package/dist/server/services/permissions.d.ts.map +1 -0
- package/dist/server/services/query.d.ts +25 -0
- package/dist/server/services/query.d.ts.map +1 -0
- package/dist/server/services/ranking.d.ts +27 -0
- package/dist/server/services/ranking.d.ts.map +1 -0
- package/dist/server/services/schema.d.ts +70 -0
- package/dist/server/services/schema.d.ts.map +1 -0
- package/dist/server/services/search.d.ts +36 -0
- package/dist/server/services/search.d.ts.map +1 -0
- package/dist/server/services/settings.d.ts +15 -0
- package/dist/server/services/settings.d.ts.map +1 -0
- package/dist/server/types.d.ts +195 -0
- package/dist/server/types.d.ts.map +1 -0
- package/dist/server/utils/async.d.ts +8 -0
- package/dist/server/utils/async.d.ts.map +1 -0
- package/dist/server/utils/constants.d.ts +42 -0
- package/dist/server/utils/constants.d.ts.map +1 -0
- package/dist/server/utils/text.d.ts +20 -0
- package/dist/server/utils/text.d.ts.map +1 -0
- package/package.json +79 -3
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../admin/src/pluginId.ts", "../../admin/src/translations/ar.json", "../../admin/src/translations/en.json", "../../admin/src/translations/es.json", "../../admin/src/translations/fr.json", "../../admin/src/translations/tr.json", "../../admin/src/utils/getTrad.ts", "../../admin/src/api/searchApi.ts", "../../admin/src/hooks/useGlobalSearch.ts", "../../admin/src/hooks/useSearchableTypes.ts", "../../admin/src/utils/adminBase.ts", "../../admin/src/components/Highlight.tsx", "../../admin/src/permissions.ts", "../../admin/src/components/ResultsTable.tsx", "../../admin/src/pages/HomePage.tsx", "../../admin/src/pages/App.tsx", "../../admin/src/pages/Settings.tsx", "../../../plugin-shared/dist/options.js", "../../../plugin-shared/dist/translations.js", "../../admin/src/index.ts", "../../admin/src/components/GlobalSearchPortal.tsx", "../../admin/src/hooks/useHotkey.ts", "../../admin/src/utils/theme.ts", "../../admin/src/components/SearchOverlay.tsx", "../../admin/src/components/ResultItem.tsx", "../../admin/src/components/Initializer.tsx", "../../admin/src/components/PluginIcon.tsx"],
|
|
4
|
+
"sourcesContent": ["const pluginId = \"global-search\";\n\nexport default pluginId;\n", "{\n \"plugin.name\": \"\u0627\u0644\u0628\u062D\u062B \u0627\u0644\u0634\u0627\u0645\u0644\",\n \"plugin.description\": \"\u0627\u0628\u062D\u062B \u0641\u064A \u062C\u0645\u064A\u0639 \u0623\u0646\u0648\u0627\u0639 \u0627\u0644\u0645\u062D\u062A\u0648\u0649 \u0645\u0646 \u0645\u0643\u0627\u0646 \u0648\u0627\u062D\u062F.\",\n \"settings.section\": \"\u0627\u0644\u0628\u062D\u062B \u0627\u0644\u0634\u0627\u0645\u0644\",\n \"settings.link\": \"\u0627\u0644\u0625\u0639\u062F\u0627\u062F\u0627\u062A\",\n \"common.searching\": \"\u062C\u0627\u0631\u064D \u0627\u0644\u0628\u062D\u062B\u2026\",\n \"common.no_results\": \"\u0644\u0627 \u062A\u0648\u062C\u062F \u0646\u062A\u0627\u0626\u062C \u0644\u0640 \u201C{query}\u201D.\",\n \"common.on\": \"\u062A\u0641\u0639\u064A\u0644\",\n \"common.off\": \"\u0625\u064A\u0642\u0627\u0641\",\n \"common.none\": \"\u0644\u0627 \u064A\u0648\u062C\u062F\",\n \"palette.title\": \"\u0627\u0644\u0628\u062D\u062B \u0627\u0644\u0634\u0627\u0645\u0644\",\n \"palette.placeholder\": \"\u0627\u0628\u062D\u062B \u0641\u064A \u0643\u0644 \u0627\u0644\u0645\u062D\u062A\u0648\u0649\u2026\",\n \"palette.min_chars\": \"\u0627\u0643\u062A\u0628 {count} \u0623\u062D\u0631\u0641 \u0639\u0644\u0649 \u0627\u0644\u0623\u0642\u0644 \u0644\u0644\u0628\u062D\u062B.\",\n \"palette.idle_hint\": \"\u0627\u0628\u062D\u062B \u0641\u064A \u0643\u0644 \u0646\u0648\u0639 \u0645\u062C\u0645\u0648\u0639\u0629 \u0648\u0646\u0648\u0639 \u0645\u0641\u0631\u062F \u062D\u0633\u0628 \u0627\u0644\u0645\u0639\u0631\u0651\u0641 \u0623\u0648 \u0627\u0644\u0627\u0633\u0645 \u0623\u0648 \u0623\u064A \u062D\u0642\u0644 \u0646\u0635\u064A.\",\n \"palette.error\": \"\u0641\u0634\u0644 \u0627\u0644\u0628\u062D\u062B. \u062A\u062D\u0642\u0642 \u0645\u0646 \u0635\u0644\u0627\u062D\u064A\u0627\u062A \u0627\u0644\u0642\u0631\u0627\u0621\u0629 \u0648\u0631\u0627\u062C\u0639 \u0633\u062C\u0644\u0627\u062A \u0627\u0644\u062E\u0627\u062F\u0645.\",\n \"palette.results_aria\": \"\u0646\u062A\u0627\u0626\u062C \u0627\u0644\u0628\u062D\u062B\",\n \"palette.shortcuts_hint\": \"\u2191 \u2193 \u0644\u0644\u062A\u0646\u0642\u0644 \u00B7 \u21B5 \u0644\u0644\u0641\u062A\u062D \u00B7 \u2318/Ctrl + \u21B5 \u0639\u0644\u0627\u0645\u0629 \u062A\u0628\u0648\u064A\u0628 \u062C\u062F\u064A\u062F\u0629 \u00B7 esc \u0644\u0644\u0625\u063A\u0644\u0627\u0642\",\n \"palette.result_count\": \"{count} \u0646\u062A\u0627\u0626\u062C\",\n \"page.subtitle_ready\": \"\u0627\u0644\u0628\u062D\u062B \u0641\u064A {count} \u0623\u0646\u0648\u0627\u0639 \u0645\u062D\u062A\u0648\u0649 \u00B7 \u0627\u0636\u063A\u0637 Ctrl/Cmd + K \u0641\u064A \u0623\u064A \u0645\u0643\u0627\u0646\",\n \"page.subtitle_loading\": \"\u062C\u0627\u0631\u064D \u0627\u0643\u062A\u0634\u0627\u0641 \u0623\u0646\u0648\u0627\u0639 \u0627\u0644\u0645\u062D\u062A\u0648\u0649\u2026\",\n \"page.open_palette\": \"\u0641\u062A\u062D \u0644\u0648\u062D\u0629 \u0627\u0644\u0628\u062D\u062B (\u2318K)\",\n \"page.clear_search\": \"\u0645\u0633\u062D \u0627\u0644\u0628\u062D\u062B\",\n \"page.search_placeholder\": \"\u0627\u0628\u062D\u062B \u0628\u0627\u0644\u0645\u0639\u0631\u0651\u0641 \u0623\u0648 \u0627\u0644\u0627\u0633\u0645 \u0623\u0648 \u0623\u064A \u062D\u0642\u0644 \u0646\u0635\u064A\u2026\",\n \"page.search_label\": \"\u0627\u0628\u062D\u062B \u0641\u064A \u0643\u0644 \u0627\u0644\u0645\u062D\u062A\u0648\u0649\",\n \"page.content_types_aria\": \"\u0623\u0646\u0648\u0627\u0639 \u0627\u0644\u0645\u062D\u062A\u0648\u0649\",\n \"page.all_content_types\": \"\u062C\u0645\u064A\u0639 \u0623\u0646\u0648\u0627\u0639 \u0627\u0644\u0645\u062D\u062A\u0648\u0649\",\n \"page.clear_type_filters\": \"\u0645\u0633\u062D \u0641\u0644\u0627\u062A\u0631 \u0623\u0646\u0648\u0627\u0639 \u0627\u0644\u0645\u062D\u062A\u0648\u0649\",\n \"page.all_locales\": \"\u062C\u0645\u064A\u0639 \u0627\u0644\u0644\u063A\u0627\u062A\",\n \"page.error\": \"\u0641\u0634\u0644 \u0627\u0644\u0628\u062D\u062B. \u062A\u062D\u0642\u0642 \u0645\u0646 \u0635\u0644\u0627\u062D\u064A\u0627\u062A \u0627\u0644\u0642\u0631\u0627\u0621\u0629 \u0648\u0631\u0627\u062C\u0639 \u0633\u062C\u0644\u0627\u062A \u0627\u0644\u062E\u0627\u062F\u0645 \u0644\u0644\u062A\u0641\u0627\u0635\u064A\u0644.\",\n \"page.idle_title\": \"\u0627\u0628\u062D\u062B \u0641\u064A \u0643\u0644 \u0646\u0648\u0639 \u0645\u062C\u0645\u0648\u0639\u0629 \u0648\u0646\u0648\u0639 \u0645\u0641\u0631\u062F \u0641\u064A \u0647\u0630\u0627 \u0627\u0644\u0645\u0634\u0631\u0648\u0639.\",\n \"page.idle_subtitle\": \"\u062A\u064F\u0631\u062A\u0628 \u0627\u0644\u0646\u062A\u0627\u0626\u062C \u062D\u0633\u0628 \u0627\u0644\u0645\u0639\u0631\u0651\u0641 \u062B\u0645 \u0627\u0644\u0627\u0633\u0645 \u062B\u0645 \u0623\u064A \u062D\u0642\u0644 \u0622\u062E\u0631 \u2014 \u0628\u0645\u0627 \u0641\u064A \u0630\u0644\u0643 \u0627\u0644\u062D\u0642\u0648\u0644 \u0627\u0644\u0645\u062A\u062F\u0627\u062E\u0644\u0629 \u062F\u0627\u062E\u0644 \u0627\u0644\u0645\u0643\u0648\u0646\u0627\u062A. \u0627\u0636\u063A\u0637 Ctrl/Cmd + K \u0644\u0641\u062A\u062D \u0627\u0644\u0644\u0648\u062D\u0629 \u0627\u0644\u0633\u0631\u064A\u0639\u0629.\",\n \"page.no_results_clear_filters\": \"\u062C\u0631\u0651\u0628 \u0645\u0633\u062D \u0641\u0644\u0627\u062A\u0631 \u0623\u0646\u0648\u0627\u0639 \u0627\u0644\u0645\u062D\u062A\u0648\u0649.\",\n \"page.no_results_try_different\": \"\u062C\u0631\u0651\u0628 \u0645\u0635\u0637\u0644\u062D\u0627\u064B \u0623\u0642\u0635\u0631 \u0623\u0648 \u0645\u062E\u062A\u0644\u0641\u0627\u064B.\",\n \"page.results_summary\": \"{total} \u0646\u062A\u0627\u0626\u062C \u0639\u0628\u0631 {groups} \u0623\u0646\u0648\u0627\u0639 \u0645\u062D\u062A\u0648\u0649\",\n \"page.truncated_notice\": \" \u00B7 \u0623\u0631\u062C\u0639\u062A \u0628\u0639\u0636 \u0627\u0644\u0623\u0646\u0648\u0627\u0639 \u0623\u0643\u062B\u0631 \u0645\u0646 \u0627\u0644\u062D\u062F \u0627\u0644\u0623\u0642\u0635\u0649 \u0644\u0643\u0644 \u0646\u0648\u0639\",\n \"page.results_per_page\": \"\u0627\u0644\u0646\u062A\u0627\u0626\u062C \u0644\u0643\u0644 \u0635\u0641\u062D\u0629\",\n \"page.per_page_option\": \"{size} / \u0635\u0641\u062D\u0629\",\n \"page.previous\": \"\u0627\u0644\u0633\u0627\u0628\u0642\",\n \"page.page_of\": \"\u0635\u0641\u062D\u0629 {page} \u0645\u0646 {pageCount}\",\n \"page.next\": \"\u0627\u0644\u062A\u0627\u0644\u064A\",\n \"table.type\": \"\u0627\u0644\u0646\u0648\u0639\",\n \"table.id\": \"\u0627\u0644\u0645\u0639\u0631\u0651\u0641\",\n \"table.name\": \"\u0627\u0644\u0627\u0633\u0645\",\n \"table.matched\": \"\u0627\u0644\u0645\u0637\u0627\u0628\u0642\u0629\",\n \"table.locale\": \"\u0627\u0644\u0644\u063A\u0629\",\n \"table.status\": \"\u0627\u0644\u062D\u0627\u0644\u0629\",\n \"table.updated\": \"\u062A\u0627\u0631\u064A\u062E \u0627\u0644\u062A\u062D\u062F\u064A\u062B\",\n \"settings.subtitle\": \"\u0627\u0636\u0628\u0637 \u0643\u064A\u0641\u064A\u0629 \u0627\u0633\u062A\u0639\u0644\u0627\u0645 \u0635\u0641\u062D\u0629 \u0627\u0644\u0628\u062D\u062B \u0648\u0644\u0648\u062D\u0629 Ctrl/Cmd + K \u0639\u0646 \u0627\u0644\u0645\u062D\u062A\u0648\u0649.\",\n \"settings.restore_defaults\": \"\u0627\u0633\u062A\u0639\u0627\u062F\u0629 \u0627\u0644\u0627\u0641\u062A\u0631\u0627\u0636\u064A\u0627\u062A\",\n \"settings.save\": \"\u062D\u0641\u0638\",\n \"settings.behaviour_title\": \"\u0633\u0644\u0648\u0643 \u0627\u0644\u0628\u062D\u062B\",\n \"settings.min_chars_label\": \"\u0627\u0644\u062D\u062F \u0627\u0644\u0623\u062F\u0646\u0649 \u0644\u0644\u0623\u062D\u0631\u0641\",\n \"settings.min_chars_hint\": \"\u0627\u0644\u0627\u0633\u062A\u0639\u0644\u0627\u0645\u0627\u062A \u0627\u0644\u0623\u0642\u0635\u0631 \u0644\u0627 \u062A\u064F\u0631\u0633\u0644 \u0625\u0644\u0649 \u0627\u0644\u062E\u0627\u062F\u0645.\",\n \"settings.debounce_label\": \"\u0645\u0647\u0644\u0629 \u0627\u0644\u0627\u0646\u062A\u0638\u0627\u0631 (\u0645\u0644\u0644\u064A \u062B\u0627\u0646\u064A\u0629)\",\n \"settings.debounce_hint\": \"\u0645\u062F\u0629 \u0627\u0644\u0627\u0646\u062A\u0638\u0627\u0631 \u0628\u0639\u062F \u0622\u062E\u0631 \u0636\u063A\u0637\u0629 \u0645\u0641\u062A\u0627\u062D.\",\n \"settings.per_type_limit_label\": \"\u0627\u0644\u0646\u062A\u0627\u0626\u062C \u0644\u0643\u0644 \u0646\u0648\u0639 \u0645\u062D\u062A\u0648\u0649\",\n \"settings.per_type_limit_hint\": \"\u0639\u062F\u062F \u0627\u0644\u0635\u0641\u0648\u0641 \u0627\u0644\u0645\u062C\u0644\u0648\u0628\u0629 \u0645\u0646 \u0643\u0644 \u0646\u0648\u0639.\",\n \"settings.max_results_label\": \"\u0627\u0644\u062D\u062F \u0627\u0644\u0623\u0642\u0635\u0649 \u0644\u0644\u0646\u062A\u0627\u0626\u062C\",\n \"settings.max_results_hint\": \"\u0627\u0644\u062D\u062F \u0627\u0644\u0623\u0642\u0635\u0649 \u0644\u0644\u0642\u0627\u0626\u0645\u0629 \u0627\u0644\u0645\u062F\u0645\u062C\u0629 \u0648\u0627\u0644\u0645\u0631\u062A\u0628\u0629.\",\n \"settings.max_depth_label\": \"\u0639\u0645\u0642 \u0627\u0644\u0645\u0643\u0648\u0646\u0627\u062A\",\n \"settings.max_depth_hint\": \"\u0639\u062F\u062F \u0645\u0633\u062A\u0648\u064A\u0627\u062A \u0627\u0644\u0645\u0643\u0648\u0646\u0627\u062A \u0627\u0644\u062A\u064A \u064A\u062A\u0645 \u0627\u0644\u0628\u062D\u062B \u0628\u062F\u0627\u062E\u0644\u0647\u0627.\",\n \"settings.query_timeout_label\": \"\u0645\u0647\u0644\u0629 \u0627\u0644\u0627\u0633\u062A\u0639\u0644\u0627\u0645 (\u0645\u0644\u0644\u064A \u062B\u0627\u0646\u064A\u0629)\",\n \"settings.query_timeout_hint\": \"\u064A\u062A\u0645 \u062A\u062E\u0637\u064A \u0646\u0648\u0639 \u0627\u0644\u0645\u062D\u062A\u0648\u0649 \u0627\u0644\u0623\u0628\u0637\u0623.\",\n \"settings.concurrency_label\": \"\u0627\u0644\u062A\u0632\u0627\u0645\u0646\",\n \"settings.concurrency_hint\": \"\u0627\u0644\u062D\u062F \u0627\u0644\u0623\u0642\u0635\u0649 \u0644\u0623\u0646\u0648\u0627\u0639 \u0627\u0644\u0645\u062D\u062A\u0648\u0649 \u0627\u0644\u0645\u0633\u062A\u0639\u0644\u0645 \u0639\u0646\u0647\u0627 \u0628\u0627\u0644\u062A\u0648\u0627\u0632\u064A.\",\n \"settings.deep_label\": \"\u0627\u0644\u0628\u062D\u062B \u062F\u0627\u062E\u0644 \u0627\u0644\u0645\u0643\u0648\u0646\u0627\u062A\",\n \"settings.deep_hint\": \"\u0645\u0637\u0627\u0628\u0642\u0629 \u0627\u0644\u062D\u0642\u0648\u0644 \u0627\u0644\u0645\u062A\u062F\u0627\u062E\u0644\u0629 \u0641\u064A \u0627\u0644\u0645\u0643\u0648\u0646\u0627\u062A \u0623\u064A\u0636\u0627\u064B.\",\n \"settings.drafts_label\": \"\u062A\u0636\u0645\u064A\u0646 \u0627\u0644\u0645\u0633\u0648\u062F\u0627\u062A\",\n \"settings.drafts_hint\": \"\u0627\u0644\u0628\u062D\u062B \u0641\u064A \u0627\u0644\u0625\u062F\u062E\u0627\u0644\u0627\u062A \u063A\u064A\u0631 \u0627\u0644\u0645\u0646\u0634\u0648\u0631\u0629 \u0623\u064A\u0636\u0627\u064B.\",\n \"settings.plugins_label\": \"\u062A\u0636\u0645\u064A\u0646 \u0623\u0646\u0648\u0627\u0639 \u0645\u062D\u062A\u0648\u0649 \u0627\u0644\u0625\u0636\u0627\u0641\u0627\u062A\",\n \"settings.plugins_hint\": \"\u0627\u0644\u0628\u062D\u062B \u0623\u064A\u0636\u0627\u064B \u0641\u064A \u0623\u0646\u0648\u0627\u0639 \u0627\u0644\u0645\u062D\u062A\u0648\u0649 \u0627\u0644\u0645\u0631\u0626\u064A\u0629 \u0627\u0644\u0645\u0633\u062C\u0644\u0629 \u0628\u0648\u0627\u0633\u0637\u0629 \u0627\u0644\u0625\u0636\u0627\u0641\u0627\u062A.\",\n \"settings.content_types_title\": \"\u0623\u0646\u0648\u0627\u0639 \u0627\u0644\u0645\u062D\u062A\u0648\u0649\",\n \"settings.content_types_hint\": \"\u064A\u062A\u0645 \u0627\u0643\u062A\u0634\u0627\u0641 \u0643\u0644 \u0646\u0648\u0639 \u0645\u062D\u062A\u0648\u0649 \u062A\u0644\u0642\u0627\u0626\u064A\u0627\u064B. \u0623\u0648\u0642\u0641 \u0623\u064A \u0646\u0648\u0639 \u0644\u0627\u0633\u062A\u0628\u0639\u0627\u062F\u0647 \u0645\u0646 \u0646\u062A\u0627\u0626\u062C \u0627\u0644\u0628\u062D\u062B.\",\n \"settings.col_content_type\": \"\u0646\u0648\u0639 \u0627\u0644\u0645\u062D\u062A\u0648\u0649\",\n \"settings.col_kind\": \"\u0627\u0644\u0641\u0626\u0629\",\n \"settings.col_main_field\": \"\u0627\u0644\u062D\u0642\u0644 \u0627\u0644\u0631\u0626\u064A\u0633\u064A\",\n \"settings.col_searchable_fields\": \"\u0627\u0644\u062D\u0642\u0648\u0644 \u0627\u0644\u0642\u0627\u0628\u0644\u0629 \u0644\u0644\u0628\u062D\u062B\",\n \"settings.col_enabled\": \"\u0645\u0641\u0639\u0651\u0644\",\n \"settings.kind_single\": \"\u0645\u0641\u0631\u062F\",\n \"settings.kind_collection\": \"\u0645\u062C\u0645\u0648\u0639\u0629\",\n \"settings.enable_for_type\": \"\u062A\u0641\u0639\u064A\u0644 \u0627\u0644\u0628\u062D\u062B \u0644\u0640 {name}\",\n \"settings.error_load\": \"\u062A\u0639\u0630\u0651\u0631 \u062A\u062D\u0645\u064A\u0644 \u0625\u0639\u062F\u0627\u062F\u0627\u062A \u0627\u0644\u0628\u062D\u062B \u0627\u0644\u0634\u0627\u0645\u0644.\",\n \"settings.saved\": \"\u062A\u0645 \u062D\u0641\u0638 \u0625\u0639\u062F\u0627\u062F\u0627\u062A \u0627\u0644\u0628\u062D\u062B \u0627\u0644\u0634\u0627\u0645\u0644.\",\n \"settings.error_save\": \"\u062A\u0639\u0630\u0651\u0631 \u062D\u0641\u0638 \u0625\u0639\u062F\u0627\u062F\u0627\u062A \u0627\u0644\u0628\u062D\u062B \u0627\u0644\u0634\u0627\u0645\u0644.\",\n \"settings.restored\": \"\u062A\u0645\u062A \u0627\u0633\u062A\u0639\u0627\u062F\u0629 \u0627\u0644\u0625\u0639\u062F\u0627\u062F\u0627\u062A \u0627\u0644\u0627\u0641\u062A\u0631\u0627\u0636\u064A\u0629.\",\n \"settings.error_restore\": \"\u062A\u0639\u0630\u0651\u0631\u062A \u0627\u0633\u062A\u0639\u0627\u062F\u0629 \u0627\u0644\u0625\u0639\u062F\u0627\u062F\u0627\u062A \u0627\u0644\u0627\u0641\u062A\u0631\u0627\u0636\u064A\u0629.\",\n \"status.published\": \"\u0645\u0646\u0634\u0648\u0631\",\n \"status.draft\": \"\u0645\u0633\u0648\u062F\u0629\"\n}\n", "{\n \"plugin.name\": \"Global Search\",\n \"plugin.description\": \"Search every content type from one place.\",\n \"settings.section\": \"Global Search\",\n \"settings.link\": \"Configuration\",\n \"common.searching\": \"Searching\u2026\",\n \"common.no_results\": \"No results for \u201C{query}\u201D.\",\n \"common.on\": \"On\",\n \"common.off\": \"Off\",\n \"common.none\": \"none\",\n \"palette.title\": \"Global search\",\n \"palette.placeholder\": \"Search all content\u2026\",\n \"palette.min_chars\": \"Type at least {count} characters to search.\",\n \"palette.idle_hint\": \"Search every collection type and single type by id, name, or any text field.\",\n \"palette.error\": \"Search failed. Check that you have permission to read content, and see the server logs.\",\n \"palette.results_aria\": \"Search results\",\n \"palette.shortcuts_hint\": \"\u2191 \u2193 navigate \u00B7 \u21B5 open \u00B7 \u2318/Ctrl + \u21B5 new tab \u00B7 esc close\",\n \"palette.result_count\": \"{count} results\",\n \"page.subtitle_ready\": \"Searching {count} content types \u00B7 press Ctrl/Cmd + K anywhere\",\n \"page.subtitle_loading\": \"Discovering content types\u2026\",\n \"page.open_palette\": \"Open Palette (\u2318K)\",\n \"page.clear_search\": \"Clear search\",\n \"page.search_placeholder\": \"Search by id, name, or any text field\u2026\",\n \"page.search_label\": \"Search all content\",\n \"page.content_types_aria\": \"Content types\",\n \"page.all_content_types\": \"All content types\",\n \"page.clear_type_filters\": \"Clear content type filters\",\n \"page.all_locales\": \"All locales\",\n \"page.error\": \"Search failed. Check that you have permission to read content, and see the server logs for details.\",\n \"page.idle_title\": \"Search every collection type and single type in this project.\",\n \"page.idle_subtitle\": \"Results are ordered by id, then name, then any other field \u2014 including fields nested inside components. Press Ctrl/Cmd + K anywhere in the admin to open the quick palette.\",\n \"page.no_results_clear_filters\": \"Try clearing the content type filters.\",\n \"page.no_results_try_different\": \"Try a shorter or different term.\",\n \"page.results_summary\": \"{total} results across {groups} content types\",\n \"page.truncated_notice\": \" \u00B7 some types returned more than the per-type limit\",\n \"page.results_per_page\": \"Results per page\",\n \"page.per_page_option\": \"{size} / page\",\n \"page.previous\": \"Previous\",\n \"page.page_of\": \"Page {page} of {pageCount}\",\n \"page.next\": \"Next\",\n \"table.type\": \"Type\",\n \"table.id\": \"Id\",\n \"table.name\": \"Name\",\n \"table.matched\": \"Matched\",\n \"table.locale\": \"Locale\",\n \"table.status\": \"Status\",\n \"table.updated\": \"Updated\",\n \"settings.subtitle\": \"Tune how the search page and the Ctrl/Cmd + K palette query your content.\",\n \"settings.restore_defaults\": \"Restore defaults\",\n \"settings.save\": \"Save\",\n \"settings.behaviour_title\": \"Search behaviour\",\n \"settings.min_chars_label\": \"Minimum characters\",\n \"settings.min_chars_hint\": \"Shorter queries are not sent to the server.\",\n \"settings.debounce_label\": \"Debounce (ms)\",\n \"settings.debounce_hint\": \"How long to wait after the last keystroke.\",\n \"settings.per_type_limit_label\": \"Results per content type\",\n \"settings.per_type_limit_hint\": \"Rows fetched from each type.\",\n \"settings.max_results_label\": \"Maximum results\",\n \"settings.max_results_hint\": \"Hard cap on the merged, ranked list.\",\n \"settings.max_depth_label\": \"Component depth\",\n \"settings.max_depth_hint\": \"How many component levels to search into.\",\n \"settings.query_timeout_label\": \"Query timeout (ms)\",\n \"settings.query_timeout_hint\": \"A slower content type is skipped.\",\n \"settings.concurrency_label\": \"Concurrency\",\n \"settings.concurrency_hint\": \"Maximum content types queried in parallel.\",\n \"settings.deep_label\": \"Search inside components\",\n \"settings.deep_hint\": \"Also match fields nested in components.\",\n \"settings.drafts_label\": \"Include drafts\",\n \"settings.drafts_hint\": \"Search unpublished entries too.\",\n \"settings.plugins_label\": \"Include plugin content types\",\n \"settings.plugins_hint\": \"Also search visible content types registered by plugins.\",\n \"settings.content_types_title\": \"Content types\",\n \"settings.content_types_hint\": \"Every API and visible plugin content type is discovered automatically. Turn one off to exclude it from search results.\",\n \"settings.col_content_type\": \"Content type\",\n \"settings.col_kind\": \"Kind\",\n \"settings.col_main_field\": \"Main field\",\n \"settings.col_searchable_fields\": \"Searchable fields\",\n \"settings.col_enabled\": \"Enabled\",\n \"settings.kind_single\": \"Single\",\n \"settings.kind_collection\": \"Collection\",\n \"settings.enable_for_type\": \"Enable search for {name}\",\n \"settings.error_load\": \"Could not load global search settings.\",\n \"settings.saved\": \"Global search settings saved.\",\n \"settings.error_save\": \"Could not save global search settings.\",\n \"settings.restored\": \"Defaults restored.\",\n \"settings.error_restore\": \"Could not restore defaults.\",\n \"status.published\": \"Published\",\n \"status.draft\": \"Draft\"\n}\n", "{\n \"plugin.name\": \"B\u00FAsqueda Global\",\n \"plugin.description\": \"Busca en todos los tipos de contenido desde un solo lugar.\",\n \"settings.section\": \"B\u00FAsqueda Global\",\n \"settings.link\": \"Configuraci\u00F3n\",\n \"common.searching\": \"Buscando\u2026\",\n \"common.no_results\": \"Sin resultados para \u201C{query}\u201D.\",\n \"common.on\": \"S\u00ED\",\n \"common.off\": \"No\",\n \"common.none\": \"ninguno\",\n \"palette.title\": \"B\u00FAsqueda global\",\n \"palette.placeholder\": \"Buscar en todo el contenido\u2026\",\n \"palette.min_chars\": \"Escribe al menos {count} caracteres para buscar.\",\n \"palette.idle_hint\": \"Busca en cada tipo de colecci\u00F3n y tipo \u00FAnico por id, nombre o cualquier campo de texto.\",\n \"palette.error\": \"Error en la b\u00FAsqueda. Verifica tus permisos de lectura y revisa los registros del servidor.\",\n \"palette.results_aria\": \"Resultados de b\u00FAsqueda\",\n \"palette.shortcuts_hint\": \"\u2191 \u2193 navegar \u00B7 \u21B5 abrir \u00B7 \u2318/Ctrl + \u21B5 nueva pesta\u00F1a \u00B7 esc cerrar\",\n \"palette.result_count\": \"{count} resultados\",\n \"page.subtitle_ready\": \"Buscando en {count} tipos de contenido \u00B7 presiona Ctrl/Cmd + K en cualquier lugar\",\n \"page.subtitle_loading\": \"Descubriendo tipos de contenido\u2026\",\n \"page.open_palette\": \"Abrir paleta (\u2318K)\",\n \"page.clear_search\": \"Limpiar b\u00FAsqueda\",\n \"page.search_placeholder\": \"Buscar por id, nombre o cualquier campo de texto\u2026\",\n \"page.search_label\": \"Buscar en todo el contenido\",\n \"page.content_types_aria\": \"Tipos de contenido\",\n \"page.all_content_types\": \"Todos los tipos de contenido\",\n \"page.clear_type_filters\": \"Limpiar filtros de tipos de contenido\",\n \"page.all_locales\": \"Todos los idiomas\",\n \"page.error\": \"Error en la b\u00FAsqueda. Verifica tus permisos de lectura y revisa los registros del servidor para m\u00E1s detalles.\",\n \"page.idle_title\": \"Busca en todos los tipos de colecci\u00F3n y tipos \u00FAnicos de este proyecto.\",\n \"page.idle_subtitle\": \"Los resultados se ordenan por id, luego por nombre y luego por cualquier otro campo, incluidos los anidados en componentes. Presiona Ctrl/Cmd + K para abrir la paleta r\u00E1pida.\",\n \"page.no_results_clear_filters\": \"Intenta limpiar los filtros de tipos de contenido.\",\n \"page.no_results_try_different\": \"Intenta con un t\u00E9rmino m\u00E1s corto o diferente.\",\n \"page.results_summary\": \"{total} resultados en {groups} tipos de contenido\",\n \"page.truncated_notice\": \" \u00B7 algunos tipos devolvieron m\u00E1s que el l\u00EDmite por tipo\",\n \"page.results_per_page\": \"Resultados por p\u00E1gina\",\n \"page.per_page_option\": \"{size} / p\u00E1gina\",\n \"page.previous\": \"Anterior\",\n \"page.page_of\": \"P\u00E1gina {page} de {pageCount}\",\n \"page.next\": \"Siguiente\",\n \"table.type\": \"Tipo\",\n \"table.id\": \"Id\",\n \"table.name\": \"Nombre\",\n \"table.matched\": \"Coincidencia\",\n \"table.locale\": \"Idioma\",\n \"table.status\": \"Estado\",\n \"table.updated\": \"Actualizado\",\n \"settings.subtitle\": \"Ajusta c\u00F3mo la p\u00E1gina de b\u00FAsqueda y la paleta Ctrl/Cmd + K consultan tu contenido.\",\n \"settings.restore_defaults\": \"Restaurar valores por defecto\",\n \"settings.save\": \"Guardar\",\n \"settings.behaviour_title\": \"Comportamiento de b\u00FAsqueda\",\n \"settings.min_chars_label\": \"Caracteres m\u00EDnimos\",\n \"settings.min_chars_hint\": \"Las consultas m\u00E1s cortas no se env\u00EDan al servidor.\",\n \"settings.debounce_label\": \"Retardo (ms)\",\n \"settings.debounce_hint\": \"Tiempo de espera tras la \u00FAltima pulsaci\u00F3n.\",\n \"settings.per_type_limit_label\": \"Resultados por tipo de contenido\",\n \"settings.per_type_limit_hint\": \"Filas obtenidas de cada tipo.\",\n \"settings.max_results_label\": \"Resultados m\u00E1ximos\",\n \"settings.max_results_hint\": \"L\u00EDmite m\u00E1ximo en la lista combinada y clasificada.\",\n \"settings.max_depth_label\": \"Profundidad de componentes\",\n \"settings.max_depth_hint\": \"Cu\u00E1ntos niveles de componentes buscar.\",\n \"settings.query_timeout_label\": \"Tiempo de espera de consulta (ms)\",\n \"settings.query_timeout_hint\": \"Se omite un tipo de contenido m\u00E1s lento.\",\n \"settings.concurrency_label\": \"Concurrencia\",\n \"settings.concurrency_hint\": \"M\u00E1ximo de tipos de contenido consultados en paralelo.\",\n \"settings.deep_label\": \"Buscar dentro de componentes\",\n \"settings.deep_hint\": \"Tambi\u00E9n busca en campos anidados dentro de componentes.\",\n \"settings.drafts_label\": \"Incluir borradores\",\n \"settings.drafts_hint\": \"Buscar tambi\u00E9n entradas no publicadas.\",\n \"settings.plugins_label\": \"Incluir tipos de contenido de plugins\",\n \"settings.plugins_hint\": \"Buscar tambi\u00E9n tipos de contenido visibles registrados por plugins.\",\n \"settings.content_types_title\": \"Tipos de contenido\",\n \"settings.content_types_hint\": \"Cada tipo de contenido de API y plugin visible se descubre autom\u00E1ticamente. Desactiva uno para excluirlo.\",\n \"settings.col_content_type\": \"Tipo de contenido\",\n \"settings.col_kind\": \"Clase\",\n \"settings.col_main_field\": \"Campo principal\",\n \"settings.col_searchable_fields\": \"Campos buscables\",\n \"settings.col_enabled\": \"Habilitado\",\n \"settings.kind_single\": \"\u00DAnico\",\n \"settings.kind_collection\": \"Colecci\u00F3n\",\n \"settings.enable_for_type\": \"Habilitar b\u00FAsqueda para {name}\",\n \"settings.error_load\": \"No se pudo cargar la configuraci\u00F3n de b\u00FAsqueda global.\",\n \"settings.saved\": \"Configuraci\u00F3n de b\u00FAsqueda global guardada.\",\n \"settings.error_save\": \"No se pudo guardar la configuraci\u00F3n de b\u00FAsqueda global.\",\n \"settings.restored\": \"Valores predeterminados restaurados.\",\n \"settings.error_restore\": \"No se pudieron restaurar los valores predeterminados.\",\n \"status.published\": \"Publicado\",\n \"status.draft\": \"Borrador\"\n}\n", "{\n \"plugin.name\": \"Recherche globale\",\n \"plugin.description\": \"Recherchez dans tous les types de contenu depuis un seul endroit.\",\n \"settings.section\": \"Recherche globale\",\n \"settings.link\": \"Configuration\",\n \"common.searching\": \"Recherche en cours\u2026\",\n \"common.no_results\": \"Aucun r\u00E9sultat pour \u00AB {query} \u00BB.\",\n \"common.on\": \"Oui\",\n \"common.off\": \"Non\",\n \"common.none\": \"aucun\",\n \"palette.title\": \"Recherche globale\",\n \"palette.placeholder\": \"Rechercher dans tout le contenu\u2026\",\n \"palette.min_chars\": \"Saisissez au moins {count} caract\u00E8res pour rechercher.\",\n \"palette.idle_hint\": \"Recherchez dans chaque type de collection et type unique par identifiant, nom ou tout champ texte.\",\n \"palette.error\": \"\u00C9chec de la recherche. V\u00E9rifiez vos permissions de lecture et consultez les journaux du serveur.\",\n \"palette.results_aria\": \"R\u00E9sultats de recherche\",\n \"palette.shortcuts_hint\": \"\u2191 \u2193 naviguer \u00B7 \u21B5 ouvrir \u00B7 \u2318/Ctrl + \u21B5 nouvel onglet \u00B7 \u00E9chap fermer\",\n \"palette.result_count\": \"{count} r\u00E9sultats\",\n \"page.subtitle_ready\": \"Recherche dans {count} types de contenu \u00B7 appuyez sur Ctrl/Cmd + K partout\",\n \"page.subtitle_loading\": \"D\u00E9couverte des types de contenu\u2026\",\n \"page.open_palette\": \"Ouvrir la palette (\u2318K)\",\n \"page.clear_search\": \"Effacer la recherche\",\n \"page.search_placeholder\": \"Rechercher par id, nom ou tout champ texte\u2026\",\n \"page.search_label\": \"Rechercher dans tout le contenu\",\n \"page.content_types_aria\": \"Types de contenu\",\n \"page.all_content_types\": \"Tous les types de contenu\",\n \"page.clear_type_filters\": \"Effacer les filtres de types de contenu\",\n \"page.all_locales\": \"Toutes les langues\",\n \"page.error\": \"\u00C9chec de la recherche. V\u00E9rifiez vos permissions de lecture et consultez les journaux du serveur pour plus de d\u00E9tails.\",\n \"page.idle_title\": \"Recherchez dans tous les types de collection et types uniques de ce projet.\",\n \"page.idle_subtitle\": \"Les r\u00E9sultats sont tri\u00E9s par identifiant, puis par nom, puis par tout autre champ \u2014 y compris les champs imbriqu\u00E9s dans des composants. Appuyez sur Ctrl/Cmd + K pour ouvrir la palette rapide.\",\n \"page.no_results_clear_filters\": \"Essayez d'effacer les filtres de types de contenu.\",\n \"page.no_results_try_different\": \"Essayez un terme plus court ou diff\u00E9rent.\",\n \"page.results_summary\": \"{total} r\u00E9sultats dans {groups} types de contenu\",\n \"page.truncated_notice\": \" \u00B7 certains types ont renvoy\u00E9 plus que la limite par type\",\n \"page.results_per_page\": \"R\u00E9sultats par page\",\n \"page.per_page_option\": \"{size} / page\",\n \"page.previous\": \"Pr\u00E9c\u00E9dent\",\n \"page.page_of\": \"Page {page} sur {pageCount}\",\n \"page.next\": \"Suivant\",\n \"table.type\": \"Type\",\n \"table.id\": \"Id\",\n \"table.name\": \"Nom\",\n \"table.matched\": \"Correspondance\",\n \"table.locale\": \"Langue\",\n \"table.status\": \"Statut\",\n \"table.updated\": \"Mis \u00E0 jour\",\n \"settings.subtitle\": \"Ajustez la mani\u00E8re dont la page de recherche et la palette Ctrl/Cmd + K interrogent votre contenu.\",\n \"settings.restore_defaults\": \"Restaurer les valeurs par d\u00E9faut\",\n \"settings.save\": \"Enregistrer\",\n \"settings.behaviour_title\": \"Comportement de recherche\",\n \"settings.min_chars_label\": \"Caract\u00E8res minimums\",\n \"settings.min_chars_hint\": \"Les requ\u00EAtes plus courtes ne sont pas envoy\u00E9es au serveur.\",\n \"settings.debounce_label\": \"D\u00E9lai (ms)\",\n \"settings.debounce_hint\": \"Temps d'attente apr\u00E8s la derni\u00E8re frappe.\",\n \"settings.per_type_limit_label\": \"R\u00E9sultats par type de contenu\",\n \"settings.per_type_limit_hint\": \"Lignes r\u00E9cup\u00E9r\u00E9es pour chaque type.\",\n \"settings.max_results_label\": \"R\u00E9sultats maximums\",\n \"settings.max_results_hint\": \"Limite stricte sur la liste fusionn\u00E9e et class\u00E9e.\",\n \"settings.max_depth_label\": \"Profondeur des composants\",\n \"settings.max_depth_hint\": \"Nombre de niveaux de composants \u00E0 parcourir.\",\n \"settings.query_timeout_label\": \"D\u00E9lai d'expiration de requ\u00EAte (ms)\",\n \"settings.query_timeout_hint\": \"Un type de contenu plus lent est ignor\u00E9.\",\n \"settings.concurrency_label\": \"Parall\u00E9lisme\",\n \"settings.concurrency_hint\": \"Nombre maximal de types de contenu interrog\u00E9s en parall\u00E8le.\",\n \"settings.deep_label\": \"Rechercher dans les composants\",\n \"settings.deep_hint\": \"Correspondre aussi aux champs imbriqu\u00E9s dans les composants.\",\n \"settings.drafts_label\": \"Inclure les brouillons\",\n \"settings.drafts_hint\": \"Rechercher \u00E9galement les entr\u00E9es non publi\u00E9es.\",\n \"settings.plugins_label\": \"Inclure les types de contenu des plugins\",\n \"settings.plugins_hint\": \"Rechercher aussi les types de contenu visibles enregistr\u00E9s par les plugins.\",\n \"settings.content_types_title\": \"Types de contenu\",\n \"settings.content_types_hint\": \"Chaque type de contenu API et plugin visible est d\u00E9couvert automatiquement. D\u00E9sactivez-en un pour l'exclure des r\u00E9sultats.\",\n \"settings.col_content_type\": \"Type de contenu\",\n \"settings.col_kind\": \"Nature\",\n \"settings.col_main_field\": \"Champ principal\",\n \"settings.col_searchable_fields\": \"Champs recherchables\",\n \"settings.col_enabled\": \"Activ\u00E9\",\n \"settings.kind_single\": \"Unique\",\n \"settings.kind_collection\": \"Collection\",\n \"settings.enable_for_type\": \"Activer la recherche pour {name}\",\n \"settings.error_load\": \"Impossible de charger les param\u00E8tres de recherche globale.\",\n \"settings.saved\": \"Param\u00E8tres de recherche globale enregistr\u00E9s.\",\n \"settings.error_save\": \"Impossible d'enregistrer les param\u00E8tres de recherche globale.\",\n \"settings.restored\": \"Valeurs par d\u00E9faut restaur\u00E9es.\",\n \"settings.error_restore\": \"Impossible de restaurer les valeurs par d\u00E9faut.\",\n \"status.published\": \"Publi\u00E9\",\n \"status.draft\": \"Brouillon\"\n}\n", "{\n \"plugin.name\": \"Genel Arama\",\n \"plugin.description\": \"T\u00FCm i\u00E7erik t\u00FCrlerini tek bir yerden aray\u0131n.\",\n \"settings.section\": \"Genel Arama\",\n \"settings.link\": \"Yap\u0131land\u0131rma\",\n \"common.searching\": \"Aran\u0131yor\u2026\",\n \"common.no_results\": \"\u201C{query}\u201D i\u00E7in sonu\u00E7 bulunamad\u0131.\",\n \"common.on\": \"A\u00E7\u0131k\",\n \"common.off\": \"Kapal\u0131\",\n \"common.none\": \"yok\",\n \"palette.title\": \"Genel arama\",\n \"palette.placeholder\": \"T\u00FCm i\u00E7erikte ara\u2026\",\n \"palette.min_chars\": \"Aramak i\u00E7in en az {count} karakter yaz\u0131n.\",\n \"palette.idle_hint\": \"Her koleksiyon ve tekil t\u00FCr\u00FC kimlik, ad veya herhangi bir metin alan\u0131na g\u00F6re aray\u0131n.\",\n \"palette.error\": \"Arama ba\u015Far\u0131s\u0131z oldu. \u0130\u00E7erik okuma izninizi kontrol edin ve sunucu g\u00FCnl\u00FCklerine bak\u0131n.\",\n \"palette.results_aria\": \"Arama sonu\u00E7lar\u0131\",\n \"palette.shortcuts_hint\": \"\u2191 \u2193 gezin \u00B7 \u21B5 a\u00E7 \u00B7 \u2318/Ctrl + \u21B5 yeni sekme \u00B7 esc kapat\",\n \"palette.result_count\": \"{count} sonu\u00E7\",\n \"page.subtitle_ready\": \"{count} i\u00E7erik t\u00FCr\u00FCnde aran\u0131yor \u00B7 her yerde Ctrl/Cmd + K tu\u015Flar\u0131na bas\u0131n\",\n \"page.subtitle_loading\": \"\u0130\u00E7erik t\u00FCrleri ke\u015Ffediliyor\u2026\",\n \"page.open_palette\": \"Paleti A\u00E7 (\u2318K)\",\n \"page.clear_search\": \"Aramay\u0131 temizle\",\n \"page.search_placeholder\": \"Kimlik, ad veya herhangi bir metin alan\u0131na g\u00F6re aray\u0131n\u2026\",\n \"page.search_label\": \"T\u00FCm i\u00E7erikte ara\",\n \"page.content_types_aria\": \"\u0130\u00E7erik t\u00FCrleri\",\n \"page.all_content_types\": \"T\u00FCm i\u00E7erik t\u00FCrleri\",\n \"page.clear_type_filters\": \"\u0130\u00E7erik t\u00FCr\u00FC filtrelerini temizle\",\n \"page.all_locales\": \"T\u00FCm diller\",\n \"page.error\": \"Arama ba\u015Far\u0131s\u0131z oldu. \u0130\u00E7erik okuma izninizi kontrol edin ve ayr\u0131nt\u0131lar i\u00E7in sunucu g\u00FCnl\u00FCklerine bak\u0131n.\",\n \"page.idle_title\": \"Bu projedeki her koleksiyon t\u00FCr\u00FCn\u00FC ve tekil t\u00FCr\u00FC aray\u0131n.\",\n \"page.idle_subtitle\": \"Sonu\u00E7lar \u00F6nce kimli\u011Fe, sonra ada ve ard\u0131ndan bile\u015Fenlerin i\u00E7indeki alanlar dahil di\u011Fer alanlara g\u00F6re s\u0131ralan\u0131r. H\u0131zl\u0131 paleti a\u00E7mak i\u00E7in Ctrl/Cmd + K tu\u015Flar\u0131na bas\u0131n.\",\n \"page.no_results_clear_filters\": \"\u0130\u00E7erik t\u00FCr\u00FC filtrelerini temizlemeyi deneyin.\",\n \"page.no_results_try_different\": \"Daha k\u0131sa veya farkl\u0131 bir terim deneyin.\",\n \"page.results_summary\": \"{groups} i\u00E7erik t\u00FCr\u00FCnde {total} sonu\u00E7\",\n \"page.truncated_notice\": \" \u00B7 baz\u0131 t\u00FCrler t\u00FCr ba\u015F\u0131na s\u0131n\u0131rdan daha fazla sonu\u00E7 d\u00F6nd\u00FCrd\u00FC\",\n \"page.results_per_page\": \"Sayfa ba\u015F\u0131na sonu\u00E7\",\n \"page.per_page_option\": \"{size} / sayfa\",\n \"page.previous\": \"\u00D6nceki\",\n \"page.page_of\": \"Sayfa {page} / {pageCount}\",\n \"page.next\": \"Sonraki\",\n \"table.type\": \"T\u00FCr\",\n \"table.id\": \"Kimlik\",\n \"table.name\": \"Ad\",\n \"table.matched\": \"E\u015Fle\u015Fen\",\n \"table.locale\": \"Dil\",\n \"table.status\": \"Durum\",\n \"table.updated\": \"G\u00FCncellendi\",\n \"settings.subtitle\": \"Arama sayfas\u0131n\u0131n ve Ctrl/Cmd + K paletinin i\u00E7eri\u011Finizi nas\u0131l sorgulad\u0131\u011F\u0131n\u0131 ayarlay\u0131n.\",\n \"settings.restore_defaults\": \"Varsay\u0131lanlar\u0131 geri y\u00FCkle\",\n \"settings.save\": \"Kaydet\",\n \"settings.behaviour_title\": \"Arama davran\u0131\u015F\u0131\",\n \"settings.min_chars_label\": \"Minimum karakter\",\n \"settings.min_chars_hint\": \"Daha k\u0131sa sorgular sunucuya g\u00F6nderilmez.\",\n \"settings.debounce_label\": \"Gecikme (ms)\",\n \"settings.debounce_hint\": \"Son tu\u015F vuru\u015Fundan sonra beklenecek s\u00FCre.\",\n \"settings.per_type_limit_label\": \"\u0130\u00E7erik t\u00FCr\u00FC ba\u015F\u0131na sonu\u00E7\",\n \"settings.per_type_limit_hint\": \"Her t\u00FCrden \u00E7ekilen sat\u0131r say\u0131s\u0131.\",\n \"settings.max_results_label\": \"Maksimum sonu\u00E7\",\n \"settings.max_results_hint\": \"Birle\u015Ftirilmi\u015F, s\u0131ralanm\u0131\u015F listedeki \u00FCst s\u0131n\u0131r.\",\n \"settings.max_depth_label\": \"Bile\u015Fen derinli\u011Fi\",\n \"settings.max_depth_hint\": \"Aranacak bile\u015Fen seviyesi say\u0131s\u0131.\",\n \"settings.query_timeout_label\": \"Sorgu zaman a\u015F\u0131m\u0131 (ms)\",\n \"settings.query_timeout_hint\": \"Daha yava\u015F bir i\u00E7erik t\u00FCr\u00FC atlan\u0131r.\",\n \"settings.concurrency_label\": \"E\u015Fzamanl\u0131l\u0131k\",\n \"settings.concurrency_hint\": \"Paralel olarak sorgulanan maksimum i\u00E7erik t\u00FCr\u00FC say\u0131s\u0131.\",\n \"settings.deep_label\": \"Bile\u015Fenlerin i\u00E7inde ara\",\n \"settings.deep_hint\": \"Bile\u015Fenlerin i\u00E7ine yerle\u015Ftirilmi\u015F alanlar\u0131 da e\u015Fle\u015Ftir.\",\n \"settings.drafts_label\": \"Taslaklar\u0131 dahil et\",\n \"settings.drafts_hint\": \"Yay\u0131nlanmam\u0131\u015F kay\u0131tlar\u0131 da ara.\",\n \"settings.plugins_label\": \"Eklenti i\u00E7erik t\u00FCrlerini dahil et\",\n \"settings.plugins_hint\": \"Eklentiler taraf\u0131ndan kaydedilen g\u00F6r\u00FCn\u00FCr i\u00E7erik t\u00FCrlerini de ara.\",\n \"settings.content_types_title\": \"\u0130\u00E7erik t\u00FCrleri\",\n \"settings.content_types_hint\": \"Her API ve g\u00F6r\u00FCn\u00FCr eklenti i\u00E7erik t\u00FCr\u00FC otomatik olarak ke\u015Ffedilir. Arama sonu\u00E7lar\u0131ndan \u00E7\u0131karmak i\u00E7in birini kapat\u0131n.\",\n \"settings.col_content_type\": \"\u0130\u00E7erik t\u00FCr\u00FC\",\n \"settings.col_kind\": \"\u00C7e\u015Fit\",\n \"settings.col_main_field\": \"Ana alan\",\n \"settings.col_searchable_fields\": \"Aranabilir alanlar\",\n \"settings.col_enabled\": \"Etkin\",\n \"settings.kind_single\": \"Tekil\",\n \"settings.kind_collection\": \"Koleksiyon\",\n \"settings.enable_for_type\": \"{name} i\u00E7in aramay\u0131 etkinle\u015Ftir\",\n \"settings.error_load\": \"Genel arama ayarlar\u0131 y\u00FCklenemedi.\",\n \"settings.saved\": \"Genel arama ayarlar\u0131 kaydedildi.\",\n \"settings.error_save\": \"Genel arama ayarlar\u0131 kaydedilemedi.\",\n \"settings.restored\": \"Varsay\u0131lanlar geri y\u00FCklendi.\",\n \"settings.error_restore\": \"Varsay\u0131lanlar geri y\u00FCklenemedi.\",\n \"status.published\": \"Yay\u0131nland\u0131\",\n \"status.draft\": \"Taslak\"\n}\n", "import pluginId from \"../pluginId\";\nimport ar from \"../translations/ar.json\";\nimport en from \"../translations/en.json\";\nimport es from \"../translations/es.json\";\nimport fr from \"../translations/fr.json\";\nimport tr from \"../translations/tr.json\";\n\nconst TRANSLATIONS: Record<string, Record<string, string>> = {\n en,\n fr,\n es,\n ar,\n tr,\n};\n\nexport const getActiveLocale = (): string => {\n if (typeof window === \"undefined\") return \"en\";\n try {\n const raw = window.localStorage.getItem(\"strapi-admin-language\");\n if (!raw) return \"en\";\n const clean = raw.replace(/^\"|\"$/g, \"\").trim();\n if (TRANSLATIONS[clean]) return clean;\n const base = clean.split(/[-_]/)[0];\n return TRANSLATIONS[base] ? base : \"en\";\n } catch {\n return \"en\";\n }\n};\n\nexport const t = (\n id: string,\n defaultMessage: string,\n values?: Record<string, string | number>\n): string => {\n const locale = getActiveLocale();\n const dict = TRANSLATIONS[locale] || TRANSLATIONS.en || {};\n const template = dict[id] || TRANSLATIONS.en?.[id] || defaultMessage;\n if (!values) return template;\n\n return Object.entries(values).reduce(\n (result, [key, value]) => result.split(`{${key}}`).join(String(value)),\n template\n );\n};\n\nconst getTrad = (id: string): string => `${pluginId}.${id}`;\n\nexport default getTrad;\n", "import { getFetchClient } from \"@strapi/strapi/admin\";\n\nimport pluginId from \"../pluginId\";\nimport type {\n LocaleOption,\n PluginSettings,\n SchemaResponse,\n SearchResponse,\n} from \"../types\";\n\nexport interface SearchParams {\n q: string;\n types?: string[];\n locale?: string;\n page?: number;\n pageSize?: number;\n}\n\n/**\n * `getFetchClient` reads the admin JWT itself and needs no React context, so the\n * same calls work from the plugin page and from the body-mounted palette.\n */\nexport const searchEntries = async (\n params: SearchParams,\n signal?: AbortSignal\n): Promise<SearchResponse> => {\n const { get } = getFetchClient();\n const queryParams = {\n q: params.q,\n ...(params.types?.length ? { types: params.types.join(\",\") } : {}),\n ...(params.locale ? { locale: params.locale } : {}),\n ...(params.page !== undefined ? { page: params.page } : {}),\n ...(params.pageSize !== undefined ? { pageSize: params.pageSize } : {}),\n };\n const { data } = await get(`/${pluginId}/search`, {\n params: queryParams,\n signal,\n });\n\n return data as SearchResponse;\n};\n\nexport const fetchSearchableTypes = async (): Promise<SchemaResponse> => {\n const { get } = getFetchClient();\n const { data } = await get(`/${pluginId}/schema`);\n\n return data as SchemaResponse;\n};\n\nexport const fetchAllTypes = async (): Promise<SchemaResponse> => {\n const { get } = getFetchClient();\n const { data } = await get(`/${pluginId}/schema/all`);\n\n return data as SchemaResponse;\n};\n\nexport const fetchSettings = async (): Promise<PluginSettings> => {\n const { get } = getFetchClient();\n const { data } = await get(`/${pluginId}/settings`);\n\n return data as PluginSettings;\n};\n\nexport const updateSettings = async (\n body: PluginSettings\n): Promise<PluginSettings> => {\n const { put } = getFetchClient();\n const { data } = await put(`/${pluginId}/settings`, body);\n\n return data as PluginSettings;\n};\n\nexport const resetSettings = async (): Promise<PluginSettings> => {\n const { post } = getFetchClient();\n const { data } = await post(`/${pluginId}/settings/reset`);\n\n return data as PluginSettings;\n};\n\n/** i18n is optional \u2014 a 404 here just means locales are not configured. */\nexport const fetchLocales = async (): Promise<LocaleOption[]> => {\n try {\n const { get } = getFetchClient();\n const { data } = await get(\"/i18n/locales\");\n\n return Array.isArray(data) ? (data as LocaleOption[]) : [];\n } catch {\n return [];\n }\n};\n\nexport const isCanceled = (error: unknown): boolean => {\n const err = error as { name?: string; code?: string } | null | undefined;\n\n return (\n Boolean(err) &&\n (err!.name === \"CanceledError\" || err!.code === \"ERR_CANCELED\")\n );\n};\n", "import { useCallback, useEffect, useMemo, useRef, useState } from \"react\";\n\nimport { searchEntries, isCanceled } from \"../api/searchApi\";\nimport type { SearchResponse } from \"../types\";\n\nconst EMPTY: SearchResponse = {\n results: [],\n groups: [],\n pagination: { page: 1, pageSize: 20, total: 0, pageCount: 0 },\n meta: {},\n};\n\nexport interface UseGlobalSearchOptions {\n debounce?: number;\n minChars?: number;\n pageSize?: number;\n}\n\ntype SearchStatus = \"idle\" | \"loading\" | \"success\" | \"error\";\n\ninterface SearchState {\n status: SearchStatus;\n data: SearchResponse;\n error: unknown;\n}\n\n/**\n * Debounced search with two guards that keep the list from flickering:\n * an AbortController cancels the in-flight request, and a monotonic request id\n * means a slow early response can never overwrite a newer one.\n */\nconst useGlobalSearch = ({\n debounce = 250,\n minChars = 2,\n pageSize = 20,\n}: UseGlobalSearchOptions = {}) => {\n const [query, setQuery] = useState(\"\");\n const [selectedTypes, setSelectedTypes] = useState<string[]>([]);\n const [locale, setLocale] = useState(\"all\");\n const [page, setPage] = useState(1);\n const [state, setState] = useState<SearchState>({\n status: \"idle\",\n data: EMPTY,\n error: null,\n });\n\n const requestId = useRef(0);\n const controller = useRef<AbortController | null>(null);\n const typesKey = useMemo(() => selectedTypes.join(\",\"), [selectedTypes]);\n\n // Any change to the criteria invalidates the current page.\n useEffect(() => {\n setPage(1);\n }, [query, typesKey, locale]);\n\n useEffect(() => {\n const trimmed = query.trim();\n\n if (trimmed.length < minChars) {\n if (controller.current) controller.current.abort();\n requestId.current += 1;\n setState({ status: \"idle\", data: EMPTY, error: null });\n\n return undefined;\n }\n\n requestId.current += 1;\n const id = requestId.current;\n\n const timer = setTimeout(async () => {\n if (controller.current) controller.current.abort();\n controller.current = new AbortController();\n\n setState((previous) => ({ ...previous, status: \"loading\" }));\n\n try {\n const data = await searchEntries(\n { q: trimmed, types: selectedTypes, locale, page, pageSize },\n controller.current.signal\n );\n\n if (id === requestId.current)\n setState({ status: \"success\", data, error: null });\n } catch (error) {\n if (isCanceled(error) || id !== requestId.current) return;\n setState({ status: \"error\", data: EMPTY, error });\n }\n }, debounce);\n\n return () => clearTimeout(timer);\n }, [query, typesKey, locale, page, pageSize, debounce, minChars]);\n\n useEffect(\n () => () => {\n if (controller.current) controller.current.abort();\n },\n []\n );\n\n const toggleType = useCallback((uid: string) => {\n setSelectedTypes((previous) =>\n previous.includes(uid)\n ? previous.filter((item) => item !== uid)\n : [...previous, uid]\n );\n }, []);\n\n const clearTypes = useCallback(() => setSelectedTypes([]), []);\n\n return {\n query,\n setQuery,\n selectedTypes,\n setSelectedTypes,\n toggleType,\n clearTypes,\n locale,\n setLocale,\n page,\n setPage,\n status: state.status,\n error: state.error,\n data: state.data || EMPTY,\n isBelowMinChars: query.trim().length > 0 && query.trim().length < minChars,\n };\n};\n\nexport default useGlobalSearch;\n", "import { useEffect, useState } from \"react\";\n\nimport { fetchSearchableTypes } from \"../api/searchApi\";\nimport type {\n ContentTypeSummary,\n PluginSettings,\n SchemaResponse,\n} from \"../types\";\n\n// The schema barely changes at runtime, and both the page and the palette ask\n// for it \u2014 resolve it once per admin session.\nlet inFlight: Promise<SchemaResponse> | null = null;\n\nconst load = (): Promise<SchemaResponse> => {\n if (!inFlight) {\n inFlight = fetchSearchableTypes().catch((error) => {\n inFlight = null;\n throw error;\n });\n }\n\n return inFlight;\n};\n\ninterface SearchableTypesState {\n status: \"loading\" | \"success\" | \"error\";\n contentTypes: ContentTypeSummary[];\n settings: Partial<PluginSettings>;\n}\n\nconst INVALIDATE_EVENT = \"global-search:schema-invalidated\";\n\nconst useSearchableTypes = (): SearchableTypesState => {\n const [state, setState] = useState<SearchableTypesState>({\n status: \"loading\",\n contentTypes: [],\n settings: {},\n });\n\n useEffect(() => {\n let cancelled = false;\n\n const refresh = () => {\n load()\n .then((data) => {\n if (cancelled) return;\n setState({\n status: \"success\",\n contentTypes: data.contentTypes || [],\n settings: data.settings || {},\n });\n })\n .catch(() => {\n if (cancelled) return;\n setState({ status: \"error\", contentTypes: [], settings: {} });\n });\n };\n\n refresh();\n if (typeof window !== \"undefined\") {\n window.addEventListener(INVALIDATE_EVENT, refresh);\n }\n\n return () => {\n cancelled = true;\n if (typeof window !== \"undefined\") {\n window.removeEventListener(INVALIDATE_EVENT, refresh);\n }\n };\n }, []);\n\n return state;\n};\n\nexport const invalidateSearchableTypes = (): void => {\n inFlight = null;\n if (typeof window !== \"undefined\") {\n window.dispatchEvent(new CustomEvent(INVALIDATE_EVENT));\n }\n};\n\nexport default useSearchableTypes;\n", "/**\n * The Cmd+K palette is mounted outside the admin's React tree, so it has no\n * router to push to and must build absolute URLs itself. The admin path is\n * configurable (`config/admin.js` -> `url`).\n */\nexport const getAdminBase = (): string => {\n if (typeof window === \"undefined\") return \"/admin/\";\n\n try {\n const pathname = window.location.pathname || \"\";\n const marker = \"/admin\";\n let idx = pathname.lastIndexOf(marker);\n\n while (idx !== -1) {\n const end = idx + marker.length;\n if (end === pathname.length || pathname[end] === \"/\") {\n return `${pathname.slice(0, end)}/`;\n }\n idx = pathname.lastIndexOf(marker, idx - 1);\n }\n } catch {\n // Fall through to the default admin path.\n }\n\n return \"/admin/\";\n};\n\nexport const toAdminUrl = (path: string): string =>\n `${getAdminBase()}${String(path).replace(/^\\//, \"\")}`;\n", "import { Typography } from \"@strapi/design-system\";\nimport React from \"react\";\n\nconst escapeRegExp = (value: string): string =>\n value.replace(/[.*+?^${}()|[\\]\\\\]/g, \"\\\\$&\");\n\ninterface HighlightProps {\n text?: string | null;\n query?: string;\n textColor?: string;\n}\n\n/** Marks every occurrence of the query inside a snippet, case-insensitively. */\nconst Highlight = ({\n text,\n query = \"\",\n textColor = \"neutral600\",\n}: HighlightProps) => {\n if (!text) return null;\n const cleanQuery = query.trim();\n if (!cleanQuery) {\n return (\n <Typography tag=\"span\" textColor={textColor}>\n {text}\n </Typography>\n );\n }\n\n const parts = String(text).split(\n new RegExp(`(${escapeRegExp(cleanQuery)})`, \"gi\")\n );\n const lowered = cleanQuery.toLowerCase();\n\n return (\n <Typography tag=\"span\" textColor={textColor}>\n {parts.map((part, index) =>\n part.toLowerCase() === lowered ? (\n <Typography\n key={`${part}-${index}`}\n tag=\"span\"\n fontWeight=\"bold\"\n textColor=\"primary600\"\n >\n {part}\n </Typography>\n ) : (\n <React.Fragment key={`${part}-${index}`}>{part}</React.Fragment>\n )\n )}\n </Typography>\n );\n};\n\nexport { Highlight };\n", "import pluginId from \"./pluginId\";\n\nconst pluginPermissions = {\n main: [{ action: `plugin::${pluginId}.read`, subject: null }],\n settings: [{ action: `plugin::${pluginId}.settings`, subject: null }],\n};\n\nexport default pluginPermissions;\n", "import {\n Badge,\n Box,\n Table,\n Tbody,\n Td,\n Th,\n Thead,\n Tr,\n Typography,\n} from \"@strapi/design-system\";\nimport type { KeyboardEvent, MouseEvent } from \"react\";\nimport { styled } from \"styled-components\";\n\nimport type { SearchHit } from \"../types\";\nimport { t } from \"../utils/getTrad\";\nimport { Highlight } from \"./Highlight\";\n\nconst ClickableRow = styled(Tr)`\n cursor: pointer;\n\n &:hover {\n background: ${({ theme }: { theme: { colors: Record<string, string> } }) =>\n theme.colors.neutral100};\n }\n`;\n\nconst TABLE_HEADERS: Array<[string, string]> = [\n [\"table.type\", \"Type\"],\n [\"table.id\", \"Id\"],\n [\"table.name\", \"Name\"],\n [\"table.matched\", \"Matched\"],\n [\"table.locale\", \"Locale\"],\n [\"table.status\", \"Status\"],\n [\"table.updated\", \"Updated\"],\n];\n\ninterface ResultsTableProps {\n results: SearchHit[];\n trimmedQuery: string;\n onSelectHit: (adminUrl: string, newTab?: boolean) => void;\n}\n\nexport const ResultsTable = ({\n results,\n trimmedQuery,\n onSelectHit,\n}: ResultsTableProps) => (\n <Table colCount={7} rowCount={results.length}>\n <Thead>\n <Tr>\n {TABLE_HEADERS.map(([key, label]) => (\n <Th key={key}>\n <Typography variant=\"sigma\">{t(key, label)}</Typography>\n </Th>\n ))}\n </Tr>\n </Thead>\n <Tbody>\n {results.map((hit) => (\n <ClickableRow\n key={[\n hit.contentTypeUid,\n hit.documentId || hit.id,\n hit.locale || \"\",\n ].join(\"-\")}\n tabIndex={0}\n onClick={(event: MouseEvent) =>\n onSelectHit(hit.adminUrl, event.metaKey || event.ctrlKey)\n }\n onKeyDown={(event: KeyboardEvent) => {\n if (event.key === \"Enter\" || event.key === \" \") {\n event.preventDefault();\n onSelectHit(hit.adminUrl, event.metaKey || event.ctrlKey);\n }\n }}\n >\n <Td>\n <Typography textColor=\"neutral800\">\n {hit.contentTypeLabel}\n </Typography>\n </Td>\n <Td>\n <Typography textColor=\"neutral600\">\n {hit.documentId || hit.id}\n </Typography>\n </Td>\n <Td>\n <Typography fontWeight=\"semiBold\" textColor=\"neutral800\">\n <Highlight\n text={String(hit.title)}\n query={trimmedQuery}\n textColor=\"neutral800\"\n />\n </Typography>\n </Td>\n <Td>\n {hit.matchedField ? (\n <Box maxWidth=\"32rem\">\n <Typography variant=\"pi\" textColor=\"neutral500\">\n {hit.matchedFieldLabel}\n </Typography>\n <Box>\n <Typography variant=\"pi\">\n <Highlight\n text={hit.matchedSnippet || \"\"}\n query={trimmedQuery}\n />\n </Typography>\n </Box>\n </Box>\n ) : (\n <Typography textColor=\"neutral400\">\u2014</Typography>\n )}\n </Td>\n <Td>\n <Typography textColor=\"neutral600\">{hit.locale || \"\u2014\"}</Typography>\n </Td>\n <Td>\n {hit.status ? (\n <Badge>{t(`status.${hit.status}`, hit.status)}</Badge>\n ) : (\n <Typography textColor=\"neutral400\">\u2014</Typography>\n )}\n </Td>\n <Td>\n <Typography textColor=\"neutral600\">\n {hit.updatedAt\n ? new Date(hit.updatedAt).toLocaleDateString()\n : \"\u2014\"}\n </Typography>\n </Td>\n </ClickableRow>\n ))}\n </Tbody>\n </Table>\n);\n", "import {\n Box,\n Button,\n Flex,\n Loader,\n Main,\n MultiSelect,\n MultiSelectOption,\n Searchbar,\n SearchForm,\n SingleSelect,\n SingleSelectOption,\n Typography,\n} from \"@strapi/design-system\";\nimport { Layouts } from \"@strapi/strapi/admin\";\nimport { useEffect, useState, type ChangeEvent } from \"react\";\nimport { useNavigate } from \"react-router-dom\";\n\nimport { fetchLocales } from \"../api/searchApi\";\nimport { ResultsTable } from \"../components/ResultsTable\";\nimport useGlobalSearch from \"../hooks/useGlobalSearch\";\nimport useSearchableTypes from \"../hooks/useSearchableTypes\";\nimport type { ContentTypeSummary, LocaleOption, SearchHit } from \"../types\";\nimport { toAdminUrl } from \"../utils/adminBase\";\nimport { t } from \"../utils/getTrad\";\n\nconst PAGE_SIZES = [10, 20, 50];\n\nconst renderMessageCard = (heading: string, subtitle: string) => (\n <Box padding={8} background=\"neutral0\" hasRadius>\n <Typography variant=\"delta\" textColor=\"neutral600\">\n {heading}\n </Typography>\n <Box paddingTop={2}>\n <Typography textColor=\"neutral500\">{subtitle}</Typography>\n </Box>\n </Box>\n);\n\ninterface SearchResultsSectionProps {\n status: string;\n isBelowMinChars: boolean;\n minChars: number;\n trimmedQuery: string;\n hasTypeFilters: boolean;\n results: SearchHit[];\n onSelectHit: (adminUrl: string, newTab?: boolean) => void;\n}\n\nconst SearchResultsSection = ({\n status,\n isBelowMinChars,\n minChars,\n trimmedQuery,\n hasTypeFilters,\n results,\n onSelectHit,\n}: SearchResultsSectionProps) => {\n if (status === \"error\") {\n return (\n <Box padding={8} background=\"neutral0\" hasRadius>\n <Typography textColor=\"danger600\">\n {t(\n \"page.error\",\n \"Search failed. Check that you have permission to read \" +\n \"content, and see the server logs for details.\"\n )}\n </Typography>\n </Box>\n );\n }\n\n if (isBelowMinChars || (status === \"idle\" && !trimmedQuery)) {\n const headingText = isBelowMinChars\n ? t(\"palette.min_chars\", \"Type at least {count} characters to search.\", {\n count: minChars,\n })\n : t(\n \"page.idle_title\",\n \"Search every collection type and single type in this project.\"\n );\n return renderMessageCard(\n headingText,\n t(\n \"page.idle_subtitle\",\n \"Results are ordered by id, then name, then any other field \u2014 \" +\n \"including fields nested inside components. Press Ctrl/Cmd + K \" +\n \"anywhere in the admin to open the quick palette.\"\n )\n );\n }\n\n if (status === \"loading\" && !results.length) {\n return (\n <Flex justifyContent=\"center\" padding={8}>\n <Loader>{t(\"common.searching\", \"Searching\u2026\")}</Loader>\n </Flex>\n );\n }\n\n if (!results.length) {\n const emptyHint = hasTypeFilters\n ? t(\n \"page.no_results_clear_filters\",\n \"Try clearing the content type filters.\"\n )\n : t(\"page.no_results_try_different\", \"Try a shorter or different term.\");\n return renderMessageCard(\n t(\"common.no_results\", \"No results for \u201C{query}\u201D.\", {\n query: trimmedQuery,\n }),\n emptyHint\n );\n }\n\n return (\n <ResultsTable\n results={results}\n trimmedQuery={trimmedQuery}\n onSelectHit={onSelectHit}\n />\n );\n};\n\ninterface SearchFiltersBarProps {\n search: ReturnType<typeof useGlobalSearch>;\n contentTypes: ContentTypeSummary[];\n locales: LocaleOption[];\n}\n\nconst SearchFiltersBar = ({\n search,\n contentTypes,\n locales,\n}: SearchFiltersBarProps) => {\n const { groups } = search.data;\n return (\n <Flex gap={2} alignItems=\"flex-end\" wrap=\"wrap\">\n <Box grow={1} minWidth=\"16rem\">\n <SearchForm>\n <Searchbar\n name=\"global-search\"\n value={search.query}\n onChange={(event: ChangeEvent<HTMLInputElement>) =>\n search.setQuery(event.target.value)\n }\n onClear={() => search.setQuery(\"\")}\n clearLabel={t(\"page.clear_search\", \"Clear search\")}\n placeholder={t(\n \"page.search_placeholder\",\n \"Search by id, name, or any text field\u2026\"\n )}\n >\n {t(\"page.search_label\", \"Search all content\")}\n </Searchbar>\n </SearchForm>\n </Box>\n\n {contentTypes.length ? (\n <Box minWidth=\"18rem\" maxWidth=\"28rem\">\n <MultiSelect\n aria-label={t(\"page.content_types_aria\", \"Content types\")}\n placeholder={t(\"page.all_content_types\", \"All content types\")}\n value={search.selectedTypes}\n onChange={search.setSelectedTypes}\n onClear={search.clearTypes}\n clearLabel={t(\n \"page.clear_type_filters\",\n \"Clear content type filters\"\n )}\n withTags\n size=\"S\"\n >\n {contentTypes.map((type) => {\n const group = groups.find((item) => item.uid === type.uid);\n const countLabel = group\n ? ` (${group.count}${group.truncated ? \"+\" : \"\"})`\n : \"\";\n return (\n <MultiSelectOption key={type.uid} value={type.uid}>\n {type.displayName}\n {countLabel}\n </MultiSelectOption>\n );\n })}\n </MultiSelect>\n </Box>\n ) : null}\n\n {locales.length > 1 ? (\n <Box minWidth=\"16rem\">\n <SingleSelect\n aria-label={t(\"table.locale\", \"Locale\")}\n value={search.locale}\n onChange={(val: string | number) => search.setLocale(String(val))}\n size=\"S\"\n >\n <SingleSelectOption value=\"all\">\n {t(\"page.all_locales\", \"All locales\")}\n </SingleSelectOption>\n {locales.map((loc) => (\n <SingleSelectOption key={loc.code} value={loc.code}>\n {loc.name || loc.code}\n </SingleSelectOption>\n ))}\n </SingleSelect>\n </Box>\n ) : null}\n </Flex>\n );\n};\n\ninterface SearchPaginationBarProps {\n search: ReturnType<typeof useGlobalSearch>;\n pageSize: number;\n onPageSizeChange: (size: number) => void;\n}\n\nconst SearchPaginationBar = ({\n search,\n pageSize,\n onPageSizeChange,\n}: SearchPaginationBarProps) => {\n const { pagination, groups, meta } = search.data;\n const totalLabel = `${pagination.total}${meta.capped ? \"+\" : \"\"}`;\n const truncatedNotice = meta.truncatedTypes?.length\n ? t(\n \"page.truncated_notice\",\n \" \u00B7 some types returned more than the per-type limit\"\n )\n : \"\";\n\n return (\n <Flex justifyContent=\"space-between\" alignItems=\"center\">\n <Flex gap={2} alignItems=\"center\">\n <Typography textColor=\"neutral600\" variant=\"pi\">\n {t(\n \"page.results_summary\",\n \"{total} results across {groups} content types\",\n { total: totalLabel, groups: groups.length }\n )}\n {truncatedNotice}\n </Typography>\n <Box minWidth=\"7rem\">\n <SingleSelect\n aria-label={t(\"page.results_per_page\", \"Results per page\")}\n value={String(pageSize)}\n onChange={(value: string | number) =>\n onPageSizeChange(Number(value))\n }\n size=\"S\"\n >\n {PAGE_SIZES.map((size) => (\n <SingleSelectOption key={size} value={String(size)}>\n {t(\"page.per_page_option\", \"{size} / page\", { size })}\n </SingleSelectOption>\n ))}\n </SingleSelect>\n </Box>\n </Flex>\n\n <Flex gap={2} alignItems=\"center\">\n <Button\n variant=\"tertiary\"\n disabled={pagination.page <= 1}\n onClick={() => search.setPage(pagination.page - 1)}\n >\n {t(\"page.previous\", \"Previous\")}\n </Button>\n <Typography variant=\"pi\" textColor=\"neutral600\">\n {t(\"page.page_of\", \"Page {page} of {pageCount}\", {\n page: pagination.page,\n pageCount: pagination.pageCount || 1,\n })}\n </Typography>\n <Button\n variant=\"tertiary\"\n disabled={pagination.page >= pagination.pageCount}\n onClick={() => search.setPage(pagination.page + 1)}\n >\n {t(\"page.next\", \"Next\")}\n </Button>\n </Flex>\n </Flex>\n );\n};\n\nconst HomePage = () => {\n const navigate = useNavigate();\n const { contentTypes, settings, status: schemaStatus } = useSearchableTypes();\n const [pageSize, setPageSize] = useState(20);\n const [locales, setLocales] = useState<LocaleOption[]>([]);\n const minChars = settings.minChars || 2;\n\n const search = useGlobalSearch({\n debounce: settings.debounce || 250,\n minChars,\n pageSize,\n });\n\n useEffect(() => {\n let cancelled = false;\n fetchLocales().then((data) => {\n if (!cancelled) setLocales(data);\n });\n return () => {\n cancelled = true;\n };\n }, []);\n\n const { results } = search.data;\n const headerSubtitle =\n schemaStatus === \"success\"\n ? t(\n \"page.subtitle_ready\",\n \"Searching {count} content types \u00B7 press Ctrl/Cmd + K anywhere\",\n { count: contentTypes.length }\n )\n : t(\"page.subtitle_loading\", \"Discovering content types\u2026\");\n\n return (\n <Main aria-busy={search.status === \"loading\"}>\n <Layouts.Header\n title={t(\"plugin.name\", \"Global Search\")}\n subtitle={headerSubtitle}\n primaryAction={\n <Button\n variant=\"secondary\"\n onClick={() =>\n window.dispatchEvent(new CustomEvent(\"global-search:open\"))\n }\n >\n {t(\"page.open_palette\", \"Open Palette (\u2318K)\")}\n </Button>\n }\n />\n\n <Layouts.Content>\n <Flex direction=\"column\" alignItems=\"stretch\" gap={4}>\n <SearchFiltersBar\n search={search}\n contentTypes={contentTypes}\n locales={locales}\n />\n\n <SearchResultsSection\n status={search.status}\n isBelowMinChars={search.isBelowMinChars}\n minChars={minChars}\n trimmedQuery={search.query.trim()}\n hasTypeFilters={search.selectedTypes.length > 0}\n results={results}\n onSelectHit={(url, newTab) =>\n newTab\n ? window.open(toAdminUrl(url), \"_blank\", \"noopener\")\n : navigate(url)\n }\n />\n\n {results.length ? (\n <SearchPaginationBar\n search={search}\n pageSize={pageSize}\n onPageSizeChange={setPageSize}\n />\n ) : null}\n </Flex>\n </Layouts.Content>\n </Main>\n );\n};\n\nexport { HomePage };\nexport default HomePage;\n", "import { Page } from \"@strapi/strapi/admin\";\nimport { Routes, Route } from \"react-router-dom\";\n\nimport { HomePage } from \"./HomePage\";\n\nconst App = () => (\n <Routes>\n <Route index element={<HomePage />} />\n <Route path=\"*\" element={<Page.Error />} />\n </Routes>\n);\n\nexport { App };\nexport default App;\n", "import {\n Box,\n Button,\n Field,\n Flex,\n Grid,\n Main,\n NumberInput,\n Table,\n Tabs,\n Tbody,\n Td,\n Th,\n Thead,\n Toggle,\n Tr,\n Typography,\n} from \"@strapi/design-system\";\nimport { Check } from \"@strapi/icons\";\nimport { Layouts, Page, useNotification, useRBAC } from \"@strapi/strapi/admin\";\nimport { useEffect, useState, type ChangeEvent } from \"react\";\n\nimport {\n fetchAllTypes,\n fetchSettings,\n resetSettings,\n updateSettings,\n} from \"../api/searchApi\";\nimport { invalidateSearchableTypes } from \"../hooks/useSearchableTypes\";\nimport pluginPermissions from \"../permissions\";\nimport type { ContentTypeSummary, PluginSettings } from \"../types\";\nimport { t } from \"../utils/getTrad\";\n\nconst getNumberFields = (): Array<{\n name: keyof PluginSettings;\n label: string;\n hint: string;\n}> => [\n {\n name: \"minChars\",\n label: t(\"settings.min_chars_label\", \"Minimum characters\"),\n hint: t(\n \"settings.min_chars_hint\",\n \"Shorter queries are not sent to the server.\"\n ),\n },\n {\n name: \"debounce\",\n label: t(\"settings.debounce_label\", \"Debounce (ms)\"),\n hint: t(\n \"settings.debounce_hint\",\n \"How long to wait after the last keystroke.\"\n ),\n },\n {\n name: \"perTypeLimit\",\n label: t(\"settings.per_type_limit_label\", \"Results per content type\"),\n hint: t(\"settings.per_type_limit_hint\", \"Rows fetched from each type.\"),\n },\n {\n name: \"maxResults\",\n label: t(\"settings.max_results_label\", \"Maximum results\"),\n hint: t(\n \"settings.max_results_hint\",\n \"Hard cap on the merged, ranked list.\"\n ),\n },\n {\n name: \"maxDepth\",\n label: t(\"settings.max_depth_label\", \"Component depth\"),\n hint: t(\n \"settings.max_depth_hint\",\n \"How many component levels to search into.\"\n ),\n },\n {\n name: \"queryTimeout\",\n label: t(\"settings.query_timeout_label\", \"Query timeout (ms)\"),\n hint: t(\"settings.query_timeout_hint\", \"A slower content type is skipped.\"),\n },\n {\n name: \"concurrency\",\n label: t(\"settings.concurrency_label\", \"Concurrency\"),\n hint: t(\n \"settings.concurrency_hint\",\n \"Maximum content types queried in parallel.\"\n ),\n },\n];\n\nconst extractSaveErrorMessage = (error: unknown): string => {\n const err = error as {\n response?: { data?: { error?: { message?: string } } };\n };\n return (\n err?.response?.data?.error?.message ||\n t(\"settings.error_save\", \"Could not save global search settings.\")\n );\n};\n\nconst getToggleFields = (\n settings: PluginSettings\n): Array<{\n name: \"deep\" | \"includeDrafts\" | \"includePluginContentTypes\";\n label: string;\n hint: string;\n checked: boolean;\n}> => [\n {\n name: \"deep\",\n label: t(\"settings.deep_label\", \"Search inside components\"),\n hint: t(\"settings.deep_hint\", \"Also match fields nested in components.\"),\n checked: Boolean(settings.deep),\n },\n {\n name: \"includeDrafts\",\n label: t(\"settings.drafts_label\", \"Include drafts\"),\n hint: t(\"settings.drafts_hint\", \"Search unpublished entries too.\"),\n checked: Boolean(settings.includeDrafts),\n },\n {\n name: \"includePluginContentTypes\",\n label: t(\"settings.plugins_label\", \"Include plugin content types\"),\n hint: t(\n \"settings.plugins_hint\",\n \"Also search visible content types registered by plugins.\"\n ),\n checked: settings.includePluginContentTypes !== false,\n },\n];\n\ninterface SearchBehaviourPanelProps {\n settings: PluginSettings;\n canEdit: boolean;\n onSetField: <K extends keyof PluginSettings>(\n name: K,\n value: PluginSettings[K]\n ) => void;\n}\n\nconst SearchBehaviourPanel = ({\n settings,\n canEdit,\n onSetField,\n}: SearchBehaviourPanelProps) => {\n const onText = t(\"common.on\", \"On\");\n const offText = t(\"common.off\", \"Off\");\n\n return (\n <Box background=\"neutral0\" padding={6} hasRadius shadow=\"tableShadow\">\n <Typography variant=\"delta\">\n {t(\"settings.behaviour_title\", \"Search behaviour\")}\n </Typography>\n\n <Box paddingTop={4}>\n <Grid.Root gap={4}>\n {getNumberFields().map((field) => (\n <Grid.Item key={field.name} col={4} s={12}>\n <Field.Root name={field.name} hint={field.hint}>\n <Field.Label>{field.label}</Field.Label>\n <NumberInput\n name={field.name}\n aria-label={field.label}\n value={settings[field.name] as number}\n onValueChange={(value: number | undefined) => {\n if (typeof value === \"number\" && Number.isFinite(value)) {\n onSetField(\n field.name,\n Math.round(value) as PluginSettings[typeof field.name]\n );\n }\n }}\n disabled={!canEdit}\n />\n <Field.Hint />\n </Field.Root>\n </Grid.Item>\n ))}\n\n {getToggleFields(settings).map((field) => (\n <Grid.Item key={field.name} col={4} s={12}>\n <Field.Root name={field.name} hint={field.hint}>\n <Field.Label>{field.label}</Field.Label>\n <Toggle\n name={field.name}\n aria-label={field.label}\n onLabel={onText}\n offLabel={offText}\n checked={field.checked}\n onChange={(event: ChangeEvent<HTMLInputElement>) =>\n onSetField(field.name, event.target.checked)\n }\n disabled={!canEdit}\n />\n <Field.Hint />\n </Field.Root>\n </Grid.Item>\n ))}\n </Grid.Root>\n </Box>\n </Box>\n );\n};\n\nconst CONTENT_TYPE_COLS: Array<[string, string]> = [\n [\"settings.col_content_type\", \"Content type\"],\n [\"settings.col_kind\", \"Kind\"],\n [\"settings.col_main_field\", \"Main field\"],\n [\"settings.col_searchable_fields\", \"Searchable fields\"],\n [\"settings.col_enabled\", \"Enabled\"],\n];\n\ninterface ContentTypesTablePanelProps {\n contentTypes: ContentTypeSummary[];\n excluded: string[];\n canEdit: boolean;\n onToggleContentType: (uid: string) => void;\n}\n\nconst ContentTypesTablePanel = ({\n contentTypes,\n excluded,\n canEdit,\n onToggleContentType,\n}: ContentTypesTablePanelProps) => (\n <Box background=\"neutral0\" padding={6} hasRadius shadow=\"tableShadow\">\n <Typography variant=\"delta\">\n {t(\"settings.content_types_title\", \"Content types\")}\n </Typography>\n <Box paddingTop={1} paddingBottom={4}>\n <Typography textColor=\"neutral600\" variant=\"pi\">\n {t(\n \"settings.content_types_hint\",\n \"Every API and visible plugin content type is discovered \" +\n \"automatically. Turn one off to exclude it from search results.\"\n )}\n </Typography>\n </Box>\n\n <Table colCount={5} rowCount={contentTypes.length}>\n <Thead>\n <Tr>\n {CONTENT_TYPE_COLS.map(([key, label]) => (\n <Th key={key}>\n <Typography variant=\"sigma\">{t(key, label)}</Typography>\n </Th>\n ))}\n </Tr>\n </Thead>\n <Tbody>\n {contentTypes.map((type) => (\n <Tr key={type.uid}>\n <Td>\n <Box>\n <Typography textColor=\"neutral800\" fontWeight=\"semiBold\">\n {type.displayName}\n </Typography>\n <Box>\n <Typography variant=\"pi\" textColor=\"neutral500\">\n {type.uid}\n </Typography>\n </Box>\n </Box>\n </Td>\n <Td>\n <Typography textColor=\"neutral600\">\n {type.kind === \"singleType\"\n ? t(\"settings.kind_single\", \"Single\")\n : t(\"settings.kind_collection\", \"Collection\")}\n </Typography>\n </Td>\n <Td>\n <Typography textColor=\"neutral600\">{type.mainField}</Typography>\n </Td>\n <Td>\n <Typography\n textColor={type.searchable ? \"neutral600\" : \"danger600\"}\n >\n {type.searchable ? type.fieldCount : t(\"common.none\", \"none\")}\n </Typography>\n </Td>\n <Td>\n <Toggle\n name={`enabled-${type.uid}`}\n aria-label={t(\n \"settings.enable_for_type\",\n \"Enable search for {name}\",\n { name: type.displayName }\n )}\n onLabel={t(\"common.on\", \"On\")}\n offLabel={t(\"common.off\", \"Off\")}\n checked={!excluded.includes(type.uid)}\n onChange={() => onToggleContentType(type.uid)}\n disabled={!canEdit || !type.searchable}\n />\n </Td>\n </Tr>\n ))}\n </Tbody>\n </Table>\n </Box>\n);\n\nconst SettingsPage = () => {\n const { toggleNotification } = useNotification();\n const { allowedActions } = useRBAC(pluginPermissions.settings);\n const [isLoading, setIsLoading] = useState(true);\n const [isSaving, setIsSaving] = useState(false);\n const [settings, setSettings] = useState<PluginSettings | null>(null);\n const [contentTypes, setContentTypes] = useState<ContentTypeSummary[]>([]);\n\n const canEdit =\n (allowedActions as { canSettings?: boolean }).canSettings !== false;\n\n const load = async () => {\n setIsLoading(true);\n\n try {\n const [nextSettings, schema] = await Promise.all([\n fetchSettings(),\n fetchAllTypes(),\n ]);\n setSettings(nextSettings);\n setContentTypes(schema.contentTypes || []);\n } catch {\n toggleNotification({\n type: \"danger\",\n message: t(\n \"settings.error_load\",\n \"Could not load global search settings.\"\n ),\n });\n } finally {\n setIsLoading(false);\n }\n };\n\n useEffect(() => {\n load();\n }, []);\n\n const setField = <K extends keyof PluginSettings>(\n name: K,\n value: PluginSettings[K]\n ) =>\n setSettings((previous) =>\n previous ? { ...previous, [name]: value } : previous\n );\n\n const toggleContentType = (uid: string) => {\n setSettings((previous) => {\n if (!previous) return previous;\n const excluded = previous.excludedContentTypes || [];\n return {\n ...previous,\n excludedContentTypes: excluded.includes(uid)\n ? excluded.filter((item) => item !== uid)\n : [...excluded, uid],\n };\n });\n };\n\n const save = async () => {\n if (!settings) return;\n setIsSaving(true);\n\n try {\n const saved = await updateSettings(settings);\n const schema = await fetchAllTypes();\n setSettings(saved);\n setContentTypes(schema.contentTypes || []);\n invalidateSearchableTypes();\n toggleNotification({\n type: \"success\",\n message: t(\"settings.saved\", \"Global search settings saved.\"),\n });\n } catch (error: unknown) {\n toggleNotification({\n type: \"danger\",\n message: extractSaveErrorMessage(error),\n });\n } finally {\n setIsSaving(false);\n }\n };\n\n const restoreDefaults = async () => {\n setIsSaving(true);\n\n try {\n const restored = await resetSettings();\n const schema = await fetchAllTypes();\n setSettings(restored);\n setContentTypes(schema.contentTypes || []);\n invalidateSearchableTypes();\n toggleNotification({\n type: \"success\",\n message: t(\"settings.restored\", \"Defaults restored.\"),\n });\n } catch {\n toggleNotification({\n type: \"danger\",\n message: t(\"settings.error_restore\", \"Could not restore defaults.\"),\n });\n } finally {\n setIsSaving(false);\n }\n };\n\n if (isLoading || !settings) return <Page.Loading />;\n\n const ctTabTitle = t(\"settings.content_types_title\", \"Content types\");\n\n return (\n <Main>\n <Layouts.Header\n title={t(\"plugin.name\", \"Global Search\")}\n subtitle={t(\n \"settings.subtitle\",\n \"Tune how the search page and the Ctrl/Cmd + K palette \" +\n \"query your content.\"\n )}\n primaryAction={\n <Flex gap={2}>\n <Button\n variant=\"tertiary\"\n onClick={restoreDefaults}\n disabled={!canEdit || isSaving}\n >\n {t(\"settings.restore_defaults\", \"Restore defaults\")}\n </Button>\n <Button\n startIcon={<Check />}\n onClick={save}\n loading={isSaving}\n disabled={!canEdit}\n >\n {t(\"settings.save\", \"Save\")}\n </Button>\n </Flex>\n }\n />\n\n <Layouts.Content>\n <Tabs.Root defaultValue=\"behaviour\" variant=\"simple\">\n <Tabs.List aria-label={t(\"plugin.name\", \"Global Search\")}>\n <Tabs.Trigger value=\"behaviour\">\n {t(\"settings.behaviour_title\", \"Search behaviour\")}\n </Tabs.Trigger>\n <Tabs.Trigger value=\"content-types\">\n {`${ctTabTitle} (${contentTypes.length})`}\n </Tabs.Trigger>\n </Tabs.List>\n\n <Tabs.Content value=\"behaviour\">\n <Box paddingTop={4}>\n <SearchBehaviourPanel\n settings={settings}\n canEdit={canEdit}\n onSetField={setField}\n />\n </Box>\n </Tabs.Content>\n\n <Tabs.Content value=\"content-types\">\n <Box paddingTop={4}>\n <ContentTypesTablePanel\n contentTypes={contentTypes}\n excluded={settings.excludedContentTypes || []}\n canEdit={canEdit}\n onToggleContentType={toggleContentType}\n />\n </Box>\n </Tabs.Content>\n </Tabs.Root>\n </Layouts.Content>\n </Main>\n );\n};\n\nexport { SettingsPage };\nexport default SettingsPage;\n", "function freezeOptions(items) {\n return Object.freeze(items.map((item) => Object.freeze({ ...item })));\n}\nexport const LOCALE_OPTIONS = freezeOptions([\n { value: \"es\", label: \"es \u2014 Espa\u00F1ol (Spanish)\" },\n { value: \"en\", label: \"en \u2014 English\" },\n { value: \"ar\", label: \"ar \u2014 \u0627\u0644\u0639\u0631\u0628\u064A\u0629 (Arabic)\" },\n { value: \"tr\", label: \"tr \u2014 T\u00FCrk\u00E7e (Turkish)\" },\n { value: \"fr\", label: \"fr \u2014 Fran\u00E7ais (French)\" },\n { value: \"de\", label: \"de \u2014 Deutsch (German)\" },\n { value: \"pt\", label: \"pt \u2014 Portugu\u00EAs (Portuguese)\" },\n { value: \"it\", label: \"it \u2014 Italiano (Italian)\" },\n { value: \"nl\", label: \"nl \u2014 Nederlands (Dutch)\" },\n { value: \"pl\", label: \"pl \u2014 Polski (Polish)\" },\n { value: \"ru\", label: \"ru \u2014 \u0420\u0443\u0441\u0441\u043A\u0438\u0439 (Russian)\" },\n { value: \"id\", label: \"id \u2014 Bahasa Indonesia\" },\n { value: \"ur\", label: \"ur \u2014 \u0627\u0631\u062F\u0648 (Urdu)\" },\n { value: \"zh\", label: \"zh \u2014 \u4E2D\u6587 (Chinese)\" },\n]);\nexport const SECONDARY_CALENDAR_OPTIONS = freezeOptions([\n {\n value: \"islamic-umalqura\",\n label: \"islamic-umalqura (Hijri Umm al-Qura)\",\n },\n { value: \"islamic-civil\", label: \"islamic-civil (Tabular Islamic Civil)\" },\n { value: \"islamic-tbla\", label: \"islamic-tbla (Tabular Astronomical)\" },\n { value: \"hebrew\", label: \"hebrew (Hebrew)\" },\n { value: \"persian\", label: \"persian (Solar Hijri)\" },\n { value: \"none\", label: \"none (Gregorian Only)\" },\n]);\nexport function mergeSelectOptions(predefined, currentValues) {\n const known = new Set(predefined.map((opt) => opt.value));\n const merged = predefined.map((opt) => ({\n value: opt.value,\n label: opt.label,\n }));\n for (const raw of currentValues ?? []) {\n const val = typeof raw === \"string\" ? raw.trim() : \"\";\n if (val && !known.has(val)) {\n known.add(val);\n merged.push({ value: val, label: val });\n }\n }\n return merged;\n}\n/**\n * Splits a comma-separated string into unique, trimmed, non-empty values.\n * Note: For controlled text inputs, maintain a local draft string in UI state\n * rather than re-joining `parseCsvList(e.target.value)` on every keystroke.\n */\nexport function parseCsvList(raw) {\n if (typeof raw !== \"string\" || !raw) {\n return [];\n }\n const seen = new Set();\n const result = [];\n for (const segment of raw.split(\",\")) {\n const item = segment.trim();\n if (item && !seen.has(item)) {\n seen.add(item);\n result.push(item);\n }\n }\n return result;\n}\n", "const VALID_LOCALE_RE = /^[A-Za-z]{2,3}(?:-[A-Za-z0-9]{2,8}){0,4}$/;\nfunction isTranslationRecord(value) {\n return Boolean(value) && typeof value === \"object\" && !Array.isArray(value);\n}\nfunction extractDictionary(loaded) {\n if (!isTranslationRecord(loaded)) {\n return undefined;\n }\n if (\"default\" in loaded) {\n return isTranslationRecord(loaded.default)\n ? loaded.default\n : undefined;\n }\n return loaded;\n}\nfunction getLookupCandidates(locale, fallbackToLanguage) {\n const trimmed = locale.trim();\n if (!VALID_LOCALE_RE.test(trimmed)) {\n return [];\n }\n if (!fallbackToLanguage || !trimmed.includes(\"-\")) {\n return [trimmed];\n }\n const base = trimmed.split(\"-\")[0];\n return base && base !== trimmed ? [trimmed, base] : [trimmed];\n}\nexport function prefixPluginTranslations(trad, pluginId, options) {\n const normalizedPluginId = typeof pluginId === \"string\" ? pluginId.trim() : \"\";\n if (!normalizedPluginId) {\n throw new TypeError(\"pluginId can't be empty\");\n }\n const result = {};\n if (options?.baseTranslations) {\n for (const [key, value] of Object.entries(options.baseTranslations)) {\n if (typeof value === \"string\") {\n result[key] = value;\n }\n }\n }\n const prefix = `${normalizedPluginId}.`;\n const explicitPrefixed = [];\n for (const [key, value] of Object.entries(trad)) {\n if (typeof value !== \"string\") {\n continue;\n }\n if (options?.keepUnprefixed) {\n result[key] = value;\n }\n if (key.startsWith(prefix)) {\n explicitPrefixed.push([key, value]);\n }\n else {\n result[`${prefix}${key}`] = value;\n }\n }\n for (const [key, value] of explicitPrefixed) {\n result[key] = value;\n }\n return result;\n}\nexport function createRegisterTrads(options) {\n const { pluginId, defaultLocales = [\"en\", \"es\", \"ar\", \"tr\"], supportedLocales, keepUnprefixed = true, fallbackToLanguageCode = true, loadTranslation, translations, getBaseTranslations, onLoaded, } = options;\n const normalizedPluginId = typeof pluginId === \"string\" ? pluginId.trim() : \"\";\n if (!normalizedPluginId) {\n throw new TypeError(\"pluginId can't be empty\");\n }\n const supportedSet = supportedLocales ? new Set(supportedLocales) : undefined;\n const effectiveDefaults = supportedSet\n ? defaultLocales.filter((loc) => getLookupCandidates(loc, fallbackToLanguageCode).some((candidate) => supportedSet.has(candidate)))\n : defaultLocales;\n return async function registerTrads({ locales = [], } = {}) {\n const allLocales = effectiveDefaults.length > 0\n ? Array.from(new Set([...locales, ...effectiveDefaults]))\n : Array.from(new Set(locales));\n return Promise.all(allLocales.map(async (locale) => {\n const candidates = getLookupCandidates(locale, fallbackToLanguageCode);\n if (candidates.length === 0) {\n return { data: {}, locale };\n }\n if (supportedSet &&\n !candidates.some((candidate) => supportedSet.has(candidate))) {\n return { data: {}, locale };\n }\n let rawData;\n for (const candidate of candidates) {\n if (translations && Object.hasOwn(translations, candidate)) {\n rawData = extractDictionary(translations[candidate]);\n if (rawData) {\n break;\n }\n }\n if (loadTranslation) {\n try {\n const loaded = await loadTranslation(candidate);\n rawData = extractDictionary(loaded);\n if (rawData) {\n break;\n }\n }\n catch {\n // Expected when a locale file does not exist; try next candidate\n }\n }\n }\n const baseTranslations = getBaseTranslations?.(locale);\n const hasBase = Boolean(baseTranslations) &&\n Object.keys(baseTranslations).length > 0;\n if (!rawData && !hasBase) {\n return { data: {}, locale };\n }\n const prefixed = prefixPluginTranslations(rawData ?? {}, normalizedPluginId, {\n keepUnprefixed,\n baseTranslations,\n });\n onLoaded?.(locale, prefixed);\n return { data: prefixed, locale };\n }));\n };\n}\n", "import { createRegisterTrads } from \"@vicacha-devs/plugin-shared\";\nimport React from \"react\";\nimport { createRoot } from \"react-dom/client\";\n\nimport { GlobalSearchPortal } from \"./components/GlobalSearchPortal\";\nimport { Initializer } from \"./components/Initializer\";\nimport { PluginIcon } from \"./components/PluginIcon\";\nimport pluginPermissions from \"./permissions\";\nimport pluginId from \"./pluginId\";\nimport ar from \"./translations/ar.json\";\nimport en from \"./translations/en.json\";\nimport es from \"./translations/es.json\";\nimport fr from \"./translations/fr.json\";\nimport tr from \"./translations/tr.json\";\n\nconst BUILTIN_TRANSLATIONS: Record<string, Record<string, string>> = {\n en,\n fr,\n es,\n ar,\n tr,\n};\n\nconst PORTAL_ROOT_ID = \"global-search-portal-root\";\n\ninterface StrapiApp {\n addMenuLink: (options: Record<string, unknown>) => void;\n addSettingsLink: (\n section: Record<string, unknown>,\n links: Array<Record<string, unknown>>\n ) => void;\n registerPlugin: (plugin: Record<string, unknown>) => void;\n}\n\nexport default {\n register(app: StrapiApp) {\n app.addMenuLink({\n to: `plugins/${pluginId}`,\n icon: PluginIcon,\n intlLabel: {\n id: `${pluginId}.plugin.name`,\n defaultMessage: \"Global Search\",\n },\n permissions: pluginPermissions.main,\n Component: () => import(\"./pages/App\"),\n });\n\n app.addSettingsLink(\n {\n id: pluginId,\n intlLabel: {\n id: `${pluginId}.settings.section`,\n defaultMessage: \"Global Search\",\n },\n },\n [\n {\n intlLabel: {\n id: `${pluginId}.settings.link`,\n defaultMessage: \"Configuration\",\n },\n id: `${pluginId}-settings`,\n to: pluginId,\n permissions: pluginPermissions.settings,\n Component: () => import(\"./pages/Settings\"),\n },\n ]\n );\n\n app.registerPlugin({\n id: pluginId,\n initializer: Initializer,\n isReady: false,\n name: pluginId,\n });\n },\n\n /**\n * The Ctrl/Cmd + K palette is mounted on document.body so it is available on\n * every admin screen, not only the plugin page.\n */\n bootstrap() {\n if (\n typeof document === \"undefined\" ||\n document.getElementById(PORTAL_ROOT_ID)\n )\n return;\n\n const container = document.createElement(\"div\");\n container.id = PORTAL_ROOT_ID;\n document.body.appendChild(container);\n\n createRoot(container).render(React.createElement(GlobalSearchPortal));\n },\n\n registerTrads: createRegisterTrads({\n pluginId,\n defaultLocales: [],\n keepUnprefixed: false,\n translations: BUILTIN_TRANSLATIONS,\n loadTranslation: (locale) => import(`./translations/${locale}.json`),\n }),\n};\n", "import { DesignSystemProvider } from \"@strapi/design-system\";\nimport { useEffect, useState } from \"react\";\n\nimport useHotkey from \"../hooks/useHotkey\";\nimport { getActiveLocale } from \"../utils/getTrad\";\nimport { useAdminTheme } from \"../utils/theme\";\nimport { SearchOverlay } from \"./SearchOverlay\";\n\nconst hasToken = (storage: Storage | undefined): boolean => {\n if (!storage) return false;\n try {\n const raw = storage.getItem(\"jwtToken\");\n if (!raw) return false;\n return Boolean(JSON.parse(raw));\n } catch {\n return Boolean(storage.getItem(\"jwtToken\"));\n }\n};\n\nconst hasCookieToken = (): boolean => {\n if (typeof document === \"undefined\" || !document.cookie) return false;\n return document.cookie.split(\";\").some((entry) => {\n const [key, val] = entry.trim().split(\"=\");\n return key === \"jwtToken\" && Boolean(val);\n });\n};\n\nconst isAuthenticated = (): boolean => {\n if (typeof window === \"undefined\") return false;\n const segments = (window.location?.pathname || \"\").split(\"/\");\n if (segments.includes(\"auth\")) return false;\n\n return (\n hasToken(window.localStorage) ||\n hasToken(window.sessionStorage) ||\n hasCookieToken()\n );\n};\n\n/**\n * Root of the always-available palette. This component owns its own React root\n * (mounted from `bootstrap()`) and therefore its own DesignSystemProvider, kept\n * in sync with the admin's light/dark setting.\n */\nconst GlobalSearchPortal = () => {\n const [isOpen, setIsOpen] = useState(false);\n const theme = useAdminTheme();\n\n useHotkey(() => setIsOpen((open) => (open ? false : isAuthenticated())));\n\n useEffect(() => {\n const onOpen = () => {\n if (isAuthenticated()) setIsOpen(true);\n };\n window.addEventListener(\"global-search:open\", onOpen);\n return () => window.removeEventListener(\"global-search:open\", onOpen);\n }, []);\n\n return (\n <DesignSystemProvider theme={theme} locale={getActiveLocale()}>\n {isOpen ? <SearchOverlay onClose={() => setIsOpen(false)} /> : null}\n </DesignSystemProvider>\n );\n};\n\nexport { GlobalSearchPortal };\n", "import { useEffect, useRef } from \"react\";\n\n/**\n * Cmd+K on macOS, Ctrl+K elsewhere. Registered in the capture phase so it wins\n * against anything the admin or another plugin binds on the same combination.\n */\nconst useHotkey = (handler: () => void): void => {\n const handlerRef = useRef(handler);\n handlerRef.current = handler;\n\n useEffect(() => {\n const onKeyDown = (event: KeyboardEvent) => {\n if (event.key !== \"k\" && event.key !== \"K\") return;\n if (!event.metaKey && !event.ctrlKey) return;\n if (event.altKey) return;\n\n event.preventDefault();\n event.stopPropagation();\n handlerRef.current();\n };\n\n document.addEventListener(\"keydown\", onKeyDown, true);\n\n return () => document.removeEventListener(\"keydown\", onKeyDown, true);\n }, []);\n};\n\nexport default useHotkey;\n", "import { darkTheme, lightTheme } from \"@strapi/design-system\";\nimport { useEffect, useState } from \"react\";\n\nconst THEME_STORAGE_KEY = \"STRAPI_THEME\";\nconst DARK_QUERY = \"(prefers-color-scheme: dark)\";\n\nconst readStoredTheme = (): string => {\n if (typeof window === \"undefined\") return \"light\";\n try {\n const raw = window.localStorage.getItem(THEME_STORAGE_KEY);\n if (!raw) return \"system\";\n\n return raw.replace(/^\"|\"$/g, \"\");\n } catch {\n return \"system\";\n }\n};\n\nconst resolve = (preference: string) => {\n if (preference === \"dark\") return darkTheme;\n if (preference === \"light\") return lightTheme;\n if (typeof window === \"undefined\") return lightTheme;\n\n const prefersDark =\n window.matchMedia && window.matchMedia(DARK_QUERY).matches;\n\n return prefersDark ? darkTheme : lightTheme;\n};\n\n/**\n * Mirrors the admin's own light/dark/system setting for UI rendered outside the\n * admin React tree, where the admin's DesignSystemProvider is out of reach.\n */\nexport const useAdminTheme = () => {\n const [theme, setTheme] = useState(() => resolve(readStoredTheme()));\n\n useEffect(() => {\n if (typeof window === \"undefined\") return undefined;\n const sync = () => setTheme(resolve(readStoredTheme()));\n\n window.addEventListener(\"storage\", sync);\n\n const media = window.matchMedia ? window.matchMedia(DARK_QUERY) : null;\n if (media && media.addEventListener) media.addEventListener(\"change\", sync);\n\n const interval = window.setInterval(sync, 2000);\n\n return () => {\n window.removeEventListener(\"storage\", sync);\n if (media && media.removeEventListener)\n media.removeEventListener(\"change\", sync);\n window.clearInterval(interval);\n };\n }, []);\n\n return theme;\n};\n", "import {\n Box,\n Divider,\n Flex,\n Loader,\n Modal,\n TextInput,\n Typography,\n VisuallyHidden,\n} from \"@strapi/design-system\";\nimport { Search } from \"@strapi/icons\";\nimport {\n useEffect,\n useMemo,\n useRef,\n useState,\n type ChangeEvent,\n type KeyboardEvent,\n} from \"react\";\nimport { styled } from \"styled-components\";\n\nimport useGlobalSearch from \"../hooks/useGlobalSearch\";\nimport useSearchableTypes from \"../hooks/useSearchableTypes\";\nimport type { SearchHit } from \"../types\";\nimport { toAdminUrl } from \"../utils/adminBase\";\nimport { t } from \"../utils/getTrad\";\nimport { getHitOptionId, ResultItem } from \"./ResultItem\";\n\nconst ResultsScroller = styled(Box)`\n max-height: 45vh;\n overflow-y: auto;\n`;\n\nconst PALETTE_PAGE_SIZE = 30;\nconst LISTBOX_ID = \"global-search-results-listbox\";\n\ninterface SearchOverlayProps {\n onClose: () => void;\n}\n\nconst navigateToHit = (\n hit: SearchHit,\n newTab: boolean,\n onClose: () => void\n) => {\n const url = toAdminUrl(hit.adminUrl);\n\n if (newTab) {\n window.open(url, \"_blank\", \"noopener\");\n return;\n }\n\n onClose();\n\n try {\n window.history.pushState({}, \"\", url);\n window.dispatchEvent(new PopStateEvent(\"popstate\"));\n } catch {\n window.location.assign(url);\n }\n};\n\ninterface OverlayBodyProps {\n isBelowMinChars: boolean;\n minChars: number;\n status: string;\n query: string;\n results: SearchHit[];\n activeIndex: number;\n onSelect: (hit: SearchHit, newTab?: boolean) => void;\n onHoverIndex: (index: number) => void;\n}\n\nconst OverlayBody = ({\n isBelowMinChars,\n minChars,\n status,\n query,\n results,\n activeIndex,\n onSelect,\n onHoverIndex,\n}: OverlayBodyProps) => {\n if (isBelowMinChars) {\n return (\n <Box padding={6}>\n <Typography textColor=\"neutral500\">\n {t(\n \"palette.min_chars\",\n \"Type at least {count} characters to search.\",\n {\n count: minChars,\n }\n )}\n </Typography>\n </Box>\n );\n }\n\n if (status === \"idle\") {\n return (\n <Box padding={6}>\n <Typography textColor=\"neutral500\">\n {t(\n \"palette.idle_hint\",\n \"Search every collection type and single type by id, \" +\n \"name, or any text field.\"\n )}\n </Typography>\n </Box>\n );\n }\n\n if (status === \"error\") {\n return (\n <Box padding={6}>\n <Typography textColor=\"danger600\">\n {t(\n \"palette.error\",\n \"Search failed. Check that you have permission to read \" +\n \"content, and see the server logs.\"\n )}\n </Typography>\n </Box>\n );\n }\n\n if (status === \"loading\" && !results.length) {\n return (\n <Flex justifyContent=\"center\" padding={6}>\n <Loader>{t(\"common.searching\", \"Searching\u2026\")}</Loader>\n </Flex>\n );\n }\n\n if (!results.length) {\n return (\n <Box padding={6}>\n <Typography textColor=\"neutral500\">\n {t(\"common.no_results\", \"No results for \u201C{query}\u201D.\", { query })}\n </Typography>\n </Box>\n );\n }\n\n return (\n <ResultsScroller\n id={LISTBOX_ID}\n role=\"listbox\"\n aria-label={t(\"palette.results_aria\", \"Search results\")}\n >\n {results.map((hit, index) => (\n <ResultItem\n key={[\n hit.contentTypeUid,\n hit.documentId || hit.id,\n hit.locale || \"\",\n ].join(\"-\")}\n hit={hit}\n query={query.trim()}\n isActive={index === activeIndex}\n onSelect={onSelect}\n onHover={() => onHoverIndex(index)}\n />\n ))}\n </ResultsScroller>\n );\n};\n\n/**\n * Spotlight-style command palette. It is rendered outside the admin's React\n * tree, so navigation is a full URL assignment rather than a router push.\n */\nconst SearchOverlay = ({ onClose }: SearchOverlayProps) => {\n const { settings } = useSearchableTypes();\n const minChars = settings.minChars || 2;\n const search = useGlobalSearch({\n debounce: settings.debounce || 250,\n minChars,\n pageSize: PALETTE_PAGE_SIZE,\n });\n\n const [activeIndex, setActiveIndex] = useState(0);\n const inputRef = useRef<HTMLInputElement | null>(null);\n const results = useMemo(() => search.data.results || [], [search.data]);\n\n useEffect(() => {\n const timer = setTimeout(\n () => inputRef.current && inputRef.current.focus(),\n 0\n );\n return () => clearTimeout(timer);\n }, []);\n\n useEffect(() => {\n setActiveIndex(0);\n }, [search.query, results.length]);\n\n const open = (hit: SearchHit, newTab = false) => {\n if (hit) navigateToHit(hit, newTab, onClose);\n };\n\n const onKeyDown = (event: KeyboardEvent) => {\n if (event.key === \"ArrowDown\") {\n event.preventDefault();\n setActiveIndex((index) =>\n results.length ? (index + 1) % results.length : 0\n );\n } else if (event.key === \"ArrowUp\") {\n event.preventDefault();\n setActiveIndex((index) =>\n results.length ? (index - 1 + results.length) % results.length : 0\n );\n } else if (event.key === \"Enter\") {\n event.preventDefault();\n const hit = results[activeIndex];\n if (hit) open(hit, event.metaKey || event.ctrlKey);\n } else if (event.key === \"Escape\") {\n event.preventDefault();\n onClose();\n }\n };\n\n const countSuffix = search.data.meta.capped ? \"+\" : \"\";\n const totalCount = `${search.data.pagination.total}${countSuffix}`;\n const activeHit = results[activeIndex];\n const activeOptionId = activeHit ? getHitOptionId(activeHit) : undefined;\n\n return (\n <Modal.Root open onOpenChange={(isOpen: boolean) => !isOpen && onClose()}>\n <Modal.Content>\n <Box onKeyDown={onKeyDown}>\n <VisuallyHidden>\n <Typography id=\"global-search-palette-title\">\n {t(\"palette.title\", \"Global search\")}\n </Typography>\n </VisuallyHidden>\n\n <Box\n paddingLeft={4}\n paddingRight={4}\n paddingTop={4}\n paddingBottom={3}\n >\n <TextInput\n ref={inputRef}\n name=\"global-search-palette\"\n role=\"combobox\"\n aria-expanded={results.length > 0}\n aria-controls={LISTBOX_ID}\n aria-activedescendant={activeOptionId}\n aria-label={t(\"palette.title\", \"Global search\")}\n placeholder={t(\"palette.placeholder\", \"Search all content\u2026\")}\n startIcon={<Search />}\n value={search.query}\n onChange={(event: ChangeEvent<HTMLInputElement>) =>\n search.setQuery(event.target.value)\n }\n autoComplete=\"off\"\n />\n </Box>\n\n <Divider />\n\n <Modal.Body>\n <OverlayBody\n isBelowMinChars={search.isBelowMinChars}\n minChars={minChars}\n status={search.status}\n query={search.query}\n results={results}\n activeIndex={activeIndex}\n onSelect={open}\n onHoverIndex={setActiveIndex}\n />\n </Modal.Body>\n\n <Divider />\n\n <Flex\n justifyContent=\"space-between\"\n padding={3}\n paddingLeft={4}\n paddingRight={4}\n >\n <Typography variant=\"pi\" textColor=\"neutral500\">\n {t(\n \"palette.shortcuts_hint\",\n \"\u2191 \u2193 navigate \u00B7 \u21B5 open \u00B7 \u2318/Ctrl + \u21B5 new tab \u00B7 esc close\"\n )}\n </Typography>\n {search.status === \"success\" && search.data.pagination.total > 0 ? (\n <Typography variant=\"pi\" textColor=\"neutral500\">\n {t(\"palette.result_count\", \"{count} results\", {\n count: totalCount,\n })}\n </Typography>\n ) : null}\n </Flex>\n </Box>\n </Modal.Content>\n </Modal.Root>\n );\n};\n\nexport { SearchOverlay };\n", "import { Badge, Box, Flex, Typography } from \"@strapi/design-system\";\nimport { useEffect, useRef } from \"react\";\nimport { styled } from \"styled-components\";\n\nimport type { SearchHit } from \"../types\";\nimport { t } from \"../utils/getTrad\";\nimport { Highlight } from \"./Highlight\";\n\ninterface RowThemeProps {\n theme: { colors: Record<string, string> };\n $active?: boolean;\n}\n\nconst Row = styled(Box)<{ $active?: boolean }>`\n cursor: pointer;\n border-left: 3px solid\n ${({ theme, $active }: RowThemeProps) =>\n $active ? theme.colors.primary600 : \"transparent\"};\n background: ${({ theme, $active }: RowThemeProps) =>\n $active ? theme.colors.primary100 : \"transparent\"};\n\n &:hover {\n background: ${({ theme, $active }: RowThemeProps) =>\n $active ? theme.colors.primary100 : theme.colors.neutral100};\n }\n`;\n\nexport const getHitOptionId = (hit: SearchHit): string =>\n [\n \"global-search-option\",\n hit.contentTypeUid,\n hit.documentId || hit.id,\n hit.locale || \"default\",\n ].join(\"-\");\n\ninterface ResultItemProps {\n hit: SearchHit;\n query: string;\n isActive: boolean;\n onSelect: (hit: SearchHit) => void;\n onHover?: () => void;\n}\n\n/** One hit in the Cmd+K palette: identity first, then what actually matched. */\nconst ResultItem = ({\n hit,\n query,\n isActive,\n onSelect,\n onHover = () => {},\n}: ResultItemProps) => {\n const rowRef = useRef<HTMLDivElement | null>(null);\n\n useEffect(() => {\n if (isActive && rowRef.current?.scrollIntoView) {\n rowRef.current.scrollIntoView({ block: \"nearest\" });\n }\n }, [isActive]);\n\n const extras = (hit.extra || []).filter(\n (item) =>\n item.value !== null && item.value !== undefined && item.value !== \"\"\n );\n\n return (\n <Row\n ref={rowRef}\n $active={isActive}\n paddingTop={3}\n paddingBottom={3}\n paddingLeft={4}\n paddingRight={4}\n onClick={() => onSelect(hit)}\n onMouseEnter={onHover}\n role=\"option\"\n aria-selected={isActive}\n id={getHitOptionId(hit)}\n >\n <Flex justifyContent=\"space-between\" gap={4} alignItems=\"flex-start\">\n <Box style={{ minWidth: 0, flex: 1 }}>\n <Flex gap={2} alignItems=\"center\">\n <Typography fontWeight=\"semiBold\" textColor=\"neutral800\" ellipsis>\n <Highlight\n text={String(hit.title)}\n query={query}\n textColor=\"neutral800\"\n />\n </Typography>\n <Typography variant=\"pi\" textColor=\"neutral500\">\n #{hit.documentId || hit.id}\n </Typography>\n </Flex>\n\n {extras.length > 0 ? (\n <Flex gap={3} paddingTop={1} wrap=\"wrap\">\n {extras.map((item) => (\n <Typography\n key={item.field}\n variant=\"pi\"\n textColor=\"neutral500\"\n >\n {item.field}: {String(item.value)}\n </Typography>\n ))}\n </Flex>\n ) : null}\n\n {hit.matchedSnippet && hit.matchedField !== hit.mainField ? (\n <Box paddingTop={1}>\n <Typography variant=\"pi\" textColor=\"neutral500\">\n {hit.matchedFieldLabel}:{\" \"}\n </Typography>\n <Typography variant=\"pi\" tag=\"span\">\n <Highlight text={hit.matchedSnippet} query={query} />\n </Typography>\n </Box>\n ) : null}\n </Box>\n\n <Flex gap={2} alignItems=\"center\" shrink={0}>\n {hit.locale ? (\n <Typography variant=\"pi\" textColor=\"neutral500\">\n {hit.locale}\n </Typography>\n ) : null}\n {hit.status ? (\n <Badge>{t(`status.${hit.status}`, hit.status)}</Badge>\n ) : null}\n <Typography variant=\"pi\" textColor=\"neutral600\">\n {hit.contentTypeLabel}\n </Typography>\n </Flex>\n </Flex>\n </Row>\n );\n};\n\nexport { ResultItem };\n", "import { useEffect, useRef } from \"react\";\n\nimport pluginId from \"../pluginId\";\n\ninterface InitializerProps {\n setPlugin: (id: string) => void;\n}\n\n/**\n * Strapi unmounts initializers as soon as every plugin reports ready, so this\n * only flips the ready flag \u2014 the always-on Cmd+K palette is mounted from\n * `bootstrap()` into its own root instead.\n */\nconst Initializer = ({ setPlugin }: InitializerProps) => {\n const ref = useRef(setPlugin);\n\n useEffect(() => {\n ref.current(pluginId);\n }, []);\n\n return null;\n};\n\nexport { Initializer };\n", "import { Search } from \"@strapi/icons\";\n\nconst PluginIcon = () => <Search />;\n\nexport { PluginIcon };\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["en", "fr", "es", "ar", "tr", "useEffect", "useRef", "useState", "useEffect", "useState", "Badge", "Box", "Typography", "styled", "jsx", "jsxs", "Box", "Flex", "Loader", "Typography", "useEffect", "useState", "jsx", "jsxs", "jsx", "jsxs", "Box", "Button", "Flex", "Main", "Table", "Tbody", "Td", "Th", "Thead", "Tr", "Typography", "Layouts", "Page", "useEffect", "useState", "jsx", "jsxs", "load", "pluginId", "React", "useEffect", "useState", "useEffect", "Box", "Flex", "Typography", "useEffect", "useMemo", "useRef", "useState", "styled", "Typography", "useEffect", "useRef", "jsx", "jsx", "jsxs", "styled", "Box", "Typography", "Flex", "useState", "useRef", "useMemo", "useEffect", "jsx", "useState", "useEffect", "useEffect", "useRef", "Search", "jsx", "import_ar", "import_en", "import_es", "import_fr", "import_tr", "en", "fr", "es", "ar", "tr", "React"]
|
|
7
|
+
}
|