@blerp/design 1.3.17 → 1.4.2

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 (128) hide show
  1. package/dist/cjs/Blerp/BlerpImageRow.js +176 -57
  2. package/dist/cjs/Blerp/BlerpSavePopup.js +44 -40
  3. package/dist/cjs/Blerp/BlerpTitleRow.js +36 -19
  4. package/dist/cjs/Blerp/BlerpTopRow.js +110 -44
  5. package/dist/cjs/Blerp.js +9 -16
  6. package/dist/cjs/BlerpAudioContextProvider.js +2 -2
  7. package/dist/cjs/BlerpListView.js +318 -168
  8. package/dist/cjs/BlerpListViewPremium.js +155 -130
  9. package/dist/cjs/BlerpListViewSkeleton.js +60 -13
  10. package/dist/cjs/BlerpSkeleton.js +32 -9
  11. package/dist/cjs/CollectionCard.js +139 -60
  12. package/dist/cjs/CollectionListViewPremium.js +368 -297
  13. package/dist/cjs/CollectionSkeleton.js +74 -13
  14. package/dist/cjs/Dropdown.js +272 -172
  15. package/dist/cjs/EllipsisLoader.js +66 -21
  16. package/dist/cjs/GroupCard.js +64 -57
  17. package/dist/cjs/Icons/Icons.js +288 -426
  18. package/dist/cjs/ImageEditor.js +247 -0
  19. package/dist/cjs/ImageUpload.js +226 -0
  20. package/dist/cjs/NewBlerp.js +354 -160
  21. package/dist/cjs/NewBlerpTest.js +10 -792
  22. package/dist/cjs/NewCollectionModal.js +294 -310
  23. package/dist/cjs/PremiumCollectionCard.js +191 -454
  24. package/dist/cjs/PurchaseModals/CheckoutModal.js +1 -1
  25. package/dist/cjs/PurchaseModals/PremiumBlerpCheckoutModal.js +1 -1
  26. package/dist/cjs/PurchaseModals/PremiumCollectionCheckoutModal.js +1 -1
  27. package/dist/cjs/PurchaseModals/PremiumSubscriptionCheckoutModal.js +1 -1
  28. package/dist/cjs/ReactionButtons.js +26 -13
  29. package/dist/cjs/SnackbarContextProvider.js +200 -116
  30. package/dist/cjs/Theme.js +217 -90
  31. package/dist/cjs/Toggle.js +86 -32
  32. package/dist/cjs/UserCard.js +13 -32
  33. package/dist/cjs/UserPage/LibraryControls.js +180 -93
  34. package/dist/cjs/UserPage/UserLibraryHeader.js +23 -14
  35. package/dist/cjs/UserPage/UserProfileHeader.js +120 -105
  36. package/dist/cjs/UsernameWithPopout.js +12 -8
  37. package/dist/cjs/colors.js +15 -8
  38. package/dist/cjs/helpers.js +131 -0
  39. package/dist/cjs/index.js +92 -58
  40. package/dist/cjs/neo-components/Autocomplete.js +285 -0
  41. package/dist/cjs/neo-components/BottomNavigation.js +120 -0
  42. package/dist/cjs/neo-components/Box.js +48 -0
  43. package/dist/cjs/neo-components/Button.js +206 -0
  44. package/dist/cjs/neo-components/CircularProgress.js +92 -0
  45. package/dist/cjs/neo-components/Container.js +75 -0
  46. package/dist/cjs/neo-components/Dialog.js +441 -0
  47. package/dist/cjs/neo-components/Fab.js +237 -0
  48. package/dist/cjs/neo-components/FormControls.js +1057 -0
  49. package/dist/cjs/neo-components/Grid.js +256 -0
  50. package/dist/cjs/neo-components/IconButton.js +111 -0
  51. package/dist/cjs/neo-components/Input.js +495 -0
  52. package/dist/cjs/neo-components/Layout.js +1214 -0
  53. package/dist/cjs/neo-components/Misc.js +868 -0
  54. package/dist/cjs/neo-components/Navigation.js +1616 -0
  55. package/dist/cjs/neo-components/Paper.js +256 -0
  56. package/dist/cjs/neo-components/Stack.js +194 -0
  57. package/dist/cjs/neo-components/Stepper.js +291 -0
  58. package/dist/cjs/neo-components/Text.js +290 -0
  59. package/dist/cjs/neo-components/ThemeProvider.js +731 -0
  60. package/dist/cjs/neo-components/ToggleButton.js +223 -0
  61. package/dist/cjs/neo-components/createTheme.js +306 -0
  62. package/dist/cjs/neo-components/withSx.js +171 -0
  63. package/dist/cjs/neo-utils/sxToStyle.js +508 -0
  64. package/dist/esm/Blerp/BlerpImageRow.js +166 -46
  65. package/dist/esm/Blerp/BlerpSavePopup.js +35 -27
  66. package/dist/esm/Blerp/BlerpTitleRow.js +32 -13
  67. package/dist/esm/Blerp/BlerpTopRow.js +85 -16
  68. package/dist/esm/Blerp.js +4 -12
  69. package/dist/esm/BlerpAudioContextProvider.js +1 -2
  70. package/dist/esm/BlerpListView.js +313 -160
  71. package/dist/esm/BlerpListViewPremium.js +135 -109
  72. package/dist/esm/BlerpListViewSkeleton.js +60 -11
  73. package/dist/esm/BlerpSkeleton.js +32 -7
  74. package/dist/esm/CollectionCard.js +118 -38
  75. package/dist/esm/CollectionListViewPremium.js +367 -294
  76. package/dist/esm/CollectionSkeleton.js +73 -11
  77. package/dist/esm/Dropdown.js +260 -161
  78. package/dist/esm/EllipsisLoader.js +63 -18
  79. package/dist/esm/GroupCard.js +54 -46
  80. package/dist/esm/Icons/Icons.js +226 -367
  81. package/dist/esm/ImageEditor.js +240 -0
  82. package/dist/esm/ImageUpload.js +217 -0
  83. package/dist/esm/NewBlerp.js +282 -79
  84. package/dist/esm/NewBlerpTest.js +11 -781
  85. package/dist/esm/NewCollectionModal.js +289 -304
  86. package/dist/esm/PremiumCollectionCard.js +192 -451
  87. package/dist/esm/PurchaseModals/CheckoutModal.js +1 -1
  88. package/dist/esm/PurchaseModals/PremiumBlerpCheckoutModal.js +1 -1
  89. package/dist/esm/PurchaseModals/PremiumCollectionCheckoutModal.js +1 -1
  90. package/dist/esm/PurchaseModals/PremiumSubscriptionCheckoutModal.js +1 -1
  91. package/dist/esm/ReactionButtons.js +23 -8
  92. package/dist/esm/SnackbarContextProvider.js +196 -110
  93. package/dist/esm/Theme.js +187 -66
  94. package/dist/esm/Toggle.js +84 -29
  95. package/dist/esm/UserCard.js +1 -20
  96. package/dist/esm/UserPage/LibraryControls.js +159 -65
  97. package/dist/esm/UserPage/UserLibraryHeader.js +18 -10
  98. package/dist/esm/UserPage/UserProfileHeader.js +100 -79
  99. package/dist/esm/UsernameWithPopout.js +7 -4
  100. package/dist/esm/colors.js +11 -9
  101. package/dist/esm/helpers.js +122 -0
  102. package/dist/esm/icons.js +1 -1
  103. package/dist/esm/index.js +32 -2
  104. package/dist/esm/neo-components/Autocomplete.js +274 -0
  105. package/dist/esm/neo-components/BottomNavigation.js +109 -0
  106. package/dist/esm/neo-components/Box.js +36 -0
  107. package/dist/esm/neo-components/Button.js +194 -0
  108. package/dist/esm/neo-components/CircularProgress.js +81 -0
  109. package/dist/esm/neo-components/Container.js +63 -0
  110. package/dist/esm/neo-components/Dialog.js +423 -0
  111. package/dist/esm/neo-components/Fab.js +225 -0
  112. package/dist/esm/neo-components/FormControls.js +1041 -0
  113. package/dist/esm/neo-components/Grid.js +244 -0
  114. package/dist/esm/neo-components/IconButton.js +99 -0
  115. package/dist/esm/neo-components/Input.js +480 -0
  116. package/dist/esm/neo-components/Layout.js +1180 -0
  117. package/dist/esm/neo-components/Misc.js +850 -0
  118. package/dist/esm/neo-components/Navigation.js +1594 -0
  119. package/dist/esm/neo-components/Paper.js +243 -0
  120. package/dist/esm/neo-components/Stack.js +182 -0
  121. package/dist/esm/neo-components/Stepper.js +278 -0
  122. package/dist/esm/neo-components/Text.js +277 -0
  123. package/dist/esm/neo-components/ThemeProvider.js +718 -0
  124. package/dist/esm/neo-components/ToggleButton.js +214 -0
  125. package/dist/esm/neo-components/createTheme.js +297 -0
  126. package/dist/esm/neo-components/withSx.js +160 -0
  127. package/dist/esm/neo-utils/sxToStyle.js +502 -0
  128. package/package.json +19 -15
