@bwp-web/components 1.10.0 → 1.10.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.
package/dist/index.cjs CHANGED
@@ -160,8 +160,8 @@ var require_randomColor = __commonJS({
160
160
  return "hsl(" + hsl[0] + ", " + hsl[1] + "%, " + hsl[2] + "%)";
161
161
  case "hsla":
162
162
  var hslColor = HSVtoHSL(hsv);
163
- var alpha6 = options.alpha || Math.random();
164
- return "hsla(" + hslColor[0] + ", " + hslColor[1] + "%, " + hslColor[2] + "%, " + alpha6 + ")";
163
+ var alpha7 = options.alpha || Math.random();
164
+ return "hsla(" + hslColor[0] + ", " + hslColor[1] + "%, " + hslColor[2] + "%, " + alpha7 + ")";
165
165
  case "rgbArray":
166
166
  return HSVtoRGB(hsv);
167
167
  case "rgb":
@@ -169,8 +169,8 @@ var require_randomColor = __commonJS({
169
169
  return "rgb(" + rgb.join(", ") + ")";
170
170
  case "rgba":
171
171
  var rgbColor = HSVtoRGB(hsv);
172
- var alpha6 = options.alpha || Math.random();
173
- return "rgba(" + rgbColor.join(", ") + ", " + alpha6 + ")";
172
+ var alpha7 = options.alpha || Math.random();
173
+ return "rgba(" + rgbColor.join(", ") + ", " + alpha7 + ")";
174
174
  default:
175
175
  return HSVtoHex(hsv);
176
176
  }
@@ -452,11 +452,19 @@ __export(index_exports, {
452
452
  BiampTableTruncatedCell: () => BiampTableTruncatedCell,
453
453
  BiampWrapper: () => BiampWrapper,
454
454
  DynamicSvgIcon: () => DynamicSvgIcon,
455
+ LandingFormActions: () => LandingFormActions,
456
+ LandingFormCheckbox: () => LandingFormCheckbox,
457
+ LandingFormField: () => LandingFormField,
458
+ LandingFormPanel: () => LandingFormPanel,
455
459
  OrganizationItem: () => OrganizationItem,
456
460
  OrganizationItemList: () => OrganizationItemList,
461
+ OrganizationRow: () => OrganizationRow,
462
+ OrganizationRowGroup: () => OrganizationRowGroup,
457
463
  OrganizationSelector: () => OrganizationSelector,
458
464
  OrganizationSelectorButton: () => OrganizationSelectorButton,
459
465
  OrganizationSelectorPopover: () => OrganizationSelectorPopover,
466
+ OrganizationsEmptyState: () => OrganizationsEmptyState,
467
+ OrganizationsPanel: () => OrganizationsPanel,
460
468
  SegmentedButton: () => SegmentedButton,
461
469
  SegmentedButtonGroup: () => SegmentedButtonGroup,
462
470
  UserInitialsIcon: () => UserInitialsIcon,
@@ -2105,7 +2113,7 @@ function BiampTableTruncatedCell({
2105
2113
  );
2106
2114
  }
2107
2115
 
2108
- // src/BiampTable/slotProps.ts
2116
+ // src/slotProps.ts
2109
2117
  function resolveSlot(slot, ctx) {
2110
2118
  if (!slot) return void 0;
2111
2119
  return typeof slot === "function" ? slot(ctx) : slot;
@@ -2113,6 +2121,12 @@ function resolveSlot(slot, ctx) {
2113
2121
  function mergeSx(...inputs) {
2114
2122
  return inputs.filter((v) => Boolean(v)).flatMap((v) => Array.isArray(v) ? v : [v]);
2115
2123
  }
2124
+ function mergeSlotProps(ownProps, userProps) {
2125
+ return typeof userProps === "function" ? (ownerState) => ({
2126
+ ...ownProps,
2127
+ ...userProps(ownerState)
2128
+ }) : { ...ownProps, ...userProps };
2129
+ }
2116
2130
 
2117
2131
  // src/BiampTable/cellSx.ts
2118
2132
  var stickyHoverBg = {
@@ -3754,13 +3768,15 @@ function OrganizationItem({
3754
3768
  meta,
3755
3769
  logo,
3756
3770
  isCurrent = false,
3771
+ disabled,
3757
3772
  sx,
3758
3773
  ...props
3759
3774
  }) {
3775
+ const hideChevron = isCurrent || Boolean(disabled);
3760
3776
  return /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(import_material26.ListItem, { disablePadding: true, children: /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)(
3761
3777
  import_material26.ListItemButton,
3762
3778
  {
3763
- disabled: isCurrent,
3779
+ disabled: disabled ?? isCurrent,
3764
3780
  disableRipple: true,
3765
3781
  sx: {
3766
3782
  p: 1,
@@ -3821,7 +3837,7 @@ function OrganizationItem({
3821
3837
  width: 16,
3822
3838
  height: 16,
3823
3839
  ml: "auto",
3824
- visibility: isCurrent ? "hidden" : "visible"
3840
+ visibility: hideChevron ? "hidden" : "visible"
3825
3841
  }
3826
3842
  }
3827
3843
  )
@@ -3907,11 +3923,427 @@ function OrganizationSelectorPopover({
3907
3923
  );
3908
3924
  }
3909
3925
 
3910
- // src/UserInitialsIcon/UserInitialsIcon.tsx
3926
+ // src/LandingPage/LandingFormPanel.tsx
3911
3927
  var import_material27 = require("@mui/material");
3928
+ var import_react17 = require("react");
3929
+ var import_jsx_runtime31 = require("react/jsx-runtime");
3930
+ function LandingFormPanel({
3931
+ children,
3932
+ onSubmit,
3933
+ width = 441,
3934
+ noValidate = true,
3935
+ sx,
3936
+ ...stackProps
3937
+ }) {
3938
+ const handleSubmit = (event) => {
3939
+ event.preventDefault();
3940
+ onSubmit?.();
3941
+ };
3942
+ return /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(
3943
+ import_material27.Stack,
3944
+ {
3945
+ component: "form",
3946
+ onSubmit: handleSubmit,
3947
+ noValidate,
3948
+ gap: 2,
3949
+ p: 1.5,
3950
+ borderRadius: 4,
3951
+ width,
3952
+ maxWidth: "100%",
3953
+ sx: mergeSx(
3954
+ {
3955
+ // Figma's `background_default` (#F5F5F5) is `grey[100]` here, not
3956
+ // `palette.background.default` — that token is #FFFFFF in light mode.
3957
+ backgroundColor: ({ palette }) => palette.mode === "dark" ? palette.grey[700] : palette.grey[100]
3958
+ },
3959
+ sx
3960
+ ),
3961
+ ...stackProps,
3962
+ children
3963
+ }
3964
+ );
3965
+ }
3966
+ var fieldSx = {
3967
+ "& .MuiOutlinedInput-root": {
3968
+ backgroundColor: "background.paper"
3969
+ },
3970
+ // `Mui-disabled` is deliberately not excluded: the theme has no disabled
3971
+ // outline colour, so dropping it here would fall back to MUI's faint default.
3972
+ "& .MuiOutlinedInput-root:not(.Mui-error):not(.Mui-focused) .MuiOutlinedInput-notchedOutline": {
3973
+ borderColor: ({ palette }) => palette.dividers.secondary
3974
+ }
3975
+ };
3976
+ function LandingFormField({
3977
+ label,
3978
+ id,
3979
+ slotProps,
3980
+ sx,
3981
+ ...textFieldProps
3982
+ }) {
3983
+ const {
3984
+ container: containerSlotProps,
3985
+ label: labelSlotProps,
3986
+ ...fieldSlotProps
3987
+ } = slotProps ?? {};
3988
+ const generatedId = (0, import_react17.useId)();
3989
+ const fieldId = id ?? generatedId;
3990
+ const labelId = labelSlotProps?.id ?? `${fieldId}-label`;
3991
+ return /* @__PURE__ */ (0, import_jsx_runtime31.jsxs)(import_material27.Stack, { gap: 0.5, width: "100%", ...containerSlotProps, children: [
3992
+ /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(
3993
+ import_material27.Typography,
3994
+ {
3995
+ component: "label",
3996
+ id: labelId,
3997
+ htmlFor: fieldId,
3998
+ fontSize: 12,
3999
+ fontWeight: 600,
4000
+ color: "text.primary",
4001
+ ...labelSlotProps,
4002
+ children: label
4003
+ }
4004
+ ),
4005
+ /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(
4006
+ import_material27.TextField,
4007
+ {
4008
+ id: fieldId,
4009
+ fullWidth: true,
4010
+ variant: "outlined",
4011
+ slotProps: {
4012
+ ...fieldSlotProps,
4013
+ // `select` renders a `div[role="combobox"]`, which `<label for>`
4014
+ // cannot name — and MUI points its `aria-labelledby` at the div
4015
+ // itself, so the name would come out as the selected value. Naming
4016
+ // the label explicitly is what MUI's own floating label does.
4017
+ // Inert on a text field: `slotProps.select` only reaches a `Select`.
4018
+ select: mergeSlotProps({ labelId }, fieldSlotProps.select)
4019
+ },
4020
+ sx: mergeSx(fieldSx, sx),
4021
+ ...textFieldProps
4022
+ }
4023
+ )
4024
+ ] });
4025
+ }
4026
+ function LandingFormActions(props) {
4027
+ return /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(import_material27.Stack, { direction: "row", gap: 1, width: "100%", ...props });
4028
+ }
4029
+ function LandingFormCheckbox({
4030
+ label,
4031
+ slotProps,
4032
+ sx,
4033
+ ...formControlLabelProps
4034
+ }) {
4035
+ const { checkbox, ...labelSlotProps } = slotProps ?? {};
4036
+ return /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(
4037
+ import_material27.FormControlLabel,
4038
+ {
4039
+ control: /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(
4040
+ import_material27.Checkbox,
4041
+ {
4042
+ ...checkbox,
4043
+ sx: mergeSx({ p: 0 }, checkbox?.sx)
4044
+ }
4045
+ ),
4046
+ label,
4047
+ slotProps: {
4048
+ ...labelSlotProps,
4049
+ typography: mergeSlotProps(
4050
+ { variant: "body2" },
4051
+ labelSlotProps.typography
4052
+ )
4053
+ },
4054
+ ...formControlLabelProps,
4055
+ sx: mergeSx({ m: 0, gap: 1, alignItems: "center" }, sx)
4056
+ }
4057
+ );
4058
+ }
4059
+
4060
+ // src/LandingPage/OrganizationsPanel.tsx
4061
+ var import_material28 = require("@mui/material");
4062
+ var import_react18 = require("react");
4063
+ var import_assets15 = require("@bwp-web/assets");
4064
+ var import_jsx_runtime32 = require("react/jsx-runtime");
4065
+ function OrganizationRow({
4066
+ primaryText,
4067
+ secondaryText,
4068
+ logo,
4069
+ logoBackground = true,
4070
+ disabled = false,
4071
+ sx,
4072
+ ...props
4073
+ }) {
4074
+ return /* @__PURE__ */ (0, import_jsx_runtime32.jsxs)(
4075
+ import_material28.ListItemButton,
4076
+ {
4077
+ disabled,
4078
+ disableRipple: true,
4079
+ sx: mergeSx(
4080
+ {
4081
+ p: 1.5,
4082
+ gap: 2,
4083
+ backgroundColor: ({ palette }) => palette.mode === "dark" ? palette.grey[700] : palette.grey[100],
4084
+ // Disabled rows keep full opacity; only the logo dims (below).
4085
+ "&.Mui-disabled": { opacity: 1 },
4086
+ ...!disabled && {
4087
+ "&:hover": { backgroundColor: "action.hover" }
4088
+ }
4089
+ },
4090
+ sx
4091
+ ),
4092
+ ...props,
4093
+ children: [
4094
+ /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(
4095
+ import_material28.Box,
4096
+ {
4097
+ sx: {
4098
+ width: 40,
4099
+ height: 40,
4100
+ borderRadius: "6px",
4101
+ overflow: "hidden",
4102
+ flexShrink: 0,
4103
+ display: "flex",
4104
+ alignItems: "center",
4105
+ justifyContent: "center",
4106
+ opacity: disabled ? 0.5 : 1,
4107
+ backgroundColor: ({ palette }) => logoBackground ? palette.mode === "dark" ? palette.grey[800] : palette.grey[200] : "transparent"
4108
+ },
4109
+ children: typeof logo === "string" ? /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(
4110
+ import_material28.Box,
4111
+ {
4112
+ component: "img",
4113
+ src: logo,
4114
+ alt: "",
4115
+ sx: { width: "100%", height: "100%", objectFit: "cover" }
4116
+ }
4117
+ ) : logo
4118
+ }
4119
+ ),
4120
+ /* @__PURE__ */ (0, import_jsx_runtime32.jsxs)(import_material28.Stack, { sx: { minWidth: 0, flex: 1, textAlign: "left" }, children: [
4121
+ /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(
4122
+ import_material28.Typography,
4123
+ {
4124
+ noWrap: true,
4125
+ variant: "body2",
4126
+ fontWeight: 600,
4127
+ color: disabled ? "text.secondary" : "text.primary",
4128
+ children: primaryText
4129
+ }
4130
+ ),
4131
+ secondaryText && /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(import_material28.Typography, { noWrap: true, variant: "caption", color: "text.secondary", children: secondaryText })
4132
+ ] }),
4133
+ !disabled && /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(
4134
+ import_assets15.ChevronRightIcon,
4135
+ {
4136
+ variant: "xs",
4137
+ sx: {
4138
+ width: 16,
4139
+ height: 16,
4140
+ flexShrink: 0,
4141
+ color: "text.primary"
4142
+ }
4143
+ }
4144
+ )
4145
+ ]
4146
+ }
4147
+ );
4148
+ }
4149
+ var outlineSx = {
4150
+ border: 0.6,
4151
+ borderColor: ({ palette }) => palette.dividers.secondary,
4152
+ borderRadius: "6px",
4153
+ boxShadow: ({ palette }) => `0px 1px 1px 0px ${(0, import_material28.alpha)(palette.common.black, 0.05)}`
4154
+ };
4155
+ function OrganizationRowGroup({
4156
+ children,
4157
+ maxHeight,
4158
+ sx,
4159
+ ...boxProps
4160
+ }) {
4161
+ const items = import_react18.Children.toArray(children).filter(import_react18.isValidElement);
4162
+ return /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(
4163
+ import_material28.Box,
4164
+ {
4165
+ sx: mergeSx(
4166
+ {
4167
+ width: "100%",
4168
+ ...outlineSx,
4169
+ backgroundColor: ({ palette }) => palette.mode === "dark" ? palette.grey[700] : palette.grey[100],
4170
+ overflow: "hidden",
4171
+ ...maxHeight !== void 0 && { overflowY: "auto", maxHeight }
4172
+ },
4173
+ sx
4174
+ ),
4175
+ ...boxProps,
4176
+ children: items.map((item, i) => /* @__PURE__ */ (0, import_jsx_runtime32.jsxs)(import_react18.Fragment, { children: [
4177
+ item,
4178
+ i !== items.length - 1 && /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(import_material28.Divider, {})
4179
+ ] }, item.key ?? i))
4180
+ }
4181
+ );
4182
+ }
4183
+ function TextDivider({ children, sx, ...props }) {
4184
+ return /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(
4185
+ import_material28.Divider,
4186
+ {
4187
+ sx: mergeSx(
4188
+ {
4189
+ width: "100%",
4190
+ userSelect: "none",
4191
+ color: "text.primary",
4192
+ fontWeight: 600,
4193
+ fontSize: 14
4194
+ },
4195
+ sx
4196
+ ),
4197
+ ...props,
4198
+ children
4199
+ }
4200
+ );
4201
+ }
4202
+ function OrganizationsEmptyState({
4203
+ icon = /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(import_assets15.SearchIcon, {}),
4204
+ title = "No results found",
4205
+ description,
4206
+ ...stackProps
4207
+ }) {
4208
+ return /* @__PURE__ */ (0, import_jsx_runtime32.jsxs)(
4209
+ import_material28.Stack,
4210
+ {
4211
+ role: "status",
4212
+ alignItems: "center",
4213
+ gap: 0.5,
4214
+ width: "100%",
4215
+ py: 2,
4216
+ px: 2,
4217
+ ...stackProps,
4218
+ children: [
4219
+ (0, import_react18.cloneElement)(icon, {
4220
+ "aria-hidden": true,
4221
+ sx: {
4222
+ width: 24,
4223
+ height: 24,
4224
+ mb: 0.5,
4225
+ color: "text.secondary",
4226
+ ...icon.props.sx
4227
+ }
4228
+ }),
4229
+ /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(
4230
+ import_material28.Typography,
4231
+ {
4232
+ variant: "body2",
4233
+ fontWeight: 600,
4234
+ color: "text.primary",
4235
+ textAlign: "center",
4236
+ children: title
4237
+ }
4238
+ ),
4239
+ description && /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(import_material28.Typography, { variant: "caption", color: "text.secondary", textAlign: "center", children: description })
4240
+ ]
4241
+ }
4242
+ );
4243
+ }
4244
+ var DEFAULT_MAX_LIST_HEIGHT = 3 * 64 + 2;
4245
+ function OrganizationsPanel({
4246
+ search,
4247
+ personalOrgItem,
4248
+ organizationsLabel,
4249
+ organizationItems,
4250
+ orLabel,
4251
+ empty = false,
4252
+ joinAction,
4253
+ createAction,
4254
+ width = 441,
4255
+ maxListHeight = DEFAULT_MAX_LIST_HEIGHT,
4256
+ slotProps,
4257
+ sx,
4258
+ ...stackProps
4259
+ }) {
4260
+ const {
4261
+ sx: searchSx,
4262
+ slotProps: searchFieldSlotProps,
4263
+ ...searchSlotProps
4264
+ } = slotProps?.search ?? {};
4265
+ return /* @__PURE__ */ (0, import_jsx_runtime32.jsxs)(
4266
+ import_material28.Stack,
4267
+ {
4268
+ gap: 2,
4269
+ alignItems: "center",
4270
+ justifyContent: "center",
4271
+ p: 1.5,
4272
+ borderRadius: 4,
4273
+ width,
4274
+ maxWidth: "100%",
4275
+ sx: mergeSx(
4276
+ {
4277
+ // Figma's `background_default` (#F5F5F5) is `grey[100]` here, not
4278
+ // `palette.background.default` — that token is #FFFFFF in light mode.
4279
+ backgroundColor: ({ palette }) => palette.mode === "dark" ? palette.grey[700] : palette.grey[100]
4280
+ },
4281
+ sx
4282
+ ),
4283
+ ...stackProps,
4284
+ children: [
4285
+ search && /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(
4286
+ import_material28.TextField,
4287
+ {
4288
+ variant: "outlined",
4289
+ placeholder: search.placeholder,
4290
+ value: search.value,
4291
+ onChange: search.onChange,
4292
+ fullWidth: true,
4293
+ sx: mergeSx(
4294
+ {
4295
+ "& .MuiOutlinedInput-root": {
4296
+ backgroundColor: "background.paper"
4297
+ },
4298
+ "& .MuiOutlinedInput-notchedOutline": {
4299
+ borderColor: ({ palette }) => palette.dividers.secondary
4300
+ }
4301
+ },
4302
+ searchSx
4303
+ ),
4304
+ slotProps: {
4305
+ ...searchFieldSlotProps,
4306
+ input: mergeSlotProps(
4307
+ {
4308
+ startAdornment: /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(import_material28.InputAdornment, { position: "start", children: /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(import_assets15.SearchIcon, { sx: { ml: 1 } }) })
4309
+ },
4310
+ searchFieldSlotProps?.input
4311
+ ),
4312
+ htmlInput: mergeSlotProps(
4313
+ { "aria-label": search.placeholder },
4314
+ searchFieldSlotProps?.htmlInput
4315
+ )
4316
+ },
4317
+ ...searchSlotProps
4318
+ }
4319
+ ),
4320
+ personalOrgItem && /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(OrganizationRowGroup, { ...slotProps?.personalOrgGroup, children: personalOrgItem }),
4321
+ organizationItems && /* @__PURE__ */ (0, import_jsx_runtime32.jsxs)(import_jsx_runtime32.Fragment, { children: [
4322
+ organizationsLabel && /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(TextDivider, { ...slotProps?.organizationsLabel, children: organizationsLabel }),
4323
+ /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(
4324
+ OrganizationRowGroup,
4325
+ {
4326
+ maxHeight: maxListHeight,
4327
+ ...slotProps?.organizationsGroup,
4328
+ children: organizationItems
4329
+ }
4330
+ )
4331
+ ] }),
4332
+ empty ? empty === true ? /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(OrganizationsEmptyState, {}) : empty : orLabel && /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(TextDivider, { ...slotProps?.orLabel, children: orLabel }),
4333
+ (joinAction || createAction) && /* @__PURE__ */ (0, import_jsx_runtime32.jsxs)(import_material28.Stack, { gap: 1, width: "100%", ...slotProps?.actions, children: [
4334
+ joinAction && /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(OrganizationRowGroup, { ...slotProps?.joinGroup, children: joinAction }),
4335
+ createAction && /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(OrganizationRowGroup, { ...slotProps?.createGroup, children: createAction })
4336
+ ] })
4337
+ ]
4338
+ }
4339
+ );
4340
+ }
4341
+
4342
+ // src/UserInitialsIcon/UserInitialsIcon.tsx
4343
+ var import_material29 = require("@mui/material");
3912
4344
  var import_styles2 = require("@mui/material/styles");
3913
4345
  var import_randomcolor = __toESM(require_randomColor(), 1);
3914
- var import_jsx_runtime31 = require("react/jsx-runtime");
4346
+ var import_jsx_runtime33 = require("react/jsx-runtime");
3915
4347
  var DEFAULT_SIZE = 40;
3916
4348
  var DEFAULT_BORDER_RADIUS = 1.5;
3917
4349
  var TEXT_RATIO = 0.4;
@@ -3929,8 +4361,8 @@ function UserInitialsIcon({
3929
4361
  const textColor = (0, import_styles2.darken)((0, import_randomcolor.default)({ luminosity: "dark", seed: id }), 0.3);
3930
4362
  const size = typeof width === "number" ? width : DEFAULT_SIZE;
3931
4363
  const fontSize = size * TEXT_RATIO;
3932
- return /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(
3933
- import_material27.Box,
4364
+ return /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(
4365
+ import_material29.Box,
3934
4366
  {
3935
4367
  minWidth: width,
3936
4368
  width,
@@ -3943,8 +4375,8 @@ function UserInitialsIcon({
3943
4375
  justifyContent: "center",
3944
4376
  sx: { ...sx },
3945
4377
  ...props,
3946
- children: /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(
3947
- import_material27.Typography,
4378
+ children: /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(
4379
+ import_material29.Typography,
3948
4380
  {
3949
4381
  variant: "h3",
3950
4382
  color: textColor,
@@ -3966,9 +4398,9 @@ var getInitials = (name) => {
3966
4398
  };
3967
4399
 
3968
4400
  // src/DynamicSvgIcon/DynamicSvgIcon.tsx
3969
- var import_material28 = require("@mui/material");
3970
- var import_react17 = require("react");
3971
- var import_jsx_runtime32 = require("react/jsx-runtime");
4401
+ var import_material30 = require("@mui/material");
4402
+ var import_react19 = require("react");
4403
+ var import_jsx_runtime34 = require("react/jsx-runtime");
3972
4404
  var svgCache = /* @__PURE__ */ new Map();
3973
4405
  function clearDynamicSvgIconCache() {
3974
4406
  svgCache.clear();
@@ -3979,17 +4411,17 @@ function applyCurrentColor(svg) {
3979
4411
  function useDynamicSvgIcon(url, options = {}) {
3980
4412
  const { replaceColors = false, onLoad, onError } = options;
3981
4413
  const transform = replaceColors ? applyCurrentColor : (s) => s;
3982
- const [svgContent, setSvgContent] = (0, import_react17.useState)(() => {
4414
+ const [svgContent, setSvgContent] = (0, import_react19.useState)(() => {
3983
4415
  const cached = svgCache.get(url);
3984
4416
  return cached ? transform(cached.innerContent) : null;
3985
4417
  });
3986
- const [svgViewBox, setSvgViewBox] = (0, import_react17.useState)(() => {
4418
+ const [svgViewBox, setSvgViewBox] = (0, import_react19.useState)(() => {
3987
4419
  const cached = svgCache.get(url);
3988
4420
  return cached?.viewBox ?? null;
3989
4421
  });
3990
- const [loading, setLoading] = (0, import_react17.useState)(() => !svgCache.has(url));
3991
- const [error, setError] = (0, import_react17.useState)(null);
3992
- (0, import_react17.useEffect)(() => {
4422
+ const [loading, setLoading] = (0, import_react19.useState)(() => !svgCache.has(url));
4423
+ const [error, setError] = (0, import_react19.useState)(null);
4424
+ (0, import_react19.useEffect)(() => {
3993
4425
  if (!url) {
3994
4426
  setLoading(false);
3995
4427
  setError("No URL provided");
@@ -4070,8 +4502,8 @@ function DynamicSvgIcon({
4070
4502
  onError
4071
4503
  });
4072
4504
  if (loading) {
4073
- return /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(
4074
- import_material28.Skeleton,
4505
+ return /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
4506
+ import_material30.Skeleton,
4075
4507
  {
4076
4508
  variant: skeletonVariant,
4077
4509
  animation: skeletonAnimation,
@@ -4080,8 +4512,8 @@ function DynamicSvgIcon({
4080
4512
  );
4081
4513
  }
4082
4514
  if (error || !svgContent) {
4083
- return /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(
4084
- import_material28.Box,
4515
+ return /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
4516
+ import_material30.Box,
4085
4517
  {
4086
4518
  sx: {
4087
4519
  width,
@@ -4100,8 +4532,8 @@ function DynamicSvgIcon({
4100
4532
  }
4101
4533
  );
4102
4534
  }
4103
- return /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(
4104
- import_material28.SvgIcon,
4535
+ return /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
4536
+ import_material30.SvgIcon,
4105
4537
  {
4106
4538
  ...svgIconProps,
4107
4539
  ...svgViewBox && { viewBox: svgViewBox },
@@ -4110,7 +4542,7 @@ function DynamicSvgIcon({
4110
4542
  width,
4111
4543
  height
4112
4544
  },
4113
- children: /* @__PURE__ */ (0, import_jsx_runtime32.jsx)("g", { dangerouslySetInnerHTML: { __html: svgContent } })
4545
+ children: /* @__PURE__ */ (0, import_jsx_runtime34.jsx)("g", { dangerouslySetInnerHTML: { __html: svgContent } })
4114
4546
  }
4115
4547
  );
4116
4548
  }
@@ -4168,11 +4600,19 @@ function DynamicSvgIcon({
4168
4600
  BiampTableTruncatedCell,
4169
4601
  BiampWrapper,
4170
4602
  DynamicSvgIcon,
4603
+ LandingFormActions,
4604
+ LandingFormCheckbox,
4605
+ LandingFormField,
4606
+ LandingFormPanel,
4171
4607
  OrganizationItem,
4172
4608
  OrganizationItemList,
4609
+ OrganizationRow,
4610
+ OrganizationRowGroup,
4173
4611
  OrganizationSelector,
4174
4612
  OrganizationSelectorButton,
4175
4613
  OrganizationSelectorPopover,
4614
+ OrganizationsEmptyState,
4615
+ OrganizationsPanel,
4176
4616
  SegmentedButton,
4177
4617
  SegmentedButtonGroup,
4178
4618
  UserInitialsIcon,