@bigbinary/neeto-team-members-frontend 2.4.1 → 2.4.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.esm.js CHANGED
@@ -4,9 +4,9 @@ import { useFormikContext, Formik, Form } from 'formik';
4
4
  import { Typography, Button, Table as Table$1, Modal, Toastr, Tooltip, Checkbox, Pane, Dropdown, Alert, Input as Input$1, PageLoader, Avatar, Tag } from '@bigbinary/neetoui';
5
5
  import { Download, File, LeftArrow, MenuHorizontal, Up, Down, Search } from '@bigbinary/neeto-icons';
6
6
  import classnames from 'classnames';
7
- import { EmailInput, Input, Textarea, Select } from '@bigbinary/neetoui/formik';
7
+ import { EmailInput, Input, Textarea, Radio } from '@bigbinary/neetoui/formik';
8
8
  import axios from 'axios';
9
- import { prop, modifyPath, prepend, assocPath, findIndex, propEq, dissocPath, groupBy, keys, map, identical, modify, includes, fromPairs, toPairs, filter, isEmpty, clamp, toLower, mergeLeft, isNil, pluck, head, assoc } from 'ramda';
9
+ import { prop, modifyPath, prepend, assocPath, findIndex, propEq, dissocPath, groupBy, keys, map, identical, modify, includes, fromPairs, toPairs, filter, isEmpty, clamp, toLower, mergeLeft, isNil, pluck, head, reverse, assoc } from 'ramda';
10
10
  import { Header as Header$2, Container, MenuBar, SubHeader as SubHeader$1 } from '@bigbinary/neetoui/layouts';
11
11
  import * as yup from 'yup';
12
12
  import { object, string } from 'yup';
@@ -4124,6 +4124,7 @@ var tooltips$1 = {
4124
4124
  var validations$1 = {
4125
4125
  enterRoleName: "Please enter a valid role name.",
4126
4126
  filterInvalidEmails: "Click here to remove invalid emails.",
4127
+ limitExceeded: "You have exceeded the limit of {{limit}} characters for the {{what}}.",
4127
4128
  minOneEmail: "Please enter at least one email address.",
4128
4129
  roleRequired: "Please select a role.",
4129
4130
  validEmail: "Please ensure that all email addresses are valid."
@@ -4224,7 +4225,9 @@ var tooltips = {
4224
4225
  noPermissionToRemoveRoles: "Veuillez demander à l'administrateur de vous autoriser à supprimer des rôles."
4225
4226
  };
4226
4227
  var validations = {
4228
+ enterRoleName: "Veuillez entrer le nom du rôle",
4227
4229
  filterInvalidEmails: "Cliquez ici pour supprimer les e-mails invalides.",
4230
+ limitExceeded: "Vous avez dépassé la limite de {{limit}} caractères pour le {{what}}.",
4228
4231
  minOneEmail: "Veuillez saisir au moins une adresse e-mail.",
4229
4232
  roleRequired: "Veuillez sélectionner un rôle.",
4230
4233
  validEmail: "Veuillez vous assurer que toutes les adresses e-mail sont valides."
@@ -4289,6 +4292,12 @@ const getScrollBarWidth = () => {
4289
4292
  return w1 - w2;
4290
4293
  };
4291
4294
  const noop$2 = () => {};
4295
+ const slugify = string => string.toString().toLowerCase().replace(/\s+/g, "-") // Replace spaces with -
4296
+ .replace(/&/g, "-and-") // Replace & with 'and'
4297
+ .replace(/[^\w-]+/g, "") // Remove all non-word characters
4298
+ .replace(/--+/g, "-") // Replace multiple - with single -
4299
+ .replace(/^-+/, "") // Trim - from start of text
4300
+ .replace(/-+$/, ""); // Trim - from end of text
4292
4301
 
4293
4302
  function _extends() {
4294
4303
  _extends = Object.assign ? Object.assign.bind() : function (target) {
@@ -8238,6 +8247,8 @@ function pickerOptionsFromAccept(accept) {
8238
8247
  return _objectSpread$9(_objectSpread$9({}, agg), {}, _defineProperty$1({}, mimeType, ext));
8239
8248
  }, {});
8240
8249
  return [{
8250
+ // description is required due to https://crbug.com/1264708
8251
+ description: "Files",
8241
8252
  accept: acceptForPicker
8242
8253
  }];
8243
8254
  }
@@ -11167,14 +11178,15 @@ var dist = {exports: {}};
11167
11178
  } (dist));
11168
11179
 
11169
11180
  const renderSearchProps = (searchString, setSearchString) => ({
11170
- placeholder: instance.t("common.search_", {
11171
- what: instance.t("common.role", PLURAL).toLocaleLowerCase()
11172
- }),
11173
- value: searchString,
11181
+ "data-cy": "ntm-search-roles-input",
11174
11182
  onChange: _ref => {
11175
11183
  let value = _ref.target.value;
11176
11184
  return setSearchString(value);
11177
- }
11185
+ },
11186
+ placeholder: instance.t("common.search_", {
11187
+ what: instance.t("common.role", PLURAL).toLocaleLowerCase()
11188
+ }),
11189
+ value: searchString
11178
11190
  });
11179
11191
  const renderBreadcrumbs = (breadcrumbs, membersPageUrl) => breadcrumbs !== null && breadcrumbs !== void 0 ? breadcrumbs : [{
11180
11192
  text: instance.t("metaNames.member", PLURAL),
@@ -11192,12 +11204,12 @@ const AddRoleButton = _ref => {
11192
11204
  disabled: (_permissions$create = permissions === null || permissions === void 0 ? void 0 : permissions.create) !== null && _permissions$create !== void 0 ? _permissions$create : hasPermission(MANAGE_MEMBER_PERMISSIONS),
11193
11205
  position: "bottom"
11194
11206
  }, /*#__PURE__*/React.createElement("span", null, /*#__PURE__*/React.createElement(Button, {
11207
+ "data-cy": "ntm-add-role-button",
11208
+ disabled: !((_permissions$create2 = permissions === null || permissions === void 0 ? void 0 : permissions.create) !== null && _permissions$create2 !== void 0 ? _permissions$create2 : hasPermission(MANAGE_MEMBER_PERMISSIONS)),
11195
11209
  label: t("common.add_", {
11196
11210
  what: t("common.role", SINGULAR).toLocaleLowerCase()
11197
11211
  }),
11198
- onClick: onClick,
11199
- disabled: !((_permissions$create2 = permissions === null || permissions === void 0 ? void 0 : permissions.create) !== null && _permissions$create2 !== void 0 ? _permissions$create2 : hasPermission(MANAGE_MEMBER_PERMISSIONS)),
11200
- "data-cy": "new-role-button"
11212
+ onClick: onClick
11201
11213
  })));
11202
11214
  };
11203
11215
 
@@ -11238,10 +11250,13 @@ const ADD_ROLE_FORM_INITIAL_VALUES = {
11238
11250
  permissionIds: []
11239
11251
  };
11240
11252
  const ADD_ROLE_FORM_VALIDATION_SCHEMA = object({
11241
- name: string().trim().required(instance.t("validations.enterRoleName")),
11253
+ name: string().trim().max(40, instance.t("validations.limitExceeded", {
11254
+ what: instance.t("common.name").toLocaleLowerCase(),
11255
+ limit: 40
11256
+ })).required(instance.t("validations.enterRoleName")),
11242
11257
  description: string().trim().max(255, instance.t("validations.limitExceeded", {
11243
- what: instance.t("common.description"),
11244
- count: 255
11258
+ what: instance.t("common.description").toLocaleLowerCase(),
11259
+ limit: 255
11245
11260
  }))
11246
11261
  });
11247
11262
 
