@backstage/ui 0.12.0 → 0.13.0-next.1

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 (189) hide show
  1. package/CHANGELOG.md +120 -0
  2. package/dist/components/Accordion/Accordion.esm.js +4 -2
  3. package/dist/components/Accordion/Accordion.esm.js.map +1 -1
  4. package/dist/components/Accordion/Accordion.module.css.esm.js +2 -2
  5. package/dist/components/Accordion/definition.esm.js +4 -2
  6. package/dist/components/Accordion/definition.esm.js.map +1 -1
  7. package/dist/components/Alert/definition.esm.js +1 -1
  8. package/dist/components/Avatar/Avatar.esm.js +8 -28
  9. package/dist/components/Avatar/Avatar.esm.js.map +1 -1
  10. package/dist/components/Avatar/definition.esm.js +17 -4
  11. package/dist/components/Avatar/definition.esm.js.map +1 -1
  12. package/dist/components/Box/definition.esm.js +1 -1
  13. package/dist/components/Button/definition.esm.js +2 -3
  14. package/dist/components/Button/definition.esm.js.map +1 -1
  15. package/dist/components/ButtonIcon/definition.esm.js +2 -3
  16. package/dist/components/ButtonIcon/definition.esm.js.map +1 -1
  17. package/dist/components/ButtonLink/definition.esm.js +2 -3
  18. package/dist/components/ButtonLink/definition.esm.js.map +1 -1
  19. package/dist/components/Card/Card.esm.js +1 -1
  20. package/dist/components/Card/Card.esm.js.map +1 -1
  21. package/dist/components/Card/definition.esm.js +1 -1
  22. package/dist/components/Checkbox/Checkbox.esm.js +10 -17
  23. package/dist/components/Checkbox/Checkbox.esm.js.map +1 -1
  24. package/dist/components/Checkbox/definition.esm.js +16 -5
  25. package/dist/components/Checkbox/definition.esm.js.map +1 -1
  26. package/dist/components/Container/Container.esm.js +8 -13
  27. package/dist/components/Container/Container.esm.js.map +1 -1
  28. package/dist/components/Container/Container.module.css.esm.js +2 -2
  29. package/dist/components/Container/definition.esm.js +16 -2
  30. package/dist/components/Container/definition.esm.js.map +1 -1
  31. package/dist/components/Dialog/Dialog.esm.js +26 -59
  32. package/dist/components/Dialog/Dialog.esm.js.map +1 -1
  33. package/dist/components/Dialog/Dialog.module.css.esm.js +2 -2
  34. package/dist/components/Dialog/definition.esm.js +52 -8
  35. package/dist/components/Dialog/definition.esm.js.map +1 -1
  36. package/dist/components/FieldError/FieldError.esm.js +4 -13
  37. package/dist/components/FieldError/FieldError.esm.js.map +1 -1
  38. package/dist/components/FieldError/definition.esm.js +14 -2
  39. package/dist/components/FieldError/definition.esm.js.map +1 -1
  40. package/dist/components/FieldLabel/FieldLabel.esm.js +14 -59
  41. package/dist/components/FieldLabel/FieldLabel.esm.js.map +1 -1
  42. package/dist/components/FieldLabel/definition.esm.js +19 -2
  43. package/dist/components/FieldLabel/definition.esm.js.map +1 -1
  44. package/dist/components/Flex/Flex.esm.js +11 -22
  45. package/dist/components/Flex/Flex.esm.js.map +1 -1
  46. package/dist/components/Flex/definition.esm.js +19 -13
  47. package/dist/components/Flex/definition.esm.js.map +1 -1
  48. package/dist/components/FullPage/FullPage.esm.js +4 -13
  49. package/dist/components/FullPage/FullPage.esm.js.map +1 -1
  50. package/dist/components/FullPage/definition.esm.js +14 -2
  51. package/dist/components/FullPage/definition.esm.js.map +1 -1
  52. package/dist/components/Grid/Grid.esm.js +19 -40
  53. package/dist/components/Grid/Grid.esm.js.map +1 -1
  54. package/dist/components/Grid/definition.esm.js +30 -26
  55. package/dist/components/Grid/definition.esm.js.map +1 -1
  56. package/dist/components/HeaderPage/HeaderPage.esm.js +38 -60
  57. package/dist/components/HeaderPage/HeaderPage.esm.js.map +1 -1
  58. package/dist/components/HeaderPage/definition.esm.js +18 -2
  59. package/dist/components/HeaderPage/definition.esm.js.map +1 -1
  60. package/dist/components/Link/Link.esm.js +6 -34
  61. package/dist/components/Link/Link.esm.js.map +1 -1
  62. package/dist/components/Link/definition.esm.js +20 -15
  63. package/dist/components/Link/definition.esm.js.map +1 -1
  64. package/dist/components/Menu/Menu.esm.js +162 -343
  65. package/dist/components/Menu/Menu.esm.js.map +1 -1
  66. package/dist/components/Menu/Menu.module.css.esm.js +2 -2
  67. package/dist/components/Menu/definition.esm.js +113 -17
  68. package/dist/components/Menu/definition.esm.js.map +1 -1
  69. package/dist/components/PasswordField/PasswordField.esm.js +17 -52
  70. package/dist/components/PasswordField/PasswordField.esm.js.map +1 -1
  71. package/dist/components/PasswordField/PasswordField.module.css.esm.js +2 -2
  72. package/dist/components/PasswordField/definition.esm.js +28 -11
  73. package/dist/components/PasswordField/definition.esm.js.map +1 -1
  74. package/dist/components/PluginHeader/PluginHeader.esm.js +33 -46
  75. package/dist/components/PluginHeader/PluginHeader.esm.js.map +1 -1
  76. package/dist/components/PluginHeader/PluginHeader.module.css.esm.js +2 -2
  77. package/dist/components/PluginHeader/definition.esm.js +21 -3
  78. package/dist/components/PluginHeader/definition.esm.js.map +1 -1
  79. package/dist/components/Popover/Popover.esm.js +24 -32
  80. package/dist/components/Popover/Popover.esm.js.map +1 -1
  81. package/dist/components/Popover/Popover.module.css.esm.js +2 -2
  82. package/dist/components/Popover/definition.esm.js +16 -2
  83. package/dist/components/Popover/definition.esm.js.map +1 -1
  84. package/dist/components/RadioGroup/RadioGroup.esm.js +25 -44
  85. package/dist/components/RadioGroup/RadioGroup.esm.js.map +1 -1
  86. package/dist/components/RadioGroup/RadioGroup.module.css.esm.js +2 -2
  87. package/dist/components/RadioGroup/definition.esm.js +30 -5
  88. package/dist/components/RadioGroup/definition.esm.js.map +1 -1
  89. package/dist/components/SearchField/SearchField.esm.js +25 -45
  90. package/dist/components/SearchField/SearchField.esm.js.map +1 -1
  91. package/dist/components/SearchField/SearchField.module.css.esm.js +2 -2
  92. package/dist/components/SearchField/definition.esm.js +20 -5
  93. package/dist/components/SearchField/definition.esm.js.map +1 -1
  94. package/dist/components/Select/Select.esm.js +14 -23
  95. package/dist/components/Select/Select.esm.js.map +1 -1
  96. package/dist/components/Select/Select.module.css.esm.js +2 -2
  97. package/dist/components/Select/SelectContent.esm.js +8 -31
  98. package/dist/components/Select/SelectContent.esm.js.map +1 -1
  99. package/dist/components/Select/SelectListBox.esm.js +21 -44
  100. package/dist/components/Select/SelectListBox.esm.js.map +1 -1
  101. package/dist/components/Select/SelectTrigger.esm.js +8 -14
  102. package/dist/components/Select/SelectTrigger.esm.js.map +1 -1
  103. package/dist/components/Select/definition.esm.js +67 -17
  104. package/dist/components/Select/definition.esm.js.map +1 -1
  105. package/dist/components/Skeleton/Skeleton.esm.js +9 -13
  106. package/dist/components/Skeleton/Skeleton.esm.js.map +1 -1
  107. package/dist/components/Skeleton/definition.esm.js +18 -2
  108. package/dist/components/Skeleton/definition.esm.js.map +1 -1
  109. package/dist/components/Switch/Switch.esm.js +7 -22
  110. package/dist/components/Switch/Switch.esm.js.map +1 -1
  111. package/dist/components/Switch/definition.esm.js +15 -2
  112. package/dist/components/Switch/definition.esm.js.map +1 -1
  113. package/dist/components/Table/components/Cell.esm.js +4 -17
  114. package/dist/components/Table/components/Cell.esm.js.map +1 -1
  115. package/dist/components/Table/components/CellProfile.esm.js +12 -41
  116. package/dist/components/Table/components/CellProfile.esm.js.map +1 -1
  117. package/dist/components/Table/components/CellText.esm.js +39 -73
  118. package/dist/components/Table/components/CellText.esm.js.map +1 -1
  119. package/dist/components/Table/components/Column.esm.js +8 -36
  120. package/dist/components/Table/components/Column.esm.js.map +1 -1
  121. package/dist/components/Table/components/Row.esm.js +9 -19
  122. package/dist/components/Table/components/Row.esm.js.map +1 -1
  123. package/dist/components/Table/components/Table.esm.js +7 -0
  124. package/dist/components/Table/components/Table.esm.js.map +1 -1
  125. package/dist/components/Table/components/TableBody.esm.js +4 -12
  126. package/dist/components/Table/components/TableBody.esm.js.map +1 -1
  127. package/dist/components/Table/components/TableHeader.esm.js +19 -29
  128. package/dist/components/Table/components/TableHeader.esm.js.map +1 -1
  129. package/dist/components/Table/components/TableRoot.esm.js +5 -7
  130. package/dist/components/Table/components/TableRoot.esm.js.map +1 -1
  131. package/dist/components/Table/definition.esm.js +97 -21
  132. package/dist/components/Table/definition.esm.js.map +1 -1
  133. package/dist/components/TablePagination/TablePagination.esm.js +24 -32
  134. package/dist/components/TablePagination/TablePagination.esm.js.map +1 -1
  135. package/dist/components/TablePagination/definition.esm.js +32 -2
  136. package/dist/components/TablePagination/definition.esm.js.map +1 -1
  137. package/dist/components/Tabs/Tabs.esm.js +40 -63
  138. package/dist/components/Tabs/Tabs.esm.js.map +1 -1
  139. package/dist/components/Tabs/TabsIndicators.esm.js +6 -18
  140. package/dist/components/Tabs/TabsIndicators.esm.js.map +1 -1
  141. package/dist/components/Tabs/definition.esm.js +62 -10
  142. package/dist/components/Tabs/definition.esm.js.map +1 -1
  143. package/dist/components/TagGroup/TagGroup.esm.js +36 -63
  144. package/dist/components/TagGroup/TagGroup.esm.js.map +1 -1
  145. package/dist/components/TagGroup/definition.esm.js +35 -8
  146. package/dist/components/TagGroup/definition.esm.js.map +1 -1
  147. package/dist/components/Text/Text.esm.js +6 -13
  148. package/dist/components/Text/Text.esm.js.map +1 -1
  149. package/dist/components/Text/definition.esm.js +18 -14
  150. package/dist/components/Text/definition.esm.js.map +1 -1
  151. package/dist/components/TextField/TextField.esm.js +16 -41
  152. package/dist/components/TextField/TextField.esm.js.map +1 -1
  153. package/dist/components/TextField/definition.esm.js +19 -6
  154. package/dist/components/TextField/definition.esm.js.map +1 -1
  155. package/dist/components/ToggleButton/ToggleButton.esm.js +11 -23
  156. package/dist/components/ToggleButton/ToggleButton.esm.js.map +1 -1
  157. package/dist/components/ToggleButton/definition.esm.js +17 -4
  158. package/dist/components/ToggleButton/definition.esm.js.map +1 -1
  159. package/dist/components/ToggleButtonGroup/ToggleButtonGroup.esm.js +5 -18
  160. package/dist/components/ToggleButtonGroup/ToggleButtonGroup.esm.js.map +1 -1
  161. package/dist/components/ToggleButtonGroup/definition.esm.js +14 -4
  162. package/dist/components/ToggleButtonGroup/definition.esm.js.map +1 -1
  163. package/dist/components/Tooltip/Tooltip.esm.js +24 -30
  164. package/dist/components/Tooltip/Tooltip.esm.js.map +1 -1
  165. package/dist/components/Tooltip/Tooltip.module.css.esm.js +2 -2
  166. package/dist/components/Tooltip/definition.esm.js +16 -2
  167. package/dist/components/Tooltip/definition.esm.js.map +1 -1
  168. package/dist/components/VisuallyHidden/VisuallyHidden.esm.js +4 -12
  169. package/dist/components/VisuallyHidden/VisuallyHidden.esm.js.map +1 -1
  170. package/dist/components/VisuallyHidden/definition.esm.js +14 -2
  171. package/dist/components/VisuallyHidden/definition.esm.js.map +1 -1
  172. package/dist/css/styles.css +2 -4
  173. package/dist/hooks/useBg.esm.js +11 -2
  174. package/dist/hooks/useBg.esm.js.map +1 -1
  175. package/dist/hooks/useBreakpoint.esm.js +67 -27
  176. package/dist/hooks/useBreakpoint.esm.js.map +1 -1
  177. package/dist/hooks/useDefinition/helpers.esm.js +24 -1
  178. package/dist/hooks/useDefinition/helpers.esm.js.map +1 -1
  179. package/dist/hooks/useDefinition/useDefinition.esm.js +12 -22
  180. package/dist/hooks/useDefinition/useDefinition.esm.js.map +1 -1
  181. package/dist/index.d.ts +860 -273
  182. package/dist/index.esm.js +2 -2
  183. package/package.json +6 -4
  184. package/dist/components/PluginHeader/PluginHeaderToolbar.esm.js +0 -94
  185. package/dist/components/PluginHeader/PluginHeaderToolbar.esm.js.map +0 -1
  186. package/dist/hooks/useMediaQuery.esm.js +0 -47
  187. package/dist/hooks/useMediaQuery.esm.js.map +0 -1
  188. package/dist/hooks/useStyles.esm.js +0 -53
  189. package/dist/hooks/useStyles.esm.js.map +0 -1
