@wallarm-org/design-system 0.78.1 → 0.80.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (96) hide show
  1. package/dist/components/Button/Button.d.ts +1 -1
  2. package/dist/components/Code/Code.d.ts +1 -1
  3. package/dist/components/FilterInput/FilterInputErrors/parseFilterInputErrors.js +2 -2
  4. package/dist/components/FilterInput/FilterInputField/ChipsWithGaps.js +1 -1
  5. package/dist/components/FilterInput/FilterInputMenu/FilterInputValueMenu/FilterInputValueMenu.d.ts +21 -3
  6. package/dist/components/FilterInput/FilterInputMenu/FilterInputValueMenu/FilterInputValueMenu.js +10 -75
  7. package/dist/components/FilterInput/FilterInputMenu/FilterInputValueMenu/FlatValueMenu.d.ts +8 -0
  8. package/dist/components/FilterInput/FilterInputMenu/FilterInputValueMenu/FlatValueMenu.js +81 -0
  9. package/dist/components/FilterInput/FilterInputMenu/FilterInputValueMenu/NestedValueMenu.d.ts +10 -0
  10. package/dist/components/FilterInput/FilterInputMenu/FilterInputValueMenu/NestedValueMenu.js +145 -0
  11. package/dist/components/FilterInput/FilterInputMenu/FilterInputValueMenu/NestedValueMenuItem.d.ts +26 -0
  12. package/dist/components/FilterInput/FilterInputMenu/FilterInputValueMenu/NestedValueMenuItem.js +54 -0
  13. package/dist/components/FilterInput/FilterInputMenu/FilterInputValueMenu/ValueMenuFooterHints.d.ts +12 -0
  14. package/dist/components/FilterInput/FilterInputMenu/FilterInputValueMenu/ValueMenuFooterHints.js +69 -0
  15. package/dist/components/FilterInput/FilterInputMenu/FilterInputValueMenu/useNestedValueMenuState.d.ts +65 -0
  16. package/dist/components/FilterInput/FilterInputMenu/FilterInputValueMenu/useNestedValueMenuState.js +293 -0
  17. package/dist/components/FilterInput/FilterInputMenu/hooks/useKeyboardNav.d.ts +3 -1
  18. package/dist/components/FilterInput/FilterInputMenu/hooks/useKeyboardNav.js +20 -1
  19. package/dist/components/FilterInput/hooks/useFilterInputAutocomplete/lib/deriveAutocompleteValues.js +3 -3
  20. package/dist/components/FilterInput/hooks/useFilterInputAutocomplete/lib/valueResolution.js +5 -5
  21. package/dist/components/FilterInput/hooks/useFilterInputExpression/buildChips.js +2 -2
  22. package/dist/components/FilterInput/lib/buildValueMenuSections.d.ts +33 -0
  23. package/dist/components/FilterInput/lib/buildValueMenuSections.js +68 -0
  24. package/dist/components/FilterInput/lib/collapseValuesToLabels.d.ts +32 -0
  25. package/dist/components/FilterInput/lib/collapseValuesToLabels.js +55 -0
  26. package/dist/components/FilterInput/lib/fields.d.ts +19 -7
  27. package/dist/components/FilterInput/lib/fields.js +18 -4
  28. package/dist/components/FilterInput/lib/index.d.ts +3 -1
  29. package/dist/components/FilterInput/lib/index.js +3 -1
  30. package/dist/components/FilterInput/lib/validation.js +2 -2
  31. package/dist/components/FilterInput/types.d.ts +31 -2
  32. package/dist/components/Heading/Heading.d.ts +1 -1
  33. package/dist/components/Link/classes.d.ts +1 -1
  34. package/dist/components/Text/Text.d.ts +1 -1
  35. package/dist/components/ToggleButton/ToggleButton.d.ts +1 -1
  36. package/dist/icons/AudioWaveform.d.ts +3 -0
  37. package/dist/icons/AudioWaveform.js +15 -0
  38. package/dist/icons/BellCog.d.ts +3 -0
  39. package/dist/icons/BellCog.js +15 -0
  40. package/dist/icons/Brain.d.ts +3 -0
  41. package/dist/icons/Brain.js +15 -0
  42. package/dist/icons/Collapse.d.ts +3 -0
  43. package/dist/icons/Collapse.js +15 -0
  44. package/dist/icons/Dot.js +3 -3
  45. package/dist/icons/Duplicate.d.ts +3 -0
  46. package/dist/icons/Duplicate.js +15 -0
  47. package/dist/icons/Expand.d.ts +3 -0
  48. package/dist/icons/Expand.js +15 -0
  49. package/dist/icons/FastForward.d.ts +3 -0
  50. package/dist/icons/FastForward.js +15 -0
  51. package/dist/icons/FilePlus.d.ts +3 -0
  52. package/dist/icons/FilePlus.js +15 -0
  53. package/dist/icons/GitBranch.d.ts +3 -0
  54. package/dist/icons/GitBranch.js +15 -0
  55. package/dist/icons/Plug.d.ts +3 -0
  56. package/dist/icons/Plug.js +15 -0
  57. package/dist/icons/ProviderIcon/ProviderIcon.d.ts +7 -0
  58. package/dist/icons/ProviderIcon/ProviderIcon.js +11 -0
  59. package/dist/icons/ProviderIcon/index.d.ts +2 -0
  60. package/dist/icons/ProviderIcon/index.js +1 -0
  61. package/dist/icons/ProviderIcon/paths/index.d.ts +3 -0
  62. package/dist/icons/ProviderIcon/paths/index.js +896 -0
  63. package/dist/icons/ProviderIcon/types.d.ts +1 -0
  64. package/dist/icons/ProviderIcon/types.js +0 -0
  65. package/dist/icons/Radar.d.ts +3 -0
  66. package/dist/icons/Radar.js +15 -0
  67. package/dist/icons/Rss.d.ts +3 -0
  68. package/dist/icons/Rss.js +15 -0
  69. package/dist/icons/ScrollText.d.ts +3 -0
  70. package/dist/icons/ScrollText.js +15 -0
  71. package/dist/icons/Signpost.d.ts +3 -0
  72. package/dist/icons/Signpost.js +15 -0
  73. package/dist/icons/SocialIcon/SocialIcon.d.ts +8 -0
  74. package/dist/icons/SocialIcon/SocialIcon.js +15 -0
  75. package/dist/icons/SocialIcon/index.d.ts +2 -0
  76. package/dist/icons/SocialIcon/index.js +1 -0
  77. package/dist/icons/SocialIcon/paths/index.d.ts +3 -0
  78. package/dist/icons/SocialIcon/paths/index.js +2542 -0
  79. package/dist/icons/SocialIcon/types.d.ts +2 -0
  80. package/dist/icons/SocialIcon/types.js +0 -0
  81. package/dist/icons/SquareUserRound.d.ts +3 -0
  82. package/dist/icons/SquareUserRound.js +15 -0
  83. package/dist/icons/ThumbsDown.d.ts +3 -0
  84. package/dist/icons/ThumbsDown.js +15 -0
  85. package/dist/icons/ThumbsUp.d.ts +3 -0
  86. package/dist/icons/ThumbsUp.js +15 -0
  87. package/dist/icons/UsersRound.d.ts +3 -0
  88. package/dist/icons/UsersRound.js +15 -0
  89. package/dist/icons/index.d.ts +20 -0
  90. package/dist/icons/index.js +20 -0
  91. package/dist/icons/module/Icons.figma.js +55 -1
  92. package/dist/icons/module/const.js +19 -2
  93. package/dist/metadata/components.json +2 -2
  94. package/package.json +1 -1
  95. package/dist/components/FilterInput/FilterInputMenu/FilterInputValueMenu/ValueMenuFooter.d.ts +0 -6
  96. package/dist/components/FilterInput/FilterInputMenu/FilterInputValueMenu/ValueMenuFooter.js +0 -72
