@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/README.md +57 -47
- package/dist/BiampTable/BiampTable.d.ts +1 -1
- package/dist/BiampTable/BiampTable.d.ts.map +1 -1
- package/dist/BiampTable/BiampTableRow.d.ts +1 -1
- package/dist/BiampTable/BiampTableRow.d.ts.map +1 -1
- package/dist/LandingPage/LandingFormPanel.d.ts +81 -0
- package/dist/LandingPage/LandingFormPanel.d.ts.map +1 -0
- package/dist/LandingPage/OrganizationsPanel.d.ts +93 -0
- package/dist/LandingPage/OrganizationsPanel.d.ts.map +1 -0
- package/dist/LandingPage/index.d.ts +5 -0
- package/dist/LandingPage/index.d.ts.map +1 -0
- package/dist/OrganizationSelector/OrganizationSelector.d.ts +5 -1
- package/dist/OrganizationSelector/OrganizationSelector.d.ts.map +1 -1
- package/dist/index.cjs +468 -28
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +472 -20
- package/dist/index.js.map +1 -1
- package/dist/slotProps.d.ts +11 -0
- package/dist/slotProps.d.ts.map +1 -0
- package/package.json +1 -1
- package/dist/BiampTable/slotProps.d.ts +0 -5
- package/dist/BiampTable/slotProps.d.ts.map +0 -1
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
|
|
164
|
-
return "hsla(" + hslColor[0] + ", " + hslColor[1] + "%, " + hslColor[2] + "%, " +
|
|
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
|
|
173
|
-
return "rgba(" + rgbColor.join(", ") + ", " +
|
|
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/
|
|
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:
|
|
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/
|
|
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
|
|
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,
|
|
3933
|
-
|
|
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,
|
|
3947
|
-
|
|
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
|
|
3970
|
-
var
|
|
3971
|
-
var
|
|
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,
|
|
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,
|
|
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,
|
|
3991
|
-
const [error, setError] = (0,
|
|
3992
|
-
(0,
|
|
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,
|
|
4074
|
-
|
|
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,
|
|
4084
|
-
|
|
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,
|
|
4104
|
-
|
|
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,
|
|
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,
|