@@ -11273,10 +11288,11 @@ const Permissions = _ref => {
11273
11288
  className: "ntm-roles-permission",
11274
11289
  key: category
11275
11290
  }, /*#__PURE__*/React.createElement(Typography, {
11276
- style: "h5",
11277
- weight: "bold",
11291
+ className: "ntm-roles-permission__heading",
11292
+ "data-cy": "ntm-roles-permission-category-title",
11278
11293
  lineHeight: "normal",
11279
- className: "ntm-roles-permission__heading"
11294
+ style: "h5",
11295
+ weight: "bold"
11280
11296
  }, category), groupedPermissions[category].map(_ref2 => {
11281
11297
  let id = _ref2.id,
11282
11298
  description = _ref2.description;
@@ -11285,12 +11301,14 @@ const Permissions = _ref => {
11285
11301
  onClick: () => handleTogglePermission(id),
11286
11302
  className: "ntm-roles-permission__card"
11287
11303
  }, /*#__PURE__*/React.createElement(Typography, {
11288
- style: "body2",
11304
+ "data-cy": "ntm-roles-permission-name",
11289
11305
  className: "ntm-roles-permission__card--description",
11290
- lineHeight: "normal"
11306
+ lineHeight: "normal",
11307
+ style: "body2"
11291
11308
  }, description), /*#__PURE__*/React.createElement("div", {
11292
11309
  className: "ntm-roles-permission__card--checkbox"
11293
11310
  }, /*#__PURE__*/React.createElement(Checkbox, {
11311
+ "data-cy": "ntm-roles-permission-checkbox",
11294
11312
  checked: permissionIds.some(pid => pid === id),
11295
11313
  onChange: () => handleTogglePermission(id)
11296
11314
  })));
@@ -11322,6 +11340,7 @@ const New = _ref => {
11322
11340
  isOpen: isOpen,
11323
11341
  onClose: onClose
11324
11342
  }, /*#__PURE__*/React.createElement(Pane.Header, null, /*#__PURE__*/React.createElement(Typography, {
11343
+ "data-cy": "ntm-add-role-title",
11325
11344
  style: "h2"
11326
11345
  }, t("common.add_", {
11327
11346
  what: t("common.role", SINGULAR).toLocaleLowerCase()
@@ -11341,15 +11360,18 @@ const New = _ref => {
11341
11360
  className: "ntm-roles-pane__body-wrapper"
11342
11361
  }, /*#__PURE__*/React.createElement(Input, {
11343
11362
  required: true,
11363
+ "data-cy": "ntm-add-role-name-text-field",
11364
+ label: t("common.name"),
11344
11365
  maxLength: 40,
11345
11366
  name: "name",
11346
- label: t("common.name"),
11347
11367
  placeholder: t("placeholders.enter_", {
11348
11368
  what: t("common.name").toLocaleLowerCase()
11349
11369
  })
11350
11370
  }), /*#__PURE__*/React.createElement(Textarea, {
11351
- name: "description",
11371
+ "data-cy": "ntm-add-role-description-text-field",
11352
11372
  label: t("common.description"),
11373
+ maxLength: 255,
11374
+ name: "description",
11353
11375
  placeholder: t("placeholders.enter_", {
11354
11376
  what: t("common.description").toLocaleLowerCase()
11355
11377
  })
@@ -11358,14 +11380,16 @@ const New = _ref => {
11358
11380
  }))), /*#__PURE__*/React.createElement(Pane.Footer, null, /*#__PURE__*/React.createElement("div", {
11359
11381
  className: "ntm-roles-pane__footer"
11360
11382
  }, /*#__PURE__*/React.createElement(Button, {
11361
- label: t("buttons.saveChanges"),
11383
+ "data-cy": "ntm-add-role-submit-button",
11362
11384
  disabled: !dirty || isSubmitting,
11363
- type: "submit",
11364
- loading: isSubmitting
11385
+ label: t("buttons.saveChanges"),
11386
+ loading: isSubmitting,
11387
+ type: "submit"
11365
11388
  }), /*#__PURE__*/React.createElement(Button, {
11366
- style: "text",
11389
+ "data-cy": "ntm-add-role-cancel-button",
11367
11390
  label: t("buttons.cancel"),
11368
- onClick: onClose
11391
+ onClick: onClose,
11392
+ style: "text"
11369
11393
  }))));
11370
11394
  }));
11371
11395
  };
@@ -11471,16 +11495,17 @@ const EmptyState = _ref => {
11471
11495
  _ref$actionBlock = _ref.actionBlock,
11472
11496
  actionBlock = _ref$actionBlock === void 0 ? null : _ref$actionBlock;
11473
11497
  return /*#__PURE__*/React.createElement("div", {
11474
- "data-cy": "empty-state-container",
11475
- className: classnames(["ntm-empty-state", className])
11498
+ className: classnames(["ntm-empty-state", className]),
11499
+ "data-cy": "ntm-empty-state-container"
11476
11500
  }, /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement("div", {
11477
- "data-cy": "empty-state-image-container",
11478
- className: "ntm-empty-state__image"
11501
+ className: "ntm-empty-state__image",
11502
+ "data-cy": "ntm-empty-state-image-container"
11479
11503
  }, /*#__PURE__*/React.createElement(EmptyStateSVG, null)), /*#__PURE__*/React.createElement(Typography, {
11504
+ className: classnames([!!actionBlock && "ntm-empty-state__title--with-action-block"]),
11480
11505
  component: "h2",
11506
+ "data-cy": "ntm-empty-state-title",
11481
11507
  style: "h2",
11482
- weight: "semibold",
11483
- className: classnames([!!actionBlock && "ntm-empty-state__title--with-action-block"])
11508
+ weight: "semibold"
11484
11509
  }, title), !!actionBlock && /*#__PURE__*/React.createElement("div", {
11485
11510
  className: "ntm-empty-state__action-block"
11486
11511
  }, actionBlock)));
@@ -11532,17 +11557,15 @@ const Row = _ref => {
11532
11557
  }, /*#__PURE__*/React.createElement("div", {
11533
11558
  className: "ntm-roles-table-cell__checkbox-wrapper"
11534
11559
  }, /*#__PURE__*/React.createElement(Checkbox, {
11560
+ checked: isCheckboxChecked(role),
11535
11561
  className: "ntm-roles-table-cell__checkbox",
11562
+ "data-cy": "ntm-roles-table-permission-checkbox",
11536
11563
  disabled: identical(role.name, "Admin") || !((_config$permissions$u2 = config === null || config === void 0 ? void 0 : (_config$permissions2 = config.permissions) === null || _config$permissions2 === void 0 ? void 0 : _config$permissions2.update) !== null && _config$permissions$u2 !== void 0 ? _config$permissions$u2 : DEFAULT_PERMISSION),
11537
- checked: isCheckboxChecked(role),
11538
11564
  onChange: _ref2 => {
11539
11565
  let checked = _ref2.target.checked;
11540
11566
  return handleSubmit(role, checked);
11541
11567
  }
11542
- }))), /*#__PURE__*/React.createElement(Typography, {
11543
- style: "body2",
11544
- lineHeight: "normal"
11545
- }, permission === null || permission === void 0 ? void 0 : permission.description));
11568
+ }))));
11546
11569
  }));
11547
11570
  };
11548
11571
 
@@ -11578,15 +11601,17 @@ const TableHeader = _ref => {
11578
11601
  }, /*#__PURE__*/React.createElement("div", {
11579
11602
  className: "ntm-roles-table-header-cell__container"
11580
11603
  }, /*#__PURE__*/React.createElement(Typography, {
11581
- style: "h4",
11582
- weight: "semibold",
11604
+ className: "ntm-roles-table-header__role-name",
11605
+ "data-cy": "ntm-roles-table-header-role-title",
11583
11606
  lineHeight: "normal",
11584
- className: "ntm-roles-table-header__role-name"
11607
+ style: "h4",
11608
+ weight: "semibold"
11585
11609
  }, role.name), !hasSystemRole && /*#__PURE__*/React.createElement(Dropdown, {
11610
+ autoWidth: true,
11586
11611
  buttonProps: {
11587
- className: "ntm-roles-table-header__dropdown"
11612
+ className: "ntm-roles-table-header__dropdown",
11613
+ "data-cy": "ntm-roles-table-header-role-dropdown-button"
11588
11614
  },
11589
- autoWidth: true,
11590
11615
  buttonStyle: "text",
11591
11616
  icon: MenuHorizontal
11592
11617
  }, /*#__PURE__*/React.createElement(Menu, null, /*#__PURE__*/React.createElement(Tooltip, {
@@ -11594,27 +11619,29 @@ const TableHeader = _ref => {
11594
11619
  disabled: (_config$permissions$u = config === null || config === void 0 ? void 0 : (_config$permissions = config.permissions) === null || _config$permissions === void 0 ? void 0 : _config$permissions.update) !== null && _config$permissions$u !== void 0 ? _config$permissions$u : DEFAULT_PERMISSION,
11595
11620
  position: "left"
11596
11621
  }, /*#__PURE__*/React.createElement("span", null, /*#__PURE__*/React.createElement(MenuItem.Button, {
11597
- size: "small",
11622
+ className: "ntm-dropdown__button",
11623
+ disabled: !((_config$permissions$u2 = config === null || config === void 0 ? void 0 : (_config$permissions2 = config.permissions) === null || _config$permissions2 === void 0 ? void 0 : _config$permissions2.update) !== null && _config$permissions$u2 !== void 0 ? _config$permissions$u2 : DEFAULT_PERMISSION),
11624
+ "data-cy": "ntm-roles-table-edit-role-button",
11598
11625
  onClick: () => setManageRole({
11599
11626
  isEdit: true,
11600
11627
  selectedRole: role
11601
11628
  }),
11602
- disabled: !((_config$permissions$u2 = config === null || config === void 0 ? void 0 : (_config$permissions2 = config.permissions) === null || _config$permissions2 === void 0 ? void 0 : _config$permissions2.update) !== null && _config$permissions$u2 !== void 0 ? _config$permissions$u2 : DEFAULT_PERMISSION),
11603
- style: "text",
11604
- className: "ntm-dropdown__button"
11629
+ size: "small",
11630
+ style: "text"
11605
11631
  }, t("common.edit")))), /*#__PURE__*/React.createElement(Tooltip, {
11606
11632
  content: t("tooltips.noPermissionToRemoveRoles"),
11607
11633
  disabled: (_config$permissions$d = config === null || config === void 0 ? void 0 : (_config$permissions3 = config.permissions) === null || _config$permissions3 === void 0 ? void 0 : _config$permissions3.delete) !== null && _config$permissions$d !== void 0 ? _config$permissions$d : DEFAULT_PERMISSION,
11608
11634
  position: "left"
11609
11635
  }, /*#__PURE__*/React.createElement("span", null, /*#__PURE__*/React.createElement(MenuItem.Button, {
11610
- size: "small",
11636
+ className: "ntm-dropdown__button",
11637
+ "data-cy": "ntm-roles-table-delete-role-button",
11638
+ disabled: !((_config$permissions$d2 = config === null || config === void 0 ? void 0 : (_config$permissions4 = config.permissions) === null || _config$permissions4 === void 0 ? void 0 : _config$permissions4.delete) !== null && _config$permissions$d2 !== void 0 ? _config$permissions$d2 : DEFAULT_PERMISSION),
11611
11639
  onClick: () => setManageRole({
11612
11640
  isDelete: true,
11613
11641
  selectedRole: role
11614
11642
  }),
11615
- disabled: !((_config$permissions$d2 = config === null || config === void 0 ? void 0 : (_config$permissions4 = config.permissions) === null || _config$permissions4 === void 0 ? void 0 : _config$permissions4.delete) !== null && _config$permissions$d2 !== void 0 ? _config$permissions$d2 : DEFAULT_PERMISSION),
11616
- style: "danger",
11617
- className: "ntm-dropdown__button"
11643
+ size: "small",
11644
+ style: "danger"
11618
11645
  }, t("common.delete"))))))));
