@neo4j-ndl/react 4.5.9 → 4.5.10

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 (130) hide show
  1. package/lib/cjs/ai/more-files/stories/more-files.story.js +1 -1
  2. package/lib/cjs/ai/more-files/stories/more-files.story.js.map +1 -1
  3. package/lib/cjs/ai/prompt/Prompt.js +1 -1
  4. package/lib/cjs/ai/prompt/Prompt.js.map +1 -1
  5. package/lib/cjs/ai/user-bubble/stories/user-bubble-and-files.story.js +1 -1
  6. package/lib/cjs/ai/user-bubble/stories/user-bubble-and-files.story.js.map +1 -1
  7. package/lib/cjs/breadcrumbs/stories/breadcrumbs-ellipses.story.js +1 -1
  8. package/lib/cjs/breadcrumbs/stories/breadcrumbs-ellipses.story.js.map +1 -1
  9. package/lib/cjs/breadcrumbs/stories/breadcrumbs-header.story.js +1 -1
  10. package/lib/cjs/breadcrumbs/stories/breadcrumbs-header.story.js.map +1 -1
  11. package/lib/cjs/data-grid/Components.js +2 -2
  12. package/lib/cjs/data-grid/Components.js.map +1 -1
  13. package/lib/cjs/dropdown-button/stories/dropdown-button-with-menu.story.js +1 -3
  14. package/lib/cjs/dropdown-button/stories/dropdown-button-with-menu.story.js.map +1 -1
  15. package/lib/cjs/menu/Menu.js +42 -6
  16. package/lib/cjs/menu/Menu.js.map +1 -1
  17. package/lib/cjs/menu/menu-types.js.map +1 -1
  18. package/lib/cjs/menu/stories/index.js +9 -1
  19. package/lib/cjs/menu/stories/index.js.map +1 -1
  20. package/lib/cjs/menu/stories/menu-custom-items.story.js +2 -2
  21. package/lib/cjs/menu/stories/menu-custom-items.story.js.map +1 -1
  22. package/lib/cjs/menu/stories/menu-default.story.js +14 -14
  23. package/lib/cjs/menu/stories/menu-default.story.js.map +1 -1
  24. package/lib/cjs/menu/stories/menu-in-dialog.story.js +2 -2
  25. package/lib/cjs/menu/stories/menu-in-dialog.story.js.map +1 -1
  26. package/lib/cjs/menu/stories/menu-in-popover.story.js +2 -2
  27. package/lib/cjs/menu/stories/menu-in-popover.story.js.map +1 -1
  28. package/lib/cjs/menu/stories/menu-nested.story.js +2 -2
  29. package/lib/cjs/menu/stories/menu-nested.story.js.map +1 -1
  30. package/lib/cjs/menu/stories/menu-placements.story.js +14 -14
  31. package/lib/cjs/menu/stories/menu-placements.story.js.map +1 -1
  32. package/lib/cjs/menu/stories/menu-radio-and-normal.story.js +44 -0
  33. package/lib/cjs/menu/stories/menu-radio-and-normal.story.js.map +1 -0
  34. package/lib/cjs/menu/stories/menu-radio-items.story.js +45 -0
  35. package/lib/cjs/menu/stories/menu-radio-items.story.js.map +1 -0
  36. package/lib/cjs/menu/stories/menu-with-category.story.js +2 -2
  37. package/lib/cjs/menu/stories/menu-with-category.story.js.map +1 -1
  38. package/lib/cjs/menu/stories/menu-with-disabled-item.story.js +2 -2
  39. package/lib/cjs/menu/stories/menu-with-disabled-item.story.js.map +1 -1
  40. package/lib/cjs/menu/stories/menu-with-divider.story.js +2 -2
  41. package/lib/cjs/menu/stories/menu-with-divider.story.js.map +1 -1
  42. package/lib/cjs/menu/stories/menu-with-icon.story.js +2 -2
  43. package/lib/cjs/menu/stories/menu-with-icon.story.js.map +1 -1
  44. package/lib/cjs/menu/stories/menu-with-keyboard-shortcuts.story.js +2 -2
  45. package/lib/cjs/menu/stories/menu-with-keyboard-shortcuts.story.js.map +1 -1
  46. package/lib/cjs/menu/stories/menu.stories.js +29 -1
  47. package/lib/cjs/menu/stories/menu.stories.js.map +1 -1
  48. package/lib/cjs/select-icon-button/stories/select-icon-button-with-menu.story.js +1 -3
  49. package/lib/cjs/select-icon-button/stories/select-icon-button-with-menu.story.js.map +1 -1
  50. package/lib/esm/ai/more-files/stories/more-files.story.js +1 -1
  51. package/lib/esm/ai/more-files/stories/more-files.story.js.map +1 -1
  52. package/lib/esm/ai/prompt/Prompt.js +2 -2
  53. package/lib/esm/ai/prompt/Prompt.js.map +1 -1
  54. package/lib/esm/ai/user-bubble/stories/user-bubble-and-files.story.js +1 -1
  55. package/lib/esm/ai/user-bubble/stories/user-bubble-and-files.story.js.map +1 -1
  56. package/lib/esm/breadcrumbs/stories/breadcrumbs-ellipses.story.js +1 -1
  57. package/lib/esm/breadcrumbs/stories/breadcrumbs-ellipses.story.js.map +1 -1
  58. package/lib/esm/breadcrumbs/stories/breadcrumbs-header.story.js +2 -2
  59. package/lib/esm/breadcrumbs/stories/breadcrumbs-header.story.js.map +1 -1
  60. package/lib/esm/data-grid/Components.js +2 -2
  61. package/lib/esm/data-grid/Components.js.map +1 -1
  62. package/lib/esm/dropdown-button/stories/dropdown-button-with-menu.story.js +1 -3
  63. package/lib/esm/dropdown-button/stories/dropdown-button-with-menu.story.js.map +1 -1
  64. package/lib/esm/menu/Menu.js +43 -7
  65. package/lib/esm/menu/Menu.js.map +1 -1
  66. package/lib/esm/menu/menu-types.js.map +1 -1
  67. package/lib/esm/menu/stories/index.js +6 -0
  68. package/lib/esm/menu/stories/index.js.map +1 -1
  69. package/lib/esm/menu/stories/menu-custom-items.story.js +2 -2
  70. package/lib/esm/menu/stories/menu-custom-items.story.js.map +1 -1
  71. package/lib/esm/menu/stories/menu-default.story.js +14 -14
  72. package/lib/esm/menu/stories/menu-default.story.js.map +1 -1
  73. package/lib/esm/menu/stories/menu-in-dialog.story.js +2 -2
  74. package/lib/esm/menu/stories/menu-in-dialog.story.js.map +1 -1
  75. package/lib/esm/menu/stories/menu-in-popover.story.js +2 -2
  76. package/lib/esm/menu/stories/menu-in-popover.story.js.map +1 -1
  77. package/lib/esm/menu/stories/menu-nested.story.js +2 -2
  78. package/lib/esm/menu/stories/menu-nested.story.js.map +1 -1
  79. package/lib/esm/menu/stories/menu-placements.story.js +14 -14
  80. package/lib/esm/menu/stories/menu-placements.story.js.map +1 -1
  81. package/lib/esm/menu/stories/menu-radio-and-normal.story.js +42 -0
  82. package/lib/esm/menu/stories/menu-radio-and-normal.story.js.map +1 -0
  83. package/lib/esm/menu/stories/menu-radio-items.story.js +43 -0
  84. package/lib/esm/menu/stories/menu-radio-items.story.js.map +1 -0
  85. package/lib/esm/menu/stories/menu-with-category.story.js +2 -2
  86. package/lib/esm/menu/stories/menu-with-category.story.js.map +1 -1
  87. package/lib/esm/menu/stories/menu-with-disabled-item.story.js +2 -2
  88. package/lib/esm/menu/stories/menu-with-disabled-item.story.js.map +1 -1
  89. package/lib/esm/menu/stories/menu-with-divider.story.js +2 -2
  90. package/lib/esm/menu/stories/menu-with-divider.story.js.map +1 -1
  91. package/lib/esm/menu/stories/menu-with-icon.story.js +2 -2
  92. package/lib/esm/menu/stories/menu-with-icon.story.js.map +1 -1
  93. package/lib/esm/menu/stories/menu-with-keyboard-shortcuts.story.js +2 -2
  94. package/lib/esm/menu/stories/menu-with-keyboard-shortcuts.story.js.map +1 -1
  95. package/lib/esm/menu/stories/menu.stories.js +29 -1
  96. package/lib/esm/menu/stories/menu.stories.js.map +1 -1
  97. package/lib/esm/select-icon-button/stories/select-icon-button-with-menu.story.js +1 -3
  98. package/lib/esm/select-icon-button/stories/select-icon-button-with-menu.story.js.map +1 -1
  99. package/lib/types/ai/more-files/stories/more-files.story.d.ts.map +1 -1
  100. package/lib/types/ai/prompt/Prompt.d.ts.map +1 -1
  101. package/lib/types/ai/user-bubble/stories/user-bubble-and-files.story.d.ts.map +1 -1
  102. package/lib/types/breadcrumbs/stories/breadcrumbs-ellipses.story.d.ts.map +1 -1
  103. package/lib/types/breadcrumbs/stories/breadcrumbs-header.story.d.ts.map +1 -1
  104. package/lib/types/data-grid/Components.d.ts.map +1 -1
  105. package/lib/types/dropdown-button/stories/dropdown-button-with-menu.story.d.ts.map +1 -1
  106. package/lib/types/menu/Menu.d.ts +8 -3
  107. package/lib/types/menu/Menu.d.ts.map +1 -1
  108. package/lib/types/menu/menu-types.d.ts +9 -0
  109. package/lib/types/menu/menu-types.d.ts.map +1 -1
  110. package/lib/types/menu/stories/index.d.ts +4 -0
  111. package/lib/types/menu/stories/index.d.ts.map +1 -1
  112. package/lib/types/menu/stories/menu-custom-items.story.d.ts.map +1 -1
  113. package/lib/types/menu/stories/menu-default.story.d.ts.map +1 -1
  114. package/lib/types/menu/stories/menu-in-dialog.story.d.ts.map +1 -1
  115. package/lib/types/menu/stories/menu-in-popover.story.d.ts.map +1 -1
  116. package/lib/types/menu/stories/menu-nested.story.d.ts.map +1 -1
  117. package/lib/types/menu/stories/menu-placements.story.d.ts.map +1 -1
  118. package/lib/types/menu/stories/menu-radio-and-normal.story.d.ts +24 -0
  119. package/lib/types/menu/stories/menu-radio-and-normal.story.d.ts.map +1 -0
  120. package/lib/types/menu/stories/menu-radio-items.story.d.ts +24 -0
  121. package/lib/types/menu/stories/menu-radio-items.story.d.ts.map +1 -0
  122. package/lib/types/menu/stories/menu-with-category.story.d.ts.map +1 -1
  123. package/lib/types/menu/stories/menu-with-disabled-item.story.d.ts.map +1 -1
  124. package/lib/types/menu/stories/menu-with-divider.story.d.ts.map +1 -1
  125. package/lib/types/menu/stories/menu-with-icon.story.d.ts.map +1 -1
  126. package/lib/types/menu/stories/menu-with-keyboard-shortcuts.story.d.ts.map +1 -1
  127. package/lib/types/menu/stories/menu.stories.d.ts +2 -0
  128. package/lib/types/menu/stories/menu.stories.d.ts.map +1 -1
  129. package/lib/types/select-icon-button/stories/select-icon-button-with-menu.story.d.ts.map +1 -1
  130. package/package.json +2 -2
@@ -27,9 +27,9 @@ const react_2 = require("react");
27
27
  const Component = () => {
28
28
  const anchorEl = (0, react_2.useRef)(null);
29
29
  const [isOpen, setIsOpen] = (0, react_2.useState)(false);
30
- return ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(react_1.Menu, { isOpen: isOpen, anchorRef: anchorEl, onClose: (_event, _data) => {
30
+ return ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsxs)(react_1.Menu, { isOpen: isOpen, anchorRef: anchorEl, onClose: (_event, _data) => {
31
31
  setIsOpen(false);
32
- }, children: (0, jsx_runtime_1.jsxs)(react_1.Menu.Items, { children: [(0, jsx_runtime_1.jsx)(react_1.Menu.Item, { title: "Action 1", description: "Action 1 is disabled", isDisabled: true }), (0, jsx_runtime_1.jsx)(react_1.Menu.Item, { title: "Action 2", onClick: () => alert('Action2') })] }) }), (0, jsx_runtime_1.jsx)(react_1.FilledButton, { onClick: () => setIsOpen(true), ref: anchorEl, children: "Open Menu" })] }));
32
+ }, children: [(0, jsx_runtime_1.jsx)(react_1.Menu.Item, { title: "Action 1", description: "Action 1 is disabled", isDisabled: true }), (0, jsx_runtime_1.jsx)(react_1.Menu.Item, { title: "Action 2", onClick: () => alert('Action2') })] }), (0, jsx_runtime_1.jsx)(react_1.FilledButton, { onClick: () => setIsOpen(true), ref: anchorEl, children: "Open Menu" })] }));
33
33
  };
34
34
  exports.default = Component;
35
35
  //# sourceMappingURL=menu-with-disabled-item.story.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"menu-with-disabled-item.story.js","sourceRoot":"","sources":["../../../../src/menu/stories/menu-with-disabled-item.story.tsx"],"names":[],"mappings":";;;AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,mDAAiD;AAEjD,4CAAsD;AACtD,iCAAyC;AAEzC,MAAM,SAAS,GAAG,GAAG,EAAE;IACrB,MAAM,QAAQ,GAAG,IAAA,cAAM,EAA2B,IAAI,CAAC,CAAC;IACxD,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,IAAA,gBAAQ,EAAC,KAAK,CAAC,CAAC;IAE5C,OAAO,CACL,6DACE,uBAAC,YAAI,IACH,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,QAAQ,EACnB,OAAO,EAAE,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;oBACzB,SAAS,CAAC,KAAK,CAAC,CAAC;gBACnB,CAAC,YAED,wBAAC,YAAI,CAAC,KAAK,eACT,uBAAC,YAAI,CAAC,IAAI,IACR,KAAK,EAAC,UAAU,EAChB,WAAW,EAAC,sBAAsB,EAClC,UAAU,EAAE,IAAI,GAChB,EACF,uBAAC,YAAI,CAAC,IAAI,IAAC,KAAK,EAAC,UAAU,EAAC,OAAO,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,GAAI,IACpD,GACR,EACP,uBAAC,oBAAY,IAAC,OAAO,EAAE,GAAG,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,QAAQ,0BAE5C,IACd,CACJ,CAAC;AACJ,CAAC,CAAC;AAEF,kBAAe,SAAS,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 '@neo4j-ndl/base/lib/neo4j-ds-styles.css';\n\nimport { FilledButton, Menu } from '@neo4j-ndl/react';\nimport { useRef, useState } from 'react';\n\nconst Component = () => {\n const anchorEl = useRef<HTMLButtonElement | null>(null);\n const [isOpen, setIsOpen] = useState(false);\n\n return (\n <>\n <Menu\n isOpen={isOpen}\n anchorRef={anchorEl}\n onClose={(_event, _data) => {\n setIsOpen(false);\n }}\n >\n <Menu.Items>\n <Menu.Item\n title=\"Action 1\"\n description=\"Action 1 is disabled\"\n isDisabled={true}\n />\n <Menu.Item title=\"Action 2\" onClick={() => alert('Action2')} />\n </Menu.Items>\n </Menu>\n <FilledButton onClick={() => setIsOpen(true)} ref={anchorEl}>\n Open Menu\n </FilledButton>\n </>\n );\n};\n\nexport default Component;\n"]}
1
+ {"version":3,"file":"menu-with-disabled-item.story.js","sourceRoot":"","sources":["../../../../src/menu/stories/menu-with-disabled-item.story.tsx"],"names":[],"mappings":";;;AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,mDAAiD;AAEjD,4CAAsD;AACtD,iCAAyC;AAEzC,MAAM,SAAS,GAAG,GAAG,EAAE;IACrB,MAAM,QAAQ,GAAG,IAAA,cAAM,EAA2B,IAAI,CAAC,CAAC;IACxD,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,IAAA,gBAAQ,EAAC,KAAK,CAAC,CAAC;IAE5C,OAAO,CACL,6DACE,wBAAC,YAAI,IACH,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,QAAQ,EACnB,OAAO,EAAE,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;oBACzB,SAAS,CAAC,KAAK,CAAC,CAAC;gBACnB,CAAC,aAED,uBAAC,YAAI,CAAC,IAAI,IACR,KAAK,EAAC,UAAU,EAChB,WAAW,EAAC,sBAAsB,EAClC,UAAU,EAAE,IAAI,GAChB,EACF,uBAAC,YAAI,CAAC,IAAI,IAAC,KAAK,EAAC,UAAU,EAAC,OAAO,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,GAAI,IAC1D,EACP,uBAAC,oBAAY,IAAC,OAAO,EAAE,GAAG,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,QAAQ,0BAE5C,IACd,CACJ,CAAC;AACJ,CAAC,CAAC;AAEF,kBAAe,SAAS,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 '@neo4j-ndl/base/lib/neo4j-ds-styles.css';\n\nimport { FilledButton, Menu } from '@neo4j-ndl/react';\nimport { useRef, useState } from 'react';\n\nconst Component = () => {\n const anchorEl = useRef<HTMLButtonElement | null>(null);\n const [isOpen, setIsOpen] = useState(false);\n\n return (\n <>\n <Menu\n isOpen={isOpen}\n anchorRef={anchorEl}\n onClose={(_event, _data) => {\n setIsOpen(false);\n }}\n >\n <Menu.Item\n title=\"Action 1\"\n description=\"Action 1 is disabled\"\n isDisabled={true}\n />\n <Menu.Item title=\"Action 2\" onClick={() => alert('Action2')} />\n </Menu>\n <FilledButton onClick={() => setIsOpen(true)} ref={anchorEl}>\n Open Menu\n </FilledButton>\n </>\n );\n};\n\nexport default Component;\n"]}
@@ -27,9 +27,9 @@ const react_2 = require("react");
27
27
  const Component = () => {
28
28
  const anchorEl = (0, react_2.useRef)(null);
29
29
  const [isOpen, setIsOpen] = (0, react_2.useState)(false);
30
- return ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(react_1.Menu, { isOpen: isOpen, anchorRef: anchorEl, onClose: (_event, _data) => {
30
+ return ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsxs)(react_1.Menu, { isOpen: isOpen, anchorRef: anchorEl, onClose: (_event, _data) => {
31
31
  setIsOpen(false);
32
- }, children: (0, jsx_runtime_1.jsxs)(react_1.Menu.Items, { children: [(0, jsx_runtime_1.jsx)(react_1.Menu.Item, { title: "Action 1" }), (0, jsx_runtime_1.jsx)(react_1.Menu.Divider, {}), (0, jsx_runtime_1.jsx)(react_1.Menu.Item, { title: "Action 2" }), (0, jsx_runtime_1.jsx)(react_1.Menu.Divider, {}), (0, jsx_runtime_1.jsx)(react_1.Menu.Item, { title: "Action 3" }), (0, jsx_runtime_1.jsx)(react_1.Menu.Divider, {}), (0, jsx_runtime_1.jsx)(react_1.Menu.Item, { title: "Action 4" })] }) }), (0, jsx_runtime_1.jsx)(react_1.FilledButton, { onClick: () => setIsOpen(true), ref: anchorEl, children: "Open Menu" })] }));
32
+ }, children: [(0, jsx_runtime_1.jsx)(react_1.Menu.Item, { title: "Action 1" }), (0, jsx_runtime_1.jsx)(react_1.Menu.Divider, {}), (0, jsx_runtime_1.jsx)(react_1.Menu.Item, { title: "Action 2" }), (0, jsx_runtime_1.jsx)(react_1.Menu.Divider, {}), (0, jsx_runtime_1.jsx)(react_1.Menu.Item, { title: "Action 3" }), (0, jsx_runtime_1.jsx)(react_1.Menu.Divider, {}), (0, jsx_runtime_1.jsx)(react_1.Menu.Item, { title: "Action 4" })] }), (0, jsx_runtime_1.jsx)(react_1.FilledButton, { onClick: () => setIsOpen(true), ref: anchorEl, children: "Open Menu" })] }));
33
33
  };
34
34
  exports.default = Component;