@@ -1,17 +1,18 @@
1
1
  import { jsx, jsxs } from 'react/jsx-runtime';
2
2
  import { MenuTrigger as MenuTrigger$1, SubmenuTrigger as SubmenuTrigger$1, Menu as Menu$1, Popover, Virtualizer, ListLayout, ListBox, useFilter, Autocomplete, SearchField, Input, Button, MenuItem as MenuItem$1, ListBoxItem, MenuSection as MenuSection$1, Header, Separator } from 'react-aria-components';
3
- import { useStyles } from '../../hooks/useStyles.esm.js';
4
- import { MenuDefinition } from './definition.esm.js';
3
+ import { useDefinition } from '../../hooks/useDefinition/useDefinition.esm.js';
4
+ import { MenuDefinition, MenuListBoxDefinition, MenuAutocompleteDefinition, MenuAutocompleteListboxDefinition, MenuItemDefinition, MenuListBoxItemDefinition, MenuSectionDefinition, MenuSeparatorDefinition, MenuEmptyStateDefinition } from './definition.esm.js';
5
5
  import { RiCloseCircleLine, RiArrowRightSLine, RiCheckLine } from '@remixicon/react';
6
6
  import { createRoutingRegistration, isInternalLink } from '../InternalLinkProvider/InternalLinkProvider.esm.js';
