scorer-ui-kit 3.0.3 → 3.0.4
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/Chips/ChipCompactContext.d.ts +2 -0
- package/dist/Chips/ChipCompactContext.d.ts.map +1 -0
- package/dist/Chips/atoms/ChipButton.d.ts +8 -3
- package/dist/Chips/atoms/ChipButton.d.ts.map +1 -1
- package/dist/Chips/organisms/ChipBar.d.ts +4 -0
- package/dist/Chips/organisms/ChipBar.d.ts.map +1 -1
- package/dist/Form/index.d.ts +3 -2
- package/dist/Form/index.d.ts.map +1 -1
- package/dist/Form/molecules/EditableText.d.ts +40 -0
- package/dist/Form/molecules/EditableText.d.ts.map +1 -0
- package/dist/Global/index.d.ts +12 -0
- package/dist/Global/index.d.ts.map +1 -1
- package/dist/Global/molecules/TopBar.d.ts.map +1 -1
- package/dist/Global/organisms/MobileNavbar.d.ts.map +1 -1
- package/dist/index.d.ts +3 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +458 -141
- package/dist/index.js.map +1 -1
- package/dist/index.modern.js +459 -143
- package/dist/index.modern.js.map +1 -1
- package/dist/theme/ThemeVariables.d.ts.map +1 -1
- package/package.json +1 -1
package/dist/index.modern.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { a as Icon, c as animation, d as dimensions, f as fontFamily, i as Spinner, l as deviceMediaQuery, n as LineSet, o as IconSVGs, r as LineSetContext, s as IconWrapper$4, t as LineUIVideoBase, u as deviceSize } from "./LineUIVideoBase-CJ61ZqPJ.mjs";
|
|
2
2
|
import styled, { createGlobalStyle, css, keyframes } from "styled-components";
|
|
3
|
-
import React, { Children, Fragment, cloneElement, isValidElement, useCallback, useContext, useEffect, useImperativeHandle, useLayoutEffect, useMemo, useReducer, useRef, useState } from "react";
|
|
3
|
+
import React, { Children, Fragment, cloneElement, createContext, isValidElement, useCallback, useContext, useEffect, useImperativeHandle, useLayoutEffect, useMemo, useReducer, useRef, useState } from "react";
|
|
4
4
|
import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
|
|
5
5
|
import ReactDom from "react-dom";
|
|
6
6
|
import { add, addMonths, eachDayOfInterval, eachWeekOfInterval, endOfDay, endOfMonth, endOfWeek, format, intervalToDuration, isAfter, isEqual, isSameDay, isSameMonth, isToday, isWithinInterval, min, set, startOfDay, startOfMonth } from "date-fns";
|
|
@@ -2202,6 +2202,9 @@ var ThemeVariables = createGlobalStyle`
|
|
|
2202
2202
|
--global-menu-width-closed: 80px;
|
|
2203
2203
|
--global-menu-width-open: 280px;
|
|
2204
2204
|
|
|
2205
|
+
--top-bar-height: 56px;
|
|
2206
|
+
--top-bar-divider-width: 1px;
|
|
2207
|
+
|
|
2205
2208
|
--input-height: 40px;
|
|
2206
2209
|
--input-compact-height: 32px;
|
|
2207
2210
|
--input-required-dot-display: inline-block;
|
|
@@ -2403,7 +2406,7 @@ var Arrow$1 = styled.div`
|
|
|
2403
2406
|
&.l { left: 24px; }
|
|
2404
2407
|
&.r { right: 24px; }
|
|
2405
2408
|
`;
|
|
2406
|
-
var Container$
|
|
2409
|
+
var Container$72 = styled.div`
|
|
2407
2410
|
display: flex;
|
|
2408
2411
|
position: relative;
|
|
2409
2412
|
flex: 1;
|
|
@@ -2418,7 +2421,7 @@ var Container$71 = styled.div`
|
|
|
2418
2421
|
color: var(--grey-10);
|
|
2419
2422
|
`;
|
|
2420
2423
|
var FlexContentPlaceholder = ({ title = "Placeholder" }) => {
|
|
2421
|
-
return /* @__PURE__ */ jsxs(Container$
|
|
2424
|
+
return /* @__PURE__ */ jsxs(Container$72, { children: [
|
|
2422
2425
|
title,
|
|
2423
2426
|
/* @__PURE__ */ jsx(Arrow$1, {
|
|
2424
2427
|
className: "t l",
|
|
@@ -2555,7 +2558,7 @@ var AlertBar = ({ type = "info", message, hideCloseButton = false }) => {
|
|
|
2555
2558
|
};
|
|
2556
2559
|
//#endregion
|
|
2557
2560
|
//#region src/Alerts/atom/Notification.tsx
|
|
2558
|
-
var Container$
|
|
2561
|
+
var Container$71 = styled.div`
|
|
2559
2562
|
min-height: 50px;
|
|
2560
2563
|
border-bottom-left-radius: 3px;
|
|
2561
2564
|
border-bottom-right-radius: 3px;
|
|
@@ -2723,7 +2726,7 @@ var Notification = ({ id, type = "info", message, icon = "", isPinned = false, a
|
|
|
2723
2726
|
}
|
|
2724
2727
|
};
|
|
2725
2728
|
}, []);
|
|
2726
|
-
return message && !dismiss ? ReactDom.createPortal(/* @__PURE__ */ jsxs(Container$
|
|
2729
|
+
return message && !dismiss ? ReactDom.createPortal(/* @__PURE__ */ jsxs(Container$71, {
|
|
2727
2730
|
$type: type,
|
|
2728
2731
|
$isClosing: slideUp,
|
|
2729
2732
|
$isVisible: isVisible,
|
|
@@ -3125,7 +3128,7 @@ var Button = ({ design = "primary", size = "normal", shadow = false, noPadding =
|
|
|
3125
3128
|
};
|
|
3126
3129
|
//#endregion
|
|
3127
3130
|
//#region src/Form/atoms/ButtonWithIcon.tsx
|
|
3128
|
-
var Container$
|
|
3131
|
+
var Container$70 = styled.div`
|
|
3129
3132
|
display: inline;
|
|
3130
3133
|
`;
|
|
3131
3134
|
var TextContainer$3 = styled.div`
|
|
@@ -3241,7 +3244,7 @@ var InnerContainer$3 = styled.div`
|
|
|
3241
3244
|
`};
|
|
3242
3245
|
`;
|
|
3243
3246
|
var ButtonWithIcon = ({ design = "primary", size = "normal", loading = false, shadow = false, onClick, disabled, position, icon, weight = "regular", children, ...props }) => {
|
|
3244
|
-
return /* @__PURE__ */ jsx(Container$
|
|
3247
|
+
return /* @__PURE__ */ jsx(Container$70, { children: /* @__PURE__ */ jsx(Button, {
|
|
3245
3248
|
noPadding: true,
|
|
3246
3249
|
disabled: disabled || loading,
|
|
3247
3250
|
design,
|
|
@@ -3273,7 +3276,7 @@ var ButtonWithIcon = ({ design = "primary", size = "normal", loading = false, sh
|
|
|
3273
3276
|
};
|
|
3274
3277
|
//#endregion
|
|
3275
3278
|
//#region src/Form/atoms/ButtonWithLoading.tsx
|
|
3276
|
-
var Container$
|
|
3279
|
+
var Container$69 = styled.div`
|
|
3277
3280
|
display: inline;
|
|
3278
3281
|
`;
|
|
3279
3282
|
var TextContainer$2 = styled.div`
|
|
@@ -3333,7 +3336,7 @@ var InnerContainer$2 = styled.div`
|
|
|
3333
3336
|
`}
|
|
3334
3337
|
`;
|
|
3335
3338
|
var ButtonWithLoading = ({ design = "primary", size = "normal", shadow = false, onClick, disabled, position, loading = false, children, ...rest }) => {
|
|
3336
|
-
return /* @__PURE__ */ jsx(Container$
|
|
3339
|
+
return /* @__PURE__ */ jsx(Container$69, { children: /* @__PURE__ */ jsx(Button, {
|
|
3337
3340
|
noPadding: true,
|
|
3338
3341
|
disabled: disabled || loading,
|
|
3339
3342
|
design,
|
|
@@ -3535,7 +3538,7 @@ var IconWrapper$3 = styled.div`
|
|
|
3535
3538
|
}
|
|
3536
3539
|
}
|
|
3537
3540
|
`;
|
|
3538
|
-
var Container$
|
|
3541
|
+
var Container$68 = styled.label`
|
|
3539
3542
|
display: inline-block;
|
|
3540
3543
|
user-select: none;
|
|
3541
3544
|
${CheckboxOuter}{
|
|
@@ -3633,7 +3636,7 @@ var Checkbox = ({ indeterminate: _indeterminate = false, disabled, checked = fal
|
|
|
3633
3636
|
setIsChecked(checked);
|
|
3634
3637
|
}, [checked]);
|
|
3635
3638
|
const iconWeight = dimensions.icons.weights.regular;
|
|
3636
|
-
return /* @__PURE__ */ jsxs(Container$
|
|
3639
|
+
return /* @__PURE__ */ jsxs(Container$68, {
|
|
3637
3640
|
onChange: customOnChange,
|
|
3638
3641
|
$disabled: disabled,
|
|
3639
3642
|
$visualState: visualState,
|
|
@@ -3655,7 +3658,7 @@ var Checkbox = ({ indeterminate: _indeterminate = false, disabled, checked = fal
|
|
|
3655
3658
|
};
|
|
3656
3659
|
//#endregion
|
|
3657
3660
|
//#region src/Form/atoms/DropArea.tsx
|
|
3658
|
-
var Container$
|
|
3661
|
+
var Container$67 = styled.div`
|
|
3659
3662
|
${({ $height }) => $height ? `height: ${$height}` : null};
|
|
3660
3663
|
position: relative;
|
|
3661
3664
|
`;
|
|
@@ -3704,7 +3707,7 @@ var DropArea = ({ height, text, dropCallback, ...props }) => {
|
|
|
3704
3707
|
window.removeEventListener("drop", handleWindowDragAndDrop);
|
|
3705
3708
|
};
|
|
3706
3709
|
}, [handleWindowDragAndDrop]);
|
|
3707
|
-
return /* @__PURE__ */ jsx(Container$
|
|
3710
|
+
return /* @__PURE__ */ jsx(Container$67, {
|
|
3708
3711
|
$height: height,
|
|
3709
3712
|
...props,
|
|
3710
3713
|
children: /* @__PURE__ */ jsx(DragAndDrop, {
|
|
@@ -3847,7 +3850,7 @@ var InputContainer$2 = styled.div`
|
|
|
3847
3850
|
`}
|
|
3848
3851
|
|
|
3849
3852
|
`;
|
|
3850
|
-
var Container$
|
|
3853
|
+
var Container$66 = styled.div`
|
|
3851
3854
|
${({ $fieldState, $showFeedback }) => css`
|
|
3852
3855
|
|
|
3853
3856
|
display: flex;
|
|
@@ -3906,7 +3909,7 @@ var Input = ({ type = "text", placeholder = "", defaultValue, fieldState = "defa
|
|
|
3906
3909
|
});
|
|
3907
3910
|
}
|
|
3908
3911
|
};
|
|
3909
|
-
return /* @__PURE__ */ jsxs(Container$
|
|
3912
|
+
return /* @__PURE__ */ jsxs(Container$66, {
|
|
3910
3913
|
$fieldState: fieldState || "default",
|
|
3911
3914
|
$showFeedback: showFeedback,
|
|
3912
3915
|
children: [/* @__PURE__ */ jsxs(InputContainer$2, {
|
|
@@ -3930,7 +3933,7 @@ var Input = ({ type = "text", placeholder = "", defaultValue, fieldState = "defa
|
|
|
3930
3933
|
};
|
|
3931
3934
|
//#endregion
|
|
3932
3935
|
//#region src/Form/atoms/InputFileButton.tsx
|
|
3933
|
-
var Container$
|
|
3936
|
+
var Container$65 = styled.div``;
|
|
3934
3937
|
var HiddenInput$2 = styled.input`
|
|
3935
3938
|
display: none;
|
|
3936
3939
|
`;
|
|
@@ -3945,7 +3948,7 @@ var InputFileButton = ({ text, buttonDesign, buttonSize, inputCallback, children
|
|
|
3945
3948
|
const forwardClick = useCallback(() => {
|
|
3946
3949
|
if (fileInputRef.current) fileInputRef.current.click();
|
|
3947
3950
|
}, []);
|
|
3948
|
-
return /* @__PURE__ */ jsxs(Container$
|
|
3951
|
+
return /* @__PURE__ */ jsxs(Container$65, { children: [/* @__PURE__ */ jsx(HiddenInput$2, {
|
|
3949
3952
|
...props,
|
|
3950
3953
|
ref: fileInputRef,
|
|
3951
3954
|
type: "file",
|
|
@@ -4083,7 +4086,7 @@ var HiddenInput$1 = styled.input`
|
|
|
4083
4086
|
padding:0;
|
|
4084
4087
|
opacity: 0;
|
|
4085
4088
|
`;
|
|
4086
|
-
var Container$
|
|
4089
|
+
var Container$64 = styled.div`
|
|
4087
4090
|
position: relative;
|
|
4088
4091
|
display: inline-block;
|
|
4089
4092
|
width: 18px;
|
|
@@ -4097,7 +4100,7 @@ var RadioButton = ({ id, value, name, currentChecked, disabled = false, required
|
|
|
4097
4100
|
onChangeCallback(checkedValue);
|
|
4098
4101
|
}, [onChangeCallback]);
|
|
4099
4102
|
const isChecked = currentChecked !== void 0 ? currentChecked === value : false;
|
|
4100
|
-
return /* @__PURE__ */ jsxs(Container$
|
|
4103
|
+
return /* @__PURE__ */ jsxs(Container$64, { children: [/* @__PURE__ */ jsx(HiddenInput$1, {
|
|
4101
4104
|
type: "radio",
|
|
4102
4105
|
id,
|
|
4103
4106
|
name,
|
|
@@ -4186,7 +4189,7 @@ var StyledSelect = styled.select`
|
|
|
4186
4189
|
display: none;
|
|
4187
4190
|
}
|
|
4188
4191
|
`;
|
|
4189
|
-
var Container$
|
|
4192
|
+
var Container$63 = styled.div`
|
|
4190
4193
|
|
|
4191
4194
|
${({ $activePlaceholder }) => $activePlaceholder && css`
|
|
4192
4195
|
${StyledSelect} {
|
|
@@ -4251,7 +4254,7 @@ var SelectField = ({ fieldState = "default", placeholder, label, icon, isCompact
|
|
|
4251
4254
|
})
|
|
4252
4255
|
})
|
|
4253
4256
|
] });
|
|
4254
|
-
return /* @__PURE__ */ jsx(Container$
|
|
4257
|
+
return /* @__PURE__ */ jsx(Container$63, {
|
|
4255
4258
|
$isCompact: isCompact,
|
|
4256
4259
|
$activePlaceholder: activePlaceholder,
|
|
4257
4260
|
children: label ? /* @__PURE__ */ jsx(Label, {
|
|
@@ -4609,7 +4612,7 @@ var UnitKey = styled.div`
|
|
|
4609
4612
|
margin-top: 1px;
|
|
4610
4613
|
white-space: nowrap;
|
|
4611
4614
|
`;
|
|
4612
|
-
var Container$
|
|
4615
|
+
var Container$62 = styled.div`
|
|
4613
4616
|
position: relative;
|
|
4614
4617
|
|
|
4615
4618
|
${({ $fieldState }) => $fieldState && css`
|
|
@@ -4620,7 +4623,7 @@ var Container$61 = styled.div`
|
|
|
4620
4623
|
`};
|
|
4621
4624
|
`;
|
|
4622
4625
|
var SmallInput = ({ unit, label, name, type = "text", placeholder = "", defaultValue, fieldState = "default", required = false, className, children, formAction, ...props }) => {
|
|
4623
|
-
return /* @__PURE__ */ jsx(Container$
|
|
4626
|
+
return /* @__PURE__ */ jsx(Container$62, {
|
|
4624
4627
|
className,
|
|
4625
4628
|
$fieldState: fieldState || "default",
|
|
4626
4629
|
children: /* @__PURE__ */ jsx(Label, {
|
|
@@ -4717,7 +4720,7 @@ var IconWrapper$2 = styled.div`
|
|
|
4717
4720
|
}
|
|
4718
4721
|
`;
|
|
4719
4722
|
var SpinnerWrapper = styled.div``;
|
|
4720
|
-
var Container$
|
|
4723
|
+
var Container$61 = styled(StyledLabel)`
|
|
4721
4724
|
user-select: none;
|
|
4722
4725
|
display: inline-flex;
|
|
4723
4726
|
gap: 8px;
|
|
@@ -4883,7 +4886,7 @@ var Switch = ({ state = "default", leftTheme = "off", rightTheme = "on", labelTe
|
|
|
4883
4886
|
useEffect(() => {
|
|
4884
4887
|
if (innerRef.current) setInnerSize(parseInt(getComputedStyle(innerRef.current).getPropertyValue("--switch-inner-size"), 10));
|
|
4885
4888
|
}, []);
|
|
4886
|
-
return /* @__PURE__ */ jsxs(Container$
|
|
4889
|
+
return /* @__PURE__ */ jsxs(Container$61, {
|
|
4887
4890
|
onChange: customOnChange,
|
|
4888
4891
|
onMouseLeave: () => setJustUpdated(false),
|
|
4889
4892
|
$activeTheming: activeTheming,
|
|
@@ -4998,7 +5001,7 @@ var FeedbackMessage = styled.div`
|
|
|
4998
5001
|
font-weight: 500;
|
|
4999
5002
|
color: var(--white-1);
|
|
5000
5003
|
`;
|
|
5001
|
-
var Container$
|
|
5004
|
+
var Container$60 = styled.div`
|
|
5002
5005
|
${({ $fieldState, $showFeedback }) => css`
|
|
5003
5006
|
display: flex;
|
|
5004
5007
|
position: relative;
|
|
@@ -5060,7 +5063,7 @@ var TextArea = ({ placeholder = "", fieldState = "default", showFeedback = false
|
|
|
5060
5063
|
});
|
|
5061
5064
|
}
|
|
5062
5065
|
};
|
|
5063
|
-
return /* @__PURE__ */ jsxs(Container$
|
|
5066
|
+
return /* @__PURE__ */ jsxs(Container$60, {
|
|
5064
5067
|
$fieldState: fieldState || "default",
|
|
5065
5068
|
$showFeedback: showFeedback,
|
|
5066
5069
|
children: [/* @__PURE__ */ jsx(StyledTextArea, {
|
|
@@ -5092,7 +5095,7 @@ var Form = ({ children, spacing = "45px;", action, ...props }) => {
|
|
|
5092
5095
|
//#endregion
|
|
5093
5096
|
//#region src/Form/molecules/ActionButtons.tsx
|
|
5094
5097
|
var StyledIconButton$1 = styled(IconButton)``;
|
|
5095
|
-
var Container$
|
|
5098
|
+
var Container$59 = styled.div`
|
|
5096
5099
|
display: flex;
|
|
5097
5100
|
${StyledIconButton$1} {
|
|
5098
5101
|
margin-left: 15px;
|
|
@@ -5114,7 +5117,7 @@ var Container$58 = styled.div`
|
|
|
5114
5117
|
`};
|
|
5115
5118
|
`;
|
|
5116
5119
|
var ActionButtons = ({ buttonsConfig, alignment = "right" }) => {
|
|
5117
|
-
return /* @__PURE__ */ jsx(Container$
|
|
5120
|
+
return /* @__PURE__ */ jsx(Container$59, {
|
|
5118
5121
|
$alignment: alignment,
|
|
5119
5122
|
children: buttonsConfig.map((btn) => {
|
|
5120
5123
|
const { icon, size, weight, color, hoverColor, onClick } = btn;
|
|
@@ -5131,7 +5134,7 @@ var ActionButtons = ({ buttonsConfig, alignment = "right" }) => {
|
|
|
5131
5134
|
};
|
|
5132
5135
|
//#endregion
|
|
5133
5136
|
//#region src/Form/molecules/ButtonsStack.tsx
|
|
5134
|
-
var Container$
|
|
5137
|
+
var Container$58 = styled.div`
|
|
5135
5138
|
display: flex;
|
|
5136
5139
|
flex-direction: column;
|
|
5137
5140
|
gap: 8px;
|
|
@@ -5140,7 +5143,7 @@ var Container$57 = styled.div`
|
|
|
5140
5143
|
}
|
|
5141
5144
|
`;
|
|
5142
5145
|
var ButtonsStack = ({ buttons }) => {
|
|
5143
|
-
return /* @__PURE__ */ jsx(Container$
|
|
5146
|
+
return /* @__PURE__ */ jsx(Container$58, { children: buttons.map(({ id, buttonType, icon, text, iconPosition, size, ...buttonProps }) => {
|
|
5144
5147
|
if (buttonType === "icon-button") return /* @__PURE__ */ jsx(ButtonWithIcon, {
|
|
5145
5148
|
size: size || "small",
|
|
5146
5149
|
icon: icon || "",
|
|
@@ -5513,7 +5516,7 @@ var CropArea = ({ isResizable, hasAspectRatio }) => {
|
|
|
5513
5516
|
};
|
|
5514
5517
|
//#endregion
|
|
5515
5518
|
//#region src/Form/molecules/CropTool.tsx
|
|
5516
|
-
var Container$
|
|
5519
|
+
var Container$57 = styled.div`
|
|
5517
5520
|
position: fixed;
|
|
5518
5521
|
top: 0;
|
|
5519
5522
|
left: 0;
|
|
@@ -5721,7 +5724,7 @@ var CropTool = ({ title = "Crop Image", cancelBtnTxt = "Cancel", cropBtnTxt = "C
|
|
|
5721
5724
|
if (!viewDimensions.isResizing) return;
|
|
5722
5725
|
viewDimensions.isResizing = false;
|
|
5723
5726
|
}, []);
|
|
5724
|
-
return ReactDom.createPortal(/* @__PURE__ */ jsx(Container$
|
|
5727
|
+
return ReactDom.createPortal(/* @__PURE__ */ jsx(Container$57, { children: /* @__PURE__ */ jsxs(InnerContainer$1, { children: [/* @__PURE__ */ jsxs(ToolHeader, { children: [/* @__PURE__ */ jsxs(TextGroup$1, { children: [/* @__PURE__ */ jsx(Icon, {
|
|
5725
5728
|
icon: "Crop",
|
|
5726
5729
|
size: 20,
|
|
5727
5730
|
color: "mono"
|
|
@@ -5781,7 +5784,7 @@ var CropTool = ({ title = "Crop Image", cancelBtnTxt = "Cancel", cropBtnTxt = "C
|
|
|
5781
5784
|
* Marks could also be handle by it.
|
|
5782
5785
|
* Providing quantity of marks and generating the marks array based with unit
|
|
5783
5786
|
*/
|
|
5784
|
-
var Container$
|
|
5787
|
+
var Container$56 = styled.div``;
|
|
5785
5788
|
var Headers$1 = styled.div`
|
|
5786
5789
|
font-size: 14px;
|
|
5787
5790
|
color: var(--grey-10);
|
|
@@ -5864,7 +5867,7 @@ var DurationSlider = ({ max, min, defaultValue = 0, title = "", timeUnit, contro
|
|
|
5864
5867
|
if (inputCallback) inputCallback(value);
|
|
5865
5868
|
setSelectedValue(value);
|
|
5866
5869
|
}, [inputCallback]);
|
|
5867
|
-
return /* @__PURE__ */ jsxs(Container$
|
|
5870
|
+
return /* @__PURE__ */ jsxs(Container$56, { children: [/* @__PURE__ */ jsxs(Headers$1, { children: [/* @__PURE__ */ jsx(Label, {
|
|
5868
5871
|
htmlFor: "duration-slider",
|
|
5869
5872
|
labelText: title
|
|
5870
5873
|
}), getValueTitle(controlledValue ? controlledValue : selectedValue, timeUnit, timeFormat)] }), /* @__PURE__ */ jsx(SliderInput, {
|
|
@@ -5877,83 +5880,6 @@ var DurationSlider = ({ max, min, defaultValue = 0, title = "", timeUnit, contro
|
|
|
5877
5880
|
})] });
|
|
5878
5881
|
};
|
|
5879
5882
|
//#endregion
|
|
5880
|
-
//#region src/Form/molecules/PasswordField.tsx
|
|
5881
|
-
var PasswordField = ({ name, label, fieldState, feedbackMessage, required, children, formAction, ...props }) => {
|
|
5882
|
-
const [showValue, setShowValue] = useState(false);
|
|
5883
|
-
const [actionIcon, setActionIcon] = useState("PasswordHide");
|
|
5884
|
-
const actionCallback = () => {
|
|
5885
|
-
const newValue = !showValue;
|
|
5886
|
-
setShowValue(newValue);
|
|
5887
|
-
setActionIcon(newValue ? "PasswordShow" : "PasswordHide");
|
|
5888
|
-
};
|
|
5889
|
-
return /* @__PURE__ */ jsx(Label, {
|
|
5890
|
-
htmlFor: name,
|
|
5891
|
-
labelText: label,
|
|
5892
|
-
required,
|
|
5893
|
-
children: /* @__PURE__ */ jsx(Input, {
|
|
5894
|
-
type: showValue ? "text" : "password",
|
|
5895
|
-
actionCallback,
|
|
5896
|
-
actionIcon,
|
|
5897
|
-
name,
|
|
5898
|
-
fieldState,
|
|
5899
|
-
feedbackMessage,
|
|
5900
|
-
required,
|
|
5901
|
-
...props
|
|
5902
|
-
})
|
|
5903
|
-
});
|
|
5904
|
-
};
|
|
5905
|
-
//#endregion
|
|
5906
|
-
//#region src/Form/molecules/PercentageSlider.tsx
|
|
5907
|
-
var Container$54 = styled.div``;
|
|
5908
|
-
var Headers = styled.div`
|
|
5909
|
-
font-size: 14px;
|
|
5910
|
-
color: var(--grey-10);
|
|
5911
|
-
display: flex;
|
|
5912
|
-
justify-content: space-between;
|
|
5913
|
-
margin-bottom: 20px;
|
|
5914
|
-
${({ $allMarkCentered }) => $allMarkCentered ? `padding: 0;` : `padding: 0 6px;`};
|
|
5915
|
-
`;
|
|
5916
|
-
var ValueTitle = styled(Label)`
|
|
5917
|
-
font-family: ${({ theme }) => theme.fontFamily.data};
|
|
5918
|
-
`;
|
|
5919
|
-
var getThumbColor = (value) => {
|
|
5920
|
-
if (value <= 10) return "error";
|
|
5921
|
-
if (value > 10 && value <= 30) return "warning";
|
|
5922
|
-
return "success";
|
|
5923
|
-
};
|
|
5924
|
-
var getTitleLevel = (value) => {
|
|
5925
|
-
if (value <= 10) return "Critical Level";
|
|
5926
|
-
if (value > 10 && value <= 30) return "Warning Level";
|
|
5927
|
-
return "Safe Level";
|
|
5928
|
-
};
|
|
5929
|
-
var PercentageSlider = ({ defaultValue = 0, inputCallback, updateThumbColor, updateTitle, showValue, allMarkCentered, ...props }) => {
|
|
5930
|
-
const [selectedValue, setSelectedValue] = useState(defaultValue);
|
|
5931
|
-
const handleSelectedValue = useCallback((value) => {
|
|
5932
|
-
if (inputCallback) inputCallback(value);
|
|
5933
|
-
setSelectedValue(value);
|
|
5934
|
-
}, [inputCallback]);
|
|
5935
|
-
return /* @__PURE__ */ jsxs(Container$54, { children: [/* @__PURE__ */ jsxs(Headers, {
|
|
5936
|
-
$allMarkCentered: allMarkCentered,
|
|
5937
|
-
children: [/* @__PURE__ */ jsx(Label, {
|
|
5938
|
-
htmlFor: "percentage-slider",
|
|
5939
|
-
labelText: updateTitle ? updateTitle(selectedValue) : getTitleLevel(selectedValue)
|
|
5940
|
-
}), showValue && /* @__PURE__ */ jsx(ValueTitle, {
|
|
5941
|
-
htmlFor: "percentage-slider",
|
|
5942
|
-
labelText: `${selectedValue}%`
|
|
5943
|
-
})]
|
|
5944
|
-
}), /* @__PURE__ */ jsx(SliderInput, {
|
|
5945
|
-
...props,
|
|
5946
|
-
id: "percentage-slider",
|
|
5947
|
-
max: 100,
|
|
5948
|
-
min: 0,
|
|
5949
|
-
defaultValue,
|
|
5950
|
-
showValue,
|
|
5951
|
-
onChangeCallback: handleSelectedValue,
|
|
5952
|
-
thumbColor: updateThumbColor ? updateThumbColor(selectedValue) : getThumbColor(selectedValue),
|
|
5953
|
-
allMarkCentered
|
|
5954
|
-
})] });
|
|
5955
|
-
};
|
|
5956
|
-
//#endregion
|
|
5957
5883
|
//#region src/hooks/useMediaQuery.ts
|
|
5958
5884
|
/**
|
|
5959
5885
|
* Custom hook that tells you whether a given media query is active.
|
|
@@ -6207,7 +6133,7 @@ var MediaBox = ({ src: incomingSrc, alt, videoOptions = {}, mediaType, hasModalL
|
|
|
6207
6133
|
};
|
|
6208
6134
|
//#endregion
|
|
6209
6135
|
//#region src/Modals/Modal.tsx
|
|
6210
|
-
var Container$
|
|
6136
|
+
var Container$55 = styled.div`
|
|
6211
6137
|
position: fixed;
|
|
6212
6138
|
top: 0;
|
|
6213
6139
|
left: 0;
|
|
@@ -6282,7 +6208,7 @@ var Modal = ({ isOpen = false, isCloseEnable = true, closeText = "", width = "",
|
|
|
6282
6208
|
if (dismissCallback) dismissCallback();
|
|
6283
6209
|
onDismiss();
|
|
6284
6210
|
}, [onDismiss, dismissCallback]);
|
|
6285
|
-
return isOpen ? ReactDom.createPortal(/* @__PURE__ */ jsx(Container$
|
|
6211
|
+
return isOpen ? ReactDom.createPortal(/* @__PURE__ */ jsx(Container$55, { children: /* @__PURE__ */ jsxs(LightBox, {
|
|
6286
6212
|
ref: lightBoxRef,
|
|
6287
6213
|
$width: width,
|
|
6288
6214
|
$padding: padding,
|
|
@@ -6614,6 +6540,325 @@ var useTo = () => {
|
|
|
6614
6540
|
return useCallback((url) => () => navigate(url), [navigate]);
|
|
6615
6541
|
};
|
|
6616
6542
|
//#endregion
|
|
6543
|
+
//#region src/Form/molecules/EditableText.tsx
|
|
6544
|
+
var IconSlot = styled.span`
|
|
6545
|
+
display: flex;
|
|
6546
|
+
flex-shrink: 0;
|
|
6547
|
+
`;
|
|
6548
|
+
var Text = styled.span`
|
|
6549
|
+
overflow: hidden;
|
|
6550
|
+
white-space: nowrap;
|
|
6551
|
+
text-overflow: ellipsis;
|
|
6552
|
+
`;
|
|
6553
|
+
var Container$54 = styled.div`
|
|
6554
|
+
display: inline-flex;
|
|
6555
|
+
align-items: center;
|
|
6556
|
+
gap: 8px;
|
|
6557
|
+
min-width: 0;
|
|
6558
|
+
height: 100%;
|
|
6559
|
+
font-family: var(--font-ui);
|
|
6560
|
+
font-size: 14px;
|
|
6561
|
+
font-weight: 500;
|
|
6562
|
+
line-height: 20px;
|
|
6563
|
+
color: var(--grey-12);
|
|
6564
|
+
`;
|
|
6565
|
+
var Trigger$1 = styled.button`
|
|
6566
|
+
display: inline-flex;
|
|
6567
|
+
align-items: center;
|
|
6568
|
+
gap: 8px;
|
|
6569
|
+
min-width: 0;
|
|
6570
|
+
padding: 0;
|
|
6571
|
+
border: none;
|
|
6572
|
+
background: transparent;
|
|
6573
|
+
cursor: pointer;
|
|
6574
|
+
outline: none;
|
|
6575
|
+
font: inherit;
|
|
6576
|
+
color: inherit;
|
|
6577
|
+
text-align: left;
|
|
6578
|
+
|
|
6579
|
+
& svg [stroke] { stroke: currentColor; }
|
|
6580
|
+
|
|
6581
|
+
${IconSlot} {
|
|
6582
|
+
opacity: 0;
|
|
6583
|
+
transition: opacity var(--speed-normal) var(--easing-primary-in-out);
|
|
6584
|
+
}
|
|
6585
|
+
|
|
6586
|
+
&:hover ${IconSlot},
|
|
6587
|
+
&:focus-visible ${IconSlot} {
|
|
6588
|
+
opacity: 1;
|
|
6589
|
+
}
|
|
6590
|
+
|
|
6591
|
+
&:focus-visible {
|
|
6592
|
+
outline: 2px solid var(--primary-9);
|
|
6593
|
+
outline-offset: 2px;
|
|
6594
|
+
}
|
|
6595
|
+
|
|
6596
|
+
${({ $alwaysShowIcon }) => $alwaysShowIcon && css`
|
|
6597
|
+
${IconSlot} { opacity: 1; }
|
|
6598
|
+
`}
|
|
6599
|
+
`;
|
|
6600
|
+
var Field = styled.input`
|
|
6601
|
+
box-sizing: border-box;
|
|
6602
|
+
height: 24px;
|
|
6603
|
+
width: ${({ $fieldWidth }) => $fieldWidth};
|
|
6604
|
+
max-width: 100%;
|
|
6605
|
+
min-width: 0;
|
|
6606
|
+
padding: 0 8px;
|
|
6607
|
+
border: 1px solid var(--input-default-border-color);
|
|
6608
|
+
border-radius: 3px;
|
|
6609
|
+
background: var(--input-default-background-color);
|
|
6610
|
+
color: var(--input-color-default);
|
|
6611
|
+
font: inherit;
|
|
6612
|
+
outline: none;
|
|
6613
|
+
|
|
6614
|
+
&:focus {
|
|
6615
|
+
border-color: var(--input-default-focused-border-color);
|
|
6616
|
+
box-shadow: 0 3px 3px var(--input-default-focused-shadow-color);
|
|
6617
|
+
}
|
|
6618
|
+
|
|
6619
|
+
&::placeholder {
|
|
6620
|
+
color: var(--input-color-placeholder);
|
|
6621
|
+
font-style: italic;
|
|
6622
|
+
}
|
|
6623
|
+
|
|
6624
|
+
&:lang(ja)::placeholder {
|
|
6625
|
+
font-style: normal;
|
|
6626
|
+
}
|
|
6627
|
+
|
|
6628
|
+
&[readonly] {
|
|
6629
|
+
color: var(--input-color-disabled);
|
|
6630
|
+
}
|
|
6631
|
+
`;
|
|
6632
|
+
var Actions = styled.div`
|
|
6633
|
+
display: flex;
|
|
6634
|
+
flex-shrink: 0;
|
|
6635
|
+
align-items: center;
|
|
6636
|
+
gap: 8px;
|
|
6637
|
+
`;
|
|
6638
|
+
var EditableText = ({ value, defaultValue, label, onSave, onCancel, onEditingChange, saveOnClickOutside = false, allowEmpty = false, fieldWidth = "240px", editIcon = "Edit", alwaysShowEditIcon = false, editText = "Edit", saveText = "Save", savingText = "Saving", cancelText = "Cancel", disabled = false, type = "text", onKeyDown, ...props }) => {
|
|
6639
|
+
const [isEditing, setIsEditing] = useState(false);
|
|
6640
|
+
const [isSaving, setIsSaving] = useState(false);
|
|
6641
|
+
const [ownText, setOwnText] = useState(defaultValue ?? "");
|
|
6642
|
+
const isControlled = value !== void 0;
|
|
6643
|
+
const text = isControlled ? value : ownText;
|
|
6644
|
+
const [draft, setDraft] = useState(text);
|
|
6645
|
+
const containerRef = useRef(null);
|
|
6646
|
+
const fieldRef = useRef(null);
|
|
6647
|
+
const triggerRef = useRef(null);
|
|
6648
|
+
const restoreFocus = useRef(false);
|
|
6649
|
+
const setEditing = useCallback((next) => {
|
|
6650
|
+
setIsEditing(next);
|
|
6651
|
+
onEditingChange?.(next);
|
|
6652
|
+
}, [onEditingChange]);
|
|
6653
|
+
const open = useCallback(() => {
|
|
6654
|
+
setDraft(text);
|
|
6655
|
+
setEditing(true);
|
|
6656
|
+
}, [text, setEditing]);
|
|
6657
|
+
const close = useCallback((withFocus) => {
|
|
6658
|
+
restoreFocus.current = withFocus;
|
|
6659
|
+
setEditing(false);
|
|
6660
|
+
}, [setEditing]);
|
|
6661
|
+
useEffect(() => {
|
|
6662
|
+
if (!isEditing) return;
|
|
6663
|
+
fieldRef.current?.focus();
|
|
6664
|
+
fieldRef.current?.select();
|
|
6665
|
+
}, [isEditing]);
|
|
6666
|
+
useEffect(() => {
|
|
6667
|
+
if (isEditing || !restoreFocus.current) return;
|
|
6668
|
+
restoreFocus.current = false;
|
|
6669
|
+
triggerRef.current?.focus();
|
|
6670
|
+
}, [isEditing]);
|
|
6671
|
+
useEffect(() => {
|
|
6672
|
+
if (disabled && isEditing) close(false);
|
|
6673
|
+
}, [
|
|
6674
|
+
disabled,
|
|
6675
|
+
isEditing,
|
|
6676
|
+
close
|
|
6677
|
+
]);
|
|
6678
|
+
const cancel = useCallback((withFocus) => {
|
|
6679
|
+
close(withFocus);
|
|
6680
|
+
onCancel?.();
|
|
6681
|
+
}, [close, onCancel]);
|
|
6682
|
+
const commit = useCallback(async (withFocus) => {
|
|
6683
|
+
if (isSaving) return;
|
|
6684
|
+
const next = draft.trim();
|
|
6685
|
+
if (!next && !allowEmpty) return;
|
|
6686
|
+
if (next === text) {
|
|
6687
|
+
close(withFocus);
|
|
6688
|
+
return;
|
|
6689
|
+
}
|
|
6690
|
+
setIsSaving(true);
|
|
6691
|
+
try {
|
|
6692
|
+
await onSave?.(next);
|
|
6693
|
+
if (!isControlled) setOwnText(next);
|
|
6694
|
+
close(withFocus);
|
|
6695
|
+
} catch {} finally {
|
|
6696
|
+
setIsSaving(false);
|
|
6697
|
+
}
|
|
6698
|
+
}, [
|
|
6699
|
+
isSaving,
|
|
6700
|
+
draft,
|
|
6701
|
+
allowEmpty,
|
|
6702
|
+
text,
|
|
6703
|
+
isControlled,
|
|
6704
|
+
onSave,
|
|
6705
|
+
close
|
|
6706
|
+
]);
|
|
6707
|
+
useClickOutside(containerRef, useCallback(() => {
|
|
6708
|
+
if (!isEditing || isSaving) return;
|
|
6709
|
+
if (saveOnClickOutside) {
|
|
6710
|
+
commit(false);
|
|
6711
|
+
return;
|
|
6712
|
+
}
|
|
6713
|
+
cancel(false);
|
|
6714
|
+
}, [
|
|
6715
|
+
isEditing,
|
|
6716
|
+
isSaving,
|
|
6717
|
+
saveOnClickOutside,
|
|
6718
|
+
commit,
|
|
6719
|
+
cancel
|
|
6720
|
+
]));
|
|
6721
|
+
const handleKeyDown = useCallback((e) => {
|
|
6722
|
+
onKeyDown?.(e);
|
|
6723
|
+
if (e.nativeEvent.isComposing) return;
|
|
6724
|
+
if (e.key === "Enter") {
|
|
6725
|
+
e.preventDefault();
|
|
6726
|
+
commit(true);
|
|
6727
|
+
return;
|
|
6728
|
+
}
|
|
6729
|
+
if (e.key === "Escape") cancel(true);
|
|
6730
|
+
}, [
|
|
6731
|
+
onKeyDown,
|
|
6732
|
+
commit,
|
|
6733
|
+
cancel
|
|
6734
|
+
]);
|
|
6735
|
+
const canSave = allowEmpty || draft.trim().length > 0;
|
|
6736
|
+
if (isEditing) return /* @__PURE__ */ jsxs(Container$54, {
|
|
6737
|
+
ref: containerRef,
|
|
6738
|
+
children: [/* @__PURE__ */ jsx(Field, {
|
|
6739
|
+
...props,
|
|
6740
|
+
ref: fieldRef,
|
|
6741
|
+
type,
|
|
6742
|
+
$fieldWidth: fieldWidth,
|
|
6743
|
+
"aria-label": label,
|
|
6744
|
+
"aria-busy": isSaving,
|
|
6745
|
+
readOnly: isSaving,
|
|
6746
|
+
value: draft,
|
|
6747
|
+
onChange: (e) => setDraft(e.target.value),
|
|
6748
|
+
onKeyDown: handleKeyDown
|
|
6749
|
+
}), /* @__PURE__ */ jsxs(Actions, { children: [/* @__PURE__ */ jsx(ButtonWithLoading, {
|
|
6750
|
+
size: "small",
|
|
6751
|
+
loading: isSaving,
|
|
6752
|
+
disabled: !canSave,
|
|
6753
|
+
"aria-label": isSaving ? savingText : saveText,
|
|
6754
|
+
onClick: () => {
|
|
6755
|
+
commit(true);
|
|
6756
|
+
},
|
|
6757
|
+
children: isSaving ? savingText : saveText
|
|
6758
|
+
}), /* @__PURE__ */ jsx(Button, {
|
|
6759
|
+
design: "secondary",
|
|
6760
|
+
size: "small",
|
|
6761
|
+
disabled: isSaving,
|
|
6762
|
+
onClick: () => cancel(true),
|
|
6763
|
+
children: cancelText
|
|
6764
|
+
})] })]
|
|
6765
|
+
});
|
|
6766
|
+
return /* @__PURE__ */ jsx(Container$54, {
|
|
6767
|
+
ref: containerRef,
|
|
6768
|
+
children: disabled ? /* @__PURE__ */ jsx(Text, { children: text }) : /* @__PURE__ */ jsxs(Trigger$1, {
|
|
6769
|
+
ref: triggerRef,
|
|
6770
|
+
type: "button",
|
|
6771
|
+
$alwaysShowIcon: alwaysShowEditIcon || text === "",
|
|
6772
|
+
"aria-label": `${text}, ${editText}`,
|
|
6773
|
+
onClick: open,
|
|
6774
|
+
children: [/* @__PURE__ */ jsx(Text, { children: text }), /* @__PURE__ */ jsx(IconSlot, {
|
|
6775
|
+
"aria-hidden": "true",
|
|
6776
|
+
children: /* @__PURE__ */ jsx(Icon, {
|
|
6777
|
+
icon: editIcon,
|
|
6778
|
+
size: 12
|
|
6779
|
+
})
|
|
6780
|
+
})]
|
|
6781
|
+
})
|
|
6782
|
+
});
|
|
6783
|
+
};
|
|
6784
|
+
//#endregion
|
|
6785
|
+
//#region src/Form/molecules/PasswordField.tsx
|
|
6786
|
+
var PasswordField = ({ name, label, fieldState, feedbackMessage, required, children, formAction, ...props }) => {
|
|
6787
|
+
const [showValue, setShowValue] = useState(false);
|
|
6788
|
+
const [actionIcon, setActionIcon] = useState("PasswordHide");
|
|
6789
|
+
const actionCallback = () => {
|
|
6790
|
+
const newValue = !showValue;
|
|
6791
|
+
setShowValue(newValue);
|
|
6792
|
+
setActionIcon(newValue ? "PasswordShow" : "PasswordHide");
|
|
6793
|
+
};
|
|
6794
|
+
return /* @__PURE__ */ jsx(Label, {
|
|
6795
|
+
htmlFor: name,
|
|
6796
|
+
labelText: label,
|
|
6797
|
+
required,
|
|
6798
|
+
children: /* @__PURE__ */ jsx(Input, {
|
|
6799
|
+
type: showValue ? "text" : "password",
|
|
6800
|
+
actionCallback,
|
|
6801
|
+
actionIcon,
|
|
6802
|
+
name,
|
|
6803
|
+
fieldState,
|
|
6804
|
+
feedbackMessage,
|
|
6805
|
+
required,
|
|
6806
|
+
...props
|
|
6807
|
+
})
|
|
6808
|
+
});
|
|
6809
|
+
};
|
|
6810
|
+
//#endregion
|
|
6811
|
+
//#region src/Form/molecules/PercentageSlider.tsx
|
|
6812
|
+
var Container$53 = styled.div``;
|
|
6813
|
+
var Headers = styled.div`
|
|
6814
|
+
font-size: 14px;
|
|
6815
|
+
color: var(--grey-10);
|
|
6816
|
+
display: flex;
|
|
6817
|
+
justify-content: space-between;
|
|
6818
|
+
margin-bottom: 20px;
|
|
6819
|
+
${({ $allMarkCentered }) => $allMarkCentered ? `padding: 0;` : `padding: 0 6px;`};
|
|
6820
|
+
`;
|
|
6821
|
+
var ValueTitle = styled(Label)`
|
|
6822
|
+
font-family: ${({ theme }) => theme.fontFamily.data};
|
|
6823
|
+
`;
|
|
6824
|
+
var getThumbColor = (value) => {
|
|
6825
|
+
if (value <= 10) return "error";
|
|
6826
|
+
if (value > 10 && value <= 30) return "warning";
|
|
6827
|
+
return "success";
|
|
6828
|
+
};
|
|
6829
|
+
var getTitleLevel = (value) => {
|
|
6830
|
+
if (value <= 10) return "Critical Level";
|
|
6831
|
+
if (value > 10 && value <= 30) return "Warning Level";
|
|
6832
|
+
return "Safe Level";
|
|
6833
|
+
};
|
|
6834
|
+
var PercentageSlider = ({ defaultValue = 0, inputCallback, updateThumbColor, updateTitle, showValue, allMarkCentered, ...props }) => {
|
|
6835
|
+
const [selectedValue, setSelectedValue] = useState(defaultValue);
|
|
6836
|
+
const handleSelectedValue = useCallback((value) => {
|
|
6837
|
+
if (inputCallback) inputCallback(value);
|
|
6838
|
+
setSelectedValue(value);
|
|
6839
|
+
}, [inputCallback]);
|
|
6840
|
+
return /* @__PURE__ */ jsxs(Container$53, { children: [/* @__PURE__ */ jsxs(Headers, {
|
|
6841
|
+
$allMarkCentered: allMarkCentered,
|
|
6842
|
+
children: [/* @__PURE__ */ jsx(Label, {
|
|
6843
|
+
htmlFor: "percentage-slider",
|
|
6844
|
+
labelText: updateTitle ? updateTitle(selectedValue) : getTitleLevel(selectedValue)
|
|
6845
|
+
}), showValue && /* @__PURE__ */ jsx(ValueTitle, {
|
|
6846
|
+
htmlFor: "percentage-slider",
|
|
6847
|
+
labelText: `${selectedValue}%`
|
|
6848
|
+
})]
|
|
6849
|
+
}), /* @__PURE__ */ jsx(SliderInput, {
|
|
6850
|
+
...props,
|
|
6851
|
+
id: "percentage-slider",
|
|
6852
|
+
max: 100,
|
|
6853
|
+
min: 0,
|
|
6854
|
+
defaultValue,
|
|
6855
|
+
showValue,
|
|
6856
|
+
onChangeCallback: handleSelectedValue,
|
|
6857
|
+
thumbColor: updateThumbColor ? updateThumbColor(selectedValue) : getThumbColor(selectedValue),
|
|
6858
|
+
allMarkCentered
|
|
6859
|
+
})] });
|
|
6860
|
+
};
|
|
6861
|
+
//#endregion
|
|
6617
6862
|
//#region src/Form/atoms/SplitButtonOption.tsx
|
|
6618
6863
|
var StyledButton$5 = styled.button`
|
|
6619
6864
|
${resetButtonStyles}
|
|
@@ -12392,10 +12637,15 @@ var TagList = ({ tagsConfig }) => {
|
|
|
12392
12637
|
}) });
|
|
12393
12638
|
};
|
|
12394
12639
|
//#endregion
|
|
12640
|
+
//#region src/Chips/ChipCompactContext.tsx
|
|
12641
|
+
var ChipCompactContext = createContext(false);
|
|
12642
|
+
//#endregion
|
|
12395
12643
|
//#region src/Chips/atoms/ChipButton.tsx
|
|
12396
12644
|
var collapse = keyframes`
|
|
12397
12645
|
to {
|
|
12398
12646
|
width: 0;
|
|
12647
|
+
padding-left: 0;
|
|
12648
|
+
padding-right: 0;
|
|
12399
12649
|
opacity: 0;
|
|
12400
12650
|
border-left-width: 0;
|
|
12401
12651
|
}
|
|
@@ -12405,6 +12655,7 @@ var StyledChip = styled.button`
|
|
|
12405
12655
|
display: flex;
|
|
12406
12656
|
align-items: center;
|
|
12407
12657
|
justify-content: center;
|
|
12658
|
+
gap: 8px;
|
|
12408
12659
|
width: 56px;
|
|
12409
12660
|
height: 56px;
|
|
12410
12661
|
padding: 0;
|
|
@@ -12443,10 +12694,23 @@ var StyledChip = styled.button`
|
|
|
12443
12694
|
outline-offset: -2px;
|
|
12444
12695
|
}
|
|
12445
12696
|
|
|
12446
|
-
${({ $
|
|
12447
|
-
|
|
12448
|
-
|
|
12449
|
-
|
|
12697
|
+
${({ $isCompact }) => $isCompact && css`
|
|
12698
|
+
width: auto;
|
|
12699
|
+
height: 100%;
|
|
12700
|
+
min-height: 32px;
|
|
12701
|
+
padding: 0 12px;
|
|
12702
|
+
justify-content: flex-start;
|
|
12703
|
+
white-space: nowrap;
|
|
12704
|
+
|
|
12705
|
+
&::after { height: 2px; }
|
|
12706
|
+
`}
|
|
12707
|
+
|
|
12708
|
+
${({ $selected, $barOnly }) => $selected && css`
|
|
12709
|
+
${!$barOnly && css`
|
|
12710
|
+
background-color: var(--primary-a3);
|
|
12711
|
+
color: var(--primary-11);
|
|
12712
|
+
& svg [stroke] { stroke: var(--primary-11); }
|
|
12713
|
+
`}
|
|
12450
12714
|
&::after { background-color: var(--primary-9); }
|
|
12451
12715
|
&:hover:enabled::after { background-color: var(--primary-9); }
|
|
12452
12716
|
`}
|
|
@@ -12462,9 +12726,19 @@ var StyledChip = styled.button`
|
|
|
12462
12726
|
@media (prefers-reduced-motion: reduce) { animation: none; }
|
|
12463
12727
|
`}
|
|
12464
12728
|
`;
|
|
12465
|
-
var ChipButton = ({ variant = "text", icon, label, selected = false, noDivider = false, leaving = false, onLeaveEnd, onAnimationEnd, children, ...props }) => {
|
|
12729
|
+
var ChipButton = ({ variant = "text", isCompact, barOnly = false, icon, label, selected = false, noDivider = false, leaving = false, onLeaveEnd, onAnimationEnd, children, ...props }) => {
|
|
12466
12730
|
const showDivider = !noDivider;
|
|
12731
|
+
const barIsCompact = useContext(ChipCompactContext);
|
|
12732
|
+
const compact = isCompact ?? barIsCompact;
|
|
12733
|
+
const showIcon = variant !== "text" && !!icon;
|
|
12734
|
+
const showText = variant !== "icon" || !icon;
|
|
12467
12735
|
const isMenuButton = props["aria-haspopup"] !== void 0;
|
|
12736
|
+
const chipRef = useRef(null);
|
|
12737
|
+
useLayoutEffect(() => {
|
|
12738
|
+
const chip = chipRef.current;
|
|
12739
|
+
if (!chip) return;
|
|
12740
|
+
chip.style.width = leaving && compact ? `${chip.offsetWidth}px` : "";
|
|
12741
|
+
}, [leaving, compact]);
|
|
12468
12742
|
const hasFired = useRef(false);
|
|
12469
12743
|
const fireLeaveEnd = useCallback(() => {
|
|
12470
12744
|
if (hasFired.current) return;
|
|
@@ -12486,18 +12760,21 @@ var ChipButton = ({ variant = "text", icon, label, selected = false, noDivider =
|
|
|
12486
12760
|
fireLeaveEnd,
|
|
12487
12761
|
onAnimationEnd
|
|
12488
12762
|
]);
|
|
12489
|
-
return /* @__PURE__ */
|
|
12763
|
+
return /* @__PURE__ */ jsxs(StyledChip, {
|
|
12764
|
+
ref: chipRef,
|
|
12490
12765
|
type: "button",
|
|
12491
12766
|
"aria-pressed": isMenuButton ? void 0 : selected,
|
|
12492
12767
|
$selected: selected,
|
|
12493
12768
|
$showDivider: showDivider,
|
|
12494
12769
|
$leaving: leaving,
|
|
12770
|
+
$isCompact: compact,
|
|
12771
|
+
$barOnly: barOnly,
|
|
12495
12772
|
...props,
|
|
12496
12773
|
onAnimationEnd: handleAnimationEnd,
|
|
12497
|
-
children:
|
|
12774
|
+
children: [showIcon ? /* @__PURE__ */ jsx(Icon, {
|
|
12498
12775
|
icon,
|
|
12499
12776
|
size: 16
|
|
12500
|
-
}) : label ?? children
|
|
12777
|
+
}) : null, showText ? label ?? children : null]
|
|
12501
12778
|
});
|
|
12502
12779
|
};
|
|
12503
12780
|
//#endregion
|
|
@@ -12685,6 +12962,11 @@ var Bar = styled.div`
|
|
|
12685
12962
|
& > * {
|
|
12686
12963
|
flex-shrink: 0;
|
|
12687
12964
|
}
|
|
12965
|
+
|
|
12966
|
+
${({ $isCompact }) => $isCompact && css`
|
|
12967
|
+
height: 100%;
|
|
12968
|
+
min-height: 32px;
|
|
12969
|
+
`}
|
|
12688
12970
|
`;
|
|
12689
12971
|
var NAV_KEYS = [
|
|
12690
12972
|
"ArrowLeft",
|
|
@@ -12692,7 +12974,7 @@ var NAV_KEYS = [
|
|
|
12692
12974
|
"Home",
|
|
12693
12975
|
"End"
|
|
12694
12976
|
];
|
|
12695
|
-
var ChipBar = ({ children, onKeyDown, onFocus, ...props }) => {
|
|
12977
|
+
var ChipBar = ({ children, isCompact = false, leadingDivider = false, onKeyDown, onFocus, ...props }) => {
|
|
12696
12978
|
const barRef = useRef(null);
|
|
12697
12979
|
const [activeIndex, setActiveIndex] = useState(0);
|
|
12698
12980
|
const getCells = useCallback(() => {
|
|
@@ -12741,14 +13023,18 @@ var ChipBar = ({ children, onKeyDown, onFocus, ...props }) => {
|
|
|
12741
13023
|
if (e.key === "End") next = focusables.length - 1;
|
|
12742
13024
|
focusables[next]?.focus();
|
|
12743
13025
|
}, [getCells, onKeyDown]);
|
|
12744
|
-
return /* @__PURE__ */ jsx(
|
|
12745
|
-
|
|
12746
|
-
|
|
12747
|
-
|
|
12748
|
-
|
|
12749
|
-
|
|
12750
|
-
|
|
12751
|
-
|
|
13026
|
+
return /* @__PURE__ */ jsx(ChipCompactContext.Provider, {
|
|
13027
|
+
value: isCompact,
|
|
13028
|
+
children: /* @__PURE__ */ jsx(Bar, {
|
|
13029
|
+
ref: barRef,
|
|
13030
|
+
role: "toolbar",
|
|
13031
|
+
"aria-label": "Chip bar",
|
|
13032
|
+
$isCompact: isCompact,
|
|
13033
|
+
...props,
|
|
13034
|
+
onFocus: handleFocus,
|
|
13035
|
+
onKeyDown: handleKeyDown,
|
|
13036
|
+
children: cells.map((child, i) => i === 0 && !leadingDivider && typeof child.type !== "string" ? cloneElement(child, { noDivider: true }) : child)
|
|
13037
|
+
})
|
|
12752
13038
|
});
|
|
12753
13039
|
};
|
|
12754
13040
|
//#endregion
|
|
@@ -14448,20 +14734,48 @@ var RESERVED_DRAWER_IDS = [
|
|
|
14448
14734
|
"notifications",
|
|
14449
14735
|
"custom"
|
|
14450
14736
|
];
|
|
14737
|
+
var TopBarHeightVars = createGlobalStyle`
|
|
14738
|
+
:root {
|
|
14739
|
+
--top-bar-bottom-height: ${({ $bottomHeight }) => $bottomHeight};
|
|
14740
|
+
--top-bar-total-height: calc(var(--top-bar-height, 56px) + var(--top-bar-bottom-height, 0px));
|
|
14741
|
+
}
|
|
14742
|
+
`;
|
|
14451
14743
|
var Container$10 = styled.div`
|
|
14452
14744
|
z-index: 9;
|
|
14453
14745
|
position: sticky;
|
|
14454
14746
|
top: 0;
|
|
14455
|
-
height: 56px;
|
|
14456
|
-
padding: 0 16px 0 24px;
|
|
14457
14747
|
width: 100%;
|
|
14458
14748
|
display: flex;
|
|
14459
|
-
|
|
14749
|
+
flex-direction: column;
|
|
14460
14750
|
align-self: flex-start;
|
|
14461
|
-
border-bottom: 1px solid var(--dividing-line);
|
|
14751
|
+
border-bottom: var(--top-bar-divider-width, 1px) solid var(--dividing-line);
|
|
14462
14752
|
background: var(--grey-2);
|
|
14463
14753
|
box-shadow: 5px 0px 10px 0px var(--primary-a2);
|
|
14464
14754
|
`;
|
|
14755
|
+
var BarRow = styled.div`
|
|
14756
|
+
height: calc(var(--top-bar-height, 56px) - var(--top-bar-divider-width, 1px));
|
|
14757
|
+
padding: 0 16px 0 24px;
|
|
14758
|
+
display: flex;
|
|
14759
|
+
justify-content: space-between;
|
|
14760
|
+
`;
|
|
14761
|
+
var BottomArea = styled.div`
|
|
14762
|
+
position: relative;
|
|
14763
|
+
box-sizing: border-box;
|
|
14764
|
+
height: var(--top-bar-bottom-height, 32px);
|
|
14765
|
+
display: flex;
|
|
14766
|
+
align-items: center;
|
|
14767
|
+
background: var(--global-element-background);
|
|
14768
|
+
|
|
14769
|
+
&::before {
|
|
14770
|
+
content: '';
|
|
14771
|
+
position: absolute;
|
|
14772
|
+
top: 0;
|
|
14773
|
+
left: 0;
|
|
14774
|
+
right: 0;
|
|
14775
|
+
height: 1px;
|
|
14776
|
+
background: var(--dividing-line);
|
|
14777
|
+
}
|
|
14778
|
+
`;
|
|
14465
14779
|
var RightArea = styled.div`
|
|
14466
14780
|
display: flex;
|
|
14467
14781
|
align-items: center;
|
|
@@ -14586,7 +14900,7 @@ var Drawer = styled.div`
|
|
|
14586
14900
|
|
|
14587
14901
|
position: fixed;
|
|
14588
14902
|
right: -10px;
|
|
14589
|
-
top: 56px;
|
|
14903
|
+
top: var(--top-bar-total-height, 56px);
|
|
14590
14904
|
bottom: 0;
|
|
14591
14905
|
background: var(--global-element-background);
|
|
14592
14906
|
border-left: var(--dividing-line) 1px solid;
|
|
@@ -14617,7 +14931,7 @@ var NotificationsContainer = styled.div`
|
|
|
14617
14931
|
overflow-y: scroll;
|
|
14618
14932
|
margin-right: -17px;
|
|
14619
14933
|
`;
|
|
14620
|
-
var TopBar = ({ hasNotifications = false, hasLanguage = false, selectedLanguageText = "", languageOptionsText, selectedLangAttribute, hasLogout = true, logoutLink = "/logout", logoutText = "Logout", hasSearch = false, hasCurrentUser = true, currentUserText = "Current User", accountOptionText = "Account Options", searchPlaceholder = "Search for devices, analysis tasks, etc.", userSubmenu = [], userDrawerBespoke, loggedInUser, notificationsHistory, customDrawer, hasSwitchTheme = false, isLightMode = true, switchThemeText = "SWITCH THEME", selectedThemeText = "", onLogout = () => {}, onLanguageToggle = () => {}, onThemeToggle = () => {}, userDrawerFooter, userDrawerMeta, onUserDrawerMetaClick = () => {}, hasUserDrawerMeta, copySuccessMessage, includeCopyTitle, hasUserDrawerFooter, badge, leftAreaElement, sideDrawers, activeDrawer, onActiveDrawerChange }) => {
|
|
14934
|
+
var TopBar = ({ hasNotifications = false, hasLanguage = false, selectedLanguageText = "", languageOptionsText, selectedLangAttribute, hasLogout = true, logoutLink = "/logout", logoutText = "Logout", hasSearch = false, hasCurrentUser = true, currentUserText = "Current User", accountOptionText = "Account Options", searchPlaceholder = "Search for devices, analysis tasks, etc.", userSubmenu = [], userDrawerBespoke, loggedInUser, notificationsHistory, customDrawer, hasSwitchTheme = false, isLightMode = true, switchThemeText = "SWITCH THEME", selectedThemeText = "", onLogout = () => {}, onLanguageToggle = () => {}, onThemeToggle = () => {}, userDrawerFooter, userDrawerMeta, onUserDrawerMetaClick = () => {}, hasUserDrawerMeta, copySuccessMessage, includeCopyTitle, hasUserDrawerFooter, badge, leftAreaElement, bottomAreaElement, bottomAreaHeight = "32px", sideDrawers, activeDrawer, onActiveDrawerChange }) => {
|
|
14621
14935
|
const [internalDrawer, setInternalDrawer] = useState(null);
|
|
14622
14936
|
const isControlled = activeDrawer !== void 0;
|
|
14623
14937
|
const openDrawer = isControlled ? activeDrawer : internalDrawer;
|
|
@@ -14651,12 +14965,12 @@ var TopBar = ({ hasNotifications = false, hasLanguage = false, selectedLanguageT
|
|
|
14651
14965
|
for (const warning of sideDrawerWarnings) console.warn(`TopBar: ${warning}`);
|
|
14652
14966
|
}, []);
|
|
14653
14967
|
return /* @__PURE__ */ jsxs(Container$10, { children: [
|
|
14654
|
-
|
|
14968
|
+
/* @__PURE__ */ jsx(TopBarHeightVars, { $bottomHeight: bottomAreaElement ? bottomAreaHeight : "0px" }),
|
|
14969
|
+
/* @__PURE__ */ jsxs(BarRow, { children: [hasSearch ? /* @__PURE__ */ jsxs(SearchBar, { children: [/* @__PURE__ */ jsx(IconWrapper, { children: /* @__PURE__ */ jsx(Icon, {
|
|
14655
14970
|
icon: "Search",
|
|
14656
14971
|
size: 16,
|
|
14657
14972
|
color: "grey-6"
|
|
14658
|
-
}) }), /* @__PURE__ */ jsx(SearchInput, { placeholder: searchPlaceholder })] }) : leftAreaElement ? /* @__PURE__ */ jsx(LeftArea, { children: leftAreaElement }) : /* @__PURE__ */ jsx("div", {}),
|
|
14659
|
-
/* @__PURE__ */ jsxs(RightArea, { children: [badge && /* @__PURE__ */ jsx(TopBarBadge, { ...badge }), /* @__PURE__ */ jsxs(ButtonArea, { children: [
|
|
14973
|
+
}) }), /* @__PURE__ */ jsx(SearchInput, { placeholder: searchPlaceholder })] }) : leftAreaElement ? /* @__PURE__ */ jsx(LeftArea, { children: leftAreaElement }) : /* @__PURE__ */ jsx("div", {}), /* @__PURE__ */ jsxs(RightArea, { children: [badge && /* @__PURE__ */ jsx(TopBarBadge, { ...badge }), /* @__PURE__ */ jsxs(ButtonArea, { children: [
|
|
14660
14974
|
customDrawer && /* @__PURE__ */ jsx(DrawerToggle, {
|
|
14661
14975
|
$isActive: openDrawer === "custom",
|
|
14662
14976
|
onClick: () => toggleDrawers("custom"),
|
|
@@ -14680,7 +14994,8 @@ var TopBar = ({ hasNotifications = false, hasLanguage = false, selectedLanguageT
|
|
|
14680
14994
|
color: "dimmed"
|
|
14681
14995
|
})
|
|
14682
14996
|
})
|
|
14683
|
-
] })] }),
|
|
14997
|
+
] })] })] }),
|
|
14998
|
+
bottomAreaElement ? /* @__PURE__ */ jsx(BottomArea, { children: bottomAreaElement }) : null,
|
|
14684
14999
|
ReactDom.createPortal(/* @__PURE__ */ jsxs(DrawerPortalWrapper, { children: [
|
|
14685
15000
|
/* @__PURE__ */ jsx(Drawer, {
|
|
14686
15001
|
$isOpen: openDrawer === "user",
|
|
@@ -15819,9 +16134,10 @@ var HeaderContainer = styled.div`
|
|
|
15819
16134
|
flex-grow: 3;
|
|
15820
16135
|
}
|
|
15821
16136
|
`;
|
|
15822
|
-
var MobileNavbar = ({ content, home, logoMark, supportUrl, defaultMenuOpen = true, closeText, hasLanguage, hasLogout, logoutLink, hasCurrentUser, hasNotifications, userSubmenu, userDrawerBespoke, loggedInUser, notificationsHistory, customDrawer, sideDrawers, supportText, onLogout, onLanguageToggle, ...props }) => {
|
|
16137
|
+
var MobileNavbar = ({ content, home, logoMark, supportUrl, defaultMenuOpen = true, closeText, hasLanguage, hasLogout, logoutLink, hasCurrentUser, hasNotifications, userSubmenu, userDrawerBespoke, loggedInUser, notificationsHistory, customDrawer, sideDrawers, bottomAreaElement, supportText, onLogout, onLanguageToggle, ...props }) => {
|
|
15823
16138
|
useEffect(() => {
|
|
15824
16139
|
if (sideDrawers?.length) console.warn("MobileNavbar: `sideDrawers` are not supported on mobile and will not open. Use `customDrawer` for a drawer that works across breakpoints.");
|
|
16140
|
+
if (bottomAreaElement) console.warn("MobileNavbar: `bottomAreaElement` is not supported on mobile and will not render.");
|
|
15825
16141
|
}, []);
|
|
15826
16142
|
return /* @__PURE__ */ jsx(Container$1, { children: /* @__PURE__ */ jsxs(Tabs, { children: [/* @__PURE__ */ jsxs(HeaderContainer, { children: [/* @__PURE__ */ jsx(MobileLogoLink, {
|
|
15827
16143
|
home,
|
|
@@ -16024,6 +16340,6 @@ var Sidebar = ({ children, ...props }) => {
|
|
|
16024
16340
|
});
|
|
16025
16341
|
};
|
|
16026
16342
|
//#endregion
|
|
16027
|
-
export { ActionButtons, ActionsBar, AlertBar, AlertWrapper, AreaUploadManager, AvatarUploader, BackLink, BaseStyles, BasicSearchInput, Button, ButtonWithIcon, ButtonWithLoading, ButtonsStack, CameraPanelWrapper, CameraPanels, Checkbox, ChipBar, ChipButton, ChipDropdown, ChipZoneBreak, ConfirmationModal, Content, ContentLayout, CropTool, DatePicker, DebouncedSearcher, DropArea, DurationSlider, EditCell, FilterBar, FilterButton, FilterDropdown, FilterDropdownContainer, FilterInputs, FilterLayout, FiltersResults, FlexContentPlaceholder, Form, FullWidthContentBlock, GlobalUI, Icon, IconButton, IconSVGs, Input, InputFileButton, IntroductionText, Label, Layout, LineReducer_default as LineReducer, LineSetContext, LineUI, LineUI$1 as LineUIRTC, LineUIVideo, Logo, MainContainer, MainMenu, MediaBox, ModalContext, ModalProvider, MultilineContent, Notification, NotificationProvider, PageHeader, PageTitle, Pagination, PasswordField, PercentageSlider, RadioButton, SelectField, SelectWrapper, Sidebar, SidebarBox, SidebarHeading, SidebarLink, SidebarLinkHeading, SliderInput, SmallInput, SortDropdown, Spinner, SplitButton, SplitLayout, StatusIcon, Switch, Tab, TabContent, TabContext, TabList, TabWithIcon, TableHeaderTitle, TableRowThumbnail, Tabs, TabsWithIconBar, Tag, TagList, TagListWrapper, TextArea, TextAreaField, TextField, ThemeVariables, ToggleButton, Tooltip, TopBar, TypeTable, UtilityHeader, WebRTCPlayer as WebRTCClient, theme_default as defaultTheme, isDateInterval, isFilterItem, resetButtonStyles, useClickOutside, useCopyToClipboard, useInterval, useMediaModal, useModal, useNotification, usePoll, useThemeToggle, useTitle, useTo };
|
|
16343
|
+
export { ActionButtons, ActionsBar, AlertBar, AlertWrapper, AreaUploadManager, AvatarUploader, BackLink, BaseStyles, BasicSearchInput, Button, ButtonWithIcon, ButtonWithLoading, ButtonsStack, CameraPanelWrapper, CameraPanels, Checkbox, ChipBar, ChipButton, ChipDropdown, ChipZoneBreak, ConfirmationModal, Content, ContentLayout, CropTool, DatePicker, DebouncedSearcher, DropArea, DurationSlider, EditCell, EditableText, FilterBar, FilterButton, FilterDropdown, FilterDropdownContainer, FilterInputs, FilterLayout, FiltersResults, FlexContentPlaceholder, Form, FullWidthContentBlock, GlobalUI, Icon, IconButton, IconSVGs, Input, InputFileButton, IntroductionText, Label, Layout, LineReducer_default as LineReducer, LineSetContext, LineUI, LineUI$1 as LineUIRTC, LineUIVideo, Logo, MainContainer, MainMenu, MediaBox, ModalContext, ModalProvider, MultilineContent, Notification, NotificationProvider, PageHeader, PageTitle, Pagination, PasswordField, PercentageSlider, RadioButton, SelectField, SelectWrapper, Sidebar, SidebarBox, SidebarHeading, SidebarLink, SidebarLinkHeading, SliderInput, SmallInput, SortDropdown, Spinner, SplitButton, SplitLayout, StatusIcon, Switch, Tab, TabContent, TabContext, TabList, TabWithIcon, TableHeaderTitle, TableRowThumbnail, Tabs, TabsWithIconBar, Tag, TagList, TagListWrapper, TextArea, TextAreaField, TextField, ThemeVariables, ToggleButton, Tooltip, TopBar, TypeTable, UtilityHeader, WebRTCPlayer as WebRTCClient, theme_default as defaultTheme, isDateInterval, isFilterItem, resetButtonStyles, useClickOutside, useCopyToClipboard, useInterval, useMediaModal, useModal, useNotification, usePoll, useThemeToggle, useTitle, useTo };
|
|
16028
16344
|
|
|
16029
16345
|
//# sourceMappingURL=index.modern.js.map
|