@dskripchenko/laravel-admin 1.26.0 → 1.27.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (104) hide show
  1. package/dist/api/bootstrap.d.ts +18 -17
  2. package/dist/api/client.d.ts +12 -11
  3. package/dist/api/envelope.d.ts +3 -3
  4. package/dist/api/errors.d.ts +7 -7
  5. package/dist/components/ScreenPage.vue.d.ts +1 -1
  6. package/dist/components/auth/LoginForm.vue.d.ts +2 -2
  7. package/dist/components/auth/LoginPage.vue.d.ts +5 -5
  8. package/dist/components/auth/index.d.ts +1 -1
  9. package/dist/components/createComponentRegistry.d.ts +6 -5
  10. package/dist/components/dashboard/ChartWidget.vue.d.ts +2 -2
  11. package/dist/components/dashboard/GaugeWidget.vue.d.ts +2 -2
  12. package/dist/components/dashboard/HeatmapWidget.vue.d.ts +2 -2
  13. package/dist/components/dashboard/IframeWidget.vue.d.ts +4 -3
  14. package/dist/components/dashboard/RecentTableWidget.vue.d.ts +4 -3
  15. package/dist/components/dashboard/StatWidget.vue.d.ts +8 -7
  16. package/dist/components/dashboard/TableWidget.vue.d.ts +3 -2
  17. package/dist/components/dashboard/WidgetConfigDialog.vue.d.ts +4 -4
  18. package/dist/components/dashboard/WidgetRenderer.vue.d.ts +1 -1
  19. package/dist/components/dashboard/builtin.d.ts +5 -4
  20. package/dist/components/dashboard/index.d.ts +1 -1
  21. package/dist/components/dashboard/registry.d.ts +5 -5
  22. package/dist/components/fields/BuilderField.vue.d.ts +1 -1
  23. package/dist/components/fields/DateField.vue.d.ts +3 -3
  24. package/dist/components/fields/GeneratedField.vue.d.ts +3 -3
  25. package/dist/components/fields/SelectField.vue.d.ts +3 -2
  26. package/dist/components/fields/TagsField.vue.d.ts +6 -6
  27. package/dist/components/fields/TranslatableField.vue.d.ts +2 -2
  28. package/dist/components/fields/WysiwygField.vue.d.ts +2 -2
  29. package/dist/components/fields/wysiwyg/quill/QuillField.vue.d.ts +3 -3
  30. package/dist/components/fields/wysiwyg/quill/index.d.ts +3 -3
  31. package/dist/components/fields/wysiwyg/tinymce/TinymceField.vue.d.ts +6 -5
  32. package/dist/components/fields/wysiwyg/tinymce/index.d.ts +3 -3
  33. package/dist/components/import/ImportWizardPage.vue.d.ts +9 -9
  34. package/dist/components/infolist/BadgeEntry.vue.d.ts +4 -4
  35. package/dist/components/infolist/InfolistRenderer.vue.d.ts +1 -1
  36. package/dist/components/infolist/TextEntry.vue.d.ts +3 -3
  37. package/dist/components/infolist/builtin.d.ts +6 -6
  38. package/dist/components/infolist/index.d.ts +1 -1
  39. package/dist/components/infolist/recordContext.d.ts +3 -3
  40. package/dist/components/infolist/registry.d.ts +7 -7
  41. package/dist/components/layouts/ColumnsLayout.vue.d.ts +2 -2
  42. package/dist/components/layouts/RowsLayout.vue.d.ts +1 -1
  43. package/dist/components/layouts/TabsLayout.vue.d.ts +12 -11
  44. package/dist/components/notifications/index.d.ts +5 -5
  45. package/dist/components/profile/ProfilePage.vue.d.ts +3 -3
  46. package/dist/components/profile/TwoFactorSetup.vue.d.ts +1 -1
  47. package/dist/components/render/builtin.d.ts +2 -2
  48. package/dist/components/render/formState.d.ts +18 -15
  49. package/dist/components/render/index.d.ts +1 -1
  50. package/dist/components/render/registry.d.ts +9 -9
  51. package/dist/components/resource/AdminFilterToolbar.vue.d.ts +3 -3
  52. package/dist/components/resource/AuditTimeline.vue.d.ts +4 -4
  53. package/dist/components/resource/FilterEditor.d.ts +4 -3
  54. package/dist/components/resource/InlineEditCell.vue.d.ts +4 -4
  55. package/dist/components/resource/ResourceFormPage.vue.d.ts +4 -4
  56. package/dist/components/resource/ResourceIndexPage.vue.d.ts +5 -5
  57. package/dist/components/resource/ResourceViewPage.vue.d.ts +7 -7
  58. package/dist/components/resource/cellFormat.d.ts +14 -12
  59. package/dist/components/resource/index.d.ts +1 -1
  60. package/dist/components/resource/statusLabel.d.ts +14 -13
  61. package/dist/components/shell/AdminShell.vue.d.ts +7 -7
  62. package/dist/components/shell/AdminSidebar.vue.d.ts +7 -7
  63. package/dist/components/shell/AdminSidebarNode.vue.d.ts +2 -2
  64. package/dist/components/shell/AdminTopBar.vue.d.ts +2 -2
  65. package/dist/components/shell/BrandLogo.vue.d.ts +3 -3
  66. package/dist/components/shell/iconRegistry.d.ts +10 -9
  67. package/dist/components/shell/index.d.ts +2 -2
  68. package/dist/composables/useAppReady.d.ts +12 -11
  69. package/dist/composables/useBrand.d.ts +4 -3
  70. package/dist/createAdminApp.d.ts +34 -33
  71. package/dist/formState-DeRZBwWH.js.map +1 -1
  72. package/dist/formState-yUTD6wAR.cjs.map +1 -1
  73. package/dist/i18n-BCRWWhHE.cjs.map +1 -1
  74. package/dist/i18n-DXndsABq.js.map +1 -1
  75. package/dist/index.cjs +4 -4
  76. package/dist/index.cjs.map +1 -1
  77. package/dist/index.d.ts +12 -10
  78. package/dist/index.mjs +3789 -3774
  79. package/dist/index.mjs.map +1 -1
  80. package/dist/quill.cjs.map +1 -1
  81. package/dist/quill.mjs.map +1 -1
  82. package/dist/router/builder.d.ts +15 -14
  83. package/dist/router/guards.d.ts +28 -27
  84. package/dist/router/index.d.ts +20 -18
  85. package/dist/stores/auth.d.ts +10 -10
  86. package/dist/stores/dashboard.d.ts +33 -32
  87. package/dist/stores/i18n.d.ts +5 -4
  88. package/dist/stores/index.d.ts +2 -2
  89. package/dist/stores/locale.d.ts +7 -6
  90. package/dist/stores/manifest.d.ts +64 -61
  91. package/dist/stores/menu.d.ts +58 -57
  92. package/dist/stores/navigation.d.ts +5 -5
  93. package/dist/stores/notifications.d.ts +5 -4
  94. package/dist/stores/registry.d.ts +7 -7
  95. package/dist/stores/resourceForm.d.ts +12 -10
  96. package/dist/stores/resourceIndex.d.ts +12 -10
  97. package/dist/stores/screen.d.ts +15 -12
  98. package/dist/stores/theme.d.ts +4 -3
  99. package/dist/stores/toast.d.ts +3 -2
  100. package/dist/style.css +1 -1
  101. package/dist/tinymce.cjs.map +1 -1
  102. package/dist/tinymce.mjs.map +1 -1
  103. package/dist/types/bootstrap.d.ts +9 -9
  104. package/package.json +1 -1