35
35
  //# sourceMappingURL=menu-with-divider.story.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"menu-with-divider.story.js","sourceRoot":"","sources":["../../../../src/menu/stories/menu-with-divider.story.tsx"],"names":[],"mappings":";;;AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,mDAAiD;AAEjD,4CAAsD;AACtD,iCAAyC;AAEzC,MAAM,SAAS,GAAG,GAAG,EAAE;IACrB,MAAM,QAAQ,GAAG,IAAA,cAAM,EAA2B,IAAI,CAAC,CAAC;IACxD,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,IAAA,gBAAQ,EAAC,KAAK,CAAC,CAAC;IAE5C,OAAO,CACL,6DACE,uBAAC,YAAI,IACH,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,QAAQ,EACnB,OAAO,EAAE,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;oBACzB,SAAS,CAAC,KAAK,CAAC,CAAC;gBACnB,CAAC,YAED,wBAAC,YAAI,CAAC,KAAK,eACT,uBAAC,YAAI,CAAC,IAAI,IAAC,KAAK,EAAC,UAAU,GAAG,EAC9B,uBAAC,YAAI,CAAC,OAAO,KAAG,EAChB,uBAAC,YAAI,CAAC,IAAI,IAAC,KAAK,EAAC,UAAU,GAAG,EAC9B,uBAAC,YAAI,CAAC,OAAO,KAAG,EAChB,uBAAC,YAAI,CAAC,IAAI,IAAC,KAAK,EAAC,UAAU,GAAG,EAC9B,uBAAC,YAAI,CAAC,OAAO,KAAG,EAChB,uBAAC,YAAI,CAAC,IAAI,IAAC,KAAK,EAAC,UAAU,GAAG,IACnB,GACR,EACP,uBAAC,oBAAY,IAAC,OAAO,EAAE,GAAG,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,QAAQ,0BAE5C,IACd,CACJ,CAAC;AACJ,CAAC,CAAC;AAEF,kBAAe,SAAS,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 '@neo4j-ndl/base/lib/neo4j-ds-styles.css';\n\nimport { FilledButton, Menu } from '@neo4j-ndl/react';\nimport { useRef, useState } from 'react';\n\nconst Component = () => {\n const anchorEl = useRef<HTMLButtonElement | null>(null);\n const [isOpen, setIsOpen] = useState(false);\n\n return (\n <>\n <Menu\n isOpen={isOpen}\n anchorRef={anchorEl}\n onClose={(_event, _data) => {\n setIsOpen(false);\n }}\n >\n <Menu.Items>\n <Menu.Item title=\"Action 1\" />\n <Menu.Divider />\n <Menu.Item title=\"Action 2\" />\n <Menu.Divider />\n <Menu.Item title=\"Action 3\" />\n <Menu.Divider />\n <Menu.Item title=\"Action 4\" />\n </Menu.Items>\n </Menu>\n <FilledButton onClick={() => setIsOpen(true)} ref={anchorEl}>\n Open Menu\n </FilledButton>\n </>\n );\n};\n\nexport default Component;\n"]}
1
+ {"version":3,"file":"menu-with-divider.story.js","sourceRoot":"","sources":["../../../../src/menu/stories/menu-with-divider.story.tsx"],"names":[],"mappings":";;;AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,mDAAiD;AAEjD,4CAAsD;AACtD,iCAAyC;AAEzC,MAAM,SAAS,GAAG,GAAG,EAAE;IACrB,MAAM,QAAQ,GAAG,IAAA,cAAM,EAA2B,IAAI,CAAC,CAAC;IACxD,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,IAAA,gBAAQ,EAAC,KAAK,CAAC,CAAC;IAE5C,OAAO,CACL,6DACE,wBAAC,YAAI,IACH,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,QAAQ,EACnB,OAAO,EAAE,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;oBACzB,SAAS,CAAC,KAAK,CAAC,CAAC;gBACnB,CAAC,aAED,uBAAC,YAAI,CAAC,IAAI,IAAC,KAAK,EAAC,UAAU,GAAG,EAC9B,uBAAC,YAAI,CAAC,OAAO,KAAG,EAChB,uBAAC,YAAI,CAAC,IAAI,IAAC,KAAK,EAAC,UAAU,GAAG,EAC9B,uBAAC,YAAI,CAAC,OAAO,KAAG,EAChB,uBAAC,YAAI,CAAC,IAAI,IAAC,KAAK,EAAC,UAAU,GAAG,EAC9B,uBAAC,YAAI,CAAC,OAAO,KAAG,EAChB,uBAAC,YAAI,CAAC,IAAI,IAAC,KAAK,EAAC,UAAU,GAAG,IACzB,EACP,uBAAC,oBAAY,IAAC,OAAO,EAAE,GAAG,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,QAAQ,0BAE5C,IACd,CACJ,CAAC;AACJ,CAAC,CAAC;AAEF,kBAAe,SAAS,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 '@neo4j-ndl/base/lib/neo4j-ds-styles.css';\n\nimport { FilledButton, Menu } from '@neo4j-ndl/react';\nimport { useRef, useState } from 'react';\n\nconst Component = () => {\n const anchorEl = useRef<HTMLButtonElement | null>(null);\n const [isOpen, setIsOpen] = useState(false);\n\n return (\n <>\n <Menu\n isOpen={isOpen}\n anchorRef={anchorEl}\n onClose={(_event, _data) => {\n setIsOpen(false);\n }}\n >\n <Menu.Item title=\"Action 1\" />\n <Menu.Divider />\n <Menu.Item title=\"Action 2\" />\n <Menu.Divider />\n <Menu.Item title=\"Action 3\" />\n <Menu.Divider />\n <Menu.Item title=\"Action 4\" />\n </Menu>\n <FilledButton onClick={() => setIsOpen(true)} ref={anchorEl}>\n Open Menu\n </FilledButton>\n </>\n );\n};\n\nexport default Component;\n"]}
@@ -28,9 +28,9 @@ const react_2 = require("react");
28
28
  const Component = () => {
29
29
  const anchorEl = (0, react_2.useRef)(null);
30
30
  const [isOpen, setIsOpen] = (0, react_2.useState)(false);
31
- return ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(react_1.Menu, { isOpen: isOpen, anchorRef: anchorEl, onClose: (_event, _data) => {
31
+ return ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsxs)(react_1.Menu, { isOpen: isOpen, anchorRef: anchorEl, onClose: (_event, _data) => {
32
32
  setIsOpen(false);
33
- }, children: (0, jsx_runtime_1.jsxs)(react_1.Menu.Items, { children: [(0, jsx_runtime_1.jsx)(react_1.Menu.Item, { leadingVisual: (0, jsx_runtime_1.jsx)(icons_1.PlusIconOutline, {}), title: "Action 1", onClick: () => alert('Action1') }), (0, jsx_runtime_1.jsx)(react_1.Menu.Item, { leadingVisual: (0, jsx_runtime_1.jsx)(icons_1.PlusIconOutline, {}), title: "Action 2", onClick: () => alert('Action2') }), (0, jsx_runtime_1.jsx)(react_1.Menu.Item, { leadingVisual: (0, jsx_runtime_1.jsx)(icons_1.PlusIconOutline, {}), title: "Action 3", description: "Action 3 is disabled", isDisabled: true, onClick: () => alert('Action3') }), (0, jsx_runtime_1.jsx)(react_1.Menu, { title: "Action 3.1", description: "Action with sub menu", icon: (0, jsx_runtime_1.jsx)(icons_1.PlusIconOutline, {}), children: (0, jsx_runtime_1.jsxs)(react_1.Menu.Items, { children: [(0, jsx_runtime_1.jsx)(react_1.Menu.Item, { title: "Text" }), (0, jsx_runtime_1.jsx)(react_1.Menu.Item, { title: "Video" }), (0, jsx_runtime_1.jsx)(react_1.Menu, { title: "Image", icon: (0, jsx_runtime_1.jsx)(icons_1.PhotoIconOutline, {}), children: (0, jsx_runtime_1.jsxs)(react_1.Menu.Items, { children: [(0, jsx_runtime_1.jsx)(react_1.Menu.Item, { title: ".png" }), (0, jsx_runtime_1.jsx)(react_1.Menu.Item, { title: ".jpg" })] }) }), (0, jsx_runtime_1.jsx)(react_1.Menu.Item, { title: "Audio" })] }) }), (0, jsx_runtime_1.jsx)(react_1.Menu.Item, { leadingVisual: (0, jsx_runtime_1.jsx)(icons_1.PlusIconOutline, {}), title: "Action 4", description: "Action 4 is awesome", onClick: () => alert('Action4') })] }) }), (0, jsx_runtime_1.jsx)(react_1.FilledButton, { onClick: () => setIsOpen(true), ref: anchorEl, children: "Open Menu" })] }));
33
+ }, children: [(0, jsx_runtime_1.jsx)(react_1.Menu.Item, { leadingVisual: (0, jsx_runtime_1.jsx)(icons_1.PlusIconOutline, {}), title: "Action 1", onClick: () => alert('Action1') }), (0, jsx_runtime_1.jsx)(react_1.Menu.Item, { leadingVisual: (0, jsx_runtime_1.jsx)(icons_1.PlusIconOutline, {}), title: "Action 2", onClick: () => alert('Action2') }), (0, jsx_runtime_1.jsx)(react_1.Menu.Item, { leadingVisual: (0, jsx_runtime_1.jsx)(icons_1.PlusIconOutline, {}), title: "Action 3", description: "Action 3 is disabled", isDisabled: true, onClick: () => alert('Action3') }), (0, jsx_runtime_1.jsxs)(react_1.Menu, { title: "Action 3.1", description: "Action with sub menu", icon: (0, jsx_runtime_1.jsx)(icons_1.PlusIconOutline, {}), children: [(0, jsx_runtime_1.jsx)(react_1.Menu.Item, { title: "Text" }), (0, jsx_runtime_1.jsx)(react_1.Menu.Item, { title: "Video" }), (0, jsx_runtime_1.jsxs)(react_1.Menu, { title: "Image", icon: (0, jsx_runtime_1.jsx)(icons_1.PhotoIconOutline, {}), children: [(0, jsx_runtime_1.jsx)(react_1.Menu.Item, { title: ".png" }), (0, jsx_runtime_1.jsx)(react_1.Menu.Item, { title: ".jpg" })] }), (0, jsx_runtime_1.jsx)(react_1.Menu.Item, { title: "Audio" })] }), (0, jsx_runtime_1.jsx)(react_1.Menu.Item, { leadingVisual: (0, jsx_runtime_1.jsx)(icons_1.PlusIconOutline, {}), title: "Action 4", description: "Action 4 is awesome", onClick: () => alert('Action4') })] }), (0, jsx_runtime_1.jsx)(react_1.FilledButton, { onClick: () => setIsOpen(true), ref: anchorEl, children: "Open Menu" })] }));
34
34
  };
35
35
  exports.default = Component;
36
36
  //# sourceMappingURL=menu-with-icon.story.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"menu-with-icon.story.js","sourceRoot":"","sources":["../../../../src/menu/stories/menu-with-icon.story.tsx"],"names":[],"mappings":";;;AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,mDAAiD;AAEjD,4CAAsD;AACtD,kDAA2E;AAC3E,iCAAyC;AAEzC,MAAM,SAAS,GAAG,GAAG,EAAE;IACrB,MAAM,QAAQ,GAAG,IAAA,cAAM,EAA2B,IAAI,CAAC,CAAC;IACxD,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,IAAA,gBAAQ,EAAC,KAAK,CAAC,CAAC;IAE5C,OAAO,CACL,6DACE,uBAAC,YAAI,IACH,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,QAAQ,EACnB,OAAO,EAAE,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;oBACzB,SAAS,CAAC,KAAK,CAAC,CAAC;gBACnB,CAAC,YAED,wBAAC,YAAI,CAAC,KAAK,eACT,uBAAC,YAAI,CAAC,IAAI,IACR,aAAa,EAAE,uBAAC,uBAAe,KAAG,EAClC,KAAK,EAAC,UAAU,EAChB,OAAO,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,GAC/B,EACF,uBAAC,YAAI,CAAC,IAAI,IACR,aAAa,EAAE,uBAAC,uBAAe,KAAG,EAClC,KAAK,EAAC,UAAU,EAChB,OAAO,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,GAC/B,EACF,uBAAC,YAAI,CAAC,IAAI,IACR,aAAa,EAAE,uBAAC,uBAAe,KAAG,EAClC,KAAK,EAAC,UAAU,EAChB,WAAW,EAAC,sBAAsB,EAClC,UAAU,EAAE,IAAI,EAChB,OAAO,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,GAC/B,EACF,uBAAC,YAAI,IACH,KAAK,EAAC,YAAY,EAClB,WAAW,EAAC,sBAAsB,EAClC,IAAI,EAAE,uBAAC,uBAAe,KAAG,YAEzB,wBAAC,YAAI,CAAC,KAAK,eACT,uBAAC,YAAI,CAAC,IAAI,IAAC,KAAK,EAAC,MAAM,GAAG,EAC1B,uBAAC,YAAI,CAAC,IAAI,IAAC,KAAK,EAAC,OAAO,GAAG,EAC3B,uBAAC,YAAI,IAAC,KAAK,EAAC,OAAO,EAAC,IAAI,EAAE,uBAAC,wBAAgB,KAAG,YAC5C,wBAAC,YAAI,CAAC,KAAK,eACT,uBAAC,YAAI,CAAC,IAAI,IAAC,KAAK,EAAC,MAAM,GAAG,EAC1B,uBAAC,YAAI,CAAC,IAAI,IAAC,KAAK,EAAC,MAAM,GAAG,IACf,GACR,EACP,uBAAC,YAAI,CAAC,IAAI,IAAC,KAAK,EAAC,OAAO,GAAG,IAChB,GACR,EACP,uBAAC,YAAI,CAAC,IAAI,IACR,aAAa,EAAE,uBAAC,uBAAe,KAAG,EAClC,KAAK,EAAC,UAAU,EAChB,WAAW,EAAC,qBAAqB,EACjC,OAAO,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,GAC/B,IACS,GACR,EACP,uBAAC,oBAAY,IAAC,OAAO,EAAE,GAAG,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,QAAQ,0BAE5C,IACd,CACJ,CAAC;AACJ,CAAC,CAAC;AAEF,kBAAe,SAAS,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 '@neo4j-ndl/base/lib/neo4j-ds-styles.css';\n\nimport { FilledButton, Menu } from '@neo4j-ndl/react';\nimport { PhotoIconOutline, PlusIconOutline } from '@neo4j-ndl/react/icons';\nimport { useRef, useState } from 'react';\n\nconst Component = () => {\n const anchorEl = useRef<HTMLButtonElement | null>(null);\n const [isOpen, setIsOpen] = useState(false);\n\n return (\n <>\n <Menu\n isOpen={isOpen}\n anchorRef={anchorEl}\n onClose={(_event, _data) => {\n setIsOpen(false);\n }}\n >\n <Menu.Items>\n <Menu.Item\n leadingVisual={<PlusIconOutline />}\n title=\"Action 1\"\n onClick={() => alert('Action1')}\n />\n <Menu.Item\n leadingVisual={<PlusIconOutline />}\n title=\"Action 2\"\n onClick={() => alert('Action2')}\n />\n <Menu.Item\n leadingVisual={<PlusIconOutline />}\n title=\"Action 3\"\n description=\"Action 3 is disabled\"\n isDisabled={true}\n onClick={() => alert('Action3')}\n />\n <Menu\n title=\"Action 3.1\"\n description=\"Action with sub menu\"\n icon={<PlusIconOutline />}\n >\n <Menu.Items>\n <Menu.Item title=\"Text\" />\n <Menu.Item title=\"Video\" />\n <Menu title=\"Image\" icon={<PhotoIconOutline />}>\n <Menu.Items>\n <Menu.Item title=\".png\" />\n <Menu.Item title=\".jpg\" />\n </Menu.Items>\n </Menu>\n <Menu.Item title=\"Audio\" />\n </Menu.Items>\n </Menu>\n <Menu.Item\n leadingVisual={<PlusIconOutline />}\n title=\"Action 4\"\n description=\"Action 4 is awesome\"\n onClick={() => alert('Action4')}\n />\n </Menu.Items>\n </Menu>\n <FilledButton onClick={() => setIsOpen(true)} ref={anchorEl}>\n Open Menu\n </FilledButton>\n </>\n );\n};\n\nexport default Component;\n"]}
1
+ {"version":3,"file":"menu-with-icon.story.js","sourceRoot":"","sources":["../../../../src/menu/stories/menu-with-icon.story.tsx"],"names":[],"mappings":";;;AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,mDAAiD;AAEjD,4CAAsD;AACtD,kDAA2E;AAC3E,iCAAyC;AAEzC,MAAM,SAAS,GAAG,GAAG,EAAE;IACrB,MAAM,QAAQ,GAAG,IAAA,cAAM,EAA2B,IAAI,CAAC,CAAC;IACxD,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,IAAA,gBAAQ,EAAC,KAAK,CAAC,CAAC;IAE5C,OAAO,CACL,6DACE,wBAAC,YAAI,IACH,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,QAAQ,EACnB,OAAO,EAAE,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;oBACzB,SAAS,CAAC,KAAK,CAAC,CAAC;gBACnB,CAAC,aAED,uBAAC,YAAI,CAAC,IAAI,IACR,aAAa,EAAE,uBAAC,uBAAe,KAAG,EAClC,KAAK,EAAC,UAAU,EAChB,OAAO,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,GAC/B,EACF,uBAAC,YAAI,CAAC,IAAI,IACR,aAAa,EAAE,uBAAC,uBAAe,KAAG,EAClC,KAAK,EAAC,UAAU,EAChB,OAAO,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,GAC/B,EACF,uBAAC,YAAI,CAAC,IAAI,IACR,aAAa,EAAE,uBAAC,uBAAe,KAAG,EAClC,KAAK,EAAC,UAAU,EAChB,WAAW,EAAC,sBAAsB,EAClC,UAAU,EAAE,IAAI,EAChB,OAAO,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,GAC/B,EACF,wBAAC,YAAI,IACH,KAAK,EAAC,YAAY,EAClB,WAAW,EAAC,sBAAsB,EAClC,IAAI,EAAE,uBAAC,uBAAe,KAAG,aAEzB,uBAAC,YAAI,CAAC,IAAI,IAAC,KAAK,EAAC,MAAM,GAAG,EAC1B,uBAAC,YAAI,CAAC,IAAI,IAAC,KAAK,EAAC,OAAO,GAAG,EAC3B,wBAAC,YAAI,IAAC,KAAK,EAAC,OAAO,EAAC,IAAI,EAAE,uBAAC,wBAAgB,KAAG,aAC5C,uBAAC,YAAI,CAAC,IAAI,IAAC,KAAK,EAAC,MAAM,GAAG,EAC1B,uBAAC,YAAI,CAAC,IAAI,IAAC,KAAK,EAAC,MAAM,GAAG,IACrB,EACP,uBAAC,YAAI,CAAC,IAAI,IAAC,KAAK,EAAC,OAAO,GAAG,IACtB,EACP,uBAAC,YAAI,CAAC,IAAI,IACR,aAAa,EAAE,uBAAC,uBAAe,KAAG,EAClC,KAAK,EAAC,UAAU,EAChB,WAAW,EAAC,qBAAqB,EACjC,OAAO,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,GAC/B,IACG,EACP,uBAAC,oBAAY,IAAC,OAAO,EAAE,GAAG,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,QAAQ,0BAE5C,IACd,CACJ,CAAC;AACJ,CAAC,CAAC;AAEF,kBAAe,SAAS,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 '@neo4j-ndl/base/lib/neo4j-ds-styles.css';\n\nimport { FilledButton, Menu } from '@neo4j-ndl/react';\nimport { PhotoIconOutline, PlusIconOutline } from '@neo4j-ndl/react/icons';\nimport { useRef, useState } from 'react';\n\nconst Component = () => {\n const anchorEl = useRef<HTMLButtonElement | null>(null);\n const [isOpen, setIsOpen] = useState(false);\n\n return (\n <>\n <Menu\n isOpen={isOpen}\n anchorRef={anchorEl}\n onClose={(_event, _data) => {\n setIsOpen(false);\n }}\n >\n <Menu.Item\n leadingVisual={<PlusIconOutline />}\n title=\"Action 1\"\n onClick={() => alert('Action1')}\n />\n <Menu.Item\n leadingVisual={<PlusIconOutline />}\n title=\"Action 2\"\n onClick={() => alert('Action2')}\n />\n <Menu.Item\n leadingVisual={<PlusIconOutline />}\n title=\"Action 3\"\n description=\"Action 3 is disabled\"\n isDisabled={true}\n onClick={() => alert('Action3')}\n />\n <Menu\n title=\"Action 3.1\"\n description=\"Action with sub menu\"\n icon={<PlusIconOutline />}\n >\n <Menu.Item title=\"Text\" />\n <Menu.Item title=\"Video\" />\n <Menu title=\"Image\" icon={<PhotoIconOutline />}>\n <Menu.Item title=\".png\" />\n <Menu.Item title=\".jpg\" />\n </Menu>\n <Menu.Item title=\"Audio\" />\n </Menu>\n <Menu.Item\n leadingVisual={<PlusIconOutline />}\n title=\"Action 4\"\n description=\"Action 4 is awesome\"\n onClick={() => alert('Action4')}\n />\n </Menu>\n <FilledButton onClick={() => setIsOpen(true)} ref={anchorEl}>\n Open Menu\n </FilledButton>\n </>\n );\n};\n\nexport default Component;\n"]}
@@ -28,9 +28,9 @@ const react_2 = require("react");
28
28
  const Component = () => {
29
29
  const anchorEl = (0, react_2.useRef)(null);
30
30
  const [isOpen, setIsOpen] = (0, react_2.useState)(false);
31
- return ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(react_1.Menu, { isOpen: isOpen, anchorRef: anchorEl, onClose: (_event, _data) => {
31
+ return ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsxs)(react_1.Menu, { isOpen: isOpen, anchorRef: anchorEl, onClose: (_event, _data) => {
32
32
  setIsOpen(false);
33
- }, children: (0, jsx_runtime_1.jsxs)(react_1.Menu.Items, { children: [(0, jsx_runtime_1.jsx)(react_1.Menu.Item, { leadingVisual: (0, jsx_runtime_1.jsx)(icons_1.PlusIconOutline, {}), title: "Action 1", onClick: () => alert('Action1') }), (0, jsx_runtime_1.jsx)(react_1.Menu.Item, { leadingVisual: (0, jsx_runtime_1.jsx)(icons_1.PlusIconOutline, {}), trailingContent: (0, jsx_runtime_1.jsx)(react_1.Kbd, { keys: ['A', ['B']] }), title: "Action 2", description: "Action 4 has a keyboard shortcut", onClick: () => alert('Action4') })] }) }), (0, jsx_runtime_1.jsx)(react_1.FilledButton, { onClick: () => setIsOpen(true), ref: anchorEl, children: "Open Menu" })] }));
33
+ }, children: [(0, jsx_runtime_1.jsx)(react_1.Menu.Item, { leadingVisual: (0, jsx_runtime_1.jsx)(icons_1.PlusIconOutline, {}), title: "Action 1", onClick: () => alert('Action1') }), (0, jsx_runtime_1.jsx)(react_1.Menu.Item, { leadingVisual: (0, jsx_runtime_1.jsx)(icons_1.PlusIconOutline, {}), trailingContent: (0, jsx_runtime_1.jsx)(react_1.Kbd, { keys: ['A', ['B']] }), title: "Action 2", description: "Action 4 has a keyboard shortcut", onClick: () => alert('Action4') })] }), (0, jsx_runtime_1.jsx)(react_1.FilledButton, { onClick: () => setIsOpen(true), ref: anchorEl, children: "Open Menu" })] }));
34
34
  };