7
- import styles from './Menu.module.css.esm.js';
8
- import clsx from 'clsx';
7
+ import { Box } from '../Box/Box.esm.js';
8
+ import '../Box/Box.module.css.esm.js';
9
+ import { BgReset } from '../../hooks/useBg.esm.js';
9
10
 
10
11
  const { RoutingProvider, useRoutingRegistrationEffect } = createRoutingRegistration();
11
12
  const rowHeight = 32;
12
13
  const MenuEmptyState = () => {
13
- const { classNames } = useStyles(MenuDefinition);
14
- return /* @__PURE__ */ jsx("div", { className: clsx(classNames.emptyState, styles[classNames.emptyState]), children: "No results found." });
14
+ const { ownProps } = useDefinition(MenuEmptyStateDefinition, {});
15
+ return /* @__PURE__ */ jsx("div", { className: ownProps.classes.root, children: "No results found." });
15
16
  };
16
17
  const MenuTrigger = (props) => {
17
18
  return /* @__PURE__ */ jsx(MenuTrigger$1, { ...props });
@@ -20,429 +21,247 @@ const SubmenuTrigger = (props) => {
20
21
  return /* @__PURE__ */ jsx(SubmenuTrigger$1, { ...props });
21
22
  };
22
23
  const Menu = (props) => {
23
- const { classNames, cleanedProps } = useStyles(MenuDefinition, props);
24
- const {
25
- className,
26
- placement = "bottom start",
27
- virtualized = false,
28
- maxWidth,
29
- maxHeight,
30
- style,
31
- ...rest
32
- } = cleanedProps;
24
+ const { ownProps, restProps } = useDefinition(MenuDefinition, props);
25
+ const { classes, placement, virtualized, maxWidth, maxHeight, style } = ownProps;
33
26
  let newMaxWidth = maxWidth || (virtualized ? "260px" : "undefined");
34
27
  const menuContent = /* @__PURE__ */ jsx(
35
28
  Menu$1,
36
29
  {
37
- className: clsx(classNames.content, styles[classNames.content]),
30
+ className: classes.content,
38
31
  renderEmptyState: () => /* @__PURE__ */ jsx(MenuEmptyState, {}),
39
32
  style: { width: newMaxWidth, maxHeight, ...style },
40
- ...rest
33
+ ...restProps
41
34
  }
42
35
  );
43
- return /* @__PURE__ */ jsx(RoutingProvider, { children: /* @__PURE__ */ jsx(
44
- Popover,
36
+ return /* @__PURE__ */ jsx(RoutingProvider, { children: /* @__PURE__ */ jsx(Popover, { className: classes.root, placement, children: /* @__PURE__ */ jsx(BgReset, { children: /* @__PURE__ */ jsx(Box, { bg: "neutral", className: classes.inner, children: virtualized ? /* @__PURE__ */ jsx(
37
+ Virtualizer,
45
38
  {
46
- className: clsx(
47
- classNames.popover,
48
- styles[classNames.popover],
49
- className
50
- ),
51
- placement,
52
- children: virtualized ? /* @__PURE__ */ jsx(
53
- Virtualizer,
54
- {
55
- layout: ListLayout,
56
- layoutOptions: {
57
- rowHeight
58
- },
59
- children: menuContent
60
- }
61
- ) : menuContent
39
+ layout: ListLayout,
40
+ layoutOptions: {
41
+ rowHeight
42
+ },
43
+ children: menuContent
62
44
  }
63
- ) });
45
+ ) : menuContent }) }) }) });
64
46
  };
65
47
  const MenuListBox = (props) => {
66
- const { classNames, cleanedProps } = useStyles(MenuDefinition, props);
48
+ const { ownProps, restProps } = useDefinition(MenuListBoxDefinition, props);
67
49
  const {
68
- className,
69
- selectionMode = "single",
70
- placement = "bottom start",
71
- virtualized = false,
50
+ classes,
51
+ selectionMode,
52
+ placement,
53
+ virtualized,
72
54
  maxWidth,
73
55
  maxHeight,
74
- style,
75
- ...rest
76
- } = cleanedProps;
56
+ style
57
+ } = ownProps;
77
58
  let newMaxWidth = maxWidth || (virtualized ? "260px" : "undefined");
78
59
  const listBoxContent = /* @__PURE__ */ jsx(
79
60
  ListBox,
80
61
  {
81
- className: clsx(classNames.content, styles[classNames.content]),
62
+ className: classes.content,
82
63
  selectionMode,
83
64
  style: { width: newMaxWidth, maxHeight, ...style },
84
- ...rest
65
+ ...restProps
85
66
  }
86
67
  );
87
- return /* @__PURE__ */ jsx(
88
- Popover,
68
+ return /* @__PURE__ */ jsx(Popover, { className: classes.root, placement, children: /* @__PURE__ */ jsx(BgReset, { children: /* @__PURE__ */ jsx(Box, { bg: "neutral", className: classes.inner, children: virtualized ? /* @__PURE__ */ jsx(
69
+ Virtualizer,
89
70
  {
90
- className: clsx(
91
- classNames.popover,
92
- styles[classNames.popover],
93
- className
94
- ),
95
- placement,
96
- children: virtualized ? /* @__PURE__ */ jsx(
97
- Virtualizer,
98
- {
99
- layout: ListLayout,
100
- layoutOptions: {
101
- rowHeight
102
- },
103
- children: listBoxContent
104
- }
105
- ) : listBoxContent
71
+ layout: ListLayout,
72
+ layoutOptions: {
73
+ rowHeight
74
+ },
75
+ children: listBoxContent
106
76
  }
107
- );
77
+ ) : listBoxContent }) }) });
108
78
  };
