@bwp-web/components 1.10.2 → 2.0.0-alpha.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (80) hide show
  1. package/README.md +15 -13
  2. package/dist/BiampBanner/BiampBanner.d.ts +4 -4
  3. package/dist/BiampBanner/BiampBanner.d.ts.map +1 -1
  4. package/dist/BiampCheckboxListPopover/BiampCheckboxListPopover.d.ts +1 -1
  5. package/dist/BiampCheckboxListPopover/BiampCheckboxListPopover.d.ts.map +1 -1
  6. package/dist/BiampGlobalSearch/BiampGlobalSearch.d.ts +1 -1
  7. package/dist/BiampGlobalSearch/BiampGlobalSearch.d.ts.map +1 -1
  8. package/dist/BiampHeader/BiampHeader.d.ts +11 -38
  9. package/dist/BiampHeader/BiampHeader.d.ts.map +1 -1
  10. package/dist/BiampHeader/index.d.ts +1 -1
  11. package/dist/BiampHeader/index.d.ts.map +1 -1
  12. package/dist/BiampLayout/BiampLayout.d.ts +1 -1
  13. package/dist/BiampLayout/BiampLayout.d.ts.map +1 -1
  14. package/dist/BiampListPopover/BiampListPopover.d.ts +3 -3
  15. package/dist/BiampListPopover/BiampListPopover.d.ts.map +1 -1
  16. package/dist/BiampNotificationPopover/BiampNotificationPopover.d.ts +3 -3
  17. package/dist/BiampNotificationPopover/BiampNotificationPopover.d.ts.map +1 -1
  18. package/dist/BiampSegmentedButton/SegmentedButton.d.ts +1 -1
  19. package/dist/BiampSegmentedButton/SegmentedButton.d.ts.map +1 -1
  20. package/dist/BiampSegmentedButton/SegmentedButtonGroup.d.ts +1 -1
  21. package/dist/BiampSegmentedButton/SegmentedButtonGroup.d.ts.map +1 -1
  22. package/dist/BiampSidebar/BiampSidebar.d.ts +4 -4
  23. package/dist/BiampSidebar/BiampSidebar.d.ts.map +1 -1
  24. package/dist/BiampTable/BiampTable.d.ts +1 -1
  25. package/dist/BiampTable/BiampTable.d.ts.map +1 -1
  26. package/dist/BiampTable/BiampTableCellActionButton.d.ts +1 -1
  27. package/dist/BiampTable/BiampTableCellActionButton.d.ts.map +1 -1
  28. package/dist/BiampTable/BiampTableColumnVisibility.d.ts +1 -1
  29. package/dist/BiampTable/BiampTableColumnVisibility.d.ts.map +1 -1
  30. package/dist/BiampTable/BiampTableContainer.d.ts +1 -1
  31. package/dist/BiampTable/BiampTableContainer.d.ts.map +1 -1
  32. package/dist/BiampTable/BiampTableEmptyState.d.ts +1 -1
  33. package/dist/BiampTable/BiampTableEmptyState.d.ts.map +1 -1
  34. package/dist/BiampTable/BiampTableErrorState.d.ts +1 -1
  35. package/dist/BiampTable/BiampTableErrorState.d.ts.map +1 -1
  36. package/dist/BiampTable/BiampTableExpandGuidelines.d.ts +1 -1
  37. package/dist/BiampTable/BiampTableExpandGuidelines.d.ts.map +1 -1
  38. package/dist/BiampTable/BiampTablePagination.d.ts +1 -1
  39. package/dist/BiampTable/BiampTablePagination.d.ts.map +1 -1
  40. package/dist/BiampTable/BiampTableRow.d.ts +2 -1
  41. package/dist/BiampTable/BiampTableRow.d.ts.map +1 -1
  42. package/dist/BiampTable/BiampTableStatusMessage.d.ts +1 -1
  43. package/dist/BiampTable/BiampTableStatusMessage.d.ts.map +1 -1
  44. package/dist/BiampTable/BiampTableToolbar.d.ts +1 -1
  45. package/dist/BiampTable/BiampTableToolbar.d.ts.map +1 -1
  46. package/dist/BiampTable/BiampTableToolbarActionButton.d.ts +1 -1
  47. package/dist/BiampTable/BiampTableToolbarActionButton.d.ts.map +1 -1
  48. package/dist/BiampTable/BiampTableToolbarActions.d.ts +1 -1
  49. package/dist/BiampTable/BiampTableToolbarActions.d.ts.map +1 -1
  50. package/dist/BiampTable/BiampTableToolbarColumnVisibility.d.ts +2 -2
  51. package/dist/BiampTable/BiampTableToolbarColumnVisibility.d.ts.map +1 -1
  52. package/dist/BiampTable/BiampTableToolbarExport.d.ts +2 -2
  53. package/dist/BiampTable/BiampTableToolbarExport.d.ts.map +1 -1
  54. package/dist/BiampTable/BiampTableToolbarFilters.d.ts +1 -1
  55. package/dist/BiampTable/BiampTableToolbarFilters.d.ts.map +1 -1
  56. package/dist/BiampTable/BiampTableToolbarSearch.d.ts +1 -1
  57. package/dist/BiampTable/BiampTableToolbarSearch.d.ts.map +1 -1
  58. package/dist/BiampTable/BiampTableTruncatedCell.d.ts +1 -1
  59. package/dist/BiampTable/BiampTableTruncatedCell.d.ts.map +1 -1
  60. package/dist/BiampTable/useDebouncedCallback.d.ts.map +1 -1
  61. package/dist/BiampWrapper/BiampWrapper.d.ts +1 -1
  62. package/dist/BiampWrapper/BiampWrapper.d.ts.map +1 -1
  63. package/dist/DynamicSvgIcon/DynamicSvgIcon.d.ts +1 -1
  64. package/dist/DynamicSvgIcon/DynamicSvgIcon.d.ts.map +1 -1
  65. package/dist/LandingPage/LandingFormPanel.d.ts +4 -4
  66. package/dist/LandingPage/LandingFormPanel.d.ts.map +1 -1
  67. package/dist/LandingPage/OrganizationsPanel.d.ts +4 -4
  68. package/dist/LandingPage/OrganizationsPanel.d.ts.map +1 -1
  69. package/dist/OrganizationSelector/OrganizationSelector.d.ts +5 -5
  70. package/dist/OrganizationSelector/OrganizationSelector.d.ts.map +1 -1
  71. package/dist/UserInitialsIcon/UserInitialsIcon.d.ts +7 -1
  72. package/dist/UserInitialsIcon/UserInitialsIcon.d.ts.map +1 -1
  73. package/dist/hooks/useLoadingDelay.d.ts.map +1 -1
  74. package/dist/index.cjs +919 -769
  75. package/dist/index.cjs.map +1 -1
  76. package/dist/index.js +896 -742
  77. package/dist/index.js.map +1 -1
  78. package/dist/slotProps.d.ts +5 -5
  79. package/dist/slotProps.d.ts.map +1 -1
  80. package/package.json +22 -16
