@neo4j-ndl/react 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 (203) hide show
  1. package/lib/cjs/ai/presence/Presence.js +1 -0
  2. package/lib/cjs/ai/presence/Presence.js.map +1 -1
  3. package/lib/cjs/banner/Banner.js +1 -1
  4. package/lib/cjs/banner/Banner.js.map +1 -1
  5. package/lib/cjs/data-grid/Components.js +1 -1
  6. package/lib/cjs/data-grid/Components.js.map +1 -1
  7. package/lib/cjs/data-grid/stories/datagrid-single-selectable.story.js +0 -24
  8. package/lib/cjs/data-grid/stories/datagrid-single-selectable.story.js.map +1 -1
  9. package/lib/cjs/date-picker/DatePicker.js.map +1 -1
  10. package/lib/cjs/dropdown-button/DropdownButton.js.map +1 -1
  11. package/lib/cjs/icon-button-base/IconButtonBase.js +5 -3
  12. package/lib/cjs/icon-button-base/IconButtonBase.js.map +1 -1
  13. package/lib/cjs/icons/generated/custom/DatabaseCross.js +1 -1
  14. package/lib/cjs/icons/generated/custom/DatabaseCross.js.map +1 -1
  15. package/lib/cjs/icons/generated/custom/DatabasePlus.js +1 -1
  16. package/lib/cjs/icons/generated/custom/DatabasePlus.js.map +1 -1
  17. package/lib/cjs/icons/generated/custom/GlobePin.js +1 -1
  18. package/lib/cjs/icons/generated/custom/GlobePin.js.map +1 -1
  19. package/lib/cjs/icons/generated/custom/PanelBottom.js +1 -1
  20. package/lib/cjs/icons/generated/custom/PanelBottom.js.map +1 -1
  21. package/lib/cjs/icons/generated/custom/PanelLeftCollapsed.js +30 -0
  22. package/lib/cjs/icons/generated/custom/PanelLeftCollapsed.js.map +1 -0
  23. package/lib/cjs/icons/generated/custom/PanelLeftExpanded.js +30 -0
  24. package/lib/cjs/icons/generated/custom/PanelLeftExpanded.js.map +1 -0
  25. package/lib/cjs/icons/generated/custom/PanelRightCollapsed.js +30 -0
  26. package/lib/cjs/icons/generated/custom/PanelRightCollapsed.js.map +1 -0
  27. package/lib/cjs/icons/generated/custom/PanelRightExpanded.js +30 -0
  28. package/lib/cjs/icons/generated/custom/PanelRightExpanded.js.map +1 -0
  29. package/lib/cjs/icons/generated/custom/ThreePanel.js +1 -1
  30. package/lib/cjs/icons/generated/custom/ThreePanel.js.map +1 -1
  31. package/lib/cjs/icons/generated/custom/index.js +9 -1
  32. package/lib/cjs/icons/generated/custom/index.js.map +1 -1
  33. package/lib/cjs/icons/wrapIcon.js +1 -1
  34. package/lib/cjs/icons/wrapIcon.js.map +1 -1
  35. package/lib/cjs/menu/stories/menu-custom-items.story.js +3 -1
  36. package/lib/cjs/menu/stories/menu-custom-items.story.js.map +1 -1
  37. package/lib/cjs/menu/stories/menu-default.story.js +3 -1
  38. package/lib/cjs/menu/stories/menu-default.story.js.map +1 -1
  39. package/lib/cjs/menu/stories/menu-in-dialog.story.js +5 -1
  40. package/lib/cjs/menu/stories/menu-in-dialog.story.js.map +1 -1
  41. package/lib/cjs/menu/stories/menu-in-popover.story.js +3 -1
  42. package/lib/cjs/menu/stories/menu-in-popover.story.js.map +1 -1
  43. package/lib/cjs/menu/stories/menu-nested.story.js +3 -1
  44. package/lib/cjs/menu/stories/menu-nested.story.js.map +1 -1
  45. package/lib/cjs/menu/stories/menu-placements.story.js +3 -1
  46. package/lib/cjs/menu/stories/menu-placements.story.js.map +1 -1
  47. package/lib/cjs/menu/stories/menu-with-category.story.js +1 -2
  48. package/lib/cjs/menu/stories/menu-with-category.story.js.map +1 -1
  49. package/lib/cjs/menu/stories/menu-with-disabled-item.story.js +1 -2
  50. package/lib/cjs/menu/stories/menu-with-disabled-item.story.js.map +1 -1
  51. package/lib/cjs/menu/stories/menu-with-divider.story.js +1 -2
  52. package/lib/cjs/menu/stories/menu-with-divider.story.js.map +1 -1
  53. package/lib/cjs/menu/stories/menu-with-icon.story.js +3 -1
  54. package/lib/cjs/menu/stories/menu-with-icon.story.js.map +1 -1
  55. package/lib/cjs/menu/stories/menu-with-keyboard-shortcuts.story.js +3 -1
  56. package/lib/cjs/menu/stories/menu-with-keyboard-shortcuts.story.js.map +1 -1
  57. package/lib/cjs/select/Select.js +25 -3
  58. package/lib/cjs/select/Select.js.map +1 -1
  59. package/lib/cjs/side-navigation/SideNavigation.js +1 -1
  60. package/lib/cjs/side-navigation/SideNavigation.js.map +1 -1
  61. package/lib/cjs/tabs/Tabs.js +1 -1
  62. package/lib/cjs/tabs/Tabs.js.map +1 -1
  63. package/lib/cjs/tabs/stories/tabs-overflow.story.js +1 -1
  64. package/lib/cjs/tabs/stories/tabs-overflow.story.js.map +1 -1
  65. package/lib/cjs/text-input/TextInput.js +33 -2
  66. package/lib/cjs/text-input/TextInput.js.map +1 -1
  67. package/lib/cjs/text-input/stories/index.js +9 -1
  68. package/lib/cjs/text-input/stories/index.js.map +1 -1
  69. package/lib/cjs/text-input/stories/text-input-clearable.story.js +30 -0
  70. package/lib/cjs/text-input/stories/text-input-clearable.story.js.map +1 -0
  71. package/lib/cjs/text-input/stories/text-input-loading-spinner.story.js +31 -0
  72. package/lib/cjs/text-input/stories/text-input-loading-spinner.story.js.map +1 -0
  73. package/lib/cjs/text-input/stories/text-input-with-icons.story.js +1 -3
  74. package/lib/cjs/text-input/stories/text-input-with-icons.story.js.map +1 -1
  75. package/lib/cjs/text-input/stories/text-input.stories.js +61 -35
  76. package/lib/cjs/text-input/stories/text-input.stories.js.map +1 -1
  77. package/lib/cjs/wizard/Wizard.js +1 -1
  78. package/lib/cjs/wizard/Wizard.js.map +1 -1
  79. package/lib/esm/ai/presence/Presence.js +1 -0
  80. package/lib/esm/ai/presence/Presence.js.map +1 -1
  81. package/lib/esm/banner/Banner.js +1 -1
  82. package/lib/esm/banner/Banner.js.map +1 -1
  83. package/lib/esm/data-grid/Components.js +1 -1
  84. package/lib/esm/data-grid/Components.js.map +1 -1
  85. package/lib/esm/data-grid/stories/datagrid-single-selectable.story.js +0 -24
  86. package/lib/esm/data-grid/stories/datagrid-single-selectable.story.js.map +1 -1
  87. package/lib/esm/date-picker/DatePicker.js.map +1 -1
  88. package/lib/esm/dropdown-button/DropdownButton.js.map +1 -1
  89. package/lib/esm/icon-button-base/IconButtonBase.js +5 -3
  90. package/lib/esm/icon-button-base/IconButtonBase.js.map +1 -1
  91. package/lib/esm/icons/generated/custom/DatabaseCross.js +2 -2
  92. package/lib/esm/icons/generated/custom/DatabaseCross.js.map +1 -1
  93. package/lib/esm/icons/generated/custom/DatabasePlus.js +1 -1
  94. package/lib/esm/icons/generated/custom/DatabasePlus.js.map +1 -1
  95. package/lib/esm/icons/generated/custom/GlobePin.js +1 -1
  96. package/lib/esm/icons/generated/custom/GlobePin.js.map +1 -1
  97. package/lib/esm/icons/generated/custom/PanelBottom.js +1 -1
  98. package/lib/esm/icons/generated/custom/PanelBottom.js.map +1 -1
  99. package/lib/esm/icons/generated/custom/PanelLeftCollapsed.js +28 -0
  100. package/lib/esm/icons/generated/custom/PanelLeftCollapsed.js.map +1 -0
  101. package/lib/esm/icons/generated/custom/PanelLeftExpanded.js +28 -0
  102. package/lib/esm/icons/generated/custom/PanelLeftExpanded.js.map +1 -0
  103. package/lib/esm/icons/generated/custom/PanelRightCollapsed.js +28 -0
  104. package/lib/esm/icons/generated/custom/PanelRightCollapsed.js.map +1 -0
  105. package/lib/esm/icons/generated/custom/PanelRightExpanded.js +28 -0
  106. package/lib/esm/icons/generated/custom/PanelRightExpanded.js.map +1 -0
  107. package/lib/esm/icons/generated/custom/ThreePanel.js +1 -1
  108. package/lib/esm/icons/generated/custom/ThreePanel.js.map +1 -1
  109. package/lib/esm/icons/generated/custom/index.js +4 -0
  110. package/lib/esm/icons/generated/custom/index.js.map +1 -1
  111. package/lib/esm/icons/wrapIcon.js +1 -1
  112. package/lib/esm/icons/wrapIcon.js.map +1 -1
  113. package/lib/esm/menu/stories/menu-custom-items.story.js +3 -1
  114. package/lib/esm/menu/stories/menu-custom-items.story.js.map +1 -1
  115. package/lib/esm/menu/stories/menu-default.story.js +3 -1
  116. package/lib/esm/menu/stories/menu-default.story.js.map +1 -1
  117. package/lib/esm/menu/stories/menu-in-dialog.story.js +5 -1
  118. package/lib/esm/menu/stories/menu-in-dialog.story.js.map +1 -1
  119. package/lib/esm/menu/stories/menu-in-popover.story.js +3 -1
  120. package/lib/esm/menu/stories/menu-in-popover.story.js.map +1 -1
  121. package/lib/esm/menu/stories/menu-nested.story.js +3 -1
  122. package/lib/esm/menu/stories/menu-nested.story.js.map +1 -1
  123. package/lib/esm/menu/stories/menu-placements.story.js +3 -1
  124. package/lib/esm/menu/stories/menu-placements.story.js.map +1 -1
  125. package/lib/esm/menu/stories/menu-with-category.story.js +1 -2
  126. package/lib/esm/menu/stories/menu-with-category.story.js.map +1 -1
  127. package/lib/esm/menu/stories/menu-with-disabled-item.story.js +1 -2
  128. package/lib/esm/menu/stories/menu-with-disabled-item.story.js.map +1 -1
  129. package/lib/esm/menu/stories/menu-with-divider.story.js +1 -2
  130. package/lib/esm/menu/stories/menu-with-divider.story.js.map +1 -1
  131. package/lib/esm/menu/stories/menu-with-icon.story.js +3 -1
  132. package/lib/esm/menu/stories/menu-with-icon.story.js.map +1 -1
  133. package/lib/esm/menu/stories/menu-with-keyboard-shortcuts.story.js +3 -1
  134. package/lib/esm/menu/stories/menu-with-keyboard-shortcuts.story.js.map +1 -1
  135. package/lib/esm/select/Select.js +26 -4
  136. package/lib/esm/select/Select.js.map +1 -1
  137. package/lib/esm/side-navigation/SideNavigation.js +1 -1
  138. package/lib/esm/side-navigation/SideNavigation.js.map +1 -1
  139. package/lib/esm/tabs/Tabs.js +1 -1
  140. package/lib/esm/tabs/Tabs.js.map +1 -1
  141. package/lib/esm/tabs/stories/tabs-overflow.story.js +1 -1
  142. package/lib/esm/tabs/stories/tabs-overflow.story.js.map +1 -1
  143. package/lib/esm/text-input/TextInput.js +35 -4
  144. package/lib/esm/text-input/TextInput.js.map +1 -1
  145. package/lib/esm/text-input/stories/index.js +6 -0
  146. package/lib/esm/text-input/stories/index.js.map +1 -1
  147. package/lib/esm/text-input/stories/text-input-clearable.story.js +28 -0
  148. package/lib/esm/text-input/stories/text-input-clearable.story.js.map +1 -0
  149. package/lib/esm/text-input/stories/text-input-loading-spinner.story.js +29 -0
  150. package/lib/esm/text-input/stories/text-input-loading-spinner.story.js.map +1 -0
  151. package/lib/esm/text-input/stories/text-input-with-icons.story.js +3 -5
  152. package/lib/esm/text-input/stories/text-input-with-icons.story.js.map +1 -1
  153. package/lib/esm/text-input/stories/text-input.stories.js +61 -35
  154. package/lib/esm/text-input/stories/text-input.stories.js.map +1 -1
  155. package/lib/esm/wizard/Wizard.js +1 -1
  156. package/lib/esm/wizard/Wizard.js.map +1 -1
  157. package/lib/types/ai/presence/Presence.d.ts.map +1 -1
  158. package/lib/types/data-grid/Components.d.ts.map +1 -1
  159. package/lib/types/data-grid/stories/datagrid-single-selectable.story.d.ts.map +1 -1
  160. package/lib/types/dropdown-button/DropdownButton.d.ts +1 -1
  161. package/lib/types/dropdown-button/DropdownButton.d.ts.map +1 -1
  162. package/lib/types/icon-button-base/IconButtonBase.d.ts.map +1 -1
  163. package/lib/types/icons/generated/custom/DatabaseCross.d.ts.map +1 -1
  164. package/lib/types/icons/generated/custom/DatabasePlus.d.ts.map +1 -1
  165. package/lib/types/icons/generated/custom/GlobePin.d.ts.map +1 -1
  166. package/lib/types/icons/generated/custom/PanelLeftCollapsed.d.ts +29 -0
  167. package/lib/types/icons/generated/custom/PanelLeftCollapsed.d.ts.map +1 -0
  168. package/lib/types/icons/generated/custom/PanelLeftExpanded.d.ts +29 -0
  169. package/lib/types/icons/generated/custom/PanelLeftExpanded.d.ts.map +1 -0
  170. package/lib/types/icons/generated/custom/PanelRightCollapsed.d.ts +29 -0
  171. package/lib/types/icons/generated/custom/PanelRightCollapsed.d.ts.map +1 -0
  172. package/lib/types/icons/generated/custom/PanelRightExpanded.d.ts +29 -0
  173. package/lib/types/icons/generated/custom/PanelRightExpanded.d.ts.map +1 -0
  174. package/lib/types/icons/generated/custom/index.d.ts +4 -0
  175. package/lib/types/icons/generated/custom/index.d.ts.map +1 -1
  176. package/lib/types/icons/wrapIcon.d.ts.map +1 -1
  177. package/lib/types/menu/stories/menu-custom-items.story.d.ts.map +1 -1
  178. package/lib/types/menu/stories/menu-default.story.d.ts.map +1 -1
  179. package/lib/types/menu/stories/menu-in-dialog.story.d.ts.map +1 -1
  180. package/lib/types/menu/stories/menu-in-popover.story.d.ts.map +1 -1
  181. package/lib/types/menu/stories/menu-nested.story.d.ts.map +1 -1
  182. package/lib/types/menu/stories/menu-placements.story.d.ts.map +1 -1
  183. package/lib/types/menu/stories/menu-with-category.story.d.ts.map +1 -1
  184. package/lib/types/menu/stories/menu-with-disabled-item.story.d.ts.map +1 -1
  185. package/lib/types/menu/stories/menu-with-divider.story.d.ts.map +1 -1
  186. package/lib/types/menu/stories/menu-with-icon.story.d.ts.map +1 -1
  187. package/lib/types/menu/stories/menu-with-keyboard-shortcuts.story.d.ts.map +1 -1
  188. package/lib/types/select/Select.d.ts.map +1 -1
  189. package/lib/types/side-navigation/SideNavigation.d.ts.map +1 -1
  190. package/lib/types/tabs/Tabs.d.ts.map +1 -1
  191. package/lib/types/tabs/stories/tabs-overflow.story.d.ts.map +1 -1
  192. package/lib/types/text-input/TextInput.d.ts +5 -1
  193. package/lib/types/text-input/TextInput.d.ts.map +1 -1
  194. package/lib/types/text-input/stories/index.d.ts +4 -0
  195. package/lib/types/text-input/stories/index.d.ts.map +1 -1
  196. package/lib/types/text-input/stories/text-input-clearable.story.d.ts +24 -0
  197. package/lib/types/text-input/stories/text-input-clearable.story.d.ts.map +1 -0
  198. package/lib/types/text-input/stories/text-input-loading-spinner.story.d.ts +24 -0
  199. package/lib/types/text-input/stories/text-input-loading-spinner.story.d.ts.map +1 -0
  200. package/lib/types/text-input/stories/text-input-with-icons.story.d.ts.map +1 -1
  201. package/lib/types/text-input/stories/text-input.stories.d.ts +3 -1
  202. package/lib/types/text-input/stories/text-input.stories.d.ts.map +1 -1
  203. package/package.json +2 -2
