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