@bigbinary/neeto-playwright-commons 4.3.5 → 4.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (3) hide show
  1. package/index.d.ts +517 -15
  2. package/index.js +546 -82
  3. package/package.json +1 -1
package/index.d.ts CHANGED
@@ -524,7 +524,7 @@ declare class CustomCommands {
524
524
  }: VerifyTooltipProps) => Promise<void>;
525
525
  /**
526
526
  *
527
- * Method to verify title, content and the help link of help popover by hovering the trigger element. Locates the title, content, and link directly via their own testids (rather than inside a shared tooltip container).
527
+ * Method to verify title, content and the help link of help popover by hovering the trigger element. The CustomCommandsV2 variant locates the title, content, and link directly via their own testids (rather than inside a shared tooltip container).
528
528
  *
529
529
  * customPageContext (optional): The custom page on which tooltip needs to be verified. Defaults to this.page.
530
530
  *
@@ -576,7 +576,6 @@ declare class CustomCommands {
576
576
  * @endexample
577
577
  */
578
578
  verifyHelpText: (helpURL: string) => Promise<void>;
579
- private hidePopoverContent;
580
579
  /**
581
580
  *
582
581
  * Method to verify the term in the search term block.
@@ -842,6 +841,113 @@ declare class CustomCommands {
842
841
  */
843
842
  moveCursorAtBottom: () => Promise<void>;
844
843
  }