35
35
  exports.default = Component;
36
36
  //# sourceMappingURL=menu-with-keyboard-shortcuts.story.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"menu-with-keyboard-shortcuts.story.js","sourceRoot":"","sources":["../../../../src/menu/stories/menu-with-keyboard-shortcuts.story.tsx"],"names":[],"mappings":";;;AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,mDAAiD;AAEjD,4CAA2D;AAC3D,kDAAyD;AACzD,iCAAyC;AAEzC,MAAM,SAAS,GAAG,GAAG,EAAE;IACrB,MAAM,QAAQ,GAAG,IAAA,cAAM,EAA2B,IAAI,CAAC,CAAC;IACxD,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,IAAA,gBAAQ,EAAC,KAAK,CAAC,CAAC;IAE5C,OAAO,CACL,6DACE,uBAAC,YAAI,IACH,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,QAAQ,EACnB,OAAO,EAAE,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;oBACzB,SAAS,CAAC,KAAK,CAAC,CAAC;gBACnB,CAAC,YAED,wBAAC,YAAI,CAAC,KAAK,eACT,uBAAC,YAAI,CAAC,IAAI,IACR,aAAa,EAAE,uBAAC,uBAAe,KAAG,EAClC,KAAK,EAAC,UAAU,EAChB,OAAO,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,GAC/B,EACF,uBAAC,YAAI,CAAC,IAAI,IACR,aAAa,EAAE,uBAAC,uBAAe,KAAG,EAClC,eAAe,EAAE,uBAAC,WAAG,IAAC,IAAI,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,GAAI,EAC5C,KAAK,EAAC,UAAU,EAChB,WAAW,EAAC,kCAAkC,EAC9C,OAAO,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,GAC/B,IACS,GACR,EACP,uBAAC,oBAAY,IAAC,OAAO,EAAE,GAAG,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,QAAQ,0BAE5C,IACd,CACJ,CAAC;AACJ,CAAC,CAAC;AAEF,kBAAe,SAAS,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 '@neo4j-ndl/base/lib/neo4j-ds-styles.css';\n\nimport { FilledButton, Kbd, Menu } from '@neo4j-ndl/react';\nimport { PlusIconOutline } from '@neo4j-ndl/react/icons';\nimport { useRef, useState } from 'react';\n\nconst Component = () => {\n const anchorEl = useRef<HTMLButtonElement | null>(null);\n const [isOpen, setIsOpen] = useState(false);\n\n return (\n <>\n <Menu\n isOpen={isOpen}\n anchorRef={anchorEl}\n onClose={(_event, _data) => {\n setIsOpen(false);\n }}\n >\n <Menu.Items>\n <Menu.Item\n leadingVisual={<PlusIconOutline />}\n title=\"Action 1\"\n onClick={() => alert('Action1')}\n />\n <Menu.Item\n leadingVisual={<PlusIconOutline />}\n trailingContent={<Kbd keys={['A', ['B']]} />}\n title=\"Action 2\"\n description=\"Action 4 has a keyboard shortcut\"\n onClick={() => alert('Action4')}\n />\n </Menu.Items>\n </Menu>\n <FilledButton onClick={() => setIsOpen(true)} ref={anchorEl}>\n Open Menu\n </FilledButton>\n </>\n );\n};\n\nexport default Component;\n"]}
1
+ {"version":3,"file":"menu-with-keyboard-shortcuts.story.js","sourceRoot":"","sources":["../../../../src/menu/stories/menu-with-keyboard-shortcuts.story.tsx"],"names":[],"mappings":";;;AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,mDAAiD;AAEjD,4CAA2D;AAC3D,kDAAyD;AACzD,iCAAyC;AAEzC,MAAM,SAAS,GAAG,GAAG,EAAE;IACrB,MAAM,QAAQ,GAAG,IAAA,cAAM,EAA2B,IAAI,CAAC,CAAC;IACxD,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,IAAA,gBAAQ,EAAC,KAAK,CAAC,CAAC;IAE5C,OAAO,CACL,6DACE,wBAAC,YAAI,IACH,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,QAAQ,EACnB,OAAO,EAAE,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;oBACzB,SAAS,CAAC,KAAK,CAAC,CAAC;gBACnB,CAAC,aAED,uBAAC,YAAI,CAAC,IAAI,IACR,aAAa,EAAE,uBAAC,uBAAe,KAAG,EAClC,KAAK,EAAC,UAAU,EAChB,OAAO,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,GAC/B,EACF,uBAAC,YAAI,CAAC,IAAI,IACR,aAAa,EAAE,uBAAC,uBAAe,KAAG,EAClC,eAAe,EAAE,uBAAC,WAAG,IAAC,IAAI,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,GAAI,EAC5C,KAAK,EAAC,UAAU,EAChB,WAAW,EAAC,kCAAkC,EAC9C,OAAO,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,GAC/B,IACG,EACP,uBAAC,oBAAY,IAAC,OAAO,EAAE,GAAG,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,QAAQ,0BAE5C,IACd,CACJ,CAAC;AACJ,CAAC,CAAC;AAEF,kBAAe,SAAS,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 '@neo4j-ndl/base/lib/neo4j-ds-styles.css';\n\nimport { FilledButton, Kbd, Menu } from '@neo4j-ndl/react';\nimport { PlusIconOutline } from '@neo4j-ndl/react/icons';\nimport { useRef, useState } from 'react';\n\nconst Component = () => {\n const anchorEl = useRef<HTMLButtonElement | null>(null);\n const [isOpen, setIsOpen] = useState(false);\n\n return (\n <>\n <Menu\n isOpen={isOpen}\n anchorRef={anchorEl}\n onClose={(_event, _data) => {\n setIsOpen(false);\n }}\n >\n <Menu.Item\n leadingVisual={<PlusIconOutline />}\n title=\"Action 1\"\n onClick={() => alert('Action1')}\n />\n <Menu.Item\n leadingVisual={<PlusIconOutline />}\n trailingContent={<Kbd keys={['A', ['B']]} />}\n title=\"Action 2\"\n description=\"Action 4 has a keyboard shortcut\"\n onClick={() => alert('Action4')}\n />\n </Menu>\n <FilledButton onClick={() => setIsOpen(true)} ref={anchorEl}>\n Open Menu\n </FilledButton>\n </>\n );\n};\n\nexport default Component;\n"]}
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.WithKeyboardShortcuts = exports.Placements = exports.InDialog = exports.InPopover = exports.CustomItems = exports.WithDisabledItem = exports.WithIcon = exports.WithCategory = exports.WithDivider = exports.Nested = exports.Default = void 0;
3
+ exports.RadioAndNormal = exports.RadioItems = exports.WithKeyboardShortcuts = exports.Placements = exports.InDialog = exports.InPopover = exports.CustomItems = exports.WithDisabledItem = exports.WithIcon = exports.WithCategory = exports.WithDivider = exports.Nested = exports.Default = void 0;
4
4
  const jsx_runtime_1 = require("react/jsx-runtime");