109
79
  const MenuAutocomplete = (props) => {
110
- const { classNames, cleanedProps } = useStyles(MenuDefinition, props);
80
+ const { ownProps, restProps } = useDefinition(
81
+ MenuAutocompleteDefinition,
82
+ props
83
+ );
111
84
  const {
112
- className,
113
- placement = "bottom start",
114
- virtualized = false,
85
+ classes,
86
+ placement,
87
+ virtualized,
115
88
  maxWidth,
116
89
  maxHeight,
117
90
  style,
118
- ...rest
119
- } = cleanedProps;
91
+ placeholder
92
+ } = ownProps;
120
93
  const { contains } = useFilter({ sensitivity: "base" });
121
94
  let newMaxWidth = maxWidth || (virtualized ? "260px" : "undefined");
122
95
  const menuContent = /* @__PURE__ */ jsx(
123
96
  Menu$1,
124
97
  {
125
- className: clsx(classNames.content, styles[classNames.content]),
98
+ className: classes.content,
126
99
  renderEmptyState: () => /* @__PURE__ */ jsx(MenuEmptyState, {}),
127
100
  style: { width: newMaxWidth, maxHeight, ...style },
128
- ...rest
101
+ ...restProps
129
102
  }
130
103
  );
131
- return /* @__PURE__ */ jsx(RoutingProvider, { children: /* @__PURE__ */ jsx(
132
- Popover,
133
- {
134
- className: clsx(
135
- classNames.popover,
136
- styles[classNames.popover],
137
- className
138
- ),
139
- placement,
140
- children: /* @__PURE__ */ jsxs(Autocomplete, { filter: contains, children: [
141
- /* @__PURE__ */ jsxs(
142
- SearchField,
143
- {
144
- className: clsx(
145
- classNames.searchField,
146
- styles[classNames.searchField]
147
- ),
148
- "aria-label": props.placeholder || "Search",
149
- children: [
150
- /* @__PURE__ */ jsx(
151
- Input,
152
- {
153
- className: clsx(
154
- classNames.searchFieldInput,
155
- styles[classNames.searchFieldInput]
156
- ),
157
- placeholder: props.placeholder || "Search..."
158
- }
159
- ),
160
- /* @__PURE__ */ jsx(
161
- Button,
162
- {
163
- className: clsx(
164
- classNames.searchFieldClear,
165
- styles[classNames.searchFieldClear]
166
- ),
167
- children: /* @__PURE__ */ jsx(RiCloseCircleLine, {})
168
- }
169
- )
170
- ]
171
- }
172
- ),
173
- virtualized ? /* @__PURE__ */ jsx(
174
- Virtualizer,
175
- {
176
- layout: ListLayout,
177
- layoutOptions: {
178
- rowHeight
179
- },
180
- children: menuContent
181
- }
182
- ) : menuContent
183
- ] })
184
- }
185
- ) });
104
+ return /* @__PURE__ */ jsx(RoutingProvider, { children: /* @__PURE__ */ jsx(Popover, { className: classes.root, placement, children: /* @__PURE__ */ jsx(BgReset, { children: /* @__PURE__ */ jsx(Box, { bg: "neutral", className: classes.inner, children: /* @__PURE__ */ jsxs(Autocomplete, { filter: contains, children: [
105
+ /* @__PURE__ */ jsxs(
106
+ SearchField,
107
+ {
108
+ className: classes.searchField,
109
+ "aria-label": placeholder || "Search",
110
+ children: [
111
+ /* @__PURE__ */ jsx(
112
+ Input,
113
+ {
114
+ className: classes.searchFieldInput,
115
+ placeholder: placeholder || "Search..."
116
+ }
117
+ ),
118
+ /* @__PURE__ */ jsx(Button, { className: classes.searchFieldClear, children: /* @__PURE__ */ jsx(RiCloseCircleLine, {}) })
119
+ ]
120
+ }
121
+ ),
122
+ virtualized ? /* @__PURE__ */ jsx(
123
+ Virtualizer,
124
+ {
125
+ layout: ListLayout,
126
+ layoutOptions: {
127
+ rowHeight
128
+ },
129
+ children: menuContent
130
+ }
131
+ ) : menuContent
132
+ ] }) }) }) }) });
186
133
  };
