@bwp-web/components 1.10.1 → 1.11.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.
- package/README.md +70 -54
- 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 +4 -0
- package/dist/OrganizationSelector/OrganizationSelector.d.ts.map +1 -1
- package/dist/index.cjs +464 -26
- 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 +468 -18
- 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 +13 -7
- 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 = {
|
|
@@ -3909,11 +3923,427 @@ function OrganizationSelectorPopover({
|
|
|
3909
3923
|
);
|
|
3910
3924
|
}
|
|
3911
3925
|
|
|
3912
|
-
// src/
|
|
3926
|
+
// src/LandingPage/LandingFormPanel.tsx
|
|
3913
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");
|
|
3914
4344
|
var import_styles2 = require("@mui/material/styles");
|
|
3915
4345
|
var import_randomcolor = __toESM(require_randomColor(), 1);
|
|
3916
|
-
var
|
|
4346
|
+
var import_jsx_runtime33 = require("react/jsx-runtime");
|
|
3917
4347
|
var DEFAULT_SIZE = 40;
|
|
3918
4348
|
var DEFAULT_BORDER_RADIUS = 1.5;
|
|
3919
4349
|
var TEXT_RATIO = 0.4;
|
|
@@ -3931,8 +4361,8 @@ function UserInitialsIcon({
|
|
|
3931
4361
|
const textColor = (0, import_styles2.darken)((0, import_randomcolor.default)({ luminosity: "dark", seed: id }), 0.3);
|
|
3932
4362
|
const size = typeof width === "number" ? width : DEFAULT_SIZE;
|
|
3933
4363
|
const fontSize = size * TEXT_RATIO;
|
|
3934
|
-
return /* @__PURE__ */ (0,
|
|
3935
|
-
|
|
4364
|
+
return /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(
|
|
4365
|
+
import_material29.Box,
|
|
3936
4366
|
{
|
|
3937
4367
|
minWidth: width,
|
|
3938
4368
|
width,
|
|
@@ -3945,8 +4375,8 @@ function UserInitialsIcon({
|
|
|
3945
4375
|
justifyContent: "center",
|
|
3946
4376
|
sx: { ...sx },
|
|
3947
4377
|
...props,
|
|
3948
|
-
children: /* @__PURE__ */ (0,
|
|
3949
|
-
|
|
4378
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(
|
|
4379
|
+
import_material29.Typography,
|
|
3950
4380
|
{
|
|
3951
4381
|
variant: "h3",
|
|
3952
4382
|
color: textColor,
|
|
@@ -3968,9 +4398,9 @@ var getInitials = (name) => {
|
|
|
3968
4398
|
};
|
|
3969
4399
|
|
|
3970
4400
|
// src/DynamicSvgIcon/DynamicSvgIcon.tsx
|
|
3971
|
-
var
|
|
3972
|
-
var
|
|
3973
|
-
var
|
|
4401
|
+
var import_material30 = require("@mui/material");
|
|
4402
|
+
var import_react19 = require("react");
|
|
4403
|
+
var import_jsx_runtime34 = require("react/jsx-runtime");
|
|
3974
4404
|
var svgCache = /* @__PURE__ */ new Map();
|
|
3975
4405
|
function clearDynamicSvgIconCache() {
|
|
3976
4406
|
svgCache.clear();
|
|
@@ -3981,17 +4411,17 @@ function applyCurrentColor(svg) {
|
|
|
3981
4411
|
function useDynamicSvgIcon(url, options = {}) {
|
|
3982
4412
|
const { replaceColors = false, onLoad, onError } = options;
|
|
3983
4413
|
const transform = replaceColors ? applyCurrentColor : (s) => s;
|
|
3984
|
-
const [svgContent, setSvgContent] = (0,
|
|
4414
|
+
const [svgContent, setSvgContent] = (0, import_react19.useState)(() => {
|
|
3985
4415
|
const cached = svgCache.get(url);
|
|
3986
4416
|
return cached ? transform(cached.innerContent) : null;
|
|
3987
4417
|
});
|
|
3988
|
-
const [svgViewBox, setSvgViewBox] = (0,
|
|
4418
|
+
const [svgViewBox, setSvgViewBox] = (0, import_react19.useState)(() => {
|
|
3989
4419
|
const cached = svgCache.get(url);
|
|
3990
4420
|
return cached?.viewBox ?? null;
|
|
3991
4421
|
});
|
|
3992
|
-
const [loading, setLoading] = (0,
|
|
3993
|
-
const [error, setError] = (0,
|
|
3994
|
-
(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)(() => {
|
|
3995
4425
|
if (!url) {
|
|
3996
4426
|
setLoading(false);
|
|
3997
4427
|
setError("No URL provided");
|
|
@@ -4072,8 +4502,8 @@ function DynamicSvgIcon({
|
|
|
4072
4502
|
onError
|
|
4073
4503
|
});
|
|
4074
4504
|
if (loading) {
|
|
4075
|
-
return /* @__PURE__ */ (0,
|
|
4076
|
-
|
|
4505
|
+
return /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
|
|
4506
|
+
import_material30.Skeleton,
|
|
4077
4507
|
{
|
|
4078
4508
|
variant: skeletonVariant,
|
|
4079
4509
|
animation: skeletonAnimation,
|
|
@@ -4082,8 +4512,8 @@ function DynamicSvgIcon({
|
|
|
4082
4512
|
);
|
|
4083
4513
|
}
|
|
4084
4514
|
if (error || !svgContent) {
|
|
4085
|
-
return /* @__PURE__ */ (0,
|
|
4086
|
-
|
|
4515
|
+
return /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
|
|
4516
|
+
import_material30.Box,
|
|
4087
4517
|
{
|
|
4088
4518
|
sx: {
|
|
4089
4519
|
width,
|
|
@@ -4102,8 +4532,8 @@ function DynamicSvgIcon({
|
|
|
4102
4532
|
}
|
|
4103
4533
|
);
|
|
4104
4534
|
}
|
|
4105
|
-
return /* @__PURE__ */ (0,
|
|
4106
|
-
|
|
4535
|
+
return /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
|
|
4536
|
+
import_material30.SvgIcon,
|
|
4107
4537
|
{
|
|
4108
4538
|
...svgIconProps,
|
|
4109
4539
|
...svgViewBox && { viewBox: svgViewBox },
|
|
@@ -4112,7 +4542,7 @@ function DynamicSvgIcon({
|
|
|
4112
4542
|
width,
|
|
4113
4543
|
height
|
|
4114
4544
|
},
|
|
4115
|
-
children: /* @__PURE__ */ (0,
|
|
4545
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime34.jsx)("g", { dangerouslySetInnerHTML: { __html: svgContent } })
|
|
4116
4546
|
}
|
|
4117
4547
|
);
|
|
4118
4548
|
}
|
|
@@ -4170,11 +4600,19 @@ function DynamicSvgIcon({
|
|
|
4170
4600
|
BiampTableTruncatedCell,
|
|
4171
4601
|
BiampWrapper,
|
|
4172
4602
|
DynamicSvgIcon,
|
|
4603
|
+
LandingFormActions,
|
|
4604
|
+
LandingFormCheckbox,
|
|
4605
|
+
LandingFormField,
|
|
4606
|
+
LandingFormPanel,
|
|
4173
4607
|
OrganizationItem,
|
|
4174
4608
|
OrganizationItemList,
|
|
4609
|
+
OrganizationRow,
|
|
4610
|
+
OrganizationRowGroup,
|
|
4175
4611
|
OrganizationSelector,
|
|
4176
4612
|
OrganizationSelectorButton,
|
|
4177
4613
|
OrganizationSelectorPopover,
|
|
4614
|
+
OrganizationsEmptyState,
|
|
4615
|
+
OrganizationsPanel,
|
|
4178
4616
|
SegmentedButton,
|
|
4179
4617
|
SegmentedButtonGroup,
|
|
4180
4618
|
UserInitialsIcon,
|