844
+ declare class CustomCommandsV2 extends CustomCommands {
845
+ /**
846
+ *
847
+ * Command to select an option from a select input. It retries until the select
848
+ *
849
+ * operation is completed. It takes the following parameters:
850
+ *
851
+ * label (optional): is the label for the menu and the select input container. Default is nui.
852
+ *
853
+ * value: is the value to be selected.
854
+ *
855
+ * page (optional): is the custom page context. Default is POM's page.
856
+ *
857
+ * options: is an object with the following optional parameters:
858
+ *
859
+ * visiblityTimeout: is the time to wait for the select input to be visible. Default is 2000ms.
860
+ *
861
+ * textAssertionTimeout: is the time to wait for the selected value to be visible in the select input. Default is 1000ms.
862
+ *
863
+ * retryTimeout: is the time to wait until the select operation is completed. Default is 20000ms.
864
+ *
865
+ * @example
866
+ *
867
+ * await neetoPlaywrightUtilities.selectOptionFromDropdown({
868
+ * label,
869
+ * value,
870
+ * options = {},
871
+ * });
872
+ * // or
873
+ *
874
+ * await neetoPlaywrightUtilities.selectOptionFromDropdown({
875
+ * label,
876
+ * value,
877
+ * options:{
878
+ * visiblityTimeout:200,
879
+ * textAssertionTimeout:1000,
880
+ * retryTimeout:20000
881
+ * },
882
+ * });
883
+ * @endexample
884
+ */
885
+ selectOptionFromDropdown: ({
886
+ label,
887
+ value,
888
+ page,
889
+ options
890
+ }: SelectOptionFromDropdownParams) => Promise<void>;
891
+ /**
892
+ *
893
+ * Method to verify title, content and the help link of help popover by hovering the trigger element. The CustomCommandsV2 variant locates the title, content, and link directly via their own testids (rather than inside a shared tooltip container).
894
+ *
895
+ * customPageContext (optional): The custom page on which tooltip needs to be verified. Defaults to this.page.
896
+ *
897
+ * triggerElement: The element hovering which the tooltip will be shown.
898
+ *
899
+ * title (optional): The title of the tooltip container.
900
+ *
901
+ * content (optional): The content of the tooltip container.
902
+ *
903
+ * helpURL (optional): The help URL in tooltip container navigating to the help docs.
904
+ *
905
+ * @example
906
+ *
907
+ * await verifyHelpPopover({
908
+ * customPageContext: page,
909
+ * triggerElement: page.getByTestId("tooltip"),
910
+ * content: "content of tooltip container",
911
+ * });
912
+ * @endexample
913
+ */
914
+ verifyHelpPopover: ({
915
+ triggerElement,
916
+ title,
917
+ content,
918
+ helpURL,
919
+ customPageContext
920
+ }: VerifyHelpPopoverProps) => Promise<void>;
921
+ /**
922
+ *
923
+ * Method to verify the help link on the page.
924
+ *
925
+ * helpURL: URL to match against the help link's href attribute. Matching is case-insensitive.
926
+ *
927
+ * @example
928
+ *
929
+ * await neetoPlaywrightUtilities.verifyHelpText("https://help.neetoform.com/a-sj53mrx");
930
+ * @endexample
931
+ */
932
+ verifyHelpText: (helpURL: string) => Promise<void>;
933
+ /**
934
+ *
935
+ * Verifies the breadcrumbs in the header of a web page. It takes the following parameters:
936
+ *
937
+ * titlesAndRoutes: An array of objects containing the titles and routes of the breadcrumbs to verify. The order of the array must match the display order of breadcrumbs on the page.
938
+ *
939
+ * @example
940
+ *
941
+ * await neetoPlaywrightUtilities.verifyBreadcrumbs([
942
+ * { title: "Home", route: "/" },
943
+ * { title: "Category", route: "/category" },
944
+ * { title: "Subcategory", route: "/category/subcategory" }
945
+ * ]);
946
+ * @endexample
947
+ */
948
+ verifyBreadcrumbs: (titlesAndRoutes: BreadcrumbTitleAndRoute[]) => Promise<void>;
949
+ protected hidePopoverContent: (triggerElement: Locator, contentLocator: Locator, customPageContext?: Page) => Promise<void>;
950
+ }
845
951
  declare class ApiKeysApi {
846
952
  private neetoPlaywrightUtilities;
847
953
  private readonly API_KEYS_BASE_URL;
@@ -2501,6 +2607,10 @@ interface HelpAndProfilePageInitializerProps {
2501
2607
  neetoPlaywrightUtilities: CustomCommands;
2502
2608
  product: NeetoProducts;
2503
2609
  }
2610
+ interface OpenAuthLinkAndVerifyProps {
2611
+ linkTestId: string;
2612
+ redirectLink: string;
2613
+ }
2504
2614
  interface FillTextFieldsProps {
2505
2615
  firstName: string;
2506
2616
  lastName: string;
@@ -2538,9 +2648,9 @@ declare class HelpAndProfilePage {
2538
2648
  }: HelpAndProfilePageInitializerProps);
2539
2649
  /**
2540
2650
  *
2541
- * Opens the Help Center by clicking the floating action menu button and expects
2651
+ * Opens the Help Center and expects the chat button within it to be visible. The
2542
2652
  *
2543
- * the chat button within it to be visible.
2653
+ * V2 variant clicks the floating action menu button instead of hovering it.
2544
2654
  *
2545
2655
  * @example
2546
2656
  *
@@ -2584,7 +2694,7 @@ declare class HelpAndProfilePage {
2584
2694
  * @endexample
2585
2695
  */
2586
2696
  openAndVerifyChangelog: () => Promise<void>;
2587
- private formatKeyboardShortcut;
2697
+ protected formatKeyboardShortcut: (shortcut: string, osPlatform?: "mac" | "windows") => string;
2588
2698
  /**
2589
2699
  *
2590
2700
  * Opens and verifies the keyboard shortcuts pane in Help Center. It takes the
@@ -2629,9 +2739,21 @@ declare class HelpAndProfilePage {
2629
2739
  * @endexample
2630
2740
  */
2631
2741
  verifyLogout: () => Promise<void>;
2632
- private openAuthLinkAndVerify;
2633
- private fillTextFields;
2634
- private selectDropdownFields;
2742
+ protected openAuthLinkAndVerify: ({
2743
+ linkTestId,
2744
+ redirectLink
2745
+ }: OpenAuthLinkAndVerifyProps) => Promise<void>;
2746
+ protected fillTextFields: ({
2747
+ firstName,
2748
+ lastName,
2749
+ phoneNumber
2750
+ }: FillTextFieldsProps) => Promise<void>;
2751
+ protected selectDropdownFields: ({
2752
+ country,
2753
+ timeZone,
2754
+ timeFormat,
2755
+ dateFormat
2756
+ }: SettingsInfo) => Promise<void>;
2635
2757
  /**
2636
2758
  *
2637
2759
  * Command to upload an image to image uploader and verify it. It takes the following parameters:
@@ -2643,12 +2765,12 @@ declare class HelpAndProfilePage {
2643
2765
  * await neetoPlaywrightUtilities.uploadImage("../assets/image.png");
2644
2766
  * @endexample
2645
2767
  */
2646
- private uploadImage;
2768
+ protected uploadImage: (imageName: string) => Promise<void>;
2647
2769
  /**
2648
2770
  *
2649
- * Updates basic profile info in the profile sheet (image, fields, dropdowns,
2771
+ * Updates basic profile info in the profile pane (image, fields, dropdowns,
2650
2772
  *
2651
- * submit, then waits for the sheet to close).
2773
+ * submit, then waits for the pane to close).
2652
2774
  *
2653
2775
  * contact: First name, last name, and optional phone number. settings:
2654
2776
  *
@@ -2691,7 +2813,7 @@ declare class HelpAndProfilePage {
2691
2813
  openProfile: () => Promise<void>;
2692
2814
  /**
2693
2815
  *
2694
- * Asserts displayed values in the My profile sheet. Use after the sheet is open
2816
+ * Asserts displayed values in the My profile side pane. Use after the pane is open
2695
2817
  *
2696
2818
  * (for example after openProfile).
2697
2819
  *
@@ -2802,6 +2924,117 @@ declare class HelpAndProfilePage {
2802
2924
  */
2803
2925
  verifyThemeSwitcher: (expectedScreenshot: string) => Promise<void>;
2804
2926
  }