11619
11646
  })));
11620
11647
  };
@@ -11698,6 +11725,7 @@ const Edit = _ref => {
11698
11725
  return /*#__PURE__*/React.createElement(Form, {
11699
11726
  noValidate: true
11700
11727
  }, /*#__PURE__*/React.createElement(Modal.Header, null, /*#__PURE__*/React.createElement(Typography, {
11728
+ "data-cy": "ntm-update-role-title",
11701
11729
  style: "h2"
11702
11730
  }, t("common.update_", {
11703
11731
  what: t("common.role", SINGULAR).toLocaleLowerCase()
@@ -11705,25 +11733,30 @@ const Edit = _ref => {
11705
11733
  className: "ntm-roles-modal__body"
11706
11734
  }, /*#__PURE__*/React.createElement(Input, {
11707
11735
  required: true,
11708
- name: "name",
11736
+ "data-cy": "ntm-update-role-name-text-field",
11709
11737
  label: t("common.name"),
11710
- placeholder: t("placeholders.enterRoleName"),
11711
- maxLength: 40
11738
+ maxLength: 40,
11739
+ name: "name",
11740
+ placeholder: t("placeholders.enterRoleName")
11712
11741
  }), /*#__PURE__*/React.createElement(Textarea, {
11713
- name: "description",
11742
+ "data-cy": "ntm-update-role-description-text-field",
11714
11743
  label: t("common.description"),
11744
+ maxLength: 255,
11745
+ name: "description",
11715
11746
  placeholder: t("placeholders.enterDescription")
11716
11747
  }))), /*#__PURE__*/React.createElement(Modal.Footer, null, /*#__PURE__*/React.createElement("div", {
11717
11748
  className: "ntm-roles-modal__footer"
11718
11749
  }, /*#__PURE__*/React.createElement(Button, {
11719
- type: "submit",
11750
+ "data-cy": "ntm-update-role-submit-button",
11720
11751
  disabled: !dirty || isSubmitting,
11721
11752
  label: t("buttons.saveChanges"),
11722
- loading: isSubmitting
11753
+ loading: isSubmitting,
11754
+ type: "submit"
11723
11755
  }), /*#__PURE__*/React.createElement(Button, {
11724
- style: "text",
11756
+ "data-cy": "ntm-update-role-cancel-button",
11725
11757
  label: t("buttons.cancel"),
11726
- onClick: onClose
11758
+ onClick: onClose,
11759
+ style: "text"
11727
11760
  }))));
11728
11761
  }));
11729
11762
  };
@@ -11785,6 +11818,7 @@ const renderDescription = permissions => permissions === null || permissions ===
11785
11818
  key: id,
11786
11819
  className: "ntm-roles-table-sidebar__list-item"
11787
11820
  }, /*#__PURE__*/React.createElement(Typography, {
11821
+ "data-cy": "ntm-permission-category-description",
11788
11822
  style: "body2",
11789
11823
  lineHeight: "normal"
11790
11824
  }, description));
@@ -11801,15 +11835,17 @@ const ToggleDropdown = _ref => {
11801
11835
  let isVisible = _ref.isVisible,
11802
11836
  onClick = _ref.onClick;
11803
11837
  return isVisible ? /*#__PURE__*/React.createElement(Up, {
11804
- size: 16,
11805
- strokeWidth: 2,
11838
+ "data-cy": "ntm-permission-category-hide-button",
11806
11839
  className: "ntm-roles-table-sidebar__drop-down-button",
11807
- onClick: onClick
11808
- }) : /*#__PURE__*/React.createElement(Down, {
11840
+ onClick: onClick,
11809
11841
  size: 16,
11810
- strokeWidth: 2,
11842
+ strokeWidth: 2
11843
+ }) : /*#__PURE__*/React.createElement(Down, {
11844
+ "data-cy": "ntm-permission-category-show-button",
11811
11845
  className: "ntm-roles-table-sidebar__drop-down-button",
11812
- onClick: onClick
11846
+ onClick: onClick,
11847
+ size: 16,
11848
+ strokeWidth: 2
11813
11849
  });
11814
11850
  };
11815
11851
 
