sellmate-design-system-react 0.1.9 → 0.1.10
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/components/SBarcodeInput/SBarcodeInput.cjs +1 -1
- package/dist/components/SBarcodeInput/SBarcodeInput.cjs.map +1 -1
- package/dist/components/SBarcodeInput/SBarcodeInput.js +1 -1
- package/dist/components/SBarcodeInput/SBarcodeInput.js.map +1 -1
- package/dist/components/SChipInput/SChipInput.cjs +1 -1
- package/dist/components/SChipInput/SChipInput.cjs.map +1 -1
- package/dist/components/SChipInput/SChipInput.js +1 -1
- package/dist/components/SChipInput/SChipInput.js.map +1 -1
- package/dist/components/SCircleProgress/SCircleProgress.cjs +69 -50
- package/dist/components/SCircleProgress/SCircleProgress.cjs.map +1 -1
- package/dist/components/SCircleProgress/SCircleProgress.d.ts +2 -0
- package/dist/components/SCircleProgress/SCircleProgress.js +69 -50
- package/dist/components/SCircleProgress/SCircleProgress.js.map +1 -1
- package/dist/components/SDatePicker/SDatePicker.cjs +1 -1
- package/dist/components/SDatePicker/SDatePicker.cjs.map +1 -1
- package/dist/components/SDatePicker/SDatePicker.js +1 -1
- package/dist/components/SDatePicker/SDatePicker.js.map +1 -1
- package/dist/components/SDateRangePicker/SDateRangePicker.cjs +1 -1
- package/dist/components/SDateRangePicker/SDateRangePicker.cjs.map +1 -1
- package/dist/components/SDateRangePicker/SDateRangePicker.js +1 -1
- package/dist/components/SDateRangePicker/SDateRangePicker.js.map +1 -1
- package/dist/components/SField/SField.cjs +1 -1
- package/dist/components/SField/SField.cjs.map +1 -1
- package/dist/components/SField/SField.js +1 -1
- package/dist/components/SField/SField.js.map +1 -1
- package/dist/components/SFilePicker/SFilePicker.cjs +36 -17
- package/dist/components/SFilePicker/SFilePicker.cjs.map +1 -1
- package/dist/components/SFilePicker/SFilePicker.d.ts +1 -1
- package/dist/components/SFilePicker/SFilePicker.js +35 -17
- package/dist/components/SFilePicker/SFilePicker.js.map +1 -1
- package/dist/components/SInput/SInput.cjs +1 -1
- package/dist/components/SInput/SInput.cjs.map +1 -1
- package/dist/components/SInput/SInput.js +1 -1
- package/dist/components/SInput/SInput.js.map +1 -1
- package/dist/components/SKeyValueTable/SKeyValueTable.cjs +43 -22
- package/dist/components/SKeyValueTable/SKeyValueTable.cjs.map +1 -1
- package/dist/components/SKeyValueTable/SKeyValueTable.js +43 -22
- package/dist/components/SKeyValueTable/SKeyValueTable.js.map +1 -1
- package/dist/components/SLoadingContainer/SLoadingContainer.cjs +69 -50
- package/dist/components/SLoadingContainer/SLoadingContainer.cjs.map +1 -1
- package/dist/components/SLoadingContainer/SLoadingContainer.js +69 -50
- package/dist/components/SLoadingContainer/SLoadingContainer.js.map +1 -1
- package/dist/components/SLoadingContainer/loading.cjs +69 -50
- package/dist/components/SLoadingContainer/loading.cjs.map +1 -1
- package/dist/components/SLoadingContainer/loading.js +69 -50
- package/dist/components/SLoadingContainer/loading.js.map +1 -1
- package/dist/components/SLoadingModal/SLoadingModal.cjs +72 -50
- package/dist/components/SLoadingModal/SLoadingModal.cjs.map +1 -1
- package/dist/components/SLoadingModal/SLoadingModal.d.ts +3 -1
- package/dist/components/SLoadingModal/SLoadingModal.js +72 -50
- package/dist/components/SLoadingModal/SLoadingModal.js.map +1 -1
- package/dist/components/SNumberInput/SNumberInput.cjs +1 -1
- package/dist/components/SNumberInput/SNumberInput.cjs.map +1 -1
- package/dist/components/SNumberInput/SNumberInput.js +1 -1
- package/dist/components/SNumberInput/SNumberInput.js.map +1 -1
- package/dist/components/SRadio/SRadioGroup.cjs +1 -1
- package/dist/components/SRadio/SRadioGroup.cjs.map +1 -1
- package/dist/components/SRadio/SRadioGroup.js +1 -1
- package/dist/components/SRadio/SRadioGroup.js.map +1 -1
- package/dist/components/SSelect/SSelect.cjs +8 -4
- package/dist/components/SSelect/SSelect.cjs.map +1 -1
- package/dist/components/SSelect/SSelect.js +8 -4
- package/dist/components/SSelect/SSelect.js.map +1 -1
- package/dist/components/STable/STable.cjs +82 -56
- package/dist/components/STable/STable.cjs.map +1 -1
- package/dist/components/STable/STable.js +82 -56
- package/dist/components/STable/STable.js.map +1 -1
- package/dist/components/STextarea/STextarea.cjs +1 -1
- package/dist/components/STextarea/STextarea.cjs.map +1 -1
- package/dist/components/STextarea/STextarea.js +1 -1
- package/dist/components/STextarea/STextarea.js.map +1 -1
- package/dist/components/STooltip/STooltip.cjs +1 -1
- package/dist/components/STooltip/STooltip.cjs.map +1 -1
- package/dist/components/STooltip/STooltip.js +1 -1
- package/dist/components/STooltip/STooltip.js.map +1 -1
- package/dist/index.cjs +120 -74
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +120 -74
- package/dist/index.js.map +1 -1
- package/dist/styles.css +62 -21
- package/dist/theme.css +45 -21
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -3300,12 +3300,35 @@ var COLOR_MAP = {
|
|
|
3300
3300
|
};
|
|
3301
3301
|
var clamp2 = (v) => Number.isFinite(v) ? Math.max(0, Math.min(100, v)) : 0;
|
|
3302
3302
|
var SCircleProgress = forwardRef(
|
|
3303
|
-
function SCircleProgress2({
|
|
3303
|
+
function SCircleProgress2({
|
|
3304
|
+
value = 0,
|
|
3305
|
+
type = "primary",
|
|
3306
|
+
indeterminate = false,
|
|
3307
|
+
label,
|
|
3308
|
+
innerValue = false,
|
|
3309
|
+
className,
|
|
3310
|
+
style
|
|
3311
|
+
}, ref) {
|
|
3304
3312
|
const v = clamp2(value);
|
|
3305
3313
|
const colors = COLOR_MAP[type];
|
|
3306
3314
|
const c = VIEWBOX / 2;
|
|
3307
3315
|
const percentColor = v === 0 ? "var(--sys-color-fg-tertiary, #888888)" : colors.arc;
|
|
3308
3316
|
const filled = v / 100 * CIRCUMFERENCE;
|
|
3317
|
+
const showPercent = !indeterminate;
|
|
3318
|
+
const percentNode = /* @__PURE__ */ jsxs(
|
|
3319
|
+
"span",
|
|
3320
|
+
{
|
|
3321
|
+
className: cn(
|
|
3322
|
+
"text-center text-[16px] font-bold leading-[26px]",
|
|
3323
|
+
innerValue && "absolute left-1/2 top-1/2 -translate-x-1/2 -translate-y-1/2"
|
|
3324
|
+
),
|
|
3325
|
+
style: { color: percentColor },
|
|
3326
|
+
children: [
|
|
3327
|
+
Math.round(v),
|
|
3328
|
+
"%"
|
|
3329
|
+
]
|
|
3330
|
+
}
|
|
3331
|
+
);
|
|
3309
3332
|
return /* @__PURE__ */ jsxs(
|
|
3310
3333
|
"div",
|
|
3311
3334
|
{
|
|
@@ -3316,57 +3339,53 @@ var SCircleProgress = forwardRef(
|
|
|
3316
3339
|
),
|
|
3317
3340
|
style,
|
|
3318
3341
|
children: [
|
|
3319
|
-
/* @__PURE__ */ jsxs(
|
|
3320
|
-
|
|
3321
|
-
|
|
3322
|
-
|
|
3323
|
-
|
|
3324
|
-
|
|
3325
|
-
|
|
3326
|
-
|
|
3327
|
-
"circle"
|
|
3328
|
-
{
|
|
3329
|
-
cx: c,
|
|
3330
|
-
cy: c,
|
|
3331
|
-
r: RADIUS,
|
|
3332
|
-
fill: "none",
|
|
3333
|
-
strokeWidth: STROKE,
|
|
3334
|
-
style: { stroke: colors.track }
|
|
3335
|
-
}
|
|
3342
|
+
/* @__PURE__ */ jsxs("div", { className: cn(innerValue && "relative"), children: [
|
|
3343
|
+
/* @__PURE__ */ jsxs(
|
|
3344
|
+
"svg",
|
|
3345
|
+
{
|
|
3346
|
+
viewBox: `0 0 ${VIEWBOX} ${VIEWBOX}`,
|
|
3347
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
3348
|
+
className: cn(
|
|
3349
|
+
"h-[80px] w-[80px]",
|
|
3350
|
+
indeterminate && "origin-center animate-circle-spin"
|
|
3336
3351
|
),
|
|
3337
|
-
|
|
3338
|
-
|
|
3339
|
-
|
|
3340
|
-
|
|
3341
|
-
|
|
3342
|
-
|
|
3343
|
-
|
|
3344
|
-
|
|
3345
|
-
|
|
3346
|
-
|
|
3347
|
-
"origin-center",
|
|
3348
|
-
indeterminate ? "animate-circle-arc" : "-rotate-90 transition-[stroke-dasharray] duration-[400ms] ease-linear"
|
|
3349
|
-
),
|
|
3350
|
-
style: {
|
|
3351
|
-
stroke: colors.arc,
|
|
3352
|
-
...indeterminate ? {} : { strokeDasharray: `${filled} ${CIRCUMFERENCE}`, strokeDashoffset: 0 }
|
|
3352
|
+
children: [
|
|
3353
|
+
/* @__PURE__ */ jsx(
|
|
3354
|
+
"circle",
|
|
3355
|
+
{
|
|
3356
|
+
cx: c,
|
|
3357
|
+
cy: c,
|
|
3358
|
+
r: RADIUS,
|
|
3359
|
+
fill: "none",
|
|
3360
|
+
strokeWidth: STROKE,
|
|
3361
|
+
style: { stroke: colors.track }
|
|
3353
3362
|
}
|
|
3354
|
-
|
|
3355
|
-
|
|
3356
|
-
|
|
3357
|
-
|
|
3358
|
-
|
|
3359
|
-
|
|
3360
|
-
|
|
3361
|
-
|
|
3362
|
-
|
|
3363
|
-
|
|
3364
|
-
|
|
3365
|
-
|
|
3366
|
-
|
|
3367
|
-
|
|
3368
|
-
|
|
3369
|
-
|
|
3363
|
+
),
|
|
3364
|
+
/* @__PURE__ */ jsx(
|
|
3365
|
+
"circle",
|
|
3366
|
+
{
|
|
3367
|
+
cx: c,
|
|
3368
|
+
cy: c,
|
|
3369
|
+
r: RADIUS,
|
|
3370
|
+
fill: "none",
|
|
3371
|
+
strokeWidth: STROKE,
|
|
3372
|
+
strokeLinecap: "round",
|
|
3373
|
+
className: cn(
|
|
3374
|
+
"origin-center",
|
|
3375
|
+
indeterminate ? "animate-circle-arc" : "-rotate-90 transition-[stroke-dasharray] duration-[400ms] ease-linear"
|
|
3376
|
+
),
|
|
3377
|
+
style: {
|
|
3378
|
+
stroke: colors.arc,
|
|
3379
|
+
...indeterminate ? {} : { strokeDasharray: `${filled} ${CIRCUMFERENCE}`, strokeDashoffset: 0 }
|
|
3380
|
+
}
|
|
3381
|
+
}
|
|
3382
|
+
)
|
|
3383
|
+
]
|
|
3384
|
+
}
|
|
3385
|
+
),
|
|
3386
|
+
showPercent && innerValue && percentNode
|
|
3387
|
+
] }),
|
|
3388
|
+
showPercent && !innerValue && percentNode,
|
|
3370
3389
|
label && /* @__PURE__ */ jsx("span", { className: "text-center text-[12px] font-normal leading-[20px] text-[color:var(--cmp-progress-color-label)]", children: label })
|
|
3371
3390
|
]
|
|
3372
3391
|
}
|
|
@@ -4125,7 +4144,7 @@ var STooltip = forwardRef(function STooltip2({
|
|
|
4125
4144
|
if (disabled || body == null) return /* @__PURE__ */ jsx(Fragment, { children: triggerNode });
|
|
4126
4145
|
const isHover = trigger === "hover";
|
|
4127
4146
|
const contentClass = cn(
|
|
4128
|
-
"z-50 max-w-xs rounded-[6px] px-[16px] py-[12px] text-[12px] leading-[20px]
|
|
4147
|
+
"z-50 max-w-xs rounded-[6px] px-[16px] py-[12px] text-[12px] leading-[20px]",
|
|
4129
4148
|
FLOATING_SLIDE_ANIM,
|
|
4130
4149
|
className
|
|
4131
4150
|
);
|
|
@@ -4787,6 +4806,7 @@ var DEFAULT_BUTTON_LABEL = {
|
|
|
4787
4806
|
function SLoadingModal({
|
|
4788
4807
|
open,
|
|
4789
4808
|
onOpenChange,
|
|
4809
|
+
onClose,
|
|
4790
4810
|
persistent,
|
|
4791
4811
|
state: state2 = "loading",
|
|
4792
4812
|
progress,
|
|
@@ -4805,6 +4825,8 @@ function SLoadingModal({
|
|
|
4805
4825
|
{
|
|
4806
4826
|
open,
|
|
4807
4827
|
onOpenChange,
|
|
4828
|
+
onClose,
|
|
4829
|
+
showClose: state2 === "error",
|
|
4808
4830
|
persistent,
|
|
4809
4831
|
ariaTitle: lines[0] || "\uB85C\uB529 \uC911",
|
|
4810
4832
|
width,
|
|
@@ -5614,7 +5636,7 @@ function ItemList({
|
|
|
5614
5636
|
isDepth1 ? "border-t border-solid border-[color:var(--cmp-listItem-depth1-border-color)] bg-[var(--cmp-listItem-depth1-bg-default)] font-bold" : "bg-[var(--cmp-listItem-depth2-middle-bg)] font-medium",
|
|
5615
5637
|
// 하위가 전부 비활성이면(select.config 에서 bubble-up) 어미 그룹도 비활성 처리:
|
|
5616
5638
|
// 텍스트는 회색(#888), depth1 그룹은 파란 배경 대신 회색(#EEE)으로 (depth2 는 #F6F6F6 유지)
|
|
5617
|
-
o.disabled && "text-[color:var(--cmp-listItem-content-disabled)]",
|
|
5639
|
+
o.disabled && "cursor-not-allowed text-[color:var(--cmp-listItem-content-disabled)]",
|
|
5618
5640
|
o.disabled && isDepth1 && "bg-[var(--cmp-listItem-depth1-bg-disabled)]"
|
|
5619
5641
|
),
|
|
5620
5642
|
style: { paddingLeft: padLeft },
|
|
@@ -5629,10 +5651,14 @@ function ItemList({
|
|
|
5629
5651
|
{
|
|
5630
5652
|
value: o.value,
|
|
5631
5653
|
disabled: o.disabled,
|
|
5654
|
+
accessibleWhenDisabled: true,
|
|
5632
5655
|
className: cn(
|
|
5633
5656
|
itemBase,
|
|
5634
5657
|
isSelected && !multi && "font-bold text-[color:var(--cmp-listItem-content-selected)]",
|
|
5635
|
-
|
|
5658
|
+
// Ariakit은 disabled 항목도 hover 시 active(data-active-item) 처리하므로,
|
|
5659
|
+
// 비활성 항목에는 hover 하이라이트를 적용하지 않아 회색 비활성 스타일을 유지한다.
|
|
5660
|
+
// (원본 Stencil의 `--focused...:not(--disabled)` 규칙과 동일한 의도)
|
|
5661
|
+
!o.disabled && activeClass
|
|
5636
5662
|
),
|
|
5637
5663
|
style: { paddingTop: 4, paddingBottom: 4, paddingRight: 12, paddingLeft: padLeft },
|
|
5638
5664
|
render: useSearch ? /* @__PURE__ */ jsx(Ariakit.ComboboxItem, {}) : void 0,
|
|
@@ -5645,7 +5671,7 @@ function ItemList({
|
|
|
5645
5671
|
"flex h-[16px] w-[16px] flex-shrink-0 items-center justify-center rounded-[2px] border border-solid",
|
|
5646
5672
|
o.disabled ? (
|
|
5647
5673
|
// 비활성: 회색 채움(#E1E1E1) + 회색 테두리(#CCCCCC)
|
|
5648
|
-
"border-[color:var(--cmp-checkbox-border-disabled)] bg-[var(--cmp-checkbox-bg-disabled)]"
|
|
5674
|
+
"cursor-not-allowed border-[color:var(--cmp-checkbox-border-disabled)] bg-[var(--cmp-checkbox-bg-disabled)]"
|
|
5649
5675
|
) : cn(
|
|
5650
5676
|
"group-data-[active-item]:border-[color:var(--cmp-checkbox-checked-border-inverse)]",
|
|
5651
5677
|
isSelected ? "border-[color:var(--cmp-checkbox-checked-bg-default)] bg-[var(--cmp-checkbox-checked-bg-default)] group-data-[active-item]:bg-transparent" : "border-[color:var(--cmp-checkbox-unchecked-border-default)] bg-transparent"
|
|
@@ -5947,7 +5973,8 @@ var STable = forwardRef(function STable2({
|
|
|
5947
5973
|
else onSelectedChange?.([...selected, row]);
|
|
5948
5974
|
};
|
|
5949
5975
|
const radiusClass = radius === "full" ? "rounded-none" : radius === "useTop" ? "rounded-b-[var(--cmp-table-radius)] rounded-t-none" : "rounded-[var(--cmp-table-radius)]";
|
|
5950
|
-
const cellPadY = dense ? "var(--cmp-table-body-dense
|
|
5976
|
+
const cellPadY = dense ? "var(--cmp-table-body-paddingY-dense)" : "var(--cmp-table-body-paddingY-default)";
|
|
5977
|
+
const cellPadX = dense ? "var(--cmp-table-body-paddingX-default)" : "var(--cmp-table-body-paddingX-wide)";
|
|
5951
5978
|
const rowH = dense ? "var(--cmp-table-body-dense-height)" : "var(--cmp-table-body-default-height)";
|
|
5952
5979
|
const totalColSpan = visibleCols.length + (selectable ? 1 : 0);
|
|
5953
5980
|
const stickyInfo = (i) => {
|
|
@@ -6122,13 +6149,15 @@ var STable = forwardRef(function STable2({
|
|
|
6122
6149
|
className: cn(
|
|
6123
6150
|
// 원본 .td: 컬럼 폭에 맞춰 내용 말줄임(overflow hidden + ellipsis) + 행 구분선(border-b)
|
|
6124
6151
|
// 셀 배경은 흰색으로 채워 뒤 배경이 비치지 않게 하고, hover 시 행 배경(grey_05)을 따른다.
|
|
6125
|
-
"overflow-hidden text-ellipsis whitespace-nowrap border-b border-solid border-[color:var(--cmp-table-border-color)]
|
|
6152
|
+
"overflow-hidden text-ellipsis whitespace-nowrap border-b border-solid border-[color:var(--cmp-table-border-color)] text-[12px] leading-[20px] text-[color:var(--sys-color-fg-primary)]",
|
|
6126
6153
|
rowBg,
|
|
6127
6154
|
"group-hover:bg-[var(--color-grey-05)]",
|
|
6128
6155
|
stickyShadowClass(i),
|
|
6129
6156
|
col.tdClass
|
|
6130
6157
|
),
|
|
6131
6158
|
style: {
|
|
6159
|
+
paddingLeft: cellPadX,
|
|
6160
|
+
paddingRight: cellPadX,
|
|
6132
6161
|
paddingTop: cellPadY,
|
|
6133
6162
|
paddingBottom: cellPadY,
|
|
6134
6163
|
textAlign: col.align ?? "left",
|
|
@@ -6862,7 +6891,7 @@ function SRadioGroup({
|
|
|
6862
6891
|
role: "radiogroup",
|
|
6863
6892
|
className: cn(
|
|
6864
6893
|
"inline-flex",
|
|
6865
|
-
direction === "vertical" ? "flex-col gap-[
|
|
6894
|
+
direction === "vertical" ? "flex-col gap-[var(--cmp-radio-group-gap-vertical)]" : "flex-row gap-[var(--cmp-radio-group-gap-horizontal)]",
|
|
6866
6895
|
className
|
|
6867
6896
|
),
|
|
6868
6897
|
style,
|
|
@@ -7770,7 +7799,10 @@ function SFilePicker({
|
|
|
7770
7799
|
const autoId = useId();
|
|
7771
7800
|
const resolvedName = name ?? autoId;
|
|
7772
7801
|
const inputRef = useRef(null);
|
|
7802
|
+
const contentBoxRef = useRef(null);
|
|
7773
7803
|
const [ruleError, setRuleError] = useState("");
|
|
7804
|
+
const [listOpen, setListOpen] = useState(false);
|
|
7805
|
+
const portalContainer = usePortalContainer();
|
|
7774
7806
|
const files = multiple ? Array.isArray(value) ? value : [] : value && !Array.isArray(value) ? value : null;
|
|
7775
7807
|
const hasFiles = multiple ? files.length > 0 : !!files;
|
|
7776
7808
|
const displayText = !hasFiles ? placeholder : multiple ? files.map((f) => f.name).join(", ") : files.name;
|
|
@@ -7824,10 +7856,12 @@ function SFilePicker({
|
|
|
7824
7856
|
e.stopPropagation();
|
|
7825
7857
|
if (disabled) return;
|
|
7826
7858
|
onValueChange?.(multiple ? [] : null);
|
|
7859
|
+
setListOpen(false);
|
|
7827
7860
|
};
|
|
7828
7861
|
const removeChip = (i) => {
|
|
7829
7862
|
const next = files.filter((_, idx) => idx !== i);
|
|
7830
7863
|
onValueChange?.(next);
|
|
7864
|
+
if (next.length === 0) setListOpen(false);
|
|
7831
7865
|
};
|
|
7832
7866
|
const open = () => {
|
|
7833
7867
|
if (!disabled) inputRef.current?.click();
|
|
@@ -7838,9 +7872,12 @@ function SFilePicker({
|
|
|
7838
7872
|
const iconSize = size === "md" ? 20 : 16;
|
|
7839
7873
|
const gapCls = size === "md" ? "gap-[var(--cmp-filepicker-md-gap)]" : "gap-[var(--cmp-filepicker-sm-gap)]";
|
|
7840
7874
|
const inlinePlaceholder = inline && !disabled && !hasFiles;
|
|
7841
|
-
const
|
|
7875
|
+
const showListbox = multiple && useMultipleListBox;
|
|
7876
|
+
const filesArr = multiple ? files : [];
|
|
7877
|
+
const contentInner = /* @__PURE__ */ jsxs(
|
|
7842
7878
|
"div",
|
|
7843
7879
|
{
|
|
7880
|
+
ref: contentBoxRef,
|
|
7844
7881
|
className: cn("group/filepicker flex h-full w-full items-center", gapCls),
|
|
7845
7882
|
style: { padding: inline ? 0 : `0 ${padX}` },
|
|
7846
7883
|
children: [
|
|
@@ -7895,25 +7932,34 @@ function SFilePicker({
|
|
|
7895
7932
|
]
|
|
7896
7933
|
}
|
|
7897
7934
|
),
|
|
7935
|
+
showListbox && hasFiles && !disabled && /* @__PURE__ */ jsx(
|
|
7936
|
+
Ariakit.PopoverDisclosure,
|
|
7937
|
+
{
|
|
7938
|
+
render: /* @__PURE__ */ jsx(SGhostButton, { icon: "caretDown", size: "xxs", ariaLabel: "toggle file list" }),
|
|
7939
|
+
className: cn("shrink-0 transition-transform duration-150", listOpen && "rotate-180")
|
|
7940
|
+
}
|
|
7941
|
+
),
|
|
7898
7942
|
!disabled && hasFiles && /* @__PURE__ */ jsx(SGhostButton, { icon: "close", size: "xxs", ariaLabel: "clear", onClick: clear })
|
|
7899
7943
|
]
|
|
7900
7944
|
}
|
|
7901
7945
|
);
|
|
7902
|
-
const
|
|
7903
|
-
|
|
7904
|
-
|
|
7905
|
-
|
|
7906
|
-
|
|
7907
|
-
|
|
7908
|
-
|
|
7909
|
-
|
|
7910
|
-
|
|
7911
|
-
|
|
7912
|
-
|
|
7913
|
-
|
|
7914
|
-
|
|
7915
|
-
|
|
7916
|
-
|
|
7946
|
+
const content = showListbox ? /* @__PURE__ */ jsxs(Ariakit.PopoverProvider, { open: listOpen, setOpen: setListOpen, placement: "bottom-start", children: [
|
|
7947
|
+
contentInner,
|
|
7948
|
+
/* @__PURE__ */ jsx(
|
|
7949
|
+
Ariakit.Popover,
|
|
7950
|
+
{
|
|
7951
|
+
portal: true,
|
|
7952
|
+
portalElement: portalContainer,
|
|
7953
|
+
gutter: 4,
|
|
7954
|
+
unmountOnHide: true,
|
|
7955
|
+
getAnchorRect: () => contentBoxRef.current?.getBoundingClientRect() ?? null,
|
|
7956
|
+
style: { minWidth: contentBoxRef.current?.offsetWidth },
|
|
7957
|
+
className: "z-50 box-border flex flex-col items-stretch gap-[8px] rounded-[var(--cmp-listBox-radius)] bg-[var(--cmp-listBox-bg)] p-[8px] shadow-[2px_2px_12px_2px_rgba(0,0,0,0.1)]",
|
|
7958
|
+
children: filesArr.map((f, i) => /* @__PURE__ */ jsx(SChip, { value: f.name, editable: false, onRemove: () => removeChip(i) }, i))
|
|
7959
|
+
}
|
|
7960
|
+
)
|
|
7961
|
+
] }) : contentInner;
|
|
7962
|
+
const chips = multiple && !useMultipleListBox && filesArr.length > 0 && /* @__PURE__ */ jsx("div", { className: "mt-[8px] flex flex-wrap gap-[8px]", children: filesArr.map((f, i) => /* @__PURE__ */ jsx(SChip, { value: f.name, editable: false, onRemove: () => removeChip(i) }, i)) });
|
|
7917
7963
|
return /* @__PURE__ */ jsxs("div", { className, style, children: [
|
|
7918
7964
|
/* @__PURE__ */ jsx(
|
|
7919
7965
|
SField,
|
|
@@ -7955,7 +8001,7 @@ function SKeyValueTable({
|
|
|
7955
8001
|
if (fields.length === 0) return null;
|
|
7956
8002
|
const emit2 = (name, value) => onChange?.({ name, value });
|
|
7957
8003
|
const cellHeight = dense ? "var(--cmp-table-body-dense-height)" : "var(--cmp-table-keyValue-height)";
|
|
7958
|
-
const cellPadY = dense ? "var(--cmp-table-body-dense
|
|
8004
|
+
const cellPadY = dense ? "var(--cmp-table-body-paddingY-dense)" : "var(--cmp-table-keyValue-body-paddingY)";
|
|
7959
8005
|
const renderField = (f) => {
|
|
7960
8006
|
if (f.render) return f.render;
|
|
7961
8007
|
const opt = f.options ?? {};
|