@@ -1,16 +1,18 @@
1
1
  /**
2
- * Manifest store: lazy-load JSON-манифеста админки + кеширование по version.
2
+ * The manifest store: it lazy-loads the admin's JSON manifest and caches it by
3
+ * version.
3
4
  *
4
- * Manifest содержит описание всех Resource'ов, Screen'ов, Settings'ов,
5
- * Plugin'ов. SPA загружает один раз на старте и переиспользует.
5
+ * The manifest describes every resource, screen, settings page and plugin. The
6
+ * SPA loads it once at start-up and reuses it.
6
7
  *
7
- * ETag-based 304 Not Modified backend-side — фронт ничего особенного не
8
- * делает (axios + browser handle If-None-Match). Свежий version записывается
9
- * в lastVersion для cheap-сравнения.
8
+ * The 304 Not Modified handling is ETag-based on the backend side, so the
9
+ * frontend does nothing special — axios and the browser handle If-None-Match.
10
+ * The fresh version is written into lastVersion for cheap comparisons.
10
11
  */
11
12
  /**
12
- * Узел manifest'а с обязательным `type`. Совместим с LayoutNode/FieldNode/
13
- * InfolistNode — позволяет передавать массив прямо в renderer без cast'а.
13
+ * A manifest node with a mandatory `type`. It is compatible with LayoutNode,
14
+ * FieldNode and InfolistNode, so an array can go straight into a renderer
15
+ * without a cast.
14
16
  */