187
134
  const MenuAutocompleteListbox = (props) => {
188
- const { classNames, cleanedProps } = useStyles(MenuDefinition, props);
135
+ const { ownProps, restProps } = useDefinition(
136
+ MenuAutocompleteListboxDefinition,
137
+ props
138
+ );
189
139
  const {
190
- className,
191
- selectionMode = "single",
192
- placement = "bottom start",
193
- virtualized = false,
140
+ classes,
141
+ selectionMode,
142
+ placement,
143
+ virtualized,
194
144
  maxWidth,
195
145
  maxHeight,
196
146
  style,
197
- ...rest
198
- } = cleanedProps;
147
+ placeholder
148
+ } = ownProps;
199
149
  const { contains } = useFilter({ sensitivity: "base" });
200
150
  let newMaxWidth = maxWidth || (virtualized ? "260px" : "undefined");
201
151
  const listBoxContent = /* @__PURE__ */ jsx(
202
152
  ListBox,
203
153
  {
204
- className: clsx(classNames.content, styles[classNames.content]),
154
+ className: classes.content,
205
155
  renderEmptyState: () => /* @__PURE__ */ jsx(MenuEmptyState, {}),
206
156
  selectionMode,
207
157
  style: { width: newMaxWidth, maxHeight, ...style },
208
- ...rest
209
- }
210
- );
211
- return /* @__PURE__ */ jsx(
212
- Popover,
213
- {
214
- className: clsx(
215
- classNames.popover,
216
- styles[classNames.popover],
217
- className
218
- ),
219
- placement,
220
- children: /* @__PURE__ */ jsxs(Autocomplete, { filter: contains, children: [
221
- /* @__PURE__ */ jsxs(
222
- SearchField,
223
- {
224
- className: clsx(
225
- classNames.searchField,
226
- styles[classNames.searchField]
227
- ),
228
- "aria-label": props.placeholder || "Search",
229
- children: [
230
- /* @__PURE__ */ jsx(
231
- Input,
232
- {
233
- className: clsx(
234
- classNames.searchFieldInput,
235
- styles[classNames.searchFieldInput]
236
- ),
237
- placeholder: props.placeholder || "Search..."
238
- }
239
- ),
240
- /* @__PURE__ */ jsx(
241
- Button,
242
- {
243
- className: clsx(
244
- classNames.searchFieldClear,
245
- styles[classNames.searchFieldClear]
246
- ),
247
- children: /* @__PURE__ */ jsx(RiCloseCircleLine, {})
248
- }
249
- )
250
- ]
251
- }
252
- ),
253
- virtualized ? /* @__PURE__ */ jsx(
254
- Virtualizer,
255
- {
256
- layout: ListLayout,
257
- layoutOptions: {
258
- rowHeight
259
- },
260
- children: listBoxContent
261
- }
262
- ) : listBoxContent
263
- ] })
158
+ ...restProps
264
159
  }
265
160
  );
