@nextsparkjs/testing 0.1.0-beta.44 → 0.1.0-beta.45

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.
@@ -1,1000 +0,0 @@
1
- // src/selectors/selector-factory.ts
2
- function getNestedValue(obj, path) {
3
- return path.split(".").reduce((current, key) => {
4
- if (current && typeof current === "object" && key in current) {
5
- return current[key];
6
- }
7
- return void 0;
8
- }, obj);
9
- }
10
- function replacePlaceholders(selector, replacements) {
11
- if (!replacements) return selector;
12
- return Object.entries(replacements).reduce(
13
- (result, [key, value]) => result.replace(new RegExp(`\\{${key}\\}`, "g"), String(value)),
14
- selector
15
- );
16
- }
17
- var isDevelopment = process.env.NODE_ENV === "development";
18
- var isTest = process.env.NODE_ENV === "test";
19
- var enableTestingAttributes = isDevelopment || isTest;
20
- function createSelectorHelpers(selectors) {
21
- function sel2(path, replacements) {
22
- const value = getNestedValue(selectors, path);
23
- if (value === void 0) {
24
- if (process.env.NODE_ENV === "development") {
25
- console.error(`[sel] Invalid selector path: "${path}"`);
26
- }
27
- return `INVALID_SELECTOR_${path.replace(/\./g, "_")}`;
28
- }
29
- if (typeof value !== "string") {
30
- if (process.env.NODE_ENV === "development") {
31
- console.error(
32
- `[sel] Path "${path}" points to an object, not a string. Did you forget a property?`
33
- );
34
- }
35
- return `INVALID_SELECTOR_${path.replace(/\./g, "_")}`;
36
- }
37
- return replacePlaceholders(value, replacements);
38
- }
39
- function cySelector2(path, replacements) {
40
- return `[data-cy="${sel2(path, replacements)}"]`;
41
- }
42
- function selDev2(path, replacements) {
43
- if (!enableTestingAttributes) return void 0;
44
- return sel2(path, replacements);
45
- }
46
- function entitySelectors2(slug) {
47
- return {
48
- // Page
49
- page: () => sel2("entities.page.container", { slug }),
50
- title: () => sel2("entities.page.title", { slug }),
51
- // Table
52
- table: () => sel2("entities.table.element", { slug }),
53
- tableContainer: () => sel2("entities.table.container", { slug }),
54
- search: () => sel2("entities.table.search", { slug }),
55
- addButton: () => sel2("entities.table.addButton", { slug }),
56
- row: (id) => sel2("entities.table.row", { slug, id }),
57
- rowMenu: (id) => sel2("entities.table.rowMenu", { slug, id }),
58
- rowAction: (action, id) => sel2("entities.table.rowAction", { slug, action, id }),
59
- cell: (field, id) => sel2("entities.table.cell", { slug, field, id }),
60
- // Form
61
- form: () => sel2("entities.form.container", { slug }),
62
- field: (name) => sel2("entities.form.field", { slug, name }),
63
- submitButton: () => sel2("entities.form.submitButton", { slug }),
64
- // Header
65
- header: (mode) => sel2("entities.header.container", { slug, mode }),
66
- backButton: () => sel2("entities.header.backButton", { slug }),
67
- editButton: () => sel2("entities.header.editButton", { slug }),
68
- deleteButton: () => sel2("entities.header.deleteButton", { slug }),
69
- // Detail
70
- detail: () => sel2("entities.detail.container", { slug }),
71
- // Filter
72
- filter: (field) => sel2("entities.filter.container", { slug, field }),
73
- filterTrigger: (field) => sel2("entities.filter.trigger", { slug, field }),
74
- filterOption: (field, value) => sel2("entities.filter.option", { slug, field, value })
75
- };
76
- }
77
- return {
78
- SELECTORS: selectors,
79
- sel: sel2,
80
- s: sel2,
81
- selDev: selDev2,
82
- cySelector: cySelector2,
83
- entitySelectors: entitySelectors2
84
- };
85
- }
86
-
87
- // src/selectors/core-selectors.ts
88
- var CORE_SELECTORS = {
89
- // ===========================================================================
90
- // AUTH
91
- // ===========================================================================
92
- auth: {
93
- login: {
94
- // Structure
95
- card: "login-form-card",
96
- header: "login-header",
97
- footer: "login-footer",
98
- form: "login-form",
99
- options: "login-options",
100
- // Inputs
101
- emailInput: "login-email-input",
102
- passwordInput: "login-password-input",
103
- emailError: "login-email-error",
104
- passwordError: "login-password-error",
105
- // Buttons
106
- submit: "login-submit",
107
- googleSignin: "login-google-signin",
108
- showEmail: "login-show-email",
109
- hideEmail: "login-hide-email",
110
- // Links
111
- forgotPassword: "login-forgot-password",
112
- signupLink: "login-signup-link",
113
- // Misc
114
- inviteBanner: "login-invite-banner",
115
- errorAlert: "login-error-alert",
116
- rememberCheckbox: "login-remember-checkbox"
117
- },
118
- signup: {
119
- form: "signup-form",
120
- firstName: "signup-first-name",
121
- lastName: "signup-last-name",
122
- email: "signup-email",
123
- password: "signup-password",
124
- confirmPassword: "signup-confirm-password",
125
- submitButton: "signup-submit",
126
- googleButton: "signup-google",
127
- loginLink: "signup-login-link",
128
- inviteBanner: "signup-invite-banner",
129
- error: "signup-error"
130
- },
131
- forgotPassword: {
132
- form: "forgot-password-form",
133
- email: "forgot-password-email",
134
- submitButton: "forgot-password-submit",
135
- backToLogin: "forgot-password-back",
136
- successMessage: "forgot-password-success",
137
- successBack: "forgot-password-success-back",
138
- retryButton: "forgot-password-retry",
139
- error: "forgot-password-error"
140
- },
141
- resetPassword: {
142
- form: "reset-password-form",
143
- password: "reset-password-password",
144
- confirmPassword: "reset-password-confirm",
145
- submitButton: "reset-password-submit",
146
- error: "reset-password-error",
147
- success: "reset-password-success",
148
- loginLink: "reset-password-login-link",
149
- backToLogin: "reset-password-back"
150
- },
151
- verifyEmail: {
152
- container: "verify-email-container",
153
- resendButton: "verify-email-resend",
154
- successMessage: "verify-email-success",
155
- error: "verify-email-error"
156
- },
157
- devKeyring: {
158
- container: "devkeyring-container",
159
- trigger: "devkeyring-trigger",
160
- content: "devkeyring-content",
161
- user: "devkeyring-user-{index}"
162
- }
163
- },
164
- // ===========================================================================
165
- // DASHBOARD - Shell & TopNav
166
- // ===========================================================================
167
- dashboard: {
168
- shell: {
169
- container: "dashboard-container",
170
- quickCreateButton: "topnav-quick-create-button",
171
- quickCreateDropdown: "topnav-quick-create-dropdown",
172
- quickCreateLink: "quick-create-{slug}-link"
173
- },
174
- topnav: {
175
- sidebarToggle: "topnav-sidebar-toggle",
176
- header: "topnav-header",
177
- logo: "topnav-logo",
178
- searchSection: "topnav-search-section",
179
- actions: "topnav-actions",
180
- notifications: "topnav-notifications",
181
- help: "topnav-help",
182
- themeToggle: "topnav-theme-toggle",
183
- superadmin: "topnav-superadmin",
184
- devtools: "topnav-devtools",
185
- userMenuTrigger: "topnav-user-menu-trigger",
186
- userMenu: "topnav-user-menu",
187
- menuItem: "topnav-menu-{icon}",
188
- menuAction: "topnav-menu-{action}",
189
- userLoading: "topnav-user-loading",
190
- signin: "topnav-signin",
191
- signup: "topnav-signup",
192
- // Mobile
193
- mobileActions: "topnav-mobile-actions",
194
- mobileMenuToggle: "topnav-mobile-menu-toggle",
195
- mobileMenu: "topnav-mobile-menu",
196
- mobileUserInfo: "topnav-mobile-user-info",
197
- mobileLinkProfile: "topnav-mobile-link-profile",
198
- mobileLinkSettings: "topnav-mobile-link-settings",
199
- mobileLinkBilling: "topnav-mobile-link-billing",
200
- mobileSignout: "topnav-mobile-signout",
201
- mobileNavSuperadmin: "topnav-mobile-nav-superadmin",
202
- mobileNavDevtools: "topnav-mobile-nav-devtools"
203
- },
204
- sidebar: {
205
- main: "sidebar-main",
206
- header: "sidebar-header",
207
- content: "sidebar-content",
208
- footer: "sidebar-footer"
209
- },
210
- navigation: {
211
- main: "nav-main",
212
- dashboardLink: "nav-link-dashboard",
213
- entityLink: "nav-link-entity-{slug}",
214
- section: "nav-section-{id}",
215
- sectionLabel: "nav-section-label-{id}",
216
- sectionItem: "nav-section-item-{sectionId}-{itemId}"
217
- },
218
- // Mobile components
219
- mobile: {
220
- topbar: {
221
- header: "mobile-topbar-header",
222
- userProfile: "mobile-topbar-user-profile",
223
- notifications: "mobile-topbar-notifications",
224
- themeToggle: "mobile-topbar-theme-toggle"
225
- },
226
- bottomNav: {
227
- nav: "mobile-bottomnav-nav",
228
- item: "mobile-bottomnav-item-{id}"
229
- },
230
- moreSheet: {
231
- content: "mobile-more-sheet-content",
232
- item: "mobile-more-sheet-item-{id}",
233
- superadminLink: "mobile-more-sheet-superadmin-link",
234
- teamSwitcher: "mobile-more-sheet-team-switcher",
235
- signoutButton: "mobile-more-sheet-signout-button"
236
- },
237
- quickCreateSheet: {
238
- content: "mobile-quick-create-sheet-content",
239
- item: "mobile-quick-create-sheet-item-{slug}"
240
- }
241
- }
242
- },
243
- // ===========================================================================
244
- // DASHBOARD - Entities (Dynamic with {slug})
245
- // ===========================================================================
246
- entities: {
247
- page: {
248
- container: "{slug}-page",
249
- title: "{slug}-title"
250
- },
251
- list: {
252
- container: "{slug}-list"
253
- },
254
- table: {
255
- container: "{slug}-table-container",
256
- element: "{slug}-table",
257
- search: "{slug}-search",
258
- addButton: "{slug}-add",
259
- selectionCount: "{slug}-selection-count",
260
- selectAll: "{slug}-select-all",
261
- row: "{slug}-row-{id}",
262
- rowSelect: "{slug}-select-{id}",
263
- cell: "{slug}-cell-{field}-{id}",
264
- rowMenu: "{slug}-menu-{id}",
265
- rowActionsMenu: "{slug}-actions-{id}",
266
- rowAction: "{slug}-menu-{action}-{id}",
267
- quickAction: "{slug}-quick-{action}-{id}"
268
- },
269
- pagination: {
270
- container: "{slug}-pagination",
271
- pageSize: "{slug}-page-size",
272
- pageSizeOption: "{slug}-page-size-{size}",
273
- pageInfo: "{slug}-page-info",
274
- first: "{slug}-page-first",
275
- prev: "{slug}-page-prev",
276
- next: "{slug}-page-next",
277
- last: "{slug}-page-last"
278
- },
279
- bulk: {
280
- bar: "{slug}-bulk-bar",
281
- count: "{slug}-bulk-count",
282
- selectAll: "{slug}-bulk-select-all",
283
- statusButton: "{slug}-bulk-status",
284
- deleteButton: "{slug}-bulk-delete",
285
- clearButton: "{slug}-bulk-clear",
286
- statusDialog: "{slug}-bulk-status-dialog",
287
- statusSelect: "{slug}-bulk-status-select",
288
- statusOption: "{slug}-bulk-status-option-{value}",
289
- statusCancel: "{slug}-bulk-status-cancel",
290
- statusConfirm: "{slug}-bulk-status-confirm",
291
- deleteDialog: "{slug}-bulk-delete-dialog",
292
- deleteCancel: "{slug}-bulk-delete-cancel",
293
- deleteConfirm: "{slug}-bulk-delete-confirm"
294
- },
295
- header: {
296
- container: "{slug}-{mode}-header",
297
- backButton: "{slug}-back-btn",
298
- title: "{slug}-title",
299
- copyId: "{slug}-copy-id",
300
- editButton: "{slug}-edit-btn",
301
- deleteButton: "{slug}-delete-btn",
302
- deleteDialog: "{slug}-delete-dialog",
303
- deleteCancel: "{slug}-delete-cancel",
304
- deleteConfirm: "{slug}-delete-confirm"
305
- },
306
- detail: {
307
- container: "{slug}-detail"
308
- },
309
- form: {
310
- container: "{slug}-form",
311
- field: "{slug}-field-{name}",
312
- submitButton: "{slug}-form-submit",
313
- cancelButton: "{slug}-form-cancel"
314
- },
315
- filter: {
316
- container: "{slug}-filter-{field}",
317
- trigger: "{slug}-filter-{field}-trigger",
318
- content: "{slug}-filter-{field}-content",
319
- option: "{slug}-filter-{field}-option-{value}",
320
- badge: "{slug}-filter-{field}-badge-{value}",
321
- removeBadge: "{slug}-filter-{field}-remove-{value}",
322
- clearAll: "{slug}-filter-{field}-clear-all"
323
- },
324
- search: {
325
- container: "{slug}-search",
326
- icon: "{slug}-search-icon",
327
- input: "{slug}-search-input",
328
- clear: "{slug}-search-clear"
329
- },
330
- confirm: {
331
- dialog: "{slug}-confirm-dialog",
332
- cancel: "{slug}-confirm-cancel",
333
- action: "{slug}-confirm-action"
334
- },
335
- childEntity: {
336
- container: "{parentSlug}-{childName}-container",
337
- addButton: "{parentSlug}-{childName}-add-button"
338
- }
339
- },
340
- // ===========================================================================
341
- // DASHBOARD - Global Search
342
- // ===========================================================================
343
- globalSearch: {
344
- modal: "search-modal",
345
- trigger: "search-trigger",
346
- input: "search-input",
347
- results: "search-results",
348
- result: "search-result"
349
- },
350
- // ===========================================================================
351
- // DASHBOARD - Taxonomies (Categories, Tags, etc.)
352
- // ===========================================================================
353
- taxonomies: {
354
- list: {
355
- container: "taxonomies-list-table",
356
- createButton: "taxonomies-create-button",
357
- row: "taxonomy-row-{id}",
358
- editButton: "taxonomies-edit-{id}",
359
- deleteButton: "taxonomies-delete-{id}"
360
- },
361
- form: {
362
- dialog: "taxonomy-form-dialog",
363
- nameInput: "taxonomy-name-input",
364
- slugInput: "taxonomy-slug-input",
365
- descriptionInput: "taxonomy-description-input",
366
- iconInput: "taxonomy-icon-input",
367
- colorInput: "taxonomy-color-input",
368
- parentSelect: "taxonomy-parent-select",
369
- orderInput: "taxonomy-order-input",
370
- saveButton: "taxonomy-save-button",
371
- cancelButton: "taxonomy-cancel-button"
372
- },
373
- confirmDelete: {
374
- dialog: "taxonomy-delete-dialog",
375
- confirmButton: "taxonomy-delete-confirm",
376
- cancelButton: "taxonomy-delete-cancel"
377
- }
378
- },
379
- // ===========================================================================
380
- // DASHBOARD - Teams
381
- // ===========================================================================
382
- teams: {
383
- switcher: {
384
- compact: "team-switcher-compact",
385
- full: "team-switcher",
386
- dropdown: "team-switcher-dropdown",
387
- option: "team-option-{slug}",
388
- manageLink: "manage-teams-link",
389
- createButton: "create-team-button"
390
- },
391
- switchModal: {
392
- container: "team-switch-modal"
393
- },
394
- create: {
395
- dialog: "create-team-dialog",
396
- button: "create-team-button",
397
- nameInput: "team-name-input",
398
- slugInput: "team-slug-input",
399
- descriptionInput: "team-description-input",
400
- cancel: "cancel-create-team",
401
- submit: "submit-create-team"
402
- },
403
- members: {
404
- section: "team-members-section",
405
- row: "member-row-{id}",
406
- actions: "member-actions-{id}",
407
- makeRole: "make-{role}-action",
408
- remove: "remove-member-action"
409
- },
410
- invite: {
411
- button: "invite-member-button",
412
- buttonDisabled: "invite-member-button-disabled",
413
- dialog: "invite-member-dialog",
414
- emailInput: "member-email-input",
415
- roleSelect: "member-role-select",
416
- roleOption: "role-option-{role}",
417
- cancel: "cancel-invite-member",
418
- submit: "submit-invite-member"
419
- },
420
- invitations: {
421
- row: "invitation-row-{id}",
422
- cancel: "cancel-invitation-{id}"
423
- }
424
- },
425
- // ===========================================================================
426
- // DASHBOARD - Block Editor (Pages & Posts)
427
- // ===========================================================================
428
- blockEditor: {
429
- container: "builder-editor",
430
- titleInput: "editor-title-input",
431
- slugInput: "editor-slug-input",
432
- saveButton: "save-btn",
433
- statusBadge: "status-badge",
434
- leftSidebarToggle: "left-sidebar-toggle",
435
- viewModeToggle: "view-mode-toggle",
436
- blockPicker: {
437
- container: "block-picker",
438
- searchInput: "block-search-input",
439
- categoryAll: "category-all",
440
- category: "category-{category}",
441
- blockItem: "block-item-{slug}",
442
- addBlock: "add-block-{slug}"
443
- },
444
- blockCanvas: {
445
- container: "block-preview-canvas",
446
- empty: "block-preview-canvas-empty"
447
- },
448
- previewCanvas: {
449
- container: "block-preview-canvas",
450
- empty: "block-preview-canvas-empty",
451
- block: "preview-block-{id}",
452
- moveUp: "preview-block-{id}-move-up",
453
- moveDown: "preview-block-{id}-move-down"
454
- },
455
- sortableBlock: {
456
- container: "sortable-block-{id}",
457
- dragHandle: "drag-handle-{id}",
458
- duplicate: "duplicate-block-{id}",
459
- remove: "remove-block-{id}",
460
- error: "block-error-{id}"
461
- },
462
- settingsPanel: {
463
- container: "block-settings-panel",
464
- empty: "settings-panel-empty",
465
- error: "settings-panel-error",
466
- resetProps: "reset-block-props",
467
- removeBlock: "remove-block-settings",
468
- tabContent: "tab-content",
469
- tabDesign: "tab-design",
470
- tabAdvanced: "tab-advanced"
471
- },
472
- pageSettings: {
473
- container: "page-settings-panel",
474
- seoTrigger: "seo-settings-trigger",
475
- metaTitle: "seo-meta-title",
476
- metaDescription: "seo-meta-description",
477
- metaKeywords: "seo-meta-keywords",
478
- ogImage: "seo-og-image",
479
- customFieldsTrigger: "custom-fields-trigger",
480
- customFieldKey: "custom-field-key-{index}",
481
- customFieldValue: "custom-field-value-{index}",
482
- customFieldRemove: "custom-field-remove-{index}",
483
- addCustomField: "add-custom-field"
484
- },
485
- statusSelector: {
486
- trigger: "status-selector",
487
- option: "status-option-{value}"
488
- },
489
- dynamicForm: {
490
- container: "dynamic-form",
491
- field: "field-{name}",
492
- fieldGroup: "field-group-{id}",
493
- arrayGroup: "array-group-{name}"
494
- },
495
- arrayField: {
496
- container: "array-field-{name}",
497
- item: "array-field-{name}-{index}-{field}",
498
- moveUp: "array-field-{name}-{index}-move-up",
499
- moveDown: "array-field-{name}-{index}-move-down",
500
- remove: "array-field-{name}-{index}-remove",
501
- add: "array-field-{name}-add"
502
- },
503
- entityFieldsSidebar: {
504
- container: "entity-fields-sidebar",
505
- field: "field-{name}",
506
- category: "category-{slug}"
507
- },
508
- // Post-specific fields
509
- postFields: {
510
- excerpt: "field-excerpt",
511
- featuredImage: "field-featuredImage",
512
- featuredImageUpload: "field-featuredImage-upload",
513
- categories: "field-categories",
514
- categoryOption: "category-option-{id}",
515
- categoryBadge: "category-badge-{id}",
516
- categoryRemove: "category-remove-{id}"
517
- },
518
- // Page/Post locale field
519
- localeField: {
520
- select: "field-locale",
521
- option: "locale-option-{locale}"
522
- }
523
- },
524
- // ===========================================================================
525
- // SETTINGS
526
- // ===========================================================================
527
- settings: {
528
- layout: {
529
- main: "settings-layout-main",
530
- nav: "settings-layout-nav",
531
- backToDashboard: "settings-layout-back-to-dashboard",
532
- header: "settings-layout-header",
533
- contentArea: "settings-layout-content-area",
534
- sidebar: "settings-layout-sidebar",
535
- pageContent: "settings-layout-page-content"
536
- },
537
- sidebar: {
538
- main: "settings-sidebar-main",
539
- header: "settings-sidebar-header",
540
- navItems: "settings-sidebar-nav-items",
541
- navItem: "settings-sidebar-nav-{section}"
542
- },
543
- overview: {
544
- container: "settings-overview",
545
- item: "settings-overview-{key}"
546
- },
547
- profile: {
548
- container: "settings-profile",
549
- form: "profile-form",
550
- avatar: "profile-avatar",
551
- avatarUpload: "profile-avatar-upload",
552
- firstName: "profile-first-name",
553
- lastName: "profile-last-name",
554
- email: "profile-email",
555
- submitButton: "profile-submit",
556
- successMessage: "profile-success"
557
- },
558
- password: {
559
- container: "settings-password",
560
- form: "password-form",
561
- currentPassword: "password-current",
562
- newPassword: "password-new",
563
- confirmPassword: "password-confirm",
564
- submitButton: "password-submit",
565
- successMessage: "password-success"
566
- },
567
- team: {
568
- container: "settings-team",
569
- name: "team-name",
570
- slug: "team-slug",
571
- description: "team-description",
572
- avatar: "team-avatar",
573
- avatarUpload: "team-avatar-upload",
574
- submitButton: "team-submit",
575
- deleteButton: "team-delete",
576
- deleteDialog: "team-delete-dialog",
577
- deleteConfirm: "team-delete-confirm"
578
- },
579
- members: {
580
- container: "settings-members",
581
- inviteButton: "members-invite",
582
- inviteDialog: "members-invite-dialog",
583
- inviteEmail: "members-invite-email",
584
- inviteRole: "members-invite-role",
585
- inviteSubmit: "members-invite-submit",
586
- memberRow: "member-row-{id}",
587
- memberRole: "member-role-{id}",
588
- memberRemove: "member-remove-{id}",
589
- pendingInvites: "members-pending-invites",
590
- pendingInvite: "pending-invite-{id}",
591
- cancelInvite: "cancel-invite-{id}"
592
- },
593
- billing: {
594
- container: "settings-billing",
595
- main: "billing-main",
596
- header: "billing-header",
597
- currentPlan: "billing-current-plan",
598
- upgradeButton: "billing-upgrade",
599
- upgradePlan: "billing-upgrade-plan",
600
- cancelButton: "billing-cancel",
601
- addPayment: "billing-add-payment",
602
- invoicesTable: "billing-invoices",
603
- invoicesTableAlt: "invoices-table",
604
- invoiceRow: "invoice-row-{id}",
605
- invoicesRow: "invoices-row",
606
- invoiceDownload: "invoice-download-{id}",
607
- invoicesLoadMore: "invoices-load-more",
608
- invoiceStatusBadge: "invoice-status-badge",
609
- paymentMethod: "billing-payment-method",
610
- paymentMethodAlt: "payment-method",
611
- updatePayment: "billing-update-payment",
612
- usage: "billing-usage",
613
- usageDashboard: "usage-dashboard"
614
- },
615
- pricing: {
616
- table: "pricing-table",
617
- settingsTable: "pricing-settings-table"
618
- },
619
- features: {
620
- placeholder: "feature-placeholder-{feature}",
621
- content: "{feature}-content",
622
- placeholderUpgradeBtn: "placeholder-upgrade-btn"
623
- },
624
- apiKeys: {
625
- page: "api-keys-page",
626
- title: "api-keys-title",
627
- container: "settings-api-keys",
628
- createButton: "api-keys-create-button",
629
- createDialog: "api-keys-create-dialog",
630
- list: "api-keys-list",
631
- skeleton: "api-keys-skeleton",
632
- empty: "api-keys-empty",
633
- emptyCreateButton: "api-keys-empty-create-button",
634
- keyName: "api-key-name",
635
- keyScopes: "api-key-scopes",
636
- scopeOption: "api-key-scope-{scope}",
637
- createSubmit: "api-key-create-submit",
638
- keyRow: "api-key-row-{id}",
639
- keyName_: "api-keys-name-{id}",
640
- keyPrefix: "api-keys-prefix-{id}",
641
- copyPrefix: "api-keys-copy-prefix-{id}",
642
- keyStatus: "api-keys-status-{id}",
643
- statusBadge: "api-keys-status-badge-{id}",
644
- menuTrigger: "api-keys-menu-trigger-{id}",
645
- menu: "api-keys-menu-{id}",
646
- viewDetails: "api-keys-view-details-{id}",
647
- toggle: "api-keys-toggle-{id}",
648
- revoke: "api-keys-revoke-{id}",
649
- scopes: "api-keys-scopes-{id}",
650
- scope: "api-keys-scope-{id}-{scope}",
651
- stats: "api-keys-stats-{id}",
652
- totalRequests: "api-keys-total-requests-{id}",
653
- last24h: "api-keys-last-24h-{id}",
654
- avgTime: "api-keys-avg-time-{id}",
655
- metadata: "api-keys-metadata-{id}",
656
- createdAt: "api-keys-created-at-{id}",
657
- lastUsed: "api-keys-last-used-{id}",
658
- expiresAt: "api-keys-expires-at-{id}",
659
- detailsDialog: "api-keys-details-dialog",
660
- detailsTitle: "api-keys-details-title",
661
- detailsLoading: "api-keys-details-loading",
662
- detailsContent: "api-keys-details-content",
663
- detailsBasicInfo: "api-keys-details-basic-info",
664
- detailsName: "api-keys-details-name",
665
- detailsStatus: "api-keys-details-status",
666
- detailsStats: "api-keys-details-stats",
667
- detailsTotalRequests: "api-keys-details-total-requests",
668
- detailsLast24h: "api-keys-details-last-24h",
669
- detailsLast7d: "api-keys-details-last-7d",
670
- detailsLast30d: "api-keys-details-last-30d",
671
- detailsAvgTime: "api-keys-details-avg-time",
672
- detailsSuccessRate: "api-keys-details-success-rate",
673
- keyReveal: "api-key-reveal-{id}",
674
- keyRevoke: "api-key-revoke-{id}",
675
- revokeDialog: "api-key-revoke-dialog",
676
- revokeConfirm: "api-key-revoke-confirm",
677
- newKeyDisplay: "api-key-new-display",
678
- copyKey: "api-key-copy",
679
- dialogFooter: "api-keys-dialog-footer"
680
- },
681
- notifications: {
682
- container: "settings-notifications",
683
- emailToggle: "notifications-email",
684
- pushToggle: "notifications-push",
685
- category: "notifications-{category}",
686
- submitButton: "notifications-submit"
687
- },
688
- teams: {
689
- main: "teams-settings-main",
690
- header: "teams-settings-header",
691
- loading: "teams-settings-loading",
692
- singleUser: "teams-settings-single-user",
693
- teamsList: "teams-settings-teams-list",
694
- teamDetails: "teams-settings-team-details"
695
- },
696
- plans: {
697
- main: "plans-settings-main",
698
- header: "plans-settings-header",
699
- table: "plans-settings-table"
700
- }
701
- },
702
- // ===========================================================================
703
- // SUPERADMIN (Super Admin Panel)
704
- // ===========================================================================
705
- superadmin: {
706
- container: "superadmin-container",
707
- navigation: {
708
- dashboard: "superadmin-nav-dashboard",
709
- users: "superadmin-nav-users",
710
- teams: "superadmin-nav-teams",
711
- teamRoles: "superadmin-nav-team-roles",
712
- docs: "superadmin-nav-docs",
713
- subscriptions: "superadmin-nav-subscriptions",
714
- analytics: "superadmin-nav-analytics",
715
- config: "superadmin-nav-config",
716
- exitToDashboard: "superadmin-sidebar-exit-to-dashboard"
717
- },
718
- dashboard: {
719
- container: "superadmin-dashboard"
720
- },
721
- users: {
722
- container: "superadmin-users-container",
723
- table: "superadmin-users-table",
724
- search: "superadmin-users-search",
725
- row: "superadmin-user-row-{id}",
726
- viewButton: "superadmin-user-view-{id}",
727
- editButton: "superadmin-user-edit-{id}",
728
- banButton: "superadmin-user-ban-{id}",
729
- deleteButton: "superadmin-user-delete-{id}",
730
- impersonateButton: "superadmin-user-impersonate-{id}"
731
- },
732
- userDetail: {
733
- container: "superadmin-user-detail",
734
- email: "superadmin-user-email",
735
- role: "superadmin-user-role",
736
- status: "superadmin-user-status",
737
- teams: "superadmin-user-teams",
738
- activity: "superadmin-user-activity",
739
- actions: "superadmin-user-actions",
740
- // User Metadata
741
- metas: "superadmin-user-metas",
742
- metasTitle: "superadmin-user-metas-title",
743
- metasTable: "superadmin-user-metas-table",
744
- metasEmpty: "superadmin-user-metas-empty",
745
- metaRow: "superadmin-user-meta-row-{key}",
746
- metaKey: "superadmin-user-meta-key-{key}",
747
- metaValue: "superadmin-user-meta-value-{key}",
748
- metaType: "superadmin-user-meta-type-{key}",
749
- metaPublic: "superadmin-user-meta-public-{key}",
750
- metaSearchable: "superadmin-user-meta-searchable-{key}"
751
- },
752
- teams: {
753
- container: "superadmin-teams-container",
754
- table: "superadmin-teams-table",
755
- search: "superadmin-teams-search",
756
- row: "superadmin-team-row-{id}",
757
- actionsButton: "superadmin-team-actions-{id}",
758
- viewButton: "superadmin-team-view-{id}",
759
- editButton: "superadmin-team-edit-{id}",
760
- deleteButton: "superadmin-team-delete-{id}"
761
- },
762
- teamDetail: {
763
- container: "superadmin-team-detail",
764
- name: "superadmin-team-name",
765
- owner: "superadmin-team-owner",
766
- members: "superadmin-team-members",
767
- plan: "superadmin-team-plan",
768
- usage: "superadmin-team-usage"
769
- },
770
- subscriptions: {
771
- container: "superadmin-subscriptions-container",
772
- mrr: "superadmin-subscriptions-mrr",
773
- planDistribution: "superadmin-subscriptions-plan-distribution",
774
- planCount: "superadmin-subscriptions-plan-count-{plan}",
775
- activeCount: "superadmin-subscriptions-active-count"
776
- },
777
- pagination: {
778
- pageSize: "superadmin-page-size-select",
779
- first: "superadmin-pagination-first",
780
- prev: "superadmin-pagination-prev",
781
- next: "superadmin-pagination-next",
782
- last: "superadmin-pagination-last"
783
- },
784
- filters: {
785
- search: "superadmin-search-{context}",
786
- dropdown: "superadmin-filter-{context}"
787
- },
788
- permissions: {
789
- row: "superadmin-permission-row-{permission}"
790
- },
791
- teamRoles: {
792
- backButton: "back-to-superadmin",
793
- roleCard: "role-card-{role}",
794
- permissionRow: "permission-row-{permission}"
795
- },
796
- planFeatures: {
797
- featureRow: "superadmin-feature-row-{slug}",
798
- limitRow: "superadmin-limit-row-{slug}"
799
- }
800
- },
801
- // ===========================================================================
802
- // DEVTOOLS
803
- // ===========================================================================
804
- devtools: {
805
- navigation: {
806
- sidebar: "devtools-sidebar",
807
- collapseToggle: "devtools-sidebar-collapse-toggle",
808
- navItem: "devtools-nav-{section}",
809
- exitToDashboard: "devtools-sidebar-exit-to-dashboard",
810
- goToSuperadmin: "devtools-sidebar-go-to-superadmin",
811
- mobileHeader: "devtools-mobile-header"
812
- },
813
- home: {
814
- page: "devtools-home-page",
815
- styleLink: "devtools-home-style-link",
816
- testsLink: "devtools-home-tests-link",
817
- configLink: "devtools-home-config-link"
818
- },
819
- style: {
820
- page: "devtools-style-page",
821
- tabComponents: "devtools-style-tab-components",
822
- tabFieldTypes: "devtools-style-tab-field-types",
823
- tabTheme: "devtools-style-tab-theme",
824
- tabGuidelines: "devtools-style-tab-guidelines",
825
- componentGallery: "devtools-style-component-gallery",
826
- fieldTypes: "devtools-style-field-types",
827
- themePreview: "devtools-style-theme-preview"
828
- },
829
- config: {
830
- page: "devtools-config-page",
831
- viewer: "devtools-config-viewer",
832
- tabTheme: "devtools-config-tab-theme",
833
- tabEntities: "devtools-config-tab-entities",
834
- themeContent: "devtools-config-theme-content",
835
- entitiesContent: "devtools-config-entities-content",
836
- copyTheme: "devtools-config-copy-theme",
837
- copyEntities: "devtools-config-copy-entities"
838
- },
839
- tests: {
840
- page: "devtools-tests-page",
841
- viewer: "devtools-tests-viewer",
842
- loading: "devtools-tests-loading",
843
- tree: "devtools-tests-tree",
844
- folder: "devtools-tests-folder-{name}",
845
- file: "devtools-tests-file-{name}",
846
- content: "devtools-tests-content",
847
- markdownContent: "devtools-tests-markdown-content",
848
- notFound: "devtools-tests-not-found",
849
- backToList: "devtools-tests-back-to-list",
850
- emptyState: "devtools-tests-empty-state",
851
- fileLoading: "devtools-tests-file-loading",
852
- error: "devtools-tests-error",
853
- // Dashboard
854
- dashboard: "devtools-tests-dashboard",
855
- dashboardButton: "devtools-tests-dashboard-button",
856
- dashboardStats: "devtools-tests-dashboard-stats",
857
- dashboardStatFeatures: "devtools-tests-dashboard-stat-features",
858
- dashboardStatFlows: "devtools-tests-dashboard-stat-flows",
859
- dashboardStatFiles: "devtools-tests-dashboard-stat-files",
860
- dashboardStatTags: "devtools-tests-dashboard-stat-tags",
861
- dashboardGaps: "devtools-tests-dashboard-gaps",
862
- dashboardGapItem: "devtools-tests-dashboard-gap-{slug}"
863
- },
864
- features: {
865
- page: "devtools-features-page",
866
- viewer: "devtools-features-viewer",
867
- search: "devtools-features-search",
868
- filterAll: "devtools-features-filter-all",
869
- filterCategory: "devtools-features-filter-{category}",
870
- coverageAll: "devtools-features-coverage-all",
871
- coverageCovered: "devtools-features-coverage-covered",
872
- coverageUncovered: "devtools-features-coverage-uncovered",
873
- card: "devtools-features-card-{slug}",
874
- copyTag: "devtools-features-copy-{slug}"
875
- },
876
- flows: {
877
- page: "devtools-flows-page",
878
- viewer: "devtools-flows-viewer",
879
- search: "devtools-flows-search",
880
- filterAll: "devtools-flows-filter-all",
881
- filterCategory: "devtools-flows-filter-{category}",
882
- coverageAll: "devtools-flows-coverage-all",
883
- coverageCovered: "devtools-flows-coverage-covered",
884
- coverageUncovered: "devtools-flows-coverage-uncovered",
885
- card: "devtools-flows-card-{slug}",
886
- copyTag: "devtools-flows-copy-{slug}"
887
- },
888
- blocks: {
889
- page: "devtools-blocks-page",
890
- viewer: "devtools-blocks-viewer",
891
- search: "devtools-blocks-search",
892
- filterAll: "devtools-blocks-filter-all",
893
- filterCategory: "devtools-blocks-filter-{category}",
894
- coverageAll: "devtools-blocks-coverage-all",
895
- coverageCovered: "devtools-blocks-coverage-covered",
896
- coverageUncovered: "devtools-blocks-coverage-uncovered",
897
- card: "devtools-blocks-card-{slug}",
898
- copyTag: "devtools-blocks-copy-{slug}",
899
- viewDetails: "devtools-blocks-view-{slug}",
900
- detail: {
901
- page: "devtools-block-detail-{slug}",
902
- back: "devtools-block-detail-back",
903
- tabPreview: "devtools-block-detail-tab-preview",
904
- tabFields: "devtools-block-detail-tab-fields",
905
- tabOverview: "devtools-block-detail-tab-overview",
906
- preview: "devtools-block-detail-preview-{slug}",
907
- exampleSelector: "devtools-block-example-selector",
908
- exampleBtn: "devtools-block-example-btn-{index}",
909
- exampleName: "devtools-block-example-name",
910
- exampleDescription: "devtools-block-example-description"
911
- }
912
- },
913
- tags: {
914
- page: "devtools-tags-page",
915
- viewer: "devtools-tags-viewer",
916
- search: "devtools-tags-search",
917
- category: "devtools-tags-category-{category}",
918
- tag: "devtools-tags-tag-{tag}",
919
- tagLink: "devtools-tags-link-{tag}",
920
- filesPanel: "devtools-tags-files-panel-{tag}"
921
- },
922
- scheduledActions: {
923
- page: "devtools-scheduled-actions-page",
924
- filterStatus: "scheduled-actions-filter-status",
925
- filterType: "scheduled-actions-filter-type",
926
- filterApply: "scheduled-actions-filter-apply",
927
- filterReset: "scheduled-actions-filter-reset",
928
- table: "scheduled-actions-table",
929
- row: "scheduled-actions-row-{id}",
930
- cellType: "scheduled-actions-cell-type",
931
- cellStatus: "scheduled-actions-cell-status",
932
- cellScheduledAt: "scheduled-actions-cell-scheduled-at",
933
- cellTeam: "scheduled-actions-cell-team",
934
- cellPayload: "scheduled-actions-cell-payload",
935
- cellError: "scheduled-actions-cell-error",
936
- statusPending: "scheduled-actions-status-pending",
937
- statusRunning: "scheduled-actions-status-running",
938
- statusCompleted: "scheduled-actions-status-completed",
939
- statusFailed: "scheduled-actions-status-failed",
940
- pagination: "scheduled-actions-pagination",
941
- paginationPrev: "scheduled-actions-pagination-prev",
942
- paginationNext: "scheduled-actions-pagination-next",
943
- emptyState: "scheduled-actions-empty-state"
944
- }
945
- },
946
- // ===========================================================================
947
- // PUBLIC PAGES
948
- // ===========================================================================
949
- public: {
950
- navbar: {
951
- container: "public-navbar",
952
- logo: "navbar-logo",
953
- loginButton: "navbar-login",
954
- signupButton: "navbar-signup"
955
- },
956
- footer: {
957
- container: "public-footer",
958
- logo: "footer-logo"
959
- },
960
- page: {
961
- container: "public-page-{slug}",
962
- title: "page-title",
963
- content: "page-content"
964
- },
965
- blog: {
966
- listContainer: "blog-list",
967
- postCard: "blog-post-{slug}"
968
- }
969
- },
970
- // ===========================================================================
971
- // COMMON / SHARED
972
- // ===========================================================================
973
- common: {
974
- permissionDenied: "permission-denied",
975
- loading: "loading-spinner",
976
- error: "error-message",
977
- toast: "toast-{type}",
978
- modal: {
979
- overlay: "modal-overlay",
980
- container: "modal-container",
981
- title: "modal-title",
982
- close: "modal-close",
983
- content: "modal-content",
984
- footer: "modal-footer"
985
- }
986
- }
987
- };
988
-
989
- // src/selectors/selectors.ts
990
- var helpers = createSelectorHelpers(CORE_SELECTORS);
991
- var SELECTORS = helpers.SELECTORS;
992
- var sel = helpers.sel;
993
- var s = helpers.s;
994
- var selDev = helpers.selDev;
995
- var cySelector = helpers.cySelector;
996
- var entitySelectors = helpers.entitySelectors;
997
-
998
- export { CORE_SELECTORS, SELECTORS, createSelectorHelpers, cySelector, entitySelectors, getNestedValue, replacePlaceholders, s, sel, selDev };
999
- //# sourceMappingURL=index.js.map
1000
- //# sourceMappingURL=index.js.map