15
17
  export interface ManifestNode extends Record<string, unknown> {
16
18
  type: string;
@@ -21,18 +23,19 @@ export interface ManifestResourceMeta {
21
23
  icon?: string;
22
24
  group?: string | null;
23
25
  /**
24
- * Eloquent morph-class либо FQCN модели — нужен AuditTimeline'у как
25
- * `subject_type` параметр для /audit/timeline endpoint'а.
26
+ * The Eloquent morph class or the model's FQCN — AuditTimeline needs it as
27
+ * the `subject_type` parameter of the /audit/timeline endpoint.
26
28
  */
27
29
  subject_type?: string | null;
28
30
  permissions: Record<string, string>;
29
31
  fields: ManifestNode[];
30
32
  /**
31
- * Раскладка формы СОЗДАНИЯ. Приходит только когда отличается от `fields` —
32
- * например, у ресурса, чьи вкладки нечем наполнить до сохранения записи.
33
+ * The layout of the CREATE form. It only arrives when it differs from
34
+ * `fields` — for a resource whose tabs have nothing to show before the
35
+ * record is saved, say.
33
36
  */
34
37
  create_fields?: ManifestNode[];
35
- /** Read-only entries для view-page. Default — auto-generated из fields(). */
38
+ /** The read-only entries of the view page. By default they are generated from fields(). */
36
39
  infolist?: ManifestNode[];
37
40
  columns: ManifestNode[];
38
41
  filters: ManifestNode[];
@@ -42,9 +45,9 @@ export interface ManifestResourceMeta {
42
45
  view_mode?: 'list' | 'tree';
43
46
  hierarchy_parent_key?: string | null;
44
47
  /**
45
- * Slug ресурса, чей index используется как "back" контекст для form/view
46
- * страниц. Default null (back ведёт на собственный index). См.
47
- * Resource::parentSlug() на бэкенде.
48
+ * The slug of the resource whose index serves as the "back" context of the
49
+ * form and view pages. null by default, meaning back leads to this
50
+ * resource's own index. See Resource::parentSlug() on the backend.
48
51
  */
49
52
  parent_slug?: string | null;
50
53
  features: Record<string, unknown>;
@@ -83,8 +86,8 @@ export declare const useManifestStore: import("pinia").StoreDefinition<"admin-ma
83
86
  icon?: string | undefined;
84
87
  group?: string | null
85
88
  /**
86
- * Eloquent morph-class либо FQCN модели — нужен AuditTimeline'у как
87
- * `subject_type` параметр для /audit/timeline endpoint'а.
89
+ * The Eloquent morph class or the model's FQCN — AuditTimeline needs it as
90
+ * the `subject_type` parameter of the /audit/timeline endpoint.
88
91
  */
89
92
  | undefined;
90
93
  subject_type?: string | null | undefined;
@@ -118,9 +121,9 @@ export declare const useManifestStore: import("pinia").StoreDefinition<"admin-ma
118
121
  view_mode?: "list" | "tree" | undefined;
119
122
  hierarchy_parent_key?: string | null
120
123
  /**
121
- * Slug ресурса, чей index используется как "back" контекст для form/view
122
- * страниц. Default null (back ведёт на собственный index). См.
123
- * Resource::parentSlug() на бэкенде.
124
+ * The slug of the resource whose index serves as the "back" context of the
125
+ * form and view pages. null by default, meaning back leads to this
126
+ * resource's own index. See Resource::parentSlug() on the backend.
124
127
  */
125
128
  | undefined;
126
129
  parent_slug?: string | null | undefined;
@@ -155,8 +158,8 @@ export declare const useManifestStore: import("pinia").StoreDefinition<"admin-ma
155
158
  icon?: string | undefined;
156
159
  group?: string | null
157
160
  /**
158
- * Eloquent morph-class либо FQCN модели — нужен AuditTimeline'у как
159
- * `subject_type` параметр для /audit/timeline endpoint'а.
161
+ * The Eloquent morph class or the model's FQCN — AuditTimeline needs it as
162
+ * the `subject_type` parameter of the /audit/timeline endpoint.
160
163
  */
161
164
  | undefined;
162
165
  subject_type?: string | null | undefined;
@@ -190,9 +193,9 @@ export declare const useManifestStore: import("pinia").StoreDefinition<"admin-ma
190
193
  view_mode?: "list" | "tree" | undefined;
191
194
  hierarchy_parent_key?: string | null
192
195
  /**
193
- * Slug ресурса, чей index используется как "back" контекст для form/view
194
- * страниц. Default null (back ведёт на собственный index). См.
195
- * Resource::parentSlug() на бэкенде.
196
+ * The slug of the resource whose index serves as the "back" context of the
197
+ * form and view pages. null by default, meaning back leads to this
198
+ * resource's own index. See Resource::parentSlug() on the backend.
196
199
  */
197
200
  | undefined;
198
201
  parent_slug?: string | null | undefined;
@@ -230,8 +233,8 @@ export declare const useManifestStore: import("pinia").StoreDefinition<"admin-ma
230
233
  icon?: string | undefined;
231
234
  group?: string | null
232
235
  /**
233
- * Eloquent morph-class либо FQCN модели — нужен AuditTimeline'у как
234
- * `subject_type` параметр для /audit/timeline endpoint'а.
236
+ * The Eloquent morph class or the model's FQCN — AuditTimeline needs it as
237
+ * the `subject_type` parameter of the /audit/timeline endpoint.
235
238
  */
236
239
  | undefined;
237
240
  subject_type?: string | null | undefined;
@@ -265,9 +268,9 @@ export declare const useManifestStore: import("pinia").StoreDefinition<"admin-ma
265
268
  view_mode?: "list" | "tree" | undefined;
266
269
  hierarchy_parent_key?: string | null
267
270
  /**
268
- * Slug ресурса, чей index используется как "back" контекст для form/view
269
- * страниц. Default null (back ведёт на собственный index). См.
270
- * Resource::parentSlug() на бэкенде.
271
+ * The slug of the resource whose index serves as the "back" context of the
272
+ * form and view pages. null by default, meaning back leads to this
273
+ * resource's own index. See Resource::parentSlug() on the backend.
271
274
  */
272
275
  | undefined;
273
276
  parent_slug?: string | null | undefined;
@@ -308,8 +311,8 @@ export declare const useManifestStore: import("pinia").StoreDefinition<"admin-ma
308
311
  icon?: string | undefined;
309
312
  group?: string | null
310
313
  /**
311
- * Eloquent morph-class либо FQCN модели — нужен AuditTimeline'у как
312
- * `subject_type` параметр для /audit/timeline endpoint'а.
314
+ * The Eloquent morph class or the model's FQCN — AuditTimeline needs it as
315
+ * the `subject_type` parameter of the /audit/timeline endpoint.
313
316
  */
314
317
  | undefined;
315
318
  subject_type?: string | null | undefined;
@@ -343,9 +346,9 @@ export declare const useManifestStore: import("pinia").StoreDefinition<"admin-ma
343
346
  view_mode?: "list" | "tree" | undefined;
344
347
  hierarchy_parent_key?: string | null
345
348
  /**
346
- * Slug ресурса, чей index используется как "back" контекст для form/view
347
- * страниц. Default null (back ведёт на собственный index). См.
348
- * Resource::parentSlug() на бэкенде.
349
+ * The slug of the resource whose index serves as the "back" context of the
350
+ * form and view pages. null by default, meaning back leads to this
351
+ * resource's own index. See Resource::parentSlug() on the backend.
349
352
  */
350
353
  | undefined;
351
354
  parent_slug?: string | null | undefined;
@@ -380,8 +383,8 @@ export declare const useManifestStore: import("pinia").StoreDefinition<"admin-ma
380
383
  icon?: string | undefined;
381
384
  group?: string | null
382
385
  /**
383
- * Eloquent morph-class либо FQCN модели — нужен AuditTimeline'у как
384
- * `subject_type` параметр для /audit/timeline endpoint'а.
386
+ * The Eloquent morph class or the model's FQCN — AuditTimeline needs it as
387
+ * the `subject_type` parameter of the /audit/timeline endpoint.
385
388
  */
386
389
  | undefined;
387
390
  subject_type?: string | null | undefined;
@@ -415,9 +418,9 @@ export declare const useManifestStore: import("pinia").StoreDefinition<"admin-ma
415
418
  view_mode?: "list" | "tree" | undefined;
416
419
  hierarchy_parent_key?: string | null
417
420
  /**
418
- * Slug ресурса, чей index используется как "back" контекст для form/view
419
- * страниц. Default null (back ведёт на собственный index). См.
420
- * Resource::parentSlug() на бэкенде.
421
+ * The slug of the resource whose index serves as the "back" context of the
422
+ * form and view pages. null by default, meaning back leads to this
423
+ * resource's own index. See Resource::parentSlug() on the backend.
421
424
  */
422
425
  | undefined;
423
426
  parent_slug?: string | null | undefined;
@@ -455,8 +458,8 @@ export declare const useManifestStore: import("pinia").StoreDefinition<"admin-ma
455
458
  icon?: string | undefined;
456
459
  group?: string | null
457
460
  /**
458
- * Eloquent morph-class либо FQCN модели — нужен AuditTimeline'у как
459
- * `subject_type` параметр для /audit/timeline endpoint'а.
461
+ * The Eloquent morph class or the model's FQCN — AuditTimeline needs it as
462
+ * the `subject_type` parameter of the /audit/timeline endpoint.
460
463
  */
461
464
  | undefined;
462
465
  subject_type?: string | null | undefined;
@@ -490,9 +493,9 @@ export declare const useManifestStore: import("pinia").StoreDefinition<"admin-ma
490
493
  view_mode?: "list" | "tree" | undefined;
491
494
  hierarchy_parent_key?: string | null
492
495
  /**
493
- * Slug ресурса, чей index используется как "back" контекст для form/view
494
- * страниц. Default null (back ведёт на собственный index). См.
495
- * Resource::parentSlug() на бэкенде.
496
+ * The slug of the resource whose index serves as the "back" context of the
497
+ * form and view pages. null by default, meaning back leads to this
498
+ * resource's own index. See Resource::parentSlug() on the backend.
496
499
  */
497
500
  | undefined;
498
501
  parent_slug?: string | null | undefined;
@@ -533,8 +536,8 @@ export declare const useManifestStore: import("pinia").StoreDefinition<"admin-ma
533
536
  icon?: string | undefined;
534
537
  group?: string | null
535
538
  /**
536
- * Eloquent morph-class либо FQCN модели — нужен AuditTimeline'у как
537
- * `subject_type` параметр для /audit/timeline endpoint'а.
539
+ * The Eloquent morph class or the model's FQCN — AuditTimeline needs it as
540
+ * the `subject_type` parameter of the /audit/timeline endpoint.
538
541
  */
539
542
  | undefined;
540
543
  subject_type?: string | null | undefined;
@@ -568,9 +571,9 @@ export declare const useManifestStore: import("pinia").StoreDefinition<"admin-ma
568
571
  view_mode?: "list" | "tree" | undefined;
569
572
  hierarchy_parent_key?: string | null
570
573
  /**
571
- * Slug ресурса, чей index используется как "back" контекст для form/view
572
- * страниц. Default null (back ведёт на собственный index). См.
573
- * Resource::parentSlug() на бэкенде.
574
+ * The slug of the resource whose index serves as the "back" context of the
575
+ * form and view pages. null by default, meaning back leads to this
576
+ * resource's own index. See Resource::parentSlug() on the backend.
574
577
  */
575
578
  | undefined;
576
579
  parent_slug?: string | null | undefined;
@@ -605,8 +608,8 @@ export declare const useManifestStore: import("pinia").StoreDefinition<"admin-ma
605
608
  icon?: string | undefined;
606
609
  group?: string | null
607
610
  /**
608
- * Eloquent morph-class либо FQCN модели — нужен AuditTimeline'у как
609
- * `subject_type` параметр для /audit/timeline endpoint'а.
611
+ * The Eloquent morph class or the model's FQCN — AuditTimeline needs it as
612
+ * the `subject_type` parameter of the /audit/timeline endpoint.
610
613
  */
611
614
  | undefined;
612
615
  subject_type?: string | null | undefined;
@@ -640,9 +643,9 @@ export declare const useManifestStore: import("pinia").StoreDefinition<"admin-ma
640
643
  view_mode?: "list" | "tree" | undefined;
641
644
  hierarchy_parent_key?: string | null
642
645
  /**
643
- * Slug ресурса, чей index используется как "back" контекст для form/view
644
- * страниц. Default null (back ведёт на собственный index). См.
645
- * Resource::parentSlug() на бэкенде.
646
+ * The slug of the resource whose index serves as the "back" context of the
647
+ * form and view pages. null by default, meaning back leads to this
648
+ * resource's own index. See Resource::parentSlug() on the backend.
646
649
  */
647
650
  | undefined;
648
651
  parent_slug?: string | null | undefined;
@@ -680,8 +683,8 @@ export declare const useManifestStore: import("pinia").StoreDefinition<"admin-ma
680
683
  icon?: string | undefined;
681
684
  group?: string | null
682
685
  /**
683
- * Eloquent morph-class либо FQCN модели — нужен AuditTimeline'у как
684
- * `subject_type` параметр для /audit/timeline endpoint'а.
686
+ * The Eloquent morph class or the model's FQCN — AuditTimeline needs it as
687
+ * the `subject_type` parameter of the /audit/timeline endpoint.
685
688
  */
686
689
  | undefined;
687
690
  subject_type?: string | null | undefined;
@@ -715,9 +718,9 @@ export declare const useManifestStore: import("pinia").StoreDefinition<"admin-ma
715
718
  view_mode?: "list" | "tree" | undefined;
716
719
  hierarchy_parent_key?: string | null
717
720
  /**
718
- * Slug ресурса, чей index используется как "back" контекст для form/view
719
- * страниц. Default null (back ведёт на собственный index). См.
720
- * Resource::parentSlug() на бэкенде.
721
+ * The slug of the resource whose index serves as the "back" context of the
722
+ * form and view pages. null by default, meaning back leads to this
723
+ * resource's own index. See Resource::parentSlug() on the backend.
721
724
  */
722
725
  | undefined;
723
726
  parent_slug?: string | null | undefined;
@@ -1,34 +1,35 @@
1
1
  /**
2
- * Menu store: дерево пунктов сайдбара.
2
+ * The menu store: the tree of sidebar items.
3
3
  *
4
- * Источник — /system/menu (backend строит из ResourceRegistry/ScreenRegistry/
5
- * Settings + plugin-вкладов). Фронт фильтрует по permission'ам залогиненного
6
- * пользователя через auth-store.
4
+ * They come from /system/menu, which the backend builds out of
5
+ * ResourceRegistry, ScreenRegistry, the settings and the plugins'
6
+ * contributions. The frontend filters them by the logged-in user's permissions
7
+ * through the auth store.
7
8
  */
8
9
  export interface MenuItem {
9
- /** Уникальный идентификатор. */
10
+ /** The unique identifier. */
10
11
  key: string;
11
- /** Текст пункта. */
12
+ /** The item's text. */
12
13
  label: string;
13
- /** Имя icon'а (опционально — host-проект сам резолвит icon-set). */
14
+ /** The icon's name; optional, since the host project resolves the icon set itself. */
14
15
  icon?: string | null;
15
- /** URL (внутренний router-target) либо null для группы. */
16
+ /** The URL — an internal router target — or null for a group. */
16
17
  url?: string | null;
17
- /** Имя router-route (если задано — приоритет над url). */
18
+ /** The router route's name; when set it wins over the url. */
18
19
  routeName?: string | null;
19
- /** Бейдж справа (число unread, ярлык вроде "new"). */
20
+ /** The badge on the right: an unread count, or a label such as "new". */
20
21
  badge?: string | number | null;
21
- /** Группа (header в sidebar). */
22
+ /** The group, rendered as a header in the sidebar. */
22
23
  group?: string | null;
23
- /** Сортировочный вес. */
24
+ /** The sorting weight. */
24
25
  order?: number;
25
- /** Permission-keys; если заданы — пункт виден только при hasAnyPermission. */
26
+ /** The permission keys; when set, the item is visible only if hasAnyPermission passes. */
26
27
  permissions?: string[];
27
- /** Вложенные пункты. */
28
+ /** The nested items. */
28
29
  children?: MenuItem[];
29
30
  }
30
31
  export interface MenuGroup {
31
- /** Заголовок группы (null = пункты без группы). */
32
+ /** The group's heading; null for the items outside any group. */
32
33
  group: string | null;
33
34
  items: MenuItem[];
34
35
  }
@@ -37,50 +38,50 @@ export declare const useMenuStore: import("pinia").StoreDefinition<"admin-menu",
37
38
  key: string;
38
39
  label: string;
39
40
  icon?: string | null
40
- /** URL (внутренний router-target) либо null для группы. */
41
+ /** The URL — an internal router target — or null for a group. */
41
42
  | undefined;
42
43
  url?: string | null
43
- /** Имя router-route (если задано — приоритет над url). */
44
+ /** The router route's name; when set it wins over the url. */
44
45
  | undefined;
45
46
  routeName?: string | null
46
- /** Бейдж справа (число unread, ярлык вроде "new"). */
47
+ /** The badge on the right: an unread count, or a label such as "new". */
47
48
  | undefined;
48
49
  badge?: string | number | null
49
- /** Группа (header в sidebar). */
50
+ /** The group, rendered as a header in the sidebar. */
50
51
  | undefined;
51
52
  group?: string | null
52
- /** Сортировочный вес. */
53
+ /** The sorting weight. */
53
54
  | undefined;
54
55
  order?: number
55
- /** Permission-keys; если заданы — пункт виден только при hasAnyPermission. */
56
+ /** The permission keys; when set, the item is visible only if hasAnyPermission passes. */
56
57
  | undefined;
57
58
  permissions?: string[]
58
- /** Вложенные пункты. */
59
+ /** The nested items. */
59
60
  | undefined;
60
61
  children?: /*elided*/ any[] | undefined;
61
62
  }[], MenuItem[] | {
62
63
  key: string;
63
64
  label: string;
64
65
  icon?: string | null
65
- /** URL (внутренний router-target) либо null для группы. */
66
+ /** The URL — an internal router target — or null for a group. */
66
67
  | undefined;
67
68
  url?: string | null
68
- /** Имя router-route (если задано — приоритет над url). */
69
+ /** The router route's name; when set it wins over the url. */
69
70
  | undefined;
70
71
  routeName?: string | null
71
- /** Бейдж справа (число unread, ярлык вроде "new"). */
72
+ /** The badge on the right: an unread count, or a label such as "new". */
72
73
  | undefined;
73
74
  badge?: string | number | null
74
- /** Группа (header в sidebar). */
75
+ /** The group, rendered as a header in the sidebar. */
75
76
  | undefined;
76
77
  group?: string | null
77
- /** Сортировочный вес. */
78
+ /** The sorting weight. */
78
79
  | undefined;
79
80
  order?: number
80
- /** Permission-keys; если заданы — пункт виден только при hasAnyPermission. */
81
+ /** The permission keys; when set, the item is visible only if hasAnyPermission passes. */
81
82
  | undefined;
82
83
  permissions?: string[]
83
- /** Вложенные пункты. */
84
+ /** The nested items. */
84
85
  | undefined;
85
86
  children?: /*elided*/ any[] | undefined;
86
87
  }[]>;
@@ -97,50 +98,50 @@ export declare const useMenuStore: import("pinia").StoreDefinition<"admin-menu",
97
98
  key: string;
98
99
  label: string;
99
100
  icon?: string | null
100
- /** URL (внутренний router-target) либо null для группы. */
101
+ /** The URL — an internal router target — or null for a group. */
101
102
  | undefined;
102
103
  url?: string | null
103
- /** Имя router-route (если задано — приоритет над url). */
104
+ /** The router route's name; when set it wins over the url. */
104
105
  | undefined;
105
106
  routeName?: string | null
106
- /** Бейдж справа (число unread, ярлык вроде "new"). */
107
+ /** The badge on the right: an unread count, or a label such as "new". */
107
108
  | undefined;
108
109
  badge?: string | number | null
109
- /** Группа (header в sidebar). */
110
+ /** The group, rendered as a header in the sidebar. */
110
111
  | undefined;
111
112
  group?: string | null
112
- /** Сортировочный вес. */
113
+ /** The sorting weight. */
113
114
  | undefined;
114
115
  order?: number
115
- /** Permission-keys; если заданы — пункт виден только при hasAnyPermission. */
116
+ /** The permission keys; when set, the item is visible only if hasAnyPermission passes. */
116
117
  | undefined;
117
118
  permissions?: string[]
118
- /** Вложенные пункты. */
119
+ /** The nested items. */
119
120
  | undefined;
120
121
  children?: /*elided*/ any[] | undefined;
121
122
  }[], MenuItem[] | {
122
123
  key: string;
123
124
  label: string;
124
125
  icon?: string | null
125
- /** URL (внутренний router-target) либо null для группы. */
126
+ /** The URL — an internal router target — or null for a group. */
126
127
  | undefined;
127
128
  url?: string | null
128
- /** Имя router-route (если задано — приоритет над url). */
129
+ /** The router route's name; when set it wins over the url. */
129
130
  | undefined;
130
131
  routeName?: string | null
131
- /** Бейдж справа (число unread, ярлык вроде "new"). */
132
+ /** The badge on the right: an unread count, or a label such as "new". */
132
133
  | undefined;
133
134
  badge?: string | number | null
134
- /** Группа (header в sidebar). */
135
+ /** The group, rendered as a header in the sidebar. */
135
136
  | undefined;
136
137
  group?: string | null
137
- /** Сортировочный вес. */
138
+ /** The sorting weight. */
138
139
  | undefined;
139
140
  order?: number
140
- /** Permission-keys; если заданы — пункт виден только при hasAnyPermission. */
141
+ /** The permission keys; when set, the item is visible only if hasAnyPermission passes. */
141
142
  | undefined;
142
143
  permissions?: string[]
143
- /** Вложенные пункты. */
144
+ /** The nested items. */
144
145
  | undefined;
145
146
  children?: /*elided*/ any[] | undefined;
146
147
  }[]>;
@@ -157,50 +158,50 @@ export declare const useMenuStore: import("pinia").StoreDefinition<"admin-menu",
157
158
  key: string;
158
159
  label: string;
159
160
  icon?: string | null
160
- /** URL (внутренний router-target) либо null для группы. */
161
+ /** The URL — an internal router target — or null for a group. */
161
162
  | undefined;
162
163
  url?: string | null
163
- /** Имя router-route (если задано — приоритет над url). */
164
+ /** The router route's name; when set it wins over the url. */
164
165
  | undefined;
165
166
  routeName?: string | null
166
- /** Бейдж справа (число unread, ярлык вроде "new"). */
167
+ /** The badge on the right: an unread count, or a label such as "new". */
167
168
  | undefined;
168
169
  badge?: string | number | null
169
- /** Группа (header в sidebar). */
170
+ /** The group, rendered as a header in the sidebar. */
170
171
  | undefined;
171
172
  group?: string | null
172
- /** Сортировочный вес. */
173
+ /** The sorting weight. */
173
174
  | undefined;
174
175
  order?: number
175
- /** Permission-keys; если заданы — пункт виден только при hasAnyPermission. */
176
+ /** The permission keys; when set, the item is visible only if hasAnyPermission passes. */
176
177
  | undefined;
177
178
  permissions?: string[]
178
- /** Вложенные пункты. */
179
+ /** The nested items. */
179
180
  | undefined;
180
181
  children?: /*elided*/ any[] | undefined;
181
182
  }[], MenuItem[] | {
182
183
  key: string;
183
184
  label: string;
184
185
  icon?: string | null
185
- /** URL (внутренний router-target) либо null для группы. */
186
+ /** The URL — an internal router target — or null for a group. */
186
187
  | undefined;
187
188
  url?: string | null
188
- /** Имя router-route (если задано — приоритет над url). */
189
+ /** The router route's name; when set it wins over the url. */
189
190
  | undefined;
190
191
  routeName?: string | null
191
- /** Бейдж справа (число unread, ярлык вроде "new"). */
192
+ /** The badge on the right: an unread count, or a label such as "new". */
192
193
  | undefined;
193
194
  badge?: string | number | null
194
- /** Группа (header в sidebar). */
195
+ /** The group, rendered as a header in the sidebar. */
195
196
  | undefined;
196
197
  group?: string | null
197
- /** Сортировочный вес. */
198
+ /** The sorting weight. */
198
199
  | undefined;
199
200
  order?: number
200
- /** Permission-keys; если заданы — пункт виден только при hasAnyPermission. */
201
+ /** The permission keys; when set, the item is visible only if hasAnyPermission passes. */
201
202
  | undefined;
202
203
  permissions?: string[]
203
- /** Вложенные пункты. */
204
+ /** The nested items. */
204
205
  | undefined;
205
206
  children?: /*elided*/ any[] | undefined;
206
207
  }[]>;