@@ -11829,16 +11865,17 @@ const Sidebar = _ref => {
11829
11865
  className: "ntm-roles-table-sidebar__search",
11830
11866
  style: searchWrapperStyle
11831
11867
  }, /*#__PURE__*/React.createElement(Input$1, {
11832
- type: "search",
11833
- placeholder: t("common.search_", {
11834
- what: t("common.permission", PLURAL).toLocaleLowerCase()
11835
- }),
11836
- value: searchTerm,
11868
+ "data-cy": "ntm-search-permissions-input",
11837
11869
  onChange: _ref2 => {
11838
11870
  let value = _ref2.target.value;
11839
11871
  return setSearchTerm(value);
11840
11872
  },
11841
- prefix: /*#__PURE__*/React.createElement(Search, null)
11873
+ placeholder: t("common.search_", {
11874
+ what: t("common.permission", PLURAL).toLocaleLowerCase()
11875
+ }),
11876
+ prefix: /*#__PURE__*/React.createElement(Search, null),
11877
+ type: "search",
11878
+ value: searchTerm
11842
11879
  })), /*#__PURE__*/React.createElement(dist.exports.ScrollSyncPane, {
11843
11880
  group: "vertical"
11844
11881
  }, /*#__PURE__*/React.createElement("div", {
@@ -11851,9 +11888,10 @@ const Sidebar = _ref => {
11851
11888
  }, /*#__PURE__*/React.createElement("div", {
11852
11889
  className: "ntm-roles-table-sidebar__list-item ntm-roles-table-sidebar__list-item--highlighted"
11853
11890
  }, /*#__PURE__*/React.createElement(Typography, {
11891
+ "data-cy": "ntm-permission-category-title",
11892
+ lineHeight: "normal",
11854
11893
  style: "h4",
11855
- weight: "semibold",
11856
- lineHeight: "normal"
11894
+ weight: "semibold"
11857
11895
  }, category), /*#__PURE__*/React.createElement(ToggleDropdown, {
11858
11896
  isVisible: isPermissionsVisible,
11859
11897
  onClick: () => toggleDropdown(category)
@@ -12060,10 +12098,11 @@ const Header = _ref => {
12060
12098
  disabled: (_permissions$create = permissions === null || permissions === void 0 ? void 0 : permissions.create) !== null && _permissions$create !== void 0 ? _permissions$create : hasPermission(MANAGE_MEMBER_PERMISSIONS),
12061
12099
  position: "bottom"
12062
12100
  }, /*#__PURE__*/React.createElement("span", null, /*#__PURE__*/React.createElement(Button, {
12101
+ "data-cy": "ntm-add-member-button",
12102
+ disabled: !((_permissions$create2 = permissions === null || permissions === void 0 ? void 0 : permissions.create) !== null && _permissions$create2 !== void 0 ? _permissions$create2 : hasPermission(MANAGE_MEMBER_PERMISSIONS)),
12063
12103
  label: instance.t("common.add_", {
12064
12104
  what: instance.t(metaName, SINGULAR).toLocaleLowerCase()
12065
12105
  }),
12066
- disabled: !((_permissions$create2 = permissions === null || permissions === void 0 ? void 0 : permissions.create) !== null && _permissions$create2 !== void 0 ? _permissions$create2 : hasPermission(MANAGE_MEMBER_PERMISSIONS)),
12067
12106
  onClick: onClick
12068
12107
  })));
12069
12108
  };
@@ -12072,8 +12111,9 @@ const Left = _ref => {
12072
12111
  let metaName = _ref.metaName,
12073
12112
  count = _ref.count;
12074
12113
  return /*#__PURE__*/React.createElement(Typography, {
12075
- style: "h4",
12076
- component: "h4"
12114
+ "data-cy": "ntm-filtered-members-count",
12115
+ component: "h4",
12116
+ style: "h4"
12077
12117
  }, count, " ", instance.t(metaName, {
12078
12118
  count
12079
12119
  }).toLocaleLowerCase());
@@ -12088,11 +12128,12 @@ const Right = _ref2 => {
12088
12128
  const permissions = window.globalProps.permissions;
12089
12129
  const hasRequiredPermissions = permissions && hasPermission(MANAGE_MEMBER_PERMISSIONS);
12090
12130
  return isVisible && hasRequiredPermissions ? /*#__PURE__*/React.createElement(Button, _extends({
12091
- size: "small",
12092
- style: "secondary",
12131
+ "data-cy": "ntm-manage-roles-button",
12093
12132
  label: instance.t("common.manage_", {
12094
12133
  what: instance.t("common.role", PLURAL).toLocaleLowerCase()
12095
- })
12134
+ }),
12135
+ size: "small",
12136
+ style: "secondary"
12096
12137
  }, rolesButtonProps)) : null;
12097
12138
  };
12098
12139
  const SubHeader = {
@@ -12124,6 +12165,7 @@ const DEFAULT_MEMBER_FILTER = MEMBER_FILTER.ACTIVE.value;
12124
12165
  const DEFAULT_PAGE_NUMBER = 1;
12125
12166
  const DEFAULT_PAGE_SIZE = 10;
12126
12167
  const DROPDOWN_BUTTON_PROPS = {
12168
+ "data-cy": "ntm-members-table-row-dropdown-button",
12127
12169
  size: "medium"
12128
12170
  };
12129
12171
  const DEFAULT_IS_OPEN_VALUES = {
@@ -12155,9 +12197,10 @@ const renderNameColumn = (_ref, diplayStatusTag) => {
12155
12197
  },
12156
12198
  size: "medium"
12157
12199
  }), displayName, diplayStatusTag && /*#__PURE__*/React.createElement(Tag, {
12158
- type: "outline",
12200
+ "data-cy": "ntm-member-status-tag",
12201
+ label: active ? MEMBER_FILTER.ACTIVE.label : MEMBER_FILTER.DEACTIVATED.label,
12159
12202
  style: active ? "primary" : "secondary",
12160
- label: active ? MEMBER_FILTER.ACTIVE.label : MEMBER_FILTER.DEACTIVATED.label
12203
+ type: "outline"
12161
12204
  }));
12162
12205
  };
12163
12206
  const isDropDownButtonDisabled = permissions => {
@@ -12187,23 +12230,25 @@ const renderDropdownButton = (_ref2, handleUpdateStatus, handleUpdateRole, permi
12187
12230
  disabled: active,
12188
12231
  position: "top"
12189
12232
  }, /*#__PURE__*/React.createElement("span", null, /*#__PURE__*/React.createElement(MenuItem.Button, {
12190
- size: "small",
12191
12233
  className: "ntm-dropdown__button",
12234
+ "data-cy": "ntm-edit-member-button",
12235
+ disabled: !active,
12192
12236
  onClick: () => active && handleUpdateRole({
12193
12237
  id,
12194
12238
  email,
12195
12239
  role
12196
12240
  }),
12197
- disabled: !active,
12241
+ size: "small",
12198
12242
  style: "text"
12199
12243
  }, instance.t("common.edit")))), /*#__PURE__*/React.createElement(MenuItem.Button, {
12200
- size: "small",
12201
12244
  className: "ntm-dropdown__button",
12245
+ "data-cy": "ntm-deactivate-member-button",
12202
12246
  onClick: () => handleUpdateStatus({
12203
12247
  id,
12204
12248
  name: displayName,
12205
12249
  active
12206
12250
  }),
12251
+ size: "small",
12207
12252
  style: active && "danger"
12208
12253
  }, active ? instance.t("common.deactivate") : instance.t("common.activate"))))));
12209
12254
  };
@@ -12372,10 +12417,12 @@ const ManageMember = _ref => {
12372
12417
  };
12373
12418
  const isSubmitting = isCreatingMember || isUpdatingMember;
12374
12419
  return /*#__PURE__*/React.createElement(Pane, {
12420
+ "data-cy": "ntm-manage-members-pane-wrapper",
12375
12421
  isOpen: isOpen,
12376
12422
  onClose: onPaneClose
12377
12423
  }, /*#__PURE__*/React.createElement(Pane.Header, null, /*#__PURE__*/React.createElement(Typography, {
12378
12424
  className: "ntm-members-pane__header",
12425
+ "data-cy": "ntm-manage-members-pane-header",
12379
12426
  style: "h2",
12380
12427
  weight: "semibold"
12381
12428
  }, selectedMember ? instance.t("common.edit_", {
@@ -12391,63 +12438,69 @@ const ManageMember = _ref => {
12391
12438
  enableReinitialize: true
12392
12439
  }, _ref2 => {
12393
12440
  let values = _ref2.values,
12394
- setFieldValue = _ref2.setFieldValue,
12395
12441
  dirty = _ref2.dirty;
12396
12442
  const emails = values.emails,
12397
12443
  role = values.role;
12398
- const roleValue = role && {
12399
- label: role,
12400
- value: role
12401
- };
12402
12444
  return /*#__PURE__*/React.createElement(Form, null, /*#__PURE__*/React.createElement(Pane.Body, null, /*#__PURE__*/React.createElement("div", {
12403
12445
  className: "ntm-members-pane__body"
12404
12446
  }, selectedMember ? /*#__PURE__*/React.createElement(Input, {
12447
+ "data-cy": "ntm-manage-member-email-input",
12448
+ disabled: selectedMember,
12449
+ label: instance.t("common.email", SINGULAR),
12405
12450
  name: "emails",
12406
- "data-cy": "add-member-email-text-field",
12407
12451
  size: "medium",
12408
- label: instance.t("common.email", SINGULAR),
12409
- value: head(emails).value,
12410
- disabled: selectedMember
12452
+ value: head(emails).value
12411
12453
  }) : /*#__PURE__*/React.createElement(EmailInput, {
12412
- name: "emails",
12413
- "data-cy": "add-member-email-input",
12414
12454
  counter: COUNTER_PROPS,
12415
- filterInvalidEmails: FILTER_INVALID_EMAILS,
12455
+ "data-cy": "ntm-manage-member-email-input",
12416
12456
  disabled: selectedMember,
12457
+ filterInvalidEmails: FILTER_INVALID_EMAILS,
12458
+ helpText: instance.t("helpers.enterMultipleEmails"),
12417
12459
  label: `${instance.t("common.email", PLURAL)}*`,
12418
- placeholder: instance.t("placeholders.email"),
12419
- helpText: instance.t("helpers.enterMultipleEmails")
12420
- }), /*#__PURE__*/React.createElement(Select, {
12421
- required: true,
12422
- name: "role",
12423
- "data-cy": "add-member-role-select",
12424
- size: "medium",
12425
- label: instance.t("common.role", SINGULAR),
12426
- placeholder: instance.t("placeholders.role"),
12427
- value: roleValue,
12428
- onChange: _ref3 => {
12429
- let value = _ref3.value;
12430
- return setFieldValue("role", value);
12431
- },
12432
- options: roles.map(role => ({
12433
- label: role,
12434
- value: role
12435
- }))
12436
- }))), /*#__PURE__*/React.createElement(Pane.Footer, {
12460
+ name: "emails",
12461
+ placeholder: instance.t("placeholders.email")
12462
+ }), /*#__PURE__*/React.createElement(Radio, {
12463
+ className: "ntm-members-radio-group",
12464
+ stacked: true,
12465
+ "data-cy": "ntm-manage-member-roles-group",
12466
+ label: `${instance.t("common.role", SINGULAR)}*`,
12467
+ name: "role"
12468
+ }, roles.map(_ref3 => {
12469
+ let description = _ref3.description,
12470
+ name = _ref3.name;
12471
+ return /*#__PURE__*/React.createElement("label", {
12472
+ className: "ntm-members-pane-radio-item__wrapper",
12473
+ htmlFor: name,
12474
+ key: name
12475
+ }, /*#__PURE__*/React.createElement(Radio.Item, {
12476
+ checked: name === role,
12477
+ className: "ntm-members-pane-radio-item__label",
12478
+ "data-cy": "ntm-manage-member-roles-button",
12479
+ id: name,
12480
+ label: name,
12481
+ name: "role",
12482
+ value: name
12483
+ }), /*#__PURE__*/React.createElement(Typography, {
12484
+ className: "neeto-ui-input__help-text",
12485
+ "data-cy": "ntm-manage-member-roles-description",
12486
+ style: "body3",
12487
+ weight: "normal"
12488
+ }, description));
12489
+ })))), /*#__PURE__*/React.createElement(Pane.Footer, {
12437
12490
  className: "ntm-members-pane__footer"
12438
12491
  }, /*#__PURE__*/React.createElement(Button, {
12439
- type: "submit",
12440
- "data-cy": "add-member-submit-button",
12441
- style: "primary",
12492
+ "data-cy": "ntm-manage-member-submit-button",
12493
+ disabled: !dirty || isSubmitting,
12442
12494
  label: instance.t("buttons.saveChanges"),
12495
+ loading: isSubmitting,
12443
12496
  onClick: () => setHasSubmitted(true),
12444
- disabled: !dirty || isSubmitting,
12445
- loading: isSubmitting
12497
+ style: "primary",
12498
+ type: "submit"
12446
12499
  }), /*#__PURE__*/React.createElement(Button, {
12447
- "data-cy": "add-member-cancel-button",
12448
- style: "text",
12500
+ "data-cy": "ntm-manage-member-cancel-button",
12449
12501
  label: instance.t("buttons.cancel"),
12450
- onClick: onPaneClose
12502
+ onClick: onPaneClose,
12503
+ style: "text"
12451
12504
  })));
12452
12505
  }));
12453
12506
  };