@@ -0,0 +1,1180 @@
1
+ import _extends from '@babel/runtime/helpers/extends';
2
+ import _defineProperty from '@babel/runtime/helpers/defineProperty';
3
+ import _objectWithoutProperties from '@babel/runtime/helpers/objectWithoutProperties';
4
+ import React, { useState } from 'react';
5
+ import { withSx } from './withSx.js';
6
+ import { useTheme } from './ThemeProvider.js';
7
+
8
+ const _excluded = ["position", "color", "elevation", "children", "style"],
9
+ _excluded2 = ["variant", "disableGutters", "children", "style"],
10
+ _excluded3 = ["dense", "disablePadding", "subheader", "children", "component", "style"],
11
+ _excluded4 = ["dense", "disableGutters", "disablePadding", "divider", "alignItems", "selected", "button", "onClick", "secondaryAction", "children", "component", "style"],
12
+ _excluded5 = ["dense", "disableGutters", "divider", "selected", "disabled", "alignItems", "onClick", "children", "style"],
13
+ _excluded6 = ["primary", "secondary", "primaryTypographyProps", "secondaryTypographyProps", "inset", "style"],
14
+ _excluded7 = ["children", "style"],
15
+ _excluded8 = ["children", "style"],
16
+ _excluded9 = ["size", "stickyHeader", "children", "style"],
17
+ _excluded10 = ["children", "style"],
18
+ _excluded11 = ["children", "style"],
19
+ _excluded12 = ["hover", "selected", "children", "style"],
20
+ _excluded13 = ["align", "padding", "size", "variant", "sortDirection", "children", "component", "style"],
21
+ _excluded14 = ["children", "style"],
22
+ _excluded15 = ["cols", "gap", "rowHeight", "variant", "children", "style"],
23
+ _excluded16 = ["cols", "rows", "children", "style"],
24
+ _excluded17 = ["expanded", "defaultExpanded", "onChange", "disabled", "children", "style", "sx"],
25
+ _excluded18 = ["expandIcon", "children", "onClick", "_expanded", "_onToggle", "_disabled", "style", "sx"],
26
+ _excluded19 = ["children", "_expanded", "style", "sx"],
27
+ _excluded20 = ["disableSpacing", "children", "style", "sx"],
28
+ _excluded21 = ["variant", "color", "size", "orientation", "disabled", "fullWidth", "children", "style"],
29
+ _excluded22 = ["separator", "maxItems", "itemsBeforeCollapse", "itemsAfterCollapse", "children", "style"],
30
+ _excluded23 = ["count", "page", "onChange", "color", "size", "disabled", "showFirstButton", "showLastButton", "siblingCount", "boundaryCount", "style"],
31
+ _excluded24 = ["children", "color", "fontSize", "viewBox", "titleAccess", "style"],
32
+ _excluded25 = ["fullWidth", "disabled", "error", "required", "variant", "size", "margin", "children", "style"],
33
+ _excluded26 = ["shrink", "disabled", "error", "required", "focused", "variant", "size", "children", "style"];
34
+
35
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
36
+
37
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
38
+ /**
39
+ * AppBar - Top application bar (replaces MUI AppBar)
40
+ */
41
+
42
+ const BaseAppBar = /*#__PURE__*/React.forwardRef((_ref, ref) => {
43
+ let {
44
+ position = "fixed",
45
+ color = "primary",
46
+ elevation = 4,
47
+ children,
48
+ style
49
+ } = _ref,
50
+ props = _objectWithoutProperties(_ref, _excluded);
51
+
52
+ const elevationShadows = {
53
+ 0: "none",
54
+ 1: "0px 2px 1px -1px rgba(0,0,0,0.2), 0px 1px 1px 0px rgba(0,0,0,0.14), 0px 1px 3px 0px rgba(0,0,0,0.12)",
55
+ 2: "0px 3px 1px -2px rgba(0,0,0,0.2), 0px 2px 2px 0px rgba(0,0,0,0.14), 0px 1px 5px 0px rgba(0,0,0,0.12)",
56
+ 4: "0px 2px 4px -1px rgba(0,0,0,0.2), 0px 4px 5px 0px rgba(0,0,0,0.14), 0px 1px 10px 0px rgba(0,0,0,0.12)",
57
+ 8: "0px 5px 5px -3px rgba(0,0,0,0.2), 0px 8px 10px 1px rgba(0,0,0,0.14), 0px 3px 14px 2px rgba(0,0,0,0.12)"
58
+ };
59
+ const colorMap = {
60
+ default: {
61
+ bg: "var(--default-background, #f5f5f5)",
62
+ text: "var(--body-text, rgba(0, 0, 0, 0.87))"
63
+ },
64
+ inherit: {
65
+ bg: "inherit",
66
+ text: "inherit"
67
+ },
68
+ primary: {
69
+ bg: "#141518",
70
+ text: "#ffffff"
71
+ },
72
+ secondary: {
73
+ bg: "var(--secondary-main, #9c27b0)",
74
+ text: "#fff"
75
+ },
76
+ transparent: {
77
+ bg: "transparent",
78
+ text: "inherit"
79
+ }
80
+ };
81
+ const colors = colorMap[color] || colorMap.primary;
82
+
83
+ const appBarStyle = _objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread({
84
+ display: "flex",
85
+ flexDirection: "column",
86
+ width: "100%",
87
+ boxSizing: "border-box",
88
+ flexShrink: 0,
89
+ backgroundColor: colors.bg,
90
+ color: colors.text,
91
+ boxShadow: elevationShadows[elevation] || elevationShadows[4],
92
+ zIndex: 1100
93
+ }, position === "fixed" && {
94
+ position: "fixed",
95
+ top: 0,
96
+ left: 0,
97
+ right: 0
98
+ }), position === "absolute" && {
99
+ position: "absolute",
100
+ top: 0,
101
+ left: 0,
102
+ right: 0
103
+ }), position === "sticky" && {
104
+ position: "sticky",
105
+ top: 0
106
+ }), position === "static" && {
107
+ position: "static"
108
+ }), position === "relative" && {
109
+ position: "relative"
110
+ }), style);
111
+
112
+ return /*#__PURE__*/React.createElement("header", _extends({
113
+ ref: ref,
114
+ style: appBarStyle
115
+ }, props), children);
116
+ });
117
+ BaseAppBar.displayName = "BaseAppBar";
118
+ const AppBar = withSx(BaseAppBar);
119
+ /**
120
+ * Toolbar - Container for AppBar content (replaces MUI Toolbar)
121
+ */
122
+
123
+ const BaseToolbar = /*#__PURE__*/React.forwardRef((_ref2, ref) => {
124
+ let {
125
+ variant = "regular",
126
+ disableGutters = false,
127
+ children,
128
+ style
129
+ } = _ref2,
130
+ props = _objectWithoutProperties(_ref2, _excluded2);
131
+
132
+ const toolbarStyle = _objectSpread(_objectSpread({
133
+ display: "flex",
134
+ alignItems: "center",
135
+ position: "relative",
136
+ minHeight: variant === "dense" ? "48px" : "64px"
137
+ }, !disableGutters && {
138
+ paddingLeft: "16px",
139
+ paddingRight: "16px"
140
+ }), style);
141
+
142
+ return /*#__PURE__*/React.createElement("div", _extends({
143
+ ref: ref,
144
+ style: toolbarStyle
145
+ }, props), children);
146
+ });
147
+ BaseToolbar.displayName = "BaseToolbar";
148
+ const Toolbar = withSx(BaseToolbar);
149
+ /**
150
+ * List - List container (replaces MUI List)
151
+ */
152
+
153
+ const BaseList = /*#__PURE__*/React.forwardRef((_ref3, ref) => {
154
+ let {
155
+ dense = false,
156
+ disablePadding = false,
157
+ subheader,
158
+ children,
159
+ component: Component = "ul",
160
+ style
161
+ } = _ref3,
162
+ props = _objectWithoutProperties(_ref3, _excluded3);
163
+
164
+ const listStyle = _objectSpread({
165
+ listStyle: "none",
166
+ margin: 0,
167
+ padding: disablePadding ? 0 : "8px 0",
168
+ position: "relative"
169
+ }, style);
170
+
171
+ return /*#__PURE__*/React.createElement(Component, _extends({
172
+ ref: ref,
173
+ style: listStyle
174
+ }, props), subheader, children);
175
+ });
176
+ BaseList.displayName = "BaseList";
177
+ const List = withSx(BaseList);
178
+ /**
179
+ * ListItem - List item (replaces MUI ListItem)
180
+ */
181
+
182
+ const BaseListItem = /*#__PURE__*/React.forwardRef((_ref4, ref) => {
183
+ let {
184
+ dense = false,
185
+ disableGutters = false,
186
+ disablePadding = false,
187
+ divider = false,
188
+ alignItems = "center",
189
+ selected = false,
190
+ button = false,
191
+ onClick,
192
+ secondaryAction,
193
+ children,
194
+ component,
195
+ style
196
+ } = _ref4,
197
+ props = _objectWithoutProperties(_ref4, _excluded4);
198
+
199
+ const Component = component || (button ? "div" : "li");
200
+
201
+ const itemStyle = _objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread({
202
+ display: "flex",
203
+ alignItems: alignItems === "flex-start" ? "flex-start" : "center",
204
+ justifyContent: "flex-start",
205
+ position: "relative",
206
+ textDecoration: "none",
207
+ width: "100%",
208
+ boxSizing: "border-box",
209
+ textAlign: "left"
210
+ }, !disablePadding && {
211
+ paddingTop: dense ? "4px" : "8px",
212
+ paddingBottom: dense ? "4px" : "8px"
213
+ }), !disableGutters && !disablePadding && {
214
+ paddingLeft: "16px",
215
+ paddingRight: "16px"
216
+ }), divider && {
217
+ borderBottom: "1px solid var(--border-color, rgba(0, 0, 0, 0.12))"
218
+ }), selected && {
219
+ backgroundColor: "rgba(0, 0, 0, 0.08)"
220
+ }), button && {
221
+ cursor: "pointer"
222
+ }), style);
223
+
224
+ return /*#__PURE__*/React.createElement(Component, _extends({
225
+ ref: ref,
226
+ style: itemStyle,
227
+ onClick: onClick
228
+ }, props), children, secondaryAction && /*#__PURE__*/React.createElement("div", {
229
+ style: {
230
+ position: "absolute",
231
+ right: "16px"
232
+ }
233
+ }, secondaryAction));
234
+ });
235
+ BaseListItem.displayName = "BaseListItem";
236
+ withSx(BaseListItem);
237
+ /**
238
+ * ListItemButton - Clickable list item (replaces MUI ListItemButton)
239
+ */
240
+
241
+ const BaseListItemButton = /*#__PURE__*/React.forwardRef((_ref5, ref) => {
242
+ let {
243
+ dense = false,
244
+ disableGutters = false,
245
+ divider = false,
246
+ selected = false,
247
+ disabled = false,
248
+ alignItems = "center",
249
+ onClick,
250
+ children,
251
+ style
252
+ } = _ref5,
253
+ props = _objectWithoutProperties(_ref5, _excluded5);
254
+
255
+ const buttonStyle = _objectSpread(_objectSpread(_objectSpread(_objectSpread({
256
+ display: "flex",
257
+ alignItems: alignItems === "flex-start" ? "flex-start" : "center",
258
+ justifyContent: "flex-start",
259
+ position: "relative",
260
+ textDecoration: "none",
261
+ width: "100%",
262
+ boxSizing: "border-box",
263
+ textAlign: "left",
264
+ paddingTop: dense ? "4px" : "8px",
265
+ paddingBottom: dense ? "4px" : "8px"
266
+ }, !disableGutters && {
267
+ paddingLeft: "16px",
268
+ paddingRight: "16px"
269
+ }), divider && {
270
+ borderBottom: "1px solid var(--border-color, rgba(0, 0, 0, 0.12))"
271
+ }), {}, {
272
+ backgroundColor: selected ? "rgba(0, 0, 0, 0.08)" : "transparent",
273
+ cursor: disabled ? "default" : "pointer",
274
+ transition: "background-color 150ms",
275
+ border: "none",
276
+ outline: "none",
277
+ font: "inherit",
278
+ color: "inherit"
279
+ }, disabled && {
280
+ opacity: 0.5,
281
+ pointerEvents: "none"
282
+ }), style);
283
+
284
+ return /*#__PURE__*/React.createElement("div", _extends({
285
+ ref: ref,
286
+ role: "button",
287
+ tabIndex: disabled ? -1 : 0,
288
+ style: buttonStyle,
289
+ onClick: disabled ? undefined : onClick
290
+ }, props), children);
291
+ });
292
+ BaseListItemButton.displayName = "BaseListItemButton";
293
+ withSx(BaseListItemButton);
294
+ /**
295
+ * ListItemText - Text content for list items
296
+ */
297
+
298
+ const ListItemText = /*#__PURE__*/React.forwardRef((_ref6, ref) => {
299
+ let {
300
+ primary,
301
+ secondary,
302
+ primaryTypographyProps = {},
303
+ secondaryTypographyProps = {},
304
+ inset = false,
305
+ style
306
+ } = _ref6,
307
+ props = _objectWithoutProperties(_ref6, _excluded6);
308
+
309
+ const containerStyle = _objectSpread(_objectSpread({
310
+ flex: "1 1 auto",
311
+ minWidth: 0
312
+ }, inset && {
313
+ paddingLeft: "56px"
314
+ }), style);
315
+
316
+ return /*#__PURE__*/React.createElement("div", _extends({
317
+ ref: ref,
318
+ style: containerStyle
319
+ }, props), primary && /*#__PURE__*/React.createElement("span", {
320
+ style: _objectSpread({
321
+ display: "block",
322
+ fontSize: "1rem",
323
+ lineHeight: 1.5
324
+ }, primaryTypographyProps.style)
325
+ }, primary), secondary && /*#__PURE__*/React.createElement("span", {
326
+ style: _objectSpread({
327
+ display: "block",
328
+ fontSize: "0.875rem",
329
+ color: "var(--secondary-text, rgba(0, 0, 0, 0.6))",
330
+ lineHeight: 1.43
331
+ }, secondaryTypographyProps.style)
332
+ }, secondary));
333
+ });
334
+ ListItemText.displayName = "ListItemText";
335
+ /**
336
+ * ListItemIcon - Icon container for list items
337
+ */
338
+
339
+ const ListItemIcon = /*#__PURE__*/React.forwardRef((_ref7, ref) => {
340
+ let {
341
+ children,
342
+ style
343
+ } = _ref7,
344
+ props = _objectWithoutProperties(_ref7, _excluded7);
345
+
346
+ return /*#__PURE__*/React.createElement("div", _extends({
347
+ ref: ref,
348
+ style: _objectSpread({
349
+ minWidth: "56px",
350
+ display: "flex",
351
+ color: "var(--icons-in-active, rgba(0, 0, 0, 0.54))"
352
+ }, style)
353
+ }, props), children);
354
+ });
355
+ ListItemIcon.displayName = "ListItemIcon";
356
+ /**
357
+ * ListItemAvatar - Avatar container for list items
358
+ */
359
+
360
+ const ListItemAvatar = /*#__PURE__*/React.forwardRef((_ref8, ref) => {
361
+ let {
362
+ children,
363
+ style
364
+ } = _ref8,
365
+ props = _objectWithoutProperties(_ref8, _excluded8);
366
+
367
+ return /*#__PURE__*/React.createElement("div", _extends({
368
+ ref: ref,
369
+ style: _objectSpread({
370
+ minWidth: "56px"
371
+ }, style)
372
+ }, props), children);
373
+ });
374
+ ListItemAvatar.displayName = "ListItemAvatar";
375
+ /**
376
+ * Table - Basic table (replaces MUI Table)
377
+ */
378
+
379
+ const BaseTable = /*#__PURE__*/React.forwardRef((_ref9, ref) => {
380
+ let {
381
+ size = "medium",
382
+ stickyHeader = false,
383
+ children,
384
+ style
385
+ } = _ref9,
386
+ props = _objectWithoutProperties(_ref9, _excluded9);
387
+
388
+ const tableStyle = _objectSpread({
389
+ display: "table",
390
+ width: "100%",
391
+ borderCollapse: "collapse",
392
+ borderSpacing: 0
393
+ }, style);
394
+
395
+ return /*#__PURE__*/React.createElement("table", _extends({
396
+ ref: ref,
397
+ style: tableStyle
398
+ }, props), children);
399
+ });
400
+ BaseTable.displayName = "BaseTable";
401
+ const Table = withSx(BaseTable);
402
+ /**
403
+ * TableHead - Table header group
404
+ */
405
+
406
+ const TableHead = /*#__PURE__*/React.forwardRef((_ref10, ref) => {
407
+ let {
408
+ children,
409
+ style
410
+ } = _ref10,
411
+ props = _objectWithoutProperties(_ref10, _excluded10);
412
+
413
+ return /*#__PURE__*/React.createElement("thead", _extends({
414
+ ref: ref,
415
+ style: _objectSpread({
416
+ display: "table-header-group"
417
+ }, style)
418
+ }, props), children);
419
+ });
420
+ TableHead.displayName = "TableHead";
421
+ /**
422
+ * TableBody - Table body group
423
+ */
424
+
425
+ const TableBody = /*#__PURE__*/React.forwardRef((_ref11, ref) => {
426
+ let {
427
+ children,
428
+ style
429
+ } = _ref11,
430
+ props = _objectWithoutProperties(_ref11, _excluded11);
431
+
432
+ return /*#__PURE__*/React.createElement("tbody", _extends({
433
+ ref: ref,
434
+ style: _objectSpread({
435
+ display: "table-row-group"
436
+ }, style)
437
+ }, props), children);
438
+ });
439
+ TableBody.displayName = "TableBody";
440
+ /**
441
+ * TableRow - Table row
442
+ */
443
+
444
+ const TableRow = /*#__PURE__*/React.forwardRef((_ref12, ref) => {
445
+ let {
446
+ hover = false,
447
+ selected = false,
448
+ children,
449
+ style
450
+ } = _ref12,
451
+ props = _objectWithoutProperties(_ref12, _excluded12);
452
+
453
+ return /*#__PURE__*/React.createElement("tr", _extends({
454
+ ref: ref,
455
+ style: _objectSpread(_objectSpread({
456
+ display: "table-row",
457
+ verticalAlign: "middle"
458
+ }, selected && {
459
+ backgroundColor: "rgba(0, 0, 0, 0.08)"
460
+ }), style)
461
+ }, props), children);
462
+ });
463
+ TableRow.displayName = "TableRow";
464
+ /**
465
+ * TableCell - Table cell
466
+ */
467
+
468
+ const TableCell = /*#__PURE__*/React.forwardRef((_ref13, ref) => {
469
+ let {
470
+ align = "left",
471
+ padding = "normal",
472
+ size = "medium",
473
+ variant,
474
+ sortDirection,
475
+ children,
476
+ component,
477
+ style
478
+ } = _ref13,
479
+ props = _objectWithoutProperties(_ref13, _excluded13);
480
+
481
+ const Component = component || (variant === "head" ? "th" : "td");
482
+
483
+ const cellStyle = _objectSpread(_objectSpread({
484
+ display: "table-cell",
485
+ verticalAlign: "inherit",
486
+ borderBottom: "1px solid var(--border-color, rgba(224, 224, 224, 1))",
487
+ textAlign: align,
488
+ padding: padding === "none" ? 0 : padding === "checkbox" ? "0 0 0 4px" : size === "small" ? "6px 16px" : "16px",
489
+ fontSize: "0.875rem",
490
+ lineHeight: 1.43
491
+ }, variant === "head" && {
492
+ fontWeight: 500,
493
+ color: "var(--body-text)"
494
+ }), style);
495
+
496
+ return /*#__PURE__*/React.createElement(Component, _extends({
497
+ ref: ref,
498
+ style: cellStyle
499
+ }, props), children);
500
+ });
501
+ TableCell.displayName = "TableCell";
502
+ /**
503
+ * TableContainer - Wrapper for tables with overflow handling
504
+ */
505
+
506
+ const TableContainer = /*#__PURE__*/React.forwardRef((_ref14, ref) => {
507
+ let {
508
+ children,
509
+ style
510
+ } = _ref14,
511
+ props = _objectWithoutProperties(_ref14, _excluded14);
512
+
513
+ return /*#__PURE__*/React.createElement("div", _extends({
514
+ ref: ref,
515
+ style: _objectSpread({
516
+ width: "100%",
517
+ overflowX: "auto"
518
+ }, style)
519
+ }, props), children);
520
+ });
521
+ TableContainer.displayName = "TableContainer";
522
+ /**
523
+ * ImageList - Grid of images (replaces MUI ImageList)
524
+ */
525
+
526
+ const BaseImageList = /*#__PURE__*/React.forwardRef((_ref15, ref) => {
527
+ let {
528
+ cols = 2,
529
+ gap = 4,
530
+ rowHeight = "auto",
531
+ variant = "standard",
532
+ children,
533
+ style
534
+ } = _ref15,
535
+ props = _objectWithoutProperties(_ref15, _excluded15);
536
+
537
+ const imageListStyle = _objectSpread({
538
+ display: "grid",
539
+ gridTemplateColumns: "repeat(".concat(cols, ", 1fr)"),
540
+ gap: "".concat(gap, "px"),
541
+ overflowY: "auto",
542
+ listStyle: "none",
543
+ padding: 0,
544
+ margin: 0
545
+ }, style);
546
+
547
+ return /*#__PURE__*/React.createElement("ul", _extends({
548
+ ref: ref,
549
+ style: imageListStyle
550
+ }, props), children);
551
+ });
552
+ BaseImageList.displayName = "BaseImageList";
553
+ const ImageList = withSx(BaseImageList);
554
+ /**
555
+ * ImageListItem - Item in ImageList
556
+ */
557
+
558
+ const ImageListItem = /*#__PURE__*/React.forwardRef((_ref16, ref) => {
559
+ let {
560
+ cols = 1,
561
+ rows = 1,
562
+ children,
563
+ style
564
+ } = _ref16,
565
+ props = _objectWithoutProperties(_ref16, _excluded16);
566
+
567
+ return /*#__PURE__*/React.createElement("li", _extends({
568
+ ref: ref,
569
+ style: _objectSpread({
570
+ gridColumnEnd: "span ".concat(cols),
571
+ gridRowEnd: "span ".concat(rows),
572
+ overflow: "hidden"
573
+ }, style)
574
+ }, props), children);
575
+ });
576
+ ImageListItem.displayName = "ImageListItem";
577
+ /**
578
+ * Accordion - Simple wrapper
579
+ */
580
+
581
+ const Accordion = /*#__PURE__*/React.forwardRef((_ref17, ref) => {
582
+ let {
583
+ expanded,
584
+ defaultExpanded,
585
+ onChange,
586
+ disabled,
587
+ children,
588
+ style,
589
+ sx
590
+ } = _ref17,
591
+ props = _objectWithoutProperties(_ref17, _excluded17);
592
+
593
+ const [internalExpanded, setInternalExpanded] = useState(defaultExpanded !== null && defaultExpanded !== void 0 ? defaultExpanded : false);
594
+ const isExpanded = expanded !== undefined ? expanded : internalExpanded;
595
+
596
+ const handleToggle = e => {
597
+ if (disabled) return;
598
+ const newExpanded = !isExpanded;
599
+
600
+ if (expanded === undefined) {
601
+ setInternalExpanded(newExpanded);
602
+ }
603
+
604
+ onChange === null || onChange === void 0 ? void 0 : onChange(e, newExpanded);
605
+ };
606
+
607
+ const accordionStyle = _objectSpread(_objectSpread({
608
+ backgroundColor: "transparent",
609
+ boxShadow: "none",
610
+ width: "100%"
611
+ }, style), typeof sx === "object" ? sx : {}); // Clone ALL children and pass the props - let them decide what to do with it
612
+
613
+
614
+ const childrenWithProps = React.Children.map(children, child => {
615
+ if (! /*#__PURE__*/React.isValidElement(child)) return child; // Pass props to ALL children - harmless for those that don't need them
616
+
617
+ return /*#__PURE__*/React.cloneElement(child, {
618
+ _expanded: isExpanded,
619
+ _onToggle: handleToggle,
620
+ _disabled: disabled
621
+ });
622
+ });
623
+ return /*#__PURE__*/React.createElement("div", _extends({
624
+ ref: ref,
625
+ style: accordionStyle
626
+ }, props), childrenWithProps);
627
+ });
628
+ Accordion.displayName = "Accordion";
629
+ /**
630
+ * AccordionSummary - Clickable header
631
+ */
632
+
633
+ const AccordionSummary = /*#__PURE__*/React.forwardRef((_ref18, ref) => {
634
+ let {
635
+ expandIcon,
636
+ children,
637
+ onClick,
638
+ _expanded,
639
+ _onToggle,
640
+ _disabled,
641
+ style,
642
+ sx
643
+ } = _ref18,
644
+ props = _objectWithoutProperties(_ref18, _excluded18);
645
+
646
+ const [isHovered, setIsHovered] = React.useState(false);
647
+
648
+ const handleClick = e => {
649
+ e.stopPropagation();
650
+
651
+ if (_onToggle) {
652
+ _onToggle(e);
653
+ }
654
+
655
+ if (onClick) {
656
+ onClick(e);
657
+ }
658
+ }; // Parse sx object to extract relevant styles
659
+
660
+
661
+ const sxStyles = typeof sx === "object" ? sx : {};
662
+ const sxContentStyles = sxStyles["& .MuiAccordionSummary-content"] || {};
663
+
664
+ const summaryStyle = _objectSpread(_objectSpread(_objectSpread(_objectSpread({
665
+ display: "flex",
666
+ alignItems: "center",
667
+ justifyContent: "flex-start",
668
+ // Left align the whole thing
669
+ padding: "16px",
670
+ minHeight: "48px",
671
+ cursor: _disabled ? "default" : "pointer",
672
+ userSelect: "none",
673
+ backgroundColor: "transparent",
674
+ transition: "background-color 150ms"
675
+ }, _disabled && {
676
+ opacity: 0.5
677
+ }), isHovered && !_disabled && {
678
+ backgroundColor: "rgba(0, 0, 0, 0.04)"
679
+ }), style), Object.keys(sxStyles).reduce((acc, key) => {
680
+ if (!key.startsWith("&")) {
681
+ acc[key] = sxStyles[key];
682
+ }
683
+
684
+ return acc;
685
+ }, {}));
686
+
687
+ const contentWrapperStyle = _objectSpread({
688
+ display: "flex",
689
+ flexDirection: "column",
690
+ // Stack children vertically
691
+ alignItems: "flex-start",
692
+ // Left align content
693
+ flexGrow: 1,
694
+ margin: "12px 0",
695
+ minWidth: 0
696
+ }, sxContentStyles);
697
+
698
+ const iconStyle = {
699
+ display: "flex",
700
+ alignItems: "center",
701
+ justifyContent: "center",
702
+ marginLeft: "16px",
703
+ // Space between content and icon
704
+ flexShrink: 0,
705
+ transform: _expanded ? "rotate(180deg)" : "rotate(0deg)",
706
+ transition: "transform 200ms cubic-bezier(0.4, 0, 0.2, 1)"
707
+ };
708
+ return /*#__PURE__*/React.createElement("div", _extends({
709
+ ref: ref,
710
+ role: "button",
711
+ tabIndex: _disabled ? -1 : 0,
712
+ "aria-expanded": _expanded,
713
+ "aria-disabled": _disabled,
714
+ style: summaryStyle,
715
+ onClick: handleClick,
716
+ onMouseEnter: () => setIsHovered(true),
717
+ onMouseLeave: () => setIsHovered(false),
718
+ onKeyDown: e => {
719
+ if (e.key === "Enter" || e.key === " ") {
720
+ e.preventDefault();
721
+ handleClick(e);
722
+ }
723
+ }
724
+ }, props), /*#__PURE__*/React.createElement("div", {
725
+ style: contentWrapperStyle
726
+ }, children), expandIcon && /*#__PURE__*/React.createElement("span", {
727
+ style: iconStyle
728
+ }, expandIcon));
729
+ });
730
+ AccordionSummary.displayName = "AccordionSummary";
731
+ /**
732
+ * AccordionDetails - Content area
733
+ */
734
+
735
+ const AccordionDetails = /*#__PURE__*/React.forwardRef((_ref19, ref) => {
736
+ let {
737
+ children,
738
+ _expanded,
739
+ style,
740
+ sx
741
+ } = _ref19,
742
+ props = _objectWithoutProperties(_ref19, _excluded19);
743
+
744
+ // If _expanded is not passed (undefined), default to showing content
745
+ // This handles cases where it's used outside an Accordion
746
+ const shouldShow = _expanded !== false;
747
+ if (!shouldShow) return null;
748
+
749
+ const detailsStyle = _objectSpread(_objectSpread({
750
+ padding: 0,
751
+ backgroundColor: "transparent"
752
+ }, style), typeof sx === "object" ? sx : {});
753
+
754
+ return /*#__PURE__*/React.createElement("div", _extends({
755
+ ref: ref,
756
+ style: detailsStyle
757
+ }, props), children);
758
+ });
759
+ AccordionDetails.displayName = "AccordionDetails";
760
+ /**
761
+ * AccordionActions - Actions area
762
+ */
763
+
764
+ const AccordionActions = /*#__PURE__*/React.forwardRef((_ref20, ref) => {
765
+ let {
766
+ disableSpacing,
767
+ children,
768
+ style,
769
+ sx
770
+ } = _ref20,
771
+ props = _objectWithoutProperties(_ref20, _excluded20);
772
+
773
+ const actionsStyle = _objectSpread(_objectSpread({
774
+ display: "flex",
775
+ alignItems: "center",
776
+ justifyContent: "flex-end",
777
+ padding: "8px",
778
+ gap: disableSpacing ? 0 : "8px"
779
+ }, style), typeof sx === "object" ? sx : {});
780
+
781
+ return /*#__PURE__*/React.createElement("div", _extends({
782
+ ref: ref,
783
+ style: actionsStyle
784
+ }, props), children);
785
+ });
786
+ AccordionActions.displayName = "AccordionActions";
787
+ /**
788
+ * ButtonGroup - Group of buttons (replaces MUI ButtonGroup)
789
+ */
790
+
791
+ const BaseButtonGroup = /*#__PURE__*/React.forwardRef((_ref21, ref) => {
792
+ let {
793
+ variant = "outlined",
794
+ color = "primary",
795
+ size = "medium",
796
+ orientation = "horizontal",
797
+ disabled = false,
798
+ fullWidth = false,
799
+ children,
800
+ style
801
+ } = _ref21,
802
+ props = _objectWithoutProperties(_ref21, _excluded21);
803
+
804
+ const groupStyle = _objectSpread(_objectSpread({
805
+ display: "inline-flex",
806
+ flexDirection: orientation === "horizontal" ? "row" : "column",
807
+ borderRadius: "4px"
808
+ }, fullWidth && {
809
+ width: "100%"
810
+ }), style);
811
+
812
+ const childArray = React.Children.toArray(children);
813
+ const styledChildren = childArray.map((child, index) => {
814
+ if (! /*#__PURE__*/React.isValidElement(child)) return child;
815
+ const isFirst = index === 0;
816
+ const isLast = index === childArray.length - 1;
817
+ return /*#__PURE__*/React.cloneElement(child, {
818
+ variant,
819
+ color,
820
+ size,
821
+ disabled: disabled || child.props.disabled,
822
+ style: _objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread({}, child.props.style), {}, {
823
+ borderRadius: 0
824
+ }, isFirst && orientation === "horizontal" && {
825
+ borderTopLeftRadius: "4px",
826
+ borderBottomLeftRadius: "4px"
827
+ }), isLast && orientation === "horizontal" && {
828
+ borderTopRightRadius: "4px",
829
+ borderBottomRightRadius: "4px"
830
+ }), isFirst && orientation === "vertical" && {
831
+ borderTopLeftRadius: "4px",
832
+ borderTopRightRadius: "4px"
833
+ }), isLast && orientation === "vertical" && {
834
+ borderBottomLeftRadius: "4px",
835
+ borderBottomRightRadius: "4px"
836
+ }), !isLast && orientation === "horizontal" && {
837
+ borderRight: "none"
838
+ }), !isLast && orientation === "vertical" && {
839
+ borderBottom: "none"
840
+ })
841
+ });
842
+ });
843
+ return /*#__PURE__*/React.createElement("div", _extends({
844
+ ref: ref,
845
+ role: "group",
846
+ style: groupStyle
847
+ }, props), styledChildren);
848
+ });
849
+ BaseButtonGroup.displayName = "BaseButtonGroup";
850
+ const ButtonGroup = withSx(BaseButtonGroup);
851
+ /**
852
+ * Breadcrumbs - Navigation breadcrumbs (replaces MUI Breadcrumbs)
853
+ */
854
+
855
+ const BaseBreadcrumbs = /*#__PURE__*/React.forwardRef((_ref22, ref) => {
856
+ let {
857
+ separator = "/",
858
+ maxItems = 8,
859
+ itemsBeforeCollapse = 1,
860
+ itemsAfterCollapse = 1,
861
+ children,
862
+ style
863
+ } = _ref22,
864
+ props = _objectWithoutProperties(_ref22, _excluded22);
865
+
866
+ const childArray = React.Children.toArray(children);
867
+
868
+ const breadcrumbsStyle = _objectSpread({
869
+ display: "flex",
870
+ flexWrap: "wrap",
871
+ alignItems: "center",
872
+ padding: 0,
873
+ margin: 0,
874
+ listStyle: "none"
875
+ }, style);
876
+
877
+ const separatorStyle = {
878
+ display: "flex",
879
+ userSelect: "none",
880
+ margin: "0 8px",
881
+ color: "var(--secondary-text, rgba(0, 0, 0, 0.54))"
882
+ };
883
+ const items = childArray.map((child, index) => /*#__PURE__*/React.createElement(React.Fragment, {
884
+ key: index
885
+ }, /*#__PURE__*/React.createElement("li", {
886
+ style: {
887
+ display: "flex",
888
+ alignItems: "center"
889
+ }
890
+ }, child), index < childArray.length - 1 && /*#__PURE__*/React.createElement("li", {
891
+ style: separatorStyle
892
+ }, separator)));
893
+ return /*#__PURE__*/React.createElement("nav", _extends({
894
+ ref: ref,
895
+ "aria-label": "breadcrumb"
896
+ }, props), /*#__PURE__*/React.createElement("ol", {
897
+ style: breadcrumbsStyle
898
+ }, items));
899
+ });
900
+ BaseBreadcrumbs.displayName = "BaseBreadcrumbs";
901
+ const Breadcrumbs = withSx(BaseBreadcrumbs);
902
+ /**
903
+ * Pagination - Page navigation (replaces MUI Pagination)
904
+ */
905
+
906
+ const BasePagination = /*#__PURE__*/React.forwardRef((_ref23, ref) => {
907
+ let {
908
+ count = 1,
909
+ page = 1,
910
+ onChange,
911
+ color = "primary",
912
+ size = "medium",
913
+ disabled = false,
914
+ showFirstButton = false,
915
+ showLastButton = false,
916
+ siblingCount = 1,
917
+ boundaryCount = 1,
918
+ style
919
+ } = _ref23,
920
+ props = _objectWithoutProperties(_ref23, _excluded23);
921
+
922
+ const {
923
+ colors
924
+ } = useTheme();
925
+ const colorValue = colors[color] || colors.primary;
926
+ const mainColor = typeof colorValue === "object" ? colorValue.main : colorValue;
927
+ const sizeMap = {
928
+ small: "26px",
929
+ medium: "32px",
930
+ large: "40px"
931
+ };
932
+ const buttonSize = sizeMap[size] || sizeMap.medium;
933
+
934
+ const containerStyle = _objectSpread({
935
+ display: "flex",
936
+ alignItems: "center",
937
+ gap: "4px"
938
+ }, style);
939
+
940
+ const buttonStyle = isSelected => _objectSpread({
941
+ minWidth: buttonSize,
942
+ height: buttonSize,
943
+ padding: "0 6px",
944
+ display: "flex",
945
+ alignItems: "center",
946
+ justifyContent: "center",
947
+ borderRadius: "50%",
948
+ border: "none",
949
+ cursor: disabled ? "default" : "pointer",
950
+ backgroundColor: isSelected ? mainColor : "transparent",
951
+ color: isSelected ? "#fff" : "var(--body-text)",
952
+ fontSize: "0.875rem",
953
+ transition: "background-color 250ms"
954
+ }, disabled && {
955
+ opacity: 0.5
956
+ }); // Generate page numbers to show
957
+
958
+
959
+ const range = (start, end) => Array.from({
960
+ length: end - start + 1
961
+ }, (_, i) => start + i);
962
+
963
+ const startPages = range(1, Math.min(boundaryCount, count));
964
+ const endPages = range(Math.max(count - boundaryCount + 1, boundaryCount + 1), count);
965
+ const siblingsStart = Math.max(Math.min(page - siblingCount, count - boundaryCount - siblingCount * 2 - 1), boundaryCount + 2);
966
+ const siblingsEnd = Math.min(Math.max(page + siblingCount, boundaryCount + siblingCount * 2 + 2), endPages.length > 0 ? endPages[0] - 2 : count - 1);
967
+ const items = [...(showFirstButton ? ["first"] : []), "prev", ...startPages, ...(siblingsStart > boundaryCount + 2 ? ["ellipsis"] : boundaryCount + 1 < count - boundaryCount ? [boundaryCount + 1] : []), ...range(siblingsStart, siblingsEnd), ...(siblingsEnd < count - boundaryCount - 1 ? ["ellipsis"] : count - boundaryCount > boundaryCount ? [count - boundaryCount] : []), ...endPages, "next", ...(showLastButton ? ["last"] : [])];
968
+ return /*#__PURE__*/React.createElement("nav", _extends({
969
+ ref: ref,
970
+ "aria-label": "pagination",
971
+ style: containerStyle
972
+ }, props), items.map((item, index) => {
973
+ if (item === "ellipsis") {
974
+ return /*#__PURE__*/React.createElement("span", {
975
+ key: index,
976
+ style: {
977
+ padding: "0 4px"
978
+ }
979
+ }, "...");
980
+ }
981
+
982
+ if (item === "first") {
983
+ return /*#__PURE__*/React.createElement("button", {
984
+ key: "first",
985
+ style: buttonStyle(false),
986
+ onClick: () => onChange === null || onChange === void 0 ? void 0 : onChange({}, 1),
987
+ disabled: disabled || page === 1
988
+ }, "\u27EA");
989
+ }
990
+
991
+ if (item === "prev") {
992
+ return /*#__PURE__*/React.createElement("button", {
993
+ key: "prev",
994
+ style: buttonStyle(false),
995
+ onClick: () => onChange === null || onChange === void 0 ? void 0 : onChange({}, page - 1),
996
+ disabled: disabled || page === 1
997
+ }, "\u2039");
998
+ }
999
+
1000
+ if (item === "next") {
1001
+ return /*#__PURE__*/React.createElement("button", {
1002
+ key: "next",
1003
+ style: buttonStyle(false),
1004
+ onClick: () => onChange === null || onChange === void 0 ? void 0 : onChange({}, page + 1),
1005
+ disabled: disabled || page === count
1006
+ }, "\u203A");
1007
+ }
1008
+
1009
+ if (item === "last") {
1010
+ return /*#__PURE__*/React.createElement("button", {
1011
+ key: "last",
1012
+ style: buttonStyle(false),
1013
+ onClick: () => onChange === null || onChange === void 0 ? void 0 : onChange({}, count),
1014
+ disabled: disabled || page === count
1015
+ }, "\u27EB");
1016
+ }
1017
+
1018
+ return /*#__PURE__*/React.createElement("button", {
1019
+ key: item,
1020
+ style: buttonStyle(item === page),
1021
+ onClick: () => onChange === null || onChange === void 0 ? void 0 : onChange({}, item),
1022
+ disabled: disabled
1023
+ }, item);
1024
+ }));
1025
+ });
1026
+ BasePagination.displayName = "BasePagination";
1027
+ const Pagination = withSx(BasePagination);
1028
+ /**
1029
+ * SvgIcon - Wrapper for SVG icons (replaces MUI SvgIcon)
1030
+ */
1031
+
1032
+ const BaseSvgIcon = /*#__PURE__*/React.forwardRef((_ref24, ref) => {
1033
+ let {
1034
+ children,
1035
+ color = "inherit",
1036
+ fontSize = "medium",
1037
+ viewBox = "0 0 24 24",
1038
+ titleAccess,
1039
+ style
1040
+ } = _ref24,
1041
+ props = _objectWithoutProperties(_ref24, _excluded24);
1042
+
1043
+ const {
1044
+ colors
1045
+ } = useTheme();
1046
+
1047
+ const getColor = () => {
1048
+ var _colors$error, _colors$primary, _colors$secondary;
1049
+
1050
+ if (color === "inherit") return "inherit";
1051
+ if (color === "action") return "var(--icons-in-active, rgba(0, 0, 0, 0.54))";
1052
+ if (color === "disabled") return "var(--disabled-text, rgba(0, 0, 0, 0.26))";
1053
+ if (color === "error") return ((_colors$error = colors.error) === null || _colors$error === void 0 ? void 0 : _colors$error.main) || "#d32f2f";
1054
+ if (color === "primary") return ((_colors$primary = colors.primary) === null || _colors$primary === void 0 ? void 0 : _colors$primary.main) || "#1976d2";
1055
+ if (color === "secondary") return ((_colors$secondary = colors.secondary) === null || _colors$secondary === void 0 ? void 0 : _colors$secondary.main) || "#9c27b0";
1056
+ return color;
1057
+ };
1058
+
1059
+ const sizeMap = {
1060
+ inherit: "inherit",
1061
+ small: "1.25rem",
1062
+ medium: "1.5rem",
1063
+ large: "2.1875rem"
1064
+ };
1065
+
1066
+ const iconStyle = _objectSpread({
1067
+ userSelect: "none",
1068
+ width: "1em",
1069
+ height: "1em",
1070
+ display: "inline-block",
1071
+ fill: "currentColor",
1072
+ flexShrink: 0,
1073
+ fontSize: sizeMap[fontSize] || fontSize,
1074
+ color: getColor(),
1075
+ transition: "fill 200ms"
1076
+ }, style);
1077
+
1078
+ return /*#__PURE__*/React.createElement("svg", _extends({
1079
+ ref: ref,
1080
+ style: iconStyle,
1081
+ viewBox: viewBox,
1082
+ focusable: "false",
1083
+ "aria-hidden": !titleAccess
1084
+ }, props), titleAccess && /*#__PURE__*/React.createElement("title", null, titleAccess), children);
1085
+ });
1086
+ BaseSvgIcon.displayName = "BaseSvgIcon";
1087
+ const SvgIcon = withSx(BaseSvgIcon);
1088
+ /**
1089
+ * FormControl - Form field wrapper (replaces MUI FormControl)
1090
+ */
1091
+
1092
+ const BaseFormControl = /*#__PURE__*/React.forwardRef((_ref25, ref) => {
1093
+ let {
1094
+ fullWidth = false,
1095
+ disabled = false,
1096
+ error = false,
1097
+ required = false,
1098
+ variant = "outlined",
1099
+ size = "medium",
1100
+ margin = "none",
1101
+ children,
1102
+ style
1103
+ } = _ref25,
1104
+ props = _objectWithoutProperties(_ref25, _excluded25);
1105
+
1106
+ const formControlStyle = _objectSpread(_objectSpread({
1107
+ display: "inline-flex",
1108
+ flexDirection: "column",
1109
+ position: "relative",
1110
+ minWidth: 0,
1111
+ padding: 0,
1112
+ margin: margin === "dense" ? "8px 0 4px" : margin === "normal" ? "16px 0 8px" : 0,
1113
+ border: 0,
1114
+ verticalAlign: "top"
1115
+ }, fullWidth && {
1116
+ width: "100%"
1117
+ }), style);
1118
+
1119
+ return /*#__PURE__*/React.createElement("div", _extends({
1120
+ ref: ref,
1121
+ style: formControlStyle
1122
+ }, props), children);
1123
+ });
1124
+ BaseFormControl.displayName = "BaseFormControl";
1125
+ const FormControl = withSx(BaseFormControl);
1126
+ /**
1127
+ * InputLabel - Label for form inputs (replaces MUI InputLabel)
1128
+ */
1129
+
1130
+ const BaseInputLabel = /*#__PURE__*/React.forwardRef((_ref26, ref) => {
1131
+ var _colors$error2, _colors$primary2;
1132
+
1133
+ let {
1134
+ shrink = false,
1135
+ disabled = false,
1136
+ error = false,
1137
+ required = false,
1138
+ focused = false,
1139
+ variant = "outlined",
1140
+ size = "medium",
1141
+ children,
1142
+ style
1143
+ } = _ref26,
1144
+ props = _objectWithoutProperties(_ref26, _excluded26);
1145
+
1146
+ const {
1147
+ colors
1148
+ } = useTheme();
1149
+
1150
+ const labelStyle = _objectSpread(_objectSpread({
1151
+ color: error ? (_colors$error2 = colors.error) === null || _colors$error2 === void 0 ? void 0 : _colors$error2.main : focused ? (_colors$primary2 = colors.primary) === null || _colors$primary2 === void 0 ? void 0 : _colors$primary2.main : "var(--secondary-text, rgba(0, 0, 0, 0.6))",
1152
+ fontSize: shrink ? "0.75rem" : "1rem",
1153
+ lineHeight: "1.4375em",
1154
+ letterSpacing: "0.00938em",
1155
+ padding: 0,
1156
+ display: "block",
1157
+ transformOrigin: "top left",
1158
+ whiteSpace: "nowrap",
1159
+ overflow: "hidden",
1160
+ textOverflow: "ellipsis",
1161
+ maxWidth: shrink ? "133%" : "100%",
1162
+ position: "absolute",
1163
+ left: 0,
1164
+ top: 0,
1165
+ transform: shrink ? "translate(14px, -9px) scale(0.75)" : "translate(14px, 16px) scale(1)",
1166
+ transition: "color 200ms, transform 200ms, max-width 200ms",
1167
+ pointerEvents: "none"
1168
+ }, disabled && {
1169
+ opacity: 0.5
1170
+ }), style);
1171
+
1172
+ return /*#__PURE__*/React.createElement("label", _extends({
1173
+ ref: ref,
1174
+ style: labelStyle
1175
+ }, props), children, required && " *");
1176
+ });
1177
+ BaseInputLabel.displayName = "BaseInputLabel";
1178
+ const InputLabel = withSx(BaseInputLabel);
1179
+
1180
+ export { Accordion, AccordionActions, AccordionDetails, AccordionSummary, AppBar, Breadcrumbs, ButtonGroup, FormControl, ImageList, ImageListItem, InputLabel, List, ListItemAvatar, ListItemIcon, ListItemText, Pagination, SvgIcon, Table, TableBody, TableCell, TableContainer, TableHead, TableRow, Toolbar };