2927
+ declare class HelpAndProfilePageV2 extends HelpAndProfilePage {
2928
+ /**
2929
+ *
2930
+ * Opens the Help Center and expects the chat button within it to be visible. The
2931
+ *
2932
+ * V2 variant clicks the floating action menu button instead of hovering it.
2933
+ *
2934
+ * @example
2935
+ *
2936
+ * await helpAndProfilePage.openHelpCenter();
2937
+ * @endexample
2938
+ */
2939
+ openHelpCenter: () => Promise<void>;
2940
+ /**
2941
+ *
2942
+ * Opens and verifies the keyboard shortcuts pane in Help Center. It takes the
2943
+ *
2944
+ * following parameters:
2945
+ *
2946
+ * productShortcuts: Array of objects containing description and sequence of
2947
+ *
2948
+ * product shortcuts. osPlatform: Platform for keyboard shortcuts ("mac" or
2949
+ *
2950
+ * "windows").
2951
+ *
2952
+ * @example
2953
+ *
2954
+ * await helpAndProfilePage.openAndVerifyKeyboardShortcutsPane(
2955
+ * productShortcuts,
2956
+ * "windows"
2957
+ * );
2958
+ * @endexample
2959
+ */
2960
+ openAndVerifyKeyboardShortcutsPane: (productShortcuts: {
2961
+ description: string;
2962
+ sequence: string;
2963
+ }[], osPlatform?: "mac" | "windows") => Promise<void>;
2964
+ protected openAuthLinkAndVerify: ({
2965
+ linkTestId,
2966
+ redirectLink
2967
+ }: OpenAuthLinkAndVerifyProps) => Promise<void>;
2968
+ /**
2969
+ *
2970
+ * Command to upload an image to image uploader and verify it. It takes the following parameters:
2971
+ *
2972
+ * localImagePath: Path to image.
2973
+ *
2974
+ * @example
2975
+ *
2976
+ * await neetoPlaywrightUtilities.uploadImage("../assets/image.png");
2977
+ * @endexample
2978
+ */
2979
+ protected uploadImage: (imageName: string) => Promise<void>;
2980
+ /**
2981
+ *
2982
+ * Updates basic profile info in the profile pane (image, fields, dropdowns,
2983
+ *
2984
+ * submit, then waits for the pane to close).
2985
+ *
2986
+ * contact: First name, last name, and optional phone number. settings:
2987
+ *
2988
+ * Country, timezone, time format, and date format. imageName: File under
2989
+ *
2990
+ * images/ for the uploader.
2991
+ *
2992
+ * @example
2993
+ *
2994
+ * await helpAndProfilePage.updateBasicInfo({
2995
+ * contact: {
2996
+ * firstName: "Ada",
2997
+ * lastName: "Lovelace",
2998
+ * phoneNumber: "+1234567890",
2999
+ * },
3000
+ * settings: {
3001
+ * country: "Australia",
3002
+ * timeZone: "Australian Eastern Standard Time",
3003
+ * timeFormat: "24 hour",
3004
+ * dateFormat: "DD/MM/YYYY",
3005
+ * },
3006
+ * imageName: "sample.png",
3007
+ * });
3008
+ * @endexample
3009
+ */
3010
+ updateBasicInfo: ({
3011
+ contact,
3012
+ settings,
3013
+ imageName
3014
+ }: BasicInfoParams) => Promise<void>;
3015
+ /**
3016
+ *
3017
+ * Opens the My profile pane from Help Center and verifies the pane header.
3018
+ *
3019
+ * @example
3020
+ *
3021
+ * await helpAndProfilePage.openProfile();
3022
+ * @endexample
3023
+ */
3024
+ openProfile: () => Promise<void>;
3025
+ /**
3026
+ *
3027
+ * Verifies profile actions including billing/subscriptions access, update email
3028
+ *
3029
+ * navigation, and basic info update flow.
3030
+ *
3031
+ * @example
3032
+ *
3033
+ * await helpAndProfilePage.verifyProfile();
3034
+ * @endexample
3035
+ */
3036
+ verifyProfile: () => Promise<void>;
3037
+ }
2805
3038
  type IntegrationStatus = "connected" | "disconnected";
2806
3039
  type PartialInterceptMultipleResponsesParams = Partial<InterceptMultipleResponsesParams>;
2807
3040
  interface IntegrationBaseParams {
@@ -4744,7 +4977,7 @@ declare class TeamMembers {
4744
4977
  name: string;
4745
4978
  email: string;
4746
4979
  }) => Promise<void>;
4747
- private applyFilter;
4980
+ protected applyFilter: () => Promise<void>;
4748
4981
  /**
4749
4982
  *
4750
4983
  * Used to export member details in a specified file format.
@@ -4777,6 +5010,138 @@ declare class TeamMembers {
4777
5010
  */
4778
5011
  verifyNoDataTitle: (email: string) => Promise<void>;
4779
5012
  }