package/dist/index.js CHANGED
@@ -395,36 +395,34 @@ var require_randomColor = __commonJS({
395
395
  import { Box, LinearProgress, Stack } from "@mui/material";
396
396
 
397
397
  // src/hooks/useLoadingDelay.ts
398
- import { useEffect, useRef, useState } from "react";
398
+ import { useEffect, useState } from "react";
399
399
  function useLoadingDelay(loading, { delay = 150, minDuration = 500 } = {}) {
400
400
  const [status, setStatus] = useState("idle");
401
- const timeoutRef = useRef(null);
402
- function clearPending() {
403
- if (timeoutRef.current !== null) {
404
- clearTimeout(timeoutRef.current);
405
- timeoutRef.current = null;
406
- }
401
+ if (loading && status === "idle") {
402
+ setStatus("delaying");
403
+ } else if (!loading && (status === "delaying" || status === "ending")) {
404
+ setStatus("idle");
407
405
  }
408
406
  useEffect(() => {
409
- if (loading && status === "idle") {
410
- clearPending();
411
- timeoutRef.current = setTimeout(() => {
412
- timeoutRef.current = setTimeout(() => {
413
- setStatus("ending");
414
- }, minDuration);
415
- setStatus("loading");
416
- }, delay);
417
- setStatus("delaying");
418
- }
419
- if (!loading && status !== "loading") {
420
- clearPending();
421
- setStatus("idle");
422
- }
423
- }, [loading, delay, minDuration, status]);
424
- useEffect(() => clearPending, []);
407
+ if (status !== "delaying" && status !== "loading") return;
408
+ const timeout = setTimeout(
409
+ () => setStatus(status === "delaying" ? "loading" : "ending"),
410
+ status === "delaying" ? delay : minDuration
411
+ );
412
+ return () => clearTimeout(timeout);
413
+ }, [status, delay, minDuration]);
425
414
  return status === "loading" || status === "ending";
426
415
  }
427
416
 
417
+ // src/slotProps.ts
418
+ function resolveSlot(slot, ctx) {
419
+ if (!slot) return void 0;
420
+ return typeof slot === "function" ? slot(ctx) : slot;
421
+ }
422
+ function mergeSx(...inputs) {
423
+ return inputs.filter((v) => Boolean(v)).flatMap((v) => Array.isArray(v) ? v : [v]);
424
+ }
425
+
428
426
  // src/BiampWrapper/BiampWrapper.tsx
429
427
  import { jsx, jsxs } from "react/jsx-runtime";
430
428
  function BiampWrapper({
@@ -439,19 +437,21 @@ function BiampWrapper({
439
437
  Stack,
440
438
  {
441
439
  direction: "column",
442
- padding: "16px",
443
- sx: {
444
- position: "relative",
445
- flex: 1,
446
- height: "100%",
447
- width: "100%",
448
- borderRadius: "8px",
449
- overflow: "auto",
450
- overscrollBehavior: "none",
451
- backgroundColor: ({ palette }) => palette.mode === "dark" ? palette.grey[800] : palette.common.white,
452
- ...sx
453
- },
454
440
  ...props,
441
+ sx: mergeSx(
442
+ {
443
+ padding: "16px",
444
+ position: "relative",
445
+ flex: 1,
446
+ height: "100%",
447
+ width: "100%",
448
+ borderRadius: "8px",
449
+ overflow: "auto",
450
+ overscrollBehavior: "none",
451
+ backgroundColor: ({ palette }) => palette.mode === "dark" ? palette.grey[800] : palette.common.white
452
+ },
453
+ sx
454
+ ),
455
455
  children: [
456
456
  showLoading && /* @__PURE__ */ jsx(
457
457
  Box,
@@ -538,24 +538,28 @@ function BiampLayout({
538
538
  Stack2,
539
539
  {
540
540
  direction: "column",
541
- height: "100vh",
542
- sx: {
543
- backgroundColor: ({ palette }) => palette.mode === "dark" ? palette.grey[900] : palette.grey[100],
544
- ...sx
545
- },
546
541
  ...props,
542
+ sx: mergeSx(
543
+ {
544
+ height: "100vh",
545
+ backgroundColor: ({ palette }) => palette.mode === "dark" ? palette.grey[900] : palette.grey[100]
546
+ },
547
+ sx
548
+ ),
547
549
  children: [
548
550
  header,
549
551
  /* @__PURE__ */ jsxs2(
550
552
  Stack2,
551
553
  {
552
554
  direction: "row",
553
- flex: 1,
554
- minHeight: 0,
555
- gap: { xs: 1.5, md: 2.5 },
556
- px: { xs: 1.5, md: 2.5 },
557
- pb: { xs: 1.5, md: 2.5 },
558
- pt: { xs: header ? 0 : 1.5, md: header ? 0 : 2.5 },
555
+ sx: {
556
+ flex: 1,
557
+ minHeight: 0,
558
+ gap: { xs: 1.5, md: 2.5 },
559
+ px: { xs: 1.5, md: 2.5 },
560
+ pb: { xs: 1.5, md: 2.5 },
561
+ pt: { xs: header ? 0 : 1.5, md: header ? 0 : 2.5 }
562
+ },
559
563
  children: [
560
564
  !isDrawer && !(responsive && mobileSidebarOnly) && sidebar,
561
565
  children
@@ -583,9 +587,13 @@ function BiampLayout({
583
587
  Stack2,
584
588
  {
585
589
  direction: "row",
586
- alignItems: "center",
587
- gap: 1,
588
- sx: { height: 40, mb: 1.5, flexShrink: 0 },
590
+ sx: {
591
+ alignItems: "center",
592
+ gap: 1,
593
+ height: 40,
594
+ mb: 1.5,
595
+ flexShrink: 0
596
+ },
589
597
  children: [
590
598
  /* @__PURE__ */ jsx2(
591
599
  IconButton,
@@ -647,16 +655,18 @@ function BiampSidebar({
647
655
  return /* @__PURE__ */ jsx3(BiampSidebarContext.Provider, { value: { expanded }, children: /* @__PURE__ */ jsxs3(
648
656
  Stack3,
649
657
  {
650
- sx: {
651
- width,
652
- minWidth: width,
653
- height: "100%",
654
- transition: ({ transitions }) => transitions.create(["width", "min-width"], {
655
- easing: transitions.easing.sharp,
656
- duration: expanded ? transitions.duration.enteringScreen : transitions.duration.leavingScreen
657
- }),
658
- ...sx
659
- },
658
+ sx: mergeSx(
659
+ {
660
+ width,
661
+ minWidth: width,
662
+ height: "100%",
663
+ transition: ({ transitions }) => transitions.create(["width", "min-width"], {
664
+ easing: transitions.easing.sharp,
665
+ duration: expanded ? transitions.duration.enteringScreen : transitions.duration.leavingScreen
666
+ })
667
+ },
668
+ sx
669
+ ),
660
670
  ...props,
661
671
  children: [
662
672
  /* @__PURE__ */ jsx3(Stack3, { sx: { flex: 1, minHeight: 0 }, children }),
@@ -682,9 +692,12 @@ function BiampSidebar({
682
692
  Stack3,
683
693
  {
684
694
  direction: "row",
685
- alignItems: "center",
686
- justifyContent: "space-between",
687
- sx: { mt: 2, overflow: "hidden" },
695
+ sx: {
696
+ alignItems: "center",
697
+ justifyContent: "space-between",
698
+ mt: 2,
699
+ overflow: "hidden"
700
+ },
688
701
  children: [
689
702
  bottomLogoIcon ?? /* @__PURE__ */ jsx3(
690
703
  BiampLogoIcon,
@@ -696,10 +709,10 @@ function BiampSidebar({
696
709
  Typography,
697
710
  {
698
711
  variant: "caption",
699
- fontWeight: 500,
700
- color: "text.secondary",
701
712
  noWrap: true,
702
713
  sx: {
714
+ fontWeight: 500,
715
+ color: "text.secondary",
703
716
  opacity: expanded ? 1 : 0,
704
717
  transition: ({ transitions }) => transitions.create("opacity", {
705
718
  duration: expanded ? transitions.duration.enteringScreen : transitions.duration.leavingScreen
@@ -723,14 +736,16 @@ function BiampSidebarIconList({
723
736
  return /* @__PURE__ */ jsx3(
724
737
  Stack3,
725
738
  {
726
- sx: {
727
- flex: 1,
728
- minHeight: 0,
729
- gap: "4px",
730
- overflowY: "auto",
731
- overscrollBehavior: "none",
732
- ...sx
733
- },
739
+ sx: mergeSx(
740
+ {
741
+ flex: 1,
742
+ minHeight: 0,
743
+ gap: "4px",
744
+ overflowY: "auto",
745
+ overscrollBehavior: "none"
746
+ },
747
+ sx
748
+ ),
734
749
  ...props,
735
750
  children
736
751
  }
@@ -761,21 +776,23 @@ function BiampSidebarIcon({
761
776
  layoutDrawer.setOpen(false);
762
777
  }
763
778
  },
764
- sx: {
765
- minWidth: "48px",
766
- minHeight: "48px",
767
- maxHeight: "48px",
768
- borderRadius: "8px",
769
- justifyContent: "flex-start",
770
- alignItems: "center",
771
- padding: 0,
772
- overflow: "hidden",
773
- color: "text.secondary",
774
- "&.Mui-selected": {
775
- color: "primary.main"
779
+ sx: mergeSx(
780
+ {
781
+ minWidth: "48px",
782
+ minHeight: "48px",
783
+ maxHeight: "48px",
784
+ borderRadius: "8px",
785
+ justifyContent: "flex-start",
786
+ alignItems: "center",
787
+ padding: 0,
788
+ overflow: "hidden",
789
+ color: "text.secondary",
790
+ "&.Mui-selected": {
791
+ color: "primary.main"
792
+ }
776
793
  },
777
- ...sx
778
- },
794
+ sx
795
+ ),
779
796
  ...props,
780
797
  children: [
781
798
  /* @__PURE__ */ jsx3(
@@ -805,10 +822,10 @@ function BiampSidebarIcon({
805
822
  Typography,
806
823
  {
807
824
  variant: "body1",
808
- fontWeight: 600,
809
- color: "inherit",
810
825
  noWrap: true,
811
826
  sx: {
827
+ fontWeight: 600,
828
+ color: "inherit",
812
829
  pr: 2,
813
830
  opacity: expanded ? 1 : 0,
814
831
  transition: ({ transitions }) => transitions.create("opacity", {
@@ -830,18 +847,20 @@ function BiampSidebarComponent({
830
847
  return /* @__PURE__ */ jsx3(
831
848
  Box2,
832
849
  {
833
- sx: {
834
- minWidth: "48px",
835
- maxWidth: "48px",
836
- minHeight: "48px",
837
- maxHeight: "48px",
838
- borderRadius: "8px",
839
- overflow: "hidden",
840
- justifyContent: "center",
841
- alignItems: "center",
842
- border: ({ palette }) => `0.6px solid ${palette.divider}`,
843
- ...sx
844
- },
850
+ sx: mergeSx(
851
+ {
852
+ minWidth: "48px",
853
+ maxWidth: "48px",
854
+ minHeight: "48px",
855
+ maxHeight: "48px",
856
+ borderRadius: "8px",
857
+ overflow: "hidden",
858
+ justifyContent: "center",
859
+ alignItems: "center",
860
+ border: ({ palette }) => `0.6px solid ${palette.divider}`
861
+ },
862
+ sx
863
+ ),
845
864
  ...props,
846
865
  children
847
866
  }
@@ -859,7 +878,6 @@ import {
859
878
  Stack as Stack4,
860
879
  Typography as Typography3
861
880
  } from "@mui/material";
862
- import { Children } from "react";
863
881
  import { BiampRedLogo, ColumnsIcon, ExternalLinkIcon } from "@bwp-web/assets";
864
882
 
865
883
  // src/BiampGlobalSearch/BiampGlobalSearch.tsx
@@ -874,6 +892,7 @@ import {
874
892
  Typography as Typography2,
875
893
  useMediaQuery as useMediaQuery2
876
894
  } from "@mui/material";
895
+ import { mergeSlotProps } from "@mui/material/utils";
877
896
  import { KeyArrowDownIcon, KeyArrowUpIcon, SearchIcon } from "@bwp-web/assets";
878
897
  import { Fragment, jsx as jsx4, jsxs as jsxs4 } from "react/jsx-runtime";
879
898
  var SearchContext = createContext3({
@@ -919,8 +938,11 @@ var BiampGlobalSearchPaper = forwardRef(
919
938
  Typography2,
920
939
  {
921
940
  variant: "body2",
922
- color: "text.secondary",
923
- sx: { px: 2, py: 1.5 },
941
+ sx: {
942
+ color: "text.secondary",
943
+ px: 2,
944
+ py: 1.5
945
+ },
924
946
  children: noResultsText
925
947
  }
926
948
  ),
@@ -944,8 +966,10 @@ var BiampGlobalSearchPaper = forwardRef(
944
966
  Typography2,
945
967
  {
946
968
  variant: "caption",
947
- fontWeight: (theme) => theme.typography.fontWeightMedium,
948
- color: "text.secondary",
969
+ sx: {
970
+ fontWeight: (theme) => theme.typography.fontWeightMedium,
971
+ color: "text.secondary"
972
+ },
949
973
  children: "Select"
950
974
  }
951
975
  )
@@ -956,8 +980,10 @@ var BiampGlobalSearchPaper = forwardRef(
956
980
  Typography2,
957
981
  {
958
982
  variant: "caption",
959
- fontWeight: (theme) => theme.typography.fontWeightMedium,
960
- color: "text.secondary",
983
+ sx: {
984
+ fontWeight: (theme) => theme.typography.fontWeightMedium,
985
+ color: "text.secondary"
986
+ },
961
987
  children: "Open"
962
988
  }
963
989
  )
@@ -1043,9 +1069,13 @@ function BiampGlobalSearchListItem({
1043
1069
  {
1044
1070
  className: "hoverContent",
1045
1071
  variant: "body2",
1046
- color: "text.secondary",
1047
1072
  noWrap: true,
1048
- sx: { flexShrink: 1, minWidth: 0, display: "none" },
1073
+ sx: {
1074
+ color: "text.secondary",
1075
+ flexShrink: 1,
1076
+ minWidth: 0,
1077
+ display: "none"
1078
+ },
1049
1079
  children: option.subtitle
1050
1080
  }
1051
1081
  ),
@@ -1138,6 +1168,7 @@ function BiampGlobalSearch({
1138
1168
  onChange,
1139
1169
  onInputChange,
1140
1170
  sx,
1171
+ slotProps,
1141
1172
  ...props
1142
1173
  }) {
1143
1174
  const hasOptions = options.length > 0;
@@ -1178,25 +1209,36 @@ function BiampGlobalSearch({
1178
1209
  inputValue,
1179
1210
  loading,
1180
1211
  fullWidth,
1181
- sx: {
1182
- px: 1.5,
1183
- "& .MuiOutlinedInput-root": {
1184
- height: "40px !important",
1185
- minHeight: "40px"
1186
- },
1187
- "& .MuiOutlinedInput-input": {
1188
- height: "40px !important"
1189
- },
1190
- "& .MuiOutlinedInput-notchedOutline": {
1191
- height: "40px !important",
1192
- border: "none",
1193
- boxShadow: "none"
1212
+ sx: mergeSx(
1213
+ {
1214
+ px: 1.5,
1215
+ "& .MuiOutlinedInput-root": {
1216
+ height: "40px !important",
1217
+ minHeight: "40px"
1218
+ },
1219
+ "& .MuiOutlinedInput-input": {
1220
+ height: "40px !important"
1221
+ },
1222
+ "& .MuiOutlinedInput-notchedOutline": {
1223
+ height: "40px !important",
1224
+ border: "none",
1225
+ boxShadow: "none"
1226
+ }
1194
1227
  },
1195
- ...sx
1196
- },
1228
+ sx
1229
+ ),
1197
1230
  onChange: handleChange,
1198
1231
  onInputChange: handleInputChange,
1199
- loadingText: /* @__PURE__ */ jsx4(Typography2, { variant: "body2", color: "text.secondary", children: "Loading\u2026" }),
1232
+ loadingText: /* @__PURE__ */ jsx4(
1233
+ Typography2,
1234
+ {
1235
+ variant: "body2",
1236
+ sx: {
1237
+ color: "text.secondary"
1238
+ },
1239
+ children: "Loading\u2026"
1240
+ }
1241
+ ),
1200
1242
  freeSolo: true,
1201
1243
  filterOptions: (x) => x,
1202
1244
  getOptionLabel: (option) => typeof option === "string" ? option : option.title,
@@ -1204,7 +1246,14 @@ function BiampGlobalSearch({
1204
1246
  noOptionsText: noResultsText,
1205
1247
  slots: { paper: BiampGlobalSearchPaper },
1206
1248
  slotProps: {
1207
- listbox: {
1249
+ ...slotProps,
1250
+ // In freeSolo mode MUI 9 skips the Popper when there are no options
1251
+ // (unless `keepMounted`), so the Paper's `noResultsText` would never
1252
+ // show. A closed, kept-mounted Popper is `display: none`.
1253
+ popper: mergeSlotProps(slotProps?.popper, {
1254
+ keepMounted: !hasOptions
1255
+ }),
1256
+ listbox: mergeSlotProps(slotProps?.listbox, {
1208
1257
  sx: {
1209
1258
  "& .MuiAutocomplete-option": {
1210
1259
  paddingRight: "0px !important"
@@ -1219,7 +1268,7 @@ function BiampGlobalSearch({
1219
1268
  visibility: "visible"
1220
1269
  }
1221
1270
  }
1222
- }
1271
+ })
1223
1272
  },
1224
1273
  renderInput: (params) => /* @__PURE__ */ jsx4(
1225
1274
  TextField,
@@ -1232,11 +1281,12 @@ function BiampGlobalSearch({
1232
1281
  "& .MuiInputBase-input": { paddingLeft: "8px !important" }
1233
1282
  },
1234
1283
  slotProps: {
1284
+ ...params.slotProps,
1235
1285
  input: {
1236
- ...params.InputProps,
1286
+ ...params.slotProps.input,
1237
1287
  startAdornment: /* @__PURE__ */ jsxs4(Fragment, { children: [
1238
1288
  /* @__PURE__ */ jsx4(InputAdornment, { position: "start", children: /* @__PURE__ */ jsx4(SearchIcon, {}) }),
1239
- params.InputProps.startAdornment
1289
+ params.slotProps.input.startAdornment
1240
1290
  ] })
1241
1291
  }
1242
1292
  }
@@ -1264,10 +1314,16 @@ function BiampHeader({ children, sx, ...props }) {
1264
1314
  Stack4,
1265
1315
  {
1266
1316
  direction: "row",
1267
- alignItems: "center",
1268
- gap: { xs: 0.5, md: 3 },
1269
- sx: { px: 2.5, py: 1.5, ...sx },
1270
1317
  ...props,
1318
+ sx: mergeSx(
1319
+ {
1320
+ alignItems: "center",
1321
+ gap: { xs: 0.5, md: 3 },
1322
+ px: 2.5,
1323
+ py: 1.5
1324
+ },
1325
+ sx
1326
+ ),
1271
1327
  children
1272
1328
  }
1273
1329
  );
@@ -1282,12 +1338,7 @@ function BiampHeaderTitle({
1282
1338
  return /* @__PURE__ */ jsxs5(
1283
1339
  Box4,
1284
1340
  {
1285
- sx: {
1286
- display: "flex",
1287
- alignItems: "center",
1288
- gap: "12px",
1289
- ...sx
1290
- },
1341
+ sx: mergeSx({ display: "flex", alignItems: "center", gap: "12px" }, sx),
1291
1342
  ...props,
1292
1343
  children: [
1293
1344
  icon ? /* @__PURE__ */ jsx5(
@@ -1311,10 +1362,28 @@ function BiampHeaderTitle({
1311
1362
  sx: { width: 24, height: 24 }
1312
1363
  }
1313
1364
  ),
1314
- /* @__PURE__ */ jsxs5(Stack4, { direction: "row", gap: 0.5, children: [
1315
- title && /* @__PURE__ */ jsx5(Typography3, { variant: "h4", children: title }),
1316
- subtitle && /* @__PURE__ */ jsx5(Typography3, { variant: "h4", color: "text.secondary", children: subtitle })
1317
- ] })
1365
+ /* @__PURE__ */ jsxs5(
1366
+ Stack4,
1367
+ {
1368
+ direction: "row",
1369
+ sx: {
1370
+ gap: 0.5
1371
+ },
1372
+ children: [
1373
+ title && /* @__PURE__ */ jsx5(Typography3, { variant: "h4", children: title }),
1374
+ subtitle && /* @__PURE__ */ jsx5(
1375
+ Typography3,
1376
+ {
1377
+ variant: "h4",
1378
+ sx: {
1379
+ color: "text.secondary"
1380
+ },
1381
+ children: subtitle
1382
+ }
1383
+ )
1384
+ ]
1385
+ }
1386
+ )
1318
1387
  ]
1319
1388
  }
1320
1389
  );
@@ -1333,13 +1402,15 @@ function BiampHeaderActions({
1333
1402
  return /* @__PURE__ */ jsx5(
1334
1403
  Box4,
1335
1404
  {
1336
- sx: {
1337
- ml: "auto",
1338
- gap: { xs: 1, md: 2 },
1339
- display: "flex",
1340
- alignItems: "center",
1341
- ...sx
1342
- },
1405
+ sx: mergeSx(
1406
+ {
1407
+ ml: "auto",
1408
+ gap: { xs: 1, md: 2 },
1409
+ display: "flex",
1410
+ alignItems: "center"
1411
+ },
1412
+ sx
1413
+ ),
1343
1414
  ...props,
1344
1415
  children
1345
1416
  }
@@ -1353,12 +1424,10 @@ function BiampHeaderButtonList({
1353
1424
  return /* @__PURE__ */ jsx5(
1354
1425
  Box4,
1355
1426
  {
1356
- sx: {
1357
- display: "flex",
1358
- alignItems: "center",
1359
- gap: { xs: 0, md: 0.5 },
1360
- ...sx
1361
- },
1427
+ sx: mergeSx(
1428
+ { display: "flex", alignItems: "center", gap: { xs: 0, md: 0.5 } },
1429
+ sx
1430
+ ),
1362
1431
  ...props,
1363
1432
  children
1364
1433
  }
@@ -1407,16 +1476,18 @@ function BiampHeaderButton({
1407
1476
  selected,
1408
1477
  disableGutters: true,
1409
1478
  disableRipple: true,
1410
- sx: {
1411
- minWidth: "40px",
1412
- maxWidth: "40px",
1413
- minHeight: "40px",
1414
- maxHeight: "40px",
1415
- borderRadius: "4px",
1416
- justifyContent: "center",
1417
- alignItems: "center",
1418
- ...sx
1419
- },
1479
+ sx: mergeSx(
1480
+ {
1481
+ minWidth: "40px",
1482
+ maxWidth: "40px",
1483
+ minHeight: "40px",
1484
+ maxHeight: "40px",
1485
+ borderRadius: "4px",
1486
+ justifyContent: "center",
1487
+ alignItems: "center"
1488
+ },
1489
+ sx
1490
+ ),
1420
1491
  ...props,
1421
1492
  children: selected ? displayedSelectedIcon : icon
1422
1493
  }
@@ -1435,7 +1506,7 @@ function BiampAppPopover({
1435
1506
  open,
1436
1507
  anchorOrigin: { vertical: "bottom", horizontal: "right" },
1437
1508
  transformOrigin: { vertical: -4, horizontal: APP_POPOVER_MAX_WIDTH },
1438
- sx: { ...sx },
1509
+ sx,
1439
1510
  slotProps: {
1440
1511
  paper: {
1441
1512
  sx: {
@@ -1459,120 +1530,6 @@ function BiampAppPopover({
1459
1530
  }
1460
1531
  );
1461
1532
  }
1462
- function BiampBuildAppContent({
1463
- children,
1464
- sx,
1465
- ...props
1466
- }) {
1467
- return /* @__PURE__ */ jsx5(
1468
- Box4,
1469
- {
1470
- sx: {
1471
- display: "grid",
1472
- gridTemplateColumns: "1fr 1fr",
1473
- gap: 1.5,
1474
- ...sx
1475
- },
1476
- ...props,
1477
- children
1478
- }
1479
- );
1480
- }
1481
- function BiampBuildAppContentItem({
1482
- image,
1483
- name,
1484
- description,
1485
- button,
1486
- sx,
1487
- ...props
1488
- }) {
1489
- return /* @__PURE__ */ jsxs5(
1490
- Stack4,
1491
- {
1492
- direction: "column",
1493
- position: "relative",
1494
- sx: {
1495
- p: 1.5,
1496
- borderRadius: 1.5,
1497
- outlineWidth: "1px",
1498
- outlineStyle: "solid",
1499
- outlineColor: ({ palette }) => palette.dividers,
1500
- ...sx
1501
- },
1502
- ...props,
1503
- children: [
1504
- /* @__PURE__ */ jsx5(Box4, { sx: { width: 54, height: 54 }, mb: 0.5, children: image }),
1505
- /* @__PURE__ */ jsx5(Typography3, { variant: "caption", fontWeight: 600, mb: 0.5, children: name }),
1506
- /* @__PURE__ */ jsx5(Typography3, { variant: "caption", color: "text.secondary", children: description }),
1507
- button && /* @__PURE__ */ jsx5(Box4, { position: "absolute", top: "12px", right: "12px", children: button })
1508
- ]
1509
- }
1510
- );
1511
- }
1512
- function BiampEndUserAppContent({
1513
- children,
1514
- sx,
1515
- ...props
1516
- }) {
1517
- const isGrid = Children.count(children) > 1;
1518
- return /* @__PURE__ */ jsx5(
1519
- Stack4,
1520
- {
1521
- direction: "column",
1522
- sx: {
1523
- gap: 1.5,
1524
- ...isGrid && {
1525
- display: "grid",
1526
- gridTemplateColumns: "1fr 1fr"
1527
- },
1528
- ...sx
1529
- },
1530
- ...props,
1531
- children
1532
- }
1533
- );
1534
- }
1535
- function BiampEndUserAppContentItem({
1536
- image,
1537
- name,
1538
- description,
1539
- href,
1540
- target,
1541
- sx,
1542
- ...props
1543
- }) {
1544
- return /* @__PURE__ */ jsxs5(
1545
- Stack4,
1546
- {
1547
- component: href ? "a" : "div",
1548
- href,
1549
- target,
1550
- direction: "row",
1551
- alignItems: "center",
1552
- sx: {
1553
- gap: 1.5,
1554
- p: 1.5,
1555
- borderRadius: 1.5,
1556
- outlineWidth: "1px",
1557
- outlineStyle: "solid",
1558
- outlineColor: ({ palette }) => palette.divider,
1559
- textDecoration: "none",
1560
- color: "inherit",
1561
- cursor: href ? "pointer" : void 0,
1562
- ...sx
1563
- },
1564
- ...props,
1565
- children: [
1566
- /* @__PURE__ */ jsx5(Box4, { sx: { width: 32, height: 32 }, children: image }),
1567
- /* @__PURE__ */ jsxs5(Stack4, { direction: "column", children: [
1568
- /* @__PURE__ */ jsx5(Typography3, { variant: "caption", fontWeight: 600, children: name }),
1569
- /* @__PURE__ */ jsx5(Typography3, { variant: "caption", color: "text.secondary", children: description })
1570
- ] }),
1571
- /* @__PURE__ */ jsx5(ExternalLinkIcon, { sx: { width: 16, height: 16, ml: "auto" } })
1572
- ]
1573
- }
1574
- );
1575
- }
1576
1533
  function BiampAppListContent({
1577
1534
  children,
1578
1535
  sx,
@@ -1588,12 +1545,14 @@ function BiampAppListContent({
1588
1545
  sx: { borderColor: ({ palette }) => palette.dividers.secondary }
1589
1546
  }
1590
1547
  ),
1591
- sx: {
1592
- borderRadius: 2,
1593
- border: ({ palette }) => `1px solid ${palette.dividers.secondary}`,
1594
- overflow: "hidden",
1595
- ...sx
1596
- },
1548
+ sx: mergeSx(
1549
+ {
1550
+ borderRadius: 2,
1551
+ border: ({ palette }) => `1px solid ${palette.dividers.secondary}`,
1552
+ overflow: "hidden"
1553
+ },
1554
+ sx
1555
+ ),
1597
1556
  ...props,
1598
1557
  children
1599
1558
  }
@@ -1612,12 +1571,29 @@ function BiampAppListItem({
1612
1571
  Stack4,
1613
1572
  {
1614
1573
  direction: "row",
1615
- alignItems: "center",
1616
- sx: { gap: 1.5, py: 1.5, px: 2, ...sx },
1617
1574
  ...props,
1575
+ sx: mergeSx(
1576
+ {
1577
+ alignItems: "center",
1578
+ gap: 1.5,
1579
+ py: 1.5,
1580
+ px: 2
1581
+ },
1582
+ sx
1583
+ ),
1618
1584
  children: [
1619
1585
  /* @__PURE__ */ jsx5(Box4, { sx: { width: 40, height: 40, flexShrink: 0 }, children: image }),
1620
- /* @__PURE__ */ jsx5(Typography3, { variant: "body2", fontWeight: 600, sx: { flex: 1 }, children: name }),
1586
+ /* @__PURE__ */ jsx5(
1587
+ Typography3,
1588
+ {
1589
+ variant: "body2",
1590
+ sx: {
1591
+ fontWeight: 600,
1592
+ flex: 1
1593
+ },
1594
+ children: name
1595
+ }
1596
+ ),
1621
1597
  hasActions && /* @__PURE__ */ jsxs5(
1622
1598
  Stack4,
1623
1599
  {
@@ -1697,16 +1673,18 @@ function BiampHeaderProfile({
1697
1673
  selected,
1698
1674
  disableGutters: true,
1699
1675
  disableRipple: true,
1700
- sx: {
1701
- minWidth: "36px",
1702
- maxWidth: "36px",
1703
- minHeight: "36px",
1704
- maxHeight: "36px",
1705
- borderRadius: "6px",
1706
- justifyContent: "center",
1707
- alignItems: "center",
1708
- ...sx
1709
- },
1676
+ sx: mergeSx(
1677
+ {
1678
+ minWidth: "36px",
1679
+ maxWidth: "36px",
1680
+ minHeight: "36px",
1681
+ maxHeight: "36px",
1682
+ borderRadius: "6px",
1683
+ justifyContent: "center",
1684
+ alignItems: "center"
1685
+ },
1686
+ sx
1687
+ ),
1710
1688
  ...props,
1711
1689
  children: image ? /* @__PURE__ */ jsx5(
1712
1690
  Box4,
@@ -1750,7 +1728,7 @@ function BiampNotificationPopover({
1750
1728
  vertical: -4,
1751
1729
  horizontal: NOTIFICATION_POPOVER_MAX_WIDTH
1752
1730
  },
1753
- sx: { ...sx },
1731
+ sx,
1754
1732
  slotProps: {
1755
1733
  paper: {
1756
1734
  sx: {
@@ -1782,16 +1760,18 @@ function BiampNotificationPopoverHeader({
1782
1760
  Stack5,
1783
1761
  {
1784
1762
  direction: "row",
1785
- alignItems: "center",
1786
- justifyContent: "space-between",
1787
- sx: {
1788
- flexShrink: 0,
1789
- gap: 2,
1790
- px: 2,
1791
- pt: 2,
1792
- ...sx
1793
- },
1794
- ...props
1763
+ ...props,
1764
+ sx: mergeSx(
1765
+ {
1766
+ alignItems: "center",
1767
+ justifyContent: "space-between",
1768
+ flexShrink: 0,
1769
+ gap: 2,
1770
+ px: 2,
1771
+ pt: 2
1772
+ },
1773
+ sx
1774
+ )
1795
1775
  }
1796
1776
  );
1797
1777
  }
@@ -1802,15 +1782,17 @@ function BiampNotificationPopoverBody({
1802
1782
  return /* @__PURE__ */ jsx6(
1803
1783
  Box5,
1804
1784
  {
1805
- sx: {
1806
- flex: 1,
1807
- minHeight: 0,
1808
- overflowY: "auto",
1809
- overscrollBehavior: "none",
1810
- px: 2,
1811
- pb: 2,
1812
- ...sx
1813
- },
1785
+ sx: mergeSx(
1786
+ {
1787
+ flex: 1,
1788
+ minHeight: 0,
1789
+ overflowY: "auto",
1790
+ overscrollBehavior: "none",
1791
+ px: 2,
1792
+ pb: 2
1793
+ },
1794
+ sx
1795
+ ),
1814
1796
  ...props
1815
1797
  }
1816
1798
  );
@@ -1865,14 +1847,7 @@ function BiampListPopoverItem({
1865
1847
  sx,
1866
1848
  ...props
1867
1849
  }) {
1868
- return /* @__PURE__ */ jsx7(
1869
- ListItem,
1870
- {
1871
- dense: true,
1872
- sx: [listItemSx, ...Array.isArray(sx) ? sx : [sx]],
1873
- ...props
1874
- }
1875
- );
1850
+ return /* @__PURE__ */ jsx7(ListItem, { dense: true, sx: mergeSx(listItemSx, sx), ...props });
1876
1851
  }
1877
1852
  function BiampListPopoverScrollArea({
1878
1853
  maxHeight = 340,
@@ -1882,7 +1857,10 @@ function BiampListPopoverScrollArea({
1882
1857
  return /* @__PURE__ */ jsx7(
1883
1858
  Box6,
1884
1859
  {
1885
- sx: { maxHeight, overflow: "auto", overscrollBehavior: "none", ...sx },
1860
+ sx: mergeSx(
1861
+ { maxHeight, overflow: "auto", overscrollBehavior: "none" },
1862
+ sx
1863
+ ),
1886
1864
  ...props
1887
1865
  }
1888
1866
  );
@@ -1915,7 +1893,16 @@ function BiampCheckboxListPopover({
1915
1893
  slotProps: { input: { "aria-label": selectAllLabel } }
1916
1894
  }
1917
1895
  ),
1918
- /* @__PURE__ */ jsx8(Typography4, { variant: "caption", fontWeight: 600, children: selectAllLabel })
1896
+ /* @__PURE__ */ jsx8(
1897
+ Typography4,
1898
+ {
1899
+ variant: "caption",
1900
+ sx: {
1901
+ fontWeight: 600
1902
+ },
1903
+ children: selectAllLabel
1904
+ }
1905
+ )
1919
1906
  ] }),
1920
1907
  /* @__PURE__ */ jsx8(Divider2, {})
1921
1908
  ] }),
@@ -1963,7 +1950,7 @@ import {
1963
1950
  import {
1964
1951
  flexRender as flexRender2
1965
1952
  } from "@tanstack/react-table";
1966
- import { useEffect as useEffect2, useRef as useRef3 } from "react";
1953
+ import { useEffect as useEffect2, useRef as useRef2 } from "react";
1967
1954
 
1968
1955
  // src/BiampTable/BiampTableEmptyState.tsx
1969
1956
  import { NoResultsIcon } from "@bwp-web/assets";
@@ -1979,15 +1966,28 @@ function BiampTableStatusMessage({
1979
1966
  children,
1980
1967
  ...stackProps
1981
1968
  }) {
1982
- return /* @__PURE__ */ jsxs7(Stack6, { alignItems: "center", gap: 1.5, ...stackProps, children: [
1983
- cloneElement(icon, {
1984
- "aria-hidden": true,
1985
- sx: { width: 56, height: 56, ...icon.props.sx }
1986
- }),
1987
- /* @__PURE__ */ jsx9(Typography5, { variant: "h2", children: title }),
1988
- description && /* @__PURE__ */ jsx9(Typography5, { variant: "body1", children: description }),
1989
- children
1990
- ] });
1969
+ return /* @__PURE__ */ jsxs7(
1970
+ Stack6,
1971
+ {
1972
+ ...stackProps,
1973
+ sx: mergeSx(
1974
+ {
1975
+ alignItems: "center",
1976
+ gap: 1.5
1977
+ },
1978
+ stackProps.sx
1979
+ ),
1980
+ children: [
1981
+ cloneElement(icon, {
1982
+ "aria-hidden": true,
1983
+ sx: mergeSx({ width: 56, height: 56 }, icon.props.sx)
1984
+ }),
1985
+ /* @__PURE__ */ jsx9(Typography5, { variant: "h2", children: title }),
1986
+ description && /* @__PURE__ */ jsx9(Typography5, { variant: "body1", children: description }),
1987
+ children
1988
+ ]
1989
+ }
1990
+ );
1991
1991
  }
1992
1992
 
1993
1993
  // src/BiampTable/BiampTableEmptyState.tsx
@@ -2033,12 +2033,12 @@ import React4 from "react";
2033
2033
 
2034
2034
  // src/BiampTable/BiampTableTruncatedCell.tsx
2035
2035
  import { Box as Box7, Tooltip as Tooltip2 } from "@mui/material";
2036
- import { useCallback, useRef as useRef2, useState as useState5 } from "react";
2036
+ import { useCallback, useRef, useState as useState5 } from "react";
2037
2037
  import { jsx as jsx12 } from "react/jsx-runtime";
2038
2038
  function BiampTableTruncatedCell({
2039
2039
  children
2040
2040
  }) {
2041
- const textRef = useRef2(null);
2041
+ const textRef = useRef(null);
2042
2042
  const [open, setOpen] = useState5(false);
2043
2043
  const handleMouseEnter = useCallback(() => {
2044
2044
  const el = textRef.current;
@@ -2077,21 +2077,6 @@ function BiampTableTruncatedCell({
2077
2077
  );
2078
2078
  }
2079
2079
 
2080
- // src/slotProps.ts
2081
- function resolveSlot(slot, ctx) {
2082
- if (!slot) return void 0;
2083
- return typeof slot === "function" ? slot(ctx) : slot;
2084
- }
2085
- function mergeSx(...inputs) {
2086
- return inputs.filter((v) => Boolean(v)).flatMap((v) => Array.isArray(v) ? v : [v]);
2087
- }
2088
- function mergeSlotProps(ownProps, userProps) {
2089
- return typeof userProps === "function" ? (ownerState) => ({
2090
- ...ownProps,
2091
- ...userProps(ownerState)
2092
- }) : { ...ownProps, ...userProps };
2093
- }
2094
-
2095
2080
  // src/BiampTable/cellSx.ts
2096
2081
  var stickyHoverBg = {
2097
2082
  ".MuiTableRow-hover:hover > &, .Mui-selected > &": {
@@ -2503,7 +2488,7 @@ function BiampTable({
2503
2488
  enableRowSelection ? 48 : 0
2504
2489
  );
2505
2490
  const visibleColumnsKey = table.getVisibleLeafColumns().map((col) => col.id).join(",");
2506
- const containerRef = useRef3(null);
2491
+ const containerRef = useRef2(null);
2507
2492
  useEffect2(() => {
2508
2493
  if (enableExpanding && alwaysExpanded) {
2509
2494
  table.toggleAllRowsExpanded(true);
@@ -2520,13 +2505,15 @@ function BiampTable({
2520
2505
  component: Box10,
2521
2506
  ...boxProps,
2522
2507
  ref: containerRef,
2523
- sx: {
2524
- display: "flex",
2525
- flexDirection: "column",
2526
- height: "100%",
2527
- position: "relative",
2528
- ...sx
2529
- },
2508
+ sx: mergeSx(
2509
+ {
2510
+ display: "flex",
2511
+ flexDirection: "column",
2512
+ height: "100%",
2513
+ position: "relative"
2514
+ },
2515
+ sx
2516
+ ),
2530
2517
  children: [
2531
2518
  /* @__PURE__ */ jsxs9(
2532
2519
  MuiTable,
@@ -2658,14 +2645,18 @@ function BiampTableContainer({
2658
2645
  Stack7,
2659
2646
  {
2660
2647
  direction: "column",
2661
- width: "100%",
2662
- height: "100%",
2663
- overflow: "hidden",
2664
- pt: { xs: 0, md: 1.5 },
2665
- borderTop: withBorderTop ? ({ palette }) => `0.6px solid ${palette.divider}` : void 0,
2666
- borderBottom: withBorderBottom ? ({ palette }) => `0.6px solid ${palette.divider}` : void 0,
2667
- sx: { ...sx },
2668
2648
  ...props,
2649
+ sx: mergeSx(
2650
+ {
2651
+ width: "100%",
2652
+ height: "100%",
2653
+ overflow: "hidden",
2654
+ pt: { xs: 0, md: 1.5 },
2655
+ borderTop: withBorderTop ? ({ palette }) => `0.6px solid ${palette.divider}` : void 0,
2656
+ borderBottom: withBorderBottom ? ({ palette }) => `0.6px solid ${palette.divider}` : void 0
2657
+ },
2658
+ sx
2659
+ ),
2669
2660
  children
2670
2661
  }
2671
2662
  );
@@ -2839,7 +2830,7 @@ function BiampTableToolbarColumnVisibility({
2839
2830
  }
2840
2831
 
2841
2832
  // src/BiampTable/BiampTablePagination.tsx
2842
- import { useEffect as useEffect3, useRef as useRef4 } from "react";
2833
+ import { useEffect as useEffect3, useState as useState7 } from "react";
2843
2834
  import { TablePagination } from "@mui/material";
2844
2835
  import { jsx as jsx21 } from "react/jsx-runtime";
2845
2836
  var positionMap = {
@@ -2857,11 +2848,11 @@ function BiampTablePagination({
2857
2848
  ...paginationProps
2858
2849
  }) {
2859
2850
  const rowCount = table.getRowCount();
2860
- const lastRowCountRef = useRef4(rowCount);
2861
- if (!loading && rowCount >= 0) {
2862
- lastRowCountRef.current = rowCount;
2851
+ const [lastRowCount, setLastRowCount] = useState7(rowCount);
2852
+ if (!loading && rowCount >= 0 && rowCount !== lastRowCount) {
2853
+ setLastRowCount(rowCount);
2863
2854
  }
2864
- const stableCount = loading ? lastRowCountRef.current : rowCount;
2855
+ const stableCount = loading ? lastRowCount : rowCount;
2865
2856
  const { pageSize, pageIndex } = table.getState().pagination;
2866
2857
  const maxPage = Math.max(0, Math.ceil(stableCount / pageSize) - 1);
2867
2858
  useEffect3(() => {
@@ -2885,17 +2876,19 @@ function BiampTablePagination({
2885
2876
  rowsPerPageOptions: rowsPerPageOptions ?? [],
2886
2877
  showFirstButton: true,
2887
2878
  showLastButton: true,
2888
- sx: {
2889
- display: "flex",
2890
- justifyContent: positionMap[position],
2891
- height: 40,
2892
- minHeight: 40,
2893
- "& .MuiToolbar-root": {
2879
+ sx: mergeSx(
2880
+ {
2881
+ display: "flex",
2882
+ justifyContent: positionMap[position],
2883
+ height: 40,
2894
2884
  minHeight: 40,
2895
- px: 0
2885
+ "& .MuiToolbar-root": {
2886
+ minHeight: 40,
2887
+ px: 0
2888
+ }
2896
2889
  },
2897
- ...sx
2898
- },
2890
+ sx
2891
+ ),
2899
2892
  ...paginationProps
2900
2893
  }
2901
2894
  );
@@ -2913,14 +2906,18 @@ function BiampTableToolbar({
2913
2906
  Box11,
2914
2907
  {
2915
2908
  role: "toolbar",
2916
- display: "flex",
2917
- justifyContent: "space-between",
2918
- alignItems: "center",
2919
- gap: { xs: 0, md: 1 },
2920
- width: "100%",
2921
- minHeight: 44,
2922
- sx: { ...sx },
2923
2909
  ...props,
2910
+ sx: mergeSx(
2911
+ {
2912
+ display: "flex",
2913
+ justifyContent: "space-between",
2914
+ alignItems: "center",
2915
+ gap: { xs: 0, md: 1 },
2916
+ width: "100%",
2917
+ minHeight: 44
2918
+ },
2919
+ sx
2920
+ ),
2924
2921
  children
2925
2922
  }
2926
2923
  );
@@ -2936,12 +2933,17 @@ function BiampTableToolbarActions({
2936
2933
  return /* @__PURE__ */ jsx23(
2937
2934
  Box12,
2938
2935
  {
2939
- display: "flex",
2940
- alignItems: "center",
2941
- ml: "auto",
2942
- gap: { xs: 0, md: 1 },
2943
- mr: { xs: 1, md: 0 },
2944
2936
  ...props,
2937
+ sx: mergeSx(
2938
+ {
2939
+ display: "flex",
2940
+ alignItems: "center",
2941
+ ml: "auto",
2942
+ gap: { xs: 0, md: 1 },
2943
+ mr: { xs: 1, md: 0 }
2944
+ },
2945
+ props.sx
2946
+ ),
2945
2947
  children
2946
2948
  }
2947
2949
  );
@@ -3002,7 +3004,8 @@ import {
3002
3004
  useTheme as useTheme2
3003
3005
  } from "@mui/material";
3004
3006
  import { CloseIcon as CloseIcon2, FilterIcon } from "@bwp-web/assets";
3005
- import { useId, useState as useState7 } from "react";
3007
+ import { useId, useState as useState8 } from "react";
3008
+ import { mergeSlotProps as mergeSlotProps2 } from "@mui/material/utils";
3006
3009
  import { Fragment as Fragment5, jsx as jsx25, jsxs as jsxs11 } from "react/jsx-runtime";
3007
3010
  function BiampTableToolbarFilters({
3008
3011
  activeFilterCount,
@@ -3017,7 +3020,7 @@ function BiampTableToolbarFilters({
3017
3020
  buttonLabel = "Filters",
3018
3021
  DrawerProps: drawerProps
3019
3022
  }) {
3020
- const [open, setOpen] = useState7(false);
3023
+ const [open, setOpen] = useState8(false);
3021
3024
  const titleId = useId();
3022
3025
  const theme = useTheme2();
3023
3026
  function handleClose() {
@@ -3042,27 +3045,33 @@ function BiampTableToolbarFilters({
3042
3045
  onClose: handleClose,
3043
3046
  "aria-labelledby": titleId,
3044
3047
  ...drawerProps,
3045
- PaperProps: {
3046
- sx: { width: { xs: "100%", sm: 480 } },
3047
- ...drawerProps?.PaperProps
3048
+ slotProps: {
3049
+ ...drawerProps?.slotProps,
3050
+ paper: mergeSlotProps2(drawerProps?.slotProps?.paper, {
3051
+ sx: { width: { xs: "100%", sm: 480 } }
3052
+ })
3048
3053
  },
3049
3054
  children: /* @__PURE__ */ jsxs11(
3050
3055
  Box13,
3051
3056
  {
3052
- height: "100%",
3053
- display: "flex",
3054
- flexDirection: "column",
3055
- justifyContent: "space-between",
3057
+ sx: {
3058
+ height: "100%",
3059
+ display: "flex",
3060
+ flexDirection: "column",
3061
+ justifyContent: "space-between"
3062
+ },
3056
3063
  children: [
3057
3064
  /* @__PURE__ */ jsxs11(Box13, { children: [
3058
3065
  /* @__PURE__ */ jsxs11(
3059
3066
  Box13,
3060
3067
  {
3061
- display: "flex",
3062
- justifyContent: "space-between",
3063
- alignItems: "center",
3064
- px: 3.5,
3065
- py: 2.5,
3068
+ sx: {
3069
+ display: "flex",
3070
+ justifyContent: "space-between",
3071
+ alignItems: "center",
3072
+ px: 3.5,
3073
+ py: 2.5
3074
+ },
3066
3075
  children: [
3067
3076
  /* @__PURE__ */ jsxs11(Typography6, { id: titleId, variant: "h2", children: [
3068
3077
  title,
@@ -3100,38 +3109,48 @@ function BiampTableToolbarFilters({
3100
3109
  {
3101
3110
  role: "group",
3102
3111
  "aria-label": "Filter options",
3103
- display: "flex",
3104
- flexDirection: "column",
3105
- gap: 2,
3106
- p: 3.5,
3107
- overflow: "auto",
3112
+ sx: {
3113
+ display: "flex",
3114
+ flexDirection: "column",
3115
+ gap: 2,
3116
+ p: 3.5,
3117
+ overflow: "auto"
3118
+ },
3108
3119
  children
3109
3120
  }
3110
3121
  )
3111
3122
  ] }),
3112
- /* @__PURE__ */ jsxs11(Box13, { display: "flex", children: [
3113
- /* @__PURE__ */ jsx25(
3114
- Button3,
3115
- {
3116
- variant: "overlay",
3117
- color: "secondary",
3118
- fullWidth: true,
3119
- onClick: onReset,
3120
- disabled: activeFilterCount === 0,
3121
- children: resetLabel
3122
- }
3123
- ),
3124
- /* @__PURE__ */ jsx25(
3125
- Button3,
3126
- {
3127
- variant: "overlay",
3128
- color: "primary",
3129
- fullWidth: true,
3130
- onClick: handleClose,
3131
- children: applyLabel
3132
- }
3133
- )
3134
- ] })
3123
+ /* @__PURE__ */ jsxs11(
3124
+ Box13,
3125
+ {
3126
+ sx: {
3127
+ display: "flex"
3128
+ },
3129
+ children: [
3130
+ /* @__PURE__ */ jsx25(
3131
+ Button3,
3132
+ {
3133
+ variant: "overlay",
3134
+ color: "secondary",
3135
+ fullWidth: true,
3136
+ onClick: onReset,
3137
+ disabled: activeFilterCount === 0,
3138
+ children: resetLabel
3139
+ }
3140
+ ),
3141
+ /* @__PURE__ */ jsx25(
3142
+ Button3,
3143
+ {
3144
+ variant: "overlay",
3145
+ color: "primary",
3146
+ fullWidth: true,
3147
+ onClick: handleClose,
3148
+ children: applyLabel
3149
+ }
3150
+ )
3151
+ ]
3152
+ }
3153
+ )
3135
3154
  ]
3136
3155
  }
3137
3156
  )
@@ -3151,15 +3170,17 @@ import {
3151
3170
  useMediaQuery as useMediaQuery3
3152
3171
  } from "@mui/material";
3153
3172
  import { CloseIcon as CloseIcon3, SearchIcon as SearchIcon2 } from "@bwp-web/assets";
3154
- import { useEffect as useEffect5, useState as useState8 } from "react";
3173
+ import { useState as useState9 } from "react";
3155
3174
 
3156
3175
  // src/BiampTable/useDebouncedCallback.ts
3157
- import { useCallback as useCallback2, useEffect as useEffect4, useRef as useRef5 } from "react";
3176
+ import { useCallback as useCallback2, useEffect as useEffect4, useRef as useRef3 } from "react";
3158
3177
  var BIAMP_TABLE_DEBOUNCE_DELAY = 300;
3159
3178
  function useDebouncedCallback(callback, delay = BIAMP_TABLE_DEBOUNCE_DELAY) {
3160
- const timeoutRef = useRef5(null);
3161
- const callbackRef = useRef5(callback);
3162
- callbackRef.current = callback;
3179
+ const timeoutRef = useRef3(null);
3180
+ const callbackRef = useRef3(callback);
3181
+ useEffect4(() => {
3182
+ callbackRef.current = callback;
3183
+ });
3163
3184
  useEffect4(() => {
3164
3185
  return () => {
3165
3186
  if (timeoutRef.current !== null) clearTimeout(timeoutRef.current);
@@ -3203,12 +3224,14 @@ function BiampTableToolbarSearch({
3203
3224
  ...textFieldProps
3204
3225
  }) {
3205
3226
  const isMobile = useMediaQuery3((t) => t.breakpoints.down("md"));
3206
- const [inputValue, setInputValue] = useState8(defaultValue);
3207
- const [isExpanded, setIsExpanded] = useState8(false);
3227
+ const [inputValue, setInputValue] = useState9(defaultValue);
3228
+ const [isExpanded, setIsExpanded] = useState9(false);
3208
3229
  const debouncedOnChange = useDebouncedCallback(onChange, debounceDelay);
3209
- useEffect5(() => {
3230
+ const [prevDefaultValue, setPrevDefaultValue] = useState9(defaultValue);
3231
+ if (defaultValue !== prevDefaultValue) {
3232
+ setPrevDefaultValue(defaultValue);
3210
3233
  setInputValue(defaultValue);
3211
- }, [defaultValue]);
3234
+ }
3212
3235
  const handleChange = (e) => {
3213
3236
  setInputValue(e.target.value);
3214
3237
  debouncedOnChange(e.target.value);
@@ -3274,11 +3297,11 @@ function BiampTableToolbarSearch({
3274
3297
  }
3275
3298
  },
3276
3299
  fullWidth: true,
3277
- sx: [
3300
+ sx: mergeSx(
3278
3301
  searchFieldSx,
3279
3302
  expandable ? { width: 170 } : { maxWidth },
3280
- ...Array.isArray(sx) ? sx : sx ? [sx] : []
3281
- ],
3303
+ sx
3304
+ ),
3282
3305
  variant: "outlined",
3283
3306
  value: inputValue,
3284
3307
  onChange: handleChange,
@@ -3288,57 +3311,79 @@ function BiampTableToolbarSearch({
3288
3311
  }
3289
3312
  );
3290
3313
  if (isMobile && enableMobileView) {
3291
- return /* @__PURE__ */ jsxs12(Box14, { display: "flex", alignItems: "center", width: "100%", pr: 1, gap: 1, children: [
3292
- /* @__PURE__ */ jsx26(SearchIcon2, { sx: { width: 16, height: 16 } }),
3293
- /* @__PURE__ */ jsx26(
3294
- InputBase,
3295
- {
3296
- name: "search",
3297
- type: "text",
3298
- placeholder,
3299
- inputProps: { maxLength, "aria-label": "Search" },
3300
- fullWidth: true,
3301
- value: inputValue,
3302
- sx: {
3303
- paddingLeft: 1,
3304
- height: "36px !important",
3305
- minHeight: "36px !important",
3306
- fontSize: (t) => t.typography.body2.fontSize
3307
- },
3308
- onChange: handleChange,
3309
- endAdornment: clearButton
3310
- }
3311
- )
3312
- ] });
3314
+ return /* @__PURE__ */ jsxs12(
3315
+ Box14,
3316
+ {
3317
+ sx: {
3318
+ display: "flex",
3319
+ alignItems: "center",
3320
+ width: "100%",
3321
+ pr: 1,
3322
+ gap: 1
3323
+ },
3324
+ children: [
3325
+ /* @__PURE__ */ jsx26(SearchIcon2, { sx: { width: 16, height: 16 } }),
3326
+ /* @__PURE__ */ jsx26(
3327
+ InputBase,
3328
+ {
3329
+ name: "search",
3330
+ type: "text",
3331
+ placeholder,
3332
+ slotProps: { input: { maxLength, "aria-label": "Search" } },
3333
+ fullWidth: true,
3334
+ value: inputValue,
3335
+ sx: {
3336
+ paddingLeft: 1,
3337
+ height: "36px !important",
3338
+ minHeight: "36px !important",
3339
+ fontSize: (t) => t.typography.body2.fontSize
3340
+ },
3341
+ onChange: handleChange,
3342
+ endAdornment: clearButton
3343
+ }
3344
+ )
3345
+ ]
3346
+ }
3347
+ );
3313
3348
  }
3314
3349
  if (expandable) {
3315
- return /* @__PURE__ */ jsxs12(Box14, { display: "flex", alignItems: "center", minWidth: 28, children: [
3316
- /* @__PURE__ */ jsx26(
3317
- IconButton6,
3318
- {
3319
- "aria-label": expandLabel ?? placeholder,
3320
- onClick: () => setIsExpanded(true),
3321
- sx: { display: isExpanded || inputValue ? "none" : "flex" },
3322
- children: /* @__PURE__ */ jsx26(
3323
- SearchIcon2,
3350
+ return /* @__PURE__ */ jsxs12(
3351
+ Box14,
3352
+ {
3353
+ sx: {
3354
+ display: "flex",
3355
+ alignItems: "center",
3356
+ minWidth: 28
3357
+ },
3358
+ children: [
3359
+ /* @__PURE__ */ jsx26(
3360
+ IconButton6,
3324
3361
  {
3325
- variant: "xs",
3326
- color: "inherit",
3327
- sx: { width: 16, height: 16 }
3362
+ "aria-label": expandLabel ?? placeholder,
3363
+ onClick: () => setIsExpanded(true),
3364
+ sx: { display: isExpanded || inputValue ? "none" : "flex" },
3365
+ children: /* @__PURE__ */ jsx26(
3366
+ SearchIcon2,
3367
+ {
3368
+ variant: "xs",
3369
+ color: "inherit",
3370
+ sx: { width: 16, height: 16 }
3371
+ }
3372
+ )
3373
+ }
3374
+ ),
3375
+ /* @__PURE__ */ jsx26(
3376
+ Collapse,
3377
+ {
3378
+ in: isExpanded || !!inputValue,
3379
+ orientation: "horizontal",
3380
+ unmountOnExit: true,
3381
+ children: textField
3328
3382
  }
3329
3383
  )
3330
- }
3331
- ),
3332
- /* @__PURE__ */ jsx26(
3333
- Collapse,
3334
- {
3335
- in: isExpanded || !!inputValue,
3336
- orientation: "horizontal",
3337
- unmountOnExit: true,
3338
- children: textField
3339
- }
3340
- )
3341
- ] });
3384
+ ]
3385
+ }
3386
+ );
3342
3387
  }
3343
3388
  return textField;
3344
3389
  }
@@ -3590,15 +3635,15 @@ function BiampBanner({ show, children, severity }) {
3590
3635
  return /* @__PURE__ */ jsx27(Collapse2, { in: show, unmountOnExit: true, component: "aside", children: /* @__PURE__ */ jsx27(
3591
3636
  Box15,
3592
3637
  {
3593
- bgcolor: ({ palette }) => palette.background[severity],
3594
- display: "flex",
3595
- flexDirection: "row",
3596
- alignItems: "center",
3597
- justifyContent: "space-between",
3598
- gap: 1,
3599
- px: { xs: 2, sm: 2.5 },
3600
- minHeight: 48,
3601
3638
  sx: {
3639
+ bgcolor: ({ palette }) => palette.background[severity],
3640
+ display: "flex",
3641
+ flexDirection: "row",
3642
+ alignItems: "center",
3643
+ justifyContent: "space-between",
3644
+ gap: 1,
3645
+ px: { xs: 2, sm: 2.5 },
3646
+ minHeight: 48,
3602
3647
  borderBottom: ({ palette }) => `0.6px solid ${palette[severity].main}`
3603
3648
  },
3604
3649
  children
@@ -3615,10 +3660,37 @@ function BiampBannerIcon({ severity, children }) {
3615
3660
  return /* @__PURE__ */ jsx27(Fragment6, { children: severity ? iconMapping[severity] : children });
3616
3661
  }
3617
3662
  function BiampBannerContent({ children, ...props }) {
3618
- return /* @__PURE__ */ jsx27(Typography7, { textAlign: "center", variant: "h3", ...props, children });
3663
+ return /* @__PURE__ */ jsx27(
3664
+ Typography7,
3665
+ {
3666
+ variant: "h3",
3667
+ ...props,
3668
+ sx: mergeSx(
3669
+ {
3670
+ textAlign: "center"
3671
+ },
3672
+ props.sx
3673
+ ),
3674
+ children
3675
+ }
3676
+ );
3619
3677
  }
3620
3678
  function BiampBannerActions({ children, ...props }) {
3621
- return /* @__PURE__ */ jsx27(Box15, { display: "flex", gap: 1, alignItems: "center", ...props, children });
3679
+ return /* @__PURE__ */ jsx27(
3680
+ Box15,
3681
+ {
3682
+ ...props,
3683
+ sx: mergeSx(
3684
+ {
3685
+ display: "flex",
3686
+ gap: 1,
3687
+ alignItems: "center"
3688
+ },
3689
+ props.sx
3690
+ ),
3691
+ children
3692
+ }
3693
+ );
3622
3694
  }
3623
3695
 
3624
3696
  // src/BiampSegmentedButton/SegmentedButton.tsx
@@ -3640,20 +3712,22 @@ function SegmentedButton({
3640
3712
  return /* @__PURE__ */ jsx28(
3641
3713
  Button4,
3642
3714
  {
3643
- sx: {
3644
- backgroundColor,
3645
- color: textColor,
3646
- borderRadius: "4px",
3647
- border,
3648
- borderColor: "divider",
3649
- lineHeight: 1.5,
3650
- px: 1.5,
3651
- py: 0,
3652
- height: small ? "22px" : "26px",
3653
- ...small && { fontSize: "12px", letterSpacing: "-0.24px" },
3654
- boxShadow: active ? `0 1px 2px 0 ${alpha4(theme.palette.common.black, 0.05)} !important` : "none !important",
3655
- ...sx
3656
- },
3715
+ sx: mergeSx(
3716
+ {
3717
+ backgroundColor,
3718
+ color: textColor,
3719
+ borderRadius: "4px",
3720
+ border,
3721
+ borderColor: "divider",
3722
+ lineHeight: 1.5,
3723
+ px: 1.5,
3724
+ py: 0,
3725
+ height: small ? "22px" : "26px",
3726
+ ...small && { fontSize: "12px", letterSpacing: "-0.24px" },
3727
+ boxShadow: active ? `0 1px 2px 0 ${alpha4(theme.palette.common.black, 0.05)} !important` : "none !important"
3728
+ },
3729
+ sx
3730
+ ),
3657
3731
  ...props,
3658
3732
  children
3659
3733
  }
@@ -3670,14 +3744,16 @@ function SegmentedButtonGroup({ children, sx, ...props }) {
3670
3744
  Stack8,
3671
3745
  {
3672
3746
  direction: "row",
3673
- p: 0.5,
3674
- borderRadius: "6px",
3675
- gap: 1,
3676
- sx: {
3677
- backgroundColor: isDarkMode ? theme.palette.grey[900] : theme.palette.grey[100],
3678
- ...sx
3679
- },
3680
3747
  ...props,
3748
+ sx: mergeSx(
3749
+ {
3750
+ p: 0.5,
3751
+ borderRadius: "6px",
3752
+ gap: 1,
3753
+ backgroundColor: isDarkMode ? theme.palette.grey[900] : theme.palette.grey[100]
3754
+ },
3755
+ sx
3756
+ ),
3681
3757
  children
3682
3758
  }
3683
3759
  );
@@ -3697,7 +3773,7 @@ import {
3697
3773
  Stack as Stack9,
3698
3774
  Typography as Typography8
3699
3775
  } from "@mui/material";
3700
- import { Children as Children2, Fragment as Fragment7, isValidElement } from "react";
3776
+ import { Children, Fragment as Fragment7, isValidElement } from "react";
3701
3777
  import {
3702
3778
  ChevronDownIcon as ChevronDownIcon2,
3703
3779
  ChevronRightIcon as ChevronRightIcon2,
@@ -3713,17 +3789,19 @@ function OrganizationSelector({
3713
3789
  return /* @__PURE__ */ jsx30(
3714
3790
  Stack9,
3715
3791
  {
3716
- sx: {
3717
- width: "min(370px, calc(100vw - 24px))",
3718
- minHeight: 64,
3719
- maxHeight: "min(700px, 90vh)",
3720
- backgroundColor: ({ palette }) => palette.mode === "dark" ? palette.grey[700] : palette.grey[100],
3721
- borderRadius: 3,
3722
- p: 1.5,
3723
- boxShadow: ({ palette }) => `0 4px 24px 0 ${alpha5(palette.common.black, 0.15)}`,
3724
- overflow: "auto",
3725
- ...sx
3726
- },
3792
+ sx: mergeSx(
3793
+ {
3794
+ width: "min(370px, calc(100vw - 24px))",
3795
+ minHeight: 64,
3796
+ maxHeight: "min(700px, 90vh)",
3797
+ backgroundColor: ({ palette }) => palette.mode === "dark" ? palette.grey[700] : palette.grey[100],
3798
+ borderRadius: 3,
3799
+ p: 1.5,
3800
+ boxShadow: ({ palette }) => `0 4px 24px 0 ${alpha5(palette.common.black, 0.15)}`,
3801
+ overflow: "auto"
3802
+ },
3803
+ sx
3804
+ ),
3727
3805
  ...props,
3728
3806
  children: loading ? /* @__PURE__ */ jsx30(CircularProgress, { size: 40, sx: { mx: "auto", my: "auto" } }) : children
3729
3807
  }
@@ -3735,22 +3813,24 @@ function OrganizationItemList({
3735
3813
  maxHeight,
3736
3814
  sx
3737
3815
  }) {
3738
- const items = Children2.toArray(children).filter(isValidElement);
3816
+ const items = Children.toArray(children).filter(isValidElement);
3739
3817
  return /* @__PURE__ */ jsxs13(Fragment8, { children: [
3740
3818
  /* @__PURE__ */ jsx30(
3741
3819
  List2,
3742
3820
  {
3743
3821
  disablePadding: true,
3744
- sx: {
3745
- border: 0.6,
3746
- borderColor: ({ palette }) => palette.mode === "dark" ? alpha5(palette.common.white, 0.12) : alpha5(palette.grey[900], 0.15),
3747
- borderRadius: 2,
3748
- ...maxHeight !== void 0 && {
3749
- overflow: "auto",
3750
- maxHeight
3822
+ sx: mergeSx(
3823
+ {
3824
+ border: 0.6,
3825
+ borderColor: ({ palette }) => palette.mode === "dark" ? alpha5(palette.common.white, 0.12) : alpha5(palette.grey[900], 0.15),
3826
+ borderRadius: 2,
3827
+ ...maxHeight !== void 0 && {
3828
+ overflow: "auto",
3829
+ maxHeight
3830
+ }
3751
3831
  },
3752
- ...sx
3753
- },
3832
+ sx
3833
+ ),
3754
3834
  children: items.map((item, i) => /* @__PURE__ */ jsxs13(Fragment7, { children: [
3755
3835
  item,
3756
3836
  i !== items.length - 1 && /* @__PURE__ */ jsx30(Divider4, {})
@@ -3766,9 +3846,11 @@ function renderText(value, defaults) {
3766
3846
  Typography8,
3767
3847
  {
3768
3848
  variant: defaults.variant,
3769
- fontWeight: defaults.fontWeight,
3770
- color: defaults.color,
3771
3849
  noWrap: true,
3850
+ sx: {
3851
+ fontWeight: defaults.fontWeight,
3852
+ color: defaults.color
3853
+ },
3772
3854
  children: value
3773
3855
  }
3774
3856
  );
@@ -3791,13 +3873,10 @@ function OrganizationItem({
3791
3873
  {
3792
3874
  disabled: disabled ?? isCurrent,
3793
3875
  disableRipple: true,
3794
- sx: {
3795
- p: 1,
3796
- pr: 1.5,
3797
- gap: 1.5,
3798
- "&.Mui-disabled": { opacity: 1 },
3799
- ...sx
3800
- },
3876
+ sx: mergeSx(
3877
+ { p: 1, pr: 1.5, gap: 1.5, "&.Mui-disabled": { opacity: 1 } },
3878
+ sx
3879
+ ),
3801
3880
  ...props,
3802
3881
  children: [
3803
3882
  /* @__PURE__ */ jsx30(
@@ -3827,20 +3906,40 @@ function OrganizationItem({
3827
3906
  ) : logo
3828
3907
  }
3829
3908
  ),
3830
- /* @__PURE__ */ jsxs13(Stack9, { gap: 0.25, sx: { width: "100%", minWidth: 0 }, children: [
3831
- /* @__PURE__ */ jsxs13(Stack9, { direction: "row", justifyContent: "space-between", gap: 1, children: [
3832
- renderText(primaryText, {
3833
- variant: "body2",
3834
- fontWeight: 600,
3835
- color: "primary"
3836
- }),
3837
- meta && renderText(meta, { variant: "body2", color: "text.secondary" })
3838
- ] }),
3839
- secondaryText && renderText(secondaryText, {
3840
- variant: "caption",
3841
- color: "text.secondary"
3842
- })
3843
- ] }),
3909
+ /* @__PURE__ */ jsxs13(
3910
+ Stack9,
3911
+ {
3912
+ sx: {
3913
+ gap: 0.25,
3914
+ width: "100%",
3915
+ minWidth: 0
3916
+ },
3917
+ children: [
3918
+ /* @__PURE__ */ jsxs13(
3919
+ Stack9,
3920
+ {
3921
+ direction: "row",
3922
+ sx: {
3923
+ justifyContent: "space-between",
3924
+ gap: 1
3925
+ },
3926
+ children: [
3927
+ renderText(primaryText, {
3928
+ variant: "body2",
3929
+ fontWeight: 600,
3930
+ color: "primary.main"
3931
+ }),
3932
+ meta && renderText(meta, { variant: "body2", color: "text.secondary" })
3933
+ ]
3934
+ }
3935
+ ),
3936
+ secondaryText && renderText(secondaryText, {
3937
+ variant: "caption",
3938
+ color: "text.secondary"
3939
+ })
3940
+ ]
3941
+ }
3942
+ ),
3844
3943
  /* @__PURE__ */ jsx30(
3845
3944
  ChevronRightIcon2,
3846
3945
  {
@@ -3869,15 +3968,17 @@ function OrganizationSelectorButton({
3869
3968
  ButtonBase,
3870
3969
  {
3871
3970
  disableRipple: true,
3872
- sx: {
3873
- display: "flex",
3874
- alignItems: "center",
3875
- gap: 1,
3876
- borderRadius: 1,
3877
- p: 0.75,
3878
- border: ({ palette }) => `0.6px solid ${palette.dividers.secondary}`,
3879
- ...sx
3880
- },
3971
+ sx: mergeSx(
3972
+ {
3973
+ display: "flex",
3974
+ alignItems: "center",
3975
+ gap: 1,
3976
+ borderRadius: 1,
3977
+ p: 0.75,
3978
+ border: ({ palette }) => `0.6px solid ${palette.dividers.secondary}`
3979
+ },
3980
+ sx
3981
+ ),
3881
3982
  ...props,
3882
3983
  children: [
3883
3984
  icon,
@@ -3885,9 +3986,11 @@ function OrganizationSelectorButton({
3885
3986
  Typography8,
3886
3987
  {
3887
3988
  variant: "caption",
3888
- fontWeight: 600,
3889
3989
  noWrap: true,
3890
- sx: { flexShrink: 0 },
3990
+ sx: {
3991
+ fontWeight: 600,
3992
+ flexShrink: 0
3993
+ },
3891
3994
  children: name
3892
3995
  }
3893
3996
  ),
@@ -3945,6 +4048,7 @@ import {
3945
4048
  Typography as Typography9
3946
4049
  } from "@mui/material";
3947
4050
  import { useId as useId2 } from "react";
4051
+ import { mergeSlotProps as mergeSlotProps3 } from "@mui/material/utils";
3948
4052
  import { jsx as jsx31, jsxs as jsxs14 } from "react/jsx-runtime";
3949
4053
  function LandingFormPanel({
3950
4054
  children,
@@ -3964,20 +4068,20 @@ function LandingFormPanel({
3964
4068
  component: "form",
3965
4069
  onSubmit: handleSubmit,
3966
4070
  noValidate,
3967
- gap: 2,
3968
- p: 1.5,
3969
- borderRadius: 4,
3970
- width,
3971
- maxWidth: "100%",
4071
+ ...stackProps,
3972
4072
  sx: mergeSx(
3973
4073
  {
4074
+ gap: 2,
4075
+ p: 1.5,
4076
+ borderRadius: 4,
4077
+ width,
4078
+ maxWidth: "100%",
3974
4079
  // Figma's `background_default` (#F5F5F5) is `grey[100]` here, not
3975
4080
  // `palette.background.default` — that token is #FFFFFF in light mode.
3976
4081
  backgroundColor: ({ palette }) => palette.mode === "dark" ? palette.grey[700] : palette.grey[100]
3977
4082
  },
3978
4083
  sx
3979
4084
  ),
3980
- ...stackProps,
3981
4085
  children
3982
4086
  }
3983
4087
  );
@@ -4007,43 +4111,62 @@ function LandingFormField({
4007
4111
  const generatedId = useId2();
4008
4112
  const fieldId = id ?? generatedId;
4009
4113
  const labelId = labelSlotProps?.id ?? `${fieldId}-label`;
4010
- return /* @__PURE__ */ jsxs14(Stack10, { gap: 0.5, width: "100%", ...containerSlotProps, children: [
4011
- /* @__PURE__ */ jsx31(
4012
- Typography9,
4013
- {
4014
- component: "label",
4015
- id: labelId,
4016
- htmlFor: fieldId,
4017
- fontSize: 12,
4018
- fontWeight: 600,
4019
- color: "text.primary",
4020
- ...labelSlotProps,
4021
- children: label
4022
- }
4023
- ),
4024
- /* @__PURE__ */ jsx31(
4025
- TextField3,
4026
- {
4027
- id: fieldId,
4028
- fullWidth: true,
4029
- variant: "outlined",
4030
- slotProps: {
4031
- ...fieldSlotProps,
4032
- // `select` renders a `div[role="combobox"]`, which `<label for>`
4033
- // cannot name — and MUI points its `aria-labelledby` at the div
4034
- // itself, so the name would come out as the selected value. Naming
4035
- // the label explicitly is what MUI's own floating label does.
4036
- // Inert on a text field: `slotProps.select` only reaches a `Select`.
4037
- select: mergeSlotProps({ labelId }, fieldSlotProps.select)
4038
- },
4039
- sx: mergeSx(fieldSx, sx),
4040
- ...textFieldProps
4041
- }
4042
- )
4043
- ] });
4114
+ return /* @__PURE__ */ jsxs14(
4115
+ Stack10,
4116
+ {
4117
+ ...containerSlotProps,
4118
+ sx: mergeSx({ gap: 0.5, width: "100%" }, containerSlotProps?.sx),
4119
+ children: [
4120
+ /* @__PURE__ */ jsx31(
4121
+ Typography9,
4122
+ {
4123
+ component: "label",
4124
+ id: labelId,
4125
+ htmlFor: fieldId,
4126
+ color: "textPrimary",
4127
+ ...labelSlotProps,
4128
+ sx: mergeSx({ fontSize: 12, fontWeight: 600 }, labelSlotProps?.sx),
4129
+ children: label
4130
+ }
4131
+ ),
4132
+ /* @__PURE__ */ jsx31(
4133
+ TextField3,
4134
+ {
4135
+ id: fieldId,
4136
+ fullWidth: true,
4137
+ variant: "outlined",
4138
+ slotProps: {
4139
+ ...fieldSlotProps,
4140
+ // `select` renders a `div[role="combobox"]`, which `<label for>`
4141
+ // cannot name — and MUI points its `aria-labelledby` at the div
4142
+ // itself, so the name would come out as the selected value. Naming
4143
+ // the label explicitly is what MUI's own floating label does.
4144
+ // Inert on a text field: `slotProps.select` only reaches a `Select`.
4145
+ select: mergeSlotProps3(fieldSlotProps.select, { labelId })
4146
+ },
4147
+ sx: mergeSx(fieldSx, sx),
4148
+ ...textFieldProps
4149
+ }
4150
+ )
4151
+ ]
4152
+ }
4153
+ );
4044
4154
  }
4045
4155
  function LandingFormActions(props) {
4046
- return /* @__PURE__ */ jsx31(Stack10, { direction: "row", gap: 1, width: "100%", ...props });
4156
+ return /* @__PURE__ */ jsx31(
4157
+ Stack10,
4158
+ {
4159
+ direction: "row",
4160
+ ...props,
4161
+ sx: mergeSx(
4162
+ {
4163
+ gap: 1,
4164
+ width: "100%"
4165
+ },
4166
+ props.sx
4167
+ )
4168
+ }
4169
+ );
4047
4170
  }
4048
4171
  function LandingFormCheckbox({
4049
4172
  label,
@@ -4065,10 +4188,9 @@ function LandingFormCheckbox({
4065
4188
  label,
4066
4189
  slotProps: {
4067
4190
  ...labelSlotProps,
4068
- typography: mergeSlotProps(
4069
- { variant: "body2" },
4070
- labelSlotProps.typography
4071
- )
4191
+ typography: mergeSlotProps3(labelSlotProps.typography, {
4192
+ variant: "body2"
4193
+ })
4072
4194
  },
4073
4195
  ...formControlLabelProps,
4074
4196
  sx: mergeSx({ m: 0, gap: 1, alignItems: "center" }, sx)
@@ -4088,12 +4210,13 @@ import {
4088
4210
  Typography as Typography10
4089
4211
  } from "@mui/material";
4090
4212
  import {
4091
- Children as Children3,
4213
+ Children as Children2,
4092
4214
  cloneElement as cloneElement2,
4093
4215
  Fragment as Fragment9,
4094
4216
  isValidElement as isValidElement2
4095
4217
  } from "react";
4096
4218
  import { ChevronRightIcon as ChevronRightIcon3, SearchIcon as SearchIcon3 } from "@bwp-web/assets";
4219
+ import { mergeSlotProps as mergeSlotProps4 } from "@mui/material/utils";
4097
4220
  import { Fragment as Fragment10, jsx as jsx32, jsxs as jsxs15 } from "react/jsx-runtime";
4098
4221
  function OrganizationRow({
4099
4222
  primaryText,
@@ -4156,12 +4279,24 @@ function OrganizationRow({
4156
4279
  {
4157
4280
  noWrap: true,
4158
4281
  variant: "body2",
4159
- fontWeight: 600,
4160
- color: disabled ? "text.secondary" : "text.primary",
4282
+ sx: {
4283
+ fontWeight: 600,
4284
+ color: disabled ? "text.secondary" : "text.primary"
4285
+ },
4161
4286
  children: primaryText
4162
4287
  }
4163
4288
  ),
4164
- secondaryText && /* @__PURE__ */ jsx32(Typography10, { noWrap: true, variant: "caption", color: "text.secondary", children: secondaryText })
4289
+ secondaryText && /* @__PURE__ */ jsx32(
4290
+ Typography10,
4291
+ {
4292
+ noWrap: true,
4293
+ variant: "caption",
4294
+ sx: {
4295
+ color: "text.secondary"
4296
+ },
4297
+ children: secondaryText
4298
+ }
4299
+ )
4165
4300
  ] }),
4166
4301
  !disabled && /* @__PURE__ */ jsx32(
4167
4302
  ChevronRightIcon3,
@@ -4191,7 +4326,7 @@ function OrganizationRowGroup({
4191
4326
  sx,
4192
4327
  ...boxProps
4193
4328
  }) {
4194
- const items = Children3.toArray(children).filter(isValidElement2);
4329
+ const items = Children2.toArray(children).filter(isValidElement2);
4195
4330
  return /* @__PURE__ */ jsx32(
4196
4331
  Box17,
4197
4332
  {
@@ -4242,34 +4377,53 @@ function OrganizationsEmptyState({
4242
4377
  Stack11,
4243
4378
  {
4244
4379
  role: "status",
4245
- alignItems: "center",
4246
- gap: 0.5,
4247
- width: "100%",
4248
- py: 2,
4249
- px: 2,
4250
4380
  ...stackProps,
4381
+ sx: mergeSx(
4382
+ {
4383
+ alignItems: "center",
4384
+ gap: 0.5,
4385
+ width: "100%",
4386
+ py: 2,
4387
+ px: 2
4388
+ },
4389
+ stackProps.sx
4390
+ ),
4251
4391
  children: [
4252
4392
  cloneElement2(icon, {
4253
4393
  "aria-hidden": true,
4254
- sx: {
4255
- width: 24,
4256
- height: 24,
4257
- mb: 0.5,
4258
- color: "text.secondary",
4259
- ...icon.props.sx
4260
- }
4394
+ sx: mergeSx(
4395
+ {
4396
+ width: 24,
4397
+ height: 24,
4398
+ mb: 0.5,
4399
+ color: "text.secondary"
4400
+ },
4401
+ icon.props.sx
4402
+ )
4261
4403
  }),
4262
4404
  /* @__PURE__ */ jsx32(
4263
4405
  Typography10,
4264
4406
  {
4265
4407
  variant: "body2",
4266
- fontWeight: 600,
4267
- color: "text.primary",
4268
- textAlign: "center",
4408
+ sx: {
4409
+ fontWeight: 600,
4410
+ color: "text.primary",
4411
+ textAlign: "center"
4412
+ },
4269
4413
  children: title
4270
4414
  }
4271
4415
  ),
4272
- description && /* @__PURE__ */ jsx32(Typography10, { variant: "caption", color: "text.secondary", textAlign: "center", children: description })
4416
+ description && /* @__PURE__ */ jsx32(
4417
+ Typography10,
4418
+ {
4419
+ variant: "caption",
4420
+ sx: {
4421
+ color: "text.secondary",
4422
+ textAlign: "center"
4423
+ },
4424
+ children: description
4425
+ }
4426
+ )
4273
4427
  ]
4274
4428
  }
4275
4429
  );
@@ -4298,22 +4452,22 @@ function OrganizationsPanel({
4298
4452
  return /* @__PURE__ */ jsxs15(
4299
4453
  Stack11,
4300
4454
  {
4301
- gap: 2,
4302
- alignItems: "center",
4303
- justifyContent: "center",
4304
- p: 1.5,
4305
- borderRadius: 4,
4306
- width,
4307
- maxWidth: "100%",
4455
+ ...stackProps,
4308
4456
  sx: mergeSx(
4309
4457
  {
4458
+ gap: 2,
4459
+ alignItems: "center",
4460
+ justifyContent: "center",
4461
+ p: 1.5,
4462
+ borderRadius: 4,
4463
+ width,
4464
+ maxWidth: "100%",
4310
4465
  // Figma's `background_default` (#F5F5F5) is `grey[100]` here, not
4311
4466
  // `palette.background.default` — that token is #FFFFFF in light mode.
4312
4467
  backgroundColor: ({ palette }) => palette.mode === "dark" ? palette.grey[700] : palette.grey[100]
4313
4468
  },
4314
4469
  sx
4315
4470
  ),
4316
- ...stackProps,
4317
4471
  children: [
4318
4472
  search && /* @__PURE__ */ jsx32(
4319
4473
  TextField4,
@@ -4336,16 +4490,12 @@ function OrganizationsPanel({
4336
4490
  ),
4337
4491
  slotProps: {
4338
4492
  ...searchFieldSlotProps,
4339
- input: mergeSlotProps(
4340
- {
4341
- startAdornment: /* @__PURE__ */ jsx32(InputAdornment3, { position: "start", children: /* @__PURE__ */ jsx32(SearchIcon3, { sx: { ml: 1 } }) })
4342
- },
4343
- searchFieldSlotProps?.input
4344
- ),
4345
- htmlInput: mergeSlotProps(
4346
- { "aria-label": search.placeholder },
4347
- searchFieldSlotProps?.htmlInput
4348
- )
4493
+ input: mergeSlotProps4(searchFieldSlotProps?.input, {
4494
+ startAdornment: /* @__PURE__ */ jsx32(InputAdornment3, { position: "start", children: /* @__PURE__ */ jsx32(SearchIcon3, { sx: { ml: 1 } }) })
4495
+ }),
4496
+ htmlInput: mergeSlotProps4(searchFieldSlotProps?.htmlInput, {
4497
+ "aria-label": search.placeholder
4498
+ })
4349
4499
  },
4350
4500
  ...searchSlotProps
4351
4501
  }
@@ -4363,10 +4513,17 @@ function OrganizationsPanel({
4363
4513
  )
4364
4514
  ] }),
4365
4515
  empty ? empty === true ? /* @__PURE__ */ jsx32(OrganizationsEmptyState, {}) : empty : orLabel && /* @__PURE__ */ jsx32(TextDivider, { ...slotProps?.orLabel, children: orLabel }),
4366
- (joinAction || createAction) && /* @__PURE__ */ jsxs15(Stack11, { gap: 1, width: "100%", ...slotProps?.actions, children: [
4367
- joinAction && /* @__PURE__ */ jsx32(OrganizationRowGroup, { ...slotProps?.joinGroup, children: joinAction }),
4368
- createAction && /* @__PURE__ */ jsx32(OrganizationRowGroup, { ...slotProps?.createGroup, children: createAction })
4369
- ] })
4516
+ (joinAction || createAction) && /* @__PURE__ */ jsxs15(
4517
+ Stack11,
4518
+ {
4519
+ ...slotProps?.actions,
4520
+ sx: mergeSx({ gap: 1, width: "100%" }, slotProps?.actions?.sx),
4521
+ children: [
4522
+ joinAction && /* @__PURE__ */ jsx32(OrganizationRowGroup, { ...slotProps?.joinGroup, children: joinAction }),
4523
+ createAction && /* @__PURE__ */ jsx32(OrganizationRowGroup, { ...slotProps?.createGroup, children: createAction })
4524
+ ]
4525
+ }
4526
+ )
4370
4527
  ]
4371
4528
  }
4372
4529
  );
@@ -4397,23 +4554,27 @@ function UserInitialsIcon({
4397
4554
  return /* @__PURE__ */ jsx33(
4398
4555
  Box18,
4399
4556
  {
4400
- minWidth: width,
4401
- width,
4402
- minHeight: height,
4403
- height,
4404
- borderRadius,
4405
- bgcolor: bgColor,
4406
- display: "flex",
4407
- alignItems: "center",
4408
- justifyContent: "center",
4409
- sx: { ...sx },
4410
4557
  ...props,
4558
+ sx: mergeSx(
4559
+ {
4560
+ minWidth: width,
4561
+ width,
4562
+ minHeight: height,
4563
+ height,
4564
+ borderRadius,
4565
+ bgcolor: bgColor,
4566
+ display: "flex",
4567
+ alignItems: "center",
4568
+ justifyContent: "center"
4569
+ },
4570
+ sx
4571
+ ),
4411
4572
  children: /* @__PURE__ */ jsx33(
4412
4573
  Typography11,
4413
4574
  {
4414
4575
  variant: "h3",
4415
- color: textColor,
4416
4576
  sx: {
4577
+ color: textColor,
4417
4578
  userSelect: "none",
4418
4579
  fontSize: size !== DEFAULT_SIZE ? `${fontSize}px` : void 0
4419
4580
  },
@@ -4432,9 +4593,19 @@ var getInitials = (name) => {
4432
4593
 
4433
4594
  // src/DynamicSvgIcon/DynamicSvgIcon.tsx
4434
4595
  import { SvgIcon, Skeleton, Box as Box19 } from "@mui/material";
4435
- import { useEffect as useEffect6, useState as useState9 } from "react";
4596
+ import { useEffect as useEffect5, useState as useState10 } from "react";
4436
4597
  import { jsx as jsx34 } from "react/jsx-runtime";
4437
4598
  var svgCache = /* @__PURE__ */ new Map();
4599
+ function iconStateFor(url, transform) {
4600
+ const cached = url ? svgCache.get(url) : void 0;
4601
+ return {
4602
+ url,
4603
+ svgContent: cached ? transform(cached.innerContent) : null,
4604
+ svgViewBox: cached?.viewBox ?? null,
4605
+ loading: !!url && !cached,
4606
+ error: url ? null : "No URL provided"
4607
+ };
4608
+ }
4438
4609
  function clearDynamicSvgIconCache() {
4439
4610
  svgCache.clear();
4440
4611
  }
@@ -4444,67 +4615,57 @@ function applyCurrentColor(svg) {
4444
4615
  function useDynamicSvgIcon(url, options = {}) {
4445
4616
  const { replaceColors = false, onLoad, onError } = options;
4446
4617
  const transform = replaceColors ? applyCurrentColor : (s) => s;
4447
- const [svgContent, setSvgContent] = useState9(() => {
4448
- const cached = svgCache.get(url);
4449
- return cached ? transform(cached.innerContent) : null;
4450
- });
4451
- const [svgViewBox, setSvgViewBox] = useState9(() => {
4452
- const cached = svgCache.get(url);
4453
- return cached?.viewBox ?? null;
4454
- });
4455
- const [loading, setLoading] = useState9(() => !svgCache.has(url));
4456
- const [error, setError] = useState9(null);
4457
- useEffect6(() => {
4458
- if (!url) {
4459
- setLoading(false);
4460
- setError("No URL provided");
4461
- setSvgContent(null);
4462
- setSvgViewBox(null);
4463
- return;
4464
- }
4465
- let cancelled = false;
4466
- const cached = svgCache.get(url);
4467
- if (cached) {
4468
- setSvgContent(transform(cached.innerContent));
4469
- setSvgViewBox(cached.viewBox);
4470
- setLoading(false);
4471
- setError(null);
4618
+ const [state, setState] = useState10(() => iconStateFor(url, transform));
4619
+ if (state.url !== url) {
4620
+ setState(iconStateFor(url, transform));
4621
+ }
4622
+ useEffect5(() => {
4623
+ if (!url) return;
4624
+ if (!state.loading) {
4472
4625
  onLoad?.();
4473
4626
  return;
4474
4627
  }
4475
- setLoading(true);
4476
- setError(null);
4477
- setSvgContent(null);
4478
- setSvgViewBox(null);
4628
+ let cancelled = false;
4479
4629
  (async () => {
4480
4630
  try {
4481
- const response = await fetch(url);
4482
- if (!response.ok) {
4483
- throw new Error(
4484
- `Failed to fetch SVG: ${response.status} ${response.statusText}`
4485
- );
4486
- }
4487
- const contentType = response.headers.get("content-type") ?? "";
4488
- const text = await response.text();
4489
- if (!text.includes("<svg") && !contentType.includes("svg")) {
4490
- throw new Error("Response is not an SVG");
4631
+ let entry = svgCache.get(url);
4632
+ if (!entry) {
4633
+ const response = await fetch(url);
4634
+ if (!response.ok) {
4635
+ throw new Error(
4636
+ `Failed to fetch SVG: ${response.status} ${response.statusText}`
4637
+ );
4638
+ }
4639
+ const contentType = response.headers.get("content-type") ?? "";
4640
+ const text = await response.text();
4641
+ if (!text.includes("<svg") && !contentType.includes("svg")) {
4642
+ throw new Error("Response is not an SVG");
4643
+ }
4644
+ const viewBoxMatch = text.match(/viewBox="([^"]*)"/);
4645
+ const viewBox = viewBoxMatch ? viewBoxMatch[1] : null;
4646
+ const svgMatch = text.match(/<svg[^>]*>([\s\S]*?)<\/svg>/);
4647
+ const innerContent = svgMatch ? svgMatch[1] : text;
4648
+ entry = { innerContent, viewBox };
4649
+ svgCache.set(url, entry);
4491
4650
  }
4492
- const viewBoxMatch = text.match(/viewBox="([^"]*)"/);
4493
- const viewBox = viewBoxMatch ? viewBoxMatch[1] : null;
4494
- const svgMatch = text.match(/<svg[^>]*>([\s\S]*?)<\/svg>/);
4495
- const innerContent = svgMatch ? svgMatch[1] : text;
4496
- svgCache.set(url, { innerContent, viewBox });
4497
4651
  if (!cancelled) {
4498
- setSvgContent(transform(innerContent));
4499
- setSvgViewBox(viewBox);
4500
- setLoading(false);
4652
+ const { innerContent, viewBox } = entry;
4653
+ setState(
4654
+ (prev) => prev.url === url ? {
4655
+ ...prev,
4656
+ svgContent: transform(innerContent),
4657
+ svgViewBox: viewBox,
4658
+ loading: false
4659
+ } : prev
4660
+ );
4501
4661
  onLoad?.();
4502
4662
  }
4503
4663
  } catch (err) {
4504
4664
  if (!cancelled) {
4505
4665
  const message = err instanceof Error ? err.message : "Failed to load SVG";
4506
- setError(message);
4507
- setLoading(false);
4666
+ setState(
4667
+ (prev) => prev.url === url ? { ...prev, error: message, loading: false } : prev
4668
+ );
4508
4669
  onError?.(message);
4509
4670
  }
4510
4671
  }
@@ -4513,6 +4674,7 @@ function useDynamicSvgIcon(url, options = {}) {
4513
4674
  cancelled = true;
4514
4675
  };
4515
4676
  }, [url]);
4677
+ const { loading, error, svgContent, svgViewBox } = state;
4516
4678
  return { loading, error, svgContent, svgViewBox };
4517
4679
  }
4518
4680
  var DEFAULT_SIZE2 = 24;
@@ -4570,11 +4732,7 @@ function DynamicSvgIcon({
4570
4732
  {
4571
4733
  ...svgIconProps,
4572
4734
  ...svgViewBox && { viewBox: svgViewBox },
4573
- sx: {
4574
- ...typeof sx === "object" && sx !== null && !Array.isArray(sx) ? sx : void 0,
4575
- width,
4576
- height
4577
- },
4735
+ sx: mergeSx(sx, { width, height }),
4578
4736
  children: /* @__PURE__ */ jsx34("g", { dangerouslySetInnerHTML: { __html: svgContent } })
4579
4737
  }
4580
4738
  );
@@ -4588,11 +4746,7 @@ export {
4588
4746
  BiampBannerActions,
4589
4747
  BiampBannerContent,
4590
4748
  BiampBannerIcon,
4591
- BiampBuildAppContent,
4592
- BiampBuildAppContentItem,
4593
4749
  BiampCheckboxListPopover,
4594
- BiampEndUserAppContent,
4595
- BiampEndUserAppContentItem,
4596
4750
  BiampGlobalSearch,
4597
4751
  BiampHeader,
4598
4752
  BiampHeaderActions,