@@ -47,6 +47,7 @@ const Presence = (_a) => {
47
47
  const { theme } = (0, react_1.useNeedleTheme)();
48
48
  const Component = theme === 'light' ? icons_1.Neo4JAiColorLightIcon : icons_1.Neo4JAiColorDarkIcon;
49
49
  return ((0, jsx_runtime_1.jsx)(Component, Object.assign({ ref: ref, className: classes, style: style, htmlAttributes: htmlAttributes }, (isThinking === true && {
50
+ 'aria-hidden': 'false',
50
51
  'aria-label': 'Thinking',
51
52
  'aria-live': 'polite',
52
53
  role: 'status',
@@ -1 +1 @@
1
- {"version":3,"file":"Presence.js","sourceRoot":"","sources":["../../../../src/ai/presence/Presence.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,4CAAkD;AAClD,kDAGgC;AAChC,4DAAoC;AASpC,MAAM,QAAQ,GAAG,CAAC,EAOkB,EAAE,EAAE;QAPtB,EAChB,SAAS,EACT,UAAU,GAAG,KAAK,EAClB,KAAK,EACL,cAAc,EACd,GAAG,OAE+B,EAD/B,SAAS,cANI,6DAOjB,CADa;IAEZ,MAAM,OAAO,GAAG,IAAA,oBAAU,EAAC,iBAAiB,EAAE,SAAS,EAAE;QACvD,cAAc,EAAE,UAAU,KAAK,IAAI;KACpC,CAAC,CAAC;IACH,MAAM,EAAE,KAAK,EAAE,GAAG,IAAA,sBAAc,GAAE,CAAC;IAEnC,MAAM,SAAS,GACb,KAAK,KAAK,OAAO,CAAC,CAAC,CAAC,6BAAqB,CAAC,CAAC,CAAC,4BAAoB,CAAC;IAEnE,OAAO,CACL,uBAAC,SAAS,kBACR,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,OAAO,EAClB,KAAK,EAAE,KAAK,EACZ,cAAc,EAAE,cAAc,IAC1B,CAAC,UAAU,KAAK,IAAI,IAAI;QAC1B,YAAY,EAAE,UAAU;QACxB,WAAW,EAAE,QAAQ;QACrB,IAAI,EAAE,QAAQ;KACf,CAAC,EACE,SAAS,EACb,CACH,CAAC;AACJ,CAAC,CAAC;AAIO,4BAAQ;AAFjB,QAAQ,CAAC,WAAW,GAAG,UAAU,CAAC","sourcesContent":["/**\n *\n * Copyright (c) \"Neo4j\"\n * Neo4j Sweden AB [http://neo4j.com]\n *\n * This file is part of Neo4j.\n *\n * Neo4j is free software: you can redistribute it and/or modify\n * it under the terms of the GNU General Public License as published by\n * the Free Software Foundation, either version 3 of the License, or\n * (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n */\n\nimport { useNeedleTheme } from '@neo4j-ndl/react';\nimport {\n Neo4JAiColorDarkIcon,\n Neo4JAiColorLightIcon,\n} from '@neo4j-ndl/react/icons';\nimport classNames from 'classnames';\n\nimport type { CommonProps } from '../../_common/types';\n\ntype PresenceProps = {\n /** Whether the AI is thinking. Animates the underlying SVG */\n isThinking?: boolean;\n};\n\nconst Presence = ({\n className,\n isThinking = false,\n style,\n htmlAttributes,\n ref,\n ...restProps\n}: CommonProps<'svg', PresenceProps>) => {\n const classes = classNames('ndl-ai-presence', className, {\n 'ndl-thinking': isThinking === true,\n });\n const { theme } = useNeedleTheme();\n\n const Component =\n theme === 'light' ? Neo4JAiColorLightIcon : Neo4JAiColorDarkIcon;\n\n return (\n <Component\n ref={ref}\n className={classes}\n style={style}\n htmlAttributes={htmlAttributes}\n {...(isThinking === true && {\n 'aria-label': 'Thinking',\n 'aria-live': 'polite',\n role: 'status',\n })}\n {...restProps}\n />\n );\n};\n\nPresence.displayName = 'Presence';\n\nexport { Presence };\n"]}
1
+ {"version":3,"file":"Presence.js","sourceRoot":"","sources":["../../../../src/ai/presence/Presence.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,4CAAkD;AAClD,kDAGgC;AAChC,4DAAoC;AASpC,MAAM,QAAQ,GAAG,CAAC,EAOkB,EAAE,EAAE;QAPtB,EAChB,SAAS,EACT,UAAU,GAAG,KAAK,EAClB,KAAK,EACL,cAAc,EACd,GAAG,OAE+B,EAD/B,SAAS,cANI,6DAOjB,CADa;IAEZ,MAAM,OAAO,GAAG,IAAA,oBAAU,EAAC,iBAAiB,EAAE,SAAS,EAAE;QACvD,cAAc,EAAE,UAAU,KAAK,IAAI;KACpC,CAAC,CAAC;IACH,MAAM,EAAE,KAAK,EAAE,GAAG,IAAA,sBAAc,GAAE,CAAC;IAEnC,MAAM,SAAS,GACb,KAAK,KAAK,OAAO,CAAC,CAAC,CAAC,6BAAqB,CAAC,CAAC,CAAC,4BAAoB,CAAC;IAEnE,OAAO,CACL,uBAAC,SAAS,kBACR,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,OAAO,EAClB,KAAK,EAAE,KAAK,EACZ,cAAc,EAAE,cAAc,IAC1B,CAAC,UAAU,KAAK,IAAI,IAAI;QAC1B,aAAa,EAAE,OAAO;QACtB,YAAY,EAAE,UAAU;QACxB,WAAW,EAAE,QAAQ;QACrB,IAAI,EAAE,QAAQ;KACf,CAAC,EACE,SAAS,EACb,CACH,CAAC;AACJ,CAAC,CAAC;AAIO,4BAAQ;AAFjB,QAAQ,CAAC,WAAW,GAAG,UAAU,CAAC","sourcesContent":["/**\n *\n * Copyright (c) \"Neo4j\"\n * Neo4j Sweden AB [http://neo4j.com]\n *\n * This file is part of Neo4j.\n *\n * Neo4j is free software: you can redistribute it and/or modify\n * it under the terms of the GNU General Public License as published by\n * the Free Software Foundation, either version 3 of the License, or\n * (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n */\n\nimport { useNeedleTheme } from '@neo4j-ndl/react';\nimport {\n Neo4JAiColorDarkIcon,\n Neo4JAiColorLightIcon,\n} from '@neo4j-ndl/react/icons';\nimport classNames from 'classnames';\n\nimport type { CommonProps } from '../../_common/types';\n\ntype PresenceProps = {\n /** Whether the AI is thinking. Animates the underlying SVG */\n isThinking?: boolean;\n};\n\nconst Presence = ({\n className,\n isThinking = false,\n style,\n htmlAttributes,\n ref,\n ...restProps\n}: CommonProps<'svg', PresenceProps>) => {\n const classes = classNames('ndl-ai-presence', className, {\n 'ndl-thinking': isThinking === true,\n });\n const { theme } = useNeedleTheme();\n\n const Component =\n theme === 'light' ? Neo4JAiColorLightIcon : Neo4JAiColorDarkIcon;\n\n return (\n <Component\n ref={ref}\n className={classes}\n style={style}\n htmlAttributes={htmlAttributes}\n {...(isThinking === true && {\n 'aria-hidden': 'false',\n 'aria-label': 'Thinking',\n 'aria-live': 'polite',\n role: 'status',\n })}\n {...restProps}\n />\n );\n};\n\nPresence.displayName = 'Presence';\n\nexport { Presence };\n"]}
@@ -91,7 +91,7 @@ const BannerComponent = (_a) => {
91
91
  onClose(e);
92
92
  }
93
93
  };
94
- return ((0, jsx_runtime_1.jsxs)(Element, Object.assign({ className: classes, role: isAlert ? (isCloseable ? 'alertdialog' : 'alert') : undefined, ref: ref }, restProps, htmlAttributes, { children: [hasIcon && (0, jsx_runtime_1.jsx)(StatusIcon, { variant: variant }), (0, jsx_runtime_1.jsx)("div", { className: "ndl-banner-content", children: children }), isCloseable && ((0, jsx_runtime_1.jsx)(clean_icon_button_1.CleanIconButton, { size: "small", onClick: handleClose, description: "Close", children: (0, jsx_runtime_1.jsx)(icons_1.XMarkIconOutline, {}) }))] })));
94
+ return ((0, jsx_runtime_1.jsxs)(Element, Object.assign({ className: classes, role: isAlert ? 'alert' : undefined, ref: ref }, restProps, htmlAttributes, { children: [hasIcon && (0, jsx_runtime_1.jsx)(StatusIcon, { variant: variant }), (0, jsx_runtime_1.jsx)("div", { className: "ndl-banner-content", children: children }), isCloseable && ((0, jsx_runtime_1.jsx)(clean_icon_button_1.CleanIconButton, { size: "small", onClick: handleClose, description: "Close", children: (0, jsx_runtime_1.jsx)(icons_1.XMarkIconOutline, {}) }))] })));
95
95
  };
96
96
  const Banner = Object.assign(BannerComponent, {
97
97
  Actions: BannerActions,
@@ -1 +1 @@
1
- {"version":3,"file":"Banner.js","sourceRoot":"","sources":["../../../src/banner/Banner.tsx"],"names":[],"mappings":"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","sourcesContent":["/**\n *\n * Copyright (c) \"Neo4j\"\n * Neo4j Sweden AB [http://neo4j.com]\n *\n * This file is part of Neo4j.\n *\n * Neo4j is free software: you can redistribute it and/or modify\n * it under the terms of the GNU General Public License as published by\n * the Free Software Foundation, either version 3 of the License, or\n * (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n */\nimport classNames from 'classnames';\nimport type React from 'react';\n\nimport {\n type CommonProps,\n type PolymorphicCommonProps,\n} from '../_common/types';\nimport { CleanIconButton } from '../clean-icon-button';\nimport {\n BoltIconOutline,\n CheckCircleIconSolid,\n ExclamationCircleIconSolid,\n ExclamationTriangleIconSolid,\n InformationCircleIconSolid,\n XMarkIconOutline,\n} from '../icons';\nimport { Typography } from '../typography';\n/**\n *\n *\n * Types\n *\n *\n */\n\ntype BannerCommonProps = {\n /** Shows a status icon. The icon is based on the value of the `variant` prop */\n hasIcon?: boolean;\n\n /** Content to be shown in the banner. */\n children?: React.ReactNode;\n\n /** Sets the role to alert or alertdialog, based on the value of `isCloseable` */\n isAlert?: boolean;\n\n /** How the banner is used. */\n usage?: 'inline' | 'global';\n\n /** The variant of the banner */\n variant?: BannerVariant;\n};\n\ntype CloseableBannerProps = {\n /** If the banner is closeable. Renders an icon button in the top right corner */\n isCloseable: true;\n\n /** Event handler for when the close icon is clicked */\n onClose: (\n e?: React.MouseEvent<HTMLElement> | React.KeyboardEvent<HTMLElement>,\n ) => void;\n};\n\ntype NonCloseableBannerProps = {\n isCloseable?: false;\n onClose?: never;\n};\n\ntype BannerCloseProps = CloseableBannerProps | NonCloseableBannerProps;\n\ntype BannerProps = BannerCommonProps & BannerCloseProps;\ntype BannerVariant = 'info' | 'success' | 'warning' | 'danger' | 'neutral';\n\nconst StatusIcon = ({ variant }: { variant: BannerVariant }) => {\n const iconComponent = (() => {\n switch (variant) {\n case 'success':\n return <CheckCircleIconSolid />;\n case 'warning':\n return <ExclamationTriangleIconSolid />;\n case 'danger':\n return <ExclamationCircleIconSolid />;\n case 'info':\n return <InformationCircleIconSolid />;\n case 'neutral':\n return <BoltIconOutline />;\n default:\n return null;\n }\n })();\n\n return <div className=\"ndl-banner-status-icon\">{iconComponent}</div>;\n};\n\nconst BannerHeader = ({\n children,\n className,\n style,\n htmlAttributes,\n ref,\n ...restProps\n}: CommonProps<'span', { children: React.ReactNode }>) => {\n const classes = classNames('ndl-banner-header', className);\n return (\n <Typography\n as=\"span\"\n variant=\"title-4\"\n className={classes}\n style={style}\n ref={ref}\n htmlAttributes={htmlAttributes}\n {...restProps}\n >\n {children}\n </Typography>\n );\n};\n\nconst BannerDescription = ({\n children,\n className,\n style,\n htmlAttributes,\n ref,\n ...restProps\n}: CommonProps<'div', { children: React.ReactNode }>) => {\n const classes = classNames('ndl-banner-description', className);\n return (\n <Typography\n as=\"div\"\n variant=\"body-medium\"\n className={classes}\n style={style}\n ref={ref}\n {...restProps}\n {...htmlAttributes}\n >\n {children}\n </Typography>\n );\n};\n\nconst BannerActions = ({\n children,\n className,\n style,\n htmlAttributes,\n ref,\n ...restProps\n}: CommonProps<'div', { children: React.ReactNode }>) => {\n const classes = classNames('ndl-banner-actions', className);\n return (\n <div\n className={classes}\n style={style}\n ref={ref}\n {...restProps}\n {...htmlAttributes}\n >\n {children}\n </div>\n );\n};\n\nconst BannerComponent = <T extends React.ElementType = 'section'>({\n as,\n variant = 'info',\n hasIcon = false,\n onClose,\n className,\n children,\n isCloseable = false,\n usage = 'inline',\n htmlAttributes,\n isAlert = false,\n ref,\n ...restProps\n}: PolymorphicCommonProps<T, BannerProps>) => {\n const Element: React.ElementType = as ?? 'section';\n\n const classes = classNames('ndl-banner', className, {\n 'ndl-danger': variant === 'danger',\n 'ndl-global': usage === 'global',\n 'ndl-info': variant === 'info',\n 'ndl-inline': usage === 'inline',\n 'ndl-neutral': variant === 'neutral',\n 'ndl-success': variant === 'success',\n 'ndl-warning': variant === 'warning',\n });\n\n const handleClose = (\n e:\n | React.MouseEvent<HTMLElement, MouseEvent>\n | React.KeyboardEvent<HTMLElement>,\n ) => {\n if (onClose && typeof onClose === 'function') {\n onClose(e);\n }\n };\n\n return (\n <Element\n className={classes}\n role={isAlert ? (isCloseable ? 'alertdialog' : 'alert') : undefined}\n ref={ref}\n {...restProps}\n {...htmlAttributes}\n >\n {hasIcon && <StatusIcon variant={variant} />}\n <div className=\"ndl-banner-content\">{children}</div>\n {isCloseable && (\n <CleanIconButton size=\"small\" onClick={handleClose} description=\"Close\">\n <XMarkIconOutline />\n </CleanIconButton>\n )}\n </Element>\n );\n};\n\nconst Banner = Object.assign(BannerComponent, {\n Actions: BannerActions,\n Description: BannerDescription,\n Header: BannerHeader,\n});\n\nexport { Banner };\n"]}
1
+ {"version":3,"file":"Banner.js","sourceRoot":"","sources":["../../../src/banner/Banner.tsx"],"names":[],"mappings":"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","sourcesContent":["/**\n *\n * Copyright (c) \"Neo4j\"\n * Neo4j Sweden AB [http://neo4j.com]\n *\n * This file is part of Neo4j.\n *\n * Neo4j is free software: you can redistribute it and/or modify\n * it under the terms of the GNU General Public License as published by\n * the Free Software Foundation, either version 3 of the License, or\n * (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n */\nimport classNames from 'classnames';\nimport type React from 'react';\n\nimport {\n type CommonProps,\n type PolymorphicCommonProps,\n} from '../_common/types';\nimport { CleanIconButton } from '../clean-icon-button';\nimport {\n BoltIconOutline,\n CheckCircleIconSolid,\n ExclamationCircleIconSolid,\n ExclamationTriangleIconSolid,\n InformationCircleIconSolid,\n XMarkIconOutline,\n} from '../icons';\nimport { Typography } from '../typography';\n/**\n *\n *\n * Types\n *\n *\n */\n\ntype BannerCommonProps = {\n /** Shows a status icon. The icon is based on the value of the `variant` prop */\n hasIcon?: boolean;\n\n /** Content to be shown in the banner. */\n children?: React.ReactNode;\n\n /** Sets the role to alert or alertdialog, based on the value of `isCloseable` */\n isAlert?: boolean;\n\n /** How the banner is used. */\n usage?: 'inline' | 'global';\n\n /** The variant of the banner */\n variant?: BannerVariant;\n};\n\ntype CloseableBannerProps = {\n /** If the banner is closeable. Renders an icon button in the top right corner */\n isCloseable: true;\n\n /** Event handler for when the close icon is clicked */\n onClose: (\n e?: React.MouseEvent<HTMLElement> | React.KeyboardEvent<HTMLElement>,\n ) => void;\n};\n\ntype NonCloseableBannerProps = {\n isCloseable?: false;\n onClose?: never;\n};\n\ntype BannerCloseProps = CloseableBannerProps | NonCloseableBannerProps;\n\ntype BannerProps = BannerCommonProps & BannerCloseProps;\ntype BannerVariant = 'info' | 'success' | 'warning' | 'danger' | 'neutral';\n\nconst StatusIcon = ({ variant }: { variant: BannerVariant }) => {\n const iconComponent = (() => {\n switch (variant) {\n case 'success':\n return <CheckCircleIconSolid />;\n case 'warning':\n return <ExclamationTriangleIconSolid />;\n case 'danger':\n return <ExclamationCircleIconSolid />;\n case 'info':\n return <InformationCircleIconSolid />;\n case 'neutral':\n return <BoltIconOutline />;\n default:\n return null;\n }\n })();\n\n return <div className=\"ndl-banner-status-icon\">{iconComponent}</div>;\n};\n\nconst BannerHeader = ({\n children,\n className,\n style,\n htmlAttributes,\n ref,\n ...restProps\n}: CommonProps<'span', { children: React.ReactNode }>) => {\n const classes = classNames('ndl-banner-header', className);\n return (\n <Typography\n as=\"span\"\n variant=\"title-4\"\n className={classes}\n style={style}\n ref={ref}\n htmlAttributes={htmlAttributes}\n {...restProps}\n >\n {children}\n </Typography>\n );\n};\n\nconst BannerDescription = ({\n children,\n className,\n style,\n htmlAttributes,\n ref,\n ...restProps\n}: CommonProps<'div', { children: React.ReactNode }>) => {\n const classes = classNames('ndl-banner-description', className);\n return (\n <Typography\n as=\"div\"\n variant=\"body-medium\"\n className={classes}\n style={style}\n ref={ref}\n {...restProps}\n {...htmlAttributes}\n >\n {children}\n </Typography>\n );\n};\n\nconst BannerActions = ({\n children,\n className,\n style,\n htmlAttributes,\n ref,\n ...restProps\n}: CommonProps<'div', { children: React.ReactNode }>) => {\n const classes = classNames('ndl-banner-actions', className);\n return (\n <div\n className={classes}\n style={style}\n ref={ref}\n {...restProps}\n {...htmlAttributes}\n >\n {children}\n </div>\n );\n};\n\nconst BannerComponent = <T extends React.ElementType = 'section'>({\n as,\n variant = 'info',\n hasIcon = false,\n onClose,\n className,\n children,\n isCloseable = false,\n usage = 'inline',\n htmlAttributes,\n isAlert = false,\n ref,\n ...restProps\n}: PolymorphicCommonProps<T, BannerProps>) => {\n const Element: React.ElementType = as ?? 'section';\n\n const classes = classNames('ndl-banner', className, {\n 'ndl-danger': variant === 'danger',\n 'ndl-global': usage === 'global',\n 'ndl-info': variant === 'info',\n 'ndl-inline': usage === 'inline',\n 'ndl-neutral': variant === 'neutral',\n 'ndl-success': variant === 'success',\n 'ndl-warning': variant === 'warning',\n });\n\n const handleClose = (\n e:\n | React.MouseEvent<HTMLElement, MouseEvent>\n | React.KeyboardEvent<HTMLElement>,\n ) => {\n if (onClose && typeof onClose === 'function') {\n onClose(e);\n }\n };\n\n return (\n <Element\n className={classes}\n role={isAlert ? 'alert' : undefined}\n ref={ref}\n {...restProps}\n {...htmlAttributes}\n >\n {hasIcon && <StatusIcon variant={variant} />}\n <div className=\"ndl-banner-content\">{children}</div>\n {isCloseable && (\n <CleanIconButton size=\"small\" onClick={handleClose} description=\"Close\">\n <XMarkIconOutline />\n </CleanIconButton>\n )}\n </Element>\n );\n};\n\nconst Banner = Object.assign(BannerComponent, {\n Actions: BannerActions,\n Description: BannerDescription,\n Header: BannerHeader,\n});\n\nexport { Banner };\n"]}
@@ -329,7 +329,7 @@ const TableResults = (_a) => {
329
329
  if (isSmallNavigation) {
330
330
  return null;
331
331
  }
332
- return ((0, jsx_runtime_1.jsx)(skeleton_1.Skeleton, Object.assign({ as: "span", onBackground: "weak", shape: "rectangular" }, skeletonProps, { isLoading: isSkeletonLoading, children: (0, jsx_runtime_1.jsx)("span", Object.assign({ ref: ref, style: style, className: (0, classnames_1.default)('ndl-data-grid-results', className) }, restProps, htmlAttributes, { children: children || ((0, jsx_runtime_1.jsxs)("span", { children: ["Showing", ' ', (0, jsx_runtime_1.jsx)("b", { children: totalRows ? `${from}${to !== from ? `-${to}` : ''}` : 0 }), " of", ' ', (0, jsx_runtime_1.jsx)("b", { children: totalRows }), " ", resultsLabel] })) })) })));
332
+ return ((0, jsx_runtime_1.jsx)(skeleton_1.Skeleton, Object.assign({ as: "span", onBackground: "weak", shape: "rectangular" }, skeletonProps, { isLoading: isSkeletonLoading, children: (0, jsx_runtime_1.jsx)("span", Object.assign({ ref: ref, style: style, className: (0, classnames_1.default)('ndl-data-grid-results', className) }, restProps, htmlAttributes, { children: children || ((0, jsx_runtime_1.jsxs)("span", { children: ["Showing", ' ', (0, jsx_runtime_1.jsx)("span", { className: "n-font-bold", children: totalRows ? `${from}${to !== from ? `-${to}` : ''}` : 0 }), ' ', "of ", (0, jsx_runtime_1.jsx)("span", { className: "n-font-bold", children: totalRows }), " ", resultsLabel] })) })) })));
333
333
  };
334
334
  exports.TableResults = TableResults;
335
335
  const RowsPerPage = (_a) => {
@@ -1 +1 @@
1
- {"version":3,"file":"Components.js","sourceRoot":"","sources":["../../../src/data-grid/Components.tsx"],"names":[],"mappings":"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","sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\n\n/**\n *\n * Copyright (c) \"Neo4j\"\n * Neo4j Sweden AB [http://neo4j.com]\n *\n * This file is part of Neo4j.\n *\n * Neo4j is free software: you can redistribute it and/or modify\n * it under the terms of the GNU General Public License as published by\n * the Free Software Foundation, either version 3 of the License, or\n * (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n */\nimport { useMergeRefs } from '@floating-ui/react';\nimport {\n type Cell,\n type CellContext,\n flexRender,\n type Header as HeaderType,\n type Row,\n type RowData,\n type SortDirection,\n} from '@tanstack/react-table';\nimport classNames from 'classnames';\nimport type React from 'react';\nimport {\n Fragment,\n useCallback,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from 'react';\n\nimport {\n type CommonProps,\n type PolymorphicCommonProps,\n} from '../_common/types';\nimport { CleanIconButton } from '../clean-icon-button';\nimport {\n Bars3CenterLeftIconOutline,\n BarsArrowDownIconOutline,\n BarsArrowUpIconOutline,\n ChevronDownIconSolid,\n ChevronLeftIconOutline,\n ChevronRightIconOutline,\n DataGridCrossIcon,\n EllipsisHorizontalIconOutline,\n} from '../icons';\nimport { LoadingSpinner } from '../loading-spinner';\nimport { Menu } from '../menu';\nimport { Select } from '../select';\nimport { Skeleton } from '../skeleton';\nimport { Typography } from '../typography';\nimport { useDataGridContext } from './data-grid-context';\nimport { type ColumnAction } from './datagrid-types';\nimport {\n resizeColumn,\n ResizeDirection,\n userFriendlyPagination,\n} from './helpers';\n\n/** Table results per page, with the first option being the default */\nconst TABLE_RESULTS = {\n DEFAULT: 10,\n values: [10, 25, 50, 100],\n} as const;\n\ntype paginationOption = {\n value: number;\n label: string;\n};\n\nconst getPaginationOptions = (pageSize: number): paginationOption[] => {\n return [...new Set([...TABLE_RESULTS.values, pageSize])]\n .sort((a, b) => a - b)\n .map((option) => ({\n label: `${option}`,\n value: option,\n }));\n};\n\nexport const DEFAULT_SORT_ACTIONS: (cell: HeaderType<any, unknown>) => {\n [key in SortDirection | 'default']: ColumnAction;\n} = (cell) => ({\n asc: {\n icon: <BarsArrowUpIconOutline />,\n onClick: () => cell.column.toggleSorting(false),\n title: 'Sort ascending',\n },\n default: {\n icon: <Bars3CenterLeftIconOutline />,\n onClick: () => cell.column.clearSorting(),\n title: 'Default sort',\n },\n desc: {\n icon: <BarsArrowDownIconOutline />,\n onClick: () => cell.column.toggleSorting(true),\n title: 'Sort descending',\n },\n});\n\ntype ResizingBarProps<T extends RowData> = {\n header: HeaderType<T, unknown>;\n};\n\nconst ResizingBar = <T extends RowData>({\n header,\n className,\n style,\n htmlAttributes,\n ref,\n ...restProps\n}: CommonProps<'button', ResizingBarProps<T>>) => {\n const { isKeyboardNavigationEnabled } = useDataGridContext<T>();\n\n const handleKeyDown = (event: React.KeyboardEvent<HTMLButtonElement>) => {\n if (event.key === 'ArrowLeft') {\n event.stopPropagation();\n event.preventDefault();\n resizeColumn(ResizeDirection.LEFT, header);\n } else if (event.key === 'ArrowRight') {\n event.stopPropagation();\n event.preventDefault();\n resizeColumn(ResizeDirection.RIGHT, header);\n }\n };\n\n return (\n <button\n ref={ref}\n type=\"button\"\n className={classNames('ndl-data-grid-resizer', className, {\n 'ndl-data-grid-is-resizing': header.column.getIsResizing(),\n })}\n style={style}\n onMouseDown={header.getResizeHandler()}\n onTouchStart={header.getResizeHandler()}\n onKeyDown={handleKeyDown}\n aria-label=\"Resizing bar\"\n tabIndex={isKeyboardNavigationEnabled ? -1 : 0}\n {...restProps}\n {...htmlAttributes}\n />\n );\n};\n\ntype ScrollableProps = {\n children?: React.ReactNode;\n};\n\nconst Scrollable = ({\n children,\n ref,\n className,\n style,\n htmlAttributes,\n ...restProps\n}: CommonProps<'div', ScrollableProps> & {\n ref: React.RefObject<HTMLDivElement | null>;\n}) => {\n return (\n <div\n ref={ref}\n style={style}\n className={classNames('ndl-data-grid-scrollable', className)}\n {...restProps}\n {...htmlAttributes}\n >\n {children}\n </div>\n );\n};\n\ntype HeaderProps = {\n children?: React.ReactNode;\n};\n\nconst Header = ({\n children,\n className,\n style,\n htmlAttributes,\n ref,\n ...restProps\n}: CommonProps<'div', HeaderProps>) => {\n const { tableProps, components } = useDataGridContext();\n const { getHeaderGroups, getState } = tableProps;\n\n return (\n <div\n role=\"rowgroup\"\n className={classNames('ndl-data-grid-thead', className, {\n 'ndl-data-grid-is-resizing':\n getState().columnSizingInfo.isResizingColumn,\n })}\n style={style}\n ref={ref}\n {...restProps}\n {...htmlAttributes}\n >\n {children || (\n <>\n {getHeaderGroups().map((headerGroup) => (\n <div key={headerGroup.id} className=\"ndl-data-grid-tr\" role=\"row\">\n {headerGroup.headers.map(\n (header) =>\n components.HeaderCell && (\n <components.HeaderCell key={header.id} cell={header} />\n ),\n )}\n </div>\n ))}\n </>\n )}\n </div>\n );\n};\n\ntype ActionButtonProps = {\n action: ColumnAction;\n onClose: () => void;\n};\n\nexport const ActionButton = <T extends React.ElementType = 'button'>({\n action,\n onClose,\n as,\n className,\n style,\n htmlAttributes,\n ref,\n ...restProps\n}: PolymorphicCommonProps<T, ActionButtonProps>) => {\n const { onClick, ...restAction } = action;\n\n const interceptedOnClick = useCallback(\n (e: any) => {\n const providedOnClick = onClick ?? action.onClick;\n if (typeof providedOnClick === 'function') {\n providedOnClick(e);\n }\n onClose?.();\n },\n [action.onClick, onClick, onClose],\n );\n\n return (\n <Menu.Item\n onClick={interceptedOnClick}\n as={as}\n className={className}\n style={style}\n htmlAttributes={htmlAttributes}\n ref={ref}\n {...restAction}\n {...restProps}\n />\n );\n};\n\nexport interface ActionCellProps<T extends RowData> {\n cell?: CellContext<T, unknown>;\n innerCleanIconButtonProps?: Partial<\n React.ComponentPropsWithoutRef<typeof CleanIconButton>\n >;\n innerMenuProps?: Partial<React.ComponentProps<typeof Menu>>;\n}\n\nconst ActionCell = <T extends RowData>({\n cell,\n innerCleanIconButtonProps,\n innerMenuProps,\n}: ActionCellProps<T>) => {\n const { components, isSkeletonLoading, portalTarget } =\n useDataGridContext<T>();\n const actionsButtonRef = useRef<HTMLButtonElement>(null);\n const [isActionsOpen, setIsActionsOpen] = useState(false);\n\n if (\n !cell ||\n !cell.column.columnDef.meta ||\n typeof cell.column.columnDef?.meta?.isActionCell !== 'object'\n ) {\n return null;\n }\n\n const { actions, onOpenChange } = cell.column.columnDef.meta.isActionCell;\n\n if (isSkeletonLoading) {\n return null;\n }\n\n return (\n <>\n <CleanIconButton\n as=\"button\"\n size=\"medium\"\n description=\"Actions\"\n ref={actionsButtonRef}\n isActive={isActionsOpen}\n onClick={() => {\n onOpenChange?.(!isActionsOpen);\n setIsActionsOpen(!isActionsOpen);\n }}\n {...innerCleanIconButtonProps}\n htmlAttributes={{\n tabIndex: 0,\n ...innerCleanIconButtonProps?.htmlAttributes,\n }}\n >\n {innerCleanIconButtonProps?.children || (\n <EllipsisHorizontalIconOutline />\n )}\n </CleanIconButton>\n <Menu\n isOpen={isActionsOpen}\n anchorRef={actionsButtonRef}\n onClose={() => {\n onOpenChange?.(false);\n setIsActionsOpen(false);\n }}\n {...innerMenuProps}\n portalTarget={portalTarget}\n >\n {innerMenuProps?.children || (\n <Menu.Items>\n {actions.map(\n (action, i) =>\n components.ActionButton && (\n <components.ActionButton\n key={`${cell.column.id}-action-${i}`}\n action={{\n ...action,\n onClick: (e) => {\n action.onClick?.(e, cell);\n },\n }}\n onClose={() => setIsActionsOpen(false)}\n />\n ),\n )}\n </Menu.Items>\n )}\n </Menu>\n </>\n );\n};\n\ntype ColumnControlsProps<T extends RowData> = {\n cell: HeaderType<T, unknown>;\n children?: React.ReactNode;\n};\n\nexport const ColumnControls = <T extends RowData>({\n cell,\n children,\n className,\n style,\n htmlAttributes,\n ref,\n ...restProps\n}: CommonProps<'div', ColumnControlsProps<T>>) => {\n const { components, portalTarget } = useDataGridContext();\n\n const sort = cell.column.getIsSorted();\n const canSort = cell.column.getCanSort();\n const { hasDefaultSortingActions = true, actions } =\n cell.column.columnDef.meta?.columnActions || {};\n\n const sortingActions = useMemo(() => {\n if (canSort) {\n if (sort !== 'asc' && sort !== 'desc') {\n return [\n DEFAULT_SORT_ACTIONS(cell).asc,\n DEFAULT_SORT_ACTIONS(cell).desc,\n ];\n }\n if (sort === 'asc') {\n return [\n DEFAULT_SORT_ACTIONS(cell).default,\n DEFAULT_SORT_ACTIONS(cell).desc,\n ];\n }\n if (sort === 'desc') {\n return [\n DEFAULT_SORT_ACTIONS(cell).default,\n DEFAULT_SORT_ACTIONS(cell).asc,\n ];\n }\n }\n // Default case\n return [];\n }, [sort, cell, canSort]);\n\n const newActions: ColumnAction[] = [\n ...(hasDefaultSortingActions ? sortingActions : []),\n ...(actions ?? []),\n ];\n\n const actionsButtonRef = useRef<HTMLButtonElement>(null);\n const [isActionsOpen, setIsActionsOpen] = useState(false);\n\n if (!actions || actions.length === 0) {\n return null;\n }\n\n return newActions.length > 0 ? (\n <div\n ref={ref}\n className={classNames('ndl-header-action-group', className)}\n style={style}\n {...restProps}\n {...htmlAttributes}\n >\n {children || (\n <Fragment>\n <CleanIconButton\n size=\"small\"\n description=\"Actions\"\n ref={actionsButtonRef}\n isActive={isActionsOpen}\n onClick={() => {\n setIsActionsOpen(!isActionsOpen);\n }}\n htmlAttributes={{\n tabIndex: 0,\n }}\n >\n <ChevronDownIconSolid />\n </CleanIconButton>\n <Menu\n isOpen={isActionsOpen}\n anchorRef={actionsButtonRef}\n onClose={() => setIsActionsOpen(false)}\n portalTarget={portalTarget}\n >\n <Menu.Items>\n {newActions.map(\n (action, i) =>\n components.ActionButton && (\n <components.ActionButton\n key={`${cell.column.id}-action-${i}`}\n action={action}\n onClose={() => setIsActionsOpen(false)}\n />\n ),\n )}\n </Menu.Items>\n </Menu>\n </Fragment>\n )}\n </div>\n ) : null;\n};\n\ntype HeaderCellProps<T> = {\n cell: HeaderType<T, unknown>;\n children?: React.ReactNode;\n};\n\nconst HeaderCell = <T extends RowData>({\n cell,\n children,\n className,\n style,\n htmlAttributes,\n ref,\n ...restProps\n}: CommonProps<'div', HeaderCellProps<T>>) => {\n const { components, isResizable, isKeyboardNavigationEnabled } =\n useDataGridContext<T>();\n\n const sort = cell.column.getIsSorted();\n const canSort = cell.column.getCanSort();\n\n const ariaSortRole = useMemo(() => {\n switch (sort) {\n case 'asc':\n return 'ascending';\n case 'desc':\n return 'descending';\n default:\n return 'none';\n }\n }, [sort]);\n\n const Icon = useMemo(() => {\n switch (sort) {\n case 'asc':\n return <BarsArrowUpIconOutline className=\"ndl-header-icon\" />;\n case 'desc':\n return <BarsArrowDownIconOutline className=\"ndl-header-icon\" />;\n default:\n return (\n <Bars3CenterLeftIconOutline className=\"ndl-hoverable-indicator ndl-header-icon\" />\n );\n }\n }, [sort]);\n\n const ariaDescription = useMemo(() => {\n return canSort\n ? `Press ENTER or SPACE to sort column ${cell.column.id}`\n : `Column id: ${cell.column.id}`;\n }, [canSort, cell.column.id]);\n\n const isActionColumn = useMemo(\n () => typeof cell.column.columnDef.meta?.isActionCell === 'object',\n [cell.column.columnDef.meta],\n );\n\n const Tag = canSort ? 'button' : 'div';\n\n const InnerHeaderCell = () => (\n <div className=\"ndl-header-cell\">\n {cell.isPlaceholder\n ? null\n : flexRender(cell.column.columnDef.header, cell.getContext())}\n {canSort && Icon}\n </div>\n );\n\n return (\n <div\n ref={ref}\n tabIndex={isKeyboardNavigationEnabled && !isActionColumn ? 0 : undefined}\n key={cell.id}\n role=\"columnheader\"\n className={classNames('ndl-data-grid-th', className, {\n 'ndl-focusable-cell': isKeyboardNavigationEnabled,\n 'ndl-data-grid-row-action': isActionColumn,\n 'ndl-data-grid-pinned-cell': cell.column.getIsPinned(),\n 'ndl-data-grid-pinned-cell-right':\n cell.column.getIsPinned() === 'right',\n 'ndl-data-grid-pinned-cell-left': cell.column.getIsPinned() === 'left',\n 'ndl-data-grid-is-resizing': cell.column.getIsResizing(),\n })}\n aria-sort={ariaSortRole}\n style={{\n ...style,\n width: isActionColumn ? 40 : cell.getSize(),\n maxWidth: cell.column.columnDef.maxSize\n ? `${cell.column.columnDef.maxSize}px`\n : 'none',\n }}\n {...(isKeyboardNavigationEnabled\n ? {\n onKeyDown: (e) => {\n if (\n isResizable &&\n e.altKey &&\n (e.key === 'ArrowLeft' || e.key === 'ArrowRight')\n ) {\n const direction =\n e.key === 'ArrowLeft'\n ? ResizeDirection.LEFT\n : ResizeDirection.RIGHT;\n resizeColumn(direction, cell);\n e.preventDefault();\n e.stopPropagation();\n return;\n }\n },\n }\n : {})}\n {...restProps}\n {...htmlAttributes}\n >\n {children || (\n <>\n <Tag\n className=\"ndl-header-group\"\n style={{\n cursor: canSort ? 'pointer' : 'default',\n }}\n aria-description={ariaDescription}\n onClick={() => canSort && cell.column.toggleSorting()}\n tabIndex={canSort ? 0 : undefined}\n >\n {components.HeaderTitle ? (\n <components.HeaderTitle cell={cell}>\n <InnerHeaderCell />\n </components.HeaderTitle>\n ) : (\n <InnerHeaderCell />\n )}\n </Tag>\n {/* Column actions*/}\n {components.ColumnControls && (\n <components.ColumnControls cell={cell} />\n )}\n {/* Resizer*/}\n {isResizable &&\n cell.column.getCanResize() &&\n components.ResizingBar && <components.ResizingBar header={cell} />}\n </>\n )}\n </div>\n );\n};\n\ntype HeaderTitleProps<T> = {\n cell: HeaderType<T, unknown>;\n children?: React.ReactNode;\n};\n\nconst HeaderTitle = <T extends RowData>({\n cell,\n children,\n className,\n style,\n htmlAttributes,\n ref,\n ...restProps\n}: CommonProps<'div', HeaderTitleProps<T>>) => {\n const { column, id } = cell;\n const title =\n typeof column.columnDef.header === 'string' ? column.columnDef.header : id;\n return (\n <div\n ref={ref}\n className={className}\n title={title}\n style={style}\n {...restProps}\n {...htmlAttributes}\n >\n {children}\n </div>\n );\n};\n\ntype BodyProps = {\n children?: React.ReactNode;\n};\n\nconst Body = ({\n children,\n className,\n style,\n htmlAttributes,\n ref,\n ...restProps\n}: CommonProps<'div', BodyProps>) => {\n const { tableProps, components, isLoading } = useDataGridContext();\n const { getRowModel } = tableProps;\n\n return (\n <div\n ref={ref}\n style={style}\n className={classNames('ndl-data-grid-tbody', className)}\n role=\"rowgroup\"\n aria-busy={isLoading ? 'true' : 'false'}\n {...restProps}\n {...htmlAttributes}\n >\n {children || (\n <>\n {isLoading && components.LoadingPlaceholder && (\n <components.LoadingPlaceholder />\n )}\n\n {!isLoading &&\n getRowModel().rows.length === 0 &&\n components.NoDataPlaceholder && <components.NoDataPlaceholder />}\n\n {!isLoading &&\n getRowModel().rows.map(\n (row, idx) =>\n components.BodyRow && (\n <components.BodyRow key={`table-row-${idx}`} row={row} />\n ),\n )}\n </>\n )}\n </div>\n );\n};\n\ntype BodyCellProps<T extends RowData> = {\n cell: Cell<T, unknown>;\n children?: React.ReactNode;\n};\n\nconst BodyCell = <T extends RowData>({\n cell,\n children,\n className,\n style,\n htmlAttributes,\n ref,\n ...restProps\n}: CommonProps<'div', BodyCellProps<T>>) => {\n const isResizing = cell.column.getIsResizing();\n\n const isActionColumn = Boolean(cell.column.columnDef.meta?.isActionCell);\n const isInlineEditCell = Boolean(\n cell.column.columnDef.meta?.isInlineEditCell,\n );\n const isDropDownCell = Boolean(cell.column.columnDef.meta?.isDropDownCell);\n const isCustomCell = isActionColumn || isDropDownCell;\n const { isKeyboardNavigationEnabled, isSkeletonLoading, skeletonProps } =\n useDataGridContext();\n return (\n <div\n ref={ref}\n key={cell.id}\n className={classNames('ndl-data-grid-td', className, {\n 'ndl-focusable-cell': isKeyboardNavigationEnabled,\n 'ndl-data-grid-is-resizing': isResizing,\n 'ndl-data-grid-custom-cell': isCustomCell,\n 'ndl-data-grid-row-action': isActionColumn,\n 'ndl-data-grid-inline-edit': isInlineEditCell,\n 'ndl-data-grid-dropdown-cell': isDropDownCell,\n 'ndl-data-grid-pinned-cell': cell.column.getIsPinned(),\n 'ndl-data-grid-pinned-cell-right':\n cell.column.getIsPinned() === 'right',\n 'ndl-data-grid-pinned-cell-left': cell.column.getIsPinned() === 'left',\n })}\n role=\"cell\"\n tabIndex={isKeyboardNavigationEnabled ? 0 : undefined}\n style={{\n ...style,\n width: isActionColumn ? 40 : cell.column.getSize(),\n }}\n {...restProps}\n {...htmlAttributes}\n >\n <Skeleton\n onBackground=\"weak\"\n shape=\"rectangular\"\n width=\"100%\"\n {...skeletonProps}\n isLoading={isSkeletonLoading && !isActionColumn}\n >\n {children || flexRender(cell.column.columnDef.cell, cell.getContext())}\n </Skeleton>\n </div>\n );\n};\n\ntype BodyRowProps<T extends RowData> = {\n row: Row<T>;\n children?: React.ReactNode;\n};\n\nconst BodyRow = <T extends RowData>({\n row,\n children,\n className,\n style,\n htmlAttributes,\n ref,\n ...restProps\n}: CommonProps<'div', BodyRowProps<T>>) => {\n const { components } = useDataGridContext<T>();\n\n return (\n <div\n key={row.id}\n ref={ref}\n style={style}\n className={classNames('ndl-data-grid-tr', className)}\n role=\"row\"\n {...restProps}\n {...htmlAttributes}\n >\n {children || (\n <>\n {row\n .getVisibleCells()\n .map(\n (cell) =>\n components.BodyCell && (\n <components.BodyCell key={cell.id} cell={cell} />\n ),\n )}\n </>\n )}\n </div>\n );\n};\n\ntype TableResultProps = {\n manualPagination?: {\n from: number;\n to: number;\n totalRows: number;\n };\n children?: React.ReactNode;\n /**\n * The label to use for the results, meaning the word \"results\" in the sentence \"Showing X-Y of Z results\".\n * @defaultValue 'results'\n */\n resultsLabel?: string;\n};\n\nconst TableResults = ({\n manualPagination,\n children,\n className,\n style,\n htmlAttributes,\n ref,\n resultsLabel = 'results',\n ...restProps\n}: CommonProps<'span', TableResultProps>) => {\n const { tableProps, isSkeletonLoading, skeletonProps, isSmallNavigation } =\n useDataGridContext();\n const { getState, getRowModel, getCoreRowModel } = tableProps;\n const {\n pagination: { pageSize, pageIndex },\n } = getState();\n const { rows } = getRowModel();\n\n const { from, to, totalRows } = useMemo(\n () =>\n manualPagination || {\n from: 1 + pageIndex * pageSize,\n to: rows.length + pageIndex * pageSize,\n totalRows: getCoreRowModel().rows.length,\n },\n [pageIndex, pageSize, manualPagination, rows, getCoreRowModel],\n );\n\n if (isSmallNavigation) {\n return null;\n }\n\n return (\n <Skeleton\n as=\"span\"\n onBackground=\"weak\"\n shape=\"rectangular\"\n {...skeletonProps}\n isLoading={isSkeletonLoading}\n >\n <span\n ref={ref}\n style={style}\n className={classNames('ndl-data-grid-results', className)}\n {...restProps}\n {...htmlAttributes}\n >\n {children || (\n <span>\n Showing{' '}\n <b>{totalRows ? `${from}${to !== from ? `-${to}` : ''}` : 0}</b> of{' '}\n <b>{totalRows}</b> {resultsLabel}\n </span>\n )}\n </span>\n </Skeleton>\n );\n};\n\ntype RowsPerPageProps = {\n /**\n * The target element to portal the menu of the select component to.\n * Should be document.body normally, or the modal root if the select is inside a modal.\n * Defaults to the portalTarget prop of the DataGrid root component.\n */\n portalTarget?: HTMLElement | null;\n children?: React.ReactNode;\n};\n\nconst RowsPerPage = ({\n portalTarget: portalTargetProp,\n children,\n className,\n style,\n htmlAttributes,\n ref,\n ...restProps\n}: CommonProps<'div', RowsPerPageProps>) => {\n const { tableProps, portalTarget } = useDataGridContext();\n\n const { setPageSize, getState } = tableProps;\n\n const {\n pagination: { pageSize },\n } = getState();\n\n const paginationOptions = getPaginationOptions(pageSize);\n const defaultPaginationOption = paginationOptions.find(\n (option) => option.value === pageSize,\n );\n\n const menuPortalTarget =\n portalTargetProp === undefined ? portalTarget : portalTargetProp;\n\n return (\n <div\n ref={ref}\n style={style}\n className={classNames('ndl-data-grid-rows-per-page', className)}\n {...restProps}\n {...htmlAttributes}\n >\n {children || (\n <>\n Show\n <Select\n type=\"select\"\n size=\"medium\"\n ariaLabel=\"Select page size\"\n selectProps={{\n defaultValue: defaultPaginationOption,\n isSearchable: false,\n menuPortalTarget: menuPortalTarget,\n menuPosition: 'fixed',\n onChange: (option) => {\n if (option) {\n setPageSize(option.value);\n }\n },\n options: paginationOptions,\n styles: {\n container: () => ({\n width: '100%',\n }),\n },\n }}\n />\n </>\n )}\n </div>\n );\n};\n\ntype PaginationArrowButtonProps = {\n action: 'previous' | 'next';\n children?: React.ReactNode;\n onClick?: (e: React.MouseEvent<HTMLButtonElement, MouseEvent>) => void;\n};\n\nconst PaginationArrowButton = ({\n action,\n children,\n className,\n style,\n htmlAttributes,\n ref,\n ...restProps\n}: CommonProps<'button', PaginationArrowButtonProps>) => {\n const PaginationIcon =\n action === 'previous' ? ChevronLeftIconOutline : ChevronRightIconOutline;\n const ariaLabel = action === 'previous' ? 'Previous page' : 'Next page';\n const classes = classNames('ndl-data-grid-pagination-icon-button', className);\n\n return (\n <CleanIconButton\n ref={ref}\n style={style}\n className={classes}\n description={ariaLabel}\n htmlAttributes={htmlAttributes}\n {...restProps}\n >\n {children || <PaginationIcon />}\n </CleanIconButton>\n );\n};\n\ntype PaginationNumericButtonProps = {\n currentIndex: number | string;\n isSelected: boolean;\n children?: React.ReactNode;\n onClick?: (e: React.MouseEvent<HTMLButtonElement, MouseEvent>) => void;\n};\n\nconst PaginationNumericButton = ({\n currentIndex,\n isSelected,\n children,\n className,\n style,\n htmlAttributes,\n onClick,\n ref,\n ...restProps\n}: CommonProps<'button', PaginationNumericButtonProps>) => {\n return (\n <button\n ref={ref}\n style={style}\n type=\"button\"\n data-testid={`ndl-table-${currentIndex}`}\n className={classNames(\n 'ndl-data-grid-pagination-numeric-button',\n className,\n {\n 'ndl-is-selected': isSelected,\n 'ndl-not-selected': !isSelected,\n 'ndl-not-selected-numeric':\n typeof currentIndex === 'number' && !isSelected,\n },\n )}\n onClick={(e) => typeof currentIndex === 'number' && onClick && onClick(e)}\n tabIndex={typeof currentIndex === 'number' ? 0 : -1}\n {...restProps}\n {...htmlAttributes}\n >\n {children || currentIndex}\n </button>\n );\n};\n\nconst PaginationNumericButtons = () => {\n const { tableProps, components } = useDataGridContext();\n const { getState, setPageIndex, getPageCount } = tableProps;\n const {\n pagination: { pageIndex },\n } = getState();\n\n return (\n <>\n {userFriendlyPagination(pageIndex + 1, getPageCount()).map(\n (option, idx) =>\n components.PaginationNumericButton && (\n <components.PaginationNumericButton\n /** Use index to avoid situations where two \"...\" values will appear, causing a key conflict */\n key={`${option}-${idx}`}\n onClick={() =>\n typeof option === 'number' && setPageIndex(option - 1)\n }\n currentIndex={option}\n isSelected={option === pageIndex + 1}\n />\n ),\n )}\n </>\n );\n};\n\ntype PaginationProps = {\n children?: React.ReactNode;\n};\n\nconst Pagination = ({\n children,\n className,\n style,\n htmlAttributes,\n ref,\n ...restProps\n}: CommonProps<'nav', PaginationProps>) => {\n const { tableProps, components, isMediumNavigation } = useDataGridContext();\n\n const { getCanPreviousPage, getCanNextPage, previousPage, nextPage } =\n tableProps;\n\n return (\n <nav\n ref={ref}\n style={style}\n className={classNames('ndl-data-grid-nav', className)}\n aria-label=\"Pagination\"\n {...restProps}\n {...htmlAttributes}\n >\n {children || (\n <>\n {/* Previous page */}\n {getCanPreviousPage()\n ? components.PaginationArrowButton && (\n <components.PaginationArrowButton\n action=\"previous\"\n onClick={previousPage}\n />\n )\n : null}\n {/* Pages - hidden on narrow containers */}\n {!isMediumNavigation && components.PaginationNumericButtons && (\n <components.PaginationNumericButtons />\n )}\n {/* Next page */}\n {getCanNextPage()\n ? components.PaginationArrowButton && (\n <components.PaginationArrowButton\n action=\"next\"\n onClick={nextPage}\n />\n )\n : null}\n </>\n )}\n </nav>\n );\n};\n\ntype NavigationProps = {\n children?: React.ReactNode;\n};\n\nconst Navigation = ({\n children,\n className,\n style,\n htmlAttributes,\n ref,\n ...restProps\n}: CommonProps<'div', NavigationProps>) => {\n const {\n tableProps,\n components,\n isSkeletonLoading,\n skeletonProps,\n isSmallNavigation,\n } = useDataGridContext();\n\n const { getPageCount } = tableProps;\n\n return (\n <div\n ref={ref}\n style={{\n ...style,\n ...(isSmallNavigation && { justifyContent: 'end' }),\n }}\n className={classNames('ndl-data-grid-navigation', className)}\n {...restProps}\n {...htmlAttributes}\n >\n <>\n {children || (\n <>\n {components.TableResults && <components.TableResults />}\n <Skeleton\n onBackground=\"weak\"\n shape=\"rectangular\"\n height=\"36px\"\n {...skeletonProps}\n isLoading={isSkeletonLoading}\n >\n <div className=\"ndl-data-grid-navigation-right-items\">\n {getPageCount() > 1 && components.Pagination && (\n <components.Pagination />\n )}\n {/* Page size selector */}\n {components.RowsPerPage && <components.RowsPerPage />}\n </div>\n </Skeleton>\n </>\n )}\n </>\n </div>\n );\n};\n\ntype LoadingPlaceholderProps = {\n children?: React.ReactNode;\n};\n\nconst LoadingPlaceholder = ({\n children,\n className,\n style,\n htmlAttributes,\n ref,\n ...restProps\n}: CommonProps<'div', LoadingPlaceholderProps>) => {\n return (\n <div\n ref={ref}\n style={style}\n className={classNames('nld-table-placeholder-wrapper', className)}\n role=\"row\"\n {...restProps}\n {...htmlAttributes}\n >\n {children || (\n <div role=\"cell\" className=\"ndl-data-grid-placeholder\">\n <div className=\"ndl-data-grid-loading-placeholder\">\n <LoadingSpinner />\n <h6>Loading data</h6>\n </div>\n </div>\n )}\n </div>\n );\n};\n\ntype NoDataPlaceholderProps = {\n children?: React.ReactNode;\n};\n\nconst NoDataPlaceholder = ({\n children,\n className,\n style,\n htmlAttributes,\n ref,\n ...restProps\n}: CommonProps<'div', NoDataPlaceholderProps>) => {\n return (\n <div\n ref={ref}\n style={style}\n className={classNames('nld-table-placeholder-wrapper', className)}\n role=\"row\"\n {...restProps}\n {...htmlAttributes}\n >\n {children || (\n <NoDataPlaceholderContentWrapper>\n <NoDataIcon />\n <Typography variant=\"subheading-small\">No data available</Typography>\n </NoDataPlaceholderContentWrapper>\n )}\n </div>\n );\n};\n\ntype NoDataPlaceholderContentWrapperProps = {\n children?: React.ReactNode;\n};\n\nexport const NoDataPlaceholderContentWrapper = ({\n children,\n className,\n style,\n htmlAttributes,\n ref,\n ...restProps\n}: CommonProps<'div', NoDataPlaceholderContentWrapperProps>) => {\n return (\n <div\n role=\"cell\"\n className={classNames('ndl-data-grid-placeholder', className)}\n ref={ref}\n style={style}\n {...restProps}\n {...htmlAttributes}\n >\n {children}\n </div>\n );\n};\n\nexport interface InlineEditCellProps<T extends RowData> {\n cell: CellContext<T, unknown>;\n value: string;\n ariaLabel: string;\n}\n\nconst InlineEditCell = <T extends RowData>({\n cell,\n value,\n ariaLabel,\n className,\n style,\n htmlAttributes,\n ref,\n ...restProps\n}: CommonProps<'input', InlineEditCellProps<T>>) => {\n const [inputValue, setInputValue] = useState(value);\n\n useEffect(() => {\n setInputValue(value);\n }, [value]);\n\n const { dataGridNav } = useDataGridContext<T>();\n\n if (!cell.column.columnDef.meta?.isInlineEditCell) {\n return null;\n }\n\n return (\n <input\n ref={ref}\n style={style}\n className={className}\n onChange={(e) => setInputValue(e.target.value)}\n value={inputValue}\n onFocus={() => {\n dataGridNav.disable();\n }}\n onKeyDown={(e) => {\n if (e.key === 'Enter') {\n cell?.column.columnDef.meta?.isInlineEditCell?.onEditChange(\n inputValue,\n cell,\n );\n e.currentTarget.parentElement?.focus();\n return;\n } else if (e.key === 'Escape') {\n e.currentTarget.parentElement?.focus();\n return;\n }\n }}\n onBlur={() => {\n setInputValue(value);\n dataGridNav.enable();\n }}\n aria-label={ariaLabel}\n {...restProps}\n {...htmlAttributes}\n />\n );\n};\n\ntype DropDownCellProps<T extends RowData> = {\n cell: CellContext<T, unknown>;\n options: {\n value: string;\n label: string;\n }[];\n /**\n * The target element to portal the menu of the select component to, e.g. the modal root if the data grid is inside a modal.\n * Defaults to the portalTarget prop of the DataGrid root component.\n */\n portalTarget?: HTMLElement | null;\n /** Aria label of the select component. Required for accessibility. */\n ariaLabel: string;\n /** Whether the select component is disabled */\n isDisabled?: boolean;\n};\n\nconst DropDownCell = <T extends RowData>({\n cell,\n options,\n portalTarget: portalTargetProp,\n ariaLabel,\n className,\n style,\n htmlAttributes,\n ref: forwardRef,\n isDisabled,\n ...restProps\n}: CommonProps<'div', DropDownCellProps<T>>) => {\n const { dataGridNav, portalTarget } = useDataGridContext<T>();\n const ref = useRef<HTMLDivElement>(null);\n const mergedRef = useMergeRefs([ref, forwardRef]);\n\n if (!cell.column.columnDef.meta?.isDropDownCell) {\n return null;\n }\n const defaultOption = options.find(\n (option) => option.value === cell.getValue()?.toString(),\n );\n\n const menuPortalTarget =\n portalTargetProp === undefined ? portalTarget : portalTargetProp;\n\n return (\n <Select\n ref={mergedRef}\n className={className}\n isFluid={true}\n isClean={true}\n style={{ ...style, height: '100%', width: '100%' }}\n type=\"select\"\n size=\"medium\"\n ariaLabel={ariaLabel}\n isDisabled={isDisabled}\n selectProps={{\n defaultValue: defaultOption,\n menuPortalTarget: menuPortalTarget,\n menuPosition: 'fixed',\n onChange: (e) => {\n const value = e?.value;\n cell?.column.columnDef.meta?.isDropDownCell?.onChange(\n value?.toString(),\n cell,\n );\n dataGridNav.enable();\n ref?.current && dataGridNav.focusParentCell(ref.current);\n },\n onMenuOpen: () => {\n dataGridNav.disable();\n },\n options: options,\n styles: {\n container: () => ({ height: '100%', width: '100%' }),\n control: () => ({\n backgroundColor: 'transparent',\n borderRadius: 0,\n height: '100%',\n }),\n },\n }}\n htmlAttributes={htmlAttributes}\n {...restProps}\n />\n );\n};\n\nconst NoDataIcon = ({\n className,\n ...restProps\n}: React.ComponentPropsWithoutRef<typeof DataGridCrossIcon>) => {\n const classes = classNames('n-size-token-64', className);\n return <DataGridCrossIcon className={classes} {...restProps} />;\n};\n\nexport {\n ResizingBar,\n Header,\n Body,\n BodyCell,\n BodyRow,\n InlineEditCell,\n DropDownCell,\n ActionCell,\n HeaderCell,\n HeaderTitle,\n Navigation,\n TableResults,\n RowsPerPage,\n Pagination,\n PaginationNumericButtons,\n PaginationArrowButton,\n PaginationNumericButton,\n NoDataPlaceholder,\n NoDataIcon,\n LoadingPlaceholder,\n Scrollable,\n};\n"]}
1
+ {"version":3,"file":"Components.js","sourceRoot":"","sources":["../../../src/data-grid/Components.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AAAA,uDAAuD;AAEvD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,8CAAkD;AAClD,uDAQ+B;AAC/B,4DAAoC;AAEpC,iCAOe;AAMf,4DAAuD;AACvD,oCASkB;AAClB,wDAAoD;AACpD,kCAA+B;AAC/B,sCAAmC;AACnC,0CAAuC;AACvC,8CAA2C;AAC3C,2DAAyD;AAEzD,uCAImB;AAEnB,sEAAsE;AACtE,MAAM,aAAa,GAAG;IACpB,OAAO,EAAE,EAAE;IACX,MAAM,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC;CACjB,CAAC;AAOX,MAAM,oBAAoB,GAAG,CAAC,QAAgB,EAAsB,EAAE;IACpE,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,aAAa,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC;SACrD,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;SACrB,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QAChB,KAAK,EAAE,GAAG,MAAM,EAAE;QAClB,KAAK,EAAE,MAAM;KACd,CAAC,CAAC,CAAC;AACR,CAAC,CAAC;AAEK,MAAM,oBAAoB,GAE7B,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;IACb,GAAG,EAAE;QACH,IAAI,EAAE,uBAAC,8BAAsB,KAAG;QAChC,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC;QAC/C,KAAK,EAAE,gBAAgB;KACxB;IACD,OAAO,EAAE;QACP,IAAI,EAAE,uBAAC,kCAA0B,KAAG;QACpC,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE;QACzC,KAAK,EAAE,cAAc;KACtB;IACD,IAAI,EAAE;QACJ,IAAI,EAAE,uBAAC,gCAAwB,KAAG;QAClC,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC;QAC9C,KAAK,EAAE,iBAAiB;KACzB;CACF,CAAC,CAAC;AAlBU,QAAA,oBAAoB,wBAkB9B;AAMH,MAAM,WAAW,GAAG,CAAoB,EAOK,EAAE,EAAE;QAPT,EACtC,MAAM,EACN,SAAS,EACT,KAAK,EACL,cAAc,EACd,GAAG,OAEwC,EADxC,SAAS,cAN0B,yDAOvC,CADa;IAEZ,MAAM,EAAE,2BAA2B,EAAE,GAAG,IAAA,sCAAkB,GAAK,CAAC;IAEhE,MAAM,aAAa,GAAG,CAAC,KAA6C,EAAE,EAAE;QACtE,IAAI,KAAK,CAAC,GAAG,KAAK,WAAW,EAAE,CAAC;YAC9B,KAAK,CAAC,eAAe,EAAE,CAAC;YACxB,KAAK,CAAC,cAAc,EAAE,CAAC;YACvB,IAAA,sBAAY,EAAC,yBAAe,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QAC7C,CAAC;aAAM,IAAI,KAAK,CAAC,GAAG,KAAK,YAAY,EAAE,CAAC;YACtC,KAAK,CAAC,eAAe,EAAE,CAAC;YACxB,KAAK,CAAC,cAAc,EAAE,CAAC;YACvB,IAAA,sBAAY,EAAC,yBAAe,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QAC9C,CAAC;IACH,CAAC,CAAC;IAEF,OAAO,CACL,iDACE,GAAG,EAAE,GAAG,EACR,IAAI,EAAC,QAAQ,EACb,SAAS,EAAE,IAAA,oBAAU,EAAC,uBAAuB,EAAE,SAAS,EAAE;YACxD,2BAA2B,EAAE,MAAM,CAAC,MAAM,CAAC,aAAa,EAAE;SAC3D,CAAC,EACF,KAAK,EAAE,KAAK,EACZ,WAAW,EAAE,MAAM,CAAC,gBAAgB,EAAE,EACtC,YAAY,EAAE,MAAM,CAAC,gBAAgB,EAAE,EACvC,SAAS,EAAE,aAAa,gBACb,cAAc,EACzB,QAAQ,EAAE,2BAA2B,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAC1C,SAAS,EACT,cAAc,EAClB,CACH,CAAC;AACJ,CAAC,CAAC;AAuuCA,kCAAW;AAjuCb,MAAM,UAAU,GAAG,CAAC,EASnB,EAAE,EAAE;QATe,EAClB,QAAQ,EACR,GAAG,EACH,SAAS,EACT,KAAK,EACL,cAAc,OAIf,EAHI,SAAS,cANM,2DAOnB,CADa;IAIZ,OAAO,CACL,8CACE,GAAG,EAAE,GAAG,EACR,KAAK,EAAE,KAAK,EACZ,SAAS,EAAE,IAAA,oBAAU,EAAC,0BAA0B,EAAE,SAAS,CAAC,IACxD,SAAS,EACT,cAAc,cAEjB,QAAQ,IACL,CACP,CAAC;AACJ,CAAC,CAAC;AAguCA,gCAAU;AA1tCZ,MAAM,MAAM,GAAG,CAAC,EAOkB,EAAE,EAAE;QAPtB,EACd,QAAQ,EACR,SAAS,EACT,KAAK,EACL,cAAc,EACd,GAAG,OAE6B,EAD7B,SAAS,cANE,2DAOf,CADa;IAEZ,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,GAAG,IAAA,sCAAkB,GAAE,CAAC;IACxD,MAAM,EAAE,eAAe,EAAE,QAAQ,EAAE,GAAG,UAAU,CAAC;IAEjD,OAAO,CACL,8CACE,IAAI,EAAC,UAAU,EACf,SAAS,EAAE,IAAA,oBAAU,EAAC,qBAAqB,EAAE,SAAS,EAAE;YACtD,2BAA2B,EACzB,QAAQ,EAAE,CAAC,gBAAgB,CAAC,gBAAgB;SAC/C,CAAC,EACF,KAAK,EAAE,KAAK,EACZ,GAAG,EAAE,GAAG,IACJ,SAAS,EACT,cAAc,cAEjB,QAAQ,IAAI,CACX,2DACG,eAAe,EAAE,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC,CACtC,gCAA0B,SAAS,EAAC,kBAAkB,EAAC,IAAI,EAAC,KAAK,YAC9D,WAAW,CAAC,OAAO,CAAC,GAAG,CACtB,CAAC,MAAM,EAAE,EAAE,CACT,UAAU,CAAC,UAAU,IAAI,CACvB,uBAAC,UAAU,CAAC,UAAU,IAAiB,IAAI,EAAE,MAAM,IAAvB,MAAM,CAAC,EAAE,CAAkB,CACxD,CACJ,IANO,WAAW,CAAC,EAAE,CAOlB,CACP,CAAC,GACD,CACJ,IACG,CACP,CAAC;AACJ,CAAC,CAAC;AAgqCA,wBAAM;AAzpCD,MAAM,YAAY,GAAG,CAAyC,EAStB,EAAE,EAAE;QATkB,EACnE,MAAM,EACN,OAAO,EACP,EAAE,EACF,SAAS,EACT,KAAK,EACL,cAAc,EACd,GAAG,OAE0C,EAD1C,SAAS,cARuD,0EASpE,CADa;IAEZ,MAAM,EAAE,OAAO,KAAoB,MAAM,EAArB,UAAU,UAAK,MAAM,EAAnC,WAA0B,CAAS,CAAC;IAE1C,MAAM,kBAAkB,GAAG,IAAA,mBAAW,EACpC,CAAC,CAAM,EAAE,EAAE;QACT,MAAM,eAAe,GAAG,OAAO,aAAP,OAAO,cAAP,OAAO,GAAI,MAAM,CAAC,OAAO,CAAC;QAClD,IAAI,OAAO,eAAe,KAAK,UAAU,EAAE,CAAC;YAC1C,eAAe,CAAC,CAAC,CAAC,CAAC;QACrB,CAAC;QACD,OAAO,aAAP,OAAO,uBAAP,OAAO,EAAI,CAAC;IACd,CAAC,EACD,CAAC,MAAM,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,CACnC,CAAC;IAEF,OAAO,CACL,uBAAC,WAAI,CAAC,IAAI,kBACR,OAAO,EAAE,kBAAkB,EAC3B,EAAE,EAAE,EAAE,EACN,SAAS,EAAE,SAAS,EACpB,KAAK,EAAE,KAAK,EACZ,cAAc,EAAE,cAAc,EAC9B,GAAG,EAAE,GAAG,IACJ,UAAU,EACV,SAAS,EACb,CACH,CAAC;AACJ,CAAC,CAAC;AAnCW,QAAA,YAAY,gBAmCvB;AAUF,MAAM,UAAU,GAAG,CAAoB,EACrC,IAAI,EACJ,yBAAyB,EACzB,cAAc,GACK,EAAE,EAAE;;IACvB,MAAM,EAAE,UAAU,EAAE,iBAAiB,EAAE,YAAY,EAAE,GACnD,IAAA,sCAAkB,GAAK,CAAC;IAC1B,MAAM,gBAAgB,GAAG,IAAA,cAAM,EAAoB,IAAI,CAAC,CAAC;IACzD,MAAM,CAAC,aAAa,EAAE,gBAAgB,CAAC,GAAG,IAAA,gBAAQ,EAAC,KAAK,CAAC,CAAC;IAE1D,IACE,CAAC,IAAI;QACL,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI;QAC3B,OAAO,CAAA,MAAA,MAAA,IAAI,CAAC,MAAM,CAAC,SAAS,0CAAE,IAAI,0CAAE,YAAY,CAAA,KAAK,QAAQ,EAC7D,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,EAAE,OAAO,EAAE,YAAY,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,YAAY,CAAC;IAE1E,IAAI,iBAAiB,EAAE,CAAC;QACtB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,CACL,6DACE,uBAAC,mCAAe,kBACd,EAAE,EAAC,QAAQ,EACX,IAAI,EAAC,QAAQ,EACb,WAAW,EAAC,SAAS,EACrB,GAAG,EAAE,gBAAgB,EACrB,QAAQ,EAAE,aAAa,EACvB,OAAO,EAAE,GAAG,EAAE;oBACZ,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAG,CAAC,aAAa,CAAC,CAAC;oBAC/B,gBAAgB,CAAC,CAAC,aAAa,CAAC,CAAC;gBACnC,CAAC,IACG,yBAAyB,IAC7B,cAAc,kBACZ,QAAQ,EAAE,CAAC,IACR,yBAAyB,aAAzB,yBAAyB,uBAAzB,yBAAyB,CAAE,cAAc,aAG7C,CAAA,yBAAyB,aAAzB,yBAAyB,uBAAzB,yBAAyB,CAAE,QAAQ,KAAI,CACtC,uBAAC,qCAA6B,KAAG,CAClC,IACe,EAClB,uBAAC,WAAI,kBACH,MAAM,EAAE,aAAa,EACrB,SAAS,EAAE,gBAAgB,EAC3B,OAAO,EAAE,GAAG,EAAE;oBACZ,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAG,KAAK,CAAC,CAAC;oBACtB,gBAAgB,CAAC,KAAK,CAAC,CAAC;gBAC1B,CAAC,IACG,cAAc,IAClB,YAAY,EAAE,YAAY,YAEzB,CAAA,cAAc,aAAd,cAAc,uBAAd,cAAc,CAAE,QAAQ,KAAI,CAC3B,uBAAC,WAAI,CAAC,KAAK,cACR,OAAO,CAAC,GAAG,CACV,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CACZ,UAAU,CAAC,YAAY,IAAI,CACzB,uBAAC,UAAU,CAAC,YAAY,IAEtB,MAAM,kCACD,MAAM,KACT,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE;;gCACb,MAAA,MAAM,CAAC,OAAO,uDAAG,CAAC,EAAE,IAAI,CAAC,CAAC;4BAC5B,CAAC,KAEH,OAAO,EAAE,GAAG,EAAE,CAAC,gBAAgB,CAAC,KAAK,CAAC,IAPjC,GAAG,IAAI,CAAC,MAAM,CAAC,EAAE,WAAW,CAAC,EAAE,CAQpC,CACH,CACJ,GACU,CACd,IACI,IACN,CACJ,CAAC;AACJ,CAAC,CAAC;AAoiCA,gCAAU;AA7hCL,MAAM,cAAc,GAAG,CAAoB,EAQL,EAAE,EAAE;;QARC,EAChD,IAAI,EACJ,QAAQ,EACR,SAAS,EACT,KAAK,EACL,cAAc,EACd,GAAG,OAEwC,EADxC,SAAS,cAPoC,mEAQjD,CADa;IAEZ,MAAM,EAAE,UAAU,EAAE,YAAY,EAAE,GAAG,IAAA,sCAAkB,GAAE,CAAC;IAE1D,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;IACvC,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;IACzC,MAAM,EAAE,wBAAwB,GAAG,IAAI,EAAE,OAAO,EAAE,GAChD,CAAA,MAAA,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,0CAAE,aAAa,KAAI,EAAE,CAAC;IAElD,MAAM,cAAc,GAAG,IAAA,eAAO,EAAC,GAAG,EAAE;QAClC,IAAI,OAAO,EAAE,CAAC;YACZ,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,MAAM,EAAE,CAAC;gBACtC,OAAO;oBACL,IAAA,4BAAoB,EAAC,IAAI,CAAC,CAAC,GAAG;oBAC9B,IAAA,4BAAoB,EAAC,IAAI,CAAC,CAAC,IAAI;iBAChC,CAAC;YACJ,CAAC;YACD,IAAI,IAAI,KAAK,KAAK,EAAE,CAAC;gBACnB,OAAO;oBACL,IAAA,4BAAoB,EAAC,IAAI,CAAC,CAAC,OAAO;oBAClC,IAAA,4BAAoB,EAAC,IAAI,CAAC,CAAC,IAAI;iBAChC,CAAC;YACJ,CAAC;YACD,IAAI,IAAI,KAAK,MAAM,EAAE,CAAC;gBACpB,OAAO;oBACL,IAAA,4BAAoB,EAAC,IAAI,CAAC,CAAC,OAAO;oBAClC,IAAA,4BAAoB,EAAC,IAAI,CAAC,CAAC,GAAG;iBAC/B,CAAC;YACJ,CAAC;QACH,CAAC;QACD,eAAe;QACf,OAAO,EAAE,CAAC;IACZ,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC;IAE1B,MAAM,UAAU,GAAmB;QACjC,GAAG,CAAC,wBAAwB,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,CAAC;QACnD,GAAG,CAAC,OAAO,aAAP,OAAO,cAAP,OAAO,GAAI,EAAE,CAAC;KACnB,CAAC;IAEF,MAAM,gBAAgB,GAAG,IAAA,cAAM,EAAoB,IAAI,CAAC,CAAC;IACzD,MAAM,CAAC,aAAa,EAAE,gBAAgB,CAAC,GAAG,IAAA,gBAAQ,EAAC,KAAK,CAAC,CAAC;IAE1D,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACrC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAC7B,8CACE,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,IAAA,oBAAU,EAAC,yBAAyB,EAAE,SAAS,CAAC,EAC3D,KAAK,EAAE,KAAK,IACR,SAAS,EACT,cAAc,cAEjB,QAAQ,IAAI,CACX,wBAAC,gBAAQ,eACP,uBAAC,mCAAe,IACd,IAAI,EAAC,OAAO,EACZ,WAAW,EAAC,SAAS,EACrB,GAAG,EAAE,gBAAgB,EACrB,QAAQ,EAAE,aAAa,EACvB,OAAO,EAAE,GAAG,EAAE;wBACZ,gBAAgB,CAAC,CAAC,aAAa,CAAC,CAAC;oBACnC,CAAC,EACD,cAAc,EAAE;wBACd,QAAQ,EAAE,CAAC;qBACZ,YAED,uBAAC,4BAAoB,KAAG,GACR,EAClB,uBAAC,WAAI,IACH,MAAM,EAAE,aAAa,EACrB,SAAS,EAAE,gBAAgB,EAC3B,OAAO,EAAE,GAAG,EAAE,CAAC,gBAAgB,CAAC,KAAK,CAAC,EACtC,YAAY,EAAE,YAAY,YAE1B,uBAAC,WAAI,CAAC,KAAK,cACR,UAAU,CAAC,GAAG,CACb,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CACZ,UAAU,CAAC,YAAY,IAAI,CACzB,uBAAC,UAAU,CAAC,YAAY,IAEtB,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,GAAG,EAAE,CAAC,gBAAgB,CAAC,KAAK,CAAC,IAFjC,GAAG,IAAI,CAAC,MAAM,CAAC,EAAE,WAAW,CAAC,EAAE,CAGpC,CACH,CACJ,GACU,GACR,IACE,CACZ,IACG,CACP,CAAC,CAAC,CAAC,IAAI,CAAC;AACX,CAAC,CAAC;AApGW,QAAA,cAAc,kBAoGzB;AAOF,MAAM,UAAU,GAAG,CAAoB,EAQE,EAAE,EAAE;QARN,EACrC,IAAI,EACJ,QAAQ,EACR,SAAS,EACT,KAAK,EACL,cAAc,EACd,GAAG,OAEoC,EADpC,SAAS,cAPyB,mEAQtC,CADa;IAEZ,MAAM,EAAE,UAAU,EAAE,WAAW,EAAE,2BAA2B,EAAE,GAC5D,IAAA,sCAAkB,GAAK,CAAC;IAE1B,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;IACvC,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;IAEzC,MAAM,YAAY,GAAG,IAAA,eAAO,EAAC,GAAG,EAAE;QAChC,QAAQ,IAAI,EAAE,CAAC;YACb,KAAK,KAAK;gBACR,OAAO,WAAW,CAAC;YACrB,KAAK,MAAM;gBACT,OAAO,YAAY,CAAC;YACtB;gBACE,OAAO,MAAM,CAAC;QAClB,CAAC;IACH,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;IAEX,MAAM,IAAI,GAAG,IAAA,eAAO,EAAC,GAAG,EAAE;QACxB,QAAQ,IAAI,EAAE,CAAC;YACb,KAAK,KAAK;gBACR,OAAO,uBAAC,8BAAsB,IAAC,SAAS,EAAC,iBAAiB,GAAG,CAAC;YAChE,KAAK,MAAM;gBACT,OAAO,uBAAC,gCAAwB,IAAC,SAAS,EAAC,iBAAiB,GAAG,CAAC;YAClE;gBACE,OAAO,CACL,uBAAC,kCAA0B,IAAC,SAAS,EAAC,yCAAyC,GAAG,CACnF,CAAC;QACN,CAAC;IACH,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;IAEX,MAAM,eAAe,GAAG,IAAA,eAAO,EAAC,GAAG,EAAE;QACnC,OAAO,OAAO;YACZ,CAAC,CAAC,uCAAuC,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE;YACzD,CAAC,CAAC,cAAc,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;IACrC,CAAC,EAAE,CAAC,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;IAE9B,MAAM,cAAc,GAAG,IAAA,eAAO,EAC5B,GAAG,EAAE,WAAC,OAAA,OAAO,CAAA,MAAA,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,0CAAE,YAAY,CAAA,KAAK,QAAQ,CAAA,EAAA,EAClE,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,CAC7B,CAAC;IAEF,MAAM,GAAG,GAAG,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC;IAEvC,MAAM,eAAe,GAAG,GAAG,EAAE,CAAC,CAC5B,iCAAK,SAAS,EAAC,iBAAiB,aAC7B,IAAI,CAAC,aAAa;gBACjB,CAAC,CAAC,IAAI;gBACN,CAAC,CAAC,IAAA,wBAAU,EAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC,EAC9D,OAAO,IAAI,IAAI,IACZ,CACP,CAAC;IAEF,OAAO,CACL,8CACE,GAAG,EAAE,GAAG,EACR,QAAQ,EAAE,2BAA2B,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,EAExE,IAAI,EAAC,cAAc,EACnB,SAAS,EAAE,IAAA,oBAAU,EAAC,kBAAkB,EAAE,SAAS,EAAE;YACnD,oBAAoB,EAAE,2BAA2B;YACjD,0BAA0B,EAAE,cAAc;YAC1C,2BAA2B,EAAE,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE;YACtD,iCAAiC,EAC/B,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,KAAK,OAAO;YACvC,gCAAgC,EAAE,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,KAAK,MAAM;YACtE,2BAA2B,EAAE,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE;SACzD,CAAC,eACS,YAAY,EACvB,KAAK,kCACA,KAAK,KACR,KAAK,EAAE,cAAc,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,EAC3C,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,OAAO;gBACrC,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,OAAO,IAAI;gBACtC,CAAC,CAAC,MAAM,OAER,CAAC,2BAA2B;QAC9B,CAAC,CAAC;YACE,SAAS,EAAE,CAAC,CAAC,EAAE,EAAE;gBACf,IACE,WAAW;oBACX,CAAC,CAAC,MAAM;oBACR,CAAC,CAAC,CAAC,GAAG,KAAK,WAAW,IAAI,CAAC,CAAC,GAAG,KAAK,YAAY,CAAC,EACjD,CAAC;oBACD,MAAM,SAAS,GACb,CAAC,CAAC,GAAG,KAAK,WAAW;wBACnB,CAAC,CAAC,yBAAe,CAAC,IAAI;wBACtB,CAAC,CAAC,yBAAe,CAAC,KAAK,CAAC;oBAC5B,IAAA,sBAAY,EAAC,SAAS,EAAE,IAAI,CAAC,CAAC;oBAC9B,CAAC,CAAC,cAAc,EAAE,CAAC;oBACnB,CAAC,CAAC,eAAe,EAAE,CAAC;oBACpB,OAAO;gBACT,CAAC;YACH,CAAC;SACF;QACH,CAAC,CAAC,EAAE,CAAC,EACH,SAAS,EACT,cAAc,cAEjB,QAAQ,IAAI,CACX,6DACE,uBAAC,GAAG,IACF,SAAS,EAAC,kBAAkB,EAC5B,KAAK,EAAE;wBACL,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS;qBACxC,sBACiB,eAAe,EACjC,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,IAAI,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,EACrD,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,YAEhC,UAAU,CAAC,WAAW,CAAC,CAAC,CAAC,CACxB,uBAAC,UAAU,CAAC,WAAW,IAAC,IAAI,EAAE,IAAI,YAChC,uBAAC,eAAe,KAAG,GACI,CAC1B,CAAC,CAAC,CAAC,CACF,uBAAC,eAAe,KAAG,CACpB,GACG,EAEL,UAAU,CAAC,cAAc,IAAI,CAC5B,uBAAC,UAAU,CAAC,cAAc,IAAC,IAAI,EAAE,IAAI,GAAI,CAC1C,EAEA,WAAW;oBACV,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE;oBAC1B,UAAU,CAAC,WAAW,IAAI,uBAAC,UAAU,CAAC,WAAW,IAAC,MAAM,EAAE,IAAI,GAAI,IACnE,CACJ,KAtEI,IAAI,CAAC,EAAE,CAuER,CACP,CAAC;AACJ,CAAC,CAAC;AAyyBA,gCAAU;AAlyBZ,MAAM,WAAW,GAAG,CAAoB,EAQE,EAAE,EAAE;QARN,EACtC,IAAI,EACJ,QAAQ,EACR,SAAS,EACT,KAAK,EACL,cAAc,EACd,GAAG,OAEqC,EADrC,SAAS,cAP0B,mEAQvC,CADa;IAEZ,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,GAAG,IAAI,CAAC;IAC5B,MAAM,KAAK,GACT,OAAO,MAAM,CAAC,SAAS,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;IAC7E,OAAO,CACL,8CACE,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,SAAS,EACpB,KAAK,EAAE,KAAK,EACZ,KAAK,EAAE,KAAK,IACR,SAAS,EACT,cAAc,cAEjB,QAAQ,IACL,CACP,CAAC;AACJ,CAAC,CAAC;AA2wBA,kCAAW;AArwBb,MAAM,IAAI,GAAG,CAAC,EAOkB,EAAE,EAAE;QAPtB,EACZ,QAAQ,EACR,SAAS,EACT,KAAK,EACL,cAAc,EACd,GAAG,OAE2B,EAD3B,SAAS,cANA,2DAOb,CADa;IAEZ,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,SAAS,EAAE,GAAG,IAAA,sCAAkB,GAAE,CAAC;IACnE,MAAM,EAAE,WAAW,EAAE,GAAG,UAAU,CAAC;IAEnC,OAAO,CACL,8CACE,GAAG,EAAE,GAAG,EACR,KAAK,EAAE,KAAK,EACZ,SAAS,EAAE,IAAA,oBAAU,EAAC,qBAAqB,EAAE,SAAS,CAAC,EACvD,IAAI,EAAC,UAAU,eACJ,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,IACnC,SAAS,EACT,cAAc,cAEjB,QAAQ,IAAI,CACX,6DACG,SAAS,IAAI,UAAU,CAAC,kBAAkB,IAAI,CAC7C,uBAAC,UAAU,CAAC,kBAAkB,KAAG,CAClC,EAEA,CAAC,SAAS;oBACT,WAAW,EAAE,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC;oBAC/B,UAAU,CAAC,iBAAiB,IAAI,uBAAC,UAAU,CAAC,iBAAiB,KAAG,EAEjE,CAAC,SAAS;oBACT,WAAW,EAAE,CAAC,IAAI,CAAC,GAAG,CACpB,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CACX,UAAU,CAAC,OAAO,IAAI,CACpB,uBAAC,UAAU,CAAC,OAAO,IAA0B,GAAG,EAAE,GAAG,IAA5B,aAAa,GAAG,EAAE,CAAc,CAC1D,CACJ,IACF,CACJ,IACG,CACP,CAAC;AACJ,CAAC,CAAC;AAotBA,oBAAI;AA7sBN,MAAM,QAAQ,GAAG,CAAoB,EAQE,EAAE,EAAE;;QARN,EACnC,IAAI,EACJ,QAAQ,EACR,SAAS,EACT,KAAK,EACL,cAAc,EACd,GAAG,OAEkC,EADlC,SAAS,cAPuB,mEAQpC,CADa;IAEZ,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,CAAC;IAE/C,MAAM,cAAc,GAAG,OAAO,CAAC,MAAA,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,0CAAE,YAAY,CAAC,CAAC;IACzE,MAAM,gBAAgB,GAAG,OAAO,CAC9B,MAAA,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,0CAAE,gBAAgB,CAC7C,CAAC;IACF,MAAM,cAAc,GAAG,OAAO,CAAC,MAAA,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,0CAAE,cAAc,CAAC,CAAC;IAC3E,MAAM,YAAY,GAAG,cAAc,IAAI,cAAc,CAAC;IACtD,MAAM,EAAE,2BAA2B,EAAE,iBAAiB,EAAE,aAAa,EAAE,GACrE,IAAA,sCAAkB,GAAE,CAAC;IACvB,OAAO,CACL,8CACE,GAAG,EAAE,GAAG,EAER,SAAS,EAAE,IAAA,oBAAU,EAAC,kBAAkB,EAAE,SAAS,EAAE;YACnD,oBAAoB,EAAE,2BAA2B;YACjD,2BAA2B,EAAE,UAAU;YACvC,2BAA2B,EAAE,YAAY;YACzC,0BAA0B,EAAE,cAAc;YAC1C,2BAA2B,EAAE,gBAAgB;YAC7C,6BAA6B,EAAE,cAAc;YAC7C,2BAA2B,EAAE,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE;YACtD,iCAAiC,EAC/B,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,KAAK,OAAO;YACvC,gCAAgC,EAAE,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,KAAK,MAAM;SACvE,CAAC,EACF,IAAI,EAAC,MAAM,EACX,QAAQ,EAAE,2BAA2B,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,EACrD,KAAK,kCACA,KAAK,KACR,KAAK,EAAE,cAAc,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,OAEhD,SAAS,EACT,cAAc,cAElB,uBAAC,mBAAQ,kBACP,YAAY,EAAC,MAAM,EACnB,KAAK,EAAC,aAAa,EACnB,KAAK,EAAC,MAAM,IACR,aAAa,IACjB,SAAS,EAAE,iBAAiB,IAAI,CAAC,cAAc,YAE9C,QAAQ,IAAI,IAAA,wBAAU,EAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC,IAC7D,KA9BN,IAAI,CAAC,EAAE,CA+BR,CACP,CAAC;AACJ,CAAC,CAAC;AAupBA,4BAAQ;AAhpBV,MAAM,OAAO,GAAG,CAAoB,EAQE,EAAE,EAAE;QARN,EAClC,GAAG,EACH,QAAQ,EACR,SAAS,EACT,KAAK,EACL,cAAc,EACd,GAAG,OAEiC,EADjC,SAAS,cAPsB,kEAQnC,CADa;IAEZ,MAAM,EAAE,UAAU,EAAE,GAAG,IAAA,sCAAkB,GAAK,CAAC;IAE/C,OAAO,CACL,8CAEE,GAAG,EAAE,GAAG,EACR,KAAK,EAAE,KAAK,EACZ,SAAS,EAAE,IAAA,oBAAU,EAAC,kBAAkB,EAAE,SAAS,CAAC,EACpD,IAAI,EAAC,KAAK,IACN,SAAS,EACT,cAAc,cAEjB,QAAQ,IAAI,CACX,2DACG,GAAG;iBACD,eAAe,EAAE;iBACjB,GAAG,CACF,CAAC,IAAI,EAAE,EAAE,CACP,UAAU,CAAC,QAAQ,IAAI,CACrB,uBAAC,UAAU,CAAC,QAAQ,IAAe,IAAI,EAAE,IAAI,IAAnB,IAAI,CAAC,EAAE,CAAgB,CAClD,CACJ,GACF,CACJ,KAnBI,GAAG,CAAC,EAAE,CAoBP,CACP,CAAC;AACJ,CAAC,CAAC;AA8mBA,0BAAO;AA9lBT,MAAM,YAAY,GAAG,CAAC,EASkB,EAAE,EAAE;QATtB,EACpB,gBAAgB,EAChB,QAAQ,EACR,SAAS,EACT,KAAK,EACL,cAAc,EACd,GAAG,EACH,YAAY,GAAG,SAAS,OAEc,EADnC,SAAS,cARQ,+FASrB,CADa;IAEZ,MAAM,EAAE,UAAU,EAAE,iBAAiB,EAAE,aAAa,EAAE,iBAAiB,EAAE,GACvE,IAAA,sCAAkB,GAAE,CAAC;IACvB,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,eAAe,EAAE,GAAG,UAAU,CAAC;IAC9D,MAAM,EACJ,UAAU,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,GACpC,GAAG,QAAQ,EAAE,CAAC;IACf,MAAM,EAAE,IAAI,EAAE,GAAG,WAAW,EAAE,CAAC;IAE/B,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,SAAS,EAAE,GAAG,IAAA,eAAO,EACrC,GAAG,EAAE,CACH,gBAAgB,IAAI;QAClB,IAAI,EAAE,CAAC,GAAG,SAAS,GAAG,QAAQ;QAC9B,EAAE,EAAE,IAAI,CAAC,MAAM,GAAG,SAAS,GAAG,QAAQ;QACtC,SAAS,EAAE,eAAe,EAAE,CAAC,IAAI,CAAC,MAAM;KACzC,EACH,CAAC,SAAS,EAAE,QAAQ,EAAE,gBAAgB,EAAE,IAAI,EAAE,eAAe,CAAC,CAC/D,CAAC;IAEF,IAAI,iBAAiB,EAAE,CAAC;QACtB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,CACL,uBAAC,mBAAQ,kBACP,EAAE,EAAC,MAAM,EACT,YAAY,EAAC,MAAM,EACnB,KAAK,EAAC,aAAa,IACf,aAAa,IACjB,SAAS,EAAE,iBAAiB,YAE5B,+CACE,GAAG,EAAE,GAAG,EACR,KAAK,EAAE,KAAK,EACZ,SAAS,EAAE,IAAA,oBAAU,EAAC,uBAAuB,EAAE,SAAS,CAAC,IACrD,SAAS,EACT,cAAc,cAEjB,QAAQ,IAAI,CACX,wDACU,GAAG,EACX,iCAAM,SAAS,EAAC,aAAa,YAC1B,SAAS,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,GACnD,EAAC,GAAG,SACR,iCAAM,SAAS,EAAC,aAAa,YAAE,SAAS,GAAQ,OAAE,YAAY,IAC5D,CACR,IACI,IACE,CACZ,CAAC;AACJ,CAAC,CAAC;AA0iBA,oCAAY;AA9hBd,MAAM,WAAW,GAAG,CAAC,EAQkB,EAAE,EAAE;QARtB,EACnB,YAAY,EAAE,gBAAgB,EAC9B,QAAQ,EACR,SAAS,EACT,KAAK,EACL,cAAc,EACd,GAAG,OAEkC,EADlC,SAAS,cAPO,2EAQpB,CADa;IAEZ,MAAM,EAAE,UAAU,EAAE,YAAY,EAAE,GAAG,IAAA,sCAAkB,GAAE,CAAC;IAE1D,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE,GAAG,UAAU,CAAC;IAE7C,MAAM,EACJ,UAAU,EAAE,EAAE,QAAQ,EAAE,GACzB,GAAG,QAAQ,EAAE,CAAC;IAEf,MAAM,iBAAiB,GAAG,oBAAoB,CAAC,QAAQ,CAAC,CAAC;IACzD,MAAM,uBAAuB,GAAG,iBAAiB,CAAC,IAAI,CACpD,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,KAAK,QAAQ,CACtC,CAAC;IAEF,MAAM,gBAAgB,GACpB,gBAAgB,KAAK,SAAS,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,gBAAgB,CAAC;IAEnE,OAAO,CACL,8CACE,GAAG,EAAE,GAAG,EACR,KAAK,EAAE,KAAK,EACZ,SAAS,EAAE,IAAA,oBAAU,EAAC,6BAA6B,EAAE,SAAS,CAAC,IAC3D,SAAS,EACT,cAAc,cAEjB,QAAQ,IAAI,CACX,qEAEE,uBAAC,eAAM,IACL,IAAI,EAAC,QAAQ,EACb,IAAI,EAAC,QAAQ,EACb,SAAS,EAAC,kBAAkB,EAC5B,WAAW,EAAE;wBACX,YAAY,EAAE,uBAAuB;wBACrC,YAAY,EAAE,KAAK;wBACnB,gBAAgB,EAAE,gBAAgB;wBAClC,YAAY,EAAE,OAAO;wBACrB,QAAQ,EAAE,CAAC,MAAM,EAAE,EAAE;4BACnB,IAAI,MAAM,EAAE,CAAC;gCACX,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;4BAC5B,CAAC;wBACH,CAAC;wBACD,OAAO,EAAE,iBAAiB;wBAC1B,MAAM,EAAE;4BACN,SAAS,EAAE,GAAG,EAAE,CAAC,CAAC;gCAChB,KAAK,EAAE,MAAM;6BACd,CAAC;yBACH;qBACF,GACD,IACD,CACJ,IACG,CACP,CAAC;AACJ,CAAC,CAAC;AAieA,kCAAW;AAzdb,MAAM,qBAAqB,GAAG,CAAC,EAQqB,EAAE,EAAE;QARzB,EAC7B,MAAM,EACN,QAAQ,EACR,SAAS,EACT,KAAK,EACL,cAAc,EACd,GAAG,OAE+C,EAD/C,SAAS,cAPiB,qEAQ9B,CADa;IAEZ,MAAM,cAAc,GAClB,MAAM,KAAK,UAAU,CAAC,CAAC,CAAC,8BAAsB,CAAC,CAAC,CAAC,+BAAuB,CAAC;IAC3E,MAAM,SAAS,GAAG,MAAM,KAAK,UAAU,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,WAAW,CAAC;IACxE,MAAM,OAAO,GAAG,IAAA,oBAAU,EAAC,sCAAsC,EAAE,SAAS,CAAC,CAAC;IAE9E,OAAO,CACL,uBAAC,mCAAe,kBACd,GAAG,EAAE,GAAG,EACR,KAAK,EAAE,KAAK,EACZ,SAAS,EAAE,OAAO,EAClB,WAAW,EAAE,SAAS,EACtB,cAAc,EAAE,cAAc,IAC1B,SAAS,cAEZ,QAAQ,IAAI,uBAAC,cAAc,KAAG,IACf,CACnB,CAAC;AACJ,CAAC,CAAC;AAkcA,sDAAqB;AAzbvB,MAAM,uBAAuB,GAAG,CAAC,EAUqB,EAAE,EAAE;QAVzB,EAC/B,YAAY,EACZ,UAAU,EACV,QAAQ,EACR,SAAS,EACT,KAAK,EACL,cAAc,EACd,OAAO,EACP,GAAG,OAEiD,EADjD,SAAS,cATmB,oGAUhC,CADa;IAEZ,OAAO,CACL,iDACE,GAAG,EAAE,GAAG,EACR,KAAK,EAAE,KAAK,EACZ,IAAI,EAAC,QAAQ,iBACA,aAAa,YAAY,EAAE,EACxC,SAAS,EAAE,IAAA,oBAAU,EACnB,yCAAyC,EACzC,SAAS,EACT;YACE,iBAAiB,EAAE,UAAU;YAC7B,kBAAkB,EAAE,CAAC,UAAU;YAC/B,0BAA0B,EACxB,OAAO,YAAY,KAAK,QAAQ,IAAI,CAAC,UAAU;SAClD,CACF,EACD,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,YAAY,KAAK,QAAQ,IAAI,OAAO,IAAI,OAAO,CAAC,CAAC,CAAC,EACzE,QAAQ,EAAE,OAAO,YAAY,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAC/C,SAAS,EACT,cAAc,cAEjB,QAAQ,IAAI,YAAY,IAClB,CACV,CAAC;AACJ,CAAC,CAAC;AAuZA,0DAAuB;AArZzB,MAAM,wBAAwB,GAAG,GAAG,EAAE;IACpC,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,GAAG,IAAA,sCAAkB,GAAE,CAAC;IACxD,MAAM,EAAE,QAAQ,EAAE,YAAY,EAAE,YAAY,EAAE,GAAG,UAAU,CAAC;IAC5D,MAAM,EACJ,UAAU,EAAE,EAAE,SAAS,EAAE,GAC1B,GAAG,QAAQ,EAAE,CAAC;IAEf,OAAO,CACL,2DACG,IAAA,gCAAsB,EAAC,SAAS,GAAG,CAAC,EAAE,YAAY,EAAE,CAAC,CAAC,GAAG,CACxD,CAAC,MAAM,EAAE,GAAG,EAAE,EAAE,CACd,UAAU,CAAC,uBAAuB,IAAI,CACpC,uBAAC,UAAU,CAAC,uBAAuB;QACjC,+FAA+F;YAE/F,OAAO,EAAE,GAAG,EAAE,CACZ,OAAO,MAAM,KAAK,QAAQ,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,EAExD,YAAY,EAAE,MAAM,EACpB,UAAU,EAAE,MAAM,KAAK,SAAS,GAAG,CAAC,IAL/B,GAAG,MAAM,IAAI,GAAG,EAAE,CAMvB,CACH,CACJ,GACA,CACJ,CAAC;AACJ,CAAC,CAAC;AA0XA,4DAAwB;AApX1B,MAAM,UAAU,GAAG,CAAC,EAOkB,EAAE,EAAE;QAPtB,EAClB,QAAQ,EACR,SAAS,EACT,KAAK,EACL,cAAc,EACd,GAAG,OAEiC,EADjC,SAAS,cANM,2DAOnB,CADa;IAEZ,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,kBAAkB,EAAE,GAAG,IAAA,sCAAkB,GAAE,CAAC;IAE5E,MAAM,EAAE,kBAAkB,EAAE,cAAc,EAAE,YAAY,EAAE,QAAQ,EAAE,GAClE,UAAU,CAAC;IAEb,OAAO,CACL,8CACE,GAAG,EAAE,GAAG,EACR,KAAK,EAAE,KAAK,EACZ,SAAS,EAAE,IAAA,oBAAU,EAAC,mBAAmB,EAAE,SAAS,CAAC,gBAC1C,YAAY,IACnB,SAAS,EACT,cAAc,cAEjB,QAAQ,IAAI,CACX,6DAEG,kBAAkB,EAAE;oBACnB,CAAC,CAAC,UAAU,CAAC,qBAAqB,IAAI,CAClC,uBAAC,UAAU,CAAC,qBAAqB,IAC/B,MAAM,EAAC,UAAU,EACjB,OAAO,EAAE,YAAY,GACrB,CACH;oBACH,CAAC,CAAC,IAAI,EAEP,CAAC,kBAAkB,IAAI,UAAU,CAAC,wBAAwB,IAAI,CAC7D,uBAAC,UAAU,CAAC,wBAAwB,KAAG,CACxC,EAEA,cAAc,EAAE;oBACf,CAAC,CAAC,UAAU,CAAC,qBAAqB,IAAI,CAClC,uBAAC,UAAU,CAAC,qBAAqB,IAC/B,MAAM,EAAC,MAAM,EACb,OAAO,EAAE,QAAQ,GACjB,CACH;oBACH,CAAC,CAAC,IAAI,IACP,CACJ,IACG,CACP,CAAC;AACJ,CAAC,CAAC;AAiUA,gCAAU;AA3TZ,MAAM,UAAU,GAAG,CAAC,EAOkB,EAAE,EAAE;QAPtB,EAClB,QAAQ,EACR,SAAS,EACT,KAAK,EACL,cAAc,EACd,GAAG,OAEiC,EADjC,SAAS,cANM,2DAOnB,CADa;IAEZ,MAAM,EACJ,UAAU,EACV,UAAU,EACV,iBAAiB,EACjB,aAAa,EACb,iBAAiB,GAClB,GAAG,IAAA,sCAAkB,GAAE,CAAC;IAEzB,MAAM,EAAE,YAAY,EAAE,GAAG,UAAU,CAAC;IAEpC,OAAO,CACL,8CACE,GAAG,EAAE,GAAG,EACR,KAAK,kCACA,KAAK,GACL,CAAC,iBAAiB,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,CAAC,GAErD,SAAS,EAAE,IAAA,oBAAU,EAAC,0BAA0B,EAAE,SAAS,CAAC,IACxD,SAAS,EACT,cAAc,cAElB,2DACG,QAAQ,IAAI,CACX,6DACG,UAAU,CAAC,YAAY,IAAI,uBAAC,UAAU,CAAC,YAAY,KAAG,EACvD,uBAAC,mBAAQ,kBACP,YAAY,EAAC,MAAM,EACnB,KAAK,EAAC,aAAa,EACnB,MAAM,EAAC,MAAM,IACT,aAAa,IACjB,SAAS,EAAE,iBAAiB,YAE5B,iCAAK,SAAS,EAAC,sCAAsC,aAClD,YAAY,EAAE,GAAG,CAAC,IAAI,UAAU,CAAC,UAAU,IAAI,CAC9C,uBAAC,UAAU,CAAC,UAAU,KAAG,CAC1B,EAEA,UAAU,CAAC,WAAW,IAAI,uBAAC,UAAU,CAAC,WAAW,KAAG,IACjD,IACG,IACV,CACJ,GACA,IACC,CACP,CAAC;AACJ,CAAC,CAAC;AAmQA,gCAAU;AA7PZ,MAAM,kBAAkB,GAAG,CAAC,EAOkB,EAAE,EAAE;QAPtB,EAC1B,QAAQ,EACR,SAAS,EACT,KAAK,EACL,cAAc,EACd,GAAG,OAEyC,EADzC,SAAS,cANc,2DAO3B,CADa;IAEZ,OAAO,CACL,8CACE,GAAG,EAAE,GAAG,EACR,KAAK,EAAE,KAAK,EACZ,SAAS,EAAE,IAAA,oBAAU,EAAC,+BAA+B,EAAE,SAAS,CAAC,EACjE,IAAI,EAAC,KAAK,IACN,SAAS,EACT,cAAc,cAEjB,QAAQ,IAAI,CACX,gCAAK,IAAI,EAAC,MAAM,EAAC,SAAS,EAAC,2BAA2B,YACpD,iCAAK,SAAS,EAAC,mCAAmC,aAChD,uBAAC,gCAAc,KAAG,EAClB,0DAAqB,IACjB,GACF,CACP,IACG,CACP,CAAC;AACJ,CAAC,CAAC;AA2OA,gDAAkB;AArOpB,MAAM,iBAAiB,GAAG,CAAC,EAOkB,EAAE,EAAE;QAPtB,EACzB,QAAQ,EACR,SAAS,EACT,KAAK,EACL,cAAc,EACd,GAAG,OAEwC,EADxC,SAAS,cANa,2DAO1B,CADa;IAEZ,OAAO,CACL,8CACE,GAAG,EAAE,GAAG,EACR,KAAK,EAAE,KAAK,EACZ,SAAS,EAAE,IAAA,oBAAU,EAAC,+BAA+B,EAAE,SAAS,CAAC,EACjE,IAAI,EAAC,KAAK,IACN,SAAS,EACT,cAAc,cAEjB,QAAQ,IAAI,CACX,wBAAC,uCAA+B,eAC9B,uBAAC,UAAU,KAAG,EACd,uBAAC,uBAAU,IAAC,OAAO,EAAC,kBAAkB,kCAA+B,IACrC,CACnC,IACG,CACP,CAAC;AACJ,CAAC,CAAC;AA0MA,8CAAiB;AApMZ,MAAM,+BAA+B,GAAG,CAAC,EAOW,EAAE,EAAE;QAPf,EAC9C,QAAQ,EACR,SAAS,EACT,KAAK,EACL,cAAc,EACd,GAAG,OAEsD,EADtD,SAAS,cANkC,2DAO/C,CADa;IAEZ,OAAO,CACL,8CACE,IAAI,EAAC,MAAM,EACX,SAAS,EAAE,IAAA,oBAAU,EAAC,2BAA2B,EAAE,SAAS,CAAC,EAC7D,GAAG,EAAE,GAAG,EACR,KAAK,EAAE,KAAK,IACR,SAAS,EACT,cAAc,cAEjB,QAAQ,IACL,CACP,CAAC;AACJ,CAAC,CAAC;AApBW,QAAA,+BAA+B,mCAoB1C;AAQF,MAAM,cAAc,GAAG,CAAoB,EASI,EAAE,EAAE;;QATR,EACzC,IAAI,EACJ,KAAK,EACL,SAAS,EACT,SAAS,EACT,KAAK,EACL,cAAc,EACd,GAAG,OAE0C,EAD1C,SAAS,cAR6B,6EAS1C,CADa;IAEZ,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,IAAA,gBAAQ,EAAC,KAAK,CAAC,CAAC;IAEpD,IAAA,iBAAS,EAAC,GAAG,EAAE;QACb,aAAa,CAAC,KAAK,CAAC,CAAC;IACvB,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;IAEZ,MAAM,EAAE,WAAW,EAAE,GAAG,IAAA,sCAAkB,GAAK,CAAC;IAEhD,IAAI,CAAC,CAAA,MAAA,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,0CAAE,gBAAgB,CAAA,EAAE,CAAC;QAClD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,CACL,gDACE,GAAG,EAAE,GAAG,EACR,KAAK,EAAE,KAAK,EACZ,SAAS,EAAE,SAAS,EACpB,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAC9C,KAAK,EAAE,UAAU,EACjB,OAAO,EAAE,GAAG,EAAE;YACZ,WAAW,CAAC,OAAO,EAAE,CAAC;QACxB,CAAC,EACD,SAAS,EAAE,CAAC,CAAC,EAAE,EAAE;;YACf,IAAI,CAAC,CAAC,GAAG,KAAK,OAAO,EAAE,CAAC;gBACtB,MAAA,MAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,MAAM,CAAC,SAAS,CAAC,IAAI,0CAAE,gBAAgB,0CAAE,YAAY,CACzD,UAAU,EACV,IAAI,CACL,CAAC;gBACF,MAAA,CAAC,CAAC,aAAa,CAAC,aAAa,0CAAE,KAAK,EAAE,CAAC;gBACvC,OAAO;YACT,CAAC;iBAAM,IAAI,CAAC,CAAC,GAAG,KAAK,QAAQ,EAAE,CAAC;gBAC9B,MAAA,CAAC,CAAC,aAAa,CAAC,aAAa,0CAAE,KAAK,EAAE,CAAC;gBACvC,OAAO;YACT,CAAC;QACH,CAAC,EACD,MAAM,EAAE,GAAG,EAAE;YACX,aAAa,CAAC,KAAK,CAAC,CAAC;YACrB,WAAW,CAAC,MAAM,EAAE,CAAC;QACvB,CAAC,gBACW,SAAS,IACjB,SAAS,EACT,cAAc,EAClB,CACH,CAAC;AACJ,CAAC,CAAC;AAsGA,wCAAc;AAnFhB,MAAM,YAAY,GAAG,CAAoB,EAWE,EAAE,EAAE;;QAXN,EACvC,IAAI,EACJ,OAAO,EACP,YAAY,EAAE,gBAAgB,EAC9B,SAAS,EACT,SAAS,EACT,KAAK,EACL,cAAc,EACd,GAAG,EAAE,UAAU,EACf,UAAU,OAE+B,EADtC,SAAS,cAV2B,6GAWxC,CADa;IAEZ,MAAM,EAAE,WAAW,EAAE,YAAY,EAAE,GAAG,IAAA,sCAAkB,GAAK,CAAC;IAC9D,MAAM,GAAG,GAAG,IAAA,cAAM,EAAiB,IAAI,CAAC,CAAC;IACzC,MAAM,SAAS,GAAG,IAAA,oBAAY,EAAC,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC,CAAC;IAElD,IAAI,CAAC,CAAA,MAAA,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,0CAAE,cAAc,CAAA,EAAE,CAAC;QAChD,OAAO,IAAI,CAAC;IACd,CAAC;IACD,MAAM,aAAa,GAAG,OAAO,CAAC,IAAI,CAChC,CAAC,MAAM,EAAE,EAAE,WAAC,OAAA,MAAM,CAAC,KAAK,MAAK,MAAA,IAAI,CAAC,QAAQ,EAAE,0CAAE,QAAQ,EAAE,CAAA,CAAA,EAAA,CACzD,CAAC;IAEF,MAAM,gBAAgB,GACpB,gBAAgB,KAAK,SAAS,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,gBAAgB,CAAC;IAEnE,OAAO,CACL,uBAAC,eAAM,kBACL,GAAG,EAAE,SAAS,EACd,SAAS,EAAE,SAAS,EACpB,OAAO,EAAE,IAAI,EACb,OAAO,EAAE,IAAI,EACb,KAAK,kCAAO,KAAK,KAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAChD,IAAI,EAAC,QAAQ,EACb,IAAI,EAAC,QAAQ,EACb,SAAS,EAAE,SAAS,EACpB,UAAU,EAAE,UAAU,EACtB,WAAW,EAAE;YACX,YAAY,EAAE,aAAa;YAC3B,gBAAgB,EAAE,gBAAgB;YAClC,YAAY,EAAE,OAAO;YACrB,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE;;gBACd,MAAM,KAAK,GAAG,CAAC,aAAD,CAAC,uBAAD,CAAC,CAAE,KAAK,CAAC;gBACvB,MAAA,MAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,MAAM,CAAC,SAAS,CAAC,IAAI,0CAAE,cAAc,0CAAE,QAAQ,CACnD,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,QAAQ,EAAE,EACjB,IAAI,CACL,CAAC;gBACF,WAAW,CAAC,MAAM,EAAE,CAAC;gBACrB,CAAA,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,OAAO,KAAI,WAAW,CAAC,eAAe,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YAC3D,CAAC;YACD,UAAU,EAAE,GAAG,EAAE;gBACf,WAAW,CAAC,OAAO,EAAE,CAAC;YACxB,CAAC;YACD,OAAO,EAAE,OAAO;YAChB,MAAM,EAAE;gBACN,SAAS,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;gBACpD,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC;oBACd,eAAe,EAAE,aAAa;oBAC9B,YAAY,EAAE,CAAC;oBACf,MAAM,EAAE,MAAM;iBACf,CAAC;aACH;SACF,EACD,cAAc,EAAE,cAAc,IAC1B,SAAS,EACb,CACH,CAAC;AACJ,CAAC,CAAC;AAiBA,oCAAY;AAfd,MAAM,UAAU,GAAG,CAAC,EAGuC,EAAE,EAAE;QAH3C,EAClB,SAAS,OAEgD,EADtD,SAAS,cAFM,aAGnB,CADa;IAEZ,MAAM,OAAO,GAAG,IAAA,oBAAU,EAAC,iBAAiB,EAAE,SAAS,CAAC,CAAC;IACzD,OAAO,uBAAC,yBAAiB,kBAAC,SAAS,EAAE,OAAO,IAAM,SAAS,EAAI,CAAC;AAClE,CAAC,CAAC;AAqBA,gCAAU","sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\n\n/**\n *\n * Copyright (c) \"Neo4j\"\n * Neo4j Sweden AB [http://neo4j.com]\n *\n * This file is part of Neo4j.\n *\n * Neo4j is free software: you can redistribute it and/or modify\n * it under the terms of the GNU General Public License as published by\n * the Free Software Foundation, either version 3 of the License, or\n * (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n */\nimport { useMergeRefs } from '@floating-ui/react';\nimport {\n type Cell,\n type CellContext,\n flexRender,\n type Header as HeaderType,\n type Row,\n type RowData,\n type SortDirection,\n} from '@tanstack/react-table';\nimport classNames from 'classnames';\nimport type React from 'react';\nimport {\n Fragment,\n useCallback,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from 'react';\n\nimport {\n type CommonProps,\n type PolymorphicCommonProps,\n} from '../_common/types';\nimport { CleanIconButton } from '../clean-icon-button';\nimport {\n Bars3CenterLeftIconOutline,\n BarsArrowDownIconOutline,\n BarsArrowUpIconOutline,\n ChevronDownIconSolid,\n ChevronLeftIconOutline,\n ChevronRightIconOutline,\n DataGridCrossIcon,\n EllipsisHorizontalIconOutline,\n} from '../icons';\nimport { LoadingSpinner } from '../loading-spinner';\nimport { Menu } from '../menu';\nimport { Select } from '../select';\nimport { Skeleton } from '../skeleton';\nimport { Typography } from '../typography';\nimport { useDataGridContext } from './data-grid-context';\nimport { type ColumnAction } from './datagrid-types';\nimport {\n resizeColumn,\n ResizeDirection,\n userFriendlyPagination,\n} from './helpers';\n\n/** Table results per page, with the first option being the default */\nconst TABLE_RESULTS = {\n DEFAULT: 10,\n values: [10, 25, 50, 100],\n} as const;\n\ntype paginationOption = {\n value: number;\n label: string;\n};\n\nconst getPaginationOptions = (pageSize: number): paginationOption[] => {\n return [...new Set([...TABLE_RESULTS.values, pageSize])]\n .sort((a, b) => a - b)\n .map((option) => ({\n label: `${option}`,\n value: option,\n }));\n};\n\nexport const DEFAULT_SORT_ACTIONS: (cell: HeaderType<any, unknown>) => {\n [key in SortDirection | 'default']: ColumnAction;\n} = (cell) => ({\n asc: {\n icon: <BarsArrowUpIconOutline />,\n onClick: () => cell.column.toggleSorting(false),\n title: 'Sort ascending',\n },\n default: {\n icon: <Bars3CenterLeftIconOutline />,\n onClick: () => cell.column.clearSorting(),\n title: 'Default sort',\n },\n desc: {\n icon: <BarsArrowDownIconOutline />,\n onClick: () => cell.column.toggleSorting(true),\n title: 'Sort descending',\n },\n});\n\ntype ResizingBarProps<T extends RowData> = {\n header: HeaderType<T, unknown>;\n};\n\nconst ResizingBar = <T extends RowData>({\n header,\n className,\n style,\n htmlAttributes,\n ref,\n ...restProps\n}: CommonProps<'button', ResizingBarProps<T>>) => {\n const { isKeyboardNavigationEnabled } = useDataGridContext<T>();\n\n const handleKeyDown = (event: React.KeyboardEvent<HTMLButtonElement>) => {\n if (event.key === 'ArrowLeft') {\n event.stopPropagation();\n event.preventDefault();\n resizeColumn(ResizeDirection.LEFT, header);\n } else if (event.key === 'ArrowRight') {\n event.stopPropagation();\n event.preventDefault();\n resizeColumn(ResizeDirection.RIGHT, header);\n }\n };\n\n return (\n <button\n ref={ref}\n type=\"button\"\n className={classNames('ndl-data-grid-resizer', className, {\n 'ndl-data-grid-is-resizing': header.column.getIsResizing(),\n })}\n style={style}\n onMouseDown={header.getResizeHandler()}\n onTouchStart={header.getResizeHandler()}\n onKeyDown={handleKeyDown}\n aria-label=\"Resizing bar\"\n tabIndex={isKeyboardNavigationEnabled ? -1 : 0}\n {...restProps}\n {...htmlAttributes}\n />\n );\n};\n\ntype ScrollableProps = {\n children?: React.ReactNode;\n};\n\nconst Scrollable = ({\n children,\n ref,\n className,\n style,\n htmlAttributes,\n ...restProps\n}: CommonProps<'div', ScrollableProps> & {\n ref: React.RefObject<HTMLDivElement | null>;\n}) => {\n return (\n <div\n ref={ref}\n style={style}\n className={classNames('ndl-data-grid-scrollable', className)}\n {...restProps}\n {...htmlAttributes}\n >\n {children}\n </div>\n );\n};\n\ntype HeaderProps = {\n children?: React.ReactNode;\n};\n\nconst Header = ({\n children,\n className,\n style,\n htmlAttributes,\n ref,\n ...restProps\n}: CommonProps<'div', HeaderProps>) => {\n const { tableProps, components } = useDataGridContext();\n const { getHeaderGroups, getState } = tableProps;\n\n return (\n <div\n role=\"rowgroup\"\n className={classNames('ndl-data-grid-thead', className, {\n 'ndl-data-grid-is-resizing':\n getState().columnSizingInfo.isResizingColumn,\n })}\n style={style}\n ref={ref}\n {...restProps}\n {...htmlAttributes}\n >\n {children || (\n <>\n {getHeaderGroups().map((headerGroup) => (\n <div key={headerGroup.id} className=\"ndl-data-grid-tr\" role=\"row\">\n {headerGroup.headers.map(\n (header) =>\n components.HeaderCell && (\n <components.HeaderCell key={header.id} cell={header} />\n ),\n )}\n </div>\n ))}\n </>\n )}\n </div>\n );\n};\n\ntype ActionButtonProps = {\n action: ColumnAction;\n onClose: () => void;\n};\n\nexport const ActionButton = <T extends React.ElementType = 'button'>({\n action,\n onClose,\n as,\n className,\n style,\n htmlAttributes,\n ref,\n ...restProps\n}: PolymorphicCommonProps<T, ActionButtonProps>) => {\n const { onClick, ...restAction } = action;\n\n const interceptedOnClick = useCallback(\n (e: any) => {\n const providedOnClick = onClick ?? action.onClick;\n if (typeof providedOnClick === 'function') {\n providedOnClick(e);\n }\n onClose?.();\n },\n [action.onClick, onClick, onClose],\n );\n\n return (\n <Menu.Item\n onClick={interceptedOnClick}\n as={as}\n className={className}\n style={style}\n htmlAttributes={htmlAttributes}\n ref={ref}\n {...restAction}\n {...restProps}\n />\n );\n};\n\nexport interface ActionCellProps<T extends RowData> {\n cell?: CellContext<T, unknown>;\n innerCleanIconButtonProps?: Partial<\n React.ComponentPropsWithoutRef<typeof CleanIconButton>\n >;\n innerMenuProps?: Partial<React.ComponentProps<typeof Menu>>;\n}\n\nconst ActionCell = <T extends RowData>({\n cell,\n innerCleanIconButtonProps,\n innerMenuProps,\n}: ActionCellProps<T>) => {\n const { components, isSkeletonLoading, portalTarget } =\n useDataGridContext<T>();\n const actionsButtonRef = useRef<HTMLButtonElement>(null);\n const [isActionsOpen, setIsActionsOpen] = useState(false);\n\n if (\n !cell ||\n !cell.column.columnDef.meta ||\n typeof cell.column.columnDef?.meta?.isActionCell !== 'object'\n ) {\n return null;\n }\n\n const { actions, onOpenChange } = cell.column.columnDef.meta.isActionCell;\n\n if (isSkeletonLoading) {\n return null;\n }\n\n return (\n <>\n <CleanIconButton\n as=\"button\"\n size=\"medium\"\n description=\"Actions\"\n ref={actionsButtonRef}\n isActive={isActionsOpen}\n onClick={() => {\n onOpenChange?.(!isActionsOpen);\n setIsActionsOpen(!isActionsOpen);\n }}\n {...innerCleanIconButtonProps}\n htmlAttributes={{\n tabIndex: 0,\n ...innerCleanIconButtonProps?.htmlAttributes,\n }}\n >\n {innerCleanIconButtonProps?.children || (\n <EllipsisHorizontalIconOutline />\n )}\n </CleanIconButton>\n <Menu\n isOpen={isActionsOpen}\n anchorRef={actionsButtonRef}\n onClose={() => {\n onOpenChange?.(false);\n setIsActionsOpen(false);\n }}\n {...innerMenuProps}\n portalTarget={portalTarget}\n >\n {innerMenuProps?.children || (\n <Menu.Items>\n {actions.map(\n (action, i) =>\n components.ActionButton && (\n <components.ActionButton\n key={`${cell.column.id}-action-${i}`}\n action={{\n ...action,\n onClick: (e) => {\n action.onClick?.(e, cell);\n },\n }}\n onClose={() => setIsActionsOpen(false)}\n />\n ),\n )}\n </Menu.Items>\n )}\n </Menu>\n </>\n );\n};\n\ntype ColumnControlsProps<T extends RowData> = {\n cell: HeaderType<T, unknown>;\n children?: React.ReactNode;\n};\n\nexport const ColumnControls = <T extends RowData>({\n cell,\n children,\n className,\n style,\n htmlAttributes,\n ref,\n ...restProps\n}: CommonProps<'div', ColumnControlsProps<T>>) => {\n const { components, portalTarget } = useDataGridContext();\n\n const sort = cell.column.getIsSorted();\n const canSort = cell.column.getCanSort();\n const { hasDefaultSortingActions = true, actions } =\n cell.column.columnDef.meta?.columnActions || {};\n\n const sortingActions = useMemo(() => {\n if (canSort) {\n if (sort !== 'asc' && sort !== 'desc') {\n return [\n DEFAULT_SORT_ACTIONS(cell).asc,\n DEFAULT_SORT_ACTIONS(cell).desc,\n ];\n }\n if (sort === 'asc') {\n return [\n DEFAULT_SORT_ACTIONS(cell).default,\n DEFAULT_SORT_ACTIONS(cell).desc,\n ];\n }\n if (sort === 'desc') {\n return [\n DEFAULT_SORT_ACTIONS(cell).default,\n DEFAULT_SORT_ACTIONS(cell).asc,\n ];\n }\n }\n // Default case\n return [];\n }, [sort, cell, canSort]);\n\n const newActions: ColumnAction[] = [\n ...(hasDefaultSortingActions ? sortingActions : []),\n ...(actions ?? []),\n ];\n\n const actionsButtonRef = useRef<HTMLButtonElement>(null);\n const [isActionsOpen, setIsActionsOpen] = useState(false);\n\n if (!actions || actions.length === 0) {\n return null;\n }\n\n return newActions.length > 0 ? (\n <div\n ref={ref}\n className={classNames('ndl-header-action-group', className)}\n style={style}\n {...restProps}\n {...htmlAttributes}\n >\n {children || (\n <Fragment>\n <CleanIconButton\n size=\"small\"\n description=\"Actions\"\n ref={actionsButtonRef}\n isActive={isActionsOpen}\n onClick={() => {\n setIsActionsOpen(!isActionsOpen);\n }}\n htmlAttributes={{\n tabIndex: 0,\n }}\n >\n <ChevronDownIconSolid />\n </CleanIconButton>\n <Menu\n isOpen={isActionsOpen}\n anchorRef={actionsButtonRef}\n onClose={() => setIsActionsOpen(false)}\n portalTarget={portalTarget}\n >\n <Menu.Items>\n {newActions.map(\n (action, i) =>\n components.ActionButton && (\n <components.ActionButton\n key={`${cell.column.id}-action-${i}`}\n action={action}\n onClose={() => setIsActionsOpen(false)}\n />\n ),\n )}\n </Menu.Items>\n </Menu>\n </Fragment>\n )}\n </div>\n ) : null;\n};\n\ntype HeaderCellProps<T> = {\n cell: HeaderType<T, unknown>;\n children?: React.ReactNode;\n};\n\nconst HeaderCell = <T extends RowData>({\n cell,\n children,\n className,\n style,\n htmlAttributes,\n ref,\n ...restProps\n}: CommonProps<'div', HeaderCellProps<T>>) => {\n const { components, isResizable, isKeyboardNavigationEnabled } =\n useDataGridContext<T>();\n\n const sort = cell.column.getIsSorted();\n const canSort = cell.column.getCanSort();\n\n const ariaSortRole = useMemo(() => {\n switch (sort) {\n case 'asc':\n return 'ascending';\n case 'desc':\n return 'descending';\n default:\n return 'none';\n }\n }, [sort]);\n\n const Icon = useMemo(() => {\n switch (sort) {\n case 'asc':\n return <BarsArrowUpIconOutline className=\"ndl-header-icon\" />;\n case 'desc':\n return <BarsArrowDownIconOutline className=\"ndl-header-icon\" />;\n default:\n return (\n <Bars3CenterLeftIconOutline className=\"ndl-hoverable-indicator ndl-header-icon\" />\n );\n }\n }, [sort]);\n\n const ariaDescription = useMemo(() => {\n return canSort\n ? `Press ENTER or SPACE to sort column ${cell.column.id}`\n : `Column id: ${cell.column.id}`;\n }, [canSort, cell.column.id]);\n\n const isActionColumn = useMemo(\n () => typeof cell.column.columnDef.meta?.isActionCell === 'object',\n [cell.column.columnDef.meta],\n );\n\n const Tag = canSort ? 'button' : 'div';\n\n const InnerHeaderCell = () => (\n <div className=\"ndl-header-cell\">\n {cell.isPlaceholder\n ? null\n : flexRender(cell.column.columnDef.header, cell.getContext())}\n {canSort && Icon}\n </div>\n );\n\n return (\n <div\n ref={ref}\n tabIndex={isKeyboardNavigationEnabled && !isActionColumn ? 0 : undefined}\n key={cell.id}\n role=\"columnheader\"\n className={classNames('ndl-data-grid-th', className, {\n 'ndl-focusable-cell': isKeyboardNavigationEnabled,\n 'ndl-data-grid-row-action': isActionColumn,\n 'ndl-data-grid-pinned-cell': cell.column.getIsPinned(),\n 'ndl-data-grid-pinned-cell-right':\n cell.column.getIsPinned() === 'right',\n 'ndl-data-grid-pinned-cell-left': cell.column.getIsPinned() === 'left',\n 'ndl-data-grid-is-resizing': cell.column.getIsResizing(),\n })}\n aria-sort={ariaSortRole}\n style={{\n ...style,\n width: isActionColumn ? 40 : cell.getSize(),\n maxWidth: cell.column.columnDef.maxSize\n ? `${cell.column.columnDef.maxSize}px`\n : 'none',\n }}\n {...(isKeyboardNavigationEnabled\n ? {\n onKeyDown: (e) => {\n if (\n isResizable &&\n e.altKey &&\n (e.key === 'ArrowLeft' || e.key === 'ArrowRight')\n ) {\n const direction =\n e.key === 'ArrowLeft'\n ? ResizeDirection.LEFT\n : ResizeDirection.RIGHT;\n resizeColumn(direction, cell);\n e.preventDefault();\n e.stopPropagation();\n return;\n }\n },\n }\n : {})}\n {...restProps}\n {...htmlAttributes}\n >\n {children || (\n <>\n <Tag\n className=\"ndl-header-group\"\n style={{\n cursor: canSort ? 'pointer' : 'default',\n }}\n aria-description={ariaDescription}\n onClick={() => canSort && cell.column.toggleSorting()}\n tabIndex={canSort ? 0 : undefined}\n >\n {components.HeaderTitle ? (\n <components.HeaderTitle cell={cell}>\n <InnerHeaderCell />\n </components.HeaderTitle>\n ) : (\n <InnerHeaderCell />\n )}\n </Tag>\n {/* Column actions*/}\n {components.ColumnControls && (\n <components.ColumnControls cell={cell} />\n )}\n {/* Resizer*/}\n {isResizable &&\n cell.column.getCanResize() &&\n components.ResizingBar && <components.ResizingBar header={cell} />}\n </>\n )}\n </div>\n );\n};\n\ntype HeaderTitleProps<T> = {\n cell: HeaderType<T, unknown>;\n children?: React.ReactNode;\n};\n\nconst HeaderTitle = <T extends RowData>({\n cell,\n children,\n className,\n style,\n htmlAttributes,\n ref,\n ...restProps\n}: CommonProps<'div', HeaderTitleProps<T>>) => {\n const { column, id } = cell;\n const title =\n typeof column.columnDef.header === 'string' ? column.columnDef.header : id;\n return (\n <div\n ref={ref}\n className={className}\n title={title}\n style={style}\n {...restProps}\n {...htmlAttributes}\n >\n {children}\n </div>\n );\n};\n\ntype BodyProps = {\n children?: React.ReactNode;\n};\n\nconst Body = ({\n children,\n className,\n style,\n htmlAttributes,\n ref,\n ...restProps\n}: CommonProps<'div', BodyProps>) => {\n const { tableProps, components, isLoading } = useDataGridContext();\n const { getRowModel } = tableProps;\n\n return (\n <div\n ref={ref}\n style={style}\n className={classNames('ndl-data-grid-tbody', className)}\n role=\"rowgroup\"\n aria-busy={isLoading ? 'true' : 'false'}\n {...restProps}\n {...htmlAttributes}\n >\n {children || (\n <>\n {isLoading && components.LoadingPlaceholder && (\n <components.LoadingPlaceholder />\n )}\n\n {!isLoading &&\n getRowModel().rows.length === 0 &&\n components.NoDataPlaceholder && <components.NoDataPlaceholder />}\n\n {!isLoading &&\n getRowModel().rows.map(\n (row, idx) =>\n components.BodyRow && (\n <components.BodyRow key={`table-row-${idx}`} row={row} />\n ),\n )}\n </>\n )}\n </div>\n );\n};\n\ntype BodyCellProps<T extends RowData> = {\n cell: Cell<T, unknown>;\n children?: React.ReactNode;\n};\n\nconst BodyCell = <T extends RowData>({\n cell,\n children,\n className,\n style,\n htmlAttributes,\n ref,\n ...restProps\n}: CommonProps<'div', BodyCellProps<T>>) => {\n const isResizing = cell.column.getIsResizing();\n\n const isActionColumn = Boolean(cell.column.columnDef.meta?.isActionCell);\n const isInlineEditCell = Boolean(\n cell.column.columnDef.meta?.isInlineEditCell,\n );\n const isDropDownCell = Boolean(cell.column.columnDef.meta?.isDropDownCell);\n const isCustomCell = isActionColumn || isDropDownCell;\n const { isKeyboardNavigationEnabled, isSkeletonLoading, skeletonProps } =\n useDataGridContext();\n return (\n <div\n ref={ref}\n key={cell.id}\n className={classNames('ndl-data-grid-td', className, {\n 'ndl-focusable-cell': isKeyboardNavigationEnabled,\n 'ndl-data-grid-is-resizing': isResizing,\n 'ndl-data-grid-custom-cell': isCustomCell,\n 'ndl-data-grid-row-action': isActionColumn,\n 'ndl-data-grid-inline-edit': isInlineEditCell,\n 'ndl-data-grid-dropdown-cell': isDropDownCell,\n 'ndl-data-grid-pinned-cell': cell.column.getIsPinned(),\n 'ndl-data-grid-pinned-cell-right':\n cell.column.getIsPinned() === 'right',\n 'ndl-data-grid-pinned-cell-left': cell.column.getIsPinned() === 'left',\n })}\n role=\"cell\"\n tabIndex={isKeyboardNavigationEnabled ? 0 : undefined}\n style={{\n ...style,\n width: isActionColumn ? 40 : cell.column.getSize(),\n }}\n {...restProps}\n {...htmlAttributes}\n >\n <Skeleton\n onBackground=\"weak\"\n shape=\"rectangular\"\n width=\"100%\"\n {...skeletonProps}\n isLoading={isSkeletonLoading && !isActionColumn}\n >\n {children || flexRender(cell.column.columnDef.cell, cell.getContext())}\n </Skeleton>\n </div>\n );\n};\n\ntype BodyRowProps<T extends RowData> = {\n row: Row<T>;\n children?: React.ReactNode;\n};\n\nconst BodyRow = <T extends RowData>({\n row,\n children,\n className,\n style,\n htmlAttributes,\n ref,\n ...restProps\n}: CommonProps<'div', BodyRowProps<T>>) => {\n const { components } = useDataGridContext<T>();\n\n return (\n <div\n key={row.id}\n ref={ref}\n style={style}\n className={classNames('ndl-data-grid-tr', className)}\n role=\"row\"\n {...restProps}\n {...htmlAttributes}\n >\n {children || (\n <>\n {row\n .getVisibleCells()\n .map(\n (cell) =>\n components.BodyCell && (\n <components.BodyCell key={cell.id} cell={cell} />\n ),\n )}\n </>\n )}\n </div>\n );\n};\n\ntype TableResultProps = {\n manualPagination?: {\n from: number;\n to: number;\n totalRows: number;\n };\n children?: React.ReactNode;\n /**\n * The label to use for the results, meaning the word \"results\" in the sentence \"Showing X-Y of Z results\".\n * @defaultValue 'results'\n */\n resultsLabel?: string;\n};\n\nconst TableResults = ({\n manualPagination,\n children,\n className,\n style,\n htmlAttributes,\n ref,\n resultsLabel = 'results',\n ...restProps\n}: CommonProps<'span', TableResultProps>) => {\n const { tableProps, isSkeletonLoading, skeletonProps, isSmallNavigation } =\n useDataGridContext();\n const { getState, getRowModel, getCoreRowModel } = tableProps;\n const {\n pagination: { pageSize, pageIndex },\n } = getState();\n const { rows } = getRowModel();\n\n const { from, to, totalRows } = useMemo(\n () =>\n manualPagination || {\n from: 1 + pageIndex * pageSize,\n to: rows.length + pageIndex * pageSize,\n totalRows: getCoreRowModel().rows.length,\n },\n [pageIndex, pageSize, manualPagination, rows, getCoreRowModel],\n );\n\n if (isSmallNavigation) {\n return null;\n }\n\n return (\n <Skeleton\n as=\"span\"\n onBackground=\"weak\"\n shape=\"rectangular\"\n {...skeletonProps}\n isLoading={isSkeletonLoading}\n >\n <span\n ref={ref}\n style={style}\n className={classNames('ndl-data-grid-results', className)}\n {...restProps}\n {...htmlAttributes}\n >\n {children || (\n <span>\n Showing{' '}\n <span className=\"n-font-bold\">\n {totalRows ? `${from}${to !== from ? `-${to}` : ''}` : 0}\n </span>{' '}\n of <span className=\"n-font-bold\">{totalRows}</span> {resultsLabel}\n </span>\n )}\n </span>\n </Skeleton>\n );\n};\n\ntype RowsPerPageProps = {\n /**\n * The target element to portal the menu of the select component to.\n * Should be document.body normally, or the modal root if the select is inside a modal.\n * Defaults to the portalTarget prop of the DataGrid root component.\n */\n portalTarget?: HTMLElement | null;\n children?: React.ReactNode;\n};\n\nconst RowsPerPage = ({\n portalTarget: portalTargetProp,\n children,\n className,\n style,\n htmlAttributes,\n ref,\n ...restProps\n}: CommonProps<'div', RowsPerPageProps>) => {\n const { tableProps, portalTarget } = useDataGridContext();\n\n const { setPageSize, getState } = tableProps;\n\n const {\n pagination: { pageSize },\n } = getState();\n\n const paginationOptions = getPaginationOptions(pageSize);\n const defaultPaginationOption = paginationOptions.find(\n (option) => option.value === pageSize,\n );\n\n const menuPortalTarget =\n portalTargetProp === undefined ? portalTarget : portalTargetProp;\n\n return (\n <div\n ref={ref}\n style={style}\n className={classNames('ndl-data-grid-rows-per-page', className)}\n {...restProps}\n {...htmlAttributes}\n >\n {children || (\n <>\n Show\n <Select\n type=\"select\"\n size=\"medium\"\n ariaLabel=\"Select page size\"\n selectProps={{\n defaultValue: defaultPaginationOption,\n isSearchable: false,\n menuPortalTarget: menuPortalTarget,\n menuPosition: 'fixed',\n onChange: (option) => {\n if (option) {\n setPageSize(option.value);\n }\n },\n options: paginationOptions,\n styles: {\n container: () => ({\n width: '100%',\n }),\n },\n }}\n />\n </>\n )}\n </div>\n );\n};\n\ntype PaginationArrowButtonProps = {\n action: 'previous' | 'next';\n children?: React.ReactNode;\n onClick?: (e: React.MouseEvent<HTMLButtonElement, MouseEvent>) => void;\n};\n\nconst PaginationArrowButton = ({\n action,\n children,\n className,\n style,\n htmlAttributes,\n ref,\n ...restProps\n}: CommonProps<'button', PaginationArrowButtonProps>) => {\n const PaginationIcon =\n action === 'previous' ? ChevronLeftIconOutline : ChevronRightIconOutline;\n const ariaLabel = action === 'previous' ? 'Previous page' : 'Next page';\n const classes = classNames('ndl-data-grid-pagination-icon-button', className);\n\n return (\n <CleanIconButton\n ref={ref}\n style={style}\n className={classes}\n description={ariaLabel}\n htmlAttributes={htmlAttributes}\n {...restProps}\n >\n {children || <PaginationIcon />}\n </CleanIconButton>\n );\n};\n\ntype PaginationNumericButtonProps = {\n currentIndex: number | string;\n isSelected: boolean;\n children?: React.ReactNode;\n onClick?: (e: React.MouseEvent<HTMLButtonElement, MouseEvent>) => void;\n};\n\nconst PaginationNumericButton = ({\n currentIndex,\n isSelected,\n children,\n className,\n style,\n htmlAttributes,\n onClick,\n ref,\n ...restProps\n}: CommonProps<'button', PaginationNumericButtonProps>) => {\n return (\n <button\n ref={ref}\n style={style}\n type=\"button\"\n data-testid={`ndl-table-${currentIndex}`}\n className={classNames(\n 'ndl-data-grid-pagination-numeric-button',\n className,\n {\n 'ndl-is-selected': isSelected,\n 'ndl-not-selected': !isSelected,\n 'ndl-not-selected-numeric':\n typeof currentIndex === 'number' && !isSelected,\n },\n )}\n onClick={(e) => typeof currentIndex === 'number' && onClick && onClick(e)}\n tabIndex={typeof currentIndex === 'number' ? 0 : -1}\n {...restProps}\n {...htmlAttributes}\n >\n {children || currentIndex}\n </button>\n );\n};\n\nconst PaginationNumericButtons = () => {\n const { tableProps, components } = useDataGridContext();\n const { getState, setPageIndex, getPageCount } = tableProps;\n const {\n pagination: { pageIndex },\n } = getState();\n\n return (\n <>\n {userFriendlyPagination(pageIndex + 1, getPageCount()).map(\n (option, idx) =>\n components.PaginationNumericButton && (\n <components.PaginationNumericButton\n /** Use index to avoid situations where two \"...\" values will appear, causing a key conflict */\n key={`${option}-${idx}`}\n onClick={() =>\n typeof option === 'number' && setPageIndex(option - 1)\n }\n currentIndex={option}\n isSelected={option === pageIndex + 1}\n />\n ),\n )}\n </>\n );\n};\n\ntype PaginationProps = {\n children?: React.ReactNode;\n};\n\nconst Pagination = ({\n children,\n className,\n style,\n htmlAttributes,\n ref,\n ...restProps\n}: CommonProps<'nav', PaginationProps>) => {\n const { tableProps, components, isMediumNavigation } = useDataGridContext();\n\n const { getCanPreviousPage, getCanNextPage, previousPage, nextPage } =\n tableProps;\n\n return (\n <nav\n ref={ref}\n style={style}\n className={classNames('ndl-data-grid-nav', className)}\n aria-label=\"Pagination\"\n {...restProps}\n {...htmlAttributes}\n >\n {children || (\n <>\n {/* Previous page */}\n {getCanPreviousPage()\n ? components.PaginationArrowButton && (\n <components.PaginationArrowButton\n action=\"previous\"\n onClick={previousPage}\n />\n )\n : null}\n {/* Pages - hidden on narrow containers */}\n {!isMediumNavigation && components.PaginationNumericButtons && (\n <components.PaginationNumericButtons />\n )}\n {/* Next page */}\n {getCanNextPage()\n ? components.PaginationArrowButton && (\n <components.PaginationArrowButton\n action=\"next\"\n onClick={nextPage}\n />\n )\n : null}\n </>\n )}\n </nav>\n );\n};\n\ntype NavigationProps = {\n children?: React.ReactNode;\n};\n\nconst Navigation = ({\n children,\n className,\n style,\n htmlAttributes,\n ref,\n ...restProps\n}: CommonProps<'div', NavigationProps>) => {\n const {\n tableProps,\n components,\n isSkeletonLoading,\n skeletonProps,\n isSmallNavigation,\n } = useDataGridContext();\n\n const { getPageCount } = tableProps;\n\n return (\n <div\n ref={ref}\n style={{\n ...style,\n ...(isSmallNavigation && { justifyContent: 'end' }),\n }}\n className={classNames('ndl-data-grid-navigation', className)}\n {...restProps}\n {...htmlAttributes}\n >\n <>\n {children || (\n <>\n {components.TableResults && <components.TableResults />}\n <Skeleton\n onBackground=\"weak\"\n shape=\"rectangular\"\n height=\"36px\"\n {...skeletonProps}\n isLoading={isSkeletonLoading}\n >\n <div className=\"ndl-data-grid-navigation-right-items\">\n {getPageCount() > 1 && components.Pagination && (\n <components.Pagination />\n )}\n {/* Page size selector */}\n {components.RowsPerPage && <components.RowsPerPage />}\n </div>\n </Skeleton>\n </>\n )}\n </>\n </div>\n );\n};\n\ntype LoadingPlaceholderProps = {\n children?: React.ReactNode;\n};\n\nconst LoadingPlaceholder = ({\n children,\n className,\n style,\n htmlAttributes,\n ref,\n ...restProps\n}: CommonProps<'div', LoadingPlaceholderProps>) => {\n return (\n <div\n ref={ref}\n style={style}\n className={classNames('nld-table-placeholder-wrapper', className)}\n role=\"row\"\n {...restProps}\n {...htmlAttributes}\n >\n {children || (\n <div role=\"cell\" className=\"ndl-data-grid-placeholder\">\n <div className=\"ndl-data-grid-loading-placeholder\">\n <LoadingSpinner />\n <h6>Loading data</h6>\n </div>\n </div>\n )}\n </div>\n );\n};\n\ntype NoDataPlaceholderProps = {\n children?: React.ReactNode;\n};\n\nconst NoDataPlaceholder = ({\n children,\n className,\n style,\n htmlAttributes,\n ref,\n ...restProps\n}: CommonProps<'div', NoDataPlaceholderProps>) => {\n return (\n <div\n ref={ref}\n style={style}\n className={classNames('nld-table-placeholder-wrapper', className)}\n role=\"row\"\n {...restProps}\n {...htmlAttributes}\n >\n {children || (\n <NoDataPlaceholderContentWrapper>\n <NoDataIcon />\n <Typography variant=\"subheading-small\">No data available</Typography>\n </NoDataPlaceholderContentWrapper>\n )}\n </div>\n );\n};\n\ntype NoDataPlaceholderContentWrapperProps = {\n children?: React.ReactNode;\n};\n\nexport const NoDataPlaceholderContentWrapper = ({\n children,\n className,\n style,\n htmlAttributes,\n ref,\n ...restProps\n}: CommonProps<'div', NoDataPlaceholderContentWrapperProps>) => {\n return (\n <div\n role=\"cell\"\n className={classNames('ndl-data-grid-placeholder', className)}\n ref={ref}\n style={style}\n {...restProps}\n {...htmlAttributes}\n >\n {children}\n </div>\n );\n};\n\nexport interface InlineEditCellProps<T extends RowData> {\n cell: CellContext<T, unknown>;\n value: string;\n ariaLabel: string;\n}\n\nconst InlineEditCell = <T extends RowData>({\n cell,\n value,\n ariaLabel,\n className,\n style,\n htmlAttributes,\n ref,\n ...restProps\n}: CommonProps<'input', InlineEditCellProps<T>>) => {\n const [inputValue, setInputValue] = useState(value);\n\n useEffect(() => {\n setInputValue(value);\n }, [value]);\n\n const { dataGridNav } = useDataGridContext<T>();\n\n if (!cell.column.columnDef.meta?.isInlineEditCell) {\n return null;\n }\n\n return (\n <input\n ref={ref}\n style={style}\n className={className}\n onChange={(e) => setInputValue(e.target.value)}\n value={inputValue}\n onFocus={() => {\n dataGridNav.disable();\n }}\n onKeyDown={(e) => {\n if (e.key === 'Enter') {\n cell?.column.columnDef.meta?.isInlineEditCell?.onEditChange(\n inputValue,\n cell,\n );\n e.currentTarget.parentElement?.focus();\n return;\n } else if (e.key === 'Escape') {\n e.currentTarget.parentElement?.focus();\n return;\n }\n }}\n onBlur={() => {\n setInputValue(value);\n dataGridNav.enable();\n }}\n aria-label={ariaLabel}\n {...restProps}\n {...htmlAttributes}\n />\n );\n};\n\ntype DropDownCellProps<T extends RowData> = {\n cell: CellContext<T, unknown>;\n options: {\n value: string;\n label: string;\n }[];\n /**\n * The target element to portal the menu of the select component to, e.g. the modal root if the data grid is inside a modal.\n * Defaults to the portalTarget prop of the DataGrid root component.\n */\n portalTarget?: HTMLElement | null;\n /** Aria label of the select component. Required for accessibility. */\n ariaLabel: string;\n /** Whether the select component is disabled */\n isDisabled?: boolean;\n};\n\nconst DropDownCell = <T extends RowData>({\n cell,\n options,\n portalTarget: portalTargetProp,\n ariaLabel,\n className,\n style,\n htmlAttributes,\n ref: forwardRef,\n isDisabled,\n ...restProps\n}: CommonProps<'div', DropDownCellProps<T>>) => {\n const { dataGridNav, portalTarget } = useDataGridContext<T>();\n const ref = useRef<HTMLDivElement>(null);\n const mergedRef = useMergeRefs([ref, forwardRef]);\n\n if (!cell.column.columnDef.meta?.isDropDownCell) {\n return null;\n }\n const defaultOption = options.find(\n (option) => option.value === cell.getValue()?.toString(),\n );\n\n const menuPortalTarget =\n portalTargetProp === undefined ? portalTarget : portalTargetProp;\n\n return (\n <Select\n ref={mergedRef}\n className={className}\n isFluid={true}\n isClean={true}\n style={{ ...style, height: '100%', width: '100%' }}\n type=\"select\"\n size=\"medium\"\n ariaLabel={ariaLabel}\n isDisabled={isDisabled}\n selectProps={{\n defaultValue: defaultOption,\n menuPortalTarget: menuPortalTarget,\n menuPosition: 'fixed',\n onChange: (e) => {\n const value = e?.value;\n cell?.column.columnDef.meta?.isDropDownCell?.onChange(\n value?.toString(),\n cell,\n );\n dataGridNav.enable();\n ref?.current && dataGridNav.focusParentCell(ref.current);\n },\n onMenuOpen: () => {\n dataGridNav.disable();\n },\n options: options,\n styles: {\n container: () => ({ height: '100%', width: '100%' }),\n control: () => ({\n backgroundColor: 'transparent',\n borderRadius: 0,\n height: '100%',\n }),\n },\n }}\n htmlAttributes={htmlAttributes}\n {...restProps}\n />\n );\n};\n\nconst NoDataIcon = ({\n className,\n ...restProps\n}: React.ComponentPropsWithoutRef<typeof DataGridCrossIcon>) => {\n const classes = classNames('n-size-token-64', className);\n return <DataGridCrossIcon className={classes} {...restProps} />;\n};\n\nexport {\n ResizingBar,\n Header,\n Body,\n BodyCell,\n BodyRow,\n InlineEditCell,\n DropDownCell,\n ActionCell,\n HeaderCell,\n HeaderTitle,\n Navigation,\n TableResults,\n RowsPerPage,\n Pagination,\n PaginationNumericButtons,\n PaginationArrowButton,\n PaginationNumericButton,\n NoDataPlaceholder,\n NoDataIcon,\n LoadingPlaceholder,\n Scrollable,\n};\n"]}
@@ -1,15 +1,4 @@
1
1
  "use strict";
2
- var __rest = (this && this.__rest) || function (s, e) {
3
- var t = {};
4
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
5
- t[p] = s[p];
6
- if (s != null && typeof Object.getOwnPropertySymbols === "function")
7
- for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
8
- if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
9
- t[p[i]] = s[p[i]];
10
- }
11
- return t;
12
- };
13
2
  Object.defineProperty(exports, "__esModule", { value: true });
14
3
  const jsx_runtime_1 = require("react/jsx-runtime");
15
4
  /**
@@ -74,18 +63,6 @@ const columns = [
74
63
  cell: (info) => info.getValue(),
75
64
  }),
76
65
  ];
77
- const CustomHeaderCell = (_a) => {
78
- var { htmlAttributes, cell } = _a, restProps = __rest(_a, ["htmlAttributes", "cell"]);
79
- const tabIndex = cell.index === 0 ? 0 : -1;
80
- return ((0, jsx_runtime_1.jsx)(react_1.DataGrid.HeaderCell, Object.assign({}, restProps, { cell: cell, htmlAttributes: Object.assign(Object.assign(Object.assign({}, htmlAttributes), { tabIndex: tabIndex }), (cell.index === 0
81
- ? {
82
- role: 'presentation',
83
- style: {
84
- pointerEvents: 'none',
85
- },
86
- }
87
- : {})) })));
88
- };
89
66
  const CustomBodyRow = ({ row, }) => {
90
67
  const { components } = (0, react_1.useDataGridContext)();
91
68
  return ((0, jsx_runtime_1.jsx)("div", { role: "row", className: "ndl-data-grid-tr", children: row.getVisibleCells().map((cell) => components.BodyCell && ((0, jsx_runtime_1.jsx)(components.BodyCell, { cell: cell, htmlAttributes: {
@@ -109,7 +86,6 @@ const Component = () => {
109
86
  });
110
87
  return ((0, jsx_runtime_1.jsx)("div", { className: "n-w-full", children: (0, jsx_runtime_1.jsx)(react_1.DataGrid, { components: {
111
88
  BodyRow: CustomBodyRow,
112
- HeaderCell: CustomHeaderCell,
113
89
  Navigation: null,
114
90
  }, isKeyboardNavigable: false, isResizable: false, tableInstance: table }) }));
115
91
  };
@@ -1 +1 @@
1
- {"version":3,"file":"datagrid-single-selectable.story.js","sourceRoot":"","sources":["../../../../src/data-grid/stories/datagrid-single-selectable.story.tsx"],"names":[],"mappings":"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","sourcesContent":["/**\n *\n * Copyright (c) \"Neo4j\"\n * Neo4j Sweden AB [http://neo4j.com]\n *\n * This file is part of Neo4j.\n *\n * Neo4j is free software: you can redistribute it and/or modify\n * it under the terms of the GNU General Public License as published by\n * the Free Software Foundation, either version 3 of the License, or\n * (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n */\n\nimport '@neo4j-ndl/base/lib/neo4j-ds-styles.css';\n\nimport { DataGrid, Radio, useDataGridContext } from '@neo4j-ndl/react';\nimport {\n createColumnHelper,\n getCoreRowModel,\n getPaginationRowModel,\n useReactTable,\n} from '@tanstack/react-table';\n\ntype PricingEntry = {\n cpuCount: number;\n id: number;\n memory: string;\n storage: string;\n};\n\nconst columnHelper = createColumnHelper<PricingEntry>();\n\nconst DEMO_PRICING: PricingEntry[] = [\n {\n cpuCount: 1,\n id: 1,\n memory: '1 GB',\n storage: '10 GB',\n },\n {\n cpuCount: 2,\n id: 2,\n memory: '2 GB',\n storage: '20 GB',\n },\n {\n cpuCount: 3,\n id: 3,\n memory: '3 GB',\n storage: '30 GB',\n },\n];\n\nconst columns = [\n columnHelper.accessor('id', {\n cell: ({ cell, row }) => (\n <Radio\n ariaLabel={`value-${cell.getValue()}`}\n isChecked={row.getIsSelected()}\n />\n ),\n header: () => null,\n maxSize: 50,\n size: 50,\n }),\n columnHelper.accessor('memory', {\n cell: (info) => info.getValue(),\n minSize: 120,\n }),\n columnHelper.accessor('cpuCount', {\n cell: (info) => info.getValue(),\n }),\n columnHelper.accessor('storage', {\n cell: (info) => info.getValue(),\n }),\n];\n\nconst CustomHeaderCell = ({\n htmlAttributes,\n cell,\n ...restProps\n}: React.ComponentProps<typeof DataGrid.HeaderCell<PricingEntry>>) => {\n const tabIndex = cell.index === 0 ? 0 : -1;\n return (\n <DataGrid.HeaderCell\n {...restProps}\n cell={cell}\n htmlAttributes={{\n ...htmlAttributes,\n tabIndex: tabIndex,\n // Conditional role assignment\n ...(cell.index === 0\n ? {\n role: 'presentation',\n style: {\n pointerEvents: 'none',\n },\n }\n : {}),\n }}\n />\n );\n};\n\nconst CustomBodyRow = ({\n row,\n}: React.ComponentProps<typeof DataGrid.BodyRow<PricingEntry>>) => {\n const { components } = useDataGridContext<PricingEntry>();\n\n return (\n <div key={row.id} role=\"row\" className=\"ndl-data-grid-tr\">\n {row.getVisibleCells().map(\n (cell) =>\n components.BodyCell && (\n <components.BodyCell\n key={cell.id}\n cell={cell}\n htmlAttributes={{\n onClick: () => row.toggleSelected(!row.getIsSelected()),\n }}\n />\n ),\n )}\n </div>\n );\n};\n\nconst Component = () => {\n const table = useReactTable({\n columnResizeMode: 'onChange',\n columns,\n data: DEMO_PRICING,\n enableMultiRowSelection: false,\n enableSorting: false,\n getCoreRowModel: getCoreRowModel(),\n getPaginationRowModel: getPaginationRowModel(),\n initialState: {\n rowSelection: {\n 0: true,\n },\n },\n });\n\n return (\n <div className=\"n-w-full\">\n <DataGrid\n components={{\n BodyRow: CustomBodyRow,\n HeaderCell: CustomHeaderCell,\n Navigation: null,\n }}\n isKeyboardNavigable={false}\n isResizable={false}\n tableInstance={table}\n />\n </div>\n );\n};\n\nexport default Component;\n"]}
1
+ {"version":3,"file":"datagrid-single-selectable.story.js","sourceRoot":"","sources":["../../../../src/data-grid/stories/datagrid-single-selectable.story.tsx"],"names":[],"mappings":"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","sourcesContent":["/**\n *\n * Copyright (c) \"Neo4j\"\n * Neo4j Sweden AB [http://neo4j.com]\n *\n * This file is part of Neo4j.\n *\n * Neo4j is free software: you can redistribute it and/or modify\n * it under the terms of the GNU General Public License as published by\n * the Free Software Foundation, either version 3 of the License, or\n * (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n */\n\nimport '@neo4j-ndl/base/lib/neo4j-ds-styles.css';\n\nimport { DataGrid, Radio, useDataGridContext } from '@neo4j-ndl/react';\nimport {\n createColumnHelper,\n getCoreRowModel,\n getPaginationRowModel,\n useReactTable,\n} from '@tanstack/react-table';\n\ntype PricingEntry = {\n cpuCount: number;\n id: number;\n memory: string;\n storage: string;\n};\n\nconst columnHelper = createColumnHelper<PricingEntry>();\n\nconst DEMO_PRICING: PricingEntry[] = [\n {\n cpuCount: 1,\n id: 1,\n memory: '1 GB',\n storage: '10 GB',\n },\n {\n cpuCount: 2,\n id: 2,\n memory: '2 GB',\n storage: '20 GB',\n },\n {\n cpuCount: 3,\n id: 3,\n memory: '3 GB',\n storage: '30 GB',\n },\n];\n\nconst columns = [\n columnHelper.accessor('id', {\n cell: ({ cell, row }) => (\n <Radio\n ariaLabel={`value-${cell.getValue()}`}\n isChecked={row.getIsSelected()}\n />\n ),\n header: () => null,\n maxSize: 50,\n size: 50,\n }),\n columnHelper.accessor('memory', {\n cell: (info) => info.getValue(),\n minSize: 120,\n }),\n columnHelper.accessor('cpuCount', {\n cell: (info) => info.getValue(),\n }),\n columnHelper.accessor('storage', {\n cell: (info) => info.getValue(),\n }),\n];\n\nconst CustomBodyRow = ({\n row,\n}: React.ComponentProps<typeof DataGrid.BodyRow<PricingEntry>>) => {\n const { components } = useDataGridContext<PricingEntry>();\n\n return (\n <div key={row.id} role=\"row\" className=\"ndl-data-grid-tr\">\n {row.getVisibleCells().map(\n (cell) =>\n components.BodyCell && (\n <components.BodyCell\n key={cell.id}\n cell={cell}\n htmlAttributes={{\n onClick: () => row.toggleSelected(!row.getIsSelected()),\n }}\n />\n ),\n )}\n </div>\n );\n};\n\nconst Component = () => {\n const table = useReactTable({\n columnResizeMode: 'onChange',\n columns,\n data: DEMO_PRICING,\n enableMultiRowSelection: false,\n enableSorting: false,\n getCoreRowModel: getCoreRowModel(),\n getPaginationRowModel: getPaginationRowModel(),\n initialState: {\n rowSelection: {\n 0: true,\n },\n },\n });\n\n return (\n <div className=\"n-w-full\">\n <DataGrid\n components={{\n BodyRow: CustomBodyRow,\n Navigation: null,\n }}\n isKeyboardNavigable={false}\n isResizable={false}\n tableInstance={table}\n />\n </div>\n );\n};\n\nexport default Component;\n"]}