@the-portland-company/shell 0.90.0 → 0.91.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/CHANGELOG.md +10 -0
- package/README.md +4 -47
- package/dist/app-chrome.cjs.map +1 -1
- package/dist/app-chrome.d.cts +1 -1
- package/dist/app-chrome.d.ts +1 -1
- package/dist/app-chrome.js +3 -3
- package/dist/chrome.css +0 -20
- package/dist/{chunk-LZ5TLJDG.js → chunk-WDVQBUWF.js} +3 -3
- package/dist/{chunk-LZ5TLJDG.js.map → chunk-WDVQBUWF.js.map} +1 -1
- package/dist/{chunk-VBDI7UZS.js → chunk-ZS7MQXDQ.js} +13 -361
- package/dist/chunk-ZS7MQXDQ.js.map +1 -0
- package/dist/{index-CaMJSRDb.d.cts → index-Cg5aEImm.d.cts} +5 -200
- package/dist/{index-C3jzqN9K.d.ts → index-DG32i0jC.d.ts} +5 -200
- package/dist/index.cjs +15 -375
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +2 -2
- package/dist/index.d.ts +2 -2
- package/dist/index.js +5 -11
- package/dist/index.js.map +1 -1
- package/dist/native.cjs +10 -364
- package/dist/native.cjs.map +1 -1
- package/dist/native.d.cts +1 -1
- package/dist/native.d.ts +1 -1
- package/dist/native.js +2 -2
- package/package.json +2 -13
- package/dist/chunk-VBDI7UZS.js.map +0 -1
- package/eslint/index.cjs +0 -172
- package/eslint/index.d.ts +0 -6
- package/eslint/index.mjs +0 -5
package/dist/index.cjs
CHANGED
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
3
|
var react = require('@chakra-ui/react');
|
|
4
|
-
var clsx = require('clsx');
|
|
5
4
|
var jsxRuntime = require('react/jsx-runtime');
|
|
6
|
-
var
|
|
5
|
+
var clsx5 = require('clsx');
|
|
7
6
|
var reactRouterDom = require('react-router-dom');
|
|
7
|
+
var react$1 = require('react');
|
|
8
8
|
require('react-dom');
|
|
9
9
|
|
|
10
10
|
function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
|
|
11
11
|
|
|
12
|
-
var
|
|
12
|
+
var clsx5__default = /*#__PURE__*/_interopDefault(clsx5);
|
|
13
13
|
|
|
14
14
|
// src/theme/index.ts
|
|
15
15
|
|
|
@@ -768,12 +768,6 @@ var components = {
|
|
|
768
768
|
};
|
|
769
769
|
|
|
770
770
|
// src/theme/index.ts
|
|
771
|
-
var SHELL_FIELD_MARKER = "data-shell-field";
|
|
772
|
-
var nativeFieldSelector = (state) => {
|
|
773
|
-
const own = `:not([${SHELL_FIELD_MARKER}])`;
|
|
774
|
-
const input = `input:not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="file"]):not([type="color"])${own}${state}`;
|
|
775
|
-
return `${input}, textarea${own}${state}, select${own}${state}`;
|
|
776
|
-
};
|
|
777
771
|
var config = {
|
|
778
772
|
initialColorMode: "light",
|
|
779
773
|
useSystemColorMode: false
|
|
@@ -797,13 +791,13 @@ var styles = {
|
|
|
797
791
|
"--mode-input-focus-shadow-color": "var(--app-color-brand-500)"
|
|
798
792
|
},
|
|
799
793
|
// Ensure non-Chakra/native text-like inputs follow mode border colors as well.
|
|
800
|
-
[
|
|
794
|
+
'input:not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="file"]):not([type="color"]), textarea, select': {
|
|
801
795
|
borderColor: "var(--mode-input-border-color)"
|
|
802
796
|
},
|
|
803
|
-
[
|
|
797
|
+
'input:not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="file"]):not([type="color"]):hover, textarea:hover, select:hover': {
|
|
804
798
|
borderColor: "var(--mode-input-hover-border-color)"
|
|
805
799
|
},
|
|
806
|
-
[
|
|
800
|
+
'input:not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="file"]):not([type="color"]):focus, textarea:focus, select:focus': {
|
|
807
801
|
borderColor: "var(--mode-primary-color)",
|
|
808
802
|
boxShadow: "0 0 0 1px var(--mode-input-focus-shadow-color)"
|
|
809
803
|
}
|
|
@@ -839,72 +833,29 @@ var politogyTheme = react.extendTheme({
|
|
|
839
833
|
full: "9999px"
|
|
840
834
|
}
|
|
841
835
|
});
|
|
842
|
-
var PADDING = {
|
|
843
|
-
none: "p-0",
|
|
844
|
-
sm: "p-4",
|
|
845
|
-
md: "p-6",
|
|
846
|
-
lg: "p-8"
|
|
847
|
-
};
|
|
848
836
|
function Card({
|
|
849
837
|
title,
|
|
850
|
-
subtitle,
|
|
851
|
-
aside,
|
|
852
|
-
actions,
|
|
853
|
-
footer,
|
|
854
838
|
children,
|
|
855
|
-
padding = "md",
|
|
856
|
-
bodyClassName,
|
|
857
839
|
minH,
|
|
858
840
|
className,
|
|
859
841
|
style,
|
|
860
842
|
...props
|
|
861
843
|
}) {
|
|
862
|
-
const structured = Boolean(subtitle || aside || actions || footer || bodyClassName);
|
|
863
|
-
const surface = "rounded-lg border border-[color:var(--app-card-border,var(--color-border))] bg-[color:var(--app-card-bg,var(--color-panel))] text-[color:var(--app-card-fg,var(--color-text))] shadow-sm";
|
|
864
|
-
if (!structured) {
|
|
865
|
-
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
866
|
-
"div",
|
|
867
|
-
{
|
|
868
|
-
"data-shell-card": "",
|
|
869
|
-
className: clsx__default.default(surface, PADDING[padding], className),
|
|
870
|
-
style: { minHeight: minH, ...style },
|
|
871
|
-
...props,
|
|
872
|
-
children: [
|
|
873
|
-
title ? /* @__PURE__ */ jsxRuntime.jsx("h3", { className: "mb-4 text-lg font-semibold", children: title }) : null,
|
|
874
|
-
children
|
|
875
|
-
]
|
|
876
|
-
}
|
|
877
|
-
);
|
|
878
|
-
}
|
|
879
|
-
const hasHeader = Boolean(title || subtitle || aside || actions);
|
|
880
|
-
const divider = "border-[color:var(--app-card-border,var(--color-border))]";
|
|
881
844
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
882
845
|
"div",
|
|
883
846
|
{
|
|
884
|
-
|
|
885
|
-
"data-shell-card-structured": "",
|
|
886
|
-
className: clsx__default.default(surface, "overflow-hidden", className),
|
|
847
|
+
className: `rounded-lg border border-slate-200 bg-white p-6 shadow-sm ${className || ""}`,
|
|
887
848
|
style: { minHeight: minH, ...style },
|
|
888
849
|
...props,
|
|
889
850
|
children: [
|
|
890
|
-
|
|
891
|
-
|
|
892
|
-
title ? /* @__PURE__ */ jsxRuntime.jsx("h3", { className: "text-base font-semibold", children: title }) : null,
|
|
893
|
-
subtitle ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: "mt-0.5 text-sm text-[color:var(--app-card-fg-muted,var(--color-text-muted))]", children: subtitle }) : null
|
|
894
|
-
] }),
|
|
895
|
-
aside || actions ? /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex shrink-0 items-center gap-2", children: [
|
|
896
|
-
aside,
|
|
897
|
-
actions
|
|
898
|
-
] }) : null
|
|
899
|
-
] }) : null,
|
|
900
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { className: bodyClassName ?? PADDING[padding], children }),
|
|
901
|
-
footer ? /* @__PURE__ */ jsxRuntime.jsx("div", { className: clsx__default.default("border-t px-5 py-3", divider), children: footer }) : null
|
|
851
|
+
title && /* @__PURE__ */ jsxRuntime.jsx("h3", { className: "mb-4 text-lg font-semibold", children: title }),
|
|
852
|
+
children
|
|
902
853
|
]
|
|
903
854
|
}
|
|
904
855
|
);
|
|
905
856
|
}
|
|
906
857
|
function FormColumn({ children, className }) {
|
|
907
|
-
return /* @__PURE__ */ jsxRuntime.jsx("div", { "data-shell-form-column": "", className:
|
|
858
|
+
return /* @__PURE__ */ jsxRuntime.jsx("div", { "data-shell-form-column": "", className: clsx5__default.default("w-full max-w-[960px]", className), children });
|
|
908
859
|
}
|
|
909
860
|
|
|
910
861
|
// src/lib/deprecation.ts
|
|
@@ -965,7 +916,7 @@ function PageHeaderView({
|
|
|
965
916
|
"div",
|
|
966
917
|
{
|
|
967
918
|
"data-shell-page-header": "",
|
|
968
|
-
className:
|
|
919
|
+
className: clsx5__default.default("pt-[22px] text-[color:var(--color-text,#2F3136)]", tabBar ? "pb-0" : "pb-4", {
|
|
969
920
|
"md:ml-60": !hideSidebar
|
|
970
921
|
}),
|
|
971
922
|
children: [
|
|
@@ -1004,311 +955,6 @@ function PageHeaderView({
|
|
|
1004
955
|
function PageHeader(props) {
|
|
1005
956
|
return /* @__PURE__ */ jsxRuntime.jsx(PageHeaderView, { ...props });
|
|
1006
957
|
}
|
|
1007
|
-
var VARIANT_CLASS = {
|
|
1008
|
-
primary: "border border-transparent bg-[color:var(--app-btn-primary-bg,var(--color-accent))] text-[color:var(--app-btn-primary-fg,var(--color-white))] hover:bg-[color:var(--app-btn-primary-bg-hover,var(--color-accent-hover))]",
|
|
1009
|
-
secondary: "border border-[color:var(--app-btn-secondary-border,var(--color-border))] bg-[color:var(--app-btn-secondary-bg,var(--color-white))] text-[color:var(--app-btn-secondary-fg,var(--color-text))] hover:bg-[color:var(--app-btn-secondary-bg-hover,var(--color-bg))]",
|
|
1010
|
-
ghost: "border border-transparent bg-transparent text-[color:var(--app-btn-secondary-fg,var(--color-text))] hover:bg-[color:var(--app-btn-secondary-bg-hover,var(--color-bg))]",
|
|
1011
|
-
danger: "border border-transparent bg-[color:var(--chrome-danger,var(--color-race-red))] text-[color:var(--color-white)] hover:bg-[color:var(--color-race-red-600)]"
|
|
1012
|
-
};
|
|
1013
|
-
var SIZE_CLASS = {
|
|
1014
|
-
md: "h-[44px]",
|
|
1015
|
-
sm: "h-[36px]"
|
|
1016
|
-
};
|
|
1017
|
-
var Button = react$1.forwardRef(function Button2({
|
|
1018
|
-
variant = "primary",
|
|
1019
|
-
size = "md",
|
|
1020
|
-
loading = false,
|
|
1021
|
-
disabled = false,
|
|
1022
|
-
href,
|
|
1023
|
-
as,
|
|
1024
|
-
type,
|
|
1025
|
-
className,
|
|
1026
|
-
children,
|
|
1027
|
-
onClick,
|
|
1028
|
-
...props
|
|
1029
|
-
}, ref) {
|
|
1030
|
-
const Component = as ?? (href ? "a" : "button");
|
|
1031
|
-
const isNativeButton = Component === "button";
|
|
1032
|
-
const inactive = disabled || loading;
|
|
1033
|
-
const linkProps = isNativeButton ? { type: type ?? "button", disabled: inactive } : {
|
|
1034
|
-
href,
|
|
1035
|
-
"aria-disabled": inactive || void 0,
|
|
1036
|
-
tabIndex: inactive ? -1 : void 0
|
|
1037
|
-
};
|
|
1038
|
-
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
1039
|
-
Component,
|
|
1040
|
-
{
|
|
1041
|
-
ref,
|
|
1042
|
-
"data-shell-button": "",
|
|
1043
|
-
"data-variant": variant,
|
|
1044
|
-
"aria-busy": loading || void 0,
|
|
1045
|
-
className: clsx__default.default(
|
|
1046
|
-
"inline-flex items-center justify-center gap-2 rounded-[5px] px-3 text-sm font-semibold no-underline transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[color:var(--app-field-focus,var(--color-accent))] focus-visible:ring-offset-2",
|
|
1047
|
-
SIZE_CLASS[size],
|
|
1048
|
-
VARIANT_CLASS[variant],
|
|
1049
|
-
inactive && "cursor-not-allowed opacity-50",
|
|
1050
|
-
className
|
|
1051
|
-
),
|
|
1052
|
-
onClick: inactive ? (event) => {
|
|
1053
|
-
event.preventDefault();
|
|
1054
|
-
event.stopPropagation();
|
|
1055
|
-
} : onClick,
|
|
1056
|
-
...linkProps,
|
|
1057
|
-
...props,
|
|
1058
|
-
children: [
|
|
1059
|
-
loading ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
1060
|
-
"span",
|
|
1061
|
-
{
|
|
1062
|
-
"aria-hidden": "true",
|
|
1063
|
-
"data-shell-button-spinner": "",
|
|
1064
|
-
className: "inline-block h-4 w-4 animate-spin motion-reduce:animate-none rounded-full border-2 border-current border-t-transparent"
|
|
1065
|
-
}
|
|
1066
|
-
) : null,
|
|
1067
|
-
children
|
|
1068
|
-
]
|
|
1069
|
-
}
|
|
1070
|
-
);
|
|
1071
|
-
});
|
|
1072
|
-
var Button_default = Button;
|
|
1073
|
-
function FormField({
|
|
1074
|
-
id,
|
|
1075
|
-
label,
|
|
1076
|
-
helperText,
|
|
1077
|
-
error,
|
|
1078
|
-
required,
|
|
1079
|
-
className,
|
|
1080
|
-
children
|
|
1081
|
-
}) {
|
|
1082
|
-
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: clsx__default.default("flex w-full flex-col gap-1", className), children: [
|
|
1083
|
-
label ? /* @__PURE__ */ jsxRuntime.jsxs("label", { htmlFor: id, className: "text-sm font-semibold text-[color:var(--color-text)]", children: [
|
|
1084
|
-
label,
|
|
1085
|
-
required ? /* @__PURE__ */ jsxRuntime.jsx("span", { "aria-hidden": "true", children: " *" }) : null
|
|
1086
|
-
] }) : null,
|
|
1087
|
-
children,
|
|
1088
|
-
error ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
1089
|
-
"p",
|
|
1090
|
-
{
|
|
1091
|
-
id: `${id}-error`,
|
|
1092
|
-
role: "alert",
|
|
1093
|
-
className: "text-xs text-[color:var(--chrome-danger,var(--color-race-red))]",
|
|
1094
|
-
children: error
|
|
1095
|
-
}
|
|
1096
|
-
) : helperText ? /* @__PURE__ */ jsxRuntime.jsx("p", { id: `${id}-helper`, className: "text-xs text-[color:var(--color-text-muted)]", children: helperText }) : null
|
|
1097
|
-
] });
|
|
1098
|
-
}
|
|
1099
|
-
function describedBy(id, helperText, error, extra) {
|
|
1100
|
-
const generated = error ? `${id}-error` : helperText ? `${id}-helper` : void 0;
|
|
1101
|
-
const merged = [generated, extra].filter(Boolean).join(" ");
|
|
1102
|
-
return merged || void 0;
|
|
1103
|
-
}
|
|
1104
|
-
|
|
1105
|
-
// src/components/fieldStyles.ts
|
|
1106
|
-
var FIELD_BASE = "w-full rounded-[5px] border bg-[color:var(--app-field-bg,var(--color-white))] px-3 text-sm text-[color:var(--color-text)] placeholder:text-[color:var(--color-text-muted)] focus:outline-none focus:ring-2 disabled:cursor-not-allowed disabled:opacity-50";
|
|
1107
|
-
var FIELD_VALID = "border-[color:var(--app-field-border,var(--color-border))] hover:border-[color:var(--app-field-border-hover,var(--color-g4))] focus:border-[color:var(--app-field-focus,var(--color-accent))] focus:ring-[color:var(--app-field-focus,var(--color-accent))]";
|
|
1108
|
-
var FIELD_INVALID = "border-[color:var(--chrome-danger,var(--color-race-red))] focus:ring-[color:var(--chrome-danger,var(--color-race-red))]";
|
|
1109
|
-
var Input = react$1.forwardRef(function Input2({ label, helperText, error, invalid, className, wrapperClassName, id, required, "aria-describedby": ariaDescribedBy, ...props }, ref) {
|
|
1110
|
-
const autoId = react$1.useId();
|
|
1111
|
-
const fieldId = id ?? autoId;
|
|
1112
|
-
const isInvalid = Boolean(error) || Boolean(invalid);
|
|
1113
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
1114
|
-
FormField,
|
|
1115
|
-
{
|
|
1116
|
-
id: fieldId,
|
|
1117
|
-
label,
|
|
1118
|
-
helperText,
|
|
1119
|
-
error,
|
|
1120
|
-
required,
|
|
1121
|
-
className: wrapperClassName,
|
|
1122
|
-
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
1123
|
-
"input",
|
|
1124
|
-
{
|
|
1125
|
-
ref,
|
|
1126
|
-
id: fieldId,
|
|
1127
|
-
required,
|
|
1128
|
-
"data-shell-field": "",
|
|
1129
|
-
"aria-invalid": isInvalid || void 0,
|
|
1130
|
-
"aria-describedby": describedBy(fieldId, helperText, error, ariaDescribedBy),
|
|
1131
|
-
className: clsx__default.default(FIELD_BASE, "h-[44px]", isInvalid ? FIELD_INVALID : FIELD_VALID, className),
|
|
1132
|
-
...props
|
|
1133
|
-
}
|
|
1134
|
-
)
|
|
1135
|
-
}
|
|
1136
|
-
);
|
|
1137
|
-
});
|
|
1138
|
-
var Input_default = Input;
|
|
1139
|
-
var Select = react$1.forwardRef(function Select2({ label, helperText, error, invalid, className, wrapperClassName, id, required, children, "aria-describedby": ariaDescribedBy, ...props }, ref) {
|
|
1140
|
-
const autoId = react$1.useId();
|
|
1141
|
-
const fieldId = id ?? autoId;
|
|
1142
|
-
const isInvalid = Boolean(error) || Boolean(invalid);
|
|
1143
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
1144
|
-
FormField,
|
|
1145
|
-
{
|
|
1146
|
-
id: fieldId,
|
|
1147
|
-
label,
|
|
1148
|
-
helperText,
|
|
1149
|
-
error,
|
|
1150
|
-
required,
|
|
1151
|
-
className: wrapperClassName,
|
|
1152
|
-
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
1153
|
-
"select",
|
|
1154
|
-
{
|
|
1155
|
-
ref,
|
|
1156
|
-
id: fieldId,
|
|
1157
|
-
required,
|
|
1158
|
-
"data-shell-field": "",
|
|
1159
|
-
"aria-invalid": isInvalid || void 0,
|
|
1160
|
-
"aria-describedby": describedBy(fieldId, helperText, error, ariaDescribedBy),
|
|
1161
|
-
className: clsx__default.default(FIELD_BASE, "h-[44px]", isInvalid ? FIELD_INVALID : FIELD_VALID, className),
|
|
1162
|
-
...props,
|
|
1163
|
-
children
|
|
1164
|
-
}
|
|
1165
|
-
)
|
|
1166
|
-
}
|
|
1167
|
-
);
|
|
1168
|
-
});
|
|
1169
|
-
var Select_default = Select;
|
|
1170
|
-
var Textarea = react$1.forwardRef(function Textarea2({ label, helperText, error, invalid, className, wrapperClassName, id, required, "aria-describedby": ariaDescribedBy, ...props }, ref) {
|
|
1171
|
-
const autoId = react$1.useId();
|
|
1172
|
-
const fieldId = id ?? autoId;
|
|
1173
|
-
const isInvalid = Boolean(error) || Boolean(invalid);
|
|
1174
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
1175
|
-
FormField,
|
|
1176
|
-
{
|
|
1177
|
-
id: fieldId,
|
|
1178
|
-
label,
|
|
1179
|
-
helperText,
|
|
1180
|
-
error,
|
|
1181
|
-
required,
|
|
1182
|
-
className: wrapperClassName,
|
|
1183
|
-
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
1184
|
-
"textarea",
|
|
1185
|
-
{
|
|
1186
|
-
ref,
|
|
1187
|
-
id: fieldId,
|
|
1188
|
-
required,
|
|
1189
|
-
"data-shell-field": "",
|
|
1190
|
-
"aria-invalid": isInvalid || void 0,
|
|
1191
|
-
"aria-describedby": describedBy(fieldId, helperText, error, ariaDescribedBy),
|
|
1192
|
-
className: clsx__default.default(FIELD_BASE, "min-h-[88px] py-3", isInvalid ? FIELD_INVALID : FIELD_VALID, className),
|
|
1193
|
-
...props
|
|
1194
|
-
}
|
|
1195
|
-
)
|
|
1196
|
-
}
|
|
1197
|
-
);
|
|
1198
|
-
});
|
|
1199
|
-
var Textarea_default = Textarea;
|
|
1200
|
-
var Checkbox = react$1.forwardRef(function Checkbox2({
|
|
1201
|
-
label,
|
|
1202
|
-
description,
|
|
1203
|
-
indeterminate,
|
|
1204
|
-
invalid,
|
|
1205
|
-
className,
|
|
1206
|
-
wrapperClassName,
|
|
1207
|
-
id,
|
|
1208
|
-
disabled,
|
|
1209
|
-
"aria-describedby": ariaDescribedBy,
|
|
1210
|
-
...props
|
|
1211
|
-
}, ref) {
|
|
1212
|
-
const autoId = react$1.useId();
|
|
1213
|
-
const fieldId = id ?? autoId;
|
|
1214
|
-
const descId = description ? `${fieldId}-description` : void 0;
|
|
1215
|
-
const inner = react$1.useRef(null);
|
|
1216
|
-
const setRef = react$1.useCallback(
|
|
1217
|
-
(node) => {
|
|
1218
|
-
inner.current = node;
|
|
1219
|
-
if (typeof ref === "function") ref(node);
|
|
1220
|
-
else if (ref) ref.current = node;
|
|
1221
|
-
},
|
|
1222
|
-
[ref]
|
|
1223
|
-
);
|
|
1224
|
-
react$1.useEffect(() => {
|
|
1225
|
-
if (inner.current) inner.current.indeterminate = Boolean(indeterminate);
|
|
1226
|
-
}, [indeterminate]);
|
|
1227
|
-
const describedBy2 = [descId, ariaDescribedBy].filter(Boolean).join(" ") || void 0;
|
|
1228
|
-
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
1229
|
-
"label",
|
|
1230
|
-
{
|
|
1231
|
-
htmlFor: fieldId,
|
|
1232
|
-
"data-shell-checkbox": "",
|
|
1233
|
-
className: clsx__default.default(
|
|
1234
|
-
"flex min-h-[44px] items-start gap-3 py-[10px] text-sm text-[color:var(--app-card-fg,var(--color-text))]",
|
|
1235
|
-
disabled ? "cursor-not-allowed opacity-50" : "cursor-pointer",
|
|
1236
|
-
wrapperClassName
|
|
1237
|
-
),
|
|
1238
|
-
children: [
|
|
1239
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1240
|
-
"input",
|
|
1241
|
-
{
|
|
1242
|
-
...props,
|
|
1243
|
-
ref: setRef,
|
|
1244
|
-
id: fieldId,
|
|
1245
|
-
type: "checkbox",
|
|
1246
|
-
disabled,
|
|
1247
|
-
"data-shell-field": "",
|
|
1248
|
-
"aria-invalid": invalid || void 0,
|
|
1249
|
-
"aria-describedby": describedBy2,
|
|
1250
|
-
className: clsx__default.default(
|
|
1251
|
-
"mt-[2px] h-5 w-5 shrink-0 rounded-[5px] border focus:outline-none focus-visible:ring-2",
|
|
1252
|
-
"accent-[color:var(--color-accent-bg-safe,var(--color-accent))]",
|
|
1253
|
-
"focus-visible:ring-[color:var(--app-field-focus,var(--color-accent))]",
|
|
1254
|
-
invalid ? "border-[color:var(--chrome-danger,var(--color-race-red))] outline outline-2 outline-[color:var(--chrome-danger,var(--color-race-red))]" : "border-[color:var(--app-field-border,var(--color-border))]",
|
|
1255
|
-
disabled ? "cursor-not-allowed" : "cursor-pointer",
|
|
1256
|
-
className
|
|
1257
|
-
)
|
|
1258
|
-
}
|
|
1259
|
-
),
|
|
1260
|
-
label || description ? /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "min-w-0", children: [
|
|
1261
|
-
label ? /* @__PURE__ */ jsxRuntime.jsx("span", { className: "block font-medium", children: label }) : null,
|
|
1262
|
-
description ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
1263
|
-
"span",
|
|
1264
|
-
{
|
|
1265
|
-
id: descId,
|
|
1266
|
-
className: "block text-xs text-[color:var(--app-card-fg-muted,var(--color-text-muted))]",
|
|
1267
|
-
children: description
|
|
1268
|
-
}
|
|
1269
|
-
) : null
|
|
1270
|
-
] }) : null
|
|
1271
|
-
]
|
|
1272
|
-
}
|
|
1273
|
-
);
|
|
1274
|
-
});
|
|
1275
|
-
var Checkbox_default = Checkbox;
|
|
1276
|
-
var FileInput = react$1.forwardRef(function FileInput2({ label, helperText, error, invalid, className, wrapperClassName, id, required, "aria-describedby": ariaDescribedBy, ...props }, ref) {
|
|
1277
|
-
const autoId = react$1.useId();
|
|
1278
|
-
const fieldId = id ?? autoId;
|
|
1279
|
-
const isInvalid = Boolean(error) || Boolean(invalid);
|
|
1280
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
1281
|
-
FormField,
|
|
1282
|
-
{
|
|
1283
|
-
id: fieldId,
|
|
1284
|
-
label,
|
|
1285
|
-
helperText,
|
|
1286
|
-
error,
|
|
1287
|
-
required,
|
|
1288
|
-
className: wrapperClassName,
|
|
1289
|
-
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
1290
|
-
"input",
|
|
1291
|
-
{
|
|
1292
|
-
...props,
|
|
1293
|
-
ref,
|
|
1294
|
-
id: fieldId,
|
|
1295
|
-
type: "file",
|
|
1296
|
-
required,
|
|
1297
|
-
"data-shell-field": "",
|
|
1298
|
-
"aria-invalid": isInvalid || void 0,
|
|
1299
|
-
"aria-describedby": describedBy(fieldId, helperText, error, ariaDescribedBy),
|
|
1300
|
-
className: clsx__default.default(
|
|
1301
|
-
FIELD_BASE,
|
|
1302
|
-
"h-[44px] cursor-pointer py-[5px] file:mr-3 file:h-[32px] file:cursor-pointer file:rounded-[5px] file:border file:border-[color:var(--app-btn-secondary-border,var(--color-border))] file:bg-[color:var(--app-btn-secondary-bg,var(--color-white))] file:px-3 file:text-sm file:font-medium file:text-[color:var(--app-btn-secondary-fg,var(--color-text))]",
|
|
1303
|
-
isInvalid ? FIELD_INVALID : FIELD_VALID,
|
|
1304
|
-
className
|
|
1305
|
-
)
|
|
1306
|
-
}
|
|
1307
|
-
)
|
|
1308
|
-
}
|
|
1309
|
-
);
|
|
1310
|
-
});
|
|
1311
|
-
var FileInput_default = FileInput;
|
|
1312
958
|
function PageContainer({
|
|
1313
959
|
children,
|
|
1314
960
|
maxW = "container.xl",
|
|
@@ -1337,7 +983,7 @@ function PageContainer({
|
|
|
1337
983
|
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
1338
984
|
"div",
|
|
1339
985
|
{
|
|
1340
|
-
className:
|
|
986
|
+
className: clsx5__default.default(
|
|
1341
987
|
"mx-auto w-full",
|
|
1342
988
|
maxWClass,
|
|
1343
989
|
pxClass,
|
|
@@ -1370,7 +1016,7 @@ function BreadcrumbBarView({
|
|
|
1370
1016
|
{
|
|
1371
1017
|
className: "ml-0 border-b border-gray-200 px-4 py-3 md:ml-60",
|
|
1372
1018
|
style: { backgroundColor: "var(--app-tab-header-bg, #888888)" },
|
|
1373
|
-
children: /* @__PURE__ */ jsxRuntime.jsx("div", { className:
|
|
1019
|
+
children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: clsx5__default.default("mx-auto w-full px-0", maxWClass), children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex w-full items-center justify-between", children: [
|
|
1374
1020
|
breadcrumbs && breadcrumbs.length > 0 && /* @__PURE__ */ jsxRuntime.jsx("nav", { "aria-label": "Breadcrumb", children: /* @__PURE__ */ jsxRuntime.jsx("ol", { className: "flex items-center gap-2 text-sm text-slate-100", children: breadcrumbs.map((item, index) => /* @__PURE__ */ jsxRuntime.jsxs("li", { className: "flex items-center gap-2", children: [
|
|
1375
1021
|
index > 0 ? /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-gray-400", children: ">" }) : null,
|
|
1376
1022
|
item.href ? renderCrumbLink(item.href, item.label, "text-slate-100 hover:underline") : /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-slate-100", children: item.label })
|
|
@@ -1537,7 +1183,7 @@ function HeaderTabBar({
|
|
|
1537
1183
|
{
|
|
1538
1184
|
role: "tablist",
|
|
1539
1185
|
"aria-label": ariaLabel,
|
|
1540
|
-
className:
|
|
1186
|
+
className: clsx5__default.default(
|
|
1541
1187
|
// Header-wide tab strip: background + bottom border only (no outer box).
|
|
1542
1188
|
// Left-aligned and fluid: the container spans the full content width,
|
|
1543
1189
|
// the tabs keep their natural width packed from the left (Global-Rules
|
|
@@ -1561,7 +1207,7 @@ function HeaderTabBar({
|
|
|
1561
1207
|
"aria-label": item.label,
|
|
1562
1208
|
disabled: isDisabled,
|
|
1563
1209
|
onClick: () => onChange(item.id),
|
|
1564
|
-
className:
|
|
1210
|
+
className: clsx5__default.default(
|
|
1565
1211
|
// `group/tbtip relative` powers the shared <TopBarTooltip>.
|
|
1566
1212
|
// Natural width (no flex-1 stretch); 40px square hit area for the
|
|
1567
1213
|
// icon-only tab so the strip stays tappable.
|
|
@@ -2123,17 +1769,12 @@ function SpeculationRulesScript({ items }) {
|
|
|
2123
1769
|
exports.BrandIcon = BrandIcon;
|
|
2124
1770
|
exports.BrandLogo = BrandLogo;
|
|
2125
1771
|
exports.BreadcrumbBar = BreadcrumbBar;
|
|
2126
|
-
exports.Button = Button_default;
|
|
2127
1772
|
exports.Card = Card;
|
|
2128
|
-
exports.Checkbox = Checkbox_default;
|
|
2129
|
-
exports.FileInput = FileInput_default;
|
|
2130
1773
|
exports.FormColumn = FormColumn;
|
|
2131
1774
|
exports.GlobalUiIdProvider = GlobalUiIdProvider;
|
|
2132
1775
|
exports.HeaderTabBar = HeaderTabBar;
|
|
2133
|
-
exports.Input = Input_default;
|
|
2134
1776
|
exports.PageContainer = PageContainer;
|
|
2135
1777
|
exports.PageHeader = PageHeader;
|
|
2136
|
-
exports.Select = Select_default;
|
|
2137
1778
|
exports.ShellChromeContext = ShellChromeContext;
|
|
2138
1779
|
exports.ShellFooterContext = ShellFooterContext;
|
|
2139
1780
|
exports.ShellLinkedAccountsContext = ShellLinkedAccountsContext;
|
|
@@ -2145,7 +1786,6 @@ exports.ShellProvider = ShellProvider;
|
|
|
2145
1786
|
exports.ShellRoleContext = ShellRoleContext;
|
|
2146
1787
|
exports.ShellSupportProviderContext = ShellSupportProviderContext;
|
|
2147
1788
|
exports.SpeculationRulesScript = SpeculationRulesScript;
|
|
2148
|
-
exports.Textarea = Textarea_default;
|
|
2149
1789
|
exports.buildNavSpeculationRules = buildNavSpeculationRules;
|
|
2150
1790
|
exports.buildSpeculationRules = buildSpeculationRules;
|
|
2151
1791
|
exports.collectSiblingAppUrls = collectSiblingAppUrls;
|