161
+ return /* @__PURE__ */ jsx(Popover, { className: classes.root, placement, children: /* @__PURE__ */ jsx(BgReset, { children: /* @__PURE__ */ jsx(Box, { bg: "neutral", className: classes.inner, children: /* @__PURE__ */ jsxs(Autocomplete, { filter: contains, children: [
162
+ /* @__PURE__ */ jsxs(
163
+ SearchField,
164
+ {
165
+ className: classes.searchField,
166
+ "aria-label": placeholder || "Search",
167
+ children: [
168
+ /* @__PURE__ */ jsx(
169
+ Input,
170
+ {
171
+ className: classes.searchFieldInput,
172
+ placeholder: placeholder || "Search..."
173
+ }
174
+ ),
175
+ /* @__PURE__ */ jsx(Button, { className: classes.searchFieldClear, children: /* @__PURE__ */ jsx(RiCloseCircleLine, {}) })
176
+ ]
177
+ }
178
+ ),
179
+ virtualized ? /* @__PURE__ */ jsx(
180
+ Virtualizer,
181
+ {
182
+ layout: ListLayout,
183
+ layoutOptions: {
184
+ rowHeight
185
+ },
186
+ children: listBoxContent
187
+ }
188
+ ) : listBoxContent
189
+ ] }) }) }) });
266
190
  };