@@ -1,11 +1,11 @@
1
1
  /**
2
- * useNavigationStore — глобальный pending-counter для top-loading-bar.
2
+ * useNavigationStore — the global pending counter behind the top loading bar.
3
3
  *
4
- * При router.beforeEach (старт навигации) — вызываем `start()`.
5
- * При router.afterEach + resource-page завершила data-fetch — вызываем `end()`.
4
+ * `start()` is called from router.beforeEach, as a navigation begins; `end()`
5
+ * from router.afterEach and once a resource page has finished fetching.
6
6
  *
7
- * Counter (а не bool) защищает от race condition'ов: если несколько
8
- * параллельных fetch'ей, bar остаётся видимым пока хоть один pending.
7
+ * It is a counter rather than a boolean to survive the races: with several
8
+ * fetches in flight the bar stays visible while at least one is pending.
9
9
  */
10
10
  export declare const useNavigationStore: import("pinia").StoreDefinition<"admin-navigation", Pick<{
11
11
  pending: import("vue").Ref<number, number>;
@@ -1,9 +1,10 @@
1
1
  /**
2
- * Notifications store: список + unread count + read/delete actions.
2
+ * The notifications store: the list, the unread count, and the read and delete
3
+ * actions.
3
4
  *
4
- * Bell-badge polling реализуется на уровне UI через setInterval +
5
- * вызов loadUnread() — store сам не polling'ит, чтобы не дублировать
6
- * SetInterval'ы между tab'ами.
5
+ * The bell badge is polled by the UI, through a setInterval calling
6
+ * loadUnread(); the store does no polling of its own, so as not to multiply
7
+ * intervals across the tabs.
7
8
  */
8
9
  import type { AdminBootstrap } from '../types/bootstrap';
9
10
  export interface NotificationItem {
@@ -1,13 +1,13 @@
1
1
  /**
2
- * Глобальный registry AdminClient'а для Pinia stores.
2
+ * The global registry of the AdminClient, for the Pinia stores.
3
3
  *
4
- * Stores не получают client через параметры — это сильно усложняет API
5
- * (`useAuthStore(client)` каждый раз). Вместо этого client регистрируется
6
- * один раз при bootstrap'е приложения через `setAdminClient()`, и stores
7
- * читают его через `getAdminClient()`.
4
+ * The stores do not take the client as a parameter — that would make the API
5
+ * much clumsier, with `useAuthStore(client)` every single time. Instead the
6
+ * client is registered once, while the application bootstraps, through
7
+ * `setAdminClient()`, and the stores read it with `getAdminClient()`.
8
8
  *
9
- * Это singleton-pattern — допустим в случае admin-SPA, потому что
10
- * client всегда один на весь жизненный цикл.
9
+ * It is a singleton, which is acceptable for an admin SPA: there is only ever
10
+ * one client for the whole lifetime.
11
11
  */
12
12
  import type { AdminClient } from '../api/client';
13
13
  export declare function setAdminClient(client: AdminClient): void;