@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,1214 @@
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
+ AccordionSummary.displayName = "AccordionSummary";
742
+ /**
743
+ * AccordionDetails - Content area
744
+ */
745
+
746
+ const AccordionDetails = /*#__PURE__*/React__default["default"].forwardRef((_ref19, ref) => {
747
+ let {
748
+ children,
749
+ _expanded,
750
+ style,
751
+ sx
752
+ } = _ref19,
753
+ props = _objectWithoutProperties__default["default"](_ref19, _excluded19);
754
+
755
+ // If _expanded is not passed (undefined), default to showing content
756
+ // This handles cases where it's used outside an Accordion
757
+ const shouldShow = _expanded !== false;
758
+ if (!shouldShow) return null;
759
+
760
+ const detailsStyle = _objectSpread(_objectSpread({
761
+ padding: 0,
762
+ backgroundColor: "transparent"
763
+ }, style), typeof sx === "object" ? sx : {});
764
+
765
+ return /*#__PURE__*/React__default["default"].createElement("div", _extends__default["default"]({
766
+ ref: ref,
767
+ style: detailsStyle
768
+ }, props), children);
769
+ });
770
+ AccordionDetails.displayName = "AccordionDetails";
771
+ /**
772
+ * AccordionActions - Actions area
773
+ */
774
+
775
+ const AccordionActions = /*#__PURE__*/React__default["default"].forwardRef((_ref20, ref) => {
776
+ let {
777
+ disableSpacing,
778
+ children,
779
+ style,
780
+ sx
781
+ } = _ref20,
782
+ props = _objectWithoutProperties__default["default"](_ref20, _excluded20);
783
+
784
+ const actionsStyle = _objectSpread(_objectSpread({
785
+ display: "flex",
786
+ alignItems: "center",
787
+ justifyContent: "flex-end",
788
+ padding: "8px",
789
+ gap: disableSpacing ? 0 : "8px"
790
+ }, style), typeof sx === "object" ? sx : {});
791
+
792
+ return /*#__PURE__*/React__default["default"].createElement("div", _extends__default["default"]({
793
+ ref: ref,
794
+ style: actionsStyle
795
+ }, props), children);
796
+ });
797
+ AccordionActions.displayName = "AccordionActions";
798
+ /**
799
+ * ButtonGroup - Group of buttons (replaces MUI ButtonGroup)
800
+ */
801
+
802
+ const BaseButtonGroup = /*#__PURE__*/React__default["default"].forwardRef((_ref21, ref) => {
803
+ let {
804
+ variant = "outlined",
805
+ color = "primary",
806
+ size = "medium",
807
+ orientation = "horizontal",
808
+ disabled = false,
809
+ fullWidth = false,
810
+ children,
811
+ style
812
+ } = _ref21,
813
+ props = _objectWithoutProperties__default["default"](_ref21, _excluded21);
814
+
815
+ const groupStyle = _objectSpread(_objectSpread({
816
+ display: "inline-flex",
817
+ flexDirection: orientation === "horizontal" ? "row" : "column",
818
+ borderRadius: "4px"
819
+ }, fullWidth && {
820
+ width: "100%"
821
+ }), style);
822
+
823
+ const childArray = React__default["default"].Children.toArray(children);
824
+ const styledChildren = childArray.map((child, index) => {
825
+ if (! /*#__PURE__*/React__default["default"].isValidElement(child)) return child;
826
+ const isFirst = index === 0;
827
+ const isLast = index === childArray.length - 1;
828
+ return /*#__PURE__*/React__default["default"].cloneElement(child, {
829
+ variant,
830
+ color,
831
+ size,
832
+ disabled: disabled || child.props.disabled,
833
+ style: _objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread({}, child.props.style), {}, {
834
+ borderRadius: 0
835
+ }, isFirst && orientation === "horizontal" && {
836
+ borderTopLeftRadius: "4px",
837
+ borderBottomLeftRadius: "4px"
838
+ }), isLast && orientation === "horizontal" && {
839
+ borderTopRightRadius: "4px",
840
+ borderBottomRightRadius: "4px"
841
+ }), isFirst && orientation === "vertical" && {
842
+ borderTopLeftRadius: "4px",
843
+ borderTopRightRadius: "4px"
844
+ }), isLast && orientation === "vertical" && {
845
+ borderBottomLeftRadius: "4px",
846
+ borderBottomRightRadius: "4px"
847
+ }), !isLast && orientation === "horizontal" && {
848
+ borderRight: "none"
849
+ }), !isLast && orientation === "vertical" && {
850
+ borderBottom: "none"
851
+ })
852
+ });
853
+ });
854
+ return /*#__PURE__*/React__default["default"].createElement("div", _extends__default["default"]({
855
+ ref: ref,
856
+ role: "group",
857
+ style: groupStyle
858
+ }, props), styledChildren);
859
+ });
860
+ BaseButtonGroup.displayName = "BaseButtonGroup";
861
+ const ButtonGroup = withSx.withSx(BaseButtonGroup);
862
+ /**
863
+ * Breadcrumbs - Navigation breadcrumbs (replaces MUI Breadcrumbs)
864
+ */
865
+
866
+ const BaseBreadcrumbs = /*#__PURE__*/React__default["default"].forwardRef((_ref22, ref) => {
867
+ let {
868
+ separator = "/",
869
+ maxItems = 8,
870
+ itemsBeforeCollapse = 1,
871
+ itemsAfterCollapse = 1,
872
+ children,
873
+ style
874
+ } = _ref22,
875
+ props = _objectWithoutProperties__default["default"](_ref22, _excluded22);
876
+
877
+ const childArray = React__default["default"].Children.toArray(children);
878
+
879
+ const breadcrumbsStyle = _objectSpread({
880
+ display: "flex",
881
+ flexWrap: "wrap",
882
+ alignItems: "center",
883
+ padding: 0,
884
+ margin: 0,
885
+ listStyle: "none"
886
+ }, style);
887
+
888
+ const separatorStyle = {
889
+ display: "flex",
890
+ userSelect: "none",
891
+ margin: "0 8px",
892
+ color: "var(--secondary-text, rgba(0, 0, 0, 0.54))"
893
+ };
894
+ const items = childArray.map((child, index) => /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, {
895
+ key: index
896
+ }, /*#__PURE__*/React__default["default"].createElement("li", {
897
+ style: {
898
+ display: "flex",
899
+ alignItems: "center"
900
+ }
901
+ }, child), index < childArray.length - 1 && /*#__PURE__*/React__default["default"].createElement("li", {
902
+ style: separatorStyle
903
+ }, separator)));
904
+ return /*#__PURE__*/React__default["default"].createElement("nav", _extends__default["default"]({
905
+ ref: ref,
906
+ "aria-label": "breadcrumb"
907
+ }, props), /*#__PURE__*/React__default["default"].createElement("ol", {
908
+ style: breadcrumbsStyle
909
+ }, items));
910
+ });
911
+ BaseBreadcrumbs.displayName = "BaseBreadcrumbs";
912
+ const Breadcrumbs = withSx.withSx(BaseBreadcrumbs);
913
+ /**
914
+ * Pagination - Page navigation (replaces MUI Pagination)
915
+ */
916
+
917
+ const BasePagination = /*#__PURE__*/React__default["default"].forwardRef((_ref23, ref) => {
918
+ let {
919
+ count = 1,
920
+ page = 1,
921
+ onChange,
922
+ color = "primary",
923
+ size = "medium",
924
+ disabled = false,
925
+ showFirstButton = false,
926
+ showLastButton = false,
927
+ siblingCount = 1,
928
+ boundaryCount = 1,
929
+ style
930
+ } = _ref23,
931
+ props = _objectWithoutProperties__default["default"](_ref23, _excluded23);
932
+
933
+ const {
934
+ colors
935
+ } = ThemeProvider.useTheme();
936
+ const colorValue = colors[color] || colors.primary;
937
+ const mainColor = typeof colorValue === "object" ? colorValue.main : colorValue;
938
+ const sizeMap = {
939
+ small: "26px",
940
+ medium: "32px",
941
+ large: "40px"
942
+ };
943
+ const buttonSize = sizeMap[size] || sizeMap.medium;
944
+
945
+ const containerStyle = _objectSpread({
946
+ display: "flex",
947
+ alignItems: "center",
948
+ gap: "4px"
949
+ }, style);
950
+
951
+ const buttonStyle = isSelected => _objectSpread({
952
+ minWidth: buttonSize,
953
+ height: buttonSize,
954
+ padding: "0 6px",
955
+ display: "flex",
956
+ alignItems: "center",
957
+ justifyContent: "center",
958
+ borderRadius: "50%",
959
+ border: "none",
960
+ cursor: disabled ? "default" : "pointer",
961
+ backgroundColor: isSelected ? mainColor : "transparent",
962
+ color: isSelected ? "#fff" : "var(--body-text)",
963
+ fontSize: "0.875rem",
964
+ transition: "background-color 250ms"
965
+ }, disabled && {
966
+ opacity: 0.5
967
+ }); // Generate page numbers to show
968
+
969
+
970
+ const range = (start, end) => Array.from({
971
+ length: end - start + 1
972
+ }, (_, i) => start + i);
973
+
974
+ const startPages = range(1, Math.min(boundaryCount, count));
975
+ const endPages = range(Math.max(count - boundaryCount + 1, boundaryCount + 1), count);
976
+ const siblingsStart = Math.max(Math.min(page - siblingCount, count - boundaryCount - siblingCount * 2 - 1), boundaryCount + 2);
977
+ const siblingsEnd = Math.min(Math.max(page + siblingCount, boundaryCount + siblingCount * 2 + 2), endPages.length > 0 ? endPages[0] - 2 : count - 1);
978
+ 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"] : [])];
979
+ return /*#__PURE__*/React__default["default"].createElement("nav", _extends__default["default"]({
980
+ ref: ref,
981
+ "aria-label": "pagination",
982
+ style: containerStyle
983
+ }, props), items.map((item, index) => {
984
+ if (item === "ellipsis") {
985
+ return /*#__PURE__*/React__default["default"].createElement("span", {
986
+ key: index,
987
+ style: {
988
+ padding: "0 4px"
989
+ }
990
+ }, "...");
991
+ }
992
+
993
+ if (item === "first") {
994
+ return /*#__PURE__*/React__default["default"].createElement("button", {
995
+ key: "first",
996
+ style: buttonStyle(false),
997
+ onClick: () => onChange === null || onChange === void 0 ? void 0 : onChange({}, 1),
998
+ disabled: disabled || page === 1
999
+ }, "\u27EA");
1000
+ }
1001
+
1002
+ if (item === "prev") {
1003
+ return /*#__PURE__*/React__default["default"].createElement("button", {
1004
+ key: "prev",
1005
+ style: buttonStyle(false),
1006
+ onClick: () => onChange === null || onChange === void 0 ? void 0 : onChange({}, page - 1),
1007
+ disabled: disabled || page === 1
1008
+ }, "\u2039");
1009
+ }
1010
+
1011
+ if (item === "next") {
1012
+ return /*#__PURE__*/React__default["default"].createElement("button", {
1013
+ key: "next",
1014
+ style: buttonStyle(false),
1015
+ onClick: () => onChange === null || onChange === void 0 ? void 0 : onChange({}, page + 1),
1016
+ disabled: disabled || page === count
1017
+ }, "\u203A");
1018
+ }
1019
+
1020
+ if (item === "last") {
1021
+ return /*#__PURE__*/React__default["default"].createElement("button", {
1022
+ key: "last",
1023
+ style: buttonStyle(false),
1024
+ onClick: () => onChange === null || onChange === void 0 ? void 0 : onChange({}, count),
1025
+ disabled: disabled || page === count
1026
+ }, "\u27EB");
1027
+ }
1028
+
1029
+ return /*#__PURE__*/React__default["default"].createElement("button", {
1030
+ key: item,
1031
+ style: buttonStyle(item === page),
1032
+ onClick: () => onChange === null || onChange === void 0 ? void 0 : onChange({}, item),
1033
+ disabled: disabled
1034
+ }, item);
1035
+ }));
1036
+ });
1037
+ BasePagination.displayName = "BasePagination";
1038
+ const Pagination = withSx.withSx(BasePagination);
1039
+ /**
1040
+ * SvgIcon - Wrapper for SVG icons (replaces MUI SvgIcon)
1041
+ */
1042
+
1043
+ const BaseSvgIcon = /*#__PURE__*/React__default["default"].forwardRef((_ref24, ref) => {
1044
+ let {
1045
+ children,
1046
+ color = "inherit",
1047
+ fontSize = "medium",
1048
+ viewBox = "0 0 24 24",
1049
+ titleAccess,
1050
+ style
1051
+ } = _ref24,
1052
+ props = _objectWithoutProperties__default["default"](_ref24, _excluded24);
1053
+
1054
+ const {
1055
+ colors
1056
+ } = ThemeProvider.useTheme();
1057
+
1058
+ const getColor = () => {
1059
+ var _colors$error, _colors$primary, _colors$secondary;
1060
+
1061
+ if (color === "inherit") return "inherit";
1062
+ if (color === "action") return "var(--icons-in-active, rgba(0, 0, 0, 0.54))";
1063
+ if (color === "disabled") return "var(--disabled-text, rgba(0, 0, 0, 0.26))";
1064
+ if (color === "error") return ((_colors$error = colors.error) === null || _colors$error === void 0 ? void 0 : _colors$error.main) || "#d32f2f";
1065
+ if (color === "primary") return ((_colors$primary = colors.primary) === null || _colors$primary === void 0 ? void 0 : _colors$primary.main) || "#1976d2";
1066
+ if (color === "secondary") return ((_colors$secondary = colors.secondary) === null || _colors$secondary === void 0 ? void 0 : _colors$secondary.main) || "#9c27b0";
1067
+ return color;
1068
+ };
1069
+
1070
+ const sizeMap = {
1071
+ inherit: "inherit",
1072
+ small: "1.25rem",
1073
+ medium: "1.5rem",
1074
+ large: "2.1875rem"
1075
+ };
1076
+
1077
+ const iconStyle = _objectSpread({
1078
+ userSelect: "none",
1079
+ width: "1em",
1080
+ height: "1em",
1081
+ display: "inline-block",
1082
+ fill: "currentColor",
1083
+ flexShrink: 0,
1084
+ fontSize: sizeMap[fontSize] || fontSize,
1085
+ color: getColor(),
1086
+ transition: "fill 200ms"
1087
+ }, style);
1088
+
1089
+ return /*#__PURE__*/React__default["default"].createElement("svg", _extends__default["default"]({
1090
+ ref: ref,
1091
+ style: iconStyle,
1092
+ viewBox: viewBox,
1093
+ focusable: "false",
1094
+ "aria-hidden": !titleAccess
1095
+ }, props), titleAccess && /*#__PURE__*/React__default["default"].createElement("title", null, titleAccess), children);
1096
+ });
1097
+ BaseSvgIcon.displayName = "BaseSvgIcon";
1098
+ const SvgIcon = withSx.withSx(BaseSvgIcon);
1099
+ /**
1100
+ * FormControl - Form field wrapper (replaces MUI FormControl)
1101
+ */
1102
+
1103
+ const BaseFormControl = /*#__PURE__*/React__default["default"].forwardRef((_ref25, ref) => {
1104
+ let {
1105
+ fullWidth = false,
1106
+ disabled = false,
1107
+ error = false,
1108
+ required = false,
1109
+ variant = "outlined",
1110
+ size = "medium",
1111
+ margin = "none",
1112
+ children,
1113
+ style
1114
+ } = _ref25,
1115
+ props = _objectWithoutProperties__default["default"](_ref25, _excluded25);
1116
+
1117
+ const formControlStyle = _objectSpread(_objectSpread({
1118
+ display: "inline-flex",
1119
+ flexDirection: "column",
1120
+ position: "relative",
1121
+ minWidth: 0,
1122
+ padding: 0,
1123
+ margin: margin === "dense" ? "8px 0 4px" : margin === "normal" ? "16px 0 8px" : 0,
1124
+ border: 0,
1125
+ verticalAlign: "top"
1126
+ }, fullWidth && {
1127
+ width: "100%"
1128
+ }), style);
1129
+
1130
+ return /*#__PURE__*/React__default["default"].createElement("div", _extends__default["default"]({
1131
+ ref: ref,
1132
+ style: formControlStyle
1133
+ }, props), children);
1134
+ });
1135
+ BaseFormControl.displayName = "BaseFormControl";
1136
+ const FormControl = withSx.withSx(BaseFormControl);
1137
+ /**
1138
+ * InputLabel - Label for form inputs (replaces MUI InputLabel)
1139
+ */
1140
+
1141
+ const BaseInputLabel = /*#__PURE__*/React__default["default"].forwardRef((_ref26, ref) => {
1142
+ var _colors$error2, _colors$primary2;
1143
+
1144
+ let {
1145
+ shrink = false,
1146
+ disabled = false,
1147
+ error = false,
1148
+ required = false,
1149
+ focused = false,
1150
+ variant = "outlined",
1151
+ size = "medium",
1152
+ children,
1153
+ style
1154
+ } = _ref26,
1155
+ props = _objectWithoutProperties__default["default"](_ref26, _excluded26);
1156
+
1157
+ const {
1158
+ colors
1159
+ } = ThemeProvider.useTheme();
1160
+
1161
+ const labelStyle = _objectSpread(_objectSpread({
1162
+ 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))",
1163
+ fontSize: shrink ? "0.75rem" : "1rem",
1164
+ lineHeight: "1.4375em",
1165
+ letterSpacing: "0.00938em",
1166
+ padding: 0,
1167
+ display: "block",
1168
+ transformOrigin: "top left",
1169
+ whiteSpace: "nowrap",
1170
+ overflow: "hidden",
1171
+ textOverflow: "ellipsis",
1172
+ maxWidth: shrink ? "133%" : "100%",
1173
+ position: "absolute",
1174
+ left: 0,
1175
+ top: 0,
1176
+ transform: shrink ? "translate(14px, -9px) scale(0.75)" : "translate(14px, 16px) scale(1)",
1177
+ transition: "color 200ms, transform 200ms, max-width 200ms",
1178
+ pointerEvents: "none"
1179
+ }, disabled && {
1180
+ opacity: 0.5
1181
+ }), style);
1182
+
1183
+ return /*#__PURE__*/React__default["default"].createElement("label", _extends__default["default"]({
1184
+ ref: ref,
1185
+ style: labelStyle
1186
+ }, props), children, required && " *");
1187
+ });
1188
+ BaseInputLabel.displayName = "BaseInputLabel";
1189
+ const InputLabel = withSx.withSx(BaseInputLabel);
1190
+
1191
+ exports.Accordion = Accordion;
1192
+ exports.AccordionActions = AccordionActions;
1193
+ exports.AccordionDetails = AccordionDetails;
1194
+ exports.AccordionSummary = AccordionSummary;
1195
+ exports.AppBar = AppBar;
1196
+ exports.Breadcrumbs = Breadcrumbs;
1197
+ exports.ButtonGroup = ButtonGroup;
1198
+ exports.FormControl = FormControl;
1199
+ exports.ImageList = ImageList;
1200
+ exports.ImageListItem = ImageListItem;
1201
+ exports.InputLabel = InputLabel;
1202
+ exports.List = List;
1203
+ exports.ListItemAvatar = ListItemAvatar;
1204
+ exports.ListItemIcon = ListItemIcon;
1205
+ exports.ListItemText = ListItemText;
1206
+ exports.Pagination = Pagination;
1207
+ exports.SvgIcon = SvgIcon;
1208
+ exports.Table = Table;
1209
+ exports.TableBody = TableBody;
1210
+ exports.TableCell = TableCell;
1211
+ exports.TableContainer = TableContainer;
1212
+ exports.TableHead = TableHead;
1213
+ exports.TableRow = TableRow;
1214
+ exports.Toolbar = Toolbar;