@@ -12460,13 +12513,15 @@ const Menu = _ref => {
12460
12513
  handleMemberFilterChange = _ref.handleMemberFilterChange;
12461
12514
  const memberFilterKeys = keys(MEMBER_FILTER);
12462
12515
  return /*#__PURE__*/React.createElement(MenuBar, {
12516
+ "data-cy": "ntm-members-menubar-heading",
12463
12517
  showMenu: isMenuOpen,
12464
12518
  title: instance.t(metaName, PLURAL)
12465
12519
  }, memberFilterKeys.map(filter => /*#__PURE__*/React.createElement(MenuBar.Block, {
12520
+ active: memberFilterKeys.includes(memberFilter) && identical(filter, memberFilter),
12466
12521
  count: getPerCategoryCount(filterCounts, filter),
12522
+ "data-cy": `ntm-members-menubar-${slugify(filter)}-block`,
12467
12523
  key: filter,
12468
12524
  label: MEMBER_FILTER[filter].label,
12469
- active: memberFilterKeys.includes(memberFilter) && identical(filter, memberFilter),
12470
12525
  onClick: () => handleMemberFilterChange(filter)
12471
12526
  })));
12472
12527
  };
@@ -12501,8 +12556,8 @@ const TeamMembers = _ref => {
12501
12556
  isMembersFetching = _useFetchMembers.isFetching;
12502
12557
  const _useFetchRoles = useFetchRoles({
12503
12558
  select: response => {
12504
- const roles = response.organizationRoles || response.data.organizationRoles;
12505
- return pluck("name", roles).sort((a, b) => a.localeCompare(b));
12559
+ var _ref2;
12560
+ return reverse((_ref2 = response.organizationRoles || response.data.organizationRoles) !== null && _ref2 !== void 0 ? _ref2 : []);
12506
12561
  },
12507
12562
  enabled: (_config$permissions$v2 = config === null || config === void 0 ? void 0 : (_config$permissions2 = config.permissions) === null || _config$permissions2 === void 0 ? void 0 : _config$permissions2.view) !== null && _config$permissions$v2 !== void 0 ? _config$permissions$v2 : DEFAULT_PERMISSION
12508
12563
  }),
@@ -12514,17 +12569,18 @@ const TeamMembers = _ref => {
12514
12569
  updateMember = _useUpdateMember.mutate,
12515
12570
  isUpdatingMember = _useUpdateMember.isLoading;
12516
12571
  const searchProps = {
12517
- placeholder: instance.t("common.search_", {
12518
- what: instance.t(metaName, PLURAL).toLocaleLowerCase()
12519
- }),
12520
- value: filters.search,
12521
- onChange: _ref2 => {
12522
- let value = _ref2.target.value;
12572
+ "data-cy": "ntm-search-members-input",
12573
+ onChange: _ref3 => {
12574
+ let value = _ref3.target.value;
12523
12575
  return setFilters(mergeLeft({
12524
12576
  search: value,
12525
12577
  page: DEFAULT_PAGE_NUMBER
12526
12578
  }));
12527
- }
12579
+ },
12580
+ placeholder: instance.t("common.search_", {
12581
+ what: instance.t(metaName, PLURAL).toLocaleLowerCase()
12582
+ }),
12583
+ value: filters.search
12528
12584
  };
12529
12585
  const updateMemberAlertProps = {
12530
12586
  member: selectedMember,
@@ -12606,22 +12662,23 @@ const TeamMembers = _ref => {
12606
12662
  className: "ntm-members__table-wrapper"
12607
12663
  }, /*#__PURE__*/React.createElement(Table$1, {
12608
12664
  fixedHeight: true,
12609
- totalCount: team === null || team === void 0 ? void 0 : team.membersCount,
12610
12665
  allowRowClick: false,
12611
- rowSelection: false,
12612
- loading: isMembersFetching,
12613
- defaultPageSize: parseInt(filters.results, DEFAULT_RADIX),
12614
- rowData: team === null || team === void 0 ? void 0 : team.members,
12615
12666
  columnData: getColumnData({
12616
12667
  memberFilter: filters.category,
12617
12668
  handleUpdateStatus,
12618
12669
  handleUpdateRole,
12619
12670
  permissions: config === null || config === void 0 ? void 0 : config.permissions
12620
12671
  }),
12621
- onChange: (_, __, sorter) => handleTableChange(_, __, sorter),
12622
12672
  currentPageNumber: parseInt(filters.page, DEFAULT_RADIX),
12673
+ "data-cy": "ntm-members-table",
12674
+ defaultPageSize: parseInt(filters.results, DEFAULT_RADIX),
12675
+ handlePageChange: handlePageChange(setFilters, filters.category),
12676
+ loading: isMembersFetching,
12677
+ onChange: (_, __, sorter) => handleTableChange(_, __, sorter),
12623
12678
  paginationProps: renderPaginationProps(filters.results),
12624
- handlePageChange: handlePageChange(setFilters, filters.category)
12679
+ rowData: team === null || team === void 0 ? void 0 : team.members,
12680
+ rowSelection: false,
12681
+ totalCount: team === null || team === void 0 ? void 0 : team.membersCount
12625
12682
  })) : /*#__PURE__*/React.createElement(EmptyState, {
12626
12683
  title: instance.t("common.notFound_", {
12627
12684
  what: instance.t(metaName, PLURAL).toLocaleLowerCase()
@@ -12662,7 +12719,7 @@ var index = withReactQuery(TeamMembers);
12662
12719
 
12663
12720
  var e=[],t=[];function n(n,r){if(n&&"undefined"!=typeof document){var a,s=!0===r.prepend?"prepend":"append",d=!0===r.singleTag,i="string"==typeof r.container?document.querySelector(r.container):document.getElementsByTagName("head")[0];if(d){var u=e.indexOf(i);-1===u&&(u=e.push(i)-1,t[u]={}),a=t[u]&&t[u][s]?t[u][s]:t[u][s]=c();}else a=c();65279===n.charCodeAt(0)&&(n=n.substring(1)),a.styleSheet?a.styleSheet.cssText+=n:a.appendChild(document.createTextNode(n));}function c(){var e=document.createElement("style");if(e.setAttribute("type","text/css"),r.attributes)for(var t=Object.keys(r.attributes),n=0;n<t.length;n++)e.setAttribute(t[n],r.attributes[t[n]]);var a="prepend"===s?"afterbegin":"beforeend";return i.insertAdjacentElement(a,e),e}}
12664
12721
 
12665
- var css = ":root {\n --ntm-roles-table-default-scroll: 15px;\n}\n\n.ntm-dropdown__button {\n border-radius: 0 !important;\n font-weight: var(--neeto-ui-font-normal);\n min-height: 34px;\n min-width: 150px;\n text-align: left;\n width: 100%;\n}\n\n.ntm-scrollbar__inner {\n width: 100%;\n height: 200px;\n}\n.ntm-scrollbar__outer {\n position: \"absolute\";\n top: 0px;\n left: 0px;\n width: 200px;\n height: 150px;\n overflow: \"hidden\";\n visibility: \"hidden\";\n}\n\n.ntm-empty-state {\n align-items: center;\n display: flex;\n height: 100%;\n justify-content: center;\n width: 100%;\n}\n.ntm-empty-state__image {\n display: flex;\n justify-content: center;\n align-items: center;\n margin-bottom: 2rem;\n}\n.ntm-empty-state__title--with-action-block {\n margin-bottom: 1rem;\n}\n.ntm-empty-state__action-block {\n display: flex;\n justify-content: center;\n}\n\n.ntm-members {\n overflow: auto;\n width: 100%;\n}\n.ntm-members-wrapper {\n display: flex;\n}\n.ntm-members-page-loader {\n width: 100%;\n height: 100vh;\n}\n.ntm-members__table-wrapper {\n height: calc(100vh - 205px);\n width: 100%;\n}\n.ntm-members-table__column {\n display: flex;\n align-items: center;\n gap: 0.5rem;\n}\n.ntm-members-pane__header {\n margin-bottom: 0.5rem;\n}\n.ntm-members-pane__body {\n width: 100%;\n}\n.ntm-members-pane__body > * + * {\n margin-top: 1rem;\n}\n.ntm-members-pane__footer {\n display: flex;\n gap: 0.5rem;\n}\n\n.ntm-roles-header {\n border-bottom: 1px solid rgb(var(--neeto-ui-gray-300));\n}\n\n.ntm-roles-table__wrapper {\n width: 100%;\n height: calc(100vh - var(--neeto-ui-main-header-height));\n display: flex;\n}\n.ntm-roles-table__wrapper .ntm-roles-table__sidebar {\n width: 396px;\n min-width: 396px;\n border-right: thin solid rgb(var(--neeto-ui-gray-300));\n}\n.ntm-roles-table__wrapper .ntm-roles-table__sidebar .ntm-roles-table-sidebar__search {\n padding: 24px 24px 16px;\n height: 72px;\n}\n.ntm-roles-table__wrapper .ntm-roles-table__sidebar .ntm-roles-table-sidebar__list {\n height: calc(\n 100vh - var(--neeto-ui-main-header-height) - 72px -\n var(--ntm-roles-table-default-scroll)\n );\n overflow-y: auto;\n padding-left: 24px;\n}\n.ntm-roles-table__wrapper .ntm-roles-table__sidebar .ntm-roles-table-sidebar__list .ntm-roles-table-sidebar__list-item {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 12px 8px;\n min-height: 48px;\n}\n.ntm-roles-table__wrapper .ntm-roles-table__sidebar .ntm-roles-table-sidebar__list .ntm-roles-table-sidebar__list-item.ntm-roles-table-sidebar__list-item--highlighted {\n background-color: rgb(var(--neeto-ui-primary-100));\n padding: 12px 8px;\n}\n.ntm-roles-table__wrapper .ntm-roles-table__sidebar .ntm-roles-table-sidebar__list .ntm-roles-table-sidebar__list-item:not(.ntm-roles-table-sidebar__list-item--highlighted) {\n border-bottom: thin solid rgb(var(--neeto-ui-gray-300));\n}\n.ntm-roles-table__wrapper .ntm-roles-table__columns {\n width: calc(\n 100vw - var(--neeto-ui-sidebar-width) - 396px - 24px\n );\n overflow: hidden;\n}\n.ntm-roles-table__wrapper .ntm-roles-table__columns .ntm-roles-table__cell {\n width: 100%;\n min-width: 200px;\n min-height: 48px;\n padding: 12px 8px;\n display: flex;\n justify-content: center;\n align-items: center;\n border-right: thin solid rgb(var(--neeto-ui-gray-300));\n}\n.ntm-roles-table__wrapper .ntm-roles-table__columns .ntm-roles-table-cell__checkbox-wrapper {\n position: absolute;\n height: 1rem;\n width: 1rem;\n margin: auto;\n z-index: 10;\n}\n.ntm-roles-table__wrapper .ntm-roles-table__columns .ntm-roles-table-cell__checkbox {\n z-index: 10;\n}\n.ntm-roles-table__wrapper .ntm-roles-table__columns .ntm-roles-table__header {\n display: flex;\n align-items: center;\n overflow-x: auto;\n}\n.ntm-roles-table__wrapper .ntm-roles-table__columns .ntm-roles-table__header .ntm-roles-table__cell {\n height: 72px;\n padding-left: 24px;\n}\n.ntm-roles-table__wrapper .ntm-roles-table__columns .ntm-roles-table__header .ntm-roles-table-header-cell__container {\n display: flex;\n justify-content: space-between;\n align-items: center;\n width: 100%;\n gap: 1rem;\n overflow: hidden;\n}\n.ntm-roles-table__wrapper .ntm-roles-table__columns .ntm-roles-table__header .ntm-roles-table-header__dropdown {\n margin: 3px;\n}\n.ntm-roles-table__wrapper .ntm-roles-table__columns .ntm-roles-table__header .ntm-roles-table-header__role-name {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n.ntm-roles-table__wrapper .ntm-roles-table__columns .ntm-roles-table__rows {\n width: 100%;\n height: calc(\n 100vh - var(--neeto-ui-main-header-height) - 72px -\n var(--ntm-roles-table-default-scroll)\n );\n overflow-y: auto;\n scrollbar-width: none;\n}\n.ntm-roles-table__wrapper .ntm-roles-table__columns .ntm-roles-table__rows::-webkit-scrollbar {\n width: 0px;\n height: 0px;\n}\n.ntm-roles-table__wrapper .ntm-roles-table__columns .ntm-roles-table__rows::-webkit-scrollbar-thumb {\n background: rgb(var(--neeto-ui-gray-300));\n border-radius: 50px;\n}\n.ntm-roles-table__wrapper .ntm-roles-table__columns .ntm-roles-table__rows::-webkit-scrollbar-thumb:hover {\n border-radius: 50px;\n}\n.ntm-roles-table__wrapper .ntm-roles-table__columns .ntm-roles-table__rows::-webkit-scrollbar-track {\n background: rgb(var(--neeto-ui-gray-300));\n}\n.ntm-roles-table__wrapper .ntm-roles-table__columns .ntm-roles-table__rows .ntm-roles-table__row {\n display: flex;\n align-items: center;\n}\n.ntm-roles-table__wrapper .ntm-roles-table__columns .ntm-roles-table__rows .ntm-roles-table__row .ntm-roles-table__cell {\n overflow: hidden;\n position: relative;\n}\n.ntm-roles-table__wrapper .ntm-roles-table__columns .ntm-roles-table__rows .ntm-roles-table__row .ntm-roles-table__cell p {\n opacity: 0;\n width: 340px;\n min-width: 340px;\n}\n.ntm-roles-table__wrapper .ntm-roles-table__columns .ntm-roles-table__rows .ntm-roles-table__row.ntm-roles-table__row--highlighted .ntm-roles-table__cell {\n background-color: rgb(var(--neeto-ui-primary-100));\n}\n.ntm-roles-table__wrapper .ntm-roles-table__columns .ntm-roles-table__rows .ntm-roles-table__row:not(.ntm-roles-table__row--highlighted) .ntm-roles-table__cell {\n border-bottom: thin solid rgb(var(--neeto-ui-gray-300));\n}\n\n.ntm-roles-table-sidebar__drop-down-button {\n color: rgb(var(--neeto-ui-gray-600));\n cursor: pointer;\n}\n\n.ntm-roles-modal__body > * + * {\n margin-top: 1rem;\n}\n.ntm-roles-modal__footer {\n display: flex;\n gap: 0.5rem;\n}\n\n.ntm-roles-pane__body {\n width: 100%;\n margin-bottom: 1.5rem;\n}\n.ntm-roles-pane__body-wrapper > * + * {\n margin-top: 1rem;\n}\n.ntm-roles-pane__body > * + * {\n margin-top: 1.5rem;\n}\n.ntm-roles-pane__footer {\n display: flex;\n gap: 0.5rem;\n}\n\n.ntm-roles-permission > * + * {\n margin: 0.5rem;\n}\n.ntm-roles-permission__heading {\n color: rgb(var(--neeto-ui-gray-500));\n text-transform: uppercase;\n}\n.ntm-roles-permission__card {\n background-color: rgb(var(--neeto-ui-white));\n border-radius: var(--neeto-ui-rounded);\n border-width: 1px;\n border-color: rgb(var(--neeto-ui-gray-300));\n cursor: pointer;\n display: flex;\n gap: 0.75rem;\n padding: 1rem 0.75rem;\n}\n.ntm-roles-permission__card--description {\n flex-grow: 1;\n}\n.ntm-roles-permission__card--checkbox {\n padding: 0 0.5rem;\n}\n\n.ntm-invitations__wrapper .ntm-invitations__header {\n height: 28px;\n}\n.ntm-invitations__wrapper .ntm-invitations__body {\n display: flex;\n flex-direction: column;\n}\n.ntm-invitations__wrapper .ntm-invitations__body > * {\n margin-bottom: 8px;\n}\n.ntm-invitations__wrapper .ntm-invitations__body-header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n}\n.ntm-invitations__wrapper .ntm-invitations__body-header div {\n display: flex;\n align-items: center;\n}\n.ntm-invitations__wrapper .ntm-invitations__body-header div p {\n margin-right: 8px;\n}\n.ntm-invitations__wrapper .ntm-invitations__body .ntm-invitations__dnd {\n color: rgb(var(--neeto-ui-gray-700));\n background: rgb(var(--neeto-ui-gray-100));\n padding: 20px 40px;\n border: 1px dashed;\n border-radius: 6px;\n cursor: pointer;\n counter-reset: dnd-counter;\n}\n.ntm-invitations__wrapper .ntm-invitations__body .ntm-invitations__dnd h3 {\n margin-bottom: 8px;\n text-align: center !important;\n}\n.ntm-invitations__wrapper .ntm-invitations__body .ntm-invitations__dnd p::before {\n counter-increment: dnd-counter;\n content: counter(dnd-counter) \". \";\n}\n.ntm-invitations__wrapper .ntm-invitations__body .ntm-invitations__submit-btn {\n align-self: end !important;\n margin-top: 16px;\n}\n.ntm-invitations__wrapper .ntm-invitations__footer {\n background: rgb(var(--neeto-ui-gray-100));\n margin-top: 24px;\n}\n.ntm-invitations__wrapper .ntm-invitations__footer .ntm-invitations__invite-link {\n display: flex;\n align-items: center;\n justify-content: space-between;\n}\n.ntm-invitations__wrapper .ntm-invitations__footer .ntm-invitations__invite-link-instructions {\n display: flex;\n flex-direction: column;\n width: 50%;\n}\n.ntm-invitations__wrapper .ntm-invitations__footer .ntm-invitations__invite-link-instructions h4 {\n margin-bottom: 8px;\n}\n.ntm-invitations__wrapper .ntm-invitations__footer .ntm-invitations__invite-link-btns {\n display: flex;\n align-items: center;\n gap: 0.5rem;\n font-weight: bold;\n}\n.ntm-invitations__wrapper .ntm-invitations__footer .ntm-invitations__invite-link-btns > button:first-child {\n margin-right: 8px;\n}\n.ntm-invitations__wrapper .ntm-invitations__footer .ntm-invitations__invite-link-btns p {\n font-weight: normal;\n color: rgb(var(--neeto-ui-gray-700));\n}\n.ntm-invitations__wrapper .ntm-invitations__footer .ntm-invitations__table {\n max-height: 192px;\n}\n.ntm-invitations__wrapper .ntm-invitations__footer .ntm-invitations__table-filename {\n display: flex;\n align-items: center;\n}\n.ntm-invitations__wrapper .ntm-invitations__footer .ntm-invitations__table-filename svg {\n margin-right: 4px;\n}\n.ntm-invitations__wrapper .ntm-invitations__footer .ntm-invitations__table-status {\n text-transform: capitalize;\n}";
12722
+ var css = ":root {\n --ntm-roles-table-default-scroll: 15px;\n}\n\n.ntm-dropdown__button {\n border-radius: 0 !important;\n font-weight: var(--neeto-ui-font-normal);\n min-height: 34px;\n min-width: 150px;\n text-align: left;\n width: 100%;\n}\n\n.ntm-scrollbar__inner {\n width: 100%;\n height: 200px;\n}\n.ntm-scrollbar__outer {\n position: \"absolute\";\n top: 0px;\n left: 0px;\n width: 200px;\n height: 150px;\n overflow: \"hidden\";\n visibility: \"hidden\";\n}\n\n.ntm-empty-state {\n align-items: center;\n display: flex;\n height: 100%;\n justify-content: center;\n width: 100%;\n}\n.ntm-empty-state__image {\n display: flex;\n justify-content: center;\n align-items: center;\n margin-bottom: 2rem;\n}\n.ntm-empty-state__title--with-action-block {\n margin-bottom: 1rem;\n}\n.ntm-empty-state__action-block {\n display: flex;\n justify-content: center;\n}\n\n.ntm-members {\n overflow: auto;\n width: 100%;\n}\n.ntm-members-wrapper {\n display: flex;\n}\n.ntm-members-page-loader {\n width: 100%;\n height: 100vh;\n}\n.ntm-members__table-wrapper {\n height: calc(100vh - 205px);\n width: 100%;\n}\n.ntm-members-table__column {\n display: flex;\n align-items: center;\n gap: 0.5rem;\n}\n.ntm-members-pane__header {\n margin-bottom: 0.5rem;\n}\n.ntm-members-pane__body {\n width: 100%;\n padding-bottom: 1rem;\n}\n.ntm-members-pane__body > * + * {\n margin-top: 1rem;\n}\n.ntm-members-pane__footer {\n display: flex;\n gap: 0.5rem;\n}\n\n.ntm-members-radio-group {\n width: 100%;\n}\n.ntm-members-radio-group .neeto-ui-radio__container--stacked {\n width: 100%;\n}\n\n.ntm-members-pane-radio-item__wrapper {\n width: 100%;\n cursor: pointer;\n padding: 16px 0px !important;\n border-bottom: 1px solid rgb(var(--neeto-ui-gray-200));\n}\n.ntm-members-pane-radio-item__label {\n margin-bottom: 0 !important;\n}\n.ntm-members-pane-radio-item__description {\n color: rgb(var(--neeto-ui-gray-700));\n}\n\n.ntm-roles-header {\n border-bottom: 1px solid rgb(var(--neeto-ui-gray-300));\n}\n\n.ntm-roles-table__wrapper {\n width: 100%;\n height: calc(100vh - var(--neeto-ui-main-header-height));\n display: flex;\n}\n.ntm-roles-table__wrapper .ntm-roles-table__sidebar {\n width: 396px;\n min-width: 396px;\n border-right: thin solid rgb(var(--neeto-ui-gray-300));\n}\n.ntm-roles-table__wrapper .ntm-roles-table__sidebar .ntm-roles-table-sidebar__search {\n padding: 24px 24px 16px;\n height: 72px;\n}\n.ntm-roles-table__wrapper .ntm-roles-table__sidebar .ntm-roles-table-sidebar__list {\n height: calc(\n 100vh - var(--neeto-ui-main-header-height) - 72px -\n var(--ntm-roles-table-default-scroll)\n );\n overflow-y: auto;\n padding-left: 24px;\n}\n.ntm-roles-table__wrapper .ntm-roles-table__sidebar .ntm-roles-table-sidebar__list .ntm-roles-table-sidebar__list-item {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 12px 8px;\n min-height: 48px;\n}\n.ntm-roles-table__wrapper .ntm-roles-table__sidebar .ntm-roles-table-sidebar__list .ntm-roles-table-sidebar__list-item.ntm-roles-table-sidebar__list-item--highlighted {\n background-color: rgb(var(--neeto-ui-primary-100));\n padding: 12px 8px;\n}\n.ntm-roles-table__wrapper .ntm-roles-table__sidebar .ntm-roles-table-sidebar__list .ntm-roles-table-sidebar__list-item:not(.ntm-roles-table-sidebar__list-item--highlighted) {\n border-bottom: thin solid rgb(var(--neeto-ui-gray-300));\n}\n.ntm-roles-table__wrapper .ntm-roles-table__columns {\n width: calc(\n 100vw - var(--neeto-ui-sidebar-width) - 396px - 24px\n );\n overflow: hidden;\n}\n.ntm-roles-table__wrapper .ntm-roles-table__columns .ntm-roles-table__cell {\n width: 100%;\n min-width: 200px;\n min-height: 48px;\n padding: 12px 8px;\n display: flex;\n justify-content: center;\n align-items: center;\n border-right: thin solid rgb(var(--neeto-ui-gray-300));\n}\n.ntm-roles-table__wrapper .ntm-roles-table__columns .ntm-roles-table-cell__checkbox-wrapper {\n position: absolute;\n height: 1rem;\n width: 1rem;\n margin: auto;\n z-index: 10;\n}\n.ntm-roles-table__wrapper .ntm-roles-table__columns .ntm-roles-table-cell__checkbox {\n z-index: 10;\n}\n.ntm-roles-table__wrapper .ntm-roles-table__columns .ntm-roles-table__header {\n display: flex;\n align-items: center;\n overflow-x: auto;\n}\n.ntm-roles-table__wrapper .ntm-roles-table__columns .ntm-roles-table__header .ntm-roles-table__cell {\n height: 72px;\n padding-left: 24px;\n}\n.ntm-roles-table__wrapper .ntm-roles-table__columns .ntm-roles-table__header .ntm-roles-table-header-cell__container {\n display: flex;\n justify-content: space-between;\n align-items: center;\n width: 100%;\n gap: 1rem;\n overflow: hidden;\n}\n.ntm-roles-table__wrapper .ntm-roles-table__columns .ntm-roles-table__header .ntm-roles-table-header__dropdown {\n margin: 3px;\n}\n.ntm-roles-table__wrapper .ntm-roles-table__columns .ntm-roles-table__header .ntm-roles-table-header__role-name {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n.ntm-roles-table__wrapper .ntm-roles-table__columns .ntm-roles-table__rows {\n width: 100%;\n height: calc(\n 100vh - var(--neeto-ui-main-header-height) - 72px -\n var(--ntm-roles-table-default-scroll)\n );\n overflow-y: auto;\n scrollbar-width: none;\n}\n.ntm-roles-table__wrapper .ntm-roles-table__columns .ntm-roles-table__rows::-webkit-scrollbar {\n width: 0px;\n height: 0px;\n}\n.ntm-roles-table__wrapper .ntm-roles-table__columns .ntm-roles-table__rows::-webkit-scrollbar-thumb {\n background: rgb(var(--neeto-ui-gray-300));\n border-radius: 50px;\n}\n.ntm-roles-table__wrapper .ntm-roles-table__columns .ntm-roles-table__rows::-webkit-scrollbar-thumb:hover {\n border-radius: 50px;\n}\n.ntm-roles-table__wrapper .ntm-roles-table__columns .ntm-roles-table__rows::-webkit-scrollbar-track {\n background: rgb(var(--neeto-ui-gray-300));\n}\n.ntm-roles-table__wrapper .ntm-roles-table__columns .ntm-roles-table__rows .ntm-roles-table__row {\n display: flex;\n align-items: center;\n}\n.ntm-roles-table__wrapper .ntm-roles-table__columns .ntm-roles-table__rows .ntm-roles-table__row .ntm-roles-table__cell {\n overflow: hidden;\n position: relative;\n}\n.ntm-roles-table__wrapper .ntm-roles-table__columns .ntm-roles-table__rows .ntm-roles-table__row .ntm-roles-table__cell p {\n opacity: 0;\n width: 340px;\n min-width: 340px;\n}\n.ntm-roles-table__wrapper .ntm-roles-table__columns .ntm-roles-table__rows .ntm-roles-table__row.ntm-roles-table__row--highlighted .ntm-roles-table__cell {\n background-color: rgb(var(--neeto-ui-primary-100));\n}\n.ntm-roles-table__wrapper .ntm-roles-table__columns .ntm-roles-table__rows .ntm-roles-table__row:not(.ntm-roles-table__row--highlighted) .ntm-roles-table__cell {\n border-bottom: thin solid rgb(var(--neeto-ui-gray-300));\n}\n\n.ntm-roles-table-sidebar__drop-down-button {\n color: rgb(var(--neeto-ui-gray-600));\n cursor: pointer;\n}\n\n.ntm-roles-modal__body > * + * {\n margin-top: 1rem;\n}\n.ntm-roles-modal__footer {\n display: flex;\n gap: 0.5rem;\n}\n\n.ntm-roles-pane__body {\n width: 100%;\n margin-bottom: 1.5rem;\n}\n.ntm-roles-pane__body-wrapper > * + * {\n margin-top: 1rem;\n}\n.ntm-roles-pane__body > * + * {\n margin-top: 1.5rem;\n}\n.ntm-roles-pane__footer {\n display: flex;\n gap: 0.5rem;\n}\n\n.ntm-roles-permission > * + * {\n margin: 0.5rem;\n}\n.ntm-roles-permission__heading {\n color: rgb(var(--neeto-ui-gray-500));\n text-transform: uppercase;\n}\n.ntm-roles-permission__card {\n background-color: rgb(var(--neeto-ui-white));\n border-radius: var(--neeto-ui-rounded);\n border-width: 1px;\n border-color: rgb(var(--neeto-ui-gray-300));\n cursor: pointer;\n display: flex;\n gap: 0.75rem;\n padding: 1rem 0.75rem;\n}\n.ntm-roles-permission__card--description {\n flex-grow: 1;\n}\n.ntm-roles-permission__card--checkbox {\n padding: 0 0.5rem;\n}\n\n.ntm-invitations__wrapper .ntm-invitations__header {\n height: 28px;\n}\n.ntm-invitations__wrapper .ntm-invitations__body {\n display: flex;\n flex-direction: column;\n}\n.ntm-invitations__wrapper .ntm-invitations__body > * {\n margin-bottom: 8px;\n}\n.ntm-invitations__wrapper .ntm-invitations__body-header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n}\n.ntm-invitations__wrapper .ntm-invitations__body-header div {\n display: flex;\n align-items: center;\n}\n.ntm-invitations__wrapper .ntm-invitations__body-header div p {\n margin-right: 8px;\n}\n.ntm-invitations__wrapper .ntm-invitations__body .ntm-invitations__dnd {\n color: rgb(var(--neeto-ui-gray-700));\n background: rgb(var(--neeto-ui-gray-100));\n padding: 20px 40px;\n border: 1px dashed;\n border-radius: 6px;\n cursor: pointer;\n counter-reset: dnd-counter;\n}\n.ntm-invitations__wrapper .ntm-invitations__body .ntm-invitations__dnd h3 {\n margin-bottom: 8px;\n text-align: center !important;\n}\n.ntm-invitations__wrapper .ntm-invitations__body .ntm-invitations__dnd p::before {\n counter-increment: dnd-counter;\n content: counter(dnd-counter) \". \";\n}\n.ntm-invitations__wrapper .ntm-invitations__body .ntm-invitations__submit-btn {\n align-self: end !important;\n margin-top: 16px;\n}\n.ntm-invitations__wrapper .ntm-invitations__footer {\n background: rgb(var(--neeto-ui-gray-100));\n margin-top: 24px;\n}\n.ntm-invitations__wrapper .ntm-invitations__footer .ntm-invitations__invite-link {\n display: flex;\n align-items: center;\n justify-content: space-between;\n}\n.ntm-invitations__wrapper .ntm-invitations__footer .ntm-invitations__invite-link-instructions {\n display: flex;\n flex-direction: column;\n width: 50%;\n}\n.ntm-invitations__wrapper .ntm-invitations__footer .ntm-invitations__invite-link-instructions h4 {\n margin-bottom: 8px;\n}\n.ntm-invitations__wrapper .ntm-invitations__footer .ntm-invitations__invite-link-btns {\n display: flex;\n align-items: center;\n gap: 0.5rem;\n font-weight: bold;\n}\n.ntm-invitations__wrapper .ntm-invitations__footer .ntm-invitations__invite-link-btns > button:first-child {\n margin-right: 8px;\n}\n.ntm-invitations__wrapper .ntm-invitations__footer .ntm-invitations__invite-link-btns p {\n font-weight: normal;\n color: rgb(var(--neeto-ui-gray-700));\n}\n.ntm-invitations__wrapper .ntm-invitations__footer .ntm-invitations__table {\n max-height: 192px;\n}\n.ntm-invitations__wrapper .ntm-invitations__footer .ntm-invitations__table-filename {\n display: flex;\n align-items: center;\n}\n.ntm-invitations__wrapper .ntm-invitations__footer .ntm-invitations__table-filename svg {\n margin-right: 4px;\n}\n.ntm-invitations__wrapper .ntm-invitations__footer .ntm-invitations__table-status {\n text-transform: capitalize;\n}";
12666
12723
  n(css,{});
12667
12724
 
12668
12725
  export { index$2 as Invitations, index$1 as Roles, index as TeamMembers, hasPermission };