267
191
  const MenuItem = (props) => {
268
- const { classNames, cleanedProps } = useStyles(MenuDefinition, props);
269
- const {
270
- className,
271
- iconStart,
272
- color = "primary",
273
- children,
274
- href,
275
- ...rest
276
- } = cleanedProps;
192
+ const { ownProps, restProps, dataAttributes } = useDefinition(
193
+ MenuItemDefinition,
194
+ props
195
+ );
196
+ const { classes, iconStart, children, href } = ownProps;
277
197
  useRoutingRegistrationEffect(href);
278
198
  if (href && !isInternalLink(href)) {
279
199
  return /* @__PURE__ */ jsx(
280
200
  MenuItem$1,
281
201
  {
282
- className: clsx(classNames.item, styles[classNames.item], className),
283
- "data-color": color,
202
+ className: classes.root,
203
+ ...dataAttributes,
284
204
  textValue: typeof children === "string" ? children : void 0,
285
205
  onAction: () => window.open(href, "_blank", "noopener,noreferrer"),
286
- ...rest,
287
- children: /* @__PURE__ */ jsxs(
288
- "div",
289
- {
290
- className: clsx(
291
- classNames.itemWrapper,
292
- styles[classNames.itemWrapper]
293
- ),
294
- children: [
295
- /* @__PURE__ */ jsxs(
296
- "div",
297
- {
298
- className: clsx(
299
- classNames.itemContent,
300
- styles[classNames.itemContent]
301
- ),
302
- children: [
303
- iconStart,
304
- children
305
- ]
306
- }
307
- ),
308
- /* @__PURE__ */ jsx(
309
- "div",
310
- {
311
- className: clsx(classNames.itemArrow, styles[classNames.itemArrow]),
312
- children: /* @__PURE__ */ jsx(RiArrowRightSLine, {})
313
- }
314
- )
315
- ]
316
- }
317
- )
206
+ ...restProps,
207
+ children: /* @__PURE__ */ jsxs("div", { className: classes.itemWrapper, children: [
208
+ /* @__PURE__ */ jsxs("div", { className: classes.itemContent, children: [
209
+ iconStart,
210
+ children
211
+ ] }),
212
+ /* @__PURE__ */ jsx("div", { className: classes.itemArrow, children: /* @__PURE__ */ jsx(RiArrowRightSLine, {}) })
213
+ ] })
318
214
  }
319
215
  );
320
216
  }
321
217
  return /* @__PURE__ */ jsx(
322
218
  MenuItem$1,
323
219
  {
324
- className: clsx(classNames.item, styles[classNames.item], className),
325
- "data-color": color,
220
+ className: classes.root,
221
+ ...dataAttributes,
326
222
  href,
327
223
  textValue: typeof children === "string" ? children : void 0,
328
- ...rest,
329
- children: /* @__PURE__ */ jsxs(
330
- "div",
331
- {
332
- className: clsx(classNames.itemWrapper, styles[classNames.itemWrapper]),
333
- children: [
334
- /* @__PURE__ */ jsxs(
335
- "div",
336
- {
337
- className: clsx(
338
- classNames.itemContent,
339
- styles[classNames.itemContent]
340
- ),
341
- children: [
342
- iconStart,
343
- children
344
- ]
345
- }
346
- ),
347
- /* @__PURE__ */ jsx(
348
- "div",
349
- {
350
- className: clsx(classNames.itemArrow, styles[classNames.itemArrow]),
351
- children: /* @__PURE__ */ jsx(RiArrowRightSLine, {})
352
- }
353
- )
354
- ]
355
- }
356
- )
224
+ ...restProps,
225
+ children: /* @__PURE__ */ jsxs("div", { className: classes.itemWrapper, children: [
226
+ /* @__PURE__ */ jsxs("div", { className: classes.itemContent, children: [
227
+ iconStart,
228
+ children
229
+ ] }),
230
+ /* @__PURE__ */ jsx("div", { className: classes.itemArrow, children: /* @__PURE__ */ jsx(RiArrowRightSLine, {}) })
231
+ ] })
357
232
  }
358
233
  );
359
234
  };