5013
+ declare class TeamMembersV2 extends TeamMembers {
5014
+ fillMemberForm: (emails: string[], role?: string) => Promise<void>;
5015
+ submit: () => Promise<void>;
5016
+ /**
5017
+ *
5018
+ * Used to edit a member using the edit button in row dropdown. A member has to be searched before editing. It takes the following parameters:
5019
+ *
5020
+ * email (optional): The new email of the member.
5021
+ *
5022
+ * role (optional): The new role of the member. Default is standard.
5023
+ *
5024
+ * firstName (optional): The new first name of the member.
5025
+ *
5026
+ * lastName (optional): The new last name of the member.
5027
+ *
5028
+ * @example
5029
+ *
5030
+ * await teamMembers.searchAndVerifyMemberByEmail({
5031
+ * email: "sam@example.com",
5032
+ * });
5033
+ * await teamMembers.editMemberViaUI({
5034
+ * email: "tom@example.com",
5035
+ * role: "admin",
5036
+ * firstName: "Tom",
5037
+ * lastName: "Hanks",
5038
+ * });
5039
+ * @endexample
5040
+ * @example
5041
+ *
5042
+ * await teamMembers.searchAndVerifyMemberByEmail({
5043
+ * email: "sam@example.com",
5044
+ * });
5045
+ * await teamMembers.editMemberViaUI();
5046
+ *
5047
+ * // This will change the role of the member with email "sam@example.com" to the `standard` role.
5048
+ * @endexample
5049
+ */
5050
+ editMemberViaUI: ({
5051
+ email,
5052
+ firstName,
5053
+ lastName,
5054
+ role
5055
+ }?: Partial<EditMemberProps>) => Promise<void>;
5056
+ /**
5057
+ *
5058
+ * Opens the filter pane on page.
5059
+ *
5060
+ * page: An instance of the Playwright Page class representing the web page where the filter pane should be opened.
5061
+ *
5062
+ * @example
5063
+ *
5064
+ * import { Page } from "@playwright/test";
5065
+ * import { filterUtils } from "@neetoplaywright";
5066
+ *
5067
+ * await filterUtils.openFilterPane(page);
5068
+ * @endexample
5069
+ */
5070
+ openFilterPane: () => Promise<void>;
5071
+ /**
5072
+ *
5073
+ * Used to filter members by multi select fields such as role, group, teams, etc. The filter pane should be opened and closed before and after filtering. It takes the following parameters:
5074
+ *
5075
+ * selectedOptions (required): The options to be selected in the multi select field.
5076
+ *
5077
+ * selectContainerLocator (optional): The locator of the container of the multi select field. Default is the container of the role field.
5078
+ *
5079
+ * @example
5080
+ *
5081
+ * await teamMembers.openFilterPane();
5082
+ * await teamMembers.filterMembersByMultiSelect({
5083
+ * selectedOptions: ["Admin", "Standard"],
5084
+ * selectContainerLocator: NEETO_FILTERS_SELECTORS.roleSelectContainer
5085
+ * });
5086
+ * @endexample
5087
+ */
5088
+ filterMembersByMultiSelect: ({
5089
+ selectedOptions,
5090
+ selectContainerLocator
5091
+ }: {
5092
+ selectedOptions: string[];
5093
+ selectContainerLocator?: string;
5094
+ }) => Promise<void>;
5095
+ /**
5096
+ *
5097
+ * Used to filter members by at least one these field: email with conditions, role, or name. It takes the following parameters:
5098
+ *
5099
+ * email (optional): An object with the id and condition as keys to filter by email.
5100
+ *
5101
+ * roles (optional): The roles to filter by.
5102
+ *
5103
+ * name (optional): The name to filter by.
5104
+ *
5105
+ * @example
5106
+ *
5107
+ * await teamMembers.filterMembers({
5108
+ * email: { id: "sam", condition: "Contains" },
5109
+ * roles: ["Admin", "Standard"],
5110
+ * });
5111
+ * @endexample
5112
+ * @example
5113
+ *
5114
+ * await teamMembers.filterMembers({
5115
+ * name: "Sam",
5116
+ * roles: ["Admin"],
5117
+ * });
5118
+ * @endexample
5119
+ */
5120
+ filterMembers: ({
5121
+ email,
5122
+ roles,
5123
+ name
5124
+ }: {
5125
+ email?: {
5126
+ id: string;
5127
+ condition: emailCondition;
5128
+ };
5129
+ roles?: string[];
5130
+ name?: string;
5131
+ }) => Promise<void>;
5132
+ /**
5133
+ *
5134
+ * Used to verify that no data is displayed when searching for a specific email.
5135
+ *
5136
+ * email (required): The email address to search for.
5137
+ *
5138
+ * @example
5139
+ *
5140
+ * await teamMembers.verifyNoDataTitle("nonexistent@example.com");
5141
+ * @endexample
5142
+ */
5143
+ verifyNoDataTitle: (email: string) => Promise<void>;
5144
+ }
4780
5145
  interface BasicUserInfo {
4781
5146
  firstName: string;
4782
5147
  lastName: string;
@@ -5110,7 +5475,86 @@ declare class ApiKeysPage {
5110
5475
  neetoPlaywrightUtilities: CustomCommands;
5111
5476
  t: TFunction;
5112
5477
  constructor(page: Page, neetoPlaywrightUtilities: CustomCommands);
5113
- private enableExpiryDate;
5478
+ protected enableExpiryDate: (expiryDate: string) => Promise<void>;
5479
+ /**
5480
+ *
5481
+ * Used to fill in the details for creating or editing an API key.
5482
+ *
5483
+ * label (required): The name for the API key.
5484
+ *
5485
+ * expiryDate (optional): The expiry date for the API key, formatted as "DD/MM/YYYY".
5486
+ *
5487
+ * @example
5488
+ *
5489
+ * await apiKeysPage.fillApiKeyDetails({
5490
+ * label: "API Key",
5491
+ * expiryDate: "08/11/2025"
5492
+ * });
5493
+ * @endexample
5494
+ */
5495
+ fillApiKeyDetails: ({
5496
+ label,
5497
+ expiryDate
5498
+ }: ApiKeyDetails) => Promise<void>;
5499
+ /**
5500
+ *
5501
+ * Used to verify the values in the API keys table.
5502
+ *
5503
+ * targetRow (required): The locator of the row where the API key should be verified.
5504
+ *
5505
+ * label (required): The name of the API key.
5506
+ *
5507
+ * date (required): The creation date of the API key, formatted as "MMM dd, yyyy".
5508
+ *
5509
+ * @example
5510
+ *
5511
+ * await apiKeysPage.verifyApiKey({
5512
+ * targetRow: page.getByRole("row"),
5513
+ * label: "API Key",
5514
+ * date: "Mar 11, 2025"
5515
+ * });
5516
+ * @endexample
5517
+ */
5518
+ verifyApiKey: ({
5519
+ targetRow,
5520
+ label,
5521
+ date
5522
+ }: VerifyApiKeyProps) => Promise<[void, void, void, void]>;
5523
+ /**
5524
+ *
5525
+ * Used to edit an existing API key.
5526
+ *
5527
+ * label (required): The new name for the API key.
5528
+ *
5529
+ * expiryDate (optional): The day of the month for the expiry date, formatted as "dd".
5530
+ *
5531
+ * @example
5532
+ *
5533
+ * await apiKeysPage.editApiKey({
5534
+ * label: "new API Key",
5535
+ * expiryDate: "20"
5536
+ * });
5537
+ * @endexample
5538
+ */
5539
+ editApiKey: ({
5540
+ label,
5541
+ expiryDate
5542
+ }: ApiKeyDetails) => Promise<void>;
5543
+ /**
5544
+ *
5545
+ * Used to delete an existing API key.
5546
+ *
5547
+ * targetRow (required): The locator of the row containing the API key to delete.
5548
+ *
5549
+ * @example
5550
+ *
5551
+ * await apiKeysPage.deleteApiKey(targetRow);
5552
+ * @endexample
5553
+ */
5554
+ deleteApiKey: (targetRow: Locator) => Promise<void>;
5555
+ }
5556
+ declare class ApiKeysPageV2 extends ApiKeysPage {
5557
+ protected enableExpiryDate: (expiryDate: string) => Promise<void>;
5114
5558
  /**
5115
5559
  *
5116
5560
  * Used to fill in the details for creating or editing an API key.
@@ -5617,6 +6061,24 @@ declare class RolesPage {
5617
6061
  adminAccessableLinks: string[];
5618
6062
  }) => Promise<void>;
5619
6063
  }
6064
+ declare class RolesPageV2 extends RolesPage {
6065
+ /**
6066
+ *
6067
+ * Used to select permissions.
6068
+ *
6069
+ * permissions (required): Array of permission names to select.
6070
+ *
6071
+ * parentPermission (optional): The parent permission name. Required when selecting nested permissions. Default is an empty string.
6072
+ *
6073
+ * hierarchyLevelOfPermissions (optional): Hierarchy level of the permissions passed in the array. Calculate the hierarchy level from permission name as 0, then category as 1 and subcategory as 2 and so on. Default is 2.
6074
+ *
6075
+ * @example
6076
+ *
6077
+ * await rolesPage.selectAndSubmitPermissions([ "Reminder of host", "Stripe standard integration", "iCloud calendar" ], "Manage all hosts settings", 2 );
6078
+ * @endexample
6079
+ */
6080
+ selectAndSubmitPermissions: (permissions: string[], parentPermission?: string, hierarchyLevelOfPermissions?: number) => Promise<void>;
6081
+ }
5620
6082
  declare class SidebarSection {
5621
6083
  page: Page;
5622
6084
  neetoPlaywrightUtilities: CustomCommands;
@@ -6539,6 +7001,12 @@ declare const PHONE_NUMBER_FORMATS: {
6539
7001
  *
6540
7002
  * noDataHelpText: Selector for no data help text.
6541
7003
  *
7004
+ * noDataTitleV2: Selector for shadcn empty state titles.
7005
+ *
7006
+ * noDataDescriptionV2: Selector for shadcn empty state descriptions.
7007
+ *
7008
+ * noDataHelpTextV2: Selector for shadcn empty state help text.
7009
+ *
6542
7010
  * backdrop: Selector for backdrops.
6543
7011
  *
6544
7012
  * menuBarHeading: Selector for menu bar headings.
@@ -6559,6 +7027,8 @@ declare const PHONE_NUMBER_FORMATS: {
6559
7027
  *
6560
7028
  * noDataPrimaryButton: Selector for no data primary buttons.
6561
7029
  *
7030
+ * noDataPrimaryButtonV2: Selector for shadcn empty state primary buttons.
7031
+ *
6562
7032
  * modalHeader: Selector for modal headers.
6563
7033
  *
6564
7034
  * nameInputError: Selector for name input errors.
@@ -6762,6 +7232,9 @@ declare const COMMON_SELECTORS: {
6762
7232
  noDataTitle: string;
6763
7233
  noDataDescription: string;
6764
7234
  noDataHelpText: string;
7235
+ noDataTitleV2: string;
7236
+ noDataDescriptionV2: string;
7237
+ noDataHelpTextV2: string;
6765
7238
  backdrop: string;
6766
7239
  menuBarHeading: string;
6767
7240
  dropdownWrapper: string;
@@ -6772,6 +7245,7 @@ declare const COMMON_SELECTORS: {
6772
7245
  labelInputError: string;
6773
7246
  urlInputError: string;
6774
7247
  noDataPrimaryButton: string;
7248
+ noDataPrimaryButtonV2: string;
6775
7249
  modalHeader: string;
6776
7250
  avatar: string;
6777
7251
  nameInputError: string;
@@ -9049,6 +9523,21 @@ declare const tableUtils: {
9049
9523
  * @endexample
9050
9524
  */
9051
9525
  verifyFreezeColumnAction: (page: Page, t: TFunction) => Promise<void>;
9526
+ /**
9527
+ *
9528
+ * Same as verifyFreezeColumnAction, but for products migrated to the shadcn DOM — works with role-based column menus and translated freeze/unfreeze labels.
9529
+ *
9530
+ * @example
9531
+ *
9532
+ * import { tableUtils } from "@neetoplaywright"
9533
+ *
9534
+ * await tableUtils.verifyFreezeColumnActionV2(
9535
+ * page,
9536
+ * t
9537
+ * );
9538
+ * @endexample
9539
+ */
9540
+ verifyFreezeColumnActionV2: (page: Page, t: TFunction) => Promise<void>;
9052
9541
  verifyReorderColumns: (page: Page) => Promise<void>;
9053
9542
  };
9054
9543
  interface EmulateNetworkConditionsParameters {
@@ -9191,6 +9680,19 @@ declare const filterUtils: {
9191
9680
  * @endexample
9192
9681
  */
9193
9682
  openFilterPane: (page: Page) => Promise<void>;
9683
+ /**
9684
+ *
9685
+ * Same as openFilterPane, but for products migrated to the shadcn DOM — asserts the neeto-filters pane heading instead of the NeetoUI pane header.
9686
+ *
9687
+ * @example
9688
+ *
9689
+ * import { Page } from "@playwright/test";
9690
+ * import { filterUtils } from "@neetoplaywright";
9691
+ *
9692
+ * await filterUtils.openFilterPaneV2(page);
9693
+ * @endexample
9694
+ */
9695
+ openFilterPaneV2: (page: Page) => Promise<void>;
9194
9696
  /**
9195
9697
  *
9196
9698
  * Clear the filters applied on a page using the clear button
@@ -9614,5 +10116,5 @@ declare class InboundEmailApis {
9614
10116
  reply: (emailParams: ReplyInboundEmailParams) => Promise<playwright_core.APIResponse | undefined>;
9615
10117
  private deliverSource;
9616
10118
  }
9617
- export { ACTIONS, ADMIN_PANEL_SELECTORS, ALL_RESOURCES, ANALYTICS_RESOURCES, API_KEYS_SELECTORS, API_ROUTES, APP_RESOURCES, AUDIT_LOGS_SELECTORS, ApiKeysApi, ApiKeysPage, AuditLogsPage, BASE_URL, CALENDAR_LABELS, CERTIFICATE_LIMIT_EXCEEDED_MESSAGE, CERTIFICATE_LIMIT_EXCEEDED_REGEXP, CHANGELOG_WIDGET_SELECTORS, CHAT_WIDGET_SELECTORS, CHAT_WIDGET_TEXTS, COLOR, COMMON_SELECTORS, COMMON_TEXTS, COMMUNITY_TEXTS, CREDENTIALS, CURRENT_TIME_RANGES, CUSTOM_DOMAIN_SELECTORS, CUSTOM_DOMAIN_SUFFIX, ColorPickerUtils, CustomCommands, CustomDomainApi, CustomDomainPage, DATE_FORMATS, DATE_PICKER_SELECTORS, DATE_RANGES, DATE_TEXTS, DEFAULT_WEBHOOKS_RESPONSE_TEXT, DESCRIPTION_EDITOR_TEXTS, EDITOR_VERIFY_TEXT_COLOR, EMBED_SELECTORS, EMOJI_LABEL, EMPTY_STORAGE_STATE, ENGAGE_TEXTS, ENVIRONMENT, EXAMPLE_URL, EXPANDED_FONT_SIZE, EXPORT_FILE_TYPES, EditorPage, EmailDeliveryUtils, EmbedBase, FILE_FORMATS, FONTS_RESOURCES, FONT_SIZE_SELECTORS, FROM_EMAIL_ENV_KEYS, GLOBAL_TRANSLATIONS_PATTERN, GOOGLE_ANALYTICS_SELECTORS, GOOGLE_CALENDAR_DATE_FORMAT, GOOGLE_LOGIN_SELECTORS, GOOGLE_LOGIN_TEXTS, GOOGLE_SHEETS_SELECTORS, GooglePage, HELP_CENTER_ROUTES, HELP_CENTER_SELECTORS, HelpAndProfilePage, INTEGRATIONS_TEXTS, INTEGRATION_SELECTORS, IPRestrictionsPage, IP_RESTRICTIONS_SELECTORS, IS_CI, IS_DEV_ENV, IS_MAILPIT_ENABLED, IS_STAGING_ENV, ImageUploader, InboundEmailApis, IntegrationBase, IpRestrictionsApi, KEYBOARD_SHORTCUTS_SELECTORS, KEYBOARD_SHORTCUT_TEST_CASES, LIST_MODIFIER_SELECTORS, LIST_MODIFIER_TAGS, LOGIN_SELECTORS, MAILPIT_BASE_URL, MAILPIT_DOMAIN_NAME, MEMBER_FORM_SELECTORS, MEMBER_SELECTORS, MEMBER_TEXTS, MERGE_TAGS_SELECTORS, MICROSOFT_LOGIN_SELECTORS, MICROSOFT_LOGIN_TEXTS, MailerUtils, MailpitApi, Member, MemberApis, MicrosoftPage, NEETO_AUTH_BASE_URL, NEETO_EDITOR_SELECTORS, NEETO_FILTERS_SELECTORS, NEETO_IMAGE_UPLOADER_SELECTORS, NEETO_ROUTES, NEETO_SEO_SELECTORS, NEETO_TEXT_MODIFIER_SELECTORS, NeetoAuthServer, NeetoChatWidget, NeetoEmailDeliveryApi, NeetoTowerApi, ONBOARDING_SELECTORS, ORGANIZATION_TEXTS, OTP_EMAIL_PATTERN, OrganizationPage, PAST_TIME_RANGES, PHONE_NUMBER_FORMATS, PLURAL, PRODUCT_ROLES_ROUTE_MAP, PROFILE_LINKS, PROFILE_SECTION_SELECTORS, PROJECT_NAMES, PROJECT_TRANSLATIONS_PATH, ROLES_SELECTORS, ROUTES, RailsEmailApiClient, RailsEmailUtils, RoleApis, RolesPage, SIGNUP_SELECTORS, SINGULAR, SLACK_DATA_QA_SELECTORS, SLACK_DEFAULT_CHANNEL, SLACK_SELECTORS, SLACK_WEB_TEXTS, STATUS_TEXTS, STORAGE_STATE, SecurityApi, SidebarSection, SlackApi, SlackPage, TABLE_SELECTORS, TAB_SELECTORS, TAGS_SELECTORS, TEAM_MEMBER_TEXTS, TEXT_MODIFIER_ROLES, TEXT_MODIFIER_SELECTORS, TEXT_MODIFIER_TAGS, THANK_YOU_SELECTORS, THEMES_SELECTORS, THEMES_TEXTS, THIRD_PARTY_RESOURCES, THIRD_PARTY_ROUTES, TIME_RANGES, TOASTR_MESSAGES, TWILIO_SELECTORS, TagsApi, TagsPage, TeamMembers, ThankYouApi, ThankYouPage, TwilioApi, USER_AGENTS, WEBHOOK_SELECTORS, WebhookSiteApi, WebhooksPage, ZAPIER_LIMIT_EXHAUSTED_MESSAGE, ZAPIER_SELECTORS, ZAPIER_TEST_EMAIL, ZAPIER_TEST_EMAIL_V2, ZAPIER_WEB_TEXTS, ZapierPage, authenticateUser, baseURLGenerator, basicHTMLContent, clearCredentials, commands, cpuThrottlingUsingCDP, createOrganizationViaRake, currencyUtils, dataQa, decodeQRCodeFromFile, definePlaywrightConfig, executeWithThrottledResources, extractSubdomainFromError, filterUtils, fixedMenuSelector, generatePhoneNumber, generatePhoneNumberDetails, generateRandomBypassEmail, generateRandomFile, generateStagingData, getByDataQA, getClipboardContent, getDirname, getFormattedPhoneNumber, getFullUrl, getGlobalUserProps, getGlobalUserState, getImagePathAndName, getIsoCodeFromPhoneCode, getListCount, globalShortcuts, grantClipboardPermissions, hexToRGB, hexToRGBA, i18nFixture, imageRegex, initializeCredentials, initializeTestData, initializeTotp, isGithubIssueOpen, isStagingOrganizationExpired, joinHyphenCase, joinString, login, mailpitDomainName, networkConditions, networkThrottlingUsingCDP, optionSelector, readFileAsBrowserFile, readFileSyncIfExists, removeCredentialFile, serializeFileForBrowser, shouldSkipCustomDomainSetup, shouldSkipSetupAndTeardown, simulateClickWithDelay, simulateTypingWithDelay, skipTest, squish, _default as stealthTest, tableUtils, toCamelCase, updateCredentials, warmup, withCookieCache, writeDataToFile };
10119
+ export { ACTIONS, ADMIN_PANEL_SELECTORS, ALL_RESOURCES, ANALYTICS_RESOURCES, API_KEYS_SELECTORS, API_ROUTES, APP_RESOURCES, AUDIT_LOGS_SELECTORS, ApiKeysApi, ApiKeysPage, ApiKeysPageV2, AuditLogsPage, BASE_URL, CALENDAR_LABELS, CERTIFICATE_LIMIT_EXCEEDED_MESSAGE, CERTIFICATE_LIMIT_EXCEEDED_REGEXP, CHANGELOG_WIDGET_SELECTORS, CHAT_WIDGET_SELECTORS, CHAT_WIDGET_TEXTS, COLOR, COMMON_SELECTORS, COMMON_TEXTS, COMMUNITY_TEXTS, CREDENTIALS, CURRENT_TIME_RANGES, CUSTOM_DOMAIN_SELECTORS, CUSTOM_DOMAIN_SUFFIX, ColorPickerUtils, CustomCommands, CustomCommandsV2, CustomDomainApi, CustomDomainPage, DATE_FORMATS, DATE_PICKER_SELECTORS, DATE_RANGES, DATE_TEXTS, DEFAULT_WEBHOOKS_RESPONSE_TEXT, DESCRIPTION_EDITOR_TEXTS, EDITOR_VERIFY_TEXT_COLOR, EMBED_SELECTORS, EMOJI_LABEL, EMPTY_STORAGE_STATE, ENGAGE_TEXTS, ENVIRONMENT, EXAMPLE_URL, EXPANDED_FONT_SIZE, EXPORT_FILE_TYPES, EditorPage, EmailDeliveryUtils, EmbedBase, FILE_FORMATS, FONTS_RESOURCES, FONT_SIZE_SELECTORS, FROM_EMAIL_ENV_KEYS, GLOBAL_TRANSLATIONS_PATTERN, GOOGLE_ANALYTICS_SELECTORS, GOOGLE_CALENDAR_DATE_FORMAT, GOOGLE_LOGIN_SELECTORS, GOOGLE_LOGIN_TEXTS, GOOGLE_SHEETS_SELECTORS, GooglePage, HELP_CENTER_ROUTES, HELP_CENTER_SELECTORS, HelpAndProfilePage, HelpAndProfilePageV2, INTEGRATIONS_TEXTS, INTEGRATION_SELECTORS, IPRestrictionsPage, IP_RESTRICTIONS_SELECTORS, IS_CI, IS_DEV_ENV, IS_MAILPIT_ENABLED, IS_STAGING_ENV, ImageUploader, InboundEmailApis, IntegrationBase, IpRestrictionsApi, KEYBOARD_SHORTCUTS_SELECTORS, KEYBOARD_SHORTCUT_TEST_CASES, LIST_MODIFIER_SELECTORS, LIST_MODIFIER_TAGS, LOGIN_SELECTORS, MAILPIT_BASE_URL, MAILPIT_DOMAIN_NAME, MEMBER_FORM_SELECTORS, MEMBER_SELECTORS, MEMBER_TEXTS, MERGE_TAGS_SELECTORS, MICROSOFT_LOGIN_SELECTORS, MICROSOFT_LOGIN_TEXTS, MailerUtils, MailpitApi, Member, MemberApis, MicrosoftPage, NEETO_AUTH_BASE_URL, NEETO_EDITOR_SELECTORS, NEETO_FILTERS_SELECTORS, NEETO_IMAGE_UPLOADER_SELECTORS, NEETO_ROUTES, NEETO_SEO_SELECTORS, NEETO_TEXT_MODIFIER_SELECTORS, NeetoAuthServer, NeetoChatWidget, NeetoEmailDeliveryApi, NeetoTowerApi, ONBOARDING_SELECTORS, ORGANIZATION_TEXTS, OTP_EMAIL_PATTERN, OrganizationPage, PAST_TIME_RANGES, PHONE_NUMBER_FORMATS, PLURAL, PRODUCT_ROLES_ROUTE_MAP, PROFILE_LINKS, PROFILE_SECTION_SELECTORS, PROJECT_NAMES, PROJECT_TRANSLATIONS_PATH, ROLES_SELECTORS, ROUTES, RailsEmailApiClient, RailsEmailUtils, RoleApis, RolesPage, RolesPageV2, SIGNUP_SELECTORS, SINGULAR, SLACK_DATA_QA_SELECTORS, SLACK_DEFAULT_CHANNEL, SLACK_SELECTORS, SLACK_WEB_TEXTS, STATUS_TEXTS, STORAGE_STATE, SecurityApi, SidebarSection, SlackApi, SlackPage, TABLE_SELECTORS, TAB_SELECTORS, TAGS_SELECTORS, TEAM_MEMBER_TEXTS, TEXT_MODIFIER_ROLES, TEXT_MODIFIER_SELECTORS, TEXT_MODIFIER_TAGS, THANK_YOU_SELECTORS, THEMES_SELECTORS, THEMES_TEXTS, THIRD_PARTY_RESOURCES, THIRD_PARTY_ROUTES, TIME_RANGES, TOASTR_MESSAGES, TWILIO_SELECTORS, TagsApi, TagsPage, TeamMembers, TeamMembersV2, ThankYouApi, ThankYouPage, TwilioApi, USER_AGENTS, WEBHOOK_SELECTORS, WebhookSiteApi, WebhooksPage, ZAPIER_LIMIT_EXHAUSTED_MESSAGE, ZAPIER_SELECTORS, ZAPIER_TEST_EMAIL, ZAPIER_TEST_EMAIL_V2, ZAPIER_WEB_TEXTS, ZapierPage, authenticateUser, baseURLGenerator, basicHTMLContent, clearCredentials, commands, cpuThrottlingUsingCDP, createOrganizationViaRake, currencyUtils, dataQa, decodeQRCodeFromFile, definePlaywrightConfig, executeWithThrottledResources, extractSubdomainFromError, filterUtils, fixedMenuSelector, generatePhoneNumber, generatePhoneNumberDetails, generateRandomBypassEmail, generateRandomFile, generateStagingData, getByDataQA, getClipboardContent, getDirname, getFormattedPhoneNumber, getFullUrl, getGlobalUserProps, getGlobalUserState, getImagePathAndName, getIsoCodeFromPhoneCode, getListCount, globalShortcuts, grantClipboardPermissions, hexToRGB, hexToRGBA, i18nFixture, imageRegex, initializeCredentials, initializeTestData, initializeTotp, isGithubIssueOpen, isStagingOrganizationExpired, joinHyphenCase, joinString, login, mailpitDomainName, networkConditions, networkThrottlingUsingCDP, optionSelector, readFileAsBrowserFile, readFileSyncIfExists, removeCredentialFile, serializeFileForBrowser, shouldSkipCustomDomainSetup, shouldSkipSetupAndTeardown, simulateClickWithDelay, simulateTypingWithDelay, skipTest, squish, _default as stealthTest, tableUtils, toCamelCase, updateCredentials, warmup, withCookieCache, writeDataToFile };
9618
10120
  export type { BaseThemeStyle, BaseThemeStyleType, ColumnMenuAction, CountryProps, CustomFixture, EmailDeliveryConnectParams, EmailDeliveryProvider, EmailDeliveryVerifiedEmail, EmailDeliveryVerifyEmailParams, EmailDeliveryVerifyEmailResponse, EmailMatchCriteria, InboundEmailParams, IntroPageThemeStyle, IntroPageThemeStyleType, OAuthEmailDeliveryProvider, ProjectName, ReplyInboundEmailParams, ThemeCategory, ValueOf };