@@ -0,0 +1 @@
1
+ export type ProviderIconName = 'braze' | 'brevo' | 'discord' | 'infobip' | 'mailersend' | 'mailgun' | 'mailjet' | 'mailtrap' | 'mandrill' | 'maqsam' | 'mattermost' | 'netcore' | 'outlook365' | 'plunk' | 'postmark' | 'resend' | 'sendgrid' | 'ses' | 'slack' | 'smtp' | 'sparkpost' | 'teams' | 'telegram' | 'webhook' | 'whatsapp' | 'zulip';
File without changes
@@ -0,0 +1,3 @@
1
+ import type { FC } from 'react';
2
+ import { type SvgIconProps } from './SvgIcon';
3
+ export declare const Radar: FC<SvgIconProps>;
@@ -0,0 +1,15 @@
1
+ import { jsx } from "react/jsx-runtime";
2
+ import { SvgIcon } from "./SvgIcon.js";
3
+ const Radar = (props)=>/*#__PURE__*/ jsx(SvgIcon, {
4
+ ...props,
5
+ viewBox: "0 0 24 24",
6
+ children: /*#__PURE__*/ jsx("g", {
7
+ transform: "translate(1, 0.9964)",
8
+ children: /*#__PURE__*/ jsx("path", {
9
+ d: "M19.943 6.42216C20.457 6.22054 21.0371 6.47359 21.2389 6.98759C21.8709 8.59752 22.1147 10.3343 21.9498 12.056C21.7849 13.7775 21.2157 15.4361 20.2897 16.8968C19.3637 18.3573 18.1064 19.5796 16.6198 20.4632C15.133 21.3467 13.4578 21.8675 11.7321 21.9827C10.0066 22.0978 8.27805 21.8043 6.68716 21.1263C5.09607 20.4481 3.68693 19.4041 2.57486 18.0794C1.46293 16.7548 0.679111 15.1866 0.286777 13.5023C-0.105507 11.8178 -0.0952584 10.0637 0.31705 8.38408C0.448822 7.84813 0.989997 7.52042 1.52603 7.65166C2.06239 7.78334 2.39111 8.32526 2.25943 8.86162C1.9222 10.2357 1.91319 11.6702 2.23404 13.0481C2.55504 14.4263 3.19626 15.7104 4.10611 16.7943C5.01597 17.8781 6.16956 18.7316 7.47134 19.2864C8.77303 19.8412 10.1874 20.0818 11.5993 19.9876C13.0111 19.8933 14.3809 19.4663 15.5973 18.7435C16.8137 18.0205 17.8435 17.0206 18.6012 15.8255C19.3587 14.6305 19.8237 13.273 19.9586 11.8646C20.0934 10.456 19.8946 9.03519 19.3776 7.71806C19.1758 7.2041 19.4292 6.6241 19.943 6.42216ZM11.0084 16.0023C11.5605 16.0024 12.0083 16.4502 12.0084 17.0023C12.0084 17.5544 11.5606 18.0021 11.0084 18.0023H10.9987C10.4464 18.0023 9.99868 17.5545 9.99868 17.0023C9.99884 16.4501 10.4465 16.0023 10.9987 16.0023H11.0084ZM5.48697 1.47684C7.58498 0.263884 10.0257 -0.222097 12.4284 0.0940244C14.8311 0.410273 17.0623 1.51143 18.775 3.22587C19.1653 3.6166 19.1658 4.2506 18.775 4.64091C18.7716 4.64433 18.7678 4.64731 18.7643 4.65067L13.7028 9.71123C13.89 10.1027 13.9986 10.5394 13.9987 11.0022C13.9987 12.659 12.6554 14.0021 10.9987 14.0023C9.34183 14.0023 7.99868 12.6591 7.99868 11.0022C7.99885 9.34553 9.34193 8.00224 10.9987 8.00224C11.4611 8.00229 11.8976 8.11027 12.2887 8.29716L13.7555 6.83036C13.4704 6.64042 13.1649 6.48009 12.8454 6.35185C12.2142 6.09867 11.5369 5.97734 10.8571 5.99443C10.1774 6.0116 9.50782 6.16688 8.89029 6.45146C8.27264 6.73613 7.71899 7.14395 7.26431 7.6497C6.80982 8.15531 6.46329 8.74876 6.24576 9.39287C6.02827 10.0372 5.9446 10.72 5.99966 11.3978C6.05479 12.0755 6.24742 12.7356 6.56607 13.3362C6.88482 13.9369 7.32383 14.4663 7.85415 14.8919C8.28485 15.2375 8.35303 15.8674 8.00747 16.2982C7.66183 16.7286 7.03285 16.7978 6.6022 16.4525C5.85967 15.8565 5.24576 15.1148 4.79947 14.2737C4.35327 13.4327 4.08369 12.5088 4.0065 11.5599C3.92939 10.6109 4.04575 9.6553 4.35025 8.75322C4.65478 7.85129 5.14062 7.02076 5.77701 6.31279C6.41361 5.60467 7.18859 5.03359 8.05337 4.63505C8.91811 4.23655 9.85544 4.01838 10.8073 3.99442C11.759 3.97052 12.7059 4.14192 13.5895 4.49638C14.1609 4.72566 14.6982 5.02972 15.1881 5.39774L16.6129 3.97294C15.3362 2.95185 13.801 2.29243 12.1676 2.07743C10.202 1.81878 8.20539 2.21608 6.48892 3.20829C6.01091 3.48429 5.39811 3.3209 5.12173 2.84305C4.84589 2.36522 5.00953 1.75334 5.48697 1.47684ZM16.9313 9.66435C17.4826 9.63292 17.9553 10.0545 17.987 10.6058C18.0503 11.7155 17.8484 12.8249 17.3981 13.8411C16.9477 14.8575 16.2609 15.752 15.3961 16.4505C14.9665 16.7972 14.3368 16.7306 13.9899 16.3011C13.643 15.8715 13.7107 15.2418 14.1403 14.8948C14.7579 14.3959 15.2473 13.7565 15.569 13.0306C15.8907 12.3046 16.0352 11.5118 15.9899 10.719C15.9587 10.168 16.3802 9.69595 16.9313 9.66435ZM10.9987 10.0022C10.4465 10.0022 9.99885 10.4501 9.99868 11.0022C9.99868 11.5545 10.4464 12.0022 10.9987 12.0022C11.5508 12.0021 11.9987 11.5544 11.9987 11.0022C11.9986 10.7499 11.904 10.52 11.7497 10.344C11.7333 10.3297 11.7164 10.3157 11.7008 10.3001C11.6849 10.2842 11.6705 10.267 11.6559 10.2503C11.4801 10.0965 11.2506 10.0023 10.9987 10.0022ZM3.00845 4.00223C3.56049 4.00241 4.00829 4.45019 4.00845 5.00224C4.00845 5.55441 3.56059 6.00206 3.00845 6.00224H2.99869C2.4464 6.00224 1.99869 5.55452 1.99869 5.00224C1.99885 4.45009 2.4465 4.00223 2.99869 4.00223H3.00845Z",
10
+ fill: "currentColor"
11
+ })
12
+ })
13
+ });
14
+ Radar.displayName = 'RadarIcon';
15
+ export { Radar };
@@ -0,0 +1,3 @@
1
+ import type { FC } from 'react';
2
+ import { type SvgIconProps } from './SvgIcon';
3
+ export declare const Rss: FC<SvgIconProps>;
@@ -0,0 +1,15 @@
1
+ import { jsx } from "react/jsx-runtime";
2
+ import { SvgIcon } from "./SvgIcon.js";
3
+ const Rss = (props)=>/*#__PURE__*/ jsx(SvgIcon, {
4
+ ...props,
5
+ viewBox: "0 0 24 24",
6
+ children: /*#__PURE__*/ jsx("g", {
7
+ transform: "translate(3, 3)",
8
+ children: /*#__PURE__*/ jsx("path", {
9
+ d: "M2 14C3.10457 14 4 14.8954 4 16C4 17.1046 3.10457 18 2 18C0.89543 18 0 17.1046 0 16C0 14.8954 0.89543 14 2 14ZM1 7C3.65216 7 6.19593 8.05335 8.07129 9.92871C9.94665 11.8041 11 14.3478 11 17C11 17.5523 10.5523 18 10 18C9.44771 18 9 17.5523 9 17C9 14.8783 8.15752 12.8431 6.65723 11.3428C5.15694 9.84248 3.12173 9 1 9C0.447715 9 0 8.55228 0 8C0 7.44772 0.447715 7 1 7ZM1 0C5.50868 0 9.83239 1.79137 13.0205 4.97949C16.2086 8.16761 18 12.4913 18 17C18 17.5523 17.5523 18 17 18C16.4477 18 16 17.5523 16 17C16 13.0218 14.4195 9.2066 11.6064 6.39355C8.7934 3.58051 4.97825 2 1 2C0.447715 2 0 1.55228 0 1C0 0.447715 0.447715 0 1 0Z",
10
+ fill: "currentColor"
11
+ })
12
+ })
13
+ });
14
+ Rss.displayName = 'RssIcon';
15
+ export { Rss };
@@ -0,0 +1,3 @@
1
+ import type { FC } from 'react';
2
+ import { type SvgIconProps } from './SvgIcon';
3
+ export declare const ScrollText: FC<SvgIconProps>;
@@ -0,0 +1,15 @@
1
+ import { jsx } from "react/jsx-runtime";
2
+ import { SvgIcon } from "./SvgIcon.js";
3
+ const ScrollText = (props)=>/*#__PURE__*/ jsx(SvgIcon, {
4
+ ...props,
5
+ viewBox: "0 0 24 24",
6
+ children: /*#__PURE__*/ jsx("g", {
7
+ transform: "translate(1, 2)",
8
+ children: /*#__PURE__*/ jsx("path", {
9
+ d: "M16 0C16.7956 0 17.5585 0.316297 18.1211 0.878906C18.6837 1.44152 19 2.20435 19 3V14H20C20.5304 14 21.039 14.2109 21.4141 14.5859C21.7891 14.961 22 15.4696 22 16V17C22 17.7957 21.6837 18.5585 21.1211 19.1211C20.5585 19.6837 19.7957 20 19 20H7C6.20435 20 5.44152 19.6837 4.87891 19.1211C4.3163 18.5585 4 17.7957 4 17V7H2C1.46957 7 0.96101 6.78913 0.585938 6.41406C0.210865 6.03899 0 5.53043 0 5V3C0 2.20435 0.316297 1.44152 0.878906 0.878906C1.41681 0.340999 2.13786 0.0313094 2.89551 0.00488281C2.92984 0.00132041 2.96473 0 3 0H16ZM5.82422 2C5.93709 2.31856 6 2.65556 6 3V17C6 17.2652 6.10543 17.5195 6.29297 17.707C6.48051 17.8946 6.73478 18 7 18C7.26522 18 7.51949 17.8946 7.70703 17.707C7.89457 17.5195 8 17.2652 8 17V16C8 15.4696 8.21086 14.961 8.58594 14.5859C8.96101 14.2109 9.46957 14 10 14H17V3C17 2.73478 16.8946 2.48051 16.707 2.29297C16.5195 2.10543 16.2652 2 16 2H5.82422ZM10 17C10 17.3444 9.93703 17.6814 9.82422 18H19C19.2652 18 19.5195 17.8946 19.707 17.707C19.8946 17.5195 20 17.2652 20 17V16H10V17ZM14 9C14.5523 9 15 9.44772 15 10C15 10.5523 14.5523 11 14 11H9C8.44772 11 8 10.5523 8 10C8 9.44772 8.44772 9 9 9H14ZM14 5C14.5523 5 15 5.44772 15 6C15 6.55228 14.5523 7 14 7H9C8.44772 7 8 6.55228 8 6C8 5.44772 8.44772 5 9 5H14ZM3 2C2.73478 2 2.4805 2.10543 2.29297 2.29297C2.10543 2.4805 2 2.73478 2 3V5H4V3C4 2.73478 3.89457 2.4805 3.70703 2.29297C3.5195 2.10543 3.26522 2 3 2Z",
10
+ fill: "currentColor"
11
+ })
12
+ })
13
+ });
14
+ ScrollText.displayName = 'ScrollTextIcon';
15
+ export { ScrollText };
@@ -0,0 +1,3 @@
1
+ import type { FC } from 'react';
2
+ import { type SvgIconProps } from './SvgIcon';
3
+ export declare const Signpost: FC<SvgIconProps>;
@@ -0,0 +1,15 @@
1
+ import { jsx } from "react/jsx-runtime";
2
+ import { SvgIcon } from "./SvgIcon.js";
3
+ const Signpost = (props)=>/*#__PURE__*/ jsx(SvgIcon, {
4
+ ...props,
5
+ viewBox: "0 0 24 24",
6
+ children: /*#__PURE__*/ jsx("g", {
7
+ transform: "translate(1, 2)",
8
+ children: /*#__PURE__*/ jsx("path", {
9
+ d: "M11 0C11.5523 0 12 0.447715 12 1V3H17.1719C17.9674 3.00018 18.7305 3.31639 19.293 3.87891L21.3535 5.93848H21.3525C21.5578 6.14345 21.721 6.38734 21.832 6.65527C21.943 6.92308 22 7.21013 22 7.5C22 7.78987 21.943 8.07692 21.832 8.34473C21.721 8.61248 21.5576 8.85566 21.3525 9.06055L21.3535 9.06152L19.293 11.1211C18.7305 11.6836 17.9674 11.9998 17.1719 12H12V19C12 19.5523 11.5523 20 11 20C10.4477 20 10 19.5523 10 19V12H4.82812C4.13198 11.9999 3.46049 11.7578 2.92676 11.3203L2.70703 11.1211L0.646484 9.06152L0.647461 9.06055C0.442452 8.85567 0.278968 8.61247 0.167969 8.34473C0.0570268 8.07693 0 7.78987 0 7.5C0 7.21013 0.0570268 6.92307 0.167969 6.65527C0.27905 6.38734 0.442239 6.14345 0.647461 5.93848L2.70703 3.87891L2.92676 3.67969C3.46049 3.24223 4.13198 3.00015 4.82812 3H10V1C10 0.447715 10.4477 0 11 0ZM4.82812 5C4.56299 5.00009 4.30855 5.10546 4.12109 5.29297L2.06152 7.35352H2.06055C2.04134 7.37272 2.02603 7.3958 2.01562 7.4209C2.00526 7.44597 2 7.47287 2 7.5C2 7.52713 2.00526 7.55403 2.01562 7.5791C2.02603 7.6042 2.04134 7.62728 2.06055 7.64648H2.06152L4.12109 9.70703C4.30855 9.89454 4.56299 9.99991 4.82812 10H17.1719L17.2705 9.99512C17.4995 9.97237 17.7148 9.87117 17.8789 9.70703L19.9385 7.64648H19.9395C19.9587 7.62727 19.974 7.60421 19.9844 7.5791C19.9947 7.55403 20 7.52714 20 7.5C20 7.47286 19.9947 7.44597 19.9844 7.4209C19.974 7.39579 19.9587 7.37273 19.9395 7.35352H19.9385L17.8789 5.29297C17.7148 5.12883 17.4995 5.02763 17.2705 5.00488L17.1719 5H4.82812Z",
10
+ fill: "currentColor"
11
+ })
12
+ })
13
+ });
14
+ Signpost.displayName = 'SignpostIcon';
15
+ export { Signpost };
@@ -0,0 +1,8 @@
1
+ import type { FC } from 'react';
2
+ import { type SvgIconProps } from '../SvgIcon';
3
+ import type { SocialIconName, SocialIconTone } from './types';
4
+ export interface SocialIconProps extends Omit<SvgIconProps, 'children'> {
5
+ name: SocialIconName;
6
+ tone?: SocialIconTone;
7
+ }
8
+ export declare const SocialIcon: FC<SocialIconProps>;
@@ -0,0 +1,15 @@
1
+ import { jsx } from "react/jsx-runtime";
2
+ import { SvgIcon } from "../SvgIcon.js";
3
+ import { socialIconPaths } from "./paths/index.js";
4
+ const SocialIcon = ({ name, tone = 'original', ...props })=>{
5
+ const variants = socialIconPaths[name];
6
+ const content = variants[tone] ?? variants.original ?? variants.neutral;
7
+ return /*#__PURE__*/ jsx(SvgIcon, {
8
+ ...props,
9
+ viewBox: "0 0 24 24",
10
+ "data-slot": "social-icon",
11
+ children: content
12
+ });
13
+ };
14
+ SocialIcon.displayName = 'SocialIcon';
15
+ export { SocialIcon };
@@ -0,0 +1,2 @@
1
+ export { SocialIcon, type SocialIconProps } from './SocialIcon';
2
+ export type { SocialIconName, SocialIconTone } from './types';
@@ -0,0 +1 @@
1
+ export { SocialIcon } from "./SocialIcon.js";
@@ -0,0 +1,3 @@
1
+ import type { ReactNode } from 'react';
2
+ import type { SocialIconName, SocialIconTone } from '../types';
3
+ export declare const socialIconPaths: Record<SocialIconName, Partial<Record<SocialIconTone, ReactNode>>>;