360
235
  const MenuListBoxItem = (props) => {
361
- const { classNames, cleanedProps } = useStyles(MenuDefinition, props);
362
- const { children, className, ...rest } = cleanedProps;
236
+ const { ownProps, restProps } = useDefinition(
237
+ MenuListBoxItemDefinition,
238
+ props
239
+ );
240
+ const { classes, children } = ownProps;
363
241
  return /* @__PURE__ */ jsx(
364
242
  ListBoxItem,
365
243
  {
366
- textValue: typeof props.children === "string" ? props.children : void 0,
367
- className: clsx(
368
- classNames.itemListBox,
369
- styles[classNames.itemListBox],
370
- className
371
- ),
372
- ...rest,
373
- children: /* @__PURE__ */ jsx(
374
- "div",
375
- {
376
- className: clsx(classNames.itemWrapper, styles[classNames.itemWrapper]),
377
- children: /* @__PURE__ */ jsxs(
378
- "div",
379
- {
380
- className: clsx(
381
- classNames.itemContent,
382
- styles[classNames.itemContent]
383
- ),
384
- children: [
385
- /* @__PURE__ */ jsx(
386
- "div",
387
- {
388
- className: clsx(
389
- classNames.itemListBoxCheck,
390
- styles[classNames.itemListBoxCheck]
391
- ),
392
- children: /* @__PURE__ */ jsx(RiCheckLine, {})
393
- }
394
- ),
395
- children
396
- ]
397
- }
398
- )
399
- }
400
- )
244
+ textValue: typeof children === "string" ? children : void 0,
245
+ className: classes.root,
246
+ ...restProps,
247
+ children: /* @__PURE__ */ jsx("div", { className: classes.itemWrapper, children: /* @__PURE__ */ jsxs("div", { className: classes.itemContent, children: [
248
+ /* @__PURE__ */ jsx("div", { className: classes.check, children: /* @__PURE__ */ jsx(RiCheckLine, {}) }),
249
+ children
250
+ ] }) })
401
251
  }
402
252
  );
403
253
  };
404
254
  const MenuSection = (props) => {
405
- const { classNames, cleanedProps } = useStyles(MenuDefinition, props);
406
- const { children, className, title, ...rest } = cleanedProps;
407
- return /* @__PURE__ */ jsxs(
408
- MenuSection$1,
409
- {
410
- className: clsx(
411
- classNames.section,
412
- styles[classNames.section],
413
- className
414
- ),
415
- ...rest,
416
- children: [
417
- /* @__PURE__ */ jsx(
418
- Header,
419
- {
420
- className: clsx(
421
- classNames.sectionHeader,
422
- styles[classNames.sectionHeader]
423
- ),
424
- children: title
425
- }
426
- ),
427
- children
428
- ]
429
- }
430
- );
255
+ const { ownProps, restProps } = useDefinition(MenuSectionDefinition, props);
256
+ const { classes, children, title } = ownProps;
257
+ return /* @__PURE__ */ jsxs(MenuSection$1, { className: classes.root, ...restProps, children: [
258
+ /* @__PURE__ */ jsx(Header, { className: classes.header, children: title }),
259
+ children
260
+ ] });
431
261
  };
432
262
  const MenuSeparator = (props) => {
433
- const { classNames, cleanedProps } = useStyles(MenuDefinition, props);
434
- const { className, ...rest } = cleanedProps;
435
- return /* @__PURE__ */ jsx(
436
- Separator,
437
- {
438
- className: clsx(
439
- classNames.separator,
440
- styles[classNames.separator],
441
- className
442
- ),
443
- ...rest
444
- }
445
- );
263
+ const { ownProps, restProps } = useDefinition(MenuSeparatorDefinition, props);
264
+ return /* @__PURE__ */ jsx(Separator, { className: ownProps.classes.root, ...restProps });
446
265
  };
447
266
 
448
267
  export { Menu, MenuAutocomplete, MenuAutocompleteListbox, MenuItem, MenuListBox, MenuListBoxItem, MenuSection, MenuSeparator, MenuTrigger, SubmenuTrigger };