5
5
  /**
6
6
  *
@@ -180,4 +180,32 @@ exports.WithKeyboardShortcuts = {
180
180
  },
181
181
  render: index_1.MenuWithKeyboardShortcuts,
182
182
  };
183
+ exports.RadioItems = {
184
+ args: {},
185
+ name: 'With Selection (radio items)',
186
+ parameters: {
187
+ docs: {
188
+ source: {
189
+ code: index_1.MenuRadioItemsSrc,
190
+ language: 'tsx',
191
+ type: 'code',
192
+ },
193
+ },
194
+ },
195
+ render: index_1.MenuRadioItems,
196
+ };
197
+ exports.RadioAndNormal = {
198
+ args: {},
199
+ name: 'With Selection and Actions',
200
+ parameters: {
201
+ docs: {
202
+ source: {
203
+ code: index_1.MenuRadioAndNormalSrc,
204
+ language: 'tsx',
205
+ type: 'code',
206
+ },
207
+ },
208
+ },
209
+ render: index_1.MenuRadioAndNormal,
210
+ };
183
211
  //# sourceMappingURL=menu.stories.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"menu.stories.js","sourceRoot":"","sources":["../../../../src/menu/stories/menu.stories.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 { Menu } from '@neo4j-ndl/react';\nimport { type Meta, type StoryObj } from '@storybook/react-vite';\n\nimport {\n MenuCustomItems,\n MenuCustomItemsSrc,\n MenuDefault,\n MenuDefaultSrc,\n MenuDivider,\n MenuDividerSrc,\n MenuInDialog,\n MenuInDialogSrc,\n MenuInPopover,\n MenuInPopoverSrc,\n MenuNested,\n MenuNestedSrc,\n MenuPlacements,\n MenuPlacementsSrc,\n MenuWithCategory,\n MenuWithCategorySrc,\n MenuWithDisabledItem,\n MenuWithDisabledItemSrc,\n MenuWithIcon,\n MenuWithIconSrc,\n MenuWithKeyboardShortcuts,\n MenuWithKeyboardShortcutsSrc,\n} from './index';\n\nconst componentMeta: Meta<typeof Menu> = {\n component: Menu,\n decorators: [\n (Story) => (\n <div className=\"n-gap-token-32 n-flex n-flex-row n-justify-center n-items-center n-h-[200px]\">\n <Story />\n </div>\n ),\n ],\n id: 'components-menu',\n parameters: {\n controls: { disable: true },\n },\n tags: ['docsPage'],\n title: 'Components/Menu',\n};\n\nexport default componentMeta;\n\nexport const Default: StoryObj<typeof componentMeta> = {\n args: {},\n parameters: {\n docs: {\n source: {\n code: MenuDefaultSrc,\n language: 'tsx',\n type: 'code',\n },\n },\n },\n render: MenuDefault,\n};\n\nexport const Nested: StoryObj<typeof componentMeta> = {\n args: {},\n parameters: {\n docs: {\n source: {\n code: MenuNestedSrc,\n language: 'tsx',\n type: 'code',\n },\n },\n },\n render: MenuNested,\n};\n\nexport const WithDivider: StoryObj<typeof componentMeta> = {\n args: {},\n parameters: {\n docs: {\n source: {\n code: MenuDividerSrc,\n language: 'tsx',\n type: 'code',\n },\n },\n },\n render: MenuDivider,\n};\n\nexport const WithCategory: StoryObj<typeof componentMeta> = {\n args: {},\n parameters: {\n docs: {\n source: {\n code: MenuWithCategorySrc,\n language: 'tsx',\n type: 'code',\n },\n },\n },\n render: MenuWithCategory,\n};\n\nexport const WithIcon: StoryObj<typeof componentMeta> = {\n args: {},\n parameters: {\n docs: {\n source: {\n code: MenuWithIconSrc,\n language: 'tsx',\n type: 'code',\n },\n },\n },\n render: MenuWithIcon,\n};\n\nexport const WithDisabledItem: StoryObj<typeof componentMeta> = {\n args: {},\n parameters: {\n docs: {\n source: {\n code: MenuWithDisabledItemSrc,\n language: 'tsx',\n type: 'code',\n },\n },\n },\n render: MenuWithDisabledItem,\n};\n\nexport const CustomItems: StoryObj<typeof componentMeta> = {\n args: {},\n parameters: {\n docs: {\n source: {\n code: MenuCustomItemsSrc,\n language: 'tsx',\n type: 'code',\n },\n },\n },\n render: MenuCustomItems,\n};\n\nexport const InPopover: StoryObj<typeof componentMeta> = {\n args: {},\n parameters: {\n docs: {\n source: {\n code: MenuInPopoverSrc,\n language: 'tsx',\n type: 'code',\n },\n },\n },\n render: MenuInPopover,\n};\n\nexport const InDialog: StoryObj<typeof componentMeta> = {\n args: {},\n parameters: {\n docs: {\n source: {\n code: MenuInDialogSrc,\n language: 'tsx',\n type: 'code',\n },\n },\n },\n render: MenuInDialog,\n};\n\nexport const Placements: StoryObj<typeof componentMeta> = {\n args: {},\n parameters: {\n docs: {\n source: {\n code: MenuPlacementsSrc,\n language: 'tsx',\n type: 'code',\n },\n },\n },\n render: MenuPlacements,\n};\n\nexport const WithKeyboardShortcuts: StoryObj<typeof componentMeta> = {\n args: {},\n parameters: {\n docs: {\n source: {\n code: MenuWithKeyboardShortcutsSrc,\n language: 'tsx',\n type: 'code',\n },\n },\n },\n render: MenuWithKeyboardShortcuts,\n};\n"]}
1
+ {"version":3,"file":"menu.stories.js","sourceRoot":"","sources":["../../../../src/menu/stories/menu.stories.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 { Menu } from '@neo4j-ndl/react';\nimport { type Meta, type StoryObj } from '@storybook/react-vite';\n\nimport {\n MenuCustomItems,\n MenuCustomItemsSrc,\n MenuDefault,\n MenuDefaultSrc,\n MenuDivider,\n MenuDividerSrc,\n MenuInDialog,\n MenuInDialogSrc,\n MenuInPopover,\n MenuInPopoverSrc,\n MenuNested,\n MenuNestedSrc,\n MenuPlacements,\n MenuPlacementsSrc,\n MenuRadioAndNormal,\n MenuRadioAndNormalSrc,\n MenuRadioItems,\n MenuRadioItemsSrc,\n MenuWithCategory,\n MenuWithCategorySrc,\n MenuWithDisabledItem,\n MenuWithDisabledItemSrc,\n MenuWithIcon,\n MenuWithIconSrc,\n MenuWithKeyboardShortcuts,\n MenuWithKeyboardShortcutsSrc,\n} from './index';\n\nconst componentMeta: Meta<typeof Menu> = {\n component: Menu,\n decorators: [\n (Story) => (\n <div className=\"n-gap-token-32 n-flex n-flex-row n-justify-center n-items-center n-h-[200px]\">\n <Story />\n </div>\n ),\n ],\n id: 'components-menu',\n parameters: {\n controls: { disable: true },\n },\n tags: ['docsPage'],\n title: 'Components/Menu',\n};\n\nexport default componentMeta;\n\nexport const Default: StoryObj<typeof componentMeta> = {\n args: {},\n parameters: {\n docs: {\n source: {\n code: MenuDefaultSrc,\n language: 'tsx',\n type: 'code',\n },\n },\n },\n render: MenuDefault,\n};\n\nexport const Nested: StoryObj<typeof componentMeta> = {\n args: {},\n parameters: {\n docs: {\n source: {\n code: MenuNestedSrc,\n language: 'tsx',\n type: 'code',\n },\n },\n },\n render: MenuNested,\n};\n\nexport const WithDivider: StoryObj<typeof componentMeta> = {\n args: {},\n parameters: {\n docs: {\n source: {\n code: MenuDividerSrc,\n language: 'tsx',\n type: 'code',\n },\n },\n },\n render: MenuDivider,\n};\n\nexport const WithCategory: StoryObj<typeof componentMeta> = {\n args: {},\n parameters: {\n docs: {\n source: {\n code: MenuWithCategorySrc,\n language: 'tsx',\n type: 'code',\n },\n },\n },\n render: MenuWithCategory,\n};\n\nexport const WithIcon: StoryObj<typeof componentMeta> = {\n args: {},\n parameters: {\n docs: {\n source: {\n code: MenuWithIconSrc,\n language: 'tsx',\n type: 'code',\n },\n },\n },\n render: MenuWithIcon,\n};\n\nexport const WithDisabledItem: StoryObj<typeof componentMeta> = {\n args: {},\n parameters: {\n docs: {\n source: {\n code: MenuWithDisabledItemSrc,\n language: 'tsx',\n type: 'code',\n },\n },\n },\n render: MenuWithDisabledItem,\n};\n\nexport const CustomItems: StoryObj<typeof componentMeta> = {\n args: {},\n parameters: {\n docs: {\n source: {\n code: MenuCustomItemsSrc,\n language: 'tsx',\n type: 'code',\n },\n },\n },\n render: MenuCustomItems,\n};\n\nexport const InPopover: StoryObj<typeof componentMeta> = {\n args: {},\n parameters: {\n docs: {\n source: {\n code: MenuInPopoverSrc,\n language: 'tsx',\n type: 'code',\n },\n },\n },\n render: MenuInPopover,\n};\n\nexport const InDialog: StoryObj<typeof componentMeta> = {\n args: {},\n parameters: {\n docs: {\n source: {\n code: MenuInDialogSrc,\n language: 'tsx',\n type: 'code',\n },\n },\n },\n render: MenuInDialog,\n};\n\nexport const Placements: StoryObj<typeof componentMeta> = {\n args: {},\n parameters: {\n docs: {\n source: {\n code: MenuPlacementsSrc,\n language: 'tsx',\n type: 'code',\n },\n },\n },\n render: MenuPlacements,\n};\n\nexport const WithKeyboardShortcuts: StoryObj<typeof componentMeta> = {\n args: {},\n parameters: {\n docs: {\n source: {\n code: MenuWithKeyboardShortcutsSrc,\n language: 'tsx',\n type: 'code',\n },\n },\n },\n render: MenuWithKeyboardShortcuts,\n};\n\nexport const RadioItems: StoryObj<typeof componentMeta> = {\n args: {},\n name: 'With Selection (radio items)',\n parameters: {\n docs: {\n source: {\n code: MenuRadioItemsSrc,\n language: 'tsx',\n type: 'code',\n },\n },\n },\n render: MenuRadioItems,\n};\n\nexport const RadioAndNormal: StoryObj<typeof componentMeta> = {\n args: {},\n name: 'With Selection and Actions',\n parameters: {\n docs: {\n source: {\n code: MenuRadioAndNormalSrc,\n language: 'tsx',\n type: 'code',\n },\n },\n },\n render: MenuRadioAndNormal,\n};\n"]}
@@ -33,9 +33,7 @@ const Component = () => {
33
33
  const anchorRef = (0, react_2.useRef)(null);
34
34
  const [isMenuOpen, setIsMenuOpen] = (0, react_2.useState)(false);
35
35
  const [selectedItem, setSelectedItem] = (0, react_2.useState)();
36
- return ((0, jsx_runtime_1.jsxs)("div", { children: [(0, jsx_runtime_1.jsx)(react_1.SelectIconButton, { description: "Options", isOpen: isMenuOpen, onClick: () => setIsMenuOpen((old) => !old), ref: anchorRef, children: selectedItem !== undefined ? (menuItems[selectedItem].leadingVisual) : ((0, jsx_runtime_1.jsx)(icons_1.SelectIcon, {})) }), (0, jsx_runtime_1.jsx)(react_1.Menu, { isOpen: isMenuOpen, anchorRef: anchorRef, onClose: () => setIsMenuOpen(false), children: (0, jsx_runtime_1.jsx)(react_1.Menu.Items, { htmlAttributes: {
37
- id: 'default-menu',
38
- }, children: menuItems.map((item, index) => ((0, jsx_runtime_1.jsx)(react_1.Menu.Item, { title: item.title, leadingVisual: item.leadingVisual, onClick: () => setSelectedItem(index) }, index))) }) })] }));
36
+ return ((0, jsx_runtime_1.jsxs)("div", { children: [(0, jsx_runtime_1.jsx)(react_1.SelectIconButton, { description: "Options", isOpen: isMenuOpen, onClick: () => setIsMenuOpen((old) => !old), ref: anchorRef, children: selectedItem !== undefined ? (menuItems[selectedItem].leadingVisual) : ((0, jsx_runtime_1.jsx)(icons_1.SelectIcon, {})) }), (0, jsx_runtime_1.jsx)(react_1.Menu, { isOpen: isMenuOpen, anchorRef: anchorRef, onClose: () => setIsMenuOpen(false), children: menuItems.map((item, index) => ((0, jsx_runtime_1.jsx)(react_1.Menu.RadioItem, { isChecked: selectedItem === index, title: item.title, leadingVisual: item.leadingVisual, onClick: () => setSelectedItem(index) }, index))) })] }));
39
37
  };
40
38
  exports.default = Component;
41
39
  //# sourceMappingURL=select-icon-button-with-menu.story.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"select-icon-button-with-menu.story.js","sourceRoot":"","sources":["../../../../src/select-icon-button/stories/select-icon-button-with-menu.story.tsx"],"names":[],"mappings":";;;AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,mDAAiD;AAEjD,4CAA0D;AAC1D,kDAIgC;AAChC,iCAAyC;AAEzC,MAAM,SAAS,GAAG;IAChB,EAAE,aAAa,EAAE,uBAAC,mBAAW,KAAG,EAAE,KAAK,EAAE,oBAAoB,EAAE;IAC/D,EAAE,aAAa,EAAE,uBAAC,wBAAgB,KAAG,EAAE,KAAK,EAAE,qBAAqB,EAAE;CACtE,CAAC;AAEF,MAAM,SAAS,GAAG,GAAG,EAAE;IACrB,MAAM,SAAS,GAAG,IAAA,cAAM,EAA2B,IAAI,CAAC,CAAC;IACzD,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,IAAA,gBAAQ,EAAC,KAAK,CAAC,CAAC;IACpD,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,IAAA,gBAAQ,GAAU,CAAC;IAE3D,OAAO,CACL,4CACE,uBAAC,wBAAgB,IACf,WAAW,EAAC,SAAS,EACrB,MAAM,EAAE,UAAU,EAClB,OAAO,EAAE,GAAG,EAAE,CAAC,aAAa,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,EAC3C,GAAG,EAAE,SAAS,YAEb,YAAY,KAAK,SAAS,CAAC,CAAC,CAAC,CAC5B,SAAS,CAAC,YAAY,CAAC,CAAC,aAAa,CACtC,CAAC,CAAC,CAAC,CACF,uBAAC,kBAAU,KAAG,CACf,GACgB,EACnB,uBAAC,YAAI,IACH,MAAM,EAAE,UAAU,EAClB,SAAS,EAAE,SAAS,EACpB,OAAO,EAAE,GAAG,EAAE,CAAC,aAAa,CAAC,KAAK,CAAC,YAEnC,uBAAC,YAAI,CAAC,KAAK,IACT,cAAc,EAAE;wBACd,EAAE,EAAE,cAAc;qBACnB,YAEA,SAAS,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,CAC9B,uBAAC,YAAI,CAAC,IAAI,IAER,KAAK,EAAE,IAAI,CAAC,KAAK,EACjB,aAAa,EAAE,IAAI,CAAC,aAAa,EACjC,OAAO,EAAE,GAAG,EAAE,CAAC,eAAe,CAAC,KAAK,CAAC,IAHhC,KAAK,CAIV,CACH,CAAC,GACS,GACR,IACH,CACP,CAAC;AACJ,CAAC,CAAC;AAEF,kBAAe,SAAS,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 '@neo4j-ndl/base/lib/neo4j-ds-styles.css';\n\nimport { Menu, SelectIconButton } from '@neo4j-ndl/react';\nimport {\n ExploreIcon,\n HierarchyTwoIcon,\n SelectIcon,\n} from '@neo4j-ndl/react/icons';\nimport { useRef, useState } from 'react';\n\nconst menuItems = [\n { leadingVisual: <ExploreIcon />, title: 'Force-based layout' },\n { leadingVisual: <HierarchyTwoIcon />, title: 'Hierarchical layout' },\n];\n\nconst Component = () => {\n const anchorRef = useRef<HTMLButtonElement | null>(null);\n const [isMenuOpen, setIsMenuOpen] = useState(false);\n const [selectedItem, setSelectedItem] = useState<number>();\n\n return (\n <div>\n <SelectIconButton\n description=\"Options\"\n isOpen={isMenuOpen}\n onClick={() => setIsMenuOpen((old) => !old)}\n ref={anchorRef}\n >\n {selectedItem !== undefined ? (\n menuItems[selectedItem].leadingVisual\n ) : (\n <SelectIcon />\n )}\n </SelectIconButton>\n <Menu\n isOpen={isMenuOpen}\n anchorRef={anchorRef}\n onClose={() => setIsMenuOpen(false)}\n >\n <Menu.Items\n htmlAttributes={{\n id: 'default-menu',\n }}\n >\n {menuItems.map((item, index) => (\n <Menu.Item\n key={index}\n title={item.title}\n leadingVisual={item.leadingVisual}\n onClick={() => setSelectedItem(index)}\n />\n ))}\n </Menu.Items>\n </Menu>\n </div>\n );\n};\n\nexport default Component;\n"]}
1
+ {"version":3,"file":"select-icon-button-with-menu.story.js","sourceRoot":"","sources":["../../../../src/select-icon-button/stories/select-icon-button-with-menu.story.tsx"],"names":[],"mappings":";;;AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,mDAAiD;AAEjD,4CAA0D;AAC1D,kDAIgC;AAChC,iCAAyC;AAEzC,MAAM,SAAS,GAAG;IAChB,EAAE,aAAa,EAAE,uBAAC,mBAAW,KAAG,EAAE,KAAK,EAAE,oBAAoB,EAAE;IAC/D,EAAE,aAAa,EAAE,uBAAC,wBAAgB,KAAG,EAAE,KAAK,EAAE,qBAAqB,EAAE;CACtE,CAAC;AAEF,MAAM,SAAS,GAAG,GAAG,EAAE;IACrB,MAAM,SAAS,GAAG,IAAA,cAAM,EAA2B,IAAI,CAAC,CAAC;IACzD,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,IAAA,gBAAQ,EAAC,KAAK,CAAC,CAAC;IACpD,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,IAAA,gBAAQ,GAAU,CAAC;IAE3D,OAAO,CACL,4CACE,uBAAC,wBAAgB,IACf,WAAW,EAAC,SAAS,EACrB,MAAM,EAAE,UAAU,EAClB,OAAO,EAAE,GAAG,EAAE,CAAC,aAAa,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,EAC3C,GAAG,EAAE,SAAS,YAEb,YAAY,KAAK,SAAS,CAAC,CAAC,CAAC,CAC5B,SAAS,CAAC,YAAY,CAAC,CAAC,aAAa,CACtC,CAAC,CAAC,CAAC,CACF,uBAAC,kBAAU,KAAG,CACf,GACgB,EACnB,uBAAC,YAAI,IACH,MAAM,EAAE,UAAU,EAClB,SAAS,EAAE,SAAS,EACpB,OAAO,EAAE,GAAG,EAAE,CAAC,aAAa,CAAC,KAAK,CAAC,YAElC,SAAS,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,CAC9B,uBAAC,YAAI,CAAC,SAAS,IAEb,SAAS,EAAE,YAAY,KAAK,KAAK,EACjC,KAAK,EAAE,IAAI,CAAC,KAAK,EACjB,aAAa,EAAE,IAAI,CAAC,aAAa,EACjC,OAAO,EAAE,GAAG,EAAE,CAAC,eAAe,CAAC,KAAK,CAAC,IAJhC,KAAK,CAKV,CACH,CAAC,GACG,IACH,CACP,CAAC;AACJ,CAAC,CAAC;AAEF,kBAAe,SAAS,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 '@neo4j-ndl/base/lib/neo4j-ds-styles.css';\n\nimport { Menu, SelectIconButton } from '@neo4j-ndl/react';\nimport {\n ExploreIcon,\n HierarchyTwoIcon,\n SelectIcon,\n} from '@neo4j-ndl/react/icons';\nimport { useRef, useState } from 'react';\n\nconst menuItems = [\n { leadingVisual: <ExploreIcon />, title: 'Force-based layout' },\n { leadingVisual: <HierarchyTwoIcon />, title: 'Hierarchical layout' },\n];\n\nconst Component = () => {\n const anchorRef = useRef<HTMLButtonElement | null>(null);\n const [isMenuOpen, setIsMenuOpen] = useState(false);\n const [selectedItem, setSelectedItem] = useState<number>();\n\n return (\n <div>\n <SelectIconButton\n description=\"Options\"\n isOpen={isMenuOpen}\n onClick={() => setIsMenuOpen((old) => !old)}\n ref={anchorRef}\n >\n {selectedItem !== undefined ? (\n menuItems[selectedItem].leadingVisual\n ) : (\n <SelectIcon />\n )}\n </SelectIconButton>\n <Menu\n isOpen={isMenuOpen}\n anchorRef={anchorRef}\n onClose={() => setIsMenuOpen(false)}\n >\n {menuItems.map((item, index) => (\n <Menu.RadioItem\n key={index}\n isChecked={selectedItem === index}\n title={item.title}\n leadingVisual={item.leadingVisual}\n onClick={() => setSelectedItem(index)}\n />\n ))}\n </Menu>\n </div>\n );\n};\n\nexport default Component;\n"]}
@@ -27,7 +27,7 @@ import { useRef, useState } from 'react';
27
27
  const Component = () => {
28
28
  const [isMenuOpen, setIsMenuOpen] = useState(false);
29
29
  const anchorRef = useRef(null);
30
- return (_jsxs(_Fragment, { children: [_jsx(MoreFiles, { count: 4, isActive: isMenuOpen, onClick: () => setIsMenuOpen(!isMenuOpen), ref: anchorRef }), _jsx(Menu, { isOpen: isMenuOpen, anchorRef: anchorRef, onClose: () => setIsMenuOpen(false), children: _jsxs(Menu.Items, { children: [_jsx(Menu.Item, { leadingVisual: _jsx(DocumentIconOutline, {}), title: "Science fiction bestseller", description: "PDF", onClick: () => alert('Science fiction bestseller') }), _jsx(Menu.Item, { leadingVisual: _jsx(TableCellsIconOutline, {}), title: "MoviesDecade", description: "CSV", onClick: () => alert('MoviesDecade') }), _jsx(Menu.Item, { leadingVisual: _jsx(PhotoIconOutline, {}), title: "Family photo", description: "JPG", onClick: () => alert('Family photos') })] }) })] }));
30
+ return (_jsxs(_Fragment, { children: [_jsx(MoreFiles, { count: 3, isActive: isMenuOpen, onClick: () => setIsMenuOpen(!isMenuOpen), ref: anchorRef }), _jsxs(Menu, { isOpen: isMenuOpen, anchorRef: anchorRef, onClose: () => setIsMenuOpen(false), children: [_jsx(Menu.Item, { leadingVisual: _jsx(DocumentIconOutline, {}), title: "Science fiction bestseller", description: "PDF", onClick: () => alert('Science fiction bestseller') }), _jsx(Menu.Item, { leadingVisual: _jsx(TableCellsIconOutline, {}), title: "MoviesDecade", description: "CSV", onClick: () => alert('MoviesDecade') }), _jsx(Menu.Item, { leadingVisual: _jsx(PhotoIconOutline, {}), title: "Family photo", description: "JPG", onClick: () => alert('Family photos') })] })] }));
31
31
  };
32
32
  export default Component;
33
33
  //# sourceMappingURL=more-files.story.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"more-files.story.js","sourceRoot":"","sources":["../../../../../src/ai/more-files/stories/more-files.story.tsx"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,yCAAyC,CAAC;AAEjD,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AACxC,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAChD,OAAO,EACL,mBAAmB,EACnB,gBAAgB,EAChB,qBAAqB,GACtB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAEzC,MAAM,SAAS,GAAG,GAAG,EAAE;IACrB,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IACpD,MAAM,SAAS,GAAG,MAAM,CAA2B,IAAI,CAAC,CAAC;IAEzD,OAAO,CACL,8BACE,KAAC,SAAS,IACR,KAAK,EAAE,CAAC,EACR,QAAQ,EAAE,UAAU,EACpB,OAAO,EAAE,GAAG,EAAE,CAAC,aAAa,CAAC,CAAC,UAAU,CAAC,EACzC,GAAG,EAAE,SAAS,GACd,EACF,KAAC,IAAI,IACH,MAAM,EAAE,UAAU,EAClB,SAAS,EAAE,SAAS,EACpB,OAAO,EAAE,GAAG,EAAE,CAAC,aAAa,CAAC,KAAK,CAAC,YAEnC,MAAC,IAAI,CAAC,KAAK,eACT,KAAC,IAAI,CAAC,IAAI,IACR,aAAa,EAAE,KAAC,mBAAmB,KAAG,EACtC,KAAK,EAAC,4BAA4B,EAClC,WAAW,EAAC,KAAK,EACjB,OAAO,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,4BAA4B,CAAC,GAClD,EACF,KAAC,IAAI,CAAC,IAAI,IACR,aAAa,EAAE,KAAC,qBAAqB,KAAG,EACxC,KAAK,EAAC,cAAc,EACpB,WAAW,EAAC,KAAK,EACjB,OAAO,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,cAAc,CAAC,GACpC,EACF,KAAC,IAAI,CAAC,IAAI,IACR,aAAa,EAAE,KAAC,gBAAgB,KAAG,EACnC,KAAK,EAAC,cAAc,EACpB,WAAW,EAAC,KAAK,EACjB,OAAO,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,eAAe,CAAC,GACrC,IACS,GACR,IACN,CACJ,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe,SAAS,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 '@neo4j-ndl/base/lib/neo4j-ds-styles.css';\n\nimport { Menu } from '@neo4j-ndl/react';\nimport { MoreFiles } from '@neo4j-ndl/react/ai';\nimport {\n DocumentIconOutline,\n PhotoIconOutline,\n TableCellsIconOutline,\n} from '@neo4j-ndl/react/icons';\nimport { useRef, useState } from 'react';\n\nconst Component = () => {\n const [isMenuOpen, setIsMenuOpen] = useState(false);\n const anchorRef = useRef<HTMLButtonElement | null>(null);\n\n return (\n <>\n <MoreFiles\n count={4}\n isActive={isMenuOpen}\n onClick={() => setIsMenuOpen(!isMenuOpen)}\n ref={anchorRef}\n />\n <Menu\n isOpen={isMenuOpen}\n anchorRef={anchorRef}\n onClose={() => setIsMenuOpen(false)}\n >\n <Menu.Items>\n <Menu.Item\n leadingVisual={<DocumentIconOutline />}\n title=\"Science fiction bestseller\"\n description=\"PDF\"\n onClick={() => alert('Science fiction bestseller')}\n />\n <Menu.Item\n leadingVisual={<TableCellsIconOutline />}\n title=\"MoviesDecade\"\n description=\"CSV\"\n onClick={() => alert('MoviesDecade')}\n />\n <Menu.Item\n leadingVisual={<PhotoIconOutline />}\n title=\"Family photo\"\n description=\"JPG\"\n onClick={() => alert('Family photos')}\n />\n </Menu.Items>\n </Menu>\n </>\n );\n};\n\nexport default Component;\n"]}
1
+ {"version":3,"file":"more-files.story.js","sourceRoot":"","sources":["../../../../../src/ai/more-files/stories/more-files.story.tsx"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,yCAAyC,CAAC;AAEjD,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AACxC,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAChD,OAAO,EACL,mBAAmB,EACnB,gBAAgB,EAChB,qBAAqB,GACtB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAEzC,MAAM,SAAS,GAAG,GAAG,EAAE;IACrB,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IACpD,MAAM,SAAS,GAAG,MAAM,CAA2B,IAAI,CAAC,CAAC;IAEzD,OAAO,CACL,8BACE,KAAC,SAAS,IACR,KAAK,EAAE,CAAC,EACR,QAAQ,EAAE,UAAU,EACpB,OAAO,EAAE,GAAG,EAAE,CAAC,aAAa,CAAC,CAAC,UAAU,CAAC,EACzC,GAAG,EAAE,SAAS,GACd,EACF,MAAC,IAAI,IACH,MAAM,EAAE,UAAU,EAClB,SAAS,EAAE,SAAS,EACpB,OAAO,EAAE,GAAG,EAAE,CAAC,aAAa,CAAC,KAAK,CAAC,aAEnC,KAAC,IAAI,CAAC,IAAI,IACR,aAAa,EAAE,KAAC,mBAAmB,KAAG,EACtC,KAAK,EAAC,4BAA4B,EAClC,WAAW,EAAC,KAAK,EACjB,OAAO,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,4BAA4B,CAAC,GAClD,EACF,KAAC,IAAI,CAAC,IAAI,IACR,aAAa,EAAE,KAAC,qBAAqB,KAAG,EACxC,KAAK,EAAC,cAAc,EACpB,WAAW,EAAC,KAAK,EACjB,OAAO,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,cAAc,CAAC,GACpC,EACF,KAAC,IAAI,CAAC,IAAI,IACR,aAAa,EAAE,KAAC,gBAAgB,KAAG,EACnC,KAAK,EAAC,cAAc,EACpB,WAAW,EAAC,KAAK,EACjB,OAAO,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,eAAe,CAAC,GACrC,IACG,IACN,CACJ,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe,SAAS,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 '@neo4j-ndl/base/lib/neo4j-ds-styles.css';\n\nimport { Menu } from '@neo4j-ndl/react';\nimport { MoreFiles } from '@neo4j-ndl/react/ai';\nimport {\n DocumentIconOutline,\n PhotoIconOutline,\n TableCellsIconOutline,\n} from '@neo4j-ndl/react/icons';\nimport { useRef, useState } from 'react';\n\nconst Component = () => {\n const [isMenuOpen, setIsMenuOpen] = useState(false);\n const anchorRef = useRef<HTMLButtonElement | null>(null);\n\n return (\n <>\n <MoreFiles\n count={3}\n isActive={isMenuOpen}\n onClick={() => setIsMenuOpen(!isMenuOpen)}\n ref={anchorRef}\n />\n <Menu\n isOpen={isMenuOpen}\n anchorRef={anchorRef}\n onClose={() => setIsMenuOpen(false)}\n >\n <Menu.Item\n leadingVisual={<DocumentIconOutline />}\n title=\"Science fiction bestseller\"\n description=\"PDF\"\n onClick={() => alert('Science fiction bestseller')}\n />\n <Menu.Item\n leadingVisual={<TableCellsIconOutline />}\n title=\"MoviesDecade\"\n description=\"CSV\"\n onClick={() => alert('MoviesDecade')}\n />\n <Menu.Item\n leadingVisual={<PhotoIconOutline />}\n title=\"Family photo\"\n description=\"JPG\"\n onClick={() => alert('Family photos')}\n />\n </Menu>\n </>\n );\n};\n\nexport default Component;\n"]}
@@ -31,7 +31,7 @@ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-run
31
31
  * along with this program. If not, see <http://www.gnu.org/licenses/>.
32
32
  */
33
33
  import { CleanIconButton, DropdownButton, Menu, Typography, } from '@neo4j-ndl/react';
34
- import { ArrowSmallUpIconOutline, CheckIconOutline, StopCircleIconOutline, } from '@neo4j-ndl/react/icons';
34
+ import { ArrowSmallUpIconOutline, StopCircleIconOutline, } from '@neo4j-ndl/react/icons';
35
35
  import classNames from 'classnames';
36
36
  import { useCallback, useEffect, useRef, useState } from 'react';
37
37
  /**
@@ -150,7 +150,7 @@ const AgentSelect = ({ value, options = [], onChange }) => {
150
150
  onChange === null || onChange === void 0 ? void 0 : onChange(option);
151
151
  setIsMenuOpen(false);
152
152
  };
153
- return (_jsxs(_Fragment, { children: [_jsx(DropdownButton, { size: "small", className: "ndl-ai-prompt-dropdown-button", onClick: () => setIsMenuOpen((old) => !old), isOpen: isMenuOpen, ref: anchorRef, children: displayLabel }), _jsx(Menu, { isOpen: isMenuOpen, onClose: () => setIsMenuOpen(false), anchorRef: anchorRef, placement: "top-start-bottom-start", children: _jsx(Menu.Items, { children: options.map((option) => (_jsx(Menu.Item, { title: option.label, onClick: () => handleItemClick(option), leadingVisual: (value === null || value === void 0 ? void 0 : value.value) === option.value ? _jsx(CheckIconOutline, {}) : null }, option.value))) }) })] }));
153
+ return (_jsxs(_Fragment, { children: [_jsx(DropdownButton, { size: "small", className: "ndl-ai-prompt-dropdown-button", onClick: () => setIsMenuOpen((old) => !old), isOpen: isMenuOpen, ref: anchorRef, children: displayLabel }), _jsx(Menu, { isOpen: isMenuOpen, onClose: () => setIsMenuOpen(false), anchorRef: anchorRef, placement: "top-start-bottom-start", children: options.map((option) => (_jsx(Menu.RadioItem, { title: option.label, isChecked: (value === null || value === void 0 ? void 0 : value.value) === option.value, onClick: () => handleItemClick(option) }, option.value))) })] }));
154
154
  };
155
155
  const Prompt = Object.assign(PromptComponent, {
156
156
  Select: AgentSelect,
@@ -1 +1 @@
1
- {"version":3,"file":"Prompt.js","sourceRoot":"","sources":["../../../../src/ai/prompt/Prompt.tsx"],"names":[],"mappings":";;;;;;;;;;;;AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,EACL,eAAe,EACf,cAAc,EACd,IAAI,EACJ,UAAU,GACX,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,uBAAuB,EACvB,gBAAgB,EAChB,qBAAqB,GACtB,MAAM,wBAAwB,CAAC;AAChC,OAAO,UAAU,MAAM,YAAY,CAAC;AACpC,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAiCjE;;;;;;GAMG;AACH,MAAM,eAAe,GAAG,CAAC,EAiBS,EAAE,EAAE;QAjBb,EACvB,KAAK,EACL,QAAQ,EACR,OAAO,GAAG,CAAC,EACX,eAAe,GAAG,KAAK,EACvB,cAAc,EACd,cAAc,EACd,gBAAgB,GAAG,KAAK,EACxB,UAAU,EACV,aAAa,EACb,UAAU,GAAG,qCAAqC,EAClD,SAAS,EACT,KAAK,EACL,cAAc,EACd,GAAG,EACH,aAAa,OAEmB,EAD7B,SAAS,cAhBW,wNAiBxB,CADa;IAEZ,MAAM,OAAO,GAAG,UAAU,CAAC,eAAe,EAAE,SAAS,CAAC,CAAC;IAEvD,MAAM,WAAW,GAAG,MAAM,CAAsB,IAAI,CAAC,CAAC;IACtD,MAAM,gBAAgB,GAAG,MAAM,CAAiB,IAAI,CAAC,CAAC;IACtD,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;IAEhD,0BAA0B;IAC1B,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,KAAK,GAAkB,IAAI,CAAC;QAEhC,MAAM,aAAa,GAAG,GAAG,EAAE;YACzB,IAAI,gBAAgB,CAAC,OAAO,KAAK,IAAI,EAAE,CAAC;gBACtC,MAAM,OAAO,GAAG,gBAAgB,CAAC,OAAO,CAAC;gBACzC,MAAM,SAAS,GAAG,UAAU,CAC1B,gBAAgB,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CACtD,CAAC;gBACF,MAAM,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC;gBAE1C,IAAI,YAAY,GAAG,SAAS,EAAE,CAAC;oBAC7B,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;gBAC1C,CAAC;qBAAM,CAAC;oBACN,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC;gBAC7C,CAAC;YACH,CAAC;QACH,CAAC,CAAC;QAEF,MAAM,cAAc,GAAG,GAAG,EAAE;YAC1B,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;gBACnB,oBAAoB,CAAC,KAAK,CAAC,CAAC;YAC9B,CAAC;YACD,KAAK,GAAG,qBAAqB,CAAC,aAAa,CAAC,CAAC;QAC/C,CAAC,CAAC;QAEF,gBAAgB;QAChB,aAAa,EAAE,CAAC;QAEhB,MAAM,cAAc,GAAG,IAAI,cAAc,CAAC,cAAc,CAAC,CAAC;QAC1D,MAAM,gBAAgB,GAAG,IAAI,gBAAgB,CAAC,cAAc,CAAC,CAAC;QAE9D,IAAI,gBAAgB,CAAC,OAAO,KAAK,IAAI,EAAE,CAAC;YACtC,cAAc,CAAC,OAAO,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;YACjD,gBAAgB,CAAC,OAAO,CAAC,gBAAgB,CAAC,OAAO,EAAE;gBACjD,SAAS,EAAE,IAAI;gBACf,OAAO,EAAE,IAAI;aACd,CAAC,CAAC;QACL,CAAC;QAED,OAAO,GAAG,EAAE;YACV,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;gBACnB,oBAAoB,CAAC,KAAK,CAAC,CAAC;YAC9B,CAAC;YACD,cAAc,CAAC,UAAU,EAAE,CAAC;YAC5B,gBAAgB,CAAC,UAAU,EAAE,CAAC;QAChC,CAAC,CAAC;IACJ,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,qBAAqB;IACrB,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,WAAW,CAAC,OAAO,KAAK,IAAI,EAAE,CAAC;YACjC,MAAM,QAAQ,GAAG,MAAM,CAAC,gBAAgB,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;YAC9D,aAAa,CAAC,QAAQ,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC;QAC/C,CAAC;IACH,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,MAAM,oBAAoB,GAAG,WAAW,CAAC,GAAG,EAAE;QAC5C,MAAM,EAAE,GAAG,WAAW,CAAC,OAAO,CAAC;QAE/B,IAAI,EAAE,KAAK,IAAI,IAAI,UAAU,GAAG,CAAC,EAAE,CAAC;YAClC,kDAAkD;YAClD,EAAE,CAAC,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC;YAEzB,MAAM,SAAS,GAAG,UAAU,GAAG,OAAO,CAAC;YAEvC,IAAI,EAAE,CAAC,YAAY,IAAI,SAAS,EAAE,CAAC;gBACjC,EAAE,CAAC,KAAK,CAAC,SAAS,GAAG,QAAQ,CAAC;gBAC9B,EAAE,CAAC,KAAK,CAAC,MAAM,GAAG,GAAG,EAAE,CAAC,YAAY,IAAI,CAAC;YAC3C,CAAC;iBAAM,CAAC;gBACN,EAAE,CAAC,KAAK,CAAC,SAAS,GAAG,MAAM,CAAC;gBAC5B,EAAE,CAAC,KAAK,CAAC,MAAM,GAAG,GAAG,SAAS,IAAI,CAAC;YACrC,CAAC;QACH,CAAC;IACH,CAAC,EAAE,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC,CAAC;IAE1B,mEAAmE;IACnE,SAAS,CAAC,GAAG,EAAE;QACb,oBAAoB,EAAE,CAAC;IACzB,CAAC,EAAE,CAAC,KAAK,EAAE,oBAAoB,CAAC,CAAC,CAAC;IAElC,MAAM,WAAW,GAAG,CAAC,CAAyC,EAAE,EAAE;QAChE,oBAAoB,EAAE,CAAC;QACvB,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAG,CAAC,CAAC,CAAC;IAChB,CAAC,CAAC;IAEF,OAAO,CACL,6BACE,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,OAAO,EAClB,KAAK,EAAE,KAAK,IACR,SAAS,EACT,cAAc,eAElB,cAAK,SAAS,EAAC,uBAAuB,YACpC,eAAK,SAAS,EAAC,6BAA6B,aACzC,OAAO,CAAC,UAAU,CAAC,IAAI,CACtB,cACE,SAAS,EAAC,8BAA8B,EACxC,GAAG,EAAE,gBAAgB,YAEpB,UAAU,GACP,CACP,EACD,iCACE,WAAW,EAAC,cAAc,EAC1B,SAAS,EAAC,wBAAwB,EAClC,IAAI,EAAE,CAAC,EACP,QAAQ,EAAE,WAAW,EACrB,KAAK,EAAE,KAAK,EACZ,GAAG,EAAE,WAAW,EAChB,SAAS,EAAE,CAAC,CAAC,EAAE,EAAE;gCACf,IACE,CAAC,CAAC,GAAG,KAAK,OAAO;oCACjB,CAAC,CAAC,CAAC,QAAQ;oCACX,gBAAgB,KAAK,IAAI,EACzB,CAAC;oCACD,CAAC,CAAC,cAAc,EAAE,CAAC;oCAEnB,IAAI,eAAe,KAAK,IAAI,EAAE,CAAC;wCAC7B,cAAc,aAAd,cAAc,uBAAd,cAAc,CAAG,CAAC,CAAC,CAAC;oCACtB,CAAC;gCACH,CAAC;4BACH,CAAC,IACG,aAAa,EACjB,EACF,eAAK,SAAS,EAAC,8BAA8B,aAC1C,OAAO,CAAC,aAAa,CAAC,IAAI,CACzB,cAAK,SAAS,EAAC,sCAAsC,YAClD,aAAa,GACV,CACP,EACD,KAAC,kBAAkB,IACjB,UAAU,EAAE,gBAAgB,EAC5B,eAAe,EAAE,eAAe,EAChC,QAAQ,EAAE,cAAc,EACxB,QAAQ,EAAE,cAAc,GACxB,IACE,IACF,GACF,EACL,OAAO,CAAC,UAAU,CAAC,IAAI,CACtB,KAAC,UAAU,IAAC,OAAO,EAAC,YAAY,EAAC,SAAS,EAAC,sBAAsB,YAC9D,UAAU,GACA,CACd,KACG,CACP,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,kBAAkB,GAAG,CAAC,EAC1B,QAAQ,EACR,QAAQ,EACR,UAAU,EACV,eAAe,GAMhB,EAAE,EAAE;IACH,MAAM,WAAW,GAAG,eAAe,KAAK,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC;IAEjE,OAAO,CACL,MAAC,eAAe,IACd,SAAS,EAAC,6BAA6B,EACvC,WAAW,EAAE,WAAW,EACxB,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,eAAe,KAAK,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,EACvD,UAAU,EAAE,UAAU,aAEtB,KAAC,uBAAuB,IACtB,KAAK,EAAE;oBACL,OAAO,EAAE,eAAe,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;oBACzC,QAAQ,EAAE,eAAe,KAAK,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,UAAU;oBAC5D,SAAS,EACP,eAAe,KAAK,IAAI,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,eAAe;iBAClE,GACD,EACF,KAAC,qBAAqB,IACpB,KAAK,EAAE;oBACL,OAAO,EAAE,eAAe,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;oBACzC,QAAQ,EAAE,eAAe,KAAK,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,UAAU;iBAC7D,GACD,IACc,CACnB,CAAC;AACJ,CAAC,CAAC;AAQF,MAAM,WAAW,GAAG,CAAC,EAAE,KAAK,EAAE,OAAO,GAAG,EAAE,EAAE,QAAQ,EAAoB,EAAE,EAAE;;IAC1E,MAAM,SAAS,GAAG,MAAM,CAAoB,IAAI,CAAC,CAAC;IAClD,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAEpD,MAAM,YAAY,GAAG,MAAA,MAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,KAAK,mCAAI,MAAA,OAAO,CAAC,CAAC,CAAC,0CAAE,KAAK,mCAAI,EAAE,CAAC;IAE7D,MAAM,eAAe,GAAG,CAAC,MAGxB,EAAE,EAAE;QACH,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAG,MAAM,CAAC,CAAC;QACnB,aAAa,CAAC,KAAK,CAAC,CAAC;IACvB,CAAC,CAAC;IAEF,OAAO,CACL,8BACE,KAAC,cAAc,IACb,IAAI,EAAC,OAAO,EACZ,SAAS,EAAC,+BAA+B,EACzC,OAAO,EAAE,GAAG,EAAE,CAAC,aAAa,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,EAC3C,MAAM,EAAE,UAAU,EAClB,GAAG,EAAE,SAAS,YAEb,YAAY,GACE,EACjB,KAAC,IAAI,IACH,MAAM,EAAE,UAAU,EAClB,OAAO,EAAE,GAAG,EAAE,CAAC,aAAa,CAAC,KAAK,CAAC,EACnC,SAAS,EAAE,SAAS,EACpB,SAAS,EAAC,wBAAwB,YAElC,KAAC,IAAI,CAAC,KAAK,cACR,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CACvB,KAAC,IAAI,CAAC,IAAI,IAER,KAAK,EAAE,MAAM,CAAC,KAAK,EACnB,OAAO,EAAE,GAAG,EAAE,CAAC,eAAe,CAAC,MAAM,CAAC,EACtC,aAAa,EACX,CAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,KAAK,MAAK,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,KAAC,gBAAgB,KAAG,CAAC,CAAC,CAAC,IAAI,IAJxD,MAAM,CAAC,KAAK,CAMjB,CACH,CAAC,GACS,GACR,IACN,CACJ,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,eAAe,EAAE;IAC5C,MAAM,EAAE,WAAW;CACpB,CAAC,CAAC;AAEH,OAAO,EAAE,MAAM,EAAE,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 {\n CleanIconButton,\n DropdownButton,\n Menu,\n Typography,\n} from '@neo4j-ndl/react';\nimport {\n ArrowSmallUpIconOutline,\n CheckIconOutline,\n StopCircleIconOutline,\n} from '@neo4j-ndl/react/icons';\nimport classNames from 'classnames';\nimport { useCallback, useEffect, useRef, useState } from 'react';\n\nimport type { CommonProps, HtmlAttributes } from '../../_common/types';\n\ntype PromptProps = {\n /** The prompt text */\n value?: React.ComponentPropsWithoutRef<'textarea'>['value'];\n /** Callback function called when the prompt text changes */\n onChange?: (e: React.ChangeEvent<HTMLTextAreaElement>) => void;\n /** Whether the submit button is disabled */\n isSubmitDisabled?: boolean;\n /** Maximum number of rows the textarea can expand to */\n maxRows?: number;\n /** Whether the submit button is \"running\". Shows a stop icon when true. */\n isRunningPrompt?: boolean;\n /** Callback function called when the submit button is clicked */\n onSubmitPrompt?: (\n e:\n | React.KeyboardEvent<HTMLTextAreaElement>\n | React.MouseEvent<HTMLButtonElement, MouseEvent>,\n ) => void;\n /** Callback function called when the cancel button is clicked */\n onCancelPrompt?: (e: React.MouseEvent<HTMLButtonElement, MouseEvent>) => void;\n /** Content to display above the textarea */\n topContent?: React.ReactNode;\n /** Content to display below the textarea */\n bottomContent?: React.ReactNode;\n /** Disclaimer to display below the component */\n disclaimer?: React.ReactNode;\n /** Props for the textarea element */\n textareaProps?: HtmlAttributes<'textarea'>;\n};\n\n/**\n * The component is used to display the prompt input for an LLM.\n * It includes a textarea for the user to enter their prompt and a submit button.\n * It can also display content above and below the textarea, like uploaded files or a select for changing agents.\n *\n * @alpha - Changes to this component may be breaking.\n */\nconst PromptComponent = ({\n value,\n onChange,\n maxRows = 5,\n isRunningPrompt = false,\n onSubmitPrompt,\n onCancelPrompt,\n isSubmitDisabled = false,\n topContent,\n bottomContent,\n disclaimer = 'All information should be verified.',\n className,\n style,\n htmlAttributes,\n ref,\n textareaProps,\n ...restProps\n}: CommonProps<'div', PromptProps>) => {\n const classes = classNames('ndl-ai-prompt', className);\n\n const textareaRef = useRef<HTMLTextAreaElement>(null);\n const textareaAboveRef = useRef<HTMLDivElement>(null);\n const [lineHeight, setLineHeight] = useState(0);\n\n /** File overflow stuff */\n useEffect(() => {\n let rafId: number | null = null;\n\n const checkOverflow = () => {\n if (textareaAboveRef.current !== null) {\n const element = textareaAboveRef.current;\n const maxHeight = parseFloat(\n getComputedStyle(element).maxHeight.replace('px', ''),\n );\n const scrollHeight = element.scrollHeight;\n\n if (scrollHeight > maxHeight) {\n element.classList.add('ndl-can-scroll');\n } else {\n element.classList.remove('ndl-can-scroll');\n }\n }\n };\n\n const debouncedCheck = () => {\n if (rafId !== null) {\n cancelAnimationFrame(rafId);\n }\n rafId = requestAnimationFrame(checkOverflow);\n };\n\n // Initial check\n checkOverflow();\n\n const resizeObserver = new ResizeObserver(debouncedCheck);\n const mutationObserver = new MutationObserver(debouncedCheck);\n\n if (textareaAboveRef.current !== null) {\n resizeObserver.observe(textareaAboveRef.current);\n mutationObserver.observe(textareaAboveRef.current, {\n childList: true,\n subtree: true,\n });\n }\n\n return () => {\n if (rafId !== null) {\n cancelAnimationFrame(rafId);\n }\n resizeObserver.disconnect();\n mutationObserver.disconnect();\n };\n }, []);\n\n /** Textarea stuff */\n useEffect(() => {\n if (textareaRef.current !== null) {\n const computed = window.getComputedStyle(textareaRef.current);\n setLineHeight(parseInt(computed.lineHeight));\n }\n }, []);\n\n const adjustTextareaHeight = useCallback(() => {\n const ta = textareaRef.current;\n\n if (ta !== null && lineHeight > 0) {\n // Reset height so scrollHeight measures correctly\n ta.style.height = 'auto';\n\n const maxHeight = lineHeight * maxRows;\n\n if (ta.scrollHeight <= maxHeight) {\n ta.style.overflowY = 'hidden';\n ta.style.height = `${ta.scrollHeight}px`;\n } else {\n ta.style.overflowY = 'auto';\n ta.style.height = `${maxHeight}px`;\n }\n }\n }, [lineHeight, maxRows]);\n\n // Adjust height when prompt value changes (including when cleared)\n useEffect(() => {\n adjustTextareaHeight();\n }, [value, adjustTextareaHeight]);\n\n const handleInput = (e: React.ChangeEvent<HTMLTextAreaElement>) => {\n adjustTextareaHeight();\n onChange?.(e);\n };\n\n return (\n <div\n ref={ref}\n className={classes}\n style={style}\n {...restProps}\n {...htmlAttributes}\n >\n <div className=\"ndl-ai-prompt-wrapper\">\n <div className=\"ndl-ai-prompt-wrapper-inner\">\n {Boolean(topContent) && (\n <div\n className=\"ndl-ai-prompt-textarea-above\"\n ref={textareaAboveRef}\n >\n {topContent}\n </div>\n )}\n <textarea\n placeholder=\"Ask anything\"\n className=\"ndl-ai-prompt-textarea\"\n rows={1}\n onChange={handleInput}\n value={value}\n ref={textareaRef}\n onKeyDown={(e) => {\n if (\n e.key === 'Enter' &&\n !e.shiftKey &&\n isSubmitDisabled !== true\n ) {\n e.preventDefault();\n\n if (isRunningPrompt !== true) {\n onSubmitPrompt?.(e);\n }\n }\n }}\n {...textareaProps}\n />\n <div className=\"ndl-ai-prompt-textarea-below\">\n {Boolean(bottomContent) && (\n <div className=\"ndl-ai-prompt-textarea-below-leading\">\n {bottomContent}\n </div>\n )}\n <SumbitPromptButton\n isDisabled={isSubmitDisabled}\n isRunningPrompt={isRunningPrompt}\n onSubmit={onSubmitPrompt}\n onCancel={onCancelPrompt}\n />\n </div>\n </div>\n </div>\n {Boolean(disclaimer) && (\n <Typography variant=\"body-small\" className=\"ndl-ai-prompt-footer\">\n {disclaimer}\n </Typography>\n )}\n </div>\n );\n};\n\nconst SumbitPromptButton = ({\n onSubmit,\n onCancel,\n isDisabled,\n isRunningPrompt,\n}: {\n isDisabled?: boolean;\n isRunningPrompt?: boolean;\n onSubmit?: (e: React.MouseEvent<HTMLButtonElement, MouseEvent>) => void;\n onCancel?: (e: React.MouseEvent<HTMLButtonElement, MouseEvent>) => void;\n}) => {\n const description = isRunningPrompt === true ? 'Cancel' : 'Send';\n\n return (\n <CleanIconButton\n className=\"ndl-ai-prompt-submit-button\"\n description={description}\n size=\"medium\"\n onClick={isRunningPrompt === true ? onCancel : onSubmit}\n isDisabled={isDisabled}\n >\n <ArrowSmallUpIconOutline\n style={{\n opacity: isRunningPrompt === true ? 0 : 1,\n position: isRunningPrompt === true ? 'absolute' : 'relative',\n transform:\n isRunningPrompt === true ? 'translateY(-8px)' : 'translateY(0)',\n }}\n />\n <StopCircleIconOutline\n style={{\n opacity: isRunningPrompt === true ? 1 : 0,\n position: isRunningPrompt === true ? 'relative' : 'absolute',\n }}\n />\n </CleanIconButton>\n );\n};\n\ntype AgentSelectProps = {\n value: { label: React.ReactNode; value: string };\n options: Array<{ label: React.ReactNode; value: string }>;\n onChange: (option: { label: React.ReactNode; value: string }) => void;\n};\n\nconst AgentSelect = ({ value, options = [], onChange }: AgentSelectProps) => {\n const anchorRef = useRef<HTMLButtonElement>(null);\n const [isMenuOpen, setIsMenuOpen] = useState(false);\n\n const displayLabel = value?.label ?? options[0]?.label ?? '';\n\n const handleItemClick = (option: {\n label: React.ReactNode;\n value: string;\n }) => {\n onChange?.(option);\n setIsMenuOpen(false);\n };\n\n return (\n <>\n <DropdownButton\n size=\"small\"\n className=\"ndl-ai-prompt-dropdown-button\"\n onClick={() => setIsMenuOpen((old) => !old)}\n isOpen={isMenuOpen}\n ref={anchorRef}\n >\n {displayLabel}\n </DropdownButton>\n <Menu\n isOpen={isMenuOpen}\n onClose={() => setIsMenuOpen(false)}\n anchorRef={anchorRef}\n placement=\"top-start-bottom-start\"\n >\n <Menu.Items>\n {options.map((option) => (\n <Menu.Item\n key={option.value}\n title={option.label}\n onClick={() => handleItemClick(option)}\n leadingVisual={\n value?.value === option.value ? <CheckIconOutline /> : null\n }\n />\n ))}\n </Menu.Items>\n </Menu>\n </>\n );\n};\n\nconst Prompt = Object.assign(PromptComponent, {\n Select: AgentSelect,\n});\n\nexport { Prompt };\n"]}
1
+ {"version":3,"file":"Prompt.js","sourceRoot":"","sources":["../../../../src/ai/prompt/Prompt.tsx"],"names":[],"mappings":";;;;;;;;;;;;AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,EACL,eAAe,EACf,cAAc,EACd,IAAI,EACJ,UAAU,GACX,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,uBAAuB,EACvB,qBAAqB,GACtB,MAAM,wBAAwB,CAAC;AAChC,OAAO,UAAU,MAAM,YAAY,CAAC;AACpC,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAiCjE;;;;;;GAMG;AACH,MAAM,eAAe,GAAG,CAAC,EAiBS,EAAE,EAAE;QAjBb,EACvB,KAAK,EACL,QAAQ,EACR,OAAO,GAAG,CAAC,EACX,eAAe,GAAG,KAAK,EACvB,cAAc,EACd,cAAc,EACd,gBAAgB,GAAG,KAAK,EACxB,UAAU,EACV,aAAa,EACb,UAAU,GAAG,qCAAqC,EAClD,SAAS,EACT,KAAK,EACL,cAAc,EACd,GAAG,EACH,aAAa,OAEmB,EAD7B,SAAS,cAhBW,wNAiBxB,CADa;IAEZ,MAAM,OAAO,GAAG,UAAU,CAAC,eAAe,EAAE,SAAS,CAAC,CAAC;IAEvD,MAAM,WAAW,GAAG,MAAM,CAAsB,IAAI,CAAC,CAAC;IACtD,MAAM,gBAAgB,GAAG,MAAM,CAAiB,IAAI,CAAC,CAAC;IACtD,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;IAEhD,0BAA0B;IAC1B,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,KAAK,GAAkB,IAAI,CAAC;QAEhC,MAAM,aAAa,GAAG,GAAG,EAAE;YACzB,IAAI,gBAAgB,CAAC,OAAO,KAAK,IAAI,EAAE,CAAC;gBACtC,MAAM,OAAO,GAAG,gBAAgB,CAAC,OAAO,CAAC;gBACzC,MAAM,SAAS,GAAG,UAAU,CAC1B,gBAAgB,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CACtD,CAAC;gBACF,MAAM,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC;gBAE1C,IAAI,YAAY,GAAG,SAAS,EAAE,CAAC;oBAC7B,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;gBAC1C,CAAC;qBAAM,CAAC;oBACN,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC;gBAC7C,CAAC;YACH,CAAC;QACH,CAAC,CAAC;QAEF,MAAM,cAAc,GAAG,GAAG,EAAE;YAC1B,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;gBACnB,oBAAoB,CAAC,KAAK,CAAC,CAAC;YAC9B,CAAC;YACD,KAAK,GAAG,qBAAqB,CAAC,aAAa,CAAC,CAAC;QAC/C,CAAC,CAAC;QAEF,gBAAgB;QAChB,aAAa,EAAE,CAAC;QAEhB,MAAM,cAAc,GAAG,IAAI,cAAc,CAAC,cAAc,CAAC,CAAC;QAC1D,MAAM,gBAAgB,GAAG,IAAI,gBAAgB,CAAC,cAAc,CAAC,CAAC;QAE9D,IAAI,gBAAgB,CAAC,OAAO,KAAK,IAAI,EAAE,CAAC;YACtC,cAAc,CAAC,OAAO,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;YACjD,gBAAgB,CAAC,OAAO,CAAC,gBAAgB,CAAC,OAAO,EAAE;gBACjD,SAAS,EAAE,IAAI;gBACf,OAAO,EAAE,IAAI;aACd,CAAC,CAAC;QACL,CAAC;QAED,OAAO,GAAG,EAAE;YACV,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;gBACnB,oBAAoB,CAAC,KAAK,CAAC,CAAC;YAC9B,CAAC;YACD,cAAc,CAAC,UAAU,EAAE,CAAC;YAC5B,gBAAgB,CAAC,UAAU,EAAE,CAAC;QAChC,CAAC,CAAC;IACJ,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,qBAAqB;IACrB,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,WAAW,CAAC,OAAO,KAAK,IAAI,EAAE,CAAC;YACjC,MAAM,QAAQ,GAAG,MAAM,CAAC,gBAAgB,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;YAC9D,aAAa,CAAC,QAAQ,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC;QAC/C,CAAC;IACH,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,MAAM,oBAAoB,GAAG,WAAW,CAAC,GAAG,EAAE;QAC5C,MAAM,EAAE,GAAG,WAAW,CAAC,OAAO,CAAC;QAE/B,IAAI,EAAE,KAAK,IAAI,IAAI,UAAU,GAAG,CAAC,EAAE,CAAC;YAClC,kDAAkD;YAClD,EAAE,CAAC,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC;YAEzB,MAAM,SAAS,GAAG,UAAU,GAAG,OAAO,CAAC;YAEvC,IAAI,EAAE,CAAC,YAAY,IAAI,SAAS,EAAE,CAAC;gBACjC,EAAE,CAAC,KAAK,CAAC,SAAS,GAAG,QAAQ,CAAC;gBAC9B,EAAE,CAAC,KAAK,CAAC,MAAM,GAAG,GAAG,EAAE,CAAC,YAAY,IAAI,CAAC;YAC3C,CAAC;iBAAM,CAAC;gBACN,EAAE,CAAC,KAAK,CAAC,SAAS,GAAG,MAAM,CAAC;gBAC5B,EAAE,CAAC,KAAK,CAAC,MAAM,GAAG,GAAG,SAAS,IAAI,CAAC;YACrC,CAAC;QACH,CAAC;IACH,CAAC,EAAE,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC,CAAC;IAE1B,mEAAmE;IACnE,SAAS,CAAC,GAAG,EAAE;QACb,oBAAoB,EAAE,CAAC;IACzB,CAAC,EAAE,CAAC,KAAK,EAAE,oBAAoB,CAAC,CAAC,CAAC;IAElC,MAAM,WAAW,GAAG,CAAC,CAAyC,EAAE,EAAE;QAChE,oBAAoB,EAAE,CAAC;QACvB,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAG,CAAC,CAAC,CAAC;IAChB,CAAC,CAAC;IAEF,OAAO,CACL,6BACE,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,OAAO,EAClB,KAAK,EAAE,KAAK,IACR,SAAS,EACT,cAAc,eAElB,cAAK,SAAS,EAAC,uBAAuB,YACpC,eAAK,SAAS,EAAC,6BAA6B,aACzC,OAAO,CAAC,UAAU,CAAC,IAAI,CACtB,cACE,SAAS,EAAC,8BAA8B,EACxC,GAAG,EAAE,gBAAgB,YAEpB,UAAU,GACP,CACP,EACD,iCACE,WAAW,EAAC,cAAc,EAC1B,SAAS,EAAC,wBAAwB,EAClC,IAAI,EAAE,CAAC,EACP,QAAQ,EAAE,WAAW,EACrB,KAAK,EAAE,KAAK,EACZ,GAAG,EAAE,WAAW,EAChB,SAAS,EAAE,CAAC,CAAC,EAAE,EAAE;gCACf,IACE,CAAC,CAAC,GAAG,KAAK,OAAO;oCACjB,CAAC,CAAC,CAAC,QAAQ;oCACX,gBAAgB,KAAK,IAAI,EACzB,CAAC;oCACD,CAAC,CAAC,cAAc,EAAE,CAAC;oCAEnB,IAAI,eAAe,KAAK,IAAI,EAAE,CAAC;wCAC7B,cAAc,aAAd,cAAc,uBAAd,cAAc,CAAG,CAAC,CAAC,CAAC;oCACtB,CAAC;gCACH,CAAC;4BACH,CAAC,IACG,aAAa,EACjB,EACF,eAAK,SAAS,EAAC,8BAA8B,aAC1C,OAAO,CAAC,aAAa,CAAC,IAAI,CACzB,cAAK,SAAS,EAAC,sCAAsC,YAClD,aAAa,GACV,CACP,EACD,KAAC,kBAAkB,IACjB,UAAU,EAAE,gBAAgB,EAC5B,eAAe,EAAE,eAAe,EAChC,QAAQ,EAAE,cAAc,EACxB,QAAQ,EAAE,cAAc,GACxB,IACE,IACF,GACF,EACL,OAAO,CAAC,UAAU,CAAC,IAAI,CACtB,KAAC,UAAU,IAAC,OAAO,EAAC,YAAY,EAAC,SAAS,EAAC,sBAAsB,YAC9D,UAAU,GACA,CACd,KACG,CACP,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,kBAAkB,GAAG,CAAC,EAC1B,QAAQ,EACR,QAAQ,EACR,UAAU,EACV,eAAe,GAMhB,EAAE,EAAE;IACH,MAAM,WAAW,GAAG,eAAe,KAAK,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC;IAEjE,OAAO,CACL,MAAC,eAAe,IACd,SAAS,EAAC,6BAA6B,EACvC,WAAW,EAAE,WAAW,EACxB,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,eAAe,KAAK,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,EACvD,UAAU,EAAE,UAAU,aAEtB,KAAC,uBAAuB,IACtB,KAAK,EAAE;oBACL,OAAO,EAAE,eAAe,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;oBACzC,QAAQ,EAAE,eAAe,KAAK,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,UAAU;oBAC5D,SAAS,EACP,eAAe,KAAK,IAAI,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,eAAe;iBAClE,GACD,EACF,KAAC,qBAAqB,IACpB,KAAK,EAAE;oBACL,OAAO,EAAE,eAAe,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;oBACzC,QAAQ,EAAE,eAAe,KAAK,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,UAAU;iBAC7D,GACD,IACc,CACnB,CAAC;AACJ,CAAC,CAAC;AAQF,MAAM,WAAW,GAAG,CAAC,EAAE,KAAK,EAAE,OAAO,GAAG,EAAE,EAAE,QAAQ,EAAoB,EAAE,EAAE;;IAC1E,MAAM,SAAS,GAAG,MAAM,CAAoB,IAAI,CAAC,CAAC;IAClD,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAEpD,MAAM,YAAY,GAAG,MAAA,MAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,KAAK,mCAAI,MAAA,OAAO,CAAC,CAAC,CAAC,0CAAE,KAAK,mCAAI,EAAE,CAAC;IAE7D,MAAM,eAAe,GAAG,CAAC,MAGxB,EAAE,EAAE;QACH,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAG,MAAM,CAAC,CAAC;QACnB,aAAa,CAAC,KAAK,CAAC,CAAC;IACvB,CAAC,CAAC;IAEF,OAAO,CACL,8BACE,KAAC,cAAc,IACb,IAAI,EAAC,OAAO,EACZ,SAAS,EAAC,+BAA+B,EACzC,OAAO,EAAE,GAAG,EAAE,CAAC,aAAa,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,EAC3C,MAAM,EAAE,UAAU,EAClB,GAAG,EAAE,SAAS,YAEb,YAAY,GACE,EACjB,KAAC,IAAI,IACH,MAAM,EAAE,UAAU,EAClB,OAAO,EAAE,GAAG,EAAE,CAAC,aAAa,CAAC,KAAK,CAAC,EACnC,SAAS,EAAE,SAAS,EACpB,SAAS,EAAC,wBAAwB,YAEjC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CACvB,KAAC,IAAI,CAAC,SAAS,IAEb,KAAK,EAAE,MAAM,CAAC,KAAK,EACnB,SAAS,EAAE,CAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,KAAK,MAAK,MAAM,CAAC,KAAK,EACxC,OAAO,EAAE,GAAG,EAAE,CAAC,eAAe,CAAC,MAAM,CAAC,IAHjC,MAAM,CAAC,KAAK,CAIjB,CACH,CAAC,GACG,IACN,CACJ,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,eAAe,EAAE;IAC5C,MAAM,EAAE,WAAW;CACpB,CAAC,CAAC;AAEH,OAAO,EAAE,MAAM,EAAE,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 {\n CleanIconButton,\n DropdownButton,\n Menu,\n Typography,\n} from '@neo4j-ndl/react';\nimport {\n ArrowSmallUpIconOutline,\n StopCircleIconOutline,\n} from '@neo4j-ndl/react/icons';\nimport classNames from 'classnames';\nimport { useCallback, useEffect, useRef, useState } from 'react';\n\nimport type { CommonProps, HtmlAttributes } from '../../_common/types';\n\ntype PromptProps = {\n /** The prompt text */\n value?: React.ComponentPropsWithoutRef<'textarea'>['value'];\n /** Callback function called when the prompt text changes */\n onChange?: (e: React.ChangeEvent<HTMLTextAreaElement>) => void;\n /** Whether the submit button is disabled */\n isSubmitDisabled?: boolean;\n /** Maximum number of rows the textarea can expand to */\n maxRows?: number;\n /** Whether the submit button is \"running\". Shows a stop icon when true. */\n isRunningPrompt?: boolean;\n /** Callback function called when the submit button is clicked */\n onSubmitPrompt?: (\n e:\n | React.KeyboardEvent<HTMLTextAreaElement>\n | React.MouseEvent<HTMLButtonElement, MouseEvent>,\n ) => void;\n /** Callback function called when the cancel button is clicked */\n onCancelPrompt?: (e: React.MouseEvent<HTMLButtonElement, MouseEvent>) => void;\n /** Content to display above the textarea */\n topContent?: React.ReactNode;\n /** Content to display below the textarea */\n bottomContent?: React.ReactNode;\n /** Disclaimer to display below the component */\n disclaimer?: React.ReactNode;\n /** Props for the textarea element */\n textareaProps?: HtmlAttributes<'textarea'>;\n};\n\n/**\n * The component is used to display the prompt input for an LLM.\n * It includes a textarea for the user to enter their prompt and a submit button.\n * It can also display content above and below the textarea, like uploaded files or a select for changing agents.\n *\n * @alpha - Changes to this component may be breaking.\n */\nconst PromptComponent = ({\n value,\n onChange,\n maxRows = 5,\n isRunningPrompt = false,\n onSubmitPrompt,\n onCancelPrompt,\n isSubmitDisabled = false,\n topContent,\n bottomContent,\n disclaimer = 'All information should be verified.',\n className,\n style,\n htmlAttributes,\n ref,\n textareaProps,\n ...restProps\n}: CommonProps<'div', PromptProps>) => {\n const classes = classNames('ndl-ai-prompt', className);\n\n const textareaRef = useRef<HTMLTextAreaElement>(null);\n const textareaAboveRef = useRef<HTMLDivElement>(null);\n const [lineHeight, setLineHeight] = useState(0);\n\n /** File overflow stuff */\n useEffect(() => {\n let rafId: number | null = null;\n\n const checkOverflow = () => {\n if (textareaAboveRef.current !== null) {\n const element = textareaAboveRef.current;\n const maxHeight = parseFloat(\n getComputedStyle(element).maxHeight.replace('px', ''),\n );\n const scrollHeight = element.scrollHeight;\n\n if (scrollHeight > maxHeight) {\n element.classList.add('ndl-can-scroll');\n } else {\n element.classList.remove('ndl-can-scroll');\n }\n }\n };\n\n const debouncedCheck = () => {\n if (rafId !== null) {\n cancelAnimationFrame(rafId);\n }\n rafId = requestAnimationFrame(checkOverflow);\n };\n\n // Initial check\n checkOverflow();\n\n const resizeObserver = new ResizeObserver(debouncedCheck);\n const mutationObserver = new MutationObserver(debouncedCheck);\n\n if (textareaAboveRef.current !== null) {\n resizeObserver.observe(textareaAboveRef.current);\n mutationObserver.observe(textareaAboveRef.current, {\n childList: true,\n subtree: true,\n });\n }\n\n return () => {\n if (rafId !== null) {\n cancelAnimationFrame(rafId);\n }\n resizeObserver.disconnect();\n mutationObserver.disconnect();\n };\n }, []);\n\n /** Textarea stuff */\n useEffect(() => {\n if (textareaRef.current !== null) {\n const computed = window.getComputedStyle(textareaRef.current);\n setLineHeight(parseInt(computed.lineHeight));\n }\n }, []);\n\n const adjustTextareaHeight = useCallback(() => {\n const ta = textareaRef.current;\n\n if (ta !== null && lineHeight > 0) {\n // Reset height so scrollHeight measures correctly\n ta.style.height = 'auto';\n\n const maxHeight = lineHeight * maxRows;\n\n if (ta.scrollHeight <= maxHeight) {\n ta.style.overflowY = 'hidden';\n ta.style.height = `${ta.scrollHeight}px`;\n } else {\n ta.style.overflowY = 'auto';\n ta.style.height = `${maxHeight}px`;\n }\n }\n }, [lineHeight, maxRows]);\n\n // Adjust height when prompt value changes (including when cleared)\n useEffect(() => {\n adjustTextareaHeight();\n }, [value, adjustTextareaHeight]);\n\n const handleInput = (e: React.ChangeEvent<HTMLTextAreaElement>) => {\n adjustTextareaHeight();\n onChange?.(e);\n };\n\n return (\n <div\n ref={ref}\n className={classes}\n style={style}\n {...restProps}\n {...htmlAttributes}\n >\n <div className=\"ndl-ai-prompt-wrapper\">\n <div className=\"ndl-ai-prompt-wrapper-inner\">\n {Boolean(topContent) && (\n <div\n className=\"ndl-ai-prompt-textarea-above\"\n ref={textareaAboveRef}\n >\n {topContent}\n </div>\n )}\n <textarea\n placeholder=\"Ask anything\"\n className=\"ndl-ai-prompt-textarea\"\n rows={1}\n onChange={handleInput}\n value={value}\n ref={textareaRef}\n onKeyDown={(e) => {\n if (\n e.key === 'Enter' &&\n !e.shiftKey &&\n isSubmitDisabled !== true\n ) {\n e.preventDefault();\n\n if (isRunningPrompt !== true) {\n onSubmitPrompt?.(e);\n }\n }\n }}\n {...textareaProps}\n />\n <div className=\"ndl-ai-prompt-textarea-below\">\n {Boolean(bottomContent) && (\n <div className=\"ndl-ai-prompt-textarea-below-leading\">\n {bottomContent}\n </div>\n )}\n <SumbitPromptButton\n isDisabled={isSubmitDisabled}\n isRunningPrompt={isRunningPrompt}\n onSubmit={onSubmitPrompt}\n onCancel={onCancelPrompt}\n />\n </div>\n </div>\n </div>\n {Boolean(disclaimer) && (\n <Typography variant=\"body-small\" className=\"ndl-ai-prompt-footer\">\n {disclaimer}\n </Typography>\n )}\n </div>\n );\n};\n\nconst SumbitPromptButton = ({\n onSubmit,\n onCancel,\n isDisabled,\n isRunningPrompt,\n}: {\n isDisabled?: boolean;\n isRunningPrompt?: boolean;\n onSubmit?: (e: React.MouseEvent<HTMLButtonElement, MouseEvent>) => void;\n onCancel?: (e: React.MouseEvent<HTMLButtonElement, MouseEvent>) => void;\n}) => {\n const description = isRunningPrompt === true ? 'Cancel' : 'Send';\n\n return (\n <CleanIconButton\n className=\"ndl-ai-prompt-submit-button\"\n description={description}\n size=\"medium\"\n onClick={isRunningPrompt === true ? onCancel : onSubmit}\n isDisabled={isDisabled}\n >\n <ArrowSmallUpIconOutline\n style={{\n opacity: isRunningPrompt === true ? 0 : 1,\n position: isRunningPrompt === true ? 'absolute' : 'relative',\n transform:\n isRunningPrompt === true ? 'translateY(-8px)' : 'translateY(0)',\n }}\n />\n <StopCircleIconOutline\n style={{\n opacity: isRunningPrompt === true ? 1 : 0,\n position: isRunningPrompt === true ? 'relative' : 'absolute',\n }}\n />\n </CleanIconButton>\n );\n};\n\ntype AgentSelectProps = {\n value: { label: React.ReactNode; value: string };\n options: Array<{ label: React.ReactNode; value: string }>;\n onChange: (option: { label: React.ReactNode; value: string }) => void;\n};\n\nconst AgentSelect = ({ value, options = [], onChange }: AgentSelectProps) => {\n const anchorRef = useRef<HTMLButtonElement>(null);\n const [isMenuOpen, setIsMenuOpen] = useState(false);\n\n const displayLabel = value?.label ?? options[0]?.label ?? '';\n\n const handleItemClick = (option: {\n label: React.ReactNode;\n value: string;\n }) => {\n onChange?.(option);\n setIsMenuOpen(false);\n };\n\n return (\n <>\n <DropdownButton\n size=\"small\"\n className=\"ndl-ai-prompt-dropdown-button\"\n onClick={() => setIsMenuOpen((old) => !old)}\n isOpen={isMenuOpen}\n ref={anchorRef}\n >\n {displayLabel}\n </DropdownButton>\n <Menu\n isOpen={isMenuOpen}\n onClose={() => setIsMenuOpen(false)}\n anchorRef={anchorRef}\n placement=\"top-start-bottom-start\"\n >\n {options.map((option) => (\n <Menu.RadioItem\n key={option.value}\n title={option.label}\n isChecked={value?.value === option.value}\n onClick={() => handleItemClick(option)}\n />\n ))}\n </Menu>\n </>\n );\n};\n\nconst Prompt = Object.assign(PromptComponent, {\n Select: AgentSelect,\n});\n\nexport { Prompt };\n"]}
@@ -27,7 +27,7 @@ import { useRef, useState } from 'react';
27
27
  const Component = () => {
28
28
  const [isMenuOpen, setIsMenuOpen] = useState(false);
29
29
  const anchorRef = useRef(null);
30
- return (_jsx("div", { className: "n-flex n-flex-coln-gap-token-64 n-w-full n-justify-end", children: _jsxs("div", { className: "n-flex n-flex-col n-gap-token-8 n-items-end", children: [_jsx(MoreFiles, { count: 4, isActive: isMenuOpen, onClick: () => setIsMenuOpen(!isMenuOpen), ref: anchorRef }), _jsx(Menu, { isOpen: isMenuOpen, anchorRef: anchorRef, onClose: () => setIsMenuOpen(false), children: _jsxs(Menu.Items, { children: [_jsx(Menu.Item, { leadingVisual: _jsx(DocumentIconOutline, {}), title: "Gardening tips", description: "PDF", onClick: () => alert('Gardening tips') }), _jsx(Menu.Item, { leadingVisual: _jsx(TableCellsIconOutline, {}), title: "TvSeries", description: "CSV", onClick: () => alert('TvSeries') }), _jsx(Menu.Item, { leadingVisual: _jsx(PhotoIconOutline, {}), title: "Family photo", description: "JPG", onClick: () => alert('Family photo') })] }) }), _jsx(ImageTag, { src: "https://plus.unsplash.com/premium_photo-1676496046182-356a6a0ed002?q=80&w=2952&auto=format&fit=crop&ixlib=rb-4.1.0&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D", alt: "Landscape image", fileName: "Landscape image", fileType: "jpg" }), _jsx(FileTag, { icon: _jsx(TableCellsIconOutline, {}), fileName: "MoviesDecade", fileType: "csv" }), _jsx(FileTag, { icon: _jsx(DocumentIconOutline, {}), fileName: "Science Fiction Bestsellers", fileType: "pdf" }), _jsx(UserBubble, { avatarProps: {
30
+ return (_jsx("div", { className: "n-flex n-flex-coln-gap-token-64 n-w-full n-justify-end", children: _jsxs("div", { className: "n-flex n-flex-col n-gap-token-8 n-items-end", children: [_jsx(MoreFiles, { count: 3, isActive: isMenuOpen, onClick: () => setIsMenuOpen(!isMenuOpen), ref: anchorRef }), _jsxs(Menu, { isOpen: isMenuOpen, anchorRef: anchorRef, onClose: () => setIsMenuOpen(false), children: [_jsx(Menu.Item, { leadingVisual: _jsx(DocumentIconOutline, {}), title: "Gardening tips", description: "PDF", onClick: () => alert('Gardening tips') }), _jsx(Menu.Item, { leadingVisual: _jsx(TableCellsIconOutline, {}), title: "TvSeries", description: "CSV", onClick: () => alert('TvSeries') }), _jsx(Menu.Item, { leadingVisual: _jsx(PhotoIconOutline, {}), title: "Family photo", description: "JPG", onClick: () => alert('Family photo') })] }), _jsx(ImageTag, { src: "https://plus.unsplash.com/premium_photo-1676496046182-356a6a0ed002?q=80&w=2952&auto=format&fit=crop&ixlib=rb-4.1.0&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D", alt: "Landscape image", fileName: "Landscape image", fileType: "jpg" }), _jsx(FileTag, { icon: _jsx(TableCellsIconOutline, {}), fileName: "MoviesDecade", fileType: "csv" }), _jsx(FileTag, { icon: _jsx(DocumentIconOutline, {}), fileName: "Science Fiction Bestsellers", fileType: "pdf" }), _jsx(UserBubble, { avatarProps: {
31
31
  name: 'KM',
32
32
  source: 'https://media.istockphoto.com/id/1334716681/photo/a-smiling-man.jpg?s=612x612&w=0&k=20&c=U6rkSDpQMzkcJEqx2hAa63fNLIhqnZb31Xuc_QSi648=',
33
33
  type: 'image',
@@ -1 +1 @@
1
- {"version":3,"file":"user-bubble-and-files.story.js","sourceRoot":"","sources":["../../../../../src/ai/user-bubble/stories/user-bubble-and-files.story.tsx"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,yCAAyC,CAAC;AAEjD,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AACxC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAC/E,OAAO,EACL,mBAAmB,EACnB,gBAAgB,EAChB,qBAAqB,GACtB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAEzC,MAAM,SAAS,GAAG,GAAG,EAAE;IACrB,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IACpD,MAAM,SAAS,GAAG,MAAM,CAA2B,IAAI,CAAC,CAAC;IAEzD,OAAO,CACL,cAAK,SAAS,EAAC,wDAAwD,YACrE,eAAK,SAAS,EAAC,6CAA6C,aAC1D,KAAC,SAAS,IACR,KAAK,EAAE,CAAC,EACR,QAAQ,EAAE,UAAU,EACpB,OAAO,EAAE,GAAG,EAAE,CAAC,aAAa,CAAC,CAAC,UAAU,CAAC,EACzC,GAAG,EAAE,SAAS,GACd,EACF,KAAC,IAAI,IACH,MAAM,EAAE,UAAU,EAClB,SAAS,EAAE,SAAS,EACpB,OAAO,EAAE,GAAG,EAAE,CAAC,aAAa,CAAC,KAAK,CAAC,YAEnC,MAAC,IAAI,CAAC,KAAK,eACT,KAAC,IAAI,CAAC,IAAI,IACR,aAAa,EAAE,KAAC,mBAAmB,KAAG,EACtC,KAAK,EAAC,gBAAgB,EACtB,WAAW,EAAC,KAAK,EACjB,OAAO,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,gBAAgB,CAAC,GACtC,EACF,KAAC,IAAI,CAAC,IAAI,IACR,aAAa,EAAE,KAAC,qBAAqB,KAAG,EACxC,KAAK,EAAC,UAAU,EAChB,WAAW,EAAC,KAAK,EACjB,OAAO,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,GAChC,EACF,KAAC,IAAI,CAAC,IAAI,IACR,aAAa,EAAE,KAAC,gBAAgB,KAAG,EACnC,KAAK,EAAC,cAAc,EACpB,WAAW,EAAC,KAAK,EACjB,OAAO,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,cAAc,CAAC,GACpC,IACS,GACR,EACP,KAAC,QAAQ,IACP,GAAG,EAAC,8KAA8K,EAClL,GAAG,EAAC,iBAAiB,EACrB,QAAQ,EAAC,iBAAiB,EAC1B,QAAQ,EAAC,KAAK,GACd,EACF,KAAC,OAAO,IACN,IAAI,EAAE,KAAC,qBAAqB,KAAG,EAC/B,QAAQ,EAAC,cAAc,EACvB,QAAQ,EAAC,KAAK,GACd,EACF,KAAC,OAAO,IACN,IAAI,EAAE,KAAC,mBAAmB,KAAG,EAC7B,QAAQ,EAAC,6BAA6B,EACtC,QAAQ,EAAC,KAAK,GACd,EACF,KAAC,UAAU,IACT,WAAW,EAAE;wBACX,IAAI,EAAE,IAAI;wBACV,MAAM,EACJ,uIAAuI;wBACzI,IAAI,EAAE,OAAO;qBACd,8DAGU,IACT,GACF,CACP,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe,SAAS,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 '@neo4j-ndl/base/lib/neo4j-ds-styles.css';\n\nimport { Menu } from '@neo4j-ndl/react';\nimport { FileTag, ImageTag, MoreFiles, UserBubble } from '@neo4j-ndl/react/ai';\nimport {\n DocumentIconOutline,\n PhotoIconOutline,\n TableCellsIconOutline,\n} from '@neo4j-ndl/react/icons';\nimport { useRef, useState } from 'react';\n\nconst Component = () => {\n const [isMenuOpen, setIsMenuOpen] = useState(false);\n const anchorRef = useRef<HTMLButtonElement | null>(null);\n\n return (\n <div className=\"n-flex n-flex-coln-gap-token-64 n-w-full n-justify-end\">\n <div className=\"n-flex n-flex-col n-gap-token-8 n-items-end\">\n <MoreFiles\n count={4}\n isActive={isMenuOpen}\n onClick={() => setIsMenuOpen(!isMenuOpen)}\n ref={anchorRef}\n />\n <Menu\n isOpen={isMenuOpen}\n anchorRef={anchorRef}\n onClose={() => setIsMenuOpen(false)}\n >\n <Menu.Items>\n <Menu.Item\n leadingVisual={<DocumentIconOutline />}\n title=\"Gardening tips\"\n description=\"PDF\"\n onClick={() => alert('Gardening tips')}\n />\n <Menu.Item\n leadingVisual={<TableCellsIconOutline />}\n title=\"TvSeries\"\n description=\"CSV\"\n onClick={() => alert('TvSeries')}\n />\n <Menu.Item\n leadingVisual={<PhotoIconOutline />}\n title=\"Family photo\"\n description=\"JPG\"\n onClick={() => alert('Family photo')}\n />\n </Menu.Items>\n </Menu>\n <ImageTag\n src=\"https://plus.unsplash.com/premium_photo-1676496046182-356a6a0ed002?q=80&w=2952&auto=format&fit=crop&ixlib=rb-4.1.0&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D\"\n alt=\"Landscape image\"\n fileName=\"Landscape image\"\n fileType=\"jpg\"\n />\n <FileTag\n icon={<TableCellsIconOutline />}\n fileName=\"MoviesDecade\"\n fileType=\"csv\"\n />\n <FileTag\n icon={<DocumentIconOutline />}\n fileName=\"Science Fiction Bestsellers\"\n fileType=\"pdf\"\n />\n <UserBubble\n avatarProps={{\n name: 'KM',\n source:\n 'https://media.istockphoto.com/id/1334716681/photo/a-smiling-man.jpg?s=612x612&w=0&k=20&c=U6rkSDpQMzkcJEqx2hAa63fNLIhqnZb31Xuc_QSi648=',\n type: 'image',\n }}\n >\n Can you analyse my data and tell me about...?\n </UserBubble>\n </div>\n </div>\n );\n};\n\nexport default Component;\n"]}
1
+ {"version":3,"file":"user-bubble-and-files.story.js","sourceRoot":"","sources":["../../../../../src/ai/user-bubble/stories/user-bubble-and-files.story.tsx"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,yCAAyC,CAAC;AAEjD,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AACxC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAC/E,OAAO,EACL,mBAAmB,EACnB,gBAAgB,EAChB,qBAAqB,GACtB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAEzC,MAAM,SAAS,GAAG,GAAG,EAAE;IACrB,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IACpD,MAAM,SAAS,GAAG,MAAM,CAA2B,IAAI,CAAC,CAAC;IAEzD,OAAO,CACL,cAAK,SAAS,EAAC,wDAAwD,YACrE,eAAK,SAAS,EAAC,6CAA6C,aAC1D,KAAC,SAAS,IACR,KAAK,EAAE,CAAC,EACR,QAAQ,EAAE,UAAU,EACpB,OAAO,EAAE,GAAG,EAAE,CAAC,aAAa,CAAC,CAAC,UAAU,CAAC,EACzC,GAAG,EAAE,SAAS,GACd,EACF,MAAC,IAAI,IACH,MAAM,EAAE,UAAU,EAClB,SAAS,EAAE,SAAS,EACpB,OAAO,EAAE,GAAG,EAAE,CAAC,aAAa,CAAC,KAAK,CAAC,aAEnC,KAAC,IAAI,CAAC,IAAI,IACR,aAAa,EAAE,KAAC,mBAAmB,KAAG,EACtC,KAAK,EAAC,gBAAgB,EACtB,WAAW,EAAC,KAAK,EACjB,OAAO,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,gBAAgB,CAAC,GACtC,EACF,KAAC,IAAI,CAAC,IAAI,IACR,aAAa,EAAE,KAAC,qBAAqB,KAAG,EACxC,KAAK,EAAC,UAAU,EAChB,WAAW,EAAC,KAAK,EACjB,OAAO,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,GAChC,EACF,KAAC,IAAI,CAAC,IAAI,IACR,aAAa,EAAE,KAAC,gBAAgB,KAAG,EACnC,KAAK,EAAC,cAAc,EACpB,WAAW,EAAC,KAAK,EACjB,OAAO,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,cAAc,CAAC,GACpC,IACG,EACP,KAAC,QAAQ,IACP,GAAG,EAAC,8KAA8K,EAClL,GAAG,EAAC,iBAAiB,EACrB,QAAQ,EAAC,iBAAiB,EAC1B,QAAQ,EAAC,KAAK,GACd,EACF,KAAC,OAAO,IACN,IAAI,EAAE,KAAC,qBAAqB,KAAG,EAC/B,QAAQ,EAAC,cAAc,EACvB,QAAQ,EAAC,KAAK,GACd,EACF,KAAC,OAAO,IACN,IAAI,EAAE,KAAC,mBAAmB,KAAG,EAC7B,QAAQ,EAAC,6BAA6B,EACtC,QAAQ,EAAC,KAAK,GACd,EACF,KAAC,UAAU,IACT,WAAW,EAAE;wBACX,IAAI,EAAE,IAAI;wBACV,MAAM,EACJ,uIAAuI;wBACzI,IAAI,EAAE,OAAO;qBACd,8DAGU,IACT,GACF,CACP,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe,SAAS,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 '@neo4j-ndl/base/lib/neo4j-ds-styles.css';\n\nimport { Menu } from '@neo4j-ndl/react';\nimport { FileTag, ImageTag, MoreFiles, UserBubble } from '@neo4j-ndl/react/ai';\nimport {\n DocumentIconOutline,\n PhotoIconOutline,\n TableCellsIconOutline,\n} from '@neo4j-ndl/react/icons';\nimport { useRef, useState } from 'react';\n\nconst Component = () => {\n const [isMenuOpen, setIsMenuOpen] = useState(false);\n const anchorRef = useRef<HTMLButtonElement | null>(null);\n\n return (\n <div className=\"n-flex n-flex-coln-gap-token-64 n-w-full n-justify-end\">\n <div className=\"n-flex n-flex-col n-gap-token-8 n-items-end\">\n <MoreFiles\n count={3}\n isActive={isMenuOpen}\n onClick={() => setIsMenuOpen(!isMenuOpen)}\n ref={anchorRef}\n />\n <Menu\n isOpen={isMenuOpen}\n anchorRef={anchorRef}\n onClose={() => setIsMenuOpen(false)}\n >\n <Menu.Item\n leadingVisual={<DocumentIconOutline />}\n title=\"Gardening tips\"\n description=\"PDF\"\n onClick={() => alert('Gardening tips')}\n />\n <Menu.Item\n leadingVisual={<TableCellsIconOutline />}\n title=\"TvSeries\"\n description=\"CSV\"\n onClick={() => alert('TvSeries')}\n />\n <Menu.Item\n leadingVisual={<PhotoIconOutline />}\n title=\"Family photo\"\n description=\"JPG\"\n onClick={() => alert('Family photo')}\n />\n </Menu>\n <ImageTag\n src=\"https://plus.unsplash.com/premium_photo-1676496046182-356a6a0ed002?q=80&w=2952&auto=format&fit=crop&ixlib=rb-4.1.0&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D\"\n alt=\"Landscape image\"\n fileName=\"Landscape image\"\n fileType=\"jpg\"\n />\n <FileTag\n icon={<TableCellsIconOutline />}\n fileName=\"MoviesDecade\"\n fileType=\"csv\"\n />\n <FileTag\n icon={<DocumentIconOutline />}\n fileName=\"Science Fiction Bestsellers\"\n fileType=\"pdf\"\n />\n <UserBubble\n avatarProps={{\n name: 'KM',\n source:\n 'https://media.istockphoto.com/id/1334716681/photo/a-smiling-man.jpg?s=612x612&w=0&k=20&c=U6rkSDpQMzkcJEqx2hAa63fNLIhqnZb31Xuc_QSi648=',\n type: 'image',\n }}\n >\n Can you analyse my data and tell me about...?\n </UserBubble>\n </div>\n </div>\n );\n};\n\nexport default Component;\n"]}
@@ -27,7 +27,7 @@ const Component = () => {
27
27
  const [isMenuOpen, setIsMenuOpen] = useState(false);
28
28
  return (_jsxs(Breadcrumbs, { children: [_jsx(Breadcrumbs.Item, { children: _jsx(Breadcrumbs.Link, { href: "#", children: "Home" }) }), _jsx(Breadcrumbs.Item, { children: _jsxs(Breadcrumbs.Link, { ref: menuRef, as: "button", onClick: () => setIsMenuOpen(!isMenuOpen), htmlAttributes: {
29
29
  'aria-label': 'Open ellipsis menu',
30
- }, children: ["...", _jsx(Menu, { anchorRef: menuRef, isOpen: isMenuOpen, onClose: () => setIsMenuOpen(false), children: _jsxs(Menu.Items, { children: [_jsx(Menu.Item, { title: "Page 1" }), _jsx(Menu.Item, { title: "Page 2" }), _jsx(Menu.Item, { title: "Page 3" })] }) })] }) }), _jsx(Breadcrumbs.Item, { children: _jsx(Breadcrumbs.Link, { as: "span", ariaCurrent: "page", children: "Current page" }) })] }));
30
+ }, children: ["...", _jsxs(Menu, { anchorRef: menuRef, isOpen: isMenuOpen, onClose: () => setIsMenuOpen(false), children: [_jsx(Menu.Item, { title: "Page 1" }), _jsx(Menu.Item, { title: "Page 2" }), _jsx(Menu.Item, { title: "Page 3" })] })] }) }), _jsx(Breadcrumbs.Item, { children: _jsx(Breadcrumbs.Link, { as: "span", ariaCurrent: "page", children: "Current page" }) })] }));
31
31
  };
32
32
  export default Component;
33
33
  //# sourceMappingURL=breadcrumbs-ellipses.story.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"breadcrumbs-ellipses.story.js","sourceRoot":"","sources":["../../../../src/breadcrumbs/stories/breadcrumbs-ellipses.story.tsx"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,yCAAyC,CAAC;AAEjD,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAEzC,MAAM,SAAS,GAAG,GAAG,EAAE;IACrB,MAAM,OAAO,GAAG,MAAM,CAAoB,IAAI,CAAC,CAAC;IAChD,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAEpD,OAAO,CACL,MAAC,WAAW,eACV,KAAC,WAAW,CAAC,IAAI,cACf,KAAC,WAAW,CAAC,IAAI,IAAC,IAAI,EAAC,GAAG,qBAAwB,GACjC,EACnB,KAAC,WAAW,CAAC,IAAI,cACf,MAAC,WAAW,CAAC,IAAI,IACf,GAAG,EAAE,OAAO,EACZ,EAAE,EAAC,QAAQ,EACX,OAAO,EAAE,GAAG,EAAE,CAAC,aAAa,CAAC,CAAC,UAAU,CAAC,EACzC,cAAc,EAAE;wBACd,YAAY,EAAE,oBAAoB;qBACnC,oBAGD,KAAC,IAAI,IACH,SAAS,EAAE,OAAO,EAClB,MAAM,EAAE,UAAU,EAClB,OAAO,EAAE,GAAG,EAAE,CAAC,aAAa,CAAC,KAAK,CAAC,YAEnC,MAAC,IAAI,CAAC,KAAK,eACT,KAAC,IAAI,CAAC,IAAI,IAAC,KAAK,EAAC,QAAQ,GAAG,EAC5B,KAAC,IAAI,CAAC,IAAI,IAAC,KAAK,EAAC,QAAQ,GAAG,EAC5B,KAAC,IAAI,CAAC,IAAI,IAAC,KAAK,EAAC,QAAQ,GAAG,IACjB,GACR,IACU,GACF,EACnB,KAAC,WAAW,CAAC,IAAI,cACf,KAAC,WAAW,CAAC,IAAI,IAAC,EAAE,EAAC,MAAM,EAAC,WAAW,EAAC,MAAM,6BAE3B,GACF,IACP,CACf,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe,SAAS,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 '@neo4j-ndl/base/lib/neo4j-ds-styles.css';\n\nimport { Breadcrumbs, Menu } from '@neo4j-ndl/react';\nimport { useRef, useState } from 'react';\n\nconst Component = () => {\n const menuRef = useRef<HTMLButtonElement>(null);\n const [isMenuOpen, setIsMenuOpen] = useState(false);\n\n return (\n <Breadcrumbs>\n <Breadcrumbs.Item>\n <Breadcrumbs.Link href=\"#\">Home</Breadcrumbs.Link>\n </Breadcrumbs.Item>\n <Breadcrumbs.Item>\n <Breadcrumbs.Link\n ref={menuRef}\n as=\"button\"\n onClick={() => setIsMenuOpen(!isMenuOpen)}\n htmlAttributes={{\n 'aria-label': 'Open ellipsis menu',\n }}\n >\n ...\n <Menu\n anchorRef={menuRef}\n isOpen={isMenuOpen}\n onClose={() => setIsMenuOpen(false)}\n >\n <Menu.Items>\n <Menu.Item title=\"Page 1\" />\n <Menu.Item title=\"Page 2\" />\n <Menu.Item title=\"Page 3\" />\n </Menu.Items>\n </Menu>\n </Breadcrumbs.Link>\n </Breadcrumbs.Item>\n <Breadcrumbs.Item>\n <Breadcrumbs.Link as=\"span\" ariaCurrent=\"page\">\n Current page\n </Breadcrumbs.Link>\n </Breadcrumbs.Item>\n </Breadcrumbs>\n );\n};\n\nexport default Component;\n"]}
1
+ {"version":3,"file":"breadcrumbs-ellipses.story.js","sourceRoot":"","sources":["../../../../src/breadcrumbs/stories/breadcrumbs-ellipses.story.tsx"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,yCAAyC,CAAC;AAEjD,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAEzC,MAAM,SAAS,GAAG,GAAG,EAAE;IACrB,MAAM,OAAO,GAAG,MAAM,CAAoB,IAAI,CAAC,CAAC;IAChD,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAEpD,OAAO,CACL,MAAC,WAAW,eACV,KAAC,WAAW,CAAC,IAAI,cACf,KAAC,WAAW,CAAC,IAAI,IAAC,IAAI,EAAC,GAAG,qBAAwB,GACjC,EACnB,KAAC,WAAW,CAAC,IAAI,cACf,MAAC,WAAW,CAAC,IAAI,IACf,GAAG,EAAE,OAAO,EACZ,EAAE,EAAC,QAAQ,EACX,OAAO,EAAE,GAAG,EAAE,CAAC,aAAa,CAAC,CAAC,UAAU,CAAC,EACzC,cAAc,EAAE;wBACd,YAAY,EAAE,oBAAoB;qBACnC,oBAGD,MAAC,IAAI,IACH,SAAS,EAAE,OAAO,EAClB,MAAM,EAAE,UAAU,EAClB,OAAO,EAAE,GAAG,EAAE,CAAC,aAAa,CAAC,KAAK,CAAC,aAEnC,KAAC,IAAI,CAAC,IAAI,IAAC,KAAK,EAAC,QAAQ,GAAG,EAC5B,KAAC,IAAI,CAAC,IAAI,IAAC,KAAK,EAAC,QAAQ,GAAG,EAC5B,KAAC,IAAI,CAAC,IAAI,IAAC,KAAK,EAAC,QAAQ,GAAG,IACvB,IACU,GACF,EACnB,KAAC,WAAW,CAAC,IAAI,cACf,KAAC,WAAW,CAAC,IAAI,IAAC,EAAE,EAAC,MAAM,EAAC,WAAW,EAAC,MAAM,6BAE3B,GACF,IACP,CACf,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe,SAAS,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 '@neo4j-ndl/base/lib/neo4j-ds-styles.css';\n\nimport { Breadcrumbs, Menu } from '@neo4j-ndl/react';\nimport { useRef, useState } from 'react';\n\nconst Component = () => {\n const menuRef = useRef<HTMLButtonElement>(null);\n const [isMenuOpen, setIsMenuOpen] = useState(false);\n\n return (\n <Breadcrumbs>\n <Breadcrumbs.Item>\n <Breadcrumbs.Link href=\"#\">Home</Breadcrumbs.Link>\n </Breadcrumbs.Item>\n <Breadcrumbs.Item>\n <Breadcrumbs.Link\n ref={menuRef}\n as=\"button\"\n onClick={() => setIsMenuOpen(!isMenuOpen)}\n htmlAttributes={{\n 'aria-label': 'Open ellipsis menu',\n }}\n >\n ...\n <Menu\n anchorRef={menuRef}\n isOpen={isMenuOpen}\n onClose={() => setIsMenuOpen(false)}\n >\n <Menu.Item title=\"Page 1\" />\n <Menu.Item title=\"Page 2\" />\n <Menu.Item title=\"Page 3\" />\n </Menu>\n </Breadcrumbs.Link>\n </Breadcrumbs.Item>\n <Breadcrumbs.Item>\n <Breadcrumbs.Link as=\"span\" ariaCurrent=\"page\">\n Current page\n </Breadcrumbs.Link>\n </Breadcrumbs.Item>\n </Breadcrumbs>\n );\n};\n\nexport default Component;\n"]}
@@ -21,14 +21,14 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
21
21
  */
22
22
  import '@neo4j-ndl/base/lib/neo4j-ds-styles.css';
23
23
  import { Breadcrumbs, Menu } from '@neo4j-ndl/react';
24
- import { BuildingOffice2IconOutline, CheckIconOutline, FolderIconOutline, Neo4JIconColorIcon, } from '@neo4j-ndl/react/icons';
24
+ import { BuildingOffice2IconOutline, FolderIconOutline, Neo4JIconColorIcon, } from '@neo4j-ndl/react/icons';
25
25
  import { useRef, useState } from 'react';
26
26
  const Component = () => {
27
27
  const [isOrganizationMenuOpen, setIsOrganizationMenuOpen] = useState(false);
28
28
  const organizationMenuRef = useRef(null);
29
29
  return (_jsxs(Breadcrumbs, { shouldWrap: false, children: [_jsx(Breadcrumbs.Item, { className: "n-mr-token-8", children: _jsx("button", { "aria-label": "Home", className: "n-rounded-sm focus-visible:n-outline-2 focus-visible:n-outline-offset-[3px] focus-visible:n-outline-primary-focus n-shrink-0", children: _jsx(Neo4JIconColorIcon, { className: "n-h-6 n-w-[26px]" }) }) }), _jsxs(Breadcrumbs.Item, { children: [_jsx(Breadcrumbs.Button, { leadingElement: _jsx(BuildingOffice2IconOutline, {}), children: "Organization 1" }), _jsx(Breadcrumbs.SelectButton, { ref: organizationMenuRef, ariaLabel: "Open organization menu", onClick: () => {
30
30
  setIsOrganizationMenuOpen(!isOrganizationMenuOpen);
31
- }, children: _jsx(Menu, { anchorRef: organizationMenuRef, isOpen: isOrganizationMenuOpen, onClose: () => setIsOrganizationMenuOpen(false), children: _jsxs(Menu.Items, { children: [_jsx(Menu.Item, { title: "Organization 1", leadingVisual: _jsx(CheckIconOutline, {}) }), _jsx(Menu.Item, { title: "Organization 2" }), _jsx(Menu.Divider, {}), _jsx(Menu.Item, { title: "All Organizations" })] }) }) })] }), _jsxs(Breadcrumbs.Item, { children: [_jsx(Breadcrumbs.Button, { leadingElement: _jsx(FolderIconOutline, {}), children: "Project 1" }), _jsx(Breadcrumbs.SelectButton, { ariaLabel: "Open project menu" })] })] }));
31
+ }, children: _jsxs(Menu, { anchorRef: organizationMenuRef, isOpen: isOrganizationMenuOpen, onClose: () => setIsOrganizationMenuOpen(false), children: [_jsxs(Menu.Group, { children: [_jsx(Menu.RadioItem, { title: "Organization 1", isChecked: true }), _jsx(Menu.RadioItem, { title: "Organization 2", isChecked: false })] }), _jsx(Menu.Divider, {}), _jsx(Menu.Group, { children: _jsx(Menu.Item, { title: "All Organizations" }) })] }) })] }), _jsxs(Breadcrumbs.Item, { children: [_jsx(Breadcrumbs.Button, { leadingElement: _jsx(FolderIconOutline, {}), children: "Project 1" }), _jsx(Breadcrumbs.SelectButton, { ariaLabel: "Open project menu" })] })] }));
32
32
  };
33
33
  export default Component;
34
34
  //# sourceMappingURL=breadcrumbs-header.story.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"breadcrumbs-header.story.js","sourceRoot":"","sources":["../../../../src/breadcrumbs/stories/breadcrumbs-header.story.tsx"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,yCAAyC,CAAC;AAEjD,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EACL,0BAA0B,EAC1B,gBAAgB,EAChB,iBAAiB,EACjB,kBAAkB,GACnB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAEzC,MAAM,SAAS,GAAG,GAAG,EAAE;IACrB,MAAM,CAAC,sBAAsB,EAAE,yBAAyB,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC5E,MAAM,mBAAmB,GAAG,MAAM,CAAoB,IAAI,CAAC,CAAC;IAE5D,OAAO,CACL,MAAC,WAAW,IAAC,UAAU,EAAE,KAAK,aAC5B,KAAC,WAAW,CAAC,IAAI,IAAC,SAAS,EAAC,cAAc,YACxC,+BACa,MAAM,EACjB,SAAS,EAAC,8HAA8H,YAExI,KAAC,kBAAkB,IAAC,SAAS,EAAC,kBAAkB,GAAG,GAC5C,GACQ,EACnB,MAAC,WAAW,CAAC,IAAI,eACf,KAAC,WAAW,CAAC,MAAM,IAAC,cAAc,EAAE,KAAC,0BAA0B,KAAG,+BAE7C,EACrB,KAAC,WAAW,CAAC,YAAY,IACvB,GAAG,EAAE,mBAAmB,EACxB,SAAS,EAAC,wBAAwB,EAClC,OAAO,EAAE,GAAG,EAAE;4BACZ,yBAAyB,CAAC,CAAC,sBAAsB,CAAC,CAAC;wBACrD,CAAC,YAED,KAAC,IAAI,IACH,SAAS,EAAE,mBAAmB,EAC9B,MAAM,EAAE,sBAAsB,EAC9B,OAAO,EAAE,GAAG,EAAE,CAAC,yBAAyB,CAAC,KAAK,CAAC,YAE/C,MAAC,IAAI,CAAC,KAAK,eACT,KAAC,IAAI,CAAC,IAAI,IACR,KAAK,EAAC,gBAAgB,EACtB,aAAa,EAAE,KAAC,gBAAgB,KAAG,GACnC,EACF,KAAC,IAAI,CAAC,IAAI,IAAC,KAAK,EAAC,gBAAgB,GAAG,EACpC,KAAC,IAAI,CAAC,OAAO,KAAG,EAChB,KAAC,IAAI,CAAC,IAAI,IAAC,KAAK,EAAC,mBAAmB,GAAG,IAC5B,GACR,GACkB,IACV,EACnB,MAAC,WAAW,CAAC,IAAI,eACf,KAAC,WAAW,CAAC,MAAM,IAAC,cAAc,EAAE,KAAC,iBAAiB,KAAG,0BAEpC,EACrB,KAAC,WAAW,CAAC,YAAY,IAAC,SAAS,EAAC,mBAAmB,GAA4B,IAClE,IACP,CACf,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe,SAAS,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 '@neo4j-ndl/base/lib/neo4j-ds-styles.css';\n\nimport { Breadcrumbs, Menu } from '@neo4j-ndl/react';\nimport {\n BuildingOffice2IconOutline,\n CheckIconOutline,\n FolderIconOutline,\n Neo4JIconColorIcon,\n} from '@neo4j-ndl/react/icons';\nimport { useRef, useState } from 'react';\n\nconst Component = () => {\n const [isOrganizationMenuOpen, setIsOrganizationMenuOpen] = useState(false);\n const organizationMenuRef = useRef<HTMLButtonElement>(null);\n\n return (\n <Breadcrumbs shouldWrap={false}>\n <Breadcrumbs.Item className=\"n-mr-token-8\">\n <button\n aria-label=\"Home\"\n className=\"n-rounded-sm focus-visible:n-outline-2 focus-visible:n-outline-offset-[3px] focus-visible:n-outline-primary-focus n-shrink-0\"\n >\n <Neo4JIconColorIcon className=\"n-h-6 n-w-[26px]\" />\n </button>\n </Breadcrumbs.Item>\n <Breadcrumbs.Item>\n <Breadcrumbs.Button leadingElement={<BuildingOffice2IconOutline />}>\n Organization 1\n </Breadcrumbs.Button>\n <Breadcrumbs.SelectButton\n ref={organizationMenuRef}\n ariaLabel=\"Open organization menu\"\n onClick={() => {\n setIsOrganizationMenuOpen(!isOrganizationMenuOpen);\n }}\n >\n <Menu\n anchorRef={organizationMenuRef}\n isOpen={isOrganizationMenuOpen}\n onClose={() => setIsOrganizationMenuOpen(false)}\n >\n <Menu.Items>\n <Menu.Item\n title=\"Organization 1\"\n leadingVisual={<CheckIconOutline />}\n />\n <Menu.Item title=\"Organization 2\" />\n <Menu.Divider />\n <Menu.Item title=\"All Organizations\" />\n </Menu.Items>\n </Menu>\n </Breadcrumbs.SelectButton>\n </Breadcrumbs.Item>\n <Breadcrumbs.Item>\n <Breadcrumbs.Button leadingElement={<FolderIconOutline />}>\n Project 1\n </Breadcrumbs.Button>\n <Breadcrumbs.SelectButton ariaLabel=\"Open project menu\"></Breadcrumbs.SelectButton>\n </Breadcrumbs.Item>\n </Breadcrumbs>\n );\n};\n\nexport default Component;\n"]}
1
+ {"version":3,"file":"breadcrumbs-header.story.js","sourceRoot":"","sources":["../../../../src/breadcrumbs/stories/breadcrumbs-header.story.tsx"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,yCAAyC,CAAC;AAEjD,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EACL,0BAA0B,EAC1B,iBAAiB,EACjB,kBAAkB,GACnB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAEzC,MAAM,SAAS,GAAG,GAAG,EAAE;IACrB,MAAM,CAAC,sBAAsB,EAAE,yBAAyB,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC5E,MAAM,mBAAmB,GAAG,MAAM,CAAoB,IAAI,CAAC,CAAC;IAE5D,OAAO,CACL,MAAC,WAAW,IAAC,UAAU,EAAE,KAAK,aAC5B,KAAC,WAAW,CAAC,IAAI,IAAC,SAAS,EAAC,cAAc,YACxC,+BACa,MAAM,EACjB,SAAS,EAAC,8HAA8H,YAExI,KAAC,kBAAkB,IAAC,SAAS,EAAC,kBAAkB,GAAG,GAC5C,GACQ,EACnB,MAAC,WAAW,CAAC,IAAI,eACf,KAAC,WAAW,CAAC,MAAM,IAAC,cAAc,EAAE,KAAC,0BAA0B,KAAG,+BAE7C,EACrB,KAAC,WAAW,CAAC,YAAY,IACvB,GAAG,EAAE,mBAAmB,EACxB,SAAS,EAAC,wBAAwB,EAClC,OAAO,EAAE,GAAG,EAAE;4BACZ,yBAAyB,CAAC,CAAC,sBAAsB,CAAC,CAAC;wBACrD,CAAC,YAED,MAAC,IAAI,IACH,SAAS,EAAE,mBAAmB,EAC9B,MAAM,EAAE,sBAAsB,EAC9B,OAAO,EAAE,GAAG,EAAE,CAAC,yBAAyB,CAAC,KAAK,CAAC,aAE/C,MAAC,IAAI,CAAC,KAAK,eACT,KAAC,IAAI,CAAC,SAAS,IAAC,KAAK,EAAC,gBAAgB,EAAC,SAAS,EAAE,IAAI,GAAI,EAC1D,KAAC,IAAI,CAAC,SAAS,IAAC,KAAK,EAAC,gBAAgB,EAAC,SAAS,EAAE,KAAK,GAAI,IAChD,EACb,KAAC,IAAI,CAAC,OAAO,KAAG,EAChB,KAAC,IAAI,CAAC,KAAK,cACT,KAAC,IAAI,CAAC,IAAI,IAAC,KAAK,EAAC,mBAAmB,GAAG,GAC5B,IACR,GACkB,IACV,EACnB,MAAC,WAAW,CAAC,IAAI,eACf,KAAC,WAAW,CAAC,MAAM,IAAC,cAAc,EAAE,KAAC,iBAAiB,KAAG,0BAEpC,EACrB,KAAC,WAAW,CAAC,YAAY,IAAC,SAAS,EAAC,mBAAmB,GAA4B,IAClE,IACP,CACf,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe,SAAS,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 '@neo4j-ndl/base/lib/neo4j-ds-styles.css';\n\nimport { Breadcrumbs, Menu } from '@neo4j-ndl/react';\nimport {\n BuildingOffice2IconOutline,\n FolderIconOutline,\n Neo4JIconColorIcon,\n} from '@neo4j-ndl/react/icons';\nimport { useRef, useState } from 'react';\n\nconst Component = () => {\n const [isOrganizationMenuOpen, setIsOrganizationMenuOpen] = useState(false);\n const organizationMenuRef = useRef<HTMLButtonElement>(null);\n\n return (\n <Breadcrumbs shouldWrap={false}>\n <Breadcrumbs.Item className=\"n-mr-token-8\">\n <button\n aria-label=\"Home\"\n className=\"n-rounded-sm focus-visible:n-outline-2 focus-visible:n-outline-offset-[3px] focus-visible:n-outline-primary-focus n-shrink-0\"\n >\n <Neo4JIconColorIcon className=\"n-h-6 n-w-[26px]\" />\n </button>\n </Breadcrumbs.Item>\n <Breadcrumbs.Item>\n <Breadcrumbs.Button leadingElement={<BuildingOffice2IconOutline />}>\n Organization 1\n </Breadcrumbs.Button>\n <Breadcrumbs.SelectButton\n ref={organizationMenuRef}\n ariaLabel=\"Open organization menu\"\n onClick={() => {\n setIsOrganizationMenuOpen(!isOrganizationMenuOpen);\n }}\n >\n <Menu\n anchorRef={organizationMenuRef}\n isOpen={isOrganizationMenuOpen}\n onClose={() => setIsOrganizationMenuOpen(false)}\n >\n <Menu.Group>\n <Menu.RadioItem title=\"Organization 1\" isChecked={true} />\n <Menu.RadioItem title=\"Organization 2\" isChecked={false} />\n </Menu.Group>\n <Menu.Divider />\n <Menu.Group>\n <Menu.Item title=\"All Organizations\" />\n </Menu.Group>\n </Menu>\n </Breadcrumbs.SelectButton>\n </Breadcrumbs.Item>\n <Breadcrumbs.Item>\n <Breadcrumbs.Button leadingElement={<FolderIconOutline />}>\n Project 1\n </Breadcrumbs.Button>\n <Breadcrumbs.SelectButton ariaLabel=\"Open project menu\"></Breadcrumbs.SelectButton>\n </Breadcrumbs.Item>\n </Breadcrumbs>\n );\n};\n\nexport default Component;\n"]}
@@ -139,7 +139,7 @@ const ActionCell = ({ cell, innerCleanIconButtonProps, innerMenuProps, }) => {
139
139
  } }, innerCleanIconButtonProps, { htmlAttributes: Object.assign({ tabIndex: 0 }, innerCleanIconButtonProps === null || innerCleanIconButtonProps === void 0 ? void 0 : innerCleanIconButtonProps.htmlAttributes), children: (innerCleanIconButtonProps === null || innerCleanIconButtonProps === void 0 ? void 0 : innerCleanIconButtonProps.children) || (_jsx(EllipsisHorizontalIconOutline, {})) })), _jsx(Menu, Object.assign({ isOpen: isActionsOpen, anchorRef: actionsButtonRef, onClose: () => {
140
140
  onOpenChange === null || onOpenChange === void 0 ? void 0 : onOpenChange(false);
141
141
  setIsActionsOpen(false);
142
- } }, innerMenuProps, { portalTarget: portalTarget, children: (innerMenuProps === null || innerMenuProps === void 0 ? void 0 : innerMenuProps.children) || (_jsx(Menu.Items, { children: actions.map((action, i) => components.ActionButton && (_jsx(components.ActionButton, { action: Object.assign(Object.assign({}, action), { onClick: (e) => {
142
+ } }, innerMenuProps, { portalTarget: portalTarget, children: (innerMenuProps === null || innerMenuProps === void 0 ? void 0 : innerMenuProps.children) || (_jsx(_Fragment, { children: actions.map((action, i) => components.ActionButton && (_jsx(components.ActionButton, { action: Object.assign(Object.assign({}, action), { onClick: (e) => {
143
143
  var _a;
144
144
  (_a = action.onClick) === null || _a === void 0 ? void 0 : _a.call(action, e, cell);
145
145
  } }), onClose: () => setIsActionsOpen(false) }, `${cell.column.id}-action-${i}`))) })) }))] }));
@@ -188,7 +188,7 @@ export const ColumnControls = (_a) => {
188
188
  setIsActionsOpen(!isActionsOpen);
189
189
  }, htmlAttributes: {
190
190
  tabIndex: 0,
191
- }, children: _jsx(ChevronDownIconSolid, {}) }), _jsx(Menu, { isOpen: isActionsOpen, anchorRef: actionsButtonRef, onClose: () => setIsActionsOpen(false), portalTarget: portalTarget, children: _jsx(Menu.Items, { children: newActions.map((action, i) => components.ActionButton && (_jsx(components.ActionButton, { action: action, onClose: () => setIsActionsOpen(false) }, `${cell.column.id}-action-${i}`))) }) })] })) }))) : null;
191
+ }, children: _jsx(ChevronDownIconSolid, {}) }), _jsx(Menu, { isOpen: isActionsOpen, anchorRef: actionsButtonRef, onClose: () => setIsActionsOpen(false), portalTarget: portalTarget, children: newActions.map((action, i) => components.ActionButton && (_jsx(components.ActionButton, { action: action, onClose: () => setIsActionsOpen(false) }, `${cell.column.id}-action-${i}`))) })] })) }))) : null;
192
192
  };
193
193
  const HeaderCell = (_a) => {
194
194
  var { cell, children, className, style, htmlAttributes, ref } = _a, restProps = __rest(_a, ["cell", "children", "className", "style", "htmlAttributes", "ref"]);