@zenkigen-inc/component-ui 1.18.5 → 1.19.1
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/index.d.mts +70 -4
- package/dist/index.d.ts +70 -4
- package/dist/index.js +1324 -860
- package/dist/index.mjs +1219 -746
- package/package.json +6 -5
package/dist/index.mjs
CHANGED
|
@@ -265,16 +265,717 @@ function Checkbox({
|
|
|
265
265
|
] });
|
|
266
266
|
}
|
|
267
267
|
|
|
268
|
+
// src/date-picker/date-picker.tsx
|
|
269
|
+
import "react-day-picker/style.css";
|
|
270
|
+
import {
|
|
271
|
+
Children,
|
|
272
|
+
cloneElement as cloneElement3,
|
|
273
|
+
isValidElement,
|
|
274
|
+
useCallback as useCallback3,
|
|
275
|
+
useEffect as useEffect3,
|
|
276
|
+
useId,
|
|
277
|
+
useMemo as useMemo2,
|
|
278
|
+
useRef as useRef3,
|
|
279
|
+
useState as useState2
|
|
280
|
+
} from "react";
|
|
281
|
+
import { DayPicker } from "react-day-picker";
|
|
282
|
+
|
|
283
|
+
// src/icon-button/icon-button.tsx
|
|
284
|
+
import { buttonColors as buttonColors2, focusVisible as focusVisible3 } from "@zenkigen-inc/component-theme";
|
|
285
|
+
import { clsx as clsx5 } from "clsx";
|
|
286
|
+
import { jsx as jsx8 } from "react/jsx-runtime";
|
|
287
|
+
function IconButton({
|
|
288
|
+
icon,
|
|
289
|
+
size = "medium",
|
|
290
|
+
variant = "outline",
|
|
291
|
+
isNoPadding = false,
|
|
292
|
+
isDisabled = false,
|
|
293
|
+
isSelected = false,
|
|
294
|
+
iconAccentColor,
|
|
295
|
+
...props
|
|
296
|
+
}) {
|
|
297
|
+
const baseClasses = clsx5(
|
|
298
|
+
"typography-label16regular flex items-center justify-center gap-1 rounded",
|
|
299
|
+
buttonColors2[variant].hover,
|
|
300
|
+
buttonColors2[variant].active,
|
|
301
|
+
buttonColors2[variant].disabled,
|
|
302
|
+
focusVisible3.normal,
|
|
303
|
+
{
|
|
304
|
+
"h-4 w-4": size === "small" && isNoPadding,
|
|
305
|
+
"h-6 w-6": size === "small" && !isNoPadding || (size === "medium" || size === "large") && isNoPadding,
|
|
306
|
+
"h-8 w-8": size === "medium" && !isNoPadding,
|
|
307
|
+
"h-10 w-10": size === "large" && !isNoPadding,
|
|
308
|
+
"inline-flex": props.isAnchor,
|
|
309
|
+
"pointer-events-none": isDisabled,
|
|
310
|
+
[buttonColors2[variant].selected]: isSelected,
|
|
311
|
+
[buttonColors2[variant].base]: !isSelected
|
|
312
|
+
}
|
|
313
|
+
);
|
|
314
|
+
const iconSize = size === "small" ? "small" : "medium";
|
|
315
|
+
const iconAccentColorProps = !isSelected && iconAccentColor ? { accentColor: iconAccentColor } : {};
|
|
316
|
+
if (props.isAnchor === true) {
|
|
317
|
+
const buttonProps = Object.fromEntries(Object.entries(props).filter(([key]) => key !== "isAnchor"));
|
|
318
|
+
return /* @__PURE__ */ jsx8("a", { className: baseClasses, ...buttonProps, children: /* @__PURE__ */ jsx8(Icon, { name: icon, size: iconSize, ...iconAccentColorProps }) });
|
|
319
|
+
} else {
|
|
320
|
+
const buttonProps = Object.fromEntries(Object.entries(props).filter(([key]) => key !== "isAnchor"));
|
|
321
|
+
return /* @__PURE__ */ jsx8("button", { type: "button", className: baseClasses, disabled: isDisabled, ...buttonProps, children: /* @__PURE__ */ jsx8(Icon, { name: icon, size: iconSize, ...iconAccentColorProps }) });
|
|
322
|
+
}
|
|
323
|
+
}
|
|
324
|
+
|
|
325
|
+
// src/popover/popover.tsx
|
|
326
|
+
import { autoUpdate, offset, useFloating, useId as useFloatingId } from "@floating-ui/react";
|
|
327
|
+
import { useEffect as useEffect2, useMemo, useRef as useRef2 } from "react";
|
|
328
|
+
|
|
329
|
+
// src/popover/popover-content.tsx
|
|
330
|
+
import { FloatingPortal, useDismiss, useInteractions, useRole } from "@floating-ui/react";
|
|
331
|
+
import * as React from "react";
|
|
332
|
+
import { forwardRef, useCallback as useCallback2, useEffect, useRef } from "react";
|
|
333
|
+
|
|
334
|
+
// src/utils/react-utils.ts
|
|
335
|
+
function composeRefs(...refs) {
|
|
336
|
+
return (node) => {
|
|
337
|
+
for (const ref of refs) {
|
|
338
|
+
if (ref == null) {
|
|
339
|
+
continue;
|
|
340
|
+
}
|
|
341
|
+
if (typeof ref === "function") {
|
|
342
|
+
ref(node);
|
|
343
|
+
} else {
|
|
344
|
+
ref.current = node;
|
|
345
|
+
}
|
|
346
|
+
}
|
|
347
|
+
};
|
|
348
|
+
}
|
|
349
|
+
function isElement(node) {
|
|
350
|
+
return node != null && typeof node === "object" && "type" in node;
|
|
351
|
+
}
|
|
352
|
+
|
|
353
|
+
// src/popover/popover-context.ts
|
|
354
|
+
import { createContext, useContext } from "react";
|
|
355
|
+
var PopoverContext = createContext(null);
|
|
356
|
+
var usePopoverContext = () => {
|
|
357
|
+
const context = useContext(PopoverContext);
|
|
358
|
+
if (context == null) {
|
|
359
|
+
throw new Error("Popover components must be used inside <Popover.Root>");
|
|
360
|
+
}
|
|
361
|
+
return context;
|
|
362
|
+
};
|
|
363
|
+
|
|
364
|
+
// src/popover/popover-content.tsx
|
|
365
|
+
import { jsx as jsx9 } from "react/jsx-runtime";
|
|
366
|
+
var PopoverContent = forwardRef(function PopoverContent2({ children }, ref) {
|
|
367
|
+
const { isOpen, triggerRef, floating, panelId, onClose } = usePopoverContext();
|
|
368
|
+
const shouldCloseOnOutsidePress = useCallback2(
|
|
369
|
+
(event) => {
|
|
370
|
+
const target = event.target;
|
|
371
|
+
if (!(target instanceof Element)) {
|
|
372
|
+
return true;
|
|
373
|
+
}
|
|
374
|
+
const floatingElement = floating.refs.floating.current;
|
|
375
|
+
const closestOverlay = target.closest(".z-overlay, .z-dropdown");
|
|
376
|
+
if (closestOverlay !== null && floatingElement instanceof Element) {
|
|
377
|
+
const isInsideOwnFloating = floatingElement.contains(closestOverlay);
|
|
378
|
+
return isInsideOwnFloating;
|
|
379
|
+
}
|
|
380
|
+
return true;
|
|
381
|
+
},
|
|
382
|
+
[floating.refs.floating]
|
|
383
|
+
);
|
|
384
|
+
const dismiss = useDismiss(floating.context, {
|
|
385
|
+
outsidePressEvent: "pointerdown",
|
|
386
|
+
outsidePress: shouldCloseOnOutsidePress,
|
|
387
|
+
escapeKey: false
|
|
388
|
+
});
|
|
389
|
+
const interactions = useInteractions([dismiss, useRole(floating.context, { role: "dialog" })]);
|
|
390
|
+
useEffect(() => {
|
|
391
|
+
if (isOpen) {
|
|
392
|
+
const element = floating.refs.floating.current;
|
|
393
|
+
element?.focus?.({ preventScroll: true });
|
|
394
|
+
}
|
|
395
|
+
}, [isOpen, floating.refs.floating]);
|
|
396
|
+
const prevIsOpenRef = useRef(isOpen);
|
|
397
|
+
useEffect(() => {
|
|
398
|
+
const hasPreviouslyBeenOpen = prevIsOpenRef.current;
|
|
399
|
+
prevIsOpenRef.current = isOpen;
|
|
400
|
+
if (hasPreviouslyBeenOpen && !isOpen) {
|
|
401
|
+
triggerRef.current?.focus({ preventScroll: true });
|
|
402
|
+
}
|
|
403
|
+
}, [isOpen, triggerRef]);
|
|
404
|
+
const handleKeyDown = useCallback2(
|
|
405
|
+
(event) => {
|
|
406
|
+
if (event.key === "Escape") {
|
|
407
|
+
event.stopPropagation();
|
|
408
|
+
if (onClose != null) {
|
|
409
|
+
onClose({ reason: "escape-key-down" });
|
|
410
|
+
}
|
|
411
|
+
}
|
|
412
|
+
},
|
|
413
|
+
[onClose]
|
|
414
|
+
);
|
|
415
|
+
let wrappedChildren = children;
|
|
416
|
+
if (isElement(children)) {
|
|
417
|
+
const childProps = children.props;
|
|
418
|
+
wrappedChildren = React.cloneElement(children, {
|
|
419
|
+
...childProps,
|
|
420
|
+
...childProps.id == null && { id: panelId },
|
|
421
|
+
...childProps.role == null && { role: "dialog" }
|
|
422
|
+
});
|
|
423
|
+
}
|
|
424
|
+
return /* @__PURE__ */ jsx9(FloatingPortal, { children: isOpen ? /* @__PURE__ */ jsx9(
|
|
425
|
+
"div",
|
|
426
|
+
{
|
|
427
|
+
...interactions.getFloatingProps({
|
|
428
|
+
ref: composeRefs(floating.refs.setFloating, ref),
|
|
429
|
+
tabIndex: -1,
|
|
430
|
+
onKeyDown: handleKeyDown,
|
|
431
|
+
style: {
|
|
432
|
+
position: floating.strategy,
|
|
433
|
+
top: floating.y ?? 0,
|
|
434
|
+
left: floating.x ?? 0,
|
|
435
|
+
outline: "0"
|
|
436
|
+
}
|
|
437
|
+
}),
|
|
438
|
+
children: wrappedChildren
|
|
439
|
+
}
|
|
440
|
+
) : null });
|
|
441
|
+
});
|
|
442
|
+
|
|
443
|
+
// src/popover/popover-trigger.tsx
|
|
444
|
+
import * as React2 from "react";
|
|
445
|
+
import { forwardRef as forwardRef2 } from "react";
|
|
446
|
+
var PopoverTrigger = forwardRef2(function PopoverTrigger2({ children }, ref) {
|
|
447
|
+
const { isOpen, floating, triggerRef, anchorRef, panelId } = usePopoverContext();
|
|
448
|
+
if (!isElement(children)) {
|
|
449
|
+
return null;
|
|
450
|
+
}
|
|
451
|
+
const handleTriggerRef = (node) => {
|
|
452
|
+
triggerRef.current = node;
|
|
453
|
+
if (anchorRef == null) {
|
|
454
|
+
floating.refs.setReference(node);
|
|
455
|
+
}
|
|
456
|
+
if (typeof ref === "function") {
|
|
457
|
+
ref(node);
|
|
458
|
+
} else if (ref != null) {
|
|
459
|
+
ref.current = node;
|
|
460
|
+
}
|
|
461
|
+
};
|
|
462
|
+
const childProps = children.props;
|
|
463
|
+
const childRef = childProps.ref;
|
|
464
|
+
return React2.cloneElement(children, {
|
|
465
|
+
...childProps,
|
|
466
|
+
ref: composeRefs(childRef, handleTriggerRef),
|
|
467
|
+
"aria-haspopup": "dialog",
|
|
468
|
+
"aria-expanded": isOpen,
|
|
469
|
+
"aria-controls": panelId
|
|
470
|
+
});
|
|
471
|
+
});
|
|
472
|
+
|
|
473
|
+
// src/popover/popover.tsx
|
|
474
|
+
import { jsx as jsx10 } from "react/jsx-runtime";
|
|
475
|
+
function Popover({
|
|
476
|
+
isOpen,
|
|
477
|
+
children,
|
|
478
|
+
placement = "top",
|
|
479
|
+
offset: offsetValue = 8,
|
|
480
|
+
onClose,
|
|
481
|
+
anchorRef
|
|
482
|
+
}) {
|
|
483
|
+
const triggerRef = useRef2(null);
|
|
484
|
+
const floating = useFloating({
|
|
485
|
+
open: isOpen,
|
|
486
|
+
onOpenChange: (open) => {
|
|
487
|
+
if (!open && onClose != null) {
|
|
488
|
+
onClose({ reason: "outside-click" });
|
|
489
|
+
}
|
|
490
|
+
},
|
|
491
|
+
placement,
|
|
492
|
+
middleware: [offset(offsetValue)],
|
|
493
|
+
whileElementsMounted: autoUpdate,
|
|
494
|
+
strategy: "fixed"
|
|
495
|
+
});
|
|
496
|
+
useEffect2(() => {
|
|
497
|
+
if (anchorRef?.current) {
|
|
498
|
+
floating.refs.setReference(anchorRef.current);
|
|
499
|
+
}
|
|
500
|
+
}, [anchorRef, floating.refs]);
|
|
501
|
+
const contentId = useFloatingId() ?? "";
|
|
502
|
+
const panelId = `${contentId}-panel`;
|
|
503
|
+
const contextValue = useMemo(
|
|
504
|
+
() => ({
|
|
505
|
+
isOpen,
|
|
506
|
+
triggerRef,
|
|
507
|
+
anchorRef,
|
|
508
|
+
floating,
|
|
509
|
+
contentId,
|
|
510
|
+
panelId,
|
|
511
|
+
onClose
|
|
512
|
+
}),
|
|
513
|
+
[isOpen, triggerRef, anchorRef, floating, contentId, panelId, onClose]
|
|
514
|
+
);
|
|
515
|
+
return /* @__PURE__ */ jsx10(PopoverContext.Provider, { value: contextValue, children });
|
|
516
|
+
}
|
|
517
|
+
Popover.Trigger = PopoverTrigger;
|
|
518
|
+
Popover.Content = PopoverContent;
|
|
519
|
+
|
|
520
|
+
// src/date-picker/date-picker-context.tsx
|
|
521
|
+
import { createContext as createContext2, useContext as useContext2 } from "react";
|
|
522
|
+
var DatePickerCompoundContext = createContext2(null);
|
|
523
|
+
var useDatePickerCompoundContext = (componentName) => {
|
|
524
|
+
const context = useContext2(DatePickerCompoundContext);
|
|
525
|
+
if (context == null) {
|
|
526
|
+
throw new Error(`${componentName} \u3092\u4F7F\u7528\u3059\u308B\u306B\u306F DatePicker \u306E\u5B50\u8981\u7D20\u3068\u3057\u3066\u914D\u7F6E\u3059\u308B\u5FC5\u8981\u304C\u3042\u308B\u3002`);
|
|
527
|
+
}
|
|
528
|
+
return context;
|
|
529
|
+
};
|
|
530
|
+
|
|
531
|
+
// src/date-picker/date-picker-day-button.tsx
|
|
532
|
+
import { focusVisible as focusVisible4 } from "@zenkigen-inc/component-theme";
|
|
533
|
+
import { clsx as clsx7 } from "clsx";
|
|
534
|
+
import { DayButton } from "react-day-picker";
|
|
535
|
+
|
|
536
|
+
// src/date-picker/date-picker-styles.ts
|
|
537
|
+
import { clsx as clsx6 } from "clsx";
|
|
538
|
+
import { getDefaultClassNames } from "react-day-picker";
|
|
539
|
+
var defaultDayPickerClassNames = getDefaultClassNames();
|
|
540
|
+
var DAY_PICKER_FONT_SIZE = "12px";
|
|
541
|
+
var dayPickerStyle = {
|
|
542
|
+
"--rdp-nav-height": "30px",
|
|
543
|
+
"--rdp-day-width": "30px",
|
|
544
|
+
"--rdp-day-height": "30px",
|
|
545
|
+
"--rdp-day_button-width": "28px",
|
|
546
|
+
"--rdp-day_button-height": "28px",
|
|
547
|
+
"--rdp-day_button-border": "1px solid transparent",
|
|
548
|
+
"--rdp-weekday-padding": "0px",
|
|
549
|
+
fontFamily: "Arial, 'Noto Sans JP', sans-serif",
|
|
550
|
+
fontSize: DAY_PICKER_FONT_SIZE,
|
|
551
|
+
fontWeight: 700
|
|
552
|
+
};
|
|
553
|
+
var dayPickerClassNames = {
|
|
554
|
+
month: clsx6(defaultDayPickerClassNames.month, "flex flex-col px-[7px] py-2")
|
|
555
|
+
};
|
|
556
|
+
var dayButtonBaseClass = "relative grid size-full place-items-center rounded-full !border !border-solid";
|
|
557
|
+
|
|
558
|
+
// src/date-picker/date-picker-day-button.tsx
|
|
559
|
+
import { jsx as jsx11 } from "react/jsx-runtime";
|
|
560
|
+
var CustomDayButton = ({ day, modifiers, className, style, ...buttonProps }) => {
|
|
561
|
+
const isSelected = Boolean(modifiers.selected);
|
|
562
|
+
const isOutside = Boolean(modifiers.outside);
|
|
563
|
+
const isMinMaxDisabled = Boolean(modifiers.minMaxDisabled);
|
|
564
|
+
const now = /* @__PURE__ */ new Date();
|
|
565
|
+
const isToday = day.date.getFullYear() === now.getFullYear() && day.date.getMonth() === now.getMonth() && day.date.getDate() === now.getDate();
|
|
566
|
+
const isDisabledDay = isMinMaxDisabled;
|
|
567
|
+
return /* @__PURE__ */ jsx11(
|
|
568
|
+
DayButton,
|
|
569
|
+
{
|
|
570
|
+
...buttonProps,
|
|
571
|
+
day,
|
|
572
|
+
modifiers,
|
|
573
|
+
style: { ...style, fontSize: DAY_PICKER_FONT_SIZE },
|
|
574
|
+
className: clsx7(
|
|
575
|
+
className,
|
|
576
|
+
dayButtonBaseClass,
|
|
577
|
+
// 共通: フォーカスリング(有効な日のみ)
|
|
578
|
+
// react-day-picker の rdp-day_button クラスが outline: none を設定しているため、!important で上書き
|
|
579
|
+
!isDisabledDay && focusVisible4.normalImportant,
|
|
580
|
+
// minDate/maxDate 制限日
|
|
581
|
+
isMinMaxDisabled && "!cursor-not-allowed !border-transparent !text-disabled01",
|
|
582
|
+
// 範囲外の日(前後月)
|
|
583
|
+
isOutside && !isMinMaxDisabled && "!border-transparent !text-interactive04",
|
|
584
|
+
// 通常の日
|
|
585
|
+
!isDisabledDay && !isSelected && "!border-transparent",
|
|
586
|
+
!isDisabledDay && !isToday && "!text-interactive02 hover:!bg-hoverUi",
|
|
587
|
+
// 今日
|
|
588
|
+
!isDisabledDay && isToday && !isSelected && "!border-selectedUiBorder !bg-interactive01 !text-textOnColor",
|
|
589
|
+
// 選択された日
|
|
590
|
+
isSelected && "!border-selectedUiBorder !bg-uiBackgroundBlue"
|
|
591
|
+
)
|
|
592
|
+
}
|
|
593
|
+
);
|
|
594
|
+
};
|
|
595
|
+
|
|
596
|
+
// src/date-picker/date-picker-error-message.tsx
|
|
597
|
+
import { clsx as clsx8 } from "clsx";
|
|
598
|
+
import { forwardRef as forwardRef3 } from "react";
|
|
599
|
+
import { jsx as jsx12 } from "react/jsx-runtime";
|
|
600
|
+
var DatePickerErrorMessage = forwardRef3(
|
|
601
|
+
({ "aria-live": ariaLive = "assertive", ...props }, ref) => {
|
|
602
|
+
const { size, isError } = useDatePickerCompoundContext("DatePicker.ErrorMessage");
|
|
603
|
+
const typographyClass = size === "large" ? "typography-label12regular" : "typography-label11regular";
|
|
604
|
+
if (isError !== true) {
|
|
605
|
+
return null;
|
|
606
|
+
}
|
|
607
|
+
const errorMessageClassName = clsx8(typographyClass, "text-supportError");
|
|
608
|
+
return /* @__PURE__ */ jsx12("div", { ref, className: errorMessageClassName, "aria-live": ariaLive, ...props });
|
|
609
|
+
}
|
|
610
|
+
);
|
|
611
|
+
DatePickerErrorMessage.displayName = "DatePicker.ErrorMessage";
|
|
612
|
+
|
|
613
|
+
// src/date-picker/date-picker-month-caption.tsx
|
|
614
|
+
import { clsx as clsx9 } from "clsx";
|
|
615
|
+
import { useDayPicker } from "react-day-picker";
|
|
616
|
+
|
|
617
|
+
// src/date-picker/date-picker-utils.ts
|
|
618
|
+
var localDateFormatter = new Intl.DateTimeFormat("en-CA", {
|
|
619
|
+
year: "numeric",
|
|
620
|
+
month: "2-digit",
|
|
621
|
+
day: "2-digit"
|
|
622
|
+
});
|
|
623
|
+
var timeZoneFormatters = {
|
|
624
|
+
UTC: new Intl.DateTimeFormat("en-CA", {
|
|
625
|
+
timeZone: "UTC",
|
|
626
|
+
year: "numeric",
|
|
627
|
+
month: "2-digit",
|
|
628
|
+
day: "2-digit"
|
|
629
|
+
}),
|
|
630
|
+
"Asia/Tokyo": new Intl.DateTimeFormat("en-CA", {
|
|
631
|
+
timeZone: "Asia/Tokyo",
|
|
632
|
+
year: "numeric",
|
|
633
|
+
month: "2-digit",
|
|
634
|
+
day: "2-digit"
|
|
635
|
+
})
|
|
636
|
+
};
|
|
637
|
+
var toIsoOffset = (timeZone) => timeZone === "UTC" ? "Z" : "+09:00";
|
|
638
|
+
var formatDateKey = (date, timeZone) => {
|
|
639
|
+
const parts = timeZoneFormatters[timeZone].formatToParts(date);
|
|
640
|
+
const year = parts.find((p) => p.type === "year")?.value;
|
|
641
|
+
const month = parts.find((p) => p.type === "month")?.value;
|
|
642
|
+
const day = parts.find((p) => p.type === "day")?.value;
|
|
643
|
+
return `${year}-${month}-${day}`;
|
|
644
|
+
};
|
|
645
|
+
var formatLocalDateKey = (date = /* @__PURE__ */ new Date()) => {
|
|
646
|
+
return localDateFormatter.format(date);
|
|
647
|
+
};
|
|
648
|
+
var createDateFromKey = (dateKey, timeZone) => {
|
|
649
|
+
return /* @__PURE__ */ new Date(`${dateKey}T00:00:00${toIsoOffset(timeZone)}`);
|
|
650
|
+
};
|
|
651
|
+
var createLocalDateFromKey = (dateKey) => {
|
|
652
|
+
const parts = dateKey.split("-");
|
|
653
|
+
const year = parts[0];
|
|
654
|
+
const month = parts[1];
|
|
655
|
+
const day = parts[2];
|
|
656
|
+
if (year == null || month == null || day == null) {
|
|
657
|
+
throw new Error(`Invalid dateKey format: "${dateKey}". Expected "YYYY-MM-DD".`);
|
|
658
|
+
}
|
|
659
|
+
return new Date(Number(year), Number(month) - 1, Number(day));
|
|
660
|
+
};
|
|
661
|
+
var getMonthStartDate = (date, timeZone) => {
|
|
662
|
+
const parts = formatDateKey(date, timeZone).split("-");
|
|
663
|
+
const year = parts[0];
|
|
664
|
+
const month = parts[1];
|
|
665
|
+
if (year == null || month == null) {
|
|
666
|
+
throw new Error("Invalid date format from formatDateKey.");
|
|
667
|
+
}
|
|
668
|
+
return new Date(Number(year), Number(month) - 1, 1);
|
|
669
|
+
};
|
|
670
|
+
var formatDisplayDate = (date, timeZone) => {
|
|
671
|
+
const [year, month, day] = formatDateKey(date, timeZone).split("-");
|
|
672
|
+
return `${year}\u5E74${month}\u6708${day}\u65E5`;
|
|
673
|
+
};
|
|
674
|
+
var formatMonthLabel = (date) => {
|
|
675
|
+
const [year, month] = formatLocalDateKey(date).split("-");
|
|
676
|
+
return `${year}\u5E74${month}\u6708`;
|
|
677
|
+
};
|
|
678
|
+
|
|
679
|
+
// src/date-picker/date-picker-month-caption.tsx
|
|
680
|
+
import { jsx as jsx13, jsxs as jsxs3 } from "react/jsx-runtime";
|
|
681
|
+
var CustomMonthCaption = ({ calendarMonth, className, displayIndex, style, ...props }) => {
|
|
682
|
+
void displayIndex;
|
|
683
|
+
const { goToMonth, nextMonth, previousMonth } = useDayPicker();
|
|
684
|
+
const captionMonth = calendarMonth.date;
|
|
685
|
+
return /* @__PURE__ */ jsxs3(
|
|
686
|
+
"div",
|
|
687
|
+
{
|
|
688
|
+
className: clsx9("flex items-center justify-between px-1 pb-0.5", className),
|
|
689
|
+
style: { ...style, fontSize: "inherit", fontWeight: "inherit" },
|
|
690
|
+
...props,
|
|
691
|
+
children: [
|
|
692
|
+
/* @__PURE__ */ jsx13(
|
|
693
|
+
IconButton,
|
|
694
|
+
{
|
|
695
|
+
icon: "angle-left",
|
|
696
|
+
size: "small",
|
|
697
|
+
variant: "text",
|
|
698
|
+
isDisabled: !previousMonth,
|
|
699
|
+
"aria-label": "\u524D\u306E\u6708",
|
|
700
|
+
onClick: () => previousMonth && goToMonth(previousMonth)
|
|
701
|
+
}
|
|
702
|
+
),
|
|
703
|
+
/* @__PURE__ */ jsx13("span", { className: "typography-label12bold text-text02", children: formatMonthLabel(captionMonth) }),
|
|
704
|
+
/* @__PURE__ */ jsx13(
|
|
705
|
+
IconButton,
|
|
706
|
+
{
|
|
707
|
+
icon: "angle-right",
|
|
708
|
+
size: "small",
|
|
709
|
+
variant: "text",
|
|
710
|
+
isDisabled: !nextMonth,
|
|
711
|
+
"aria-label": "\u6B21\u306E\u6708",
|
|
712
|
+
onClick: () => nextMonth && goToMonth(nextMonth)
|
|
713
|
+
}
|
|
714
|
+
)
|
|
715
|
+
]
|
|
716
|
+
}
|
|
717
|
+
);
|
|
718
|
+
};
|
|
719
|
+
|
|
720
|
+
// src/date-picker/date-picker-weekday.tsx
|
|
721
|
+
import { clsx as clsx10 } from "clsx";
|
|
722
|
+
import { jsx as jsx14 } from "react/jsx-runtime";
|
|
723
|
+
var CustomWeekday = ({ className, children, style, ...props }) => {
|
|
724
|
+
return /* @__PURE__ */ jsx14(
|
|
725
|
+
"th",
|
|
726
|
+
{
|
|
727
|
+
...props,
|
|
728
|
+
className: clsx10(className, "m-0 size-7 p-0 text-center align-middle text-text02"),
|
|
729
|
+
style: { ...style, fontSize: "inherit", fontWeight: "bold" },
|
|
730
|
+
children
|
|
731
|
+
}
|
|
732
|
+
);
|
|
733
|
+
};
|
|
734
|
+
|
|
735
|
+
// src/date-picker/date-picker.tsx
|
|
736
|
+
import { jsx as jsx15, jsxs as jsxs4 } from "react/jsx-runtime";
|
|
737
|
+
var DatePicker = ({
|
|
738
|
+
value,
|
|
739
|
+
onChange,
|
|
740
|
+
isDisabled = false,
|
|
741
|
+
isError = false,
|
|
742
|
+
minDate,
|
|
743
|
+
maxDate,
|
|
744
|
+
placeholder = "\u65E5\u4ED8\u3092\u9078\u629E",
|
|
745
|
+
size = "medium",
|
|
746
|
+
timeZone = "Asia/Tokyo",
|
|
747
|
+
children,
|
|
748
|
+
onClick,
|
|
749
|
+
type,
|
|
750
|
+
...restProps
|
|
751
|
+
}) => {
|
|
752
|
+
const autoGeneratedId = useId();
|
|
753
|
+
const describedByBaseId = restProps.id ?? autoGeneratedId;
|
|
754
|
+
const [isOpen, setIsOpen] = useState2(false);
|
|
755
|
+
const [displayMonth, setDisplayMonth] = useState2(() => {
|
|
756
|
+
if (value == null) {
|
|
757
|
+
const todayKey = formatLocalDateKey(/* @__PURE__ */ new Date());
|
|
758
|
+
return createLocalDateFromKey(`${todayKey.slice(0, 7)}-01`);
|
|
759
|
+
}
|
|
760
|
+
return getMonthStartDate(value, timeZone);
|
|
761
|
+
});
|
|
762
|
+
const calendarRef = useRef3(null);
|
|
763
|
+
const selectedKey = useMemo2(() => value == null ? null : formatDateKey(value, timeZone), [value, timeZone]);
|
|
764
|
+
const selectedDate = useMemo2(() => {
|
|
765
|
+
if (selectedKey == null) {
|
|
766
|
+
return;
|
|
767
|
+
}
|
|
768
|
+
return createLocalDateFromKey(selectedKey);
|
|
769
|
+
}, [selectedKey]);
|
|
770
|
+
const minKey = useMemo2(() => minDate == null ? null : formatDateKey(minDate, timeZone), [minDate, timeZone]);
|
|
771
|
+
const maxKey = useMemo2(() => maxDate == null ? null : formatDateKey(maxDate, timeZone), [maxDate, timeZone]);
|
|
772
|
+
const currentMonthKey = useMemo2(() => formatLocalDateKey(displayMonth).slice(0, 7), [displayMonth]);
|
|
773
|
+
const isOutsideMonth = useCallback3(
|
|
774
|
+
(date) => formatLocalDateKey(date).slice(0, 7) !== currentMonthKey,
|
|
775
|
+
[currentMonthKey]
|
|
776
|
+
);
|
|
777
|
+
const isMinMaxDisabled = useCallback3(
|
|
778
|
+
(date) => {
|
|
779
|
+
const dateKey = formatLocalDateKey(date);
|
|
780
|
+
if (minKey != null && dateKey < minKey) {
|
|
781
|
+
return true;
|
|
782
|
+
}
|
|
783
|
+
if (maxKey != null && dateKey > maxKey) {
|
|
784
|
+
return true;
|
|
785
|
+
}
|
|
786
|
+
return false;
|
|
787
|
+
},
|
|
788
|
+
[maxKey, minKey]
|
|
789
|
+
);
|
|
790
|
+
const disabledDays = useCallback3(
|
|
791
|
+
(date) => {
|
|
792
|
+
if (isOutsideMonth(date)) {
|
|
793
|
+
return true;
|
|
794
|
+
}
|
|
795
|
+
return isMinMaxDisabled(date);
|
|
796
|
+
},
|
|
797
|
+
[isOutsideMonth, isMinMaxDisabled]
|
|
798
|
+
);
|
|
799
|
+
const todayForCalendar = useMemo2(() => createLocalDateFromKey(formatLocalDateKey()), []);
|
|
800
|
+
useEffect3(() => {
|
|
801
|
+
if (value == null) {
|
|
802
|
+
const todayKey = formatLocalDateKey(/* @__PURE__ */ new Date());
|
|
803
|
+
setDisplayMonth(createLocalDateFromKey(`${todayKey.slice(0, 7)}-01`));
|
|
804
|
+
return;
|
|
805
|
+
}
|
|
806
|
+
setDisplayMonth(getMonthStartDate(value, timeZone));
|
|
807
|
+
}, [value, timeZone]);
|
|
808
|
+
useEffect3(() => {
|
|
809
|
+
if (!isOpen) {
|
|
810
|
+
return;
|
|
811
|
+
}
|
|
812
|
+
const frame = requestAnimationFrame(() => {
|
|
813
|
+
const container = calendarRef.current;
|
|
814
|
+
if (!container) {
|
|
815
|
+
return;
|
|
816
|
+
}
|
|
817
|
+
const selected = container.querySelector('button[aria-selected="true"]');
|
|
818
|
+
const today = container.querySelector('button[aria-current="date"]');
|
|
819
|
+
const focusTarget = selected ?? today;
|
|
820
|
+
focusTarget?.focus({ preventScroll: true });
|
|
821
|
+
});
|
|
822
|
+
return () => cancelAnimationFrame(frame);
|
|
823
|
+
}, [displayMonth, isOpen, value]);
|
|
824
|
+
useEffect3(() => {
|
|
825
|
+
if (isDisabled) {
|
|
826
|
+
setIsOpen(false);
|
|
827
|
+
}
|
|
828
|
+
}, [isDisabled]);
|
|
829
|
+
const handleTriggerClick = (event) => {
|
|
830
|
+
if (isDisabled) {
|
|
831
|
+
event.preventDefault();
|
|
832
|
+
return;
|
|
833
|
+
}
|
|
834
|
+
onClick?.(event);
|
|
835
|
+
setIsOpen((prev) => !prev);
|
|
836
|
+
};
|
|
837
|
+
const handleClose = () => {
|
|
838
|
+
setIsOpen(false);
|
|
839
|
+
};
|
|
840
|
+
const handleSelect = (selected) => {
|
|
841
|
+
if (!selected) {
|
|
842
|
+
return;
|
|
843
|
+
}
|
|
844
|
+
const selectedKey2 = formatLocalDateKey(selected);
|
|
845
|
+
onChange(createDateFromKey(selectedKey2, timeZone));
|
|
846
|
+
setIsOpen(false);
|
|
847
|
+
};
|
|
848
|
+
const handleClear = () => {
|
|
849
|
+
onChange(null);
|
|
850
|
+
setIsOpen(false);
|
|
851
|
+
};
|
|
852
|
+
const handleClickToday = () => {
|
|
853
|
+
const todayKey = formatLocalDateKey(/* @__PURE__ */ new Date());
|
|
854
|
+
setDisplayMonth(createLocalDateFromKey(`${todayKey.slice(0, 7)}-01`));
|
|
855
|
+
};
|
|
856
|
+
const formatters = useMemo2(() => {
|
|
857
|
+
const weekdayFormatter = new Intl.DateTimeFormat("ja-JP", { weekday: "short" });
|
|
858
|
+
return {
|
|
859
|
+
formatCaption: (date) => formatMonthLabel(date),
|
|
860
|
+
formatDay: (date) => String(date.getDate()),
|
|
861
|
+
formatWeekdayName: (date) => weekdayFormatter.format(date)
|
|
862
|
+
};
|
|
863
|
+
}, []);
|
|
864
|
+
const iconSize = size === "large" ? "medium" : "small";
|
|
865
|
+
const displayText = value ? formatDisplayDate(value, timeZone) : placeholder;
|
|
866
|
+
const displayTextClasses = "min-w-0 truncate";
|
|
867
|
+
const errorIds = [];
|
|
868
|
+
const enhancedChildren = Children.map(children, (child) => {
|
|
869
|
+
if (!isValidElement(child)) {
|
|
870
|
+
return child;
|
|
871
|
+
}
|
|
872
|
+
if (child.type === DatePickerErrorMessage && isError) {
|
|
873
|
+
const errorChild = child;
|
|
874
|
+
const assignedId = errorChild.props.id ?? `${describedByBaseId}-error-${errorIds.length + 1}`;
|
|
875
|
+
errorIds.push(assignedId);
|
|
876
|
+
return cloneElement3(errorChild, { id: assignedId });
|
|
877
|
+
}
|
|
878
|
+
return child;
|
|
879
|
+
});
|
|
880
|
+
const describedByFromProps = typeof restProps["aria-describedby"] === "string" ? restProps["aria-describedby"] : null;
|
|
881
|
+
const describedByList = [describedByFromProps, ...errorIds].filter(
|
|
882
|
+
(id) => typeof id === "string" && id.trim().length > 0
|
|
883
|
+
);
|
|
884
|
+
const describedByProps = describedByList.length > 0 ? {
|
|
885
|
+
"aria-describedby": describedByList.join(" ")
|
|
886
|
+
} : {};
|
|
887
|
+
const shouldMarkInvalid = isError === true || errorIds.length > 0;
|
|
888
|
+
const ariaInvalidFromProps = restProps["aria-invalid"];
|
|
889
|
+
const ariaInvalidValue = ariaInvalidFromProps != null ? ariaInvalidFromProps : shouldMarkInvalid ? true : null;
|
|
890
|
+
const ariaInvalidProps = ariaInvalidValue == null ? {} : { "aria-invalid": ariaInvalidValue };
|
|
891
|
+
const mergedButtonProps = {
|
|
892
|
+
...restProps,
|
|
893
|
+
...describedByProps,
|
|
894
|
+
...ariaInvalidProps
|
|
895
|
+
};
|
|
896
|
+
const contextValue = useMemo2(
|
|
897
|
+
() => ({
|
|
898
|
+
size,
|
|
899
|
+
isError
|
|
900
|
+
}),
|
|
901
|
+
[isError, size]
|
|
902
|
+
);
|
|
903
|
+
const popoverContent = /* @__PURE__ */ jsxs4(Popover, { isOpen, placement: "bottom-start", onClose: handleClose, children: [
|
|
904
|
+
/* @__PURE__ */ jsx15(Popover.Trigger, { children: /* @__PURE__ */ jsx15(
|
|
905
|
+
InternalButton,
|
|
906
|
+
{
|
|
907
|
+
...mergedButtonProps,
|
|
908
|
+
type: type ?? "button",
|
|
909
|
+
size,
|
|
910
|
+
variant: isError ? "outlineDanger" : "outline",
|
|
911
|
+
isDisabled,
|
|
912
|
+
before: /* @__PURE__ */ jsx15(Icon, { name: "calendar", size: iconSize }),
|
|
913
|
+
justifyContent: "start",
|
|
914
|
+
onClick: handleTriggerClick,
|
|
915
|
+
children: /* @__PURE__ */ jsx15("span", { className: displayTextClasses, children: displayText })
|
|
916
|
+
}
|
|
917
|
+
) }),
|
|
918
|
+
/* @__PURE__ */ jsx15(Popover.Content, { children: /* @__PURE__ */ jsxs4("div", { ref: calendarRef, className: "rounded bg-uiBackground01 shadow-floatingShadow", "aria-label": "\u65E5\u4ED8\u9078\u629E", children: [
|
|
919
|
+
/* @__PURE__ */ jsx15(
|
|
920
|
+
DayPicker,
|
|
921
|
+
{
|
|
922
|
+
mode: "single",
|
|
923
|
+
showOutsideDays: true,
|
|
924
|
+
hideNavigation: true,
|
|
925
|
+
weekStartsOn: 0,
|
|
926
|
+
style: dayPickerStyle,
|
|
927
|
+
month: displayMonth,
|
|
928
|
+
onMonthChange: setDisplayMonth,
|
|
929
|
+
selected: selectedDate,
|
|
930
|
+
onSelect: handleSelect,
|
|
931
|
+
today: todayForCalendar,
|
|
932
|
+
disabled: disabledDays,
|
|
933
|
+
modifiers: { minMaxDisabled: isMinMaxDisabled },
|
|
934
|
+
classNames: dayPickerClassNames,
|
|
935
|
+
formatters,
|
|
936
|
+
fixedWeeks: true,
|
|
937
|
+
components: { MonthCaption: CustomMonthCaption, DayButton: CustomDayButton, Weekday: CustomWeekday }
|
|
938
|
+
}
|
|
939
|
+
),
|
|
940
|
+
/* @__PURE__ */ jsxs4("div", { className: "flex items-center justify-between border-t border-uiBorder01 px-2 py-1", children: [
|
|
941
|
+
/* @__PURE__ */ jsx15(
|
|
942
|
+
IconButton,
|
|
943
|
+
{
|
|
944
|
+
icon: "calendar-today",
|
|
945
|
+
size: "medium",
|
|
946
|
+
variant: "text",
|
|
947
|
+
"aria-label": "\u4ECA\u65E5\u306B\u623B\u308B",
|
|
948
|
+
iconAccentColor: "supportInfo",
|
|
949
|
+
onClick: handleClickToday
|
|
950
|
+
}
|
|
951
|
+
),
|
|
952
|
+
/* @__PURE__ */ jsx15(Button, { type: "button", size: "small", variant: "text", onClick: handleClear, children: "\u30AF\u30EA\u30A2" })
|
|
953
|
+
] })
|
|
954
|
+
] }) })
|
|
955
|
+
] });
|
|
956
|
+
const stackedChildren = enhancedChildren == null ? [] : Children.toArray(enhancedChildren);
|
|
957
|
+
const hasMessageChildren = stackedChildren.length > 0;
|
|
958
|
+
if (!hasMessageChildren) {
|
|
959
|
+
return /* @__PURE__ */ jsx15(DatePickerCompoundContext.Provider, { value: contextValue, children: /* @__PURE__ */ jsx15("div", { className: "flex flex-col", children: popoverContent }) });
|
|
960
|
+
}
|
|
961
|
+
return /* @__PURE__ */ jsx15(DatePickerCompoundContext.Provider, { value: contextValue, children: /* @__PURE__ */ jsxs4("div", { className: "flex flex-col gap-2", children: [
|
|
962
|
+
popoverContent,
|
|
963
|
+
stackedChildren
|
|
964
|
+
] }) });
|
|
965
|
+
};
|
|
966
|
+
DatePicker.ErrorMessage = DatePickerErrorMessage;
|
|
967
|
+
DatePicker.displayName = "DatePicker";
|
|
968
|
+
|
|
268
969
|
// src/dropdown/dropdown.tsx
|
|
269
|
-
import { buttonColors as
|
|
270
|
-
import
|
|
271
|
-
import { useCallback as
|
|
970
|
+
import { buttonColors as buttonColors3, focusVisible as focusVisible6 } from "@zenkigen-inc/component-theme";
|
|
971
|
+
import clsx13 from "clsx";
|
|
972
|
+
import { useCallback as useCallback4, useRef as useRef4, useState as useState3 } from "react";
|
|
272
973
|
import { createPortal } from "react-dom";
|
|
273
974
|
|
|
274
975
|
// src/hooks/use-outside-click.ts
|
|
275
|
-
import { useEffect } from "react";
|
|
976
|
+
import { useEffect as useEffect4 } from "react";
|
|
276
977
|
var useOutsideClick = (ref, handler, enabled = true) => {
|
|
277
|
-
|
|
978
|
+
useEffect4(() => {
|
|
278
979
|
const listener = (event) => {
|
|
279
980
|
const element = ref?.current;
|
|
280
981
|
if (element == null || Boolean(element.contains(event?.target ?? null))) {
|
|
@@ -290,8 +991,8 @@ var useOutsideClick = (ref, handler, enabled = true) => {
|
|
|
290
991
|
};
|
|
291
992
|
|
|
292
993
|
// src/dropdown/dropdown-context.ts
|
|
293
|
-
import { createContext } from "react";
|
|
294
|
-
var DropdownContext =
|
|
994
|
+
import { createContext as createContext3 } from "react";
|
|
995
|
+
var DropdownContext = createContext3({
|
|
295
996
|
isVisible: false,
|
|
296
997
|
setIsVisible: () => false,
|
|
297
998
|
isDisabled: false,
|
|
@@ -300,31 +1001,31 @@ var DropdownContext = createContext({
|
|
|
300
1001
|
});
|
|
301
1002
|
|
|
302
1003
|
// src/dropdown/dropdown-item.tsx
|
|
303
|
-
import { focusVisible as
|
|
304
|
-
import
|
|
305
|
-
import { useContext } from "react";
|
|
306
|
-
import { jsx as
|
|
1004
|
+
import { focusVisible as focusVisible5 } from "@zenkigen-inc/component-theme";
|
|
1005
|
+
import clsx11 from "clsx";
|
|
1006
|
+
import { useContext as useContext3 } from "react";
|
|
1007
|
+
import { jsx as jsx16 } from "react/jsx-runtime";
|
|
307
1008
|
function DropdownItem({ children, color = "gray", onClick }) {
|
|
308
|
-
const { setIsVisible } =
|
|
1009
|
+
const { setIsVisible } = useContext3(DropdownContext);
|
|
309
1010
|
const handleClickItem = (event) => {
|
|
310
1011
|
setIsVisible(false);
|
|
311
1012
|
onClick?.(event);
|
|
312
1013
|
};
|
|
313
|
-
const itemClasses =
|
|
1014
|
+
const itemClasses = clsx11(
|
|
314
1015
|
"typography-label14regular flex h-8 w-full items-center px-3 hover:bg-hover02 active:bg-active02",
|
|
315
|
-
|
|
1016
|
+
focusVisible5.inset,
|
|
316
1017
|
{
|
|
317
1018
|
"bg-uiBackground01 fill-icon01 text-interactive02": color === "gray",
|
|
318
1019
|
"fill-supportDanger text-supportDanger": color === "red"
|
|
319
1020
|
}
|
|
320
1021
|
);
|
|
321
|
-
return /* @__PURE__ */
|
|
1022
|
+
return /* @__PURE__ */ jsx16("li", { className: "flex w-full items-center", children: /* @__PURE__ */ jsx16("button", { className: itemClasses, type: "button", onClick: handleClickItem, children }) });
|
|
322
1023
|
}
|
|
323
1024
|
|
|
324
1025
|
// src/dropdown/dropdown-menu.tsx
|
|
325
|
-
import
|
|
326
|
-
import { useContext as
|
|
327
|
-
import { jsx as
|
|
1026
|
+
import clsx12 from "clsx";
|
|
1027
|
+
import { useContext as useContext4 } from "react";
|
|
1028
|
+
import { jsx as jsx17 } from "react/jsx-runtime";
|
|
328
1029
|
function DropdownMenu({
|
|
329
1030
|
children,
|
|
330
1031
|
maxHeight,
|
|
@@ -332,8 +1033,8 @@ function DropdownMenu({
|
|
|
332
1033
|
verticalPosition = "bottom",
|
|
333
1034
|
horizontalAlign = "left"
|
|
334
1035
|
}) {
|
|
335
|
-
const { isVisible, isDisabled, targetDimensions, variant, portalTargetRef } =
|
|
336
|
-
const wrapperClasses =
|
|
1036
|
+
const { isVisible, isDisabled, targetDimensions, variant, portalTargetRef } = useContext4(DropdownContext);
|
|
1037
|
+
const wrapperClasses = clsx12("z-dropdown w-max overflow-y-auto rounded bg-uiBackground01 shadow-floatingShadow", {
|
|
337
1038
|
absolute: !portalTargetRef,
|
|
338
1039
|
"border-solid border border-uiBorder01": variant === "outline",
|
|
339
1040
|
"py-1": !isNoPadding,
|
|
@@ -341,7 +1042,7 @@ function DropdownMenu({
|
|
|
341
1042
|
"right-0": horizontalAlign === "right",
|
|
342
1043
|
"left-auto": horizontalAlign === "center"
|
|
343
1044
|
});
|
|
344
|
-
return isVisible && !isDisabled && /* @__PURE__ */
|
|
1045
|
+
return isVisible && !isDisabled && /* @__PURE__ */ jsx17(
|
|
345
1046
|
"ul",
|
|
346
1047
|
{
|
|
347
1048
|
className: wrapperClasses,
|
|
@@ -356,7 +1057,7 @@ function DropdownMenu({
|
|
|
356
1057
|
}
|
|
357
1058
|
|
|
358
1059
|
// src/dropdown/dropdown.tsx
|
|
359
|
-
import { jsx as
|
|
1060
|
+
import { jsx as jsx18, jsxs as jsxs5 } from "react/jsx-runtime";
|
|
360
1061
|
function Dropdown({
|
|
361
1062
|
children,
|
|
362
1063
|
target,
|
|
@@ -369,14 +1070,14 @@ function Dropdown({
|
|
|
369
1070
|
isArrowHidden = false,
|
|
370
1071
|
portalTargetRef
|
|
371
1072
|
}) {
|
|
372
|
-
const [isVisible, setIsVisible] =
|
|
373
|
-
const [targetDimensions, setTargetDimensions] =
|
|
1073
|
+
const [isVisible, setIsVisible] = useState3(false);
|
|
1074
|
+
const [targetDimensions, setTargetDimensions] = useState3({
|
|
374
1075
|
width: 0,
|
|
375
1076
|
height: 0
|
|
376
1077
|
});
|
|
377
|
-
const targetRef =
|
|
1078
|
+
const targetRef = useRef4(null);
|
|
378
1079
|
useOutsideClick(targetRef, () => setIsVisible(false));
|
|
379
|
-
const handleToggle =
|
|
1080
|
+
const handleToggle = useCallback4(() => {
|
|
380
1081
|
if (targetRef.current === null) {
|
|
381
1082
|
return;
|
|
382
1083
|
}
|
|
@@ -392,24 +1093,24 @@ function Dropdown({
|
|
|
392
1093
|
setIsVisible(true);
|
|
393
1094
|
}
|
|
394
1095
|
}, [isVisible]);
|
|
395
|
-
const wrapperClasses =
|
|
1096
|
+
const wrapperClasses = clsx13("relative flex shrink-0 items-center gap-1 rounded", {
|
|
396
1097
|
"cursor-not-allowed": isDisabled
|
|
397
1098
|
});
|
|
398
|
-
const childrenButtonClasses =
|
|
1099
|
+
const childrenButtonClasses = clsx13(
|
|
399
1100
|
"flex items-center justify-center rounded bg-uiBackground01 p-1 hover:bg-hover02 active:bg-active02",
|
|
400
|
-
|
|
1101
|
+
focusVisible6.normal,
|
|
401
1102
|
{
|
|
402
1103
|
"pointer-events-none": isDisabled,
|
|
403
1104
|
"border border-uiBorder02": variant === "outline"
|
|
404
1105
|
}
|
|
405
1106
|
);
|
|
406
|
-
const buttonClasses =
|
|
1107
|
+
const buttonClasses = clsx13(
|
|
407
1108
|
"flex items-center rounded bg-uiBackground01",
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
1109
|
+
buttonColors3[variant].base,
|
|
1110
|
+
buttonColors3[variant].hover,
|
|
1111
|
+
buttonColors3[variant].active,
|
|
1112
|
+
buttonColors3[variant].disabled,
|
|
1113
|
+
focusVisible6.normal,
|
|
413
1114
|
{
|
|
414
1115
|
"pointer-events-none": isDisabled,
|
|
415
1116
|
"h-6 px-2": size === "x-small" || size === "small",
|
|
@@ -417,19 +1118,19 @@ function Dropdown({
|
|
|
417
1118
|
"h-10 px-4": size === "large"
|
|
418
1119
|
}
|
|
419
1120
|
);
|
|
420
|
-
const labelClasses =
|
|
1121
|
+
const labelClasses = clsx13("flex items-center", {
|
|
421
1122
|
"mr-1": !isArrowHidden && size === "x-small",
|
|
422
1123
|
"mr-2": !isArrowHidden && size !== "x-small",
|
|
423
1124
|
"typography-label12regular": size === "x-small",
|
|
424
1125
|
"typography-label14regular": size === "small" || size === "medium",
|
|
425
1126
|
"typography-label16regular": size === "large"
|
|
426
1127
|
});
|
|
427
|
-
return /* @__PURE__ */
|
|
1128
|
+
return /* @__PURE__ */ jsx18(
|
|
428
1129
|
DropdownContext.Provider,
|
|
429
1130
|
{
|
|
430
1131
|
value: { isVisible, setIsVisible, isDisabled, targetDimensions, variant, portalTargetRef },
|
|
431
|
-
children: /* @__PURE__ */
|
|
432
|
-
target ? /* @__PURE__ */
|
|
1132
|
+
children: /* @__PURE__ */ jsxs5("div", { ref: targetRef, className: wrapperClasses, children: [
|
|
1133
|
+
target ? /* @__PURE__ */ jsxs5(
|
|
433
1134
|
"button",
|
|
434
1135
|
{
|
|
435
1136
|
type: "button",
|
|
@@ -439,7 +1140,7 @@ function Dropdown({
|
|
|
439
1140
|
disabled: isDisabled,
|
|
440
1141
|
children: [
|
|
441
1142
|
target,
|
|
442
|
-
!isArrowHidden && /* @__PURE__ */
|
|
1143
|
+
!isArrowHidden && /* @__PURE__ */ jsx18("div", { className: "ml-2 flex items-center fill-icon01", children: /* @__PURE__ */ jsx18(
|
|
443
1144
|
Icon,
|
|
444
1145
|
{
|
|
445
1146
|
name: isVisible ? "angle-small-up" : "angle-small-down",
|
|
@@ -448,10 +1149,10 @@ function Dropdown({
|
|
|
448
1149
|
) })
|
|
449
1150
|
]
|
|
450
1151
|
}
|
|
451
|
-
) : /* @__PURE__ */
|
|
452
|
-
icon && /* @__PURE__ */
|
|
453
|
-
/* @__PURE__ */
|
|
454
|
-
!isArrowHidden && /* @__PURE__ */
|
|
1152
|
+
) : /* @__PURE__ */ jsxs5("button", { type: "button", title, className: buttonClasses, onClick: handleToggle, disabled: isDisabled, children: [
|
|
1153
|
+
icon && /* @__PURE__ */ jsx18("span", { className: "mr-1 flex", children: /* @__PURE__ */ jsx18(Icon, { name: icon, size: size === "large" ? "medium" : "small" }) }),
|
|
1154
|
+
/* @__PURE__ */ jsx18("span", { className: labelClasses, children: label }),
|
|
1155
|
+
!isArrowHidden && /* @__PURE__ */ jsx18("div", { className: "ml-auto flex items-center", children: /* @__PURE__ */ jsx18(Icon, { name: isVisible ? "angle-small-up" : "angle-small-down", size: "small" }) })
|
|
455
1156
|
] }),
|
|
456
1157
|
!portalTargetRef ? children : portalTargetRef != null && portalTargetRef.current && createPortal(children, portalTargetRef.current)
|
|
457
1158
|
] })
|
|
@@ -463,14 +1164,14 @@ Dropdown.Item = DropdownItem;
|
|
|
463
1164
|
|
|
464
1165
|
// src/evaluation-star/evaluation-star.tsx
|
|
465
1166
|
import { iconElements as iconElements2 } from "@zenkigen-inc/component-icons";
|
|
466
|
-
import { focusVisible as
|
|
467
|
-
import
|
|
468
|
-
import { useCallback as
|
|
469
|
-
import { jsx as
|
|
1167
|
+
import { focusVisible as focusVisible7 } from "@zenkigen-inc/component-theme";
|
|
1168
|
+
import clsx14 from "clsx";
|
|
1169
|
+
import { useCallback as useCallback5, useState as useState4 } from "react";
|
|
1170
|
+
import { jsx as jsx19 } from "react/jsx-runtime";
|
|
470
1171
|
function EvaluationStar({ value, isEditable = false, onChangeRating, size = "medium" }) {
|
|
471
1172
|
const maxRating = 5;
|
|
472
|
-
const [currentRating, setCurrentRating] =
|
|
473
|
-
const handleChangeRating =
|
|
1173
|
+
const [currentRating, setCurrentRating] = useState4(value);
|
|
1174
|
+
const handleChangeRating = useCallback5(
|
|
474
1175
|
(newRating) => {
|
|
475
1176
|
if (isEditable) {
|
|
476
1177
|
setCurrentRating(newRating);
|
|
@@ -481,72 +1182,30 @@ function EvaluationStar({ value, isEditable = false, onChangeRating, size = "med
|
|
|
481
1182
|
},
|
|
482
1183
|
[isEditable, onChangeRating]
|
|
483
1184
|
);
|
|
484
|
-
const starClasses =
|
|
1185
|
+
const starClasses = clsx14(focusVisible7.inset, { "w-6 h-6": size === "large", "w-4 h-4": size === "medium" });
|
|
485
1186
|
const renderStar = (rating) => {
|
|
486
1187
|
const color = rating <= currentRating ? "fill-yellow-yellow50" : "fill-icon03";
|
|
487
1188
|
const IconComponent = iconElements2["star-filled"];
|
|
488
|
-
return /* @__PURE__ */
|
|
1189
|
+
return /* @__PURE__ */ jsx19(
|
|
489
1190
|
"button",
|
|
490
1191
|
{
|
|
491
1192
|
type: "button",
|
|
492
1193
|
onClick: () => handleChangeRating(rating),
|
|
493
|
-
className:
|
|
1194
|
+
className: clsx14(color, starClasses),
|
|
494
1195
|
disabled: !isEditable,
|
|
495
|
-
children: /* @__PURE__ */
|
|
1196
|
+
children: /* @__PURE__ */ jsx19(IconComponent, {})
|
|
496
1197
|
},
|
|
497
1198
|
rating
|
|
498
1199
|
);
|
|
499
1200
|
};
|
|
500
1201
|
const ratingStars = Array.from({ length: maxRating }, (_, index) => renderStar(index + 1));
|
|
501
|
-
return /* @__PURE__ */
|
|
1202
|
+
return /* @__PURE__ */ jsx19("span", { className: "flex flex-row", children: ratingStars });
|
|
502
1203
|
}
|
|
503
1204
|
|
|
504
1205
|
// src/file-input/file-input.tsx
|
|
505
|
-
import { clsx as
|
|
506
|
-
import { forwardRef, useCallback as
|
|
507
|
-
|
|
508
|
-
// src/icon-button/icon-button.tsx
|
|
509
|
-
import { buttonColors as buttonColors3, focusVisible as focusVisible6 } from "@zenkigen-inc/component-theme";
|
|
510
|
-
import { clsx as clsx9 } from "clsx";
|
|
511
|
-
import { jsx as jsx12 } from "react/jsx-runtime";
|
|
512
|
-
function IconButton({
|
|
513
|
-
icon,
|
|
514
|
-
size = "medium",
|
|
515
|
-
variant = "outline",
|
|
516
|
-
isNoPadding = false,
|
|
517
|
-
isDisabled = false,
|
|
518
|
-
isSelected = false,
|
|
519
|
-
...props
|
|
520
|
-
}) {
|
|
521
|
-
const baseClasses = clsx9(
|
|
522
|
-
"typography-label16regular flex items-center justify-center gap-1 rounded",
|
|
523
|
-
buttonColors3[variant].hover,
|
|
524
|
-
buttonColors3[variant].active,
|
|
525
|
-
buttonColors3[variant].disabled,
|
|
526
|
-
focusVisible6.normal,
|
|
527
|
-
{
|
|
528
|
-
"h-4 w-4": size === "small" && isNoPadding,
|
|
529
|
-
"h-6 w-6": size === "small" && !isNoPadding || (size === "medium" || size === "large") && isNoPadding,
|
|
530
|
-
"h-8 w-8": size === "medium" && !isNoPadding,
|
|
531
|
-
"h-10 w-10": size === "large" && !isNoPadding,
|
|
532
|
-
"inline-flex": props.isAnchor,
|
|
533
|
-
"pointer-events-none": isDisabled,
|
|
534
|
-
[buttonColors3[variant].selected]: isSelected,
|
|
535
|
-
[buttonColors3[variant].base]: !isSelected
|
|
536
|
-
}
|
|
537
|
-
);
|
|
538
|
-
const iconSize = size === "small" ? "small" : "medium";
|
|
539
|
-
if (props.isAnchor === true) {
|
|
540
|
-
const buttonProps = Object.fromEntries(Object.entries(props).filter(([key]) => key !== "isAnchor"));
|
|
541
|
-
return /* @__PURE__ */ jsx12("a", { className: baseClasses, ...buttonProps, children: /* @__PURE__ */ jsx12(Icon, { name: icon, size: iconSize }) });
|
|
542
|
-
} else {
|
|
543
|
-
const buttonProps = Object.fromEntries(Object.entries(props).filter(([key]) => key !== "isAnchor"));
|
|
544
|
-
return /* @__PURE__ */ jsx12("button", { type: "button", className: baseClasses, disabled: isDisabled, ...buttonProps, children: /* @__PURE__ */ jsx12(Icon, { name: icon, size: iconSize }) });
|
|
545
|
-
}
|
|
546
|
-
}
|
|
547
|
-
|
|
548
|
-
// src/file-input/file-input.tsx
|
|
549
|
-
import { Fragment as Fragment2, jsx as jsx13, jsxs as jsxs4 } from "react/jsx-runtime";
|
|
1206
|
+
import { clsx as clsx15 } from "clsx";
|
|
1207
|
+
import { forwardRef as forwardRef4, useCallback as useCallback6, useId as useId2, useImperativeHandle, useRef as useRef5, useState as useState5 } from "react";
|
|
1208
|
+
import { Fragment as Fragment2, jsx as jsx20, jsxs as jsxs6 } from "react/jsx-runtime";
|
|
550
1209
|
var ERROR_TYPES = {
|
|
551
1210
|
SIZE_TOO_LARGE: "SIZE_TOO_LARGE",
|
|
552
1211
|
UNSUPPORTED_FORMAT: "UNSUPPORTED_FORMAT"
|
|
@@ -555,16 +1214,16 @@ var ERROR_MESSAGES = {
|
|
|
555
1214
|
SIZE_TOO_LARGE: "\u30D5\u30A1\u30A4\u30EB\u30B5\u30A4\u30BA\u304C\u5927\u304D\u904E\u304E\u307E\u3059\u3002",
|
|
556
1215
|
UNSUPPORTED_FORMAT: "\u30D5\u30A1\u30A4\u30EB\u5F62\u5F0F\u304C\u6B63\u3057\u304F\u3042\u308A\u307E\u305B\u3093\u3002"
|
|
557
1216
|
};
|
|
558
|
-
var FileInput =
|
|
1217
|
+
var FileInput = forwardRef4(
|
|
559
1218
|
({ id, variant, accept, maxSize, isDisabled = false, isError = false, onSelect, onError, errorMessages, ...rest }, ref) => {
|
|
560
1219
|
const size = variant === "button" ? rest.size ?? "medium" : "medium";
|
|
561
|
-
const [selectedFile, setSelectedFile] =
|
|
562
|
-
const [isDragOver, setIsDragOver] =
|
|
563
|
-
const fileInputRef =
|
|
564
|
-
const errorId =
|
|
565
|
-
const fallbackId =
|
|
1220
|
+
const [selectedFile, setSelectedFile] = useState5(null);
|
|
1221
|
+
const [isDragOver, setIsDragOver] = useState5(false);
|
|
1222
|
+
const fileInputRef = useRef5(null);
|
|
1223
|
+
const errorId = useId2();
|
|
1224
|
+
const fallbackId = useId2();
|
|
566
1225
|
const inputId = id ?? fallbackId;
|
|
567
|
-
const validateFile =
|
|
1226
|
+
const validateFile = useCallback6(
|
|
568
1227
|
(file) => {
|
|
569
1228
|
const errors = [];
|
|
570
1229
|
if (maxSize != null && maxSize > 0 && file.size > maxSize) {
|
|
@@ -603,7 +1262,7 @@ var FileInput = forwardRef(
|
|
|
603
1262
|
},
|
|
604
1263
|
[accept, maxSize, onError]
|
|
605
1264
|
);
|
|
606
|
-
const handleFileSelect =
|
|
1265
|
+
const handleFileSelect = useCallback6(
|
|
607
1266
|
(file) => {
|
|
608
1267
|
if (file && !validateFile(file)) {
|
|
609
1268
|
return;
|
|
@@ -613,7 +1272,7 @@ var FileInput = forwardRef(
|
|
|
613
1272
|
},
|
|
614
1273
|
[validateFile, onSelect]
|
|
615
1274
|
);
|
|
616
|
-
const handleFileInputChange =
|
|
1275
|
+
const handleFileInputChange = useCallback6(
|
|
617
1276
|
(event) => {
|
|
618
1277
|
if (isDisabled) {
|
|
619
1278
|
return;
|
|
@@ -629,7 +1288,7 @@ var FileInput = forwardRef(
|
|
|
629
1288
|
},
|
|
630
1289
|
[isDisabled, handleFileSelect]
|
|
631
1290
|
);
|
|
632
|
-
const handleDragOver =
|
|
1291
|
+
const handleDragOver = useCallback6(
|
|
633
1292
|
(event) => {
|
|
634
1293
|
event.preventDefault();
|
|
635
1294
|
if (!isDisabled) {
|
|
@@ -638,11 +1297,11 @@ var FileInput = forwardRef(
|
|
|
638
1297
|
},
|
|
639
1298
|
[isDisabled]
|
|
640
1299
|
);
|
|
641
|
-
const handleDragLeave =
|
|
1300
|
+
const handleDragLeave = useCallback6((event) => {
|
|
642
1301
|
event.preventDefault();
|
|
643
1302
|
setIsDragOver(false);
|
|
644
1303
|
}, []);
|
|
645
|
-
const handleDrop =
|
|
1304
|
+
const handleDrop = useCallback6(
|
|
646
1305
|
(event) => {
|
|
647
1306
|
event.preventDefault();
|
|
648
1307
|
setIsDragOver(false);
|
|
@@ -654,12 +1313,12 @@ var FileInput = forwardRef(
|
|
|
654
1313
|
},
|
|
655
1314
|
[isDisabled, handleFileSelect]
|
|
656
1315
|
);
|
|
657
|
-
const handleButtonClick =
|
|
1316
|
+
const handleButtonClick = useCallback6(() => {
|
|
658
1317
|
if (!isDisabled) {
|
|
659
1318
|
fileInputRef.current?.click();
|
|
660
1319
|
}
|
|
661
1320
|
}, [isDisabled]);
|
|
662
|
-
const handleClear =
|
|
1321
|
+
const handleClear = useCallback6(() => {
|
|
663
1322
|
setSelectedFile(null);
|
|
664
1323
|
if (fileInputRef.current) {
|
|
665
1324
|
fileInputRef.current.value = "";
|
|
@@ -675,7 +1334,7 @@ var FileInput = forwardRef(
|
|
|
675
1334
|
);
|
|
676
1335
|
const hasErrorMessages = !isDisabled && errorMessages != null && errorMessages.length > 0;
|
|
677
1336
|
const hasErrors = !isDisabled && isError === true;
|
|
678
|
-
const dropzoneClasses =
|
|
1337
|
+
const dropzoneClasses = clsx15(
|
|
679
1338
|
"flex flex-1 flex-col items-center justify-center gap-4 rounded border border-dashed px-6 text-center",
|
|
680
1339
|
selectedFile ? "py-[52px]" : "py-4",
|
|
681
1340
|
{
|
|
@@ -722,8 +1381,8 @@ var FileInput = forwardRef(
|
|
|
722
1381
|
return normalized.join(", ");
|
|
723
1382
|
})();
|
|
724
1383
|
if (variant === "button") {
|
|
725
|
-
return /* @__PURE__ */
|
|
726
|
-
/* @__PURE__ */
|
|
1384
|
+
return /* @__PURE__ */ jsxs6("div", { className: "flex items-center gap-2", children: [
|
|
1385
|
+
/* @__PURE__ */ jsx20("div", { className: hasErrors ? "flex-1" : "min-w-0 flex-1", children: /* @__PURE__ */ jsx20(
|
|
727
1386
|
InternalButton,
|
|
728
1387
|
{
|
|
729
1388
|
size,
|
|
@@ -731,14 +1390,14 @@ var FileInput = forwardRef(
|
|
|
731
1390
|
isDisabled,
|
|
732
1391
|
width: "100%",
|
|
733
1392
|
onClick: handleButtonClick,
|
|
734
|
-
before: /* @__PURE__ */
|
|
735
|
-
after: /* @__PURE__ */
|
|
736
|
-
children: /* @__PURE__ */
|
|
1393
|
+
before: /* @__PURE__ */ jsx20(Icon, { name: "upload", size: "small" }),
|
|
1394
|
+
after: /* @__PURE__ */ jsx20(Fragment2, { children: selectedFile ? /* @__PURE__ */ jsx20("span", { className: clsx15("typography-label12regular truncate", !isDisabled && "text-text01"), children: selectedFile.name }) : "" }),
|
|
1395
|
+
children: /* @__PURE__ */ jsx20("span", { className: "truncate", children: "\u30D5\u30A1\u30A4\u30EB\u3092\u9078\u629E" })
|
|
737
1396
|
}
|
|
738
1397
|
) }),
|
|
739
|
-
selectedFile && !isDisabled && /* @__PURE__ */
|
|
740
|
-
hasErrors && hasErrorMessages && /* @__PURE__ */
|
|
741
|
-
/* @__PURE__ */
|
|
1398
|
+
selectedFile && !isDisabled && /* @__PURE__ */ jsx20("div", { className: "shrink-0", children: /* @__PURE__ */ jsx20(IconButton, { variant: "text", icon: "close", size: "small", onClick: handleClear }) }),
|
|
1399
|
+
hasErrors && hasErrorMessages && /* @__PURE__ */ jsx20("div", { id: errorId, "data-testid": "error-messages", className: "typography-label12regular text-supportError", children: errorMessages.map((message, index) => /* @__PURE__ */ jsx20("div", { className: "break-all", children: message }, index)) }),
|
|
1400
|
+
/* @__PURE__ */ jsx20(
|
|
742
1401
|
"input",
|
|
743
1402
|
{
|
|
744
1403
|
id: inputId,
|
|
@@ -753,8 +1412,8 @@ var FileInput = forwardRef(
|
|
|
753
1412
|
)
|
|
754
1413
|
] });
|
|
755
1414
|
}
|
|
756
|
-
return /* @__PURE__ */
|
|
757
|
-
/* @__PURE__ */
|
|
1415
|
+
return /* @__PURE__ */ jsxs6("div", { className: "flex min-w-[320px] flex-col gap-2", children: [
|
|
1416
|
+
/* @__PURE__ */ jsxs6(
|
|
758
1417
|
"div",
|
|
759
1418
|
{
|
|
760
1419
|
className: dropzoneClasses,
|
|
@@ -774,25 +1433,25 @@ var FileInput = forwardRef(
|
|
|
774
1433
|
"aria-disabled": isDisabled,
|
|
775
1434
|
...hasErrors && hasErrorMessages && { "aria-describedby": errorId },
|
|
776
1435
|
children: [
|
|
777
|
-
/* @__PURE__ */
|
|
778
|
-
!selectedFile && /* @__PURE__ */
|
|
1436
|
+
/* @__PURE__ */ jsx20(Icon, { name: "upload-document", size: "large", color: isDisabled ? "icon03" : "icon01" }),
|
|
1437
|
+
!selectedFile && /* @__PURE__ */ jsx20("div", { className: "flex flex-col gap-1", children: /* @__PURE__ */ jsx20("div", { className: "typography-body13regular select-none", children: /* @__PURE__ */ jsxs6(Fragment2, { children: [
|
|
779
1438
|
"\u3053\u3053\u306B\u30D5\u30A1\u30A4\u30EB\u3092\u30C9\u30ED\u30C3\u30D7\u3057\u3066\u304F\u3060\u3055\u3044\u3002",
|
|
780
|
-
/* @__PURE__ */
|
|
1439
|
+
/* @__PURE__ */ jsx20("br", {}),
|
|
781
1440
|
"\u307E\u305F\u306F\u3001",
|
|
782
|
-
/* @__PURE__ */
|
|
1441
|
+
/* @__PURE__ */ jsx20("span", { className: clsx15(!isDisabled ? "text-link01" : ""), children: "\u30D5\u30A1\u30A4\u30EB\u3092\u9078\u629E" }),
|
|
783
1442
|
"\u3057\u3066\u304F\u3060\u3055\u3044\u3002"
|
|
784
1443
|
] }) }) }),
|
|
785
|
-
!selectedFile && /* @__PURE__ */
|
|
786
|
-
/* @__PURE__ */
|
|
787
|
-
/* @__PURE__ */
|
|
788
|
-
/* @__PURE__ */
|
|
789
|
-
/* @__PURE__ */
|
|
1444
|
+
!selectedFile && /* @__PURE__ */ jsxs6("div", { className: "flex flex-col gap-1", children: [
|
|
1445
|
+
/* @__PURE__ */ jsx20("div", { className: clsx15("typography-label11regular", isDisabled ? "text-textPlaceholder" : "text-text02"), children: "\u5BFE\u5FDC\u5F62\u5F0F" }),
|
|
1446
|
+
/* @__PURE__ */ jsx20("div", { className: clsx15("typography-body12regular", isDisabled ? "text-textPlaceholder" : "text-text01"), children: acceptLabel }),
|
|
1447
|
+
/* @__PURE__ */ jsx20("div", { className: clsx15("typography-label11regular", isDisabled ? "text-textPlaceholder" : "text-text02"), children: "\u30B5\u30A4\u30BA" }),
|
|
1448
|
+
/* @__PURE__ */ jsx20("div", { className: clsx15("typography-body12regular", isDisabled ? "text-textPlaceholder" : "text-text01"), children: maxSizeLabel })
|
|
790
1449
|
] }),
|
|
791
|
-
selectedFile && /* @__PURE__ */
|
|
792
|
-
/* @__PURE__ */
|
|
793
|
-
/* @__PURE__ */
|
|
794
|
-
/* @__PURE__ */
|
|
795
|
-
!isDisabled && /* @__PURE__ */
|
|
1450
|
+
selectedFile && /* @__PURE__ */ jsxs6("div", { className: "mt-2 flex flex-col items-center gap-1", children: [
|
|
1451
|
+
/* @__PURE__ */ jsx20("span", { className: "typography-label11regular text-text02", children: "\u30D5\u30A1\u30A4\u30EB\u540D" }),
|
|
1452
|
+
/* @__PURE__ */ jsxs6("div", { className: "flex items-center gap-2", children: [
|
|
1453
|
+
/* @__PURE__ */ jsx20("span", { className: "typography-label14regular", children: selectedFile.name }),
|
|
1454
|
+
!isDisabled && /* @__PURE__ */ jsx20(
|
|
796
1455
|
IconButton,
|
|
797
1456
|
{
|
|
798
1457
|
variant: "text",
|
|
@@ -806,7 +1465,7 @@ var FileInput = forwardRef(
|
|
|
806
1465
|
)
|
|
807
1466
|
] })
|
|
808
1467
|
] }),
|
|
809
|
-
/* @__PURE__ */
|
|
1468
|
+
/* @__PURE__ */ jsx20(
|
|
810
1469
|
"input",
|
|
811
1470
|
{
|
|
812
1471
|
id: inputId,
|
|
@@ -822,13 +1481,13 @@ var FileInput = forwardRef(
|
|
|
822
1481
|
]
|
|
823
1482
|
}
|
|
824
1483
|
),
|
|
825
|
-
hasErrors && hasErrorMessages && /* @__PURE__ */
|
|
1484
|
+
hasErrors && hasErrorMessages && /* @__PURE__ */ jsx20(
|
|
826
1485
|
"div",
|
|
827
1486
|
{
|
|
828
1487
|
id: errorId,
|
|
829
1488
|
"data-testid": "error-messages",
|
|
830
1489
|
className: "typography-body13regular flex flex-col text-supportDanger",
|
|
831
|
-
children: errorMessages.map((message, index) => /* @__PURE__ */
|
|
1490
|
+
children: errorMessages.map((message, index) => /* @__PURE__ */ jsx20("div", { children: message }, index))
|
|
832
1491
|
}
|
|
833
1492
|
)
|
|
834
1493
|
] });
|
|
@@ -838,15 +1497,15 @@ FileInput.displayName = "FileInput";
|
|
|
838
1497
|
|
|
839
1498
|
// src/heading/heading.tsx
|
|
840
1499
|
import { typography } from "@zenkigen-inc/component-theme";
|
|
841
|
-
import { clsx as
|
|
842
|
-
import { jsxs as
|
|
1500
|
+
import { clsx as clsx16 } from "clsx";
|
|
1501
|
+
import { jsxs as jsxs7 } from "react/jsx-runtime";
|
|
843
1502
|
function Heading(props) {
|
|
844
1503
|
const TagName = `h${props.level}`;
|
|
845
|
-
const classes =
|
|
1504
|
+
const classes = clsx16(`flex items-center text-text01`, typography.heading[TagName], {
|
|
846
1505
|
"gap-2": props.level === 1,
|
|
847
1506
|
"gap-1": props.level > 1
|
|
848
1507
|
});
|
|
849
|
-
return /* @__PURE__ */
|
|
1508
|
+
return /* @__PURE__ */ jsxs7(TagName, { className: classes, children: [
|
|
850
1509
|
props.before,
|
|
851
1510
|
props.children,
|
|
852
1511
|
props.after
|
|
@@ -854,22 +1513,22 @@ function Heading(props) {
|
|
|
854
1513
|
}
|
|
855
1514
|
|
|
856
1515
|
// src/hooks/use-roving-focus.ts
|
|
857
|
-
import { useCallback as
|
|
1516
|
+
import { useCallback as useCallback7, useState as useState6 } from "react";
|
|
858
1517
|
var useRovingFocus = ({
|
|
859
1518
|
values,
|
|
860
1519
|
defaultFocusedValue,
|
|
861
1520
|
isDisabled = false
|
|
862
1521
|
}) => {
|
|
863
|
-
const [focusedValue, setFocusedValue] =
|
|
1522
|
+
const [focusedValue, setFocusedValue] = useState6(
|
|
864
1523
|
typeof defaultFocusedValue === "undefined" ? null : defaultFocusedValue
|
|
865
1524
|
);
|
|
866
|
-
const handleFocusChange =
|
|
1525
|
+
const handleFocusChange = useCallback7((newValue) => {
|
|
867
1526
|
setFocusedValue(newValue);
|
|
868
1527
|
}, []);
|
|
869
|
-
const handleBlur =
|
|
1528
|
+
const handleBlur = useCallback7(() => {
|
|
870
1529
|
setFocusedValue(null);
|
|
871
1530
|
}, []);
|
|
872
|
-
const handleKeyDown =
|
|
1531
|
+
const handleKeyDown = useCallback7(
|
|
873
1532
|
(event) => {
|
|
874
1533
|
if (isDisabled === true || values.length === 0) return;
|
|
875
1534
|
const currentIndex = focusedValue !== null && focusedValue !== "" ? values.indexOf(focusedValue) : -1;
|
|
@@ -924,17 +1583,17 @@ var useRovingFocus = ({
|
|
|
924
1583
|
};
|
|
925
1584
|
|
|
926
1585
|
// src/loading/loading.tsx
|
|
927
|
-
import
|
|
928
|
-
import { Fragment as Fragment3, jsx as
|
|
1586
|
+
import clsx17 from "clsx";
|
|
1587
|
+
import { Fragment as Fragment3, jsx as jsx21, jsxs as jsxs8 } from "react/jsx-runtime";
|
|
929
1588
|
function Loading({ size = "medium", position = "fixed", height = "100%" }) {
|
|
930
|
-
const wrapperClasses =
|
|
931
|
-
const svgClasses =
|
|
1589
|
+
const wrapperClasses = clsx17(position, "left-0 top-0 z-20 flex w-full items-center justify-center");
|
|
1590
|
+
const svgClasses = clsx17({
|
|
932
1591
|
"h-4 w-4": size === "small",
|
|
933
1592
|
"h-8 w-8": size === "medium",
|
|
934
1593
|
"h-16 w-16": size === "large"
|
|
935
1594
|
});
|
|
936
|
-
return /* @__PURE__ */
|
|
937
|
-
size === "small" && /* @__PURE__ */
|
|
1595
|
+
return /* @__PURE__ */ jsx21(Fragment3, { children: /* @__PURE__ */ jsxs8("div", { className: wrapperClasses, style: { height }, children: [
|
|
1596
|
+
size === "small" && /* @__PURE__ */ jsx21("svg", { className: svgClasses, viewBox: "0 0 16 16", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: /* @__PURE__ */ jsx21(
|
|
938
1597
|
"circle",
|
|
939
1598
|
{
|
|
940
1599
|
className: "origin-center animate-circular-small-move stroke-interactive01",
|
|
@@ -946,7 +1605,7 @@ function Loading({ size = "medium", position = "fixed", height = "100%" }) {
|
|
|
946
1605
|
fill: "none"
|
|
947
1606
|
}
|
|
948
1607
|
) }),
|
|
949
|
-
size === "medium" && /* @__PURE__ */
|
|
1608
|
+
size === "medium" && /* @__PURE__ */ jsx21("svg", { className: svgClasses, viewBox: "0 0 32 32", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: /* @__PURE__ */ jsx21(
|
|
950
1609
|
"circle",
|
|
951
1610
|
{
|
|
952
1611
|
className: "origin-center animate-circular-medium-move stroke-interactive01",
|
|
@@ -958,7 +1617,7 @@ function Loading({ size = "medium", position = "fixed", height = "100%" }) {
|
|
|
958
1617
|
fill: "none"
|
|
959
1618
|
}
|
|
960
1619
|
) }),
|
|
961
|
-
size === "large" && /* @__PURE__ */
|
|
1620
|
+
size === "large" && /* @__PURE__ */ jsx21("svg", { className: svgClasses, viewBox: "0 0 64 64", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: /* @__PURE__ */ jsx21(
|
|
962
1621
|
"circle",
|
|
963
1622
|
{
|
|
964
1623
|
className: "origin-center animate-circular-large-move stroke-interactive01",
|
|
@@ -974,7 +1633,7 @@ function Loading({ size = "medium", position = "fixed", height = "100%" }) {
|
|
|
974
1633
|
}
|
|
975
1634
|
|
|
976
1635
|
// src/modal/modal.tsx
|
|
977
|
-
import { useEffect as
|
|
1636
|
+
import { useEffect as useEffect5, useState as useState7 } from "react";
|
|
978
1637
|
import { createPortal as createPortal2 } from "react-dom";
|
|
979
1638
|
|
|
980
1639
|
// src/modal/body-scroll-lock.tsx
|
|
@@ -1025,34 +1684,34 @@ function restoreProperty(element, property, value) {
|
|
|
1025
1684
|
}
|
|
1026
1685
|
|
|
1027
1686
|
// src/modal/modal-body.tsx
|
|
1028
|
-
import { jsx as
|
|
1687
|
+
import { jsx as jsx22 } from "react/jsx-runtime";
|
|
1029
1688
|
function ModalBody({ children }) {
|
|
1030
|
-
return /* @__PURE__ */
|
|
1689
|
+
return /* @__PURE__ */ jsx22("div", { className: "overflow-y-auto", children });
|
|
1031
1690
|
}
|
|
1032
1691
|
|
|
1033
1692
|
// src/modal/modal-context.ts
|
|
1034
|
-
import { createContext as
|
|
1035
|
-
var ModalContext =
|
|
1693
|
+
import { createContext as createContext4 } from "react";
|
|
1694
|
+
var ModalContext = createContext4({
|
|
1036
1695
|
onClose: () => null
|
|
1037
1696
|
});
|
|
1038
1697
|
|
|
1039
1698
|
// src/modal/modal-footer.tsx
|
|
1040
|
-
import
|
|
1041
|
-
import { jsx as
|
|
1699
|
+
import clsx18 from "clsx";
|
|
1700
|
+
import { jsx as jsx23 } from "react/jsx-runtime";
|
|
1042
1701
|
function ModalFooter({ children, isNoBorder = false }) {
|
|
1043
|
-
const wrapperClasses =
|
|
1702
|
+
const wrapperClasses = clsx18("flex w-full shrink-0 items-center rounded-b-lg px-6 py-4", {
|
|
1044
1703
|
"border-t-[1px] border-uiBorder01": !isNoBorder
|
|
1045
1704
|
});
|
|
1046
|
-
return /* @__PURE__ */
|
|
1705
|
+
return /* @__PURE__ */ jsx23("div", { className: wrapperClasses, children });
|
|
1047
1706
|
}
|
|
1048
1707
|
|
|
1049
1708
|
// src/modal/modal-header.tsx
|
|
1050
|
-
import
|
|
1051
|
-
import { useContext as
|
|
1052
|
-
import { jsx as
|
|
1709
|
+
import clsx19 from "clsx";
|
|
1710
|
+
import { useContext as useContext5 } from "react";
|
|
1711
|
+
import { jsx as jsx24, jsxs as jsxs9 } from "react/jsx-runtime";
|
|
1053
1712
|
function ModalHeader({ children, isNoBorder = false }) {
|
|
1054
|
-
const { onClose } =
|
|
1055
|
-
const headerClasses =
|
|
1713
|
+
const { onClose } = useContext5(ModalContext);
|
|
1714
|
+
const headerClasses = clsx19(
|
|
1056
1715
|
"typography-h5 flex w-full shrink-0 items-center justify-between rounded-t-lg px-6 text-text01",
|
|
1057
1716
|
{
|
|
1058
1717
|
"border-b border-uiBorder01": !isNoBorder,
|
|
@@ -1060,14 +1719,14 @@ function ModalHeader({ children, isNoBorder = false }) {
|
|
|
1060
1719
|
"h-12": onClose
|
|
1061
1720
|
}
|
|
1062
1721
|
);
|
|
1063
|
-
return /* @__PURE__ */
|
|
1064
|
-
/* @__PURE__ */
|
|
1065
|
-
onClose && /* @__PURE__ */
|
|
1722
|
+
return /* @__PURE__ */ jsxs9("div", { className: headerClasses, children: [
|
|
1723
|
+
/* @__PURE__ */ jsx24("div", { children }),
|
|
1724
|
+
onClose && /* @__PURE__ */ jsx24(IconButton, { icon: "close", size: "small", variant: "text", onClick: onClose })
|
|
1066
1725
|
] });
|
|
1067
1726
|
}
|
|
1068
1727
|
|
|
1069
1728
|
// src/modal/modal.tsx
|
|
1070
|
-
import { Fragment as Fragment4, jsx as
|
|
1729
|
+
import { Fragment as Fragment4, jsx as jsx25, jsxs as jsxs10 } from "react/jsx-runtime";
|
|
1071
1730
|
var LIMIT_WIDTH = 320;
|
|
1072
1731
|
var LIMIT_HEIGHT = 184;
|
|
1073
1732
|
function Modal({
|
|
@@ -1079,16 +1738,16 @@ function Modal({
|
|
|
1079
1738
|
onClose,
|
|
1080
1739
|
portalTargetRef
|
|
1081
1740
|
}) {
|
|
1082
|
-
const [isMounted, setIsMounted] =
|
|
1741
|
+
const [isMounted, setIsMounted] = useState7(false);
|
|
1083
1742
|
const renderWidth = typeof width === "number" ? Math.max(width, LIMIT_WIDTH) : width;
|
|
1084
1743
|
const renderHeight = typeof height === "number" ? Math.max(height, LIMIT_HEIGHT) : height;
|
|
1085
|
-
|
|
1744
|
+
useEffect5(() => {
|
|
1086
1745
|
setIsMounted(true);
|
|
1087
1746
|
}, []);
|
|
1088
|
-
return isMounted && isOpen ? /* @__PURE__ */
|
|
1089
|
-
/* @__PURE__ */
|
|
1747
|
+
return isMounted && isOpen ? /* @__PURE__ */ jsxs10(Fragment4, { children: [
|
|
1748
|
+
/* @__PURE__ */ jsx25(BodyScrollLock, {}),
|
|
1090
1749
|
createPortal2(
|
|
1091
|
-
/* @__PURE__ */
|
|
1750
|
+
/* @__PURE__ */ jsx25(ModalContext.Provider, { value: { onClose }, children: /* @__PURE__ */ jsx25("div", { className: "fixed left-0 top-0 z-overlay flex size-full items-center justify-center bg-backgroundOverlayBlack py-4", children: /* @__PURE__ */ jsx25(
|
|
1092
1751
|
"div",
|
|
1093
1752
|
{
|
|
1094
1753
|
className: "grid max-h-full min-h-[120px] grid-rows-[max-content_1fr_max-content] flex-col rounded-lg bg-uiBackground01 shadow-modalShadow",
|
|
@@ -1105,10 +1764,10 @@ Modal.Header = ModalHeader;
|
|
|
1105
1764
|
Modal.Footer = ModalFooter;
|
|
1106
1765
|
|
|
1107
1766
|
// src/notification-inline/notification-inline.tsx
|
|
1108
|
-
import { clsx as
|
|
1109
|
-
import { jsx as
|
|
1767
|
+
import { clsx as clsx20 } from "clsx";
|
|
1768
|
+
import { jsx as jsx26, jsxs as jsxs11 } from "react/jsx-runtime";
|
|
1110
1769
|
function NotificationInline({ state = "default", size = "medium", ...props }) {
|
|
1111
|
-
const wrapperClasses =
|
|
1770
|
+
const wrapperClasses = clsx20("typography-body13regular flex items-center gap-1 rounded text-text01", {
|
|
1112
1771
|
"bg-uiBackgroundError": state === "attention",
|
|
1113
1772
|
"bg-uiBackgroundWarning": state === "warning",
|
|
1114
1773
|
"bg-uiBackgroundBlue": state === "information",
|
|
@@ -1117,7 +1776,7 @@ function NotificationInline({ state = "default", size = "medium", ...props }) {
|
|
|
1117
1776
|
"p-2": size === "small",
|
|
1118
1777
|
"p-3": size === "medium"
|
|
1119
1778
|
});
|
|
1120
|
-
const iconClasses =
|
|
1779
|
+
const iconClasses = clsx20("flex items-center", {
|
|
1121
1780
|
"fill-supportError": state === "attention",
|
|
1122
1781
|
"fill-supportWarning": state === "warning",
|
|
1123
1782
|
"fill-blue-blue50": state === "information",
|
|
@@ -1133,28 +1792,28 @@ function NotificationInline({ state = "default", size = "medium", ...props }) {
|
|
|
1133
1792
|
small: "small",
|
|
1134
1793
|
medium: "medium"
|
|
1135
1794
|
};
|
|
1136
|
-
return /* @__PURE__ */
|
|
1137
|
-
state !== "default" && /* @__PURE__ */
|
|
1138
|
-
/* @__PURE__ */
|
|
1139
|
-
props.showClose === true && /* @__PURE__ */
|
|
1795
|
+
return /* @__PURE__ */ jsxs11("div", { className: wrapperClasses, children: [
|
|
1796
|
+
state !== "default" && /* @__PURE__ */ jsx26("div", { className: iconClasses, children: /* @__PURE__ */ jsx26(Icon, { name: iconName[state], size: iconSize[size] }) }),
|
|
1797
|
+
/* @__PURE__ */ jsx26("p", { className: "flex-1", children: props.children }),
|
|
1798
|
+
props.showClose === true && /* @__PURE__ */ jsx26("div", { className: "flex items-center", children: /* @__PURE__ */ jsx26(IconButton, { icon: "close", size: "small", variant: "text", onClick: props.onClickClose }) })
|
|
1140
1799
|
] });
|
|
1141
1800
|
}
|
|
1142
1801
|
|
|
1143
|
-
// src/pagination/pagination-button.tsx
|
|
1144
|
-
import { clsx as
|
|
1145
|
-
import { useContext as
|
|
1802
|
+
// src/pagination/pagination-button.tsx
|
|
1803
|
+
import { clsx as clsx21 } from "clsx";
|
|
1804
|
+
import { useContext as useContext6 } from "react";
|
|
1146
1805
|
|
|
1147
1806
|
// src/pagination/pagination-context.ts
|
|
1148
|
-
import { createContext as
|
|
1149
|
-
var PaginationContext =
|
|
1807
|
+
import { createContext as createContext5 } from "react";
|
|
1808
|
+
var PaginationContext = createContext5({
|
|
1150
1809
|
currentPage: 0
|
|
1151
1810
|
});
|
|
1152
1811
|
|
|
1153
1812
|
// src/pagination/pagination-button.tsx
|
|
1154
|
-
import { jsx as
|
|
1813
|
+
import { jsx as jsx27 } from "react/jsx-runtime";
|
|
1155
1814
|
function PaginationButton({ page, onClick }) {
|
|
1156
|
-
const { currentPage } =
|
|
1157
|
-
const buttonClasses =
|
|
1815
|
+
const { currentPage } = useContext6(PaginationContext);
|
|
1816
|
+
const buttonClasses = clsx21(
|
|
1158
1817
|
"flex h-8 min-w-8 items-center justify-center rounded fill-icon01 px-1",
|
|
1159
1818
|
"typography-label14regular",
|
|
1160
1819
|
"text-interactive02",
|
|
@@ -1162,11 +1821,11 @@ function PaginationButton({ page, onClick }) {
|
|
|
1162
1821
|
{ "border border-uiBorder02": page === currentPage },
|
|
1163
1822
|
{ "border-transparent": page !== currentPage }
|
|
1164
1823
|
);
|
|
1165
|
-
return /* @__PURE__ */
|
|
1824
|
+
return /* @__PURE__ */ jsx27("button", { type: "button", className: buttonClasses, onClick: () => onClick(page), children: page });
|
|
1166
1825
|
}
|
|
1167
1826
|
|
|
1168
1827
|
// src/pagination/pagination.tsx
|
|
1169
|
-
import { jsx as
|
|
1828
|
+
import { jsx as jsx28, jsxs as jsxs12 } from "react/jsx-runtime";
|
|
1170
1829
|
var START_PAGE = 1;
|
|
1171
1830
|
function Pagination({ currentPage, totalPage, sideNumPagesToShow = 3, onClick }) {
|
|
1172
1831
|
if (totalPage < START_PAGE) {
|
|
@@ -1202,14 +1861,14 @@ function Pagination({ currentPage, totalPage, sideNumPagesToShow = 3, onClick })
|
|
|
1202
1861
|
const hasHeadEllipsis = firstPageInList !== null && firstPageInList > START_PAGE + 1;
|
|
1203
1862
|
const hasTailEllipsis = lastPageInList !== null && lastPageInList < totalPage - 1;
|
|
1204
1863
|
const hasLastPageButton = totalPage > START_PAGE;
|
|
1205
|
-
return /* @__PURE__ */
|
|
1864
|
+
return /* @__PURE__ */ jsx28(
|
|
1206
1865
|
PaginationContext.Provider,
|
|
1207
1866
|
{
|
|
1208
1867
|
value: {
|
|
1209
1868
|
currentPage: clampedCurrentPage
|
|
1210
1869
|
},
|
|
1211
|
-
children: /* @__PURE__ */
|
|
1212
|
-
/* @__PURE__ */
|
|
1870
|
+
children: /* @__PURE__ */ jsxs12("ul", { className: "flex gap-1", children: [
|
|
1871
|
+
/* @__PURE__ */ jsx28("li", { className: "flex items-center", children: /* @__PURE__ */ jsx28(
|
|
1213
1872
|
IconButton,
|
|
1214
1873
|
{
|
|
1215
1874
|
isDisabled: isFirstPage,
|
|
@@ -1219,12 +1878,12 @@ function Pagination({ currentPage, totalPage, sideNumPagesToShow = 3, onClick })
|
|
|
1219
1878
|
onClick: () => onClick(Math.max(START_PAGE, clampedCurrentPage - 1))
|
|
1220
1879
|
}
|
|
1221
1880
|
) }),
|
|
1222
|
-
/* @__PURE__ */
|
|
1223
|
-
hasHeadEllipsis && /* @__PURE__ */
|
|
1224
|
-
pageList.map((page, index) => /* @__PURE__ */
|
|
1225
|
-
hasTailEllipsis && /* @__PURE__ */
|
|
1226
|
-
hasLastPageButton && /* @__PURE__ */
|
|
1227
|
-
/* @__PURE__ */
|
|
1881
|
+
/* @__PURE__ */ jsx28("li", { children: /* @__PURE__ */ jsx28(PaginationButton, { onClick: () => onClick(START_PAGE), page: START_PAGE }) }),
|
|
1882
|
+
hasHeadEllipsis && /* @__PURE__ */ jsx28("li", { className: threeDotIconClasses, children: /* @__PURE__ */ jsx28(Icon, { name: "more", size: "small" }) }),
|
|
1883
|
+
pageList.map((page, index) => /* @__PURE__ */ jsx28("li", { children: /* @__PURE__ */ jsx28(PaginationButton, { onClick: () => onClick(page), page }) }, index)),
|
|
1884
|
+
hasTailEllipsis && /* @__PURE__ */ jsx28("li", { className: threeDotIconClasses, children: /* @__PURE__ */ jsx28(Icon, { name: "more", size: "small" }) }),
|
|
1885
|
+
hasLastPageButton && /* @__PURE__ */ jsx28("li", { children: /* @__PURE__ */ jsx28(PaginationButton, { onClick: () => onClick(totalPage), page: totalPage }) }),
|
|
1886
|
+
/* @__PURE__ */ jsx28("li", { className: "flex items-center", children: /* @__PURE__ */ jsx28(
|
|
1228
1887
|
IconButton,
|
|
1229
1888
|
{
|
|
1230
1889
|
isDisabled: isLastPage,
|
|
@@ -1240,14 +1899,14 @@ function Pagination({ currentPage, totalPage, sideNumPagesToShow = 3, onClick })
|
|
|
1240
1899
|
}
|
|
1241
1900
|
|
|
1242
1901
|
// src/select/select.tsx
|
|
1243
|
-
import { autoUpdate, FloatingPortal, offset, size as sizeMiddleware, useFloating } from "@floating-ui/react";
|
|
1244
|
-
import { focusVisible as
|
|
1245
|
-
import
|
|
1246
|
-
import { useRef as
|
|
1902
|
+
import { autoUpdate as autoUpdate2, FloatingPortal as FloatingPortal2, offset as offset2, size as sizeMiddleware, useFloating as useFloating2 } from "@floating-ui/react";
|
|
1903
|
+
import { focusVisible as focusVisible10, selectColors } from "@zenkigen-inc/component-theme";
|
|
1904
|
+
import clsx24 from "clsx";
|
|
1905
|
+
import { useRef as useRef6, useState as useState8 } from "react";
|
|
1247
1906
|
|
|
1248
1907
|
// src/select/select-context.ts
|
|
1249
|
-
import { createContext as
|
|
1250
|
-
var SelectContext =
|
|
1908
|
+
import { createContext as createContext6 } from "react";
|
|
1909
|
+
var SelectContext = createContext6({
|
|
1251
1910
|
size: "medium",
|
|
1252
1911
|
setIsOptionListOpen: () => false,
|
|
1253
1912
|
variant: "outline",
|
|
@@ -1255,19 +1914,19 @@ var SelectContext = createContext4({
|
|
|
1255
1914
|
});
|
|
1256
1915
|
|
|
1257
1916
|
// src/select/select-item.tsx
|
|
1258
|
-
import { focusVisible as
|
|
1259
|
-
import
|
|
1260
|
-
import { useContext as
|
|
1261
|
-
import { jsx as
|
|
1917
|
+
import { focusVisible as focusVisible8 } from "@zenkigen-inc/component-theme";
|
|
1918
|
+
import clsx22 from "clsx";
|
|
1919
|
+
import { useContext as useContext7 } from "react";
|
|
1920
|
+
import { jsx as jsx29, jsxs as jsxs13 } from "react/jsx-runtime";
|
|
1262
1921
|
function SelectItem({ option }) {
|
|
1263
|
-
const { setIsOptionListOpen, selectedOption, onChange, isError } =
|
|
1922
|
+
const { setIsOptionListOpen, selectedOption, onChange, isError } = useContext7(SelectContext);
|
|
1264
1923
|
const handleClickItem = (option2) => {
|
|
1265
1924
|
onChange?.(option2);
|
|
1266
1925
|
setIsOptionListOpen(false);
|
|
1267
1926
|
};
|
|
1268
|
-
const itemClasses =
|
|
1927
|
+
const itemClasses = clsx22(
|
|
1269
1928
|
"typography-label14regular flex h-8 w-full items-center px-3 hover:bg-hover02 active:bg-active02",
|
|
1270
|
-
|
|
1929
|
+
focusVisible8.inset,
|
|
1271
1930
|
{
|
|
1272
1931
|
"text-interactive01 fill-interactive01 bg-selectedUi": option.id === selectedOption?.id && !(isError ?? false),
|
|
1273
1932
|
"text-supportError fill-supportError bg-uiBackgroundError": option.id === selectedOption?.id && isError,
|
|
@@ -1275,20 +1934,20 @@ function SelectItem({ option }) {
|
|
|
1275
1934
|
"pr-10": option.id !== selectedOption?.id
|
|
1276
1935
|
}
|
|
1277
1936
|
);
|
|
1278
|
-
return /* @__PURE__ */
|
|
1279
|
-
option.icon && /* @__PURE__ */
|
|
1280
|
-
/* @__PURE__ */
|
|
1281
|
-
option.id === selectedOption?.id && /* @__PURE__ */
|
|
1937
|
+
return /* @__PURE__ */ jsx29("li", { className: "flex w-full items-center", "data-id": option.id, children: /* @__PURE__ */ jsxs13("button", { className: itemClasses, type: "button", onClick: () => handleClickItem(option), children: [
|
|
1938
|
+
option.icon && /* @__PURE__ */ jsx29(Icon, { name: option.icon, size: "small" }),
|
|
1939
|
+
/* @__PURE__ */ jsx29("span", { className: "ml-1 flex-1 truncate text-left", children: option.label }),
|
|
1940
|
+
option.id === selectedOption?.id && /* @__PURE__ */ jsx29("div", { className: "ml-2 flex items-center", children: /* @__PURE__ */ jsx29(Icon, { name: "check", size: "small" }) })
|
|
1282
1941
|
] }) }, option.id);
|
|
1283
1942
|
}
|
|
1284
1943
|
|
|
1285
1944
|
// src/select/select-list.tsx
|
|
1286
|
-
import { focusVisible as
|
|
1287
|
-
import
|
|
1288
|
-
import { forwardRef as
|
|
1289
|
-
import { jsx as
|
|
1290
|
-
var SelectList =
|
|
1291
|
-
const { selectedOption, setIsOptionListOpen, variant, placeholder, onChange, floatingStyles, floatingRef } =
|
|
1945
|
+
import { focusVisible as focusVisible9 } from "@zenkigen-inc/component-theme";
|
|
1946
|
+
import clsx23 from "clsx";
|
|
1947
|
+
import { forwardRef as forwardRef5, useContext as useContext8, useLayoutEffect as useLayoutEffect2 } from "react";
|
|
1948
|
+
import { jsx as jsx30, jsxs as jsxs14 } from "react/jsx-runtime";
|
|
1949
|
+
var SelectList = forwardRef5(({ children, maxHeight }, ref) => {
|
|
1950
|
+
const { selectedOption, setIsOptionListOpen, variant, placeholder, onChange, floatingStyles, floatingRef } = useContext8(SelectContext);
|
|
1292
1951
|
const handleClickDeselect = () => {
|
|
1293
1952
|
onChange?.(null);
|
|
1294
1953
|
setIsOptionListOpen(false);
|
|
@@ -1311,22 +1970,22 @@ var SelectList = forwardRef2(({ children, maxHeight }, ref) => {
|
|
|
1311
1970
|
}
|
|
1312
1971
|
}
|
|
1313
1972
|
}, [selectedOption, maxHeight, floatingRef]);
|
|
1314
|
-
const listClasses =
|
|
1973
|
+
const listClasses = clsx23("z-dropdown overflow-y-auto rounded bg-uiBackground01 py-2 shadow-floatingShadow", {
|
|
1315
1974
|
"border-solid border border-uiBorder01": variant === "outline"
|
|
1316
1975
|
});
|
|
1317
|
-
const deselectButtonClasses =
|
|
1976
|
+
const deselectButtonClasses = clsx23(
|
|
1318
1977
|
"typography-label14regular flex h-8 w-full items-center px-3 text-interactive02 hover:bg-hover02 active:bg-active02",
|
|
1319
|
-
|
|
1978
|
+
focusVisible9.inset
|
|
1320
1979
|
);
|
|
1321
|
-
return /* @__PURE__ */
|
|
1980
|
+
return /* @__PURE__ */ jsxs14("ul", { className: listClasses, style: { maxHeight, ...floatingStyles }, ref, children: [
|
|
1322
1981
|
children,
|
|
1323
|
-
placeholder != null && selectedOption !== null && /* @__PURE__ */
|
|
1982
|
+
placeholder != null && selectedOption !== null && /* @__PURE__ */ jsx30("li", { children: /* @__PURE__ */ jsx30("button", { className: deselectButtonClasses, type: "button", onClick: handleClickDeselect, children: "\u9078\u629E\u89E3\u9664" }) })
|
|
1324
1983
|
] });
|
|
1325
1984
|
});
|
|
1326
1985
|
SelectList.displayName = "SelectList";
|
|
1327
1986
|
|
|
1328
1987
|
// src/select/select.tsx
|
|
1329
|
-
import { jsx as
|
|
1988
|
+
import { jsx as jsx31, jsxs as jsxs15 } from "react/jsx-runtime";
|
|
1330
1989
|
var FLOATING_OFFSET = 4;
|
|
1331
1990
|
function Select({
|
|
1332
1991
|
children,
|
|
@@ -1341,42 +2000,47 @@ function Select({
|
|
|
1341
2000
|
isError = false,
|
|
1342
2001
|
isOptionSelected = false,
|
|
1343
2002
|
onChange,
|
|
1344
|
-
optionListMaxHeight
|
|
2003
|
+
optionListMaxHeight,
|
|
2004
|
+
matchListToTrigger = false
|
|
1345
2005
|
}) {
|
|
1346
|
-
const [isOptionListOpen, setIsOptionListOpen] =
|
|
1347
|
-
const targetRef =
|
|
2006
|
+
const [isOptionListOpen, setIsOptionListOpen] = useState8(false);
|
|
2007
|
+
const targetRef = useRef6(null);
|
|
1348
2008
|
useOutsideClick(targetRef, () => setIsOptionListOpen(false));
|
|
1349
|
-
const { refs, floatingStyles } =
|
|
2009
|
+
const { refs, floatingStyles } = useFloating2({
|
|
1350
2010
|
open: isOptionListOpen,
|
|
1351
2011
|
onOpenChange: setIsOptionListOpen,
|
|
1352
2012
|
placement: "bottom-start",
|
|
1353
2013
|
middleware: [
|
|
1354
|
-
|
|
2014
|
+
offset2(FLOATING_OFFSET),
|
|
1355
2015
|
sizeMiddleware({
|
|
1356
2016
|
apply({ availableWidth, elements, rects }) {
|
|
1357
2017
|
const referenceWidth = rects.reference.width;
|
|
1358
|
-
|
|
1359
|
-
|
|
2018
|
+
if (matchListToTrigger) {
|
|
2019
|
+
elements.floating.style.width = `${referenceWidth}px`;
|
|
2020
|
+
} else {
|
|
2021
|
+
elements.floating.style.minWidth = `${referenceWidth}px`;
|
|
2022
|
+
elements.floating.style.maxWidth = `${availableWidth}px`;
|
|
2023
|
+
}
|
|
1360
2024
|
}
|
|
1361
2025
|
})
|
|
1362
2026
|
],
|
|
1363
|
-
whileElementsMounted:
|
|
2027
|
+
whileElementsMounted: autoUpdate2
|
|
1364
2028
|
});
|
|
1365
2029
|
const handleClickToggle = () => setIsOptionListOpen((prev) => !prev);
|
|
1366
2030
|
const buttonVariant = isError && !isDisabled ? `${variant}Error` : variant;
|
|
1367
2031
|
const isSelected = isOptionSelected && !isDisabled && selectedOption !== null && !isError;
|
|
1368
|
-
const wrapperClasses =
|
|
2032
|
+
const wrapperClasses = clsx24("relative flex shrink-0 items-center gap-1 rounded bg-uiBackground01", {
|
|
1369
2033
|
"h-6": size === "x-small" || size === "small",
|
|
1370
2034
|
"h-8": size === "medium",
|
|
1371
2035
|
"h-10": size === "large",
|
|
1372
2036
|
"cursor-not-allowed": isDisabled
|
|
1373
2037
|
});
|
|
1374
|
-
const buttonClasses =
|
|
2038
|
+
const buttonClasses = clsx24(
|
|
1375
2039
|
"flex size-full items-center rounded",
|
|
1376
2040
|
selectColors[buttonVariant].hover,
|
|
1377
2041
|
selectColors[buttonVariant].active,
|
|
1378
2042
|
selectColors[buttonVariant].disabled,
|
|
1379
|
-
|
|
2043
|
+
focusVisible10.normal,
|
|
1380
2044
|
{
|
|
1381
2045
|
[selectColors[buttonVariant].selected]: isSelected,
|
|
1382
2046
|
[selectColors[buttonVariant].base]: !isSelected,
|
|
@@ -1386,14 +2050,14 @@ function Select({
|
|
|
1386
2050
|
"border-supportError": !isSelected && !isDisabled && isError
|
|
1387
2051
|
}
|
|
1388
2052
|
);
|
|
1389
|
-
const labelClasses =
|
|
2053
|
+
const labelClasses = clsx24("overflow-hidden", {
|
|
1390
2054
|
"mr-1": size === "x-small",
|
|
1391
2055
|
"mr-2": size !== "x-small",
|
|
1392
2056
|
"typography-label12regular": size === "x-small",
|
|
1393
2057
|
"typography-label14regular": size === "small" || size === "medium",
|
|
1394
2058
|
"typography-label16regular": size === "large"
|
|
1395
2059
|
});
|
|
1396
|
-
return /* @__PURE__ */
|
|
2060
|
+
return /* @__PURE__ */ jsx31(
|
|
1397
2061
|
SelectContext.Provider,
|
|
1398
2062
|
{
|
|
1399
2063
|
value: {
|
|
@@ -1407,8 +2071,8 @@ function Select({
|
|
|
1407
2071
|
floatingStyles,
|
|
1408
2072
|
floatingRef: refs.floating
|
|
1409
2073
|
},
|
|
1410
|
-
children: /* @__PURE__ */
|
|
1411
|
-
/* @__PURE__ */
|
|
2074
|
+
children: /* @__PURE__ */ jsxs15("div", { className: wrapperClasses, style: { width, maxWidth }, ref: targetRef, children: [
|
|
2075
|
+
/* @__PURE__ */ jsxs15(
|
|
1412
2076
|
"button",
|
|
1413
2077
|
{
|
|
1414
2078
|
ref: refs.setReference,
|
|
@@ -1417,9 +2081,9 @@ function Select({
|
|
|
1417
2081
|
onClick: handleClickToggle,
|
|
1418
2082
|
disabled: isDisabled,
|
|
1419
2083
|
children: [
|
|
1420
|
-
selectedOption?.icon ? /* @__PURE__ */
|
|
1421
|
-
/* @__PURE__ */
|
|
1422
|
-
/* @__PURE__ */
|
|
2084
|
+
selectedOption?.icon ? /* @__PURE__ */ jsx31("div", { className: "mr-1 flex", children: /* @__PURE__ */ jsx31(Icon, { name: selectedOption.icon, size: size === "large" ? "medium" : "small" }) }) : placeholder != null && placeholderIcon && /* @__PURE__ */ jsx31("div", { className: "mr-1 flex", children: /* @__PURE__ */ jsx31(Icon, { name: placeholderIcon, size: size === "large" ? "medium" : "small" }) }),
|
|
2085
|
+
/* @__PURE__ */ jsx31("div", { className: labelClasses, children: /* @__PURE__ */ jsx31("div", { className: "truncate", children: selectedOption ? selectedOption.label : placeholder != null && placeholder }) }),
|
|
2086
|
+
/* @__PURE__ */ jsx31("div", { className: "ml-auto flex items-center", children: /* @__PURE__ */ jsx31(
|
|
1423
2087
|
Icon,
|
|
1424
2088
|
{
|
|
1425
2089
|
name: isOptionListOpen ? "angle-small-up" : "angle-small-down",
|
|
@@ -1429,7 +2093,7 @@ function Select({
|
|
|
1429
2093
|
]
|
|
1430
2094
|
}
|
|
1431
2095
|
),
|
|
1432
|
-
isOptionListOpen && !isDisabled && /* @__PURE__ */
|
|
2096
|
+
isOptionListOpen && !isDisabled && /* @__PURE__ */ jsx31(FloatingPortal2, { children: /* @__PURE__ */ jsx31("div", { className: "relative z-overlay", children: /* @__PURE__ */ jsx31(SelectList, { ref: refs.setFloating, maxHeight: optionListMaxHeight, children }) }) })
|
|
1433
2097
|
] })
|
|
1434
2098
|
}
|
|
1435
2099
|
);
|
|
@@ -1437,7 +2101,7 @@ function Select({
|
|
|
1437
2101
|
Select.Option = SelectItem;
|
|
1438
2102
|
|
|
1439
2103
|
// src/pagination-select/pagination-select.tsx
|
|
1440
|
-
import { jsx as
|
|
2104
|
+
import { jsx as jsx32, jsxs as jsxs16 } from "react/jsx-runtime";
|
|
1441
2105
|
function PaginationSelect({
|
|
1442
2106
|
totalSize,
|
|
1443
2107
|
currentPage,
|
|
@@ -1460,20 +2124,20 @@ function PaginationSelect({
|
|
|
1460
2124
|
});
|
|
1461
2125
|
const minCount = totalSize ? (currentPage - 1) * sizePerPage + 1 : 0;
|
|
1462
2126
|
const maxCount = currentPage * sizePerPage > totalSize ? totalSize : currentPage * sizePerPage;
|
|
1463
|
-
return /* @__PURE__ */
|
|
1464
|
-
/* @__PURE__ */
|
|
1465
|
-
/* @__PURE__ */
|
|
1466
|
-
/* @__PURE__ */
|
|
2127
|
+
return /* @__PURE__ */ jsxs16("nav", { "aria-label": "pagination", className: "flex items-center gap-x-1", children: [
|
|
2128
|
+
/* @__PURE__ */ jsxs16("div", { className: "flex items-center gap-x-2", children: [
|
|
2129
|
+
/* @__PURE__ */ jsxs16("div", { className: "typography-label14regular flex gap-1 text-text01", children: [
|
|
2130
|
+
/* @__PURE__ */ jsxs16("span", { className: " ", children: [
|
|
1467
2131
|
minCount > 0 && `${minCount} - `,
|
|
1468
2132
|
maxCount
|
|
1469
2133
|
] }),
|
|
1470
|
-
/* @__PURE__ */
|
|
2134
|
+
/* @__PURE__ */ jsxs16("span", { children: [
|
|
1471
2135
|
"/ ",
|
|
1472
2136
|
totalSize
|
|
1473
2137
|
] }),
|
|
1474
|
-
/* @__PURE__ */
|
|
2138
|
+
/* @__PURE__ */ jsx32("span", { children: countLabel })
|
|
1475
2139
|
] }),
|
|
1476
|
-
/* @__PURE__ */
|
|
2140
|
+
/* @__PURE__ */ jsx32(
|
|
1477
2141
|
Select,
|
|
1478
2142
|
{
|
|
1479
2143
|
size: "medium",
|
|
@@ -1482,17 +2146,17 @@ function PaginationSelect({
|
|
|
1482
2146
|
optionListMaxHeight,
|
|
1483
2147
|
onChange: (option) => option && onChange(Number(option.value)),
|
|
1484
2148
|
isDisabled: pageMax === 0,
|
|
1485
|
-
children: optionsList.map((option) => /* @__PURE__ */
|
|
2149
|
+
children: optionsList.map((option) => /* @__PURE__ */ jsx32(Select.Option, { option }, option.id))
|
|
1486
2150
|
}
|
|
1487
2151
|
),
|
|
1488
|
-
/* @__PURE__ */
|
|
2152
|
+
/* @__PURE__ */ jsxs16("div", { className: "typography-label14regular text-text02", children: [
|
|
1489
2153
|
"/ ",
|
|
1490
2154
|
pageMax,
|
|
1491
2155
|
pageLabel
|
|
1492
2156
|
] })
|
|
1493
2157
|
] }),
|
|
1494
|
-
/* @__PURE__ */
|
|
1495
|
-
/* @__PURE__ */
|
|
2158
|
+
/* @__PURE__ */ jsxs16("div", { className: "flex items-center", children: [
|
|
2159
|
+
/* @__PURE__ */ jsx32(
|
|
1496
2160
|
IconButton,
|
|
1497
2161
|
{
|
|
1498
2162
|
variant: "text",
|
|
@@ -1502,7 +2166,7 @@ function PaginationSelect({
|
|
|
1502
2166
|
onClick: onClickPrevButton
|
|
1503
2167
|
}
|
|
1504
2168
|
),
|
|
1505
|
-
/* @__PURE__ */
|
|
2169
|
+
/* @__PURE__ */ jsx32(
|
|
1506
2170
|
IconButton,
|
|
1507
2171
|
{
|
|
1508
2172
|
variant: "text",
|
|
@@ -1517,17 +2181,17 @@ function PaginationSelect({
|
|
|
1517
2181
|
}
|
|
1518
2182
|
|
|
1519
2183
|
// src/password-input/password-input.tsx
|
|
1520
|
-
import { forwardRef as
|
|
2184
|
+
import { forwardRef as forwardRef9, useState as useState9 } from "react";
|
|
1521
2185
|
|
|
1522
2186
|
// src/text-input/text-input.tsx
|
|
1523
|
-
import { clsx as
|
|
1524
|
-
import { Children, cloneElement, forwardRef as
|
|
2187
|
+
import { clsx as clsx27 } from "clsx";
|
|
2188
|
+
import { Children as Children2, cloneElement as cloneElement4, forwardRef as forwardRef8, isValidElement as isValidElement2, useId as useId3, useMemo as useMemo3 } from "react";
|
|
1525
2189
|
|
|
1526
2190
|
// src/text-input/text-input-context.tsx
|
|
1527
|
-
import { createContext as
|
|
1528
|
-
var TextInputCompoundContext =
|
|
2191
|
+
import { createContext as createContext7, useContext as useContext9 } from "react";
|
|
2192
|
+
var TextInputCompoundContext = createContext7(null);
|
|
1529
2193
|
var useTextInputCompoundContext = (componentName) => {
|
|
1530
|
-
const context =
|
|
2194
|
+
const context = useContext9(TextInputCompoundContext);
|
|
1531
2195
|
if (context == null) {
|
|
1532
2196
|
throw new Error(`${componentName} \u3092\u4F7F\u7528\u3059\u308B\u306B\u306F TextInput \u306E\u5B50\u8981\u7D20\u3068\u3057\u3066\u914D\u7F6E\u3059\u308B\u5FC5\u8981\u304C\u3042\u308B\u3002`);
|
|
1533
2197
|
}
|
|
@@ -1535,10 +2199,10 @@ var useTextInputCompoundContext = (componentName) => {
|
|
|
1535
2199
|
};
|
|
1536
2200
|
|
|
1537
2201
|
// src/text-input/text-input-error-message.tsx
|
|
1538
|
-
import { clsx as
|
|
1539
|
-
import { forwardRef as
|
|
1540
|
-
import { jsx as
|
|
1541
|
-
var TextInputErrorMessage =
|
|
2202
|
+
import { clsx as clsx25 } from "clsx";
|
|
2203
|
+
import { forwardRef as forwardRef6 } from "react";
|
|
2204
|
+
import { jsx as jsx33 } from "react/jsx-runtime";
|
|
2205
|
+
var TextInputErrorMessage = forwardRef6(
|
|
1542
2206
|
({ "aria-live": ariaLive = "assertive", ...props }, ref) => {
|
|
1543
2207
|
const { inputProps } = useTextInputCompoundContext("TextInput.ErrorMessage");
|
|
1544
2208
|
const typographyClass = inputProps.size === "large" ? "typography-label12regular" : "typography-label11regular";
|
|
@@ -1546,26 +2210,26 @@ var TextInputErrorMessage = forwardRef3(
|
|
|
1546
2210
|
if (!shouldRender) {
|
|
1547
2211
|
return null;
|
|
1548
2212
|
}
|
|
1549
|
-
const errorMessageClassName =
|
|
1550
|
-
return /* @__PURE__ */
|
|
2213
|
+
const errorMessageClassName = clsx25(typographyClass, "text-supportError");
|
|
2214
|
+
return /* @__PURE__ */ jsx33("div", { ref, className: errorMessageClassName, "aria-live": ariaLive, ...props });
|
|
1551
2215
|
}
|
|
1552
2216
|
);
|
|
1553
2217
|
TextInputErrorMessage.displayName = "TextInput.ErrorMessage";
|
|
1554
2218
|
|
|
1555
2219
|
// src/text-input/text-input-helper-message.tsx
|
|
1556
|
-
import { clsx as
|
|
1557
|
-
import { forwardRef as
|
|
1558
|
-
import { jsx as
|
|
1559
|
-
var TextInputHelperMessage =
|
|
2220
|
+
import { clsx as clsx26 } from "clsx";
|
|
2221
|
+
import { forwardRef as forwardRef7 } from "react";
|
|
2222
|
+
import { jsx as jsx34 } from "react/jsx-runtime";
|
|
2223
|
+
var TextInputHelperMessage = forwardRef7((props, ref) => {
|
|
1560
2224
|
const { inputProps } = useTextInputCompoundContext("TextInput.HelperMessage");
|
|
1561
2225
|
const typographyClass = inputProps.size === "large" ? "typography-label12regular" : "typography-label11regular";
|
|
1562
|
-
const helperMessageClassName =
|
|
1563
|
-
return /* @__PURE__ */
|
|
2226
|
+
const helperMessageClassName = clsx26(typographyClass, "text-text02");
|
|
2227
|
+
return /* @__PURE__ */ jsx34("div", { ref, className: helperMessageClassName, ...props });
|
|
1564
2228
|
});
|
|
1565
2229
|
TextInputHelperMessage.displayName = "TextInput.HelperMessage";
|
|
1566
2230
|
|
|
1567
2231
|
// src/text-input/text-input.tsx
|
|
1568
|
-
import { jsx as
|
|
2232
|
+
import { jsx as jsx35, jsxs as jsxs17 } from "react/jsx-runtime";
|
|
1569
2233
|
function TextInputInner({
|
|
1570
2234
|
size = "medium",
|
|
1571
2235
|
isError = false,
|
|
@@ -1575,9 +2239,9 @@ function TextInputInner({
|
|
|
1575
2239
|
children,
|
|
1576
2240
|
...props
|
|
1577
2241
|
}, ref) {
|
|
1578
|
-
const autoGeneratedId =
|
|
2242
|
+
const autoGeneratedId = useId3();
|
|
1579
2243
|
const { className: _className, ...restInputProps } = props;
|
|
1580
|
-
const inputPropsForContext =
|
|
2244
|
+
const inputPropsForContext = useMemo3(
|
|
1581
2245
|
() => ({
|
|
1582
2246
|
...restInputProps,
|
|
1583
2247
|
size,
|
|
@@ -1588,7 +2252,7 @@ function TextInputInner({
|
|
|
1588
2252
|
}),
|
|
1589
2253
|
[restInputProps, size, isError, disabled, onClickClearButton, after]
|
|
1590
2254
|
);
|
|
1591
|
-
const contextValue =
|
|
2255
|
+
const contextValue = useMemo3(
|
|
1592
2256
|
() => ({
|
|
1593
2257
|
inputProps: inputPropsForContext,
|
|
1594
2258
|
forwardedRef: ref
|
|
@@ -1598,21 +2262,21 @@ function TextInputInner({
|
|
|
1598
2262
|
const helperMessageIds = [];
|
|
1599
2263
|
const errorIds = [];
|
|
1600
2264
|
const describedByBaseId = restInputProps.id ?? autoGeneratedId;
|
|
1601
|
-
const enhancedChildren =
|
|
1602
|
-
if (!
|
|
2265
|
+
const enhancedChildren = Children2.map(children, (child) => {
|
|
2266
|
+
if (!isValidElement2(child)) {
|
|
1603
2267
|
return child;
|
|
1604
2268
|
}
|
|
1605
2269
|
if (child.type === TextInputHelperMessage) {
|
|
1606
2270
|
const helperChild = child;
|
|
1607
2271
|
const assignedId = helperChild.props.id ?? `${describedByBaseId}-helper-${helperMessageIds.length + 1}`;
|
|
1608
2272
|
helperMessageIds.push(assignedId);
|
|
1609
|
-
return
|
|
2273
|
+
return cloneElement4(helperChild, { id: assignedId });
|
|
1610
2274
|
}
|
|
1611
2275
|
if (child.type === TextInputErrorMessage && isError) {
|
|
1612
2276
|
const errorChild = child;
|
|
1613
2277
|
const assignedId = errorChild.props.id ?? `${describedByBaseId}-error-${errorIds.length + 1}`;
|
|
1614
2278
|
errorIds.push(assignedId);
|
|
1615
|
-
return
|
|
2279
|
+
return cloneElement4(errorChild, { id: assignedId });
|
|
1616
2280
|
}
|
|
1617
2281
|
return child;
|
|
1618
2282
|
});
|
|
@@ -1635,7 +2299,7 @@ function TextInputInner({
|
|
|
1635
2299
|
};
|
|
1636
2300
|
const isShowClearButton = !!onClickClearButton && restInputProps.value.length !== 0 && !disabled;
|
|
1637
2301
|
const hasTrailingElement = isShowClearButton || after != null;
|
|
1638
|
-
const inputWrapClasses =
|
|
2302
|
+
const inputWrapClasses = clsx27("relative flex items-center gap-2 overflow-hidden rounded border", {
|
|
1639
2303
|
"border-uiBorder02": !isError && !disabled,
|
|
1640
2304
|
"border-supportError": isError && !disabled,
|
|
1641
2305
|
"hover:border-hoverInput": !disabled && !isError,
|
|
@@ -1645,24 +2309,24 @@ function TextInputInner({
|
|
|
1645
2309
|
"pr-2": size === "medium" && hasTrailingElement,
|
|
1646
2310
|
"pr-3": size === "large" && hasTrailingElement
|
|
1647
2311
|
});
|
|
1648
|
-
const inputClasses =
|
|
2312
|
+
const inputClasses = clsx27("flex-1 outline-0 placeholder:text-textPlaceholder disabled:text-textPlaceholder", {
|
|
1649
2313
|
["typography-label14regular min-h-8 px-2"]: size === "medium",
|
|
1650
2314
|
["typography-label16regular min-h-10 px-3"]: size === "large",
|
|
1651
2315
|
"text-text01": !isError,
|
|
1652
2316
|
"text-supportError": isError,
|
|
1653
2317
|
"pr-0": hasTrailingElement
|
|
1654
2318
|
});
|
|
1655
|
-
const inputElement = /* @__PURE__ */
|
|
1656
|
-
/* @__PURE__ */
|
|
2319
|
+
const inputElement = /* @__PURE__ */ jsxs17("div", { className: inputWrapClasses, children: [
|
|
2320
|
+
/* @__PURE__ */ jsx35("input", { ref, size: 1, className: inputClasses, ...mergedInputProps }),
|
|
1657
2321
|
after,
|
|
1658
|
-
isShowClearButton && /* @__PURE__ */
|
|
2322
|
+
isShowClearButton && /* @__PURE__ */ jsx35(IconButton, { variant: "text", icon: "close", size: "small", onClick: onClickClearButton })
|
|
1659
2323
|
] });
|
|
1660
|
-
const stackedChildren = enhancedChildren == null ? [] :
|
|
2324
|
+
const stackedChildren = enhancedChildren == null ? [] : Children2.toArray(enhancedChildren);
|
|
1661
2325
|
const hasMessageChildren = stackedChildren.length > 0;
|
|
1662
2326
|
if (!hasMessageChildren) {
|
|
1663
|
-
return /* @__PURE__ */
|
|
2327
|
+
return /* @__PURE__ */ jsx35(TextInputCompoundContext.Provider, { value: contextValue, children: inputElement });
|
|
1664
2328
|
}
|
|
1665
|
-
return /* @__PURE__ */
|
|
2329
|
+
return /* @__PURE__ */ jsx35(TextInputCompoundContext.Provider, { value: contextValue, children: /* @__PURE__ */ jsxs17("div", { className: "flex flex-col gap-2", children: [
|
|
1666
2330
|
inputElement,
|
|
1667
2331
|
stackedChildren
|
|
1668
2332
|
] }) });
|
|
@@ -1673,10 +2337,10 @@ var attachStatics = (component) => {
|
|
|
1673
2337
|
component.displayName = "TextInput";
|
|
1674
2338
|
return component;
|
|
1675
2339
|
};
|
|
1676
|
-
var TextInputPublic =
|
|
2340
|
+
var TextInputPublic = forwardRef8(function TextInputPublic2(props, ref) {
|
|
1677
2341
|
return TextInputInner(props, ref);
|
|
1678
2342
|
});
|
|
1679
|
-
var InternalTextInputBase =
|
|
2343
|
+
var InternalTextInputBase = forwardRef8(
|
|
1680
2344
|
function InternalTextInputBase2(props, ref) {
|
|
1681
2345
|
return TextInputInner(props, ref);
|
|
1682
2346
|
}
|
|
@@ -1685,14 +2349,14 @@ var TextInput = attachStatics(TextInputPublic);
|
|
|
1685
2349
|
var InternalTextInput = attachStatics(InternalTextInputBase);
|
|
1686
2350
|
|
|
1687
2351
|
// src/password-input/password-input.tsx
|
|
1688
|
-
import { jsx as
|
|
1689
|
-
var PasswordInputBase =
|
|
1690
|
-
const [isPasswordVisible, setIsPasswordVisible] =
|
|
2352
|
+
import { jsx as jsx36 } from "react/jsx-runtime";
|
|
2353
|
+
var PasswordInputBase = forwardRef9(function PasswordInput({ disabled = false, children, ...props }, ref) {
|
|
2354
|
+
const [isPasswordVisible, setIsPasswordVisible] = useState9(false);
|
|
1691
2355
|
const { className: _className, ...textInputProps } = props;
|
|
1692
2356
|
const handlePasswordVisibilityToggle = () => {
|
|
1693
2357
|
setIsPasswordVisible((prev) => !prev);
|
|
1694
2358
|
};
|
|
1695
|
-
const passwordToggleButton = /* @__PURE__ */
|
|
2359
|
+
const passwordToggleButton = /* @__PURE__ */ jsx36(
|
|
1696
2360
|
IconButton,
|
|
1697
2361
|
{
|
|
1698
2362
|
variant: "text",
|
|
@@ -1703,7 +2367,7 @@ var PasswordInputBase = forwardRef6(function PasswordInput({ disabled = false, c
|
|
|
1703
2367
|
"aria-label": isPasswordVisible === true ? "\u30D1\u30B9\u30EF\u30FC\u30C9\u3092\u975E\u8868\u793A\u306B\u3059\u308B" : "\u30D1\u30B9\u30EF\u30FC\u30C9\u3092\u8868\u793A\u3059\u308B"
|
|
1704
2368
|
}
|
|
1705
2369
|
);
|
|
1706
|
-
return /* @__PURE__ */
|
|
2370
|
+
return /* @__PURE__ */ jsx36(
|
|
1707
2371
|
InternalTextInput,
|
|
1708
2372
|
{
|
|
1709
2373
|
ref,
|
|
@@ -1721,240 +2385,48 @@ var PasswordInput2 = Object.assign(PasswordInputBase, {
|
|
|
1721
2385
|
displayName: "PasswordInput"
|
|
1722
2386
|
});
|
|
1723
2387
|
|
|
1724
|
-
// src/popover/popover.tsx
|
|
1725
|
-
import { autoUpdate as autoUpdate2, offset as offset2, useFloating as useFloating2, useId as useFloatingId } from "@floating-ui/react";
|
|
1726
|
-
import { useEffect as useEffect4, useMemo as useMemo2, useRef as useRef4 } from "react";
|
|
1727
|
-
|
|
1728
|
-
// src/popover/popover-content.tsx
|
|
1729
|
-
import { FloatingPortal as FloatingPortal2, useDismiss, useInteractions, useRole } from "@floating-ui/react";
|
|
1730
|
-
import * as React from "react";
|
|
1731
|
-
import { forwardRef as forwardRef7, useCallback as useCallback6, useEffect as useEffect3 } from "react";
|
|
1732
|
-
|
|
1733
|
-
// src/utils/react-utils.ts
|
|
1734
|
-
function composeRefs(...refs) {
|
|
1735
|
-
return (node) => {
|
|
1736
|
-
for (const ref of refs) {
|
|
1737
|
-
if (ref == null) {
|
|
1738
|
-
continue;
|
|
1739
|
-
}
|
|
1740
|
-
if (typeof ref === "function") {
|
|
1741
|
-
ref(node);
|
|
1742
|
-
} else {
|
|
1743
|
-
ref.current = node;
|
|
1744
|
-
}
|
|
1745
|
-
}
|
|
1746
|
-
};
|
|
1747
|
-
}
|
|
1748
|
-
function isElement(node) {
|
|
1749
|
-
return node != null && typeof node === "object" && "type" in node;
|
|
1750
|
-
}
|
|
1751
|
-
|
|
1752
|
-
// src/popover/popover-context.ts
|
|
1753
|
-
import { createContext as createContext6, useContext as useContext8 } from "react";
|
|
1754
|
-
var PopoverContext = createContext6(null);
|
|
1755
|
-
var usePopoverContext = () => {
|
|
1756
|
-
const context = useContext8(PopoverContext);
|
|
1757
|
-
if (context == null) {
|
|
1758
|
-
throw new Error("Popover components must be used inside <Popover.Root>");
|
|
1759
|
-
}
|
|
1760
|
-
return context;
|
|
1761
|
-
};
|
|
1762
|
-
|
|
1763
|
-
// src/popover/popover-content.tsx
|
|
1764
|
-
import { jsx as jsx30 } from "react/jsx-runtime";
|
|
1765
|
-
var PopoverContent = forwardRef7(function PopoverContent2({ children }, ref) {
|
|
1766
|
-
const { isOpen, triggerRef, floating, panelId, onClose } = usePopoverContext();
|
|
1767
|
-
const shouldCloseOnOutsidePress = useCallback6(
|
|
1768
|
-
(event) => {
|
|
1769
|
-
const target = event.target;
|
|
1770
|
-
if (!(target instanceof Element)) {
|
|
1771
|
-
return true;
|
|
1772
|
-
}
|
|
1773
|
-
const floatingElement = floating.refs.floating.current;
|
|
1774
|
-
const closestOverlay = target.closest(".z-overlay, .z-dropdown");
|
|
1775
|
-
if (closestOverlay !== null && floatingElement instanceof Element) {
|
|
1776
|
-
const isInsideOwnFloating = floatingElement.contains(closestOverlay);
|
|
1777
|
-
return isInsideOwnFloating;
|
|
1778
|
-
}
|
|
1779
|
-
return true;
|
|
1780
|
-
},
|
|
1781
|
-
[floating.refs.floating]
|
|
1782
|
-
);
|
|
1783
|
-
const dismiss = useDismiss(floating.context, {
|
|
1784
|
-
outsidePressEvent: "pointerdown",
|
|
1785
|
-
outsidePress: shouldCloseOnOutsidePress,
|
|
1786
|
-
escapeKey: false
|
|
1787
|
-
});
|
|
1788
|
-
const interactions = useInteractions([dismiss, useRole(floating.context, { role: "dialog" })]);
|
|
1789
|
-
useEffect3(() => {
|
|
1790
|
-
if (isOpen) {
|
|
1791
|
-
const element = floating.refs.floating.current;
|
|
1792
|
-
element?.focus?.({ preventScroll: true });
|
|
1793
|
-
}
|
|
1794
|
-
}, [isOpen, floating.refs.floating]);
|
|
1795
|
-
useEffect3(() => {
|
|
1796
|
-
if (!isOpen) {
|
|
1797
|
-
triggerRef.current?.focus({ preventScroll: true });
|
|
1798
|
-
}
|
|
1799
|
-
}, [isOpen, triggerRef]);
|
|
1800
|
-
const handleKeyDown = useCallback6(
|
|
1801
|
-
(event) => {
|
|
1802
|
-
if (event.key === "Escape") {
|
|
1803
|
-
event.stopPropagation();
|
|
1804
|
-
if (onClose != null) {
|
|
1805
|
-
onClose({ reason: "escape-key-down" });
|
|
1806
|
-
}
|
|
1807
|
-
}
|
|
1808
|
-
},
|
|
1809
|
-
[onClose]
|
|
1810
|
-
);
|
|
1811
|
-
let wrappedChildren = children;
|
|
1812
|
-
if (isElement(children)) {
|
|
1813
|
-
const childProps = children.props;
|
|
1814
|
-
wrappedChildren = React.cloneElement(children, {
|
|
1815
|
-
...childProps,
|
|
1816
|
-
...childProps.id == null && { id: panelId },
|
|
1817
|
-
...childProps.role == null && { role: "dialog" }
|
|
1818
|
-
});
|
|
1819
|
-
}
|
|
1820
|
-
return /* @__PURE__ */ jsx30(FloatingPortal2, { children: isOpen ? /* @__PURE__ */ jsx30(
|
|
1821
|
-
"div",
|
|
1822
|
-
{
|
|
1823
|
-
...interactions.getFloatingProps({
|
|
1824
|
-
ref: composeRefs(floating.refs.setFloating, ref),
|
|
1825
|
-
tabIndex: -1,
|
|
1826
|
-
onKeyDown: handleKeyDown,
|
|
1827
|
-
style: {
|
|
1828
|
-
position: floating.strategy,
|
|
1829
|
-
top: floating.y ?? 0,
|
|
1830
|
-
left: floating.x ?? 0,
|
|
1831
|
-
outline: "0"
|
|
1832
|
-
}
|
|
1833
|
-
}),
|
|
1834
|
-
children: wrappedChildren
|
|
1835
|
-
}
|
|
1836
|
-
) : null });
|
|
1837
|
-
});
|
|
1838
|
-
|
|
1839
|
-
// src/popover/popover-trigger.tsx
|
|
1840
|
-
import * as React2 from "react";
|
|
1841
|
-
import { forwardRef as forwardRef8 } from "react";
|
|
1842
|
-
var PopoverTrigger = forwardRef8(function PopoverTrigger2({ children }, ref) {
|
|
1843
|
-
const { isOpen, floating, triggerRef, anchorRef, panelId } = usePopoverContext();
|
|
1844
|
-
if (!isElement(children)) {
|
|
1845
|
-
return null;
|
|
1846
|
-
}
|
|
1847
|
-
const handleTriggerRef = (node) => {
|
|
1848
|
-
triggerRef.current = node;
|
|
1849
|
-
if (anchorRef == null) {
|
|
1850
|
-
floating.refs.setReference(node);
|
|
1851
|
-
}
|
|
1852
|
-
if (typeof ref === "function") {
|
|
1853
|
-
ref(node);
|
|
1854
|
-
} else if (ref != null) {
|
|
1855
|
-
ref.current = node;
|
|
1856
|
-
}
|
|
1857
|
-
};
|
|
1858
|
-
const childProps = children.props;
|
|
1859
|
-
const childRef = childProps.ref;
|
|
1860
|
-
return React2.cloneElement(children, {
|
|
1861
|
-
...childProps,
|
|
1862
|
-
ref: composeRefs(childRef, handleTriggerRef),
|
|
1863
|
-
"aria-haspopup": "dialog",
|
|
1864
|
-
"aria-expanded": isOpen,
|
|
1865
|
-
"aria-controls": panelId
|
|
1866
|
-
});
|
|
1867
|
-
});
|
|
1868
|
-
|
|
1869
|
-
// src/popover/popover.tsx
|
|
1870
|
-
import { jsx as jsx31 } from "react/jsx-runtime";
|
|
1871
|
-
function Popover({
|
|
1872
|
-
isOpen,
|
|
1873
|
-
children,
|
|
1874
|
-
placement = "top",
|
|
1875
|
-
offset: offsetValue = 8,
|
|
1876
|
-
onClose,
|
|
1877
|
-
anchorRef
|
|
1878
|
-
}) {
|
|
1879
|
-
const triggerRef = useRef4(null);
|
|
1880
|
-
const floating = useFloating2({
|
|
1881
|
-
open: isOpen,
|
|
1882
|
-
onOpenChange: (open) => {
|
|
1883
|
-
if (!open && onClose != null) {
|
|
1884
|
-
onClose({ reason: "outside-click" });
|
|
1885
|
-
}
|
|
1886
|
-
},
|
|
1887
|
-
placement,
|
|
1888
|
-
middleware: [offset2(offsetValue)],
|
|
1889
|
-
whileElementsMounted: autoUpdate2,
|
|
1890
|
-
strategy: "fixed"
|
|
1891
|
-
});
|
|
1892
|
-
useEffect4(() => {
|
|
1893
|
-
if (anchorRef?.current) {
|
|
1894
|
-
floating.refs.setReference(anchorRef.current);
|
|
1895
|
-
}
|
|
1896
|
-
}, [anchorRef, floating.refs]);
|
|
1897
|
-
const contentId = useFloatingId() ?? "";
|
|
1898
|
-
const panelId = `${contentId}-panel`;
|
|
1899
|
-
const contextValue = useMemo2(
|
|
1900
|
-
() => ({
|
|
1901
|
-
isOpen,
|
|
1902
|
-
triggerRef,
|
|
1903
|
-
anchorRef,
|
|
1904
|
-
floating,
|
|
1905
|
-
contentId,
|
|
1906
|
-
panelId,
|
|
1907
|
-
onClose
|
|
1908
|
-
}),
|
|
1909
|
-
[isOpen, triggerRef, anchorRef, floating, contentId, panelId, onClose]
|
|
1910
|
-
);
|
|
1911
|
-
return /* @__PURE__ */ jsx31(PopoverContext.Provider, { value: contextValue, children });
|
|
1912
|
-
}
|
|
1913
|
-
Popover.Trigger = PopoverTrigger;
|
|
1914
|
-
Popover.Content = PopoverContent;
|
|
1915
|
-
|
|
1916
2388
|
// src/popup/popup.tsx
|
|
1917
|
-
import { useContext as
|
|
2389
|
+
import { useContext as useContext11 } from "react";
|
|
1918
2390
|
|
|
1919
2391
|
// src/popup/popup-body.tsx
|
|
1920
|
-
import { jsx as
|
|
2392
|
+
import { jsx as jsx37 } from "react/jsx-runtime";
|
|
1921
2393
|
function PopupBody({ children }) {
|
|
1922
|
-
return /* @__PURE__ */
|
|
2394
|
+
return /* @__PURE__ */ jsx37("div", { className: "overflow-y-auto", children });
|
|
1923
2395
|
}
|
|
1924
2396
|
|
|
1925
2397
|
// src/popup/popup-context.ts
|
|
1926
|
-
import { createContext as
|
|
1927
|
-
var PopupContext =
|
|
2398
|
+
import { createContext as createContext8 } from "react";
|
|
2399
|
+
var PopupContext = createContext8({
|
|
1928
2400
|
isOpen: false,
|
|
1929
2401
|
onClose: () => null
|
|
1930
2402
|
});
|
|
1931
2403
|
|
|
1932
2404
|
// src/popup/popup-footer.tsx
|
|
1933
|
-
import { jsx as
|
|
2405
|
+
import { jsx as jsx38 } from "react/jsx-runtime";
|
|
1934
2406
|
function PopupFooter({ children }) {
|
|
1935
|
-
return /* @__PURE__ */
|
|
2407
|
+
return /* @__PURE__ */ jsx38("div", { className: "flex w-full shrink-0 items-center rounded-b-lg px-6 py-3", children });
|
|
1936
2408
|
}
|
|
1937
2409
|
|
|
1938
2410
|
// src/popup/popup-header.tsx
|
|
1939
|
-
import { useContext as
|
|
1940
|
-
import { jsx as
|
|
2411
|
+
import { useContext as useContext10 } from "react";
|
|
2412
|
+
import { jsx as jsx39, jsxs as jsxs18 } from "react/jsx-runtime";
|
|
1941
2413
|
function PopupHeader({ children, before }) {
|
|
1942
|
-
const { onClose } =
|
|
1943
|
-
return /* @__PURE__ */
|
|
1944
|
-
/* @__PURE__ */
|
|
2414
|
+
const { onClose } = useContext10(PopupContext);
|
|
2415
|
+
return /* @__PURE__ */ jsxs18("div", { className: "typography-h5 flex h-12 w-full shrink-0 items-start justify-between rounded-t-lg px-6 pt-3 text-text01", children: [
|
|
2416
|
+
/* @__PURE__ */ jsxs18("div", { className: "flex items-center gap-1", children: [
|
|
1945
2417
|
before,
|
|
1946
2418
|
children
|
|
1947
2419
|
] }),
|
|
1948
|
-
onClose && /* @__PURE__ */
|
|
2420
|
+
onClose && /* @__PURE__ */ jsx39(IconButton, { icon: "close", size: "small", variant: "text", onClick: onClose })
|
|
1949
2421
|
] });
|
|
1950
2422
|
}
|
|
1951
2423
|
|
|
1952
2424
|
// src/popup/popup.tsx
|
|
1953
|
-
import { jsx as
|
|
2425
|
+
import { jsx as jsx40 } from "react/jsx-runtime";
|
|
1954
2426
|
var LIMIT_WIDTH2 = 320;
|
|
1955
2427
|
var LIMIT_HEIGHT2 = 184;
|
|
1956
2428
|
function useOptionalPopoverContext() {
|
|
1957
|
-
return
|
|
2429
|
+
return useContext11(PopoverContext);
|
|
1958
2430
|
}
|
|
1959
2431
|
function Popup({ children, isOpen: controlledIsOpen, width = 480, height, onClose }) {
|
|
1960
2432
|
const renderWidth = typeof width === "number" ? Math.max(width, LIMIT_WIDTH2) : width;
|
|
@@ -1965,7 +2437,7 @@ function Popup({ children, isOpen: controlledIsOpen, width = 480, height, onClos
|
|
|
1965
2437
|
if (!isOpen) {
|
|
1966
2438
|
return null;
|
|
1967
2439
|
}
|
|
1968
|
-
return /* @__PURE__ */
|
|
2440
|
+
return /* @__PURE__ */ jsx40(PopupContext.Provider, { value: { isOpen, onClose }, children: /* @__PURE__ */ jsx40(
|
|
1969
2441
|
"div",
|
|
1970
2442
|
{
|
|
1971
2443
|
className: "grid max-h-full grid-rows-[max-content_1fr_max-content] flex-col rounded-lg bg-uiBackground01 shadow-floatingShadow",
|
|
@@ -1979,29 +2451,29 @@ Popup.Header = PopupHeader;
|
|
|
1979
2451
|
Popup.Footer = PopupFooter;
|
|
1980
2452
|
|
|
1981
2453
|
// src/radio/radio.tsx
|
|
1982
|
-
import { focusVisible as
|
|
1983
|
-
import
|
|
1984
|
-
import { useCallback as
|
|
1985
|
-
import { jsx as
|
|
2454
|
+
import { focusVisible as focusVisible11 } from "@zenkigen-inc/component-theme";
|
|
2455
|
+
import clsx28 from "clsx";
|
|
2456
|
+
import { useCallback as useCallback8, useState as useState10 } from "react";
|
|
2457
|
+
import { jsx as jsx41, jsxs as jsxs19 } from "react/jsx-runtime";
|
|
1986
2458
|
function Radio({ name, value, id, label, isChecked = false, isDisabled = false, onChange }) {
|
|
1987
|
-
const [isMouseOver, setIsMouseOver] =
|
|
1988
|
-
const handleMouseOverInput =
|
|
2459
|
+
const [isMouseOver, setIsMouseOver] = useState10(false);
|
|
2460
|
+
const handleMouseOverInput = useCallback8(() => {
|
|
1989
2461
|
setIsMouseOver(true);
|
|
1990
2462
|
}, []);
|
|
1991
|
-
const handleMouseOutInput =
|
|
2463
|
+
const handleMouseOutInput = useCallback8(() => {
|
|
1992
2464
|
setIsMouseOver(false);
|
|
1993
2465
|
}, []);
|
|
1994
|
-
const handleChange =
|
|
2466
|
+
const handleChange = useCallback8(
|
|
1995
2467
|
(e) => !isDisabled && onChange?.(e),
|
|
1996
2468
|
[isDisabled, onChange]
|
|
1997
2469
|
);
|
|
1998
|
-
const inputClasses =
|
|
2470
|
+
const inputClasses = clsx28("peer absolute z-[1] size-6 opacity-0", {
|
|
1999
2471
|
"cursor-not-allowed": isDisabled,
|
|
2000
2472
|
"cursor-pointer": !isDisabled
|
|
2001
2473
|
});
|
|
2002
|
-
const boxClasses =
|
|
2474
|
+
const boxClasses = clsx28(
|
|
2003
2475
|
"inline-flex size-5 items-center justify-center rounded-full border border-solid bg-white",
|
|
2004
|
-
|
|
2476
|
+
focusVisible11.normalPeer,
|
|
2005
2477
|
{
|
|
2006
2478
|
"border-disabled01 hover:border-disabled01": isDisabled && !isMouseOver,
|
|
2007
2479
|
"border-hoverUiBorder": !isDisabled && isMouseOver,
|
|
@@ -2010,22 +2482,22 @@ function Radio({ name, value, id, label, isChecked = false, isDisabled = false,
|
|
|
2010
2482
|
"cursor-pointer": !isDisabled
|
|
2011
2483
|
}
|
|
2012
2484
|
);
|
|
2013
|
-
const afterClasses =
|
|
2485
|
+
const afterClasses = clsx28("absolute inset-0 m-auto block size-3 rounded-full", {
|
|
2014
2486
|
"bg-disabled01": isDisabled && isChecked,
|
|
2015
2487
|
"bg-activeSelectedUi": !isDisabled && isChecked,
|
|
2016
2488
|
"scale-0": !isChecked,
|
|
2017
2489
|
"scale-100": isChecked
|
|
2018
2490
|
});
|
|
2019
|
-
const hoverIndicatorClasses =
|
|
2491
|
+
const hoverIndicatorClasses = clsx28("inline-block size-3 rounded-full", {
|
|
2020
2492
|
"bg-hoverUi": !isDisabled && !isChecked && isMouseOver
|
|
2021
2493
|
});
|
|
2022
|
-
const labelClasses =
|
|
2494
|
+
const labelClasses = clsx28("typography-label14regular ml-2 flex-[1_0_0] select-none break-all", {
|
|
2023
2495
|
"pointer-events-none cursor-not-allowed text-disabled01": isDisabled,
|
|
2024
2496
|
"cursor-pointer text-text01": !isDisabled
|
|
2025
2497
|
});
|
|
2026
|
-
return /* @__PURE__ */
|
|
2027
|
-
/* @__PURE__ */
|
|
2028
|
-
/* @__PURE__ */
|
|
2498
|
+
return /* @__PURE__ */ jsxs19("div", { className: "flex items-center", children: [
|
|
2499
|
+
/* @__PURE__ */ jsxs19("div", { className: "flex size-6 items-center justify-center", children: [
|
|
2500
|
+
/* @__PURE__ */ jsx41(
|
|
2029
2501
|
"input",
|
|
2030
2502
|
{
|
|
2031
2503
|
type: "checkbox",
|
|
@@ -2040,32 +2512,32 @@ function Radio({ name, value, id, label, isChecked = false, isDisabled = false,
|
|
|
2040
2512
|
className: inputClasses
|
|
2041
2513
|
}
|
|
2042
2514
|
),
|
|
2043
|
-
/* @__PURE__ */
|
|
2044
|
-
/* @__PURE__ */
|
|
2045
|
-
/* @__PURE__ */
|
|
2515
|
+
/* @__PURE__ */ jsx41("div", { className: boxClasses, children: /* @__PURE__ */ jsxs19("div", { className: "relative flex size-5 flex-[0_0_auto] items-center justify-center", children: [
|
|
2516
|
+
/* @__PURE__ */ jsx41("span", { className: afterClasses }),
|
|
2517
|
+
/* @__PURE__ */ jsx41("span", { className: hoverIndicatorClasses })
|
|
2046
2518
|
] }) })
|
|
2047
2519
|
] }),
|
|
2048
|
-
/* @__PURE__ */
|
|
2520
|
+
/* @__PURE__ */ jsx41("label", { htmlFor: id, className: labelClasses, children: label })
|
|
2049
2521
|
] });
|
|
2050
2522
|
}
|
|
2051
2523
|
|
|
2052
2524
|
// src/search/search.tsx
|
|
2053
|
-
import { clsx as
|
|
2054
|
-
import { forwardRef as
|
|
2055
|
-
import { jsx as
|
|
2056
|
-
var Search =
|
|
2057
|
-
const classes =
|
|
2525
|
+
import { clsx as clsx29 } from "clsx";
|
|
2526
|
+
import { forwardRef as forwardRef10 } from "react";
|
|
2527
|
+
import { jsx as jsx42, jsxs as jsxs20 } from "react/jsx-runtime";
|
|
2528
|
+
var Search = forwardRef10(({ width = "100%", size = "medium", ...props }, ref) => {
|
|
2529
|
+
const classes = clsx29(
|
|
2058
2530
|
"flex items-center rounded-full border border-uiBorder02 bg-uiBackground01 focus-within:border-activeInput",
|
|
2059
2531
|
{ "h-8 px-3": size === "medium" },
|
|
2060
2532
|
{ "h-10 px-4": size === "large" }
|
|
2061
2533
|
);
|
|
2062
|
-
const inputClasses =
|
|
2534
|
+
const inputClasses = clsx29("mx-2 h-full flex-1 text-text01 outline-0 placeholder:text-textPlaceholder", {
|
|
2063
2535
|
["typography-label14regular"]: size === "medium",
|
|
2064
2536
|
["typography-label16regular"]: size === "large"
|
|
2065
2537
|
});
|
|
2066
|
-
return /* @__PURE__ */
|
|
2067
|
-
/* @__PURE__ */
|
|
2068
|
-
/* @__PURE__ */
|
|
2538
|
+
return /* @__PURE__ */ jsx42("div", { className: "relative", ref, children: /* @__PURE__ */ jsx42("form", { onSubmit: props.onSubmit, children: /* @__PURE__ */ jsxs20("div", { className: classes, style: { width }, children: [
|
|
2539
|
+
/* @__PURE__ */ jsx42(Icon, { name: "search", color: "icon01", size: "medium" }),
|
|
2540
|
+
/* @__PURE__ */ jsx42(
|
|
2069
2541
|
"input",
|
|
2070
2542
|
{
|
|
2071
2543
|
type: "text",
|
|
@@ -2076,7 +2548,7 @@ var Search = forwardRef9(({ width = "100%", size = "medium", ...props }, ref) =>
|
|
|
2076
2548
|
onChange: props.onChange
|
|
2077
2549
|
}
|
|
2078
2550
|
),
|
|
2079
|
-
props.onClickClearButton && props.value && props.value.length !== 0 && /* @__PURE__ */
|
|
2551
|
+
props.onClickClearButton && props.value && props.value.length !== 0 && /* @__PURE__ */ jsx42(
|
|
2080
2552
|
IconButton,
|
|
2081
2553
|
{
|
|
2082
2554
|
variant: "text",
|
|
@@ -2091,17 +2563,17 @@ var Search = forwardRef9(({ width = "100%", size = "medium", ...props }, ref) =>
|
|
|
2091
2563
|
Search.displayName = "Search";
|
|
2092
2564
|
|
|
2093
2565
|
// src/segmented-control/segmented-control.tsx
|
|
2094
|
-
import React4, { Children as
|
|
2566
|
+
import React4, { Children as Children3, useRef as useRef8 } from "react";
|
|
2095
2567
|
|
|
2096
2568
|
// src/segmented-control/segmented-control-context.ts
|
|
2097
|
-
import { createContext as
|
|
2098
|
-
var SegmentedControlContext =
|
|
2569
|
+
import { createContext as createContext9 } from "react";
|
|
2570
|
+
var SegmentedControlContext = createContext9(null);
|
|
2099
2571
|
|
|
2100
2572
|
// src/segmented-control/segmented-control-item.tsx
|
|
2101
|
-
import { focusVisible as
|
|
2102
|
-
import { clsx as
|
|
2103
|
-
import { useContext as
|
|
2104
|
-
import { jsx as
|
|
2573
|
+
import { focusVisible as focusVisible12 } from "@zenkigen-inc/component-theme";
|
|
2574
|
+
import { clsx as clsx30 } from "clsx";
|
|
2575
|
+
import { useContext as useContext12, useEffect as useEffect6, useRef as useRef7 } from "react";
|
|
2576
|
+
import { jsx as jsx43, jsxs as jsxs21 } from "react/jsx-runtime";
|
|
2105
2577
|
var SegmentedControlItem = ({
|
|
2106
2578
|
label,
|
|
2107
2579
|
value,
|
|
@@ -2110,9 +2582,9 @@ var SegmentedControlItem = ({
|
|
|
2110
2582
|
"aria-label": ariaLabel,
|
|
2111
2583
|
...rest
|
|
2112
2584
|
}) => {
|
|
2113
|
-
const context =
|
|
2114
|
-
const buttonRef =
|
|
2115
|
-
const lastInteractionWasMouse =
|
|
2585
|
+
const context = useContext12(SegmentedControlContext);
|
|
2586
|
+
const buttonRef = useRef7(null);
|
|
2587
|
+
const lastInteractionWasMouse = useRef7(false);
|
|
2116
2588
|
if (context === null) {
|
|
2117
2589
|
throw new Error("SegmentedControl.Item must be used within SegmentedControl");
|
|
2118
2590
|
}
|
|
@@ -2128,7 +2600,7 @@ var SegmentedControlItem = ({
|
|
|
2128
2600
|
const isSelected = value === selectedValue;
|
|
2129
2601
|
const isFocused = value === focusedValue;
|
|
2130
2602
|
const isOptionDisabled = isContextDisabled || itemDisabled === true;
|
|
2131
|
-
|
|
2603
|
+
useEffect6(() => {
|
|
2132
2604
|
if (isFocused === true && buttonRef.current !== null) {
|
|
2133
2605
|
buttonRef.current.focus();
|
|
2134
2606
|
}
|
|
@@ -2150,7 +2622,7 @@ var SegmentedControlItem = ({
|
|
|
2150
2622
|
lastInteractionWasMouse.current = false;
|
|
2151
2623
|
onBlur?.();
|
|
2152
2624
|
};
|
|
2153
|
-
const buttonClasses =
|
|
2625
|
+
const buttonClasses = clsx30("relative flex items-center justify-center gap-1 rounded", focusVisible12.normal, {
|
|
2154
2626
|
"px-2 min-h-[24px] typography-label12regular": size === "small",
|
|
2155
2627
|
"px-4 min-h-[32px] typography-label14regular": size === "medium",
|
|
2156
2628
|
// States - Default with hover
|
|
@@ -2160,7 +2632,7 @@ var SegmentedControlItem = ({
|
|
|
2160
2632
|
// States - Disabled
|
|
2161
2633
|
"text-disabled01 bg-transparent": isOptionDisabled === true
|
|
2162
2634
|
});
|
|
2163
|
-
return /* @__PURE__ */
|
|
2635
|
+
return /* @__PURE__ */ jsxs21(
|
|
2164
2636
|
"button",
|
|
2165
2637
|
{
|
|
2166
2638
|
ref: buttonRef,
|
|
@@ -2177,25 +2649,25 @@ var SegmentedControlItem = ({
|
|
|
2177
2649
|
onMouseDown: handleMouseDown,
|
|
2178
2650
|
...rest,
|
|
2179
2651
|
children: [
|
|
2180
|
-
Boolean(icon) === true && icon && /* @__PURE__ */
|
|
2652
|
+
Boolean(icon) === true && icon && /* @__PURE__ */ jsx43(
|
|
2181
2653
|
"span",
|
|
2182
2654
|
{
|
|
2183
|
-
className:
|
|
2655
|
+
className: clsx30("flex items-center", {
|
|
2184
2656
|
"fill-disabled01": isOptionDisabled === true,
|
|
2185
2657
|
"fill-interactive01": isSelected === true && isOptionDisabled === false,
|
|
2186
2658
|
"fill-icon01": isSelected === false && isOptionDisabled === false
|
|
2187
2659
|
}),
|
|
2188
|
-
children: /* @__PURE__ */
|
|
2660
|
+
children: /* @__PURE__ */ jsx43(Icon, { name: icon, size: "small" })
|
|
2189
2661
|
}
|
|
2190
2662
|
),
|
|
2191
|
-
Boolean(label) === true && /* @__PURE__ */
|
|
2663
|
+
Boolean(label) === true && /* @__PURE__ */ jsx43("span", { className: "whitespace-nowrap", children: label })
|
|
2192
2664
|
]
|
|
2193
2665
|
}
|
|
2194
2666
|
);
|
|
2195
2667
|
};
|
|
2196
2668
|
|
|
2197
2669
|
// src/segmented-control/segmented-control.tsx
|
|
2198
|
-
import { Fragment as Fragment5, jsx as
|
|
2670
|
+
import { Fragment as Fragment5, jsx as jsx44 } from "react/jsx-runtime";
|
|
2199
2671
|
var SegmentedControl = ({
|
|
2200
2672
|
children,
|
|
2201
2673
|
value,
|
|
@@ -2205,15 +2677,15 @@ var SegmentedControl = ({
|
|
|
2205
2677
|
"aria-label": ariaLabel,
|
|
2206
2678
|
...rest
|
|
2207
2679
|
}) => {
|
|
2208
|
-
const containerRef =
|
|
2209
|
-
const itemIds =
|
|
2680
|
+
const containerRef = useRef8(null);
|
|
2681
|
+
const itemIds = Children3.toArray(children).filter((child) => {
|
|
2210
2682
|
if (!React4.isValidElement(child) || typeof child.props !== "object" || child.props === null || !("value" in child.props)) {
|
|
2211
2683
|
return false;
|
|
2212
2684
|
}
|
|
2213
2685
|
const props = child.props;
|
|
2214
2686
|
return props.isDisabled !== true;
|
|
2215
2687
|
}).map((child) => child.props.value);
|
|
2216
|
-
const childrenCount =
|
|
2688
|
+
const childrenCount = Children3.count(children);
|
|
2217
2689
|
const containerStyle = { gridTemplateColumns: `repeat(${childrenCount}, minmax(0,1fr))` };
|
|
2218
2690
|
const {
|
|
2219
2691
|
focusedValue,
|
|
@@ -2240,7 +2712,7 @@ var SegmentedControl = ({
|
|
|
2240
2712
|
onBlur: handleBlurRovingFocus,
|
|
2241
2713
|
values: itemIds
|
|
2242
2714
|
};
|
|
2243
|
-
return /* @__PURE__ */
|
|
2715
|
+
return /* @__PURE__ */ jsx44(Fragment5, { children: /* @__PURE__ */ jsx44(SegmentedControlContext.Provider, { value: contextValue, children: /* @__PURE__ */ jsx44(
|
|
2244
2716
|
"div",
|
|
2245
2717
|
{
|
|
2246
2718
|
ref: containerRef,
|
|
@@ -2257,37 +2729,37 @@ var SegmentedControl = ({
|
|
|
2257
2729
|
SegmentedControl.Item = SegmentedControlItem;
|
|
2258
2730
|
|
|
2259
2731
|
// src/select-sort/select-sort.tsx
|
|
2260
|
-
import { buttonColors as buttonColors4, focusVisible as
|
|
2261
|
-
import
|
|
2262
|
-
import { useCallback as
|
|
2732
|
+
import { buttonColors as buttonColors4, focusVisible as focusVisible15 } from "@zenkigen-inc/component-theme";
|
|
2733
|
+
import clsx33 from "clsx";
|
|
2734
|
+
import { useCallback as useCallback9, useRef as useRef9, useState as useState11 } from "react";
|
|
2263
2735
|
|
|
2264
2736
|
// src/select-sort/select-list.tsx
|
|
2265
|
-
import { focusVisible as
|
|
2266
|
-
import
|
|
2737
|
+
import { focusVisible as focusVisible14 } from "@zenkigen-inc/component-theme";
|
|
2738
|
+
import clsx32 from "clsx";
|
|
2267
2739
|
|
|
2268
2740
|
// src/select-sort/select-item.tsx
|
|
2269
|
-
import { focusVisible as
|
|
2270
|
-
import
|
|
2271
|
-
import { jsx as
|
|
2741
|
+
import { focusVisible as focusVisible13 } from "@zenkigen-inc/component-theme";
|
|
2742
|
+
import clsx31 from "clsx";
|
|
2743
|
+
import { jsx as jsx45, jsxs as jsxs22 } from "react/jsx-runtime";
|
|
2272
2744
|
function SelectItem2({ children, isSortKey, onClickItem }) {
|
|
2273
|
-
const itemClasses =
|
|
2745
|
+
const itemClasses = clsx31(
|
|
2274
2746
|
"typography-label14regular flex h-8 w-full items-center px-3 hover:bg-hover02 active:bg-active02",
|
|
2275
|
-
|
|
2747
|
+
focusVisible13.inset,
|
|
2276
2748
|
{
|
|
2277
2749
|
"bg-selectedUi fill-interactive01 text-interactive01": isSortKey,
|
|
2278
2750
|
"bg-uiBackground01 fill-icon01 text-interactive02": !isSortKey
|
|
2279
2751
|
}
|
|
2280
2752
|
);
|
|
2281
|
-
return /* @__PURE__ */
|
|
2282
|
-
/* @__PURE__ */
|
|
2283
|
-
isSortKey && /* @__PURE__ */
|
|
2753
|
+
return /* @__PURE__ */ jsx45("li", { className: "flex w-full items-center", onClick: onClickItem, children: /* @__PURE__ */ jsxs22("button", { className: itemClasses, type: "button", children: [
|
|
2754
|
+
/* @__PURE__ */ jsx45("span", { className: "ml-1 mr-6", children }),
|
|
2755
|
+
isSortKey && /* @__PURE__ */ jsx45("div", { className: "ml-auto flex items-center", children: /* @__PURE__ */ jsx45(Icon, { name: "check", size: "small" }) })
|
|
2284
2756
|
] }) });
|
|
2285
2757
|
}
|
|
2286
2758
|
|
|
2287
2759
|
// src/select-sort/select-list.tsx
|
|
2288
|
-
import { jsx as
|
|
2760
|
+
import { jsx as jsx46, jsxs as jsxs23 } from "react/jsx-runtime";
|
|
2289
2761
|
function SelectList2({ size, variant, sortOrder, onClickItem, onClickDeselect }) {
|
|
2290
|
-
const listClasses =
|
|
2762
|
+
const listClasses = clsx32(
|
|
2291
2763
|
"absolute z-dropdown w-max overflow-y-auto rounded bg-uiBackground01 py-2 shadow-floatingShadow",
|
|
2292
2764
|
{
|
|
2293
2765
|
"top-7": size === "x-small" || size === "small",
|
|
@@ -2296,19 +2768,19 @@ function SelectList2({ size, variant, sortOrder, onClickItem, onClickDeselect })
|
|
|
2296
2768
|
"border-solid border border-uiBorder01": variant === "outline"
|
|
2297
2769
|
}
|
|
2298
2770
|
);
|
|
2299
|
-
const deselectButtonClasses =
|
|
2771
|
+
const deselectButtonClasses = clsx32(
|
|
2300
2772
|
"typography-label14regular flex h-8 w-full items-center px-3 text-interactive02 hover:bg-hover02 active:bg-active02",
|
|
2301
|
-
|
|
2773
|
+
focusVisible14.inset
|
|
2302
2774
|
);
|
|
2303
|
-
return /* @__PURE__ */
|
|
2304
|
-
/* @__PURE__ */
|
|
2305
|
-
/* @__PURE__ */
|
|
2306
|
-
sortOrder !== null && onClickDeselect && /* @__PURE__ */
|
|
2775
|
+
return /* @__PURE__ */ jsxs23("ul", { className: listClasses, children: [
|
|
2776
|
+
/* @__PURE__ */ jsx46(SelectItem2, { isSortKey: sortOrder === "ascend", onClickItem: () => onClickItem("ascend"), children: "\u6607\u9806\u3067\u4E26\u3073\u66FF\u3048" }),
|
|
2777
|
+
/* @__PURE__ */ jsx46(SelectItem2, { isSortKey: sortOrder === "descend", onClickItem: () => onClickItem("descend"), children: "\u964D\u9806\u3067\u4E26\u3073\u66FF\u3048" }),
|
|
2778
|
+
sortOrder !== null && onClickDeselect && /* @__PURE__ */ jsx46("li", { children: /* @__PURE__ */ jsx46("button", { className: deselectButtonClasses, type: "button", onClick: onClickDeselect, children: "\u9078\u629E\u89E3\u9664" }) })
|
|
2307
2779
|
] });
|
|
2308
2780
|
}
|
|
2309
2781
|
|
|
2310
2782
|
// src/select-sort/select-sort.tsx
|
|
2311
|
-
import { jsx as
|
|
2783
|
+
import { jsx as jsx47, jsxs as jsxs24 } from "react/jsx-runtime";
|
|
2312
2784
|
function SelectSort({
|
|
2313
2785
|
size = "medium",
|
|
2314
2786
|
variant = "outline",
|
|
@@ -2320,29 +2792,29 @@ function SelectSort({
|
|
|
2320
2792
|
onChange,
|
|
2321
2793
|
onClickDeselect
|
|
2322
2794
|
}) {
|
|
2323
|
-
const [isOptionListOpen, setIsOptionListOpen] =
|
|
2324
|
-
const targetRef =
|
|
2795
|
+
const [isOptionListOpen, setIsOptionListOpen] = useState11(false);
|
|
2796
|
+
const targetRef = useRef9(null);
|
|
2325
2797
|
useOutsideClick(targetRef, () => setIsOptionListOpen(false));
|
|
2326
2798
|
const handleClickToggle = () => setIsOptionListOpen((prev) => !prev);
|
|
2327
|
-
const handleClickItem =
|
|
2799
|
+
const handleClickItem = useCallback9(
|
|
2328
2800
|
(value) => {
|
|
2329
2801
|
onChange?.(value);
|
|
2330
2802
|
setIsOptionListOpen(false);
|
|
2331
2803
|
},
|
|
2332
2804
|
[onChange]
|
|
2333
2805
|
);
|
|
2334
|
-
const wrapperClasses =
|
|
2806
|
+
const wrapperClasses = clsx33("relative flex shrink-0 items-center gap-1 rounded", {
|
|
2335
2807
|
"h-6": size === "x-small" || size === "small",
|
|
2336
2808
|
"h-8": size === "medium",
|
|
2337
2809
|
"h-10": size === "large",
|
|
2338
2810
|
"cursor-not-allowed": isDisabled
|
|
2339
2811
|
});
|
|
2340
|
-
const buttonClasses =
|
|
2812
|
+
const buttonClasses = clsx33(
|
|
2341
2813
|
"flex size-full items-center rounded",
|
|
2342
2814
|
buttonColors4[variant].hover,
|
|
2343
2815
|
buttonColors4[variant].active,
|
|
2344
2816
|
buttonColors4[variant].disabled,
|
|
2345
|
-
|
|
2817
|
+
focusVisible15.normal,
|
|
2346
2818
|
{
|
|
2347
2819
|
[buttonColors4[variant].selected]: isSortKey,
|
|
2348
2820
|
[buttonColors4[variant].base]: !isSortKey,
|
|
@@ -2351,23 +2823,23 @@ function SelectSort({
|
|
|
2351
2823
|
"pointer-events-none": isDisabled
|
|
2352
2824
|
}
|
|
2353
2825
|
);
|
|
2354
|
-
const labelClasses =
|
|
2826
|
+
const labelClasses = clsx33("truncate", {
|
|
2355
2827
|
"typography-label12regular": size === "x-small",
|
|
2356
2828
|
"typography-label14regular": size === "small" || size === "medium",
|
|
2357
2829
|
"typography-label16regular": size === "large",
|
|
2358
2830
|
"mr-1": size === "x-small",
|
|
2359
2831
|
"mr-2": size !== "x-small"
|
|
2360
2832
|
});
|
|
2361
|
-
return /* @__PURE__ */
|
|
2362
|
-
/* @__PURE__ */
|
|
2363
|
-
/* @__PURE__ */
|
|
2364
|
-
/* @__PURE__ */
|
|
2833
|
+
return /* @__PURE__ */ jsxs24("div", { className: wrapperClasses, style: { width }, ref: targetRef, children: [
|
|
2834
|
+
/* @__PURE__ */ jsxs24("button", { className: buttonClasses, type: "button", onClick: handleClickToggle, disabled: isDisabled, children: [
|
|
2835
|
+
/* @__PURE__ */ jsx47("div", { className: labelClasses, children: label }),
|
|
2836
|
+
/* @__PURE__ */ jsx47("div", { className: "ml-auto flex items-center", children: isSortKey ? /* @__PURE__ */ jsx47(
|
|
2365
2837
|
Icon,
|
|
2366
2838
|
{
|
|
2367
2839
|
name: sortOrder === "ascend" ? "arrow-up" : "arrow-down",
|
|
2368
2840
|
size: size === "large" ? "medium" : "small"
|
|
2369
2841
|
}
|
|
2370
|
-
) : /* @__PURE__ */
|
|
2842
|
+
) : /* @__PURE__ */ jsx47(
|
|
2371
2843
|
Icon,
|
|
2372
2844
|
{
|
|
2373
2845
|
name: isOptionListOpen ? "angle-small-up" : "angle-small-down",
|
|
@@ -2375,7 +2847,7 @@ function SelectSort({
|
|
|
2375
2847
|
}
|
|
2376
2848
|
) })
|
|
2377
2849
|
] }),
|
|
2378
|
-
isOptionListOpen && !isDisabled && /* @__PURE__ */
|
|
2850
|
+
isOptionListOpen && !isDisabled && /* @__PURE__ */ jsx47(
|
|
2379
2851
|
SelectList2,
|
|
2380
2852
|
{
|
|
2381
2853
|
size,
|
|
@@ -2389,10 +2861,10 @@ function SelectSort({
|
|
|
2389
2861
|
}
|
|
2390
2862
|
|
|
2391
2863
|
// src/sort-button/sort-button.tsx
|
|
2392
|
-
import { buttonColors as buttonColors5, focusVisible as
|
|
2393
|
-
import
|
|
2394
|
-
import { useCallback as
|
|
2395
|
-
import { jsx as
|
|
2864
|
+
import { buttonColors as buttonColors5, focusVisible as focusVisible16 } from "@zenkigen-inc/component-theme";
|
|
2865
|
+
import clsx34 from "clsx";
|
|
2866
|
+
import { useCallback as useCallback10 } from "react";
|
|
2867
|
+
import { jsx as jsx48, jsxs as jsxs25 } from "react/jsx-runtime";
|
|
2396
2868
|
function SortButton({
|
|
2397
2869
|
size = "medium",
|
|
2398
2870
|
width,
|
|
@@ -2403,7 +2875,7 @@ function SortButton({
|
|
|
2403
2875
|
"aria-label": ariaLabel,
|
|
2404
2876
|
...rest
|
|
2405
2877
|
}) {
|
|
2406
|
-
const handleClick =
|
|
2878
|
+
const handleClick = useCallback10(() => {
|
|
2407
2879
|
if (isDisabled || !onClick) return;
|
|
2408
2880
|
onClick();
|
|
2409
2881
|
}, [isDisabled, onClick]);
|
|
@@ -2412,18 +2884,18 @@ function SortButton({
|
|
|
2412
2884
|
if (sortOrder === "descend") return "arrow-down";
|
|
2413
2885
|
return "angle-small-down";
|
|
2414
2886
|
};
|
|
2415
|
-
const wrapperClasses =
|
|
2887
|
+
const wrapperClasses = clsx34("relative flex shrink-0 items-center gap-1 rounded", {
|
|
2416
2888
|
"h-6": size === "x-small" || size === "small",
|
|
2417
2889
|
"h-8": size === "medium",
|
|
2418
2890
|
"h-10": size === "large",
|
|
2419
2891
|
"cursor-not-allowed": isDisabled
|
|
2420
2892
|
});
|
|
2421
|
-
const buttonClasses =
|
|
2893
|
+
const buttonClasses = clsx34(
|
|
2422
2894
|
"flex size-full items-center rounded",
|
|
2423
2895
|
buttonColors5.text.hover,
|
|
2424
2896
|
buttonColors5.text.active,
|
|
2425
2897
|
buttonColors5.text.disabled,
|
|
2426
|
-
|
|
2898
|
+
focusVisible16.normal,
|
|
2427
2899
|
{
|
|
2428
2900
|
[buttonColors5.text.selected]: !isDisabled && sortOrder !== null,
|
|
2429
2901
|
// ソート状態時は選択状態のスタイル
|
|
@@ -2434,14 +2906,14 @@ function SortButton({
|
|
|
2434
2906
|
"pointer-events-none": isDisabled
|
|
2435
2907
|
}
|
|
2436
2908
|
);
|
|
2437
|
-
const labelClasses =
|
|
2909
|
+
const labelClasses = clsx34("truncate", {
|
|
2438
2910
|
"typography-label12regular": size === "x-small",
|
|
2439
2911
|
"typography-label14regular": size === "small" || size === "medium",
|
|
2440
2912
|
"typography-label16regular": size === "large",
|
|
2441
2913
|
"mr-1": size === "x-small",
|
|
2442
2914
|
"mr-2": size !== "x-small"
|
|
2443
2915
|
});
|
|
2444
|
-
return /* @__PURE__ */
|
|
2916
|
+
return /* @__PURE__ */ jsx48("div", { className: wrapperClasses, style: { width }, children: /* @__PURE__ */ jsxs25(
|
|
2445
2917
|
"button",
|
|
2446
2918
|
{
|
|
2447
2919
|
className: buttonClasses,
|
|
@@ -2452,22 +2924,22 @@ function SortButton({
|
|
|
2452
2924
|
"aria-label": ariaLabel,
|
|
2453
2925
|
"aria-disabled": isDisabled,
|
|
2454
2926
|
children: [
|
|
2455
|
-
/* @__PURE__ */
|
|
2456
|
-
/* @__PURE__ */
|
|
2927
|
+
/* @__PURE__ */ jsx48("div", { className: labelClasses, children: label }),
|
|
2928
|
+
/* @__PURE__ */ jsx48("div", { className: "ml-auto flex items-center", children: /* @__PURE__ */ jsx48(Icon, { name: getIconName(), size: size === "large" ? "medium" : "small" }) })
|
|
2457
2929
|
]
|
|
2458
2930
|
}
|
|
2459
2931
|
) });
|
|
2460
2932
|
}
|
|
2461
2933
|
|
|
2462
2934
|
// src/tab/tab.tsx
|
|
2463
|
-
import { clsx as
|
|
2464
|
-
import { Children as
|
|
2935
|
+
import { clsx as clsx36 } from "clsx";
|
|
2936
|
+
import { Children as Children4 } from "react";
|
|
2465
2937
|
|
|
2466
2938
|
// src/tab/tab-item.tsx
|
|
2467
|
-
import { clsx as
|
|
2468
|
-
import { jsx as
|
|
2939
|
+
import { clsx as clsx35 } from "clsx";
|
|
2940
|
+
import { jsx as jsx49, jsxs as jsxs26 } from "react/jsx-runtime";
|
|
2469
2941
|
var TabItem = ({ isSelected = false, isDisabled = false, icon, ...props }) => {
|
|
2470
|
-
const classes =
|
|
2942
|
+
const classes = clsx35(
|
|
2471
2943
|
"group relative z-0 flex items-center justify-center gap-1 py-2 leading-[24px] before:absolute before:inset-x-0 before:bottom-0 before:h-[2px] hover:text-interactive01 disabled:pointer-events-none disabled:text-disabled01",
|
|
2472
2944
|
{
|
|
2473
2945
|
"typography-label14regular text-interactive02": !isSelected,
|
|
@@ -2475,12 +2947,12 @@ var TabItem = ({ isSelected = false, isDisabled = false, icon, ...props }) => {
|
|
|
2475
2947
|
"before:bg-interactive01 hover:before:bg-interactive01 pointer-events-none": isSelected
|
|
2476
2948
|
}
|
|
2477
2949
|
);
|
|
2478
|
-
const iconWrapperClasses =
|
|
2950
|
+
const iconWrapperClasses = clsx35("flex shrink-0 items-center", {
|
|
2479
2951
|
"fill-disabled01": isDisabled,
|
|
2480
2952
|
"fill-interactive01": !isDisabled && isSelected,
|
|
2481
2953
|
"fill-icon01 group-hover:fill-interactive01": !isDisabled && !isSelected
|
|
2482
2954
|
});
|
|
2483
|
-
return /* @__PURE__ */
|
|
2955
|
+
return /* @__PURE__ */ jsxs26(
|
|
2484
2956
|
"button",
|
|
2485
2957
|
{
|
|
2486
2958
|
type: "button",
|
|
@@ -2490,7 +2962,7 @@ var TabItem = ({ isSelected = false, isDisabled = false, icon, ...props }) => {
|
|
|
2490
2962
|
disabled: isDisabled,
|
|
2491
2963
|
onClick: () => props.onClick(props.id),
|
|
2492
2964
|
children: [
|
|
2493
|
-
icon != null && /* @__PURE__ */
|
|
2965
|
+
icon != null && /* @__PURE__ */ jsx49("span", { className: iconWrapperClasses, children: /* @__PURE__ */ jsx49(Icon, { name: icon, size: "small" }) }),
|
|
2494
2966
|
props.children
|
|
2495
2967
|
]
|
|
2496
2968
|
}
|
|
@@ -2498,39 +2970,39 @@ var TabItem = ({ isSelected = false, isDisabled = false, icon, ...props }) => {
|
|
|
2498
2970
|
};
|
|
2499
2971
|
|
|
2500
2972
|
// src/tab/tab.tsx
|
|
2501
|
-
import { jsx as
|
|
2973
|
+
import { jsx as jsx50 } from "react/jsx-runtime";
|
|
2502
2974
|
function Tab({ children, layout = "auto" }) {
|
|
2503
|
-
const childrenCount =
|
|
2975
|
+
const childrenCount = Children4.count(children);
|
|
2504
2976
|
const containerStyle = layout === "equal" ? { gridTemplateColumns: `repeat(${childrenCount}, minmax(0,1fr))` } : {};
|
|
2505
|
-
const containerClasses =
|
|
2977
|
+
const containerClasses = clsx36(
|
|
2506
2978
|
"relative gap-4 px-6 before:absolute before:inset-x-0 before:bottom-0 before:h-px before:bg-uiBorder01",
|
|
2507
2979
|
{
|
|
2508
2980
|
flex: layout === "auto",
|
|
2509
2981
|
grid: layout === "equal"
|
|
2510
2982
|
}
|
|
2511
2983
|
);
|
|
2512
|
-
return /* @__PURE__ */
|
|
2984
|
+
return /* @__PURE__ */ jsx50("div", { role: "tablist", className: containerClasses, style: containerStyle, children });
|
|
2513
2985
|
}
|
|
2514
2986
|
Tab.Item = TabItem;
|
|
2515
2987
|
|
|
2516
2988
|
// src/table/table-cell.tsx
|
|
2517
|
-
import
|
|
2518
|
-
import { jsx as
|
|
2989
|
+
import clsx37 from "clsx";
|
|
2990
|
+
import { jsx as jsx51 } from "react/jsx-runtime";
|
|
2519
2991
|
function TableCell({ children, className, isHeader = false }) {
|
|
2520
|
-
const classes =
|
|
2521
|
-
return /* @__PURE__ */
|
|
2992
|
+
const classes = clsx37("border-b border-uiBorder01", { "sticky top-0 z-10 bg-white": isHeader }, className);
|
|
2993
|
+
return /* @__PURE__ */ jsx51("div", { className: classes, children });
|
|
2522
2994
|
}
|
|
2523
2995
|
|
|
2524
2996
|
// src/table/table-row.tsx
|
|
2525
|
-
import
|
|
2526
|
-
import { jsx as
|
|
2997
|
+
import clsx38 from "clsx";
|
|
2998
|
+
import { jsx as jsx52 } from "react/jsx-runtime";
|
|
2527
2999
|
function TableRow({ children, isHoverBackgroundVisible = false }) {
|
|
2528
|
-
const rowClasses =
|
|
2529
|
-
return /* @__PURE__ */
|
|
3000
|
+
const rowClasses = clsx38("contents", isHoverBackgroundVisible && "[&:hover>div]:bg-hoverUi02");
|
|
3001
|
+
return /* @__PURE__ */ jsx52("div", { className: rowClasses, children });
|
|
2530
3002
|
}
|
|
2531
3003
|
|
|
2532
3004
|
// src/table/table.tsx
|
|
2533
|
-
import { jsx as
|
|
3005
|
+
import { jsx as jsx53 } from "react/jsx-runtime";
|
|
2534
3006
|
function Table({
|
|
2535
3007
|
width,
|
|
2536
3008
|
templateRows,
|
|
@@ -2539,7 +3011,7 @@ function Table({
|
|
|
2539
3011
|
autoRows,
|
|
2540
3012
|
children
|
|
2541
3013
|
}) {
|
|
2542
|
-
return /* @__PURE__ */
|
|
3014
|
+
return /* @__PURE__ */ jsx53(
|
|
2543
3015
|
"div",
|
|
2544
3016
|
{
|
|
2545
3017
|
className: "grid",
|
|
@@ -2559,22 +3031,22 @@ Table.Cell = TableCell;
|
|
|
2559
3031
|
|
|
2560
3032
|
// src/tag/tag.tsx
|
|
2561
3033
|
import { tagColors, tagLightColors } from "@zenkigen-inc/component-theme";
|
|
2562
|
-
import
|
|
3034
|
+
import clsx40 from "clsx";
|
|
2563
3035
|
|
|
2564
3036
|
// src/tag/delete-icon.tsx
|
|
2565
|
-
import { focusVisible as
|
|
2566
|
-
import
|
|
2567
|
-
import { jsx as
|
|
3037
|
+
import { focusVisible as focusVisible17 } from "@zenkigen-inc/component-theme";
|
|
3038
|
+
import clsx39 from "clsx";
|
|
3039
|
+
import { jsx as jsx54 } from "react/jsx-runtime";
|
|
2568
3040
|
var DeleteIcon = ({ color, variant, onClick }) => {
|
|
2569
|
-
const deleteButtonClasses =
|
|
3041
|
+
const deleteButtonClasses = clsx39(
|
|
2570
3042
|
"group ml-2 size-[14px] rounded-full p-0.5 hover:cursor-pointer hover:bg-iconOnColor focus-visible:bg-iconOnColor",
|
|
2571
|
-
|
|
3043
|
+
focusVisible17.normal
|
|
2572
3044
|
);
|
|
2573
|
-
const deletePathClasses =
|
|
3045
|
+
const deletePathClasses = clsx39({
|
|
2574
3046
|
"fill-interactive02": color === "gray" || variant === "light",
|
|
2575
3047
|
"group-hover:fill-interactive02 group-focus-visible:fill-interactive02 fill-iconOnColor": color !== "gray"
|
|
2576
3048
|
});
|
|
2577
|
-
return /* @__PURE__ */
|
|
3049
|
+
return /* @__PURE__ */ jsx54("button", { type: "button", className: deleteButtonClasses, onClick, children: /* @__PURE__ */ jsx54("svg", { viewBox: "0 0 24 24", xmlns: "http://www.w3.org/2000/svg", children: /* @__PURE__ */ jsx54(
|
|
2578
3050
|
"path",
|
|
2579
3051
|
{
|
|
2580
3052
|
fillRule: "evenodd",
|
|
@@ -2586,9 +3058,9 @@ var DeleteIcon = ({ color, variant, onClick }) => {
|
|
|
2586
3058
|
};
|
|
2587
3059
|
|
|
2588
3060
|
// src/tag/tag.tsx
|
|
2589
|
-
import { jsx as
|
|
3061
|
+
import { jsx as jsx55, jsxs as jsxs27 } from "react/jsx-runtime";
|
|
2590
3062
|
function Tag({ id, children, color, variant = "normal", size = "medium", isEditable, onDelete }) {
|
|
2591
|
-
const wrapperClasses =
|
|
3063
|
+
const wrapperClasses = clsx40("flex", "items-center", "justify-center", {
|
|
2592
3064
|
[tagColors[color]]: variant === "normal",
|
|
2593
3065
|
[tagLightColors[color]]: variant === "light",
|
|
2594
3066
|
"h-[14px] typography-label11regular": !isEditable && size === "x-small",
|
|
@@ -2600,21 +3072,21 @@ function Tag({ id, children, color, variant = "normal", size = "medium", isEdita
|
|
|
2600
3072
|
"py-0.5 px-1": !isEditable,
|
|
2601
3073
|
"py-1 px-2": isEditable
|
|
2602
3074
|
});
|
|
2603
|
-
return /* @__PURE__ */
|
|
3075
|
+
return /* @__PURE__ */ jsxs27("div", { className: wrapperClasses, children: [
|
|
2604
3076
|
children,
|
|
2605
|
-
isEditable ? /* @__PURE__ */
|
|
3077
|
+
isEditable ? /* @__PURE__ */ jsx55(DeleteIcon, { onClick: () => onDelete(id), color, variant }) : null
|
|
2606
3078
|
] });
|
|
2607
3079
|
}
|
|
2608
3080
|
|
|
2609
3081
|
// src/text-area/text-area.tsx
|
|
2610
|
-
import { clsx as
|
|
2611
|
-
import { Children as
|
|
3082
|
+
import { clsx as clsx43 } from "clsx";
|
|
3083
|
+
import { Children as Children5, cloneElement as cloneElement5, forwardRef as forwardRef13, isValidElement as isValidElement3, useId as useId4, useMemo as useMemo4 } from "react";
|
|
2612
3084
|
|
|
2613
3085
|
// src/text-area/text-area-context.tsx
|
|
2614
|
-
import { createContext as
|
|
2615
|
-
var TextAreaCompoundContext =
|
|
3086
|
+
import { createContext as createContext10, useContext as useContext13 } from "react";
|
|
3087
|
+
var TextAreaCompoundContext = createContext10(null);
|
|
2616
3088
|
var useTextAreaCompoundContext = (componentName) => {
|
|
2617
|
-
const context =
|
|
3089
|
+
const context = useContext13(TextAreaCompoundContext);
|
|
2618
3090
|
if (context == null) {
|
|
2619
3091
|
throw new Error(`${componentName} \u3092\u4F7F\u7528\u3059\u308B\u306B\u306F TextArea \u306E\u5B50\u8981\u7D20\u3068\u3057\u3066\u914D\u7F6E\u3059\u308B\u5FC5\u8981\u304C\u3042\u308B\u3002`);
|
|
2620
3092
|
}
|
|
@@ -2622,10 +3094,10 @@ var useTextAreaCompoundContext = (componentName) => {
|
|
|
2622
3094
|
};
|
|
2623
3095
|
|
|
2624
3096
|
// src/text-area/text-area-error-message.tsx
|
|
2625
|
-
import { clsx as
|
|
2626
|
-
import { forwardRef as
|
|
2627
|
-
import { jsx as
|
|
2628
|
-
var TextAreaErrorMessage =
|
|
3097
|
+
import { clsx as clsx41 } from "clsx";
|
|
3098
|
+
import { forwardRef as forwardRef11 } from "react";
|
|
3099
|
+
import { jsx as jsx56 } from "react/jsx-runtime";
|
|
3100
|
+
var TextAreaErrorMessage = forwardRef11(
|
|
2629
3101
|
({ "aria-live": ariaLive = "assertive", ...props }, ref) => {
|
|
2630
3102
|
const { textAreaProps } = useTextAreaCompoundContext("TextArea.ErrorMessage");
|
|
2631
3103
|
const typographyClass = textAreaProps.size === "large" ? "typography-label12regular" : "typography-label11regular";
|
|
@@ -2633,26 +3105,26 @@ var TextAreaErrorMessage = forwardRef10(
|
|
|
2633
3105
|
if (!shouldRender) {
|
|
2634
3106
|
return null;
|
|
2635
3107
|
}
|
|
2636
|
-
const errorMessageClassName =
|
|
2637
|
-
return /* @__PURE__ */
|
|
3108
|
+
const errorMessageClassName = clsx41(typographyClass, "text-supportError");
|
|
3109
|
+
return /* @__PURE__ */ jsx56("div", { ref, className: errorMessageClassName, "aria-live": ariaLive, ...props });
|
|
2638
3110
|
}
|
|
2639
3111
|
);
|
|
2640
3112
|
TextAreaErrorMessage.displayName = "TextArea.ErrorMessage";
|
|
2641
3113
|
|
|
2642
3114
|
// src/text-area/text-area-helper-message.tsx
|
|
2643
|
-
import { clsx as
|
|
2644
|
-
import { forwardRef as
|
|
2645
|
-
import { jsx as
|
|
2646
|
-
var TextAreaHelperMessage =
|
|
3115
|
+
import { clsx as clsx42 } from "clsx";
|
|
3116
|
+
import { forwardRef as forwardRef12 } from "react";
|
|
3117
|
+
import { jsx as jsx57 } from "react/jsx-runtime";
|
|
3118
|
+
var TextAreaHelperMessage = forwardRef12((props, ref) => {
|
|
2647
3119
|
const { textAreaProps } = useTextAreaCompoundContext("TextArea.HelperMessage");
|
|
2648
3120
|
const typographyClass = textAreaProps.size === "large" ? "typography-label12regular" : "typography-label11regular";
|
|
2649
|
-
const helperMessageClassName =
|
|
2650
|
-
return /* @__PURE__ */
|
|
3121
|
+
const helperMessageClassName = clsx42(typographyClass, "text-text02");
|
|
3122
|
+
return /* @__PURE__ */ jsx57("div", { ref, className: helperMessageClassName, ...props });
|
|
2651
3123
|
});
|
|
2652
3124
|
TextAreaHelperMessage.displayName = "TextArea.HelperMessage";
|
|
2653
3125
|
|
|
2654
3126
|
// src/text-area/text-area.tsx
|
|
2655
|
-
import { jsx as
|
|
3127
|
+
import { jsx as jsx58, jsxs as jsxs28 } from "react/jsx-runtime";
|
|
2656
3128
|
function TextAreaInner({
|
|
2657
3129
|
size = "medium",
|
|
2658
3130
|
isResizable = false,
|
|
@@ -2665,15 +3137,15 @@ function TextAreaInner({
|
|
|
2665
3137
|
className,
|
|
2666
3138
|
...props
|
|
2667
3139
|
}, ref) {
|
|
2668
|
-
const autoGeneratedId =
|
|
2669
|
-
const textAreaPropsForContext =
|
|
3140
|
+
const autoGeneratedId = useId4();
|
|
3141
|
+
const textAreaPropsForContext = useMemo4(
|
|
2670
3142
|
() => ({
|
|
2671
3143
|
size,
|
|
2672
3144
|
isError
|
|
2673
3145
|
}),
|
|
2674
3146
|
[size, isError]
|
|
2675
3147
|
);
|
|
2676
|
-
const contextValue =
|
|
3148
|
+
const contextValue = useMemo4(
|
|
2677
3149
|
() => ({
|
|
2678
3150
|
textAreaProps: textAreaPropsForContext,
|
|
2679
3151
|
forwardedRef: ref
|
|
@@ -2683,21 +3155,21 @@ function TextAreaInner({
|
|
|
2683
3155
|
const helperMessageIds = [];
|
|
2684
3156
|
const errorIds = [];
|
|
2685
3157
|
const describedByBaseId = props.id ?? autoGeneratedId;
|
|
2686
|
-
const enhancedChildren =
|
|
2687
|
-
if (!
|
|
3158
|
+
const enhancedChildren = Children5.map(children, (child) => {
|
|
3159
|
+
if (!isValidElement3(child)) {
|
|
2688
3160
|
return child;
|
|
2689
3161
|
}
|
|
2690
3162
|
if (child.type === TextAreaHelperMessage) {
|
|
2691
3163
|
const helperChild = child;
|
|
2692
3164
|
const assignedId = helperChild.props.id ?? `${describedByBaseId}-helper-${helperMessageIds.length + 1}`;
|
|
2693
3165
|
helperMessageIds.push(assignedId);
|
|
2694
|
-
return
|
|
3166
|
+
return cloneElement5(helperChild, { id: assignedId });
|
|
2695
3167
|
}
|
|
2696
3168
|
if (child.type === TextAreaErrorMessage && isError) {
|
|
2697
3169
|
const errorChild = child;
|
|
2698
3170
|
const assignedId = errorChild.props.id ?? `${describedByBaseId}-error-${errorIds.length + 1}`;
|
|
2699
3171
|
errorIds.push(assignedId);
|
|
2700
|
-
return
|
|
3172
|
+
return cloneElement5(errorChild, { id: assignedId });
|
|
2701
3173
|
}
|
|
2702
3174
|
return child;
|
|
2703
3175
|
});
|
|
@@ -2717,7 +3189,7 @@ function TextAreaInner({
|
|
|
2717
3189
|
...describedByProps,
|
|
2718
3190
|
...ariaInvalidProps
|
|
2719
3191
|
};
|
|
2720
|
-
const textAreaWrapperClassName =
|
|
3192
|
+
const textAreaWrapperClassName = clsx43(
|
|
2721
3193
|
"box-border flex w-full overflow-hidden rounded border",
|
|
2722
3194
|
{
|
|
2723
3195
|
"border-supportError": isError && !disabled,
|
|
@@ -2729,7 +3201,7 @@ function TextAreaInner({
|
|
|
2729
3201
|
},
|
|
2730
3202
|
className
|
|
2731
3203
|
);
|
|
2732
|
-
const textAreaClassName =
|
|
3204
|
+
const textAreaClassName = clsx43(
|
|
2733
3205
|
"w-full border-none bg-uiBackground01 outline-0 placeholder:text-textPlaceholder disabled:text-textPlaceholder",
|
|
2734
3206
|
{
|
|
2735
3207
|
"typography-body14regular px-2 py-2": size === "medium",
|
|
@@ -2742,7 +3214,7 @@ function TextAreaInner({
|
|
|
2742
3214
|
}
|
|
2743
3215
|
);
|
|
2744
3216
|
const hasHeight = height != null && String(height).trim().length > 0;
|
|
2745
|
-
const textAreaElement = /* @__PURE__ */
|
|
3217
|
+
const textAreaElement = /* @__PURE__ */ jsx58(
|
|
2746
3218
|
"div",
|
|
2747
3219
|
{
|
|
2748
3220
|
className: textAreaWrapperClassName,
|
|
@@ -2752,7 +3224,7 @@ function TextAreaInner({
|
|
|
2752
3224
|
...!autoHeight && hasHeight ? { height } : {},
|
|
2753
3225
|
...autoHeight && hasHeight ? { minHeight: height } : {}
|
|
2754
3226
|
},
|
|
2755
|
-
children: /* @__PURE__ */
|
|
3227
|
+
children: /* @__PURE__ */ jsx58(
|
|
2756
3228
|
"textarea",
|
|
2757
3229
|
{
|
|
2758
3230
|
ref,
|
|
@@ -2767,12 +3239,12 @@ function TextAreaInner({
|
|
|
2767
3239
|
)
|
|
2768
3240
|
}
|
|
2769
3241
|
);
|
|
2770
|
-
const stackedChildren = enhancedChildren == null ? [] :
|
|
3242
|
+
const stackedChildren = enhancedChildren == null ? [] : Children5.toArray(enhancedChildren);
|
|
2771
3243
|
const hasMessageChildren = stackedChildren.length > 0;
|
|
2772
3244
|
if (!hasMessageChildren) {
|
|
2773
|
-
return /* @__PURE__ */
|
|
3245
|
+
return /* @__PURE__ */ jsx58(TextAreaCompoundContext.Provider, { value: contextValue, children: textAreaElement });
|
|
2774
3246
|
}
|
|
2775
|
-
return /* @__PURE__ */
|
|
3247
|
+
return /* @__PURE__ */ jsx58(TextAreaCompoundContext.Provider, { value: contextValue, children: /* @__PURE__ */ jsxs28("div", { className: "flex flex-col gap-2", children: [
|
|
2776
3248
|
textAreaElement,
|
|
2777
3249
|
stackedChildren
|
|
2778
3250
|
] }) });
|
|
@@ -2783,15 +3255,15 @@ var attachStatics2 = (component) => {
|
|
|
2783
3255
|
component.displayName = "TextArea";
|
|
2784
3256
|
return component;
|
|
2785
3257
|
};
|
|
2786
|
-
var TextAreaBase =
|
|
3258
|
+
var TextAreaBase = forwardRef13(function TextAreaBase2(props, ref) {
|
|
2787
3259
|
return TextAreaInner(props, ref);
|
|
2788
3260
|
});
|
|
2789
3261
|
var TextArea = attachStatics2(TextAreaBase);
|
|
2790
3262
|
|
|
2791
3263
|
// src/toast/toast.tsx
|
|
2792
|
-
import
|
|
2793
|
-
import { useCallback as
|
|
2794
|
-
import { jsx as
|
|
3264
|
+
import clsx44 from "clsx";
|
|
3265
|
+
import { useCallback as useCallback11, useEffect as useEffect7, useState as useState12 } from "react";
|
|
3266
|
+
import { jsx as jsx59, jsxs as jsxs29 } from "react/jsx-runtime";
|
|
2795
3267
|
var CLOSE_TIME_MSEC = 5e3;
|
|
2796
3268
|
function Toast({
|
|
2797
3269
|
state = "information",
|
|
@@ -2801,8 +3273,8 @@ function Toast({
|
|
|
2801
3273
|
children,
|
|
2802
3274
|
onClickClose
|
|
2803
3275
|
}) {
|
|
2804
|
-
const [isRemoving, setIsRemoving] =
|
|
2805
|
-
const handleClose =
|
|
3276
|
+
const [isRemoving, setIsRemoving] = useState12(false);
|
|
3277
|
+
const handleClose = useCallback11(() => {
|
|
2806
3278
|
if (isAnimation) {
|
|
2807
3279
|
setIsRemoving(true);
|
|
2808
3280
|
} else {
|
|
@@ -2810,17 +3282,17 @@ function Toast({
|
|
|
2810
3282
|
}
|
|
2811
3283
|
}, [isAnimation, onClickClose]);
|
|
2812
3284
|
const handleAnimationEnd = (e) => window.getComputedStyle(e.currentTarget).opacity === "0" && onClickClose();
|
|
2813
|
-
const wrapperClasses =
|
|
3285
|
+
const wrapperClasses = clsx44("pointer-events-auto flex items-start gap-1 bg-white p-4 shadow-floatingShadow", {
|
|
2814
3286
|
["animate-toast-in"]: isAnimation && !isRemoving,
|
|
2815
3287
|
["animate-toast-out opacity-0"]: isAnimation && isRemoving
|
|
2816
3288
|
});
|
|
2817
|
-
const iconClasses =
|
|
3289
|
+
const iconClasses = clsx44("flex items-center", {
|
|
2818
3290
|
"fill-supportSuccess": state === "success",
|
|
2819
3291
|
"fill-supportError": state === "error",
|
|
2820
3292
|
"fill-supportWarning": state === "warning",
|
|
2821
3293
|
"fill-supportInfo": state === "information"
|
|
2822
3294
|
});
|
|
2823
|
-
const textClasses =
|
|
3295
|
+
const textClasses = clsx44("typography-body13regular flex-1 pt-[3px]", {
|
|
2824
3296
|
"text-supportError": state === "error",
|
|
2825
3297
|
"text-text01": state === "success" || state === "warning" || state === "information"
|
|
2826
3298
|
});
|
|
@@ -2830,7 +3302,7 @@ function Toast({
|
|
|
2830
3302
|
warning: "warning",
|
|
2831
3303
|
information: "information-filled"
|
|
2832
3304
|
};
|
|
2833
|
-
|
|
3305
|
+
useEffect7(() => {
|
|
2834
3306
|
const timer = window.setTimeout(() => {
|
|
2835
3307
|
if (isAutoClose) {
|
|
2836
3308
|
setIsRemoving(true);
|
|
@@ -2838,45 +3310,45 @@ function Toast({
|
|
|
2838
3310
|
}, CLOSE_TIME_MSEC);
|
|
2839
3311
|
return () => window.clearTimeout(timer);
|
|
2840
3312
|
}, [isAutoClose]);
|
|
2841
|
-
return /* @__PURE__ */
|
|
2842
|
-
/* @__PURE__ */
|
|
2843
|
-
/* @__PURE__ */
|
|
2844
|
-
/* @__PURE__ */
|
|
3313
|
+
return /* @__PURE__ */ jsxs29("div", { className: wrapperClasses, style: { width }, onAnimationEnd: handleAnimationEnd, children: [
|
|
3314
|
+
/* @__PURE__ */ jsx59("div", { className: iconClasses, children: /* @__PURE__ */ jsx59(Icon, { name: iconName[state] }) }),
|
|
3315
|
+
/* @__PURE__ */ jsx59("p", { className: textClasses, children }),
|
|
3316
|
+
/* @__PURE__ */ jsx59(IconButton, { icon: "close", size: "medium", variant: "text", onClick: handleClose, isNoPadding: true })
|
|
2845
3317
|
] });
|
|
2846
3318
|
}
|
|
2847
3319
|
|
|
2848
3320
|
// src/toast/toast-provider.tsx
|
|
2849
|
-
import { createContext as
|
|
3321
|
+
import { createContext as createContext11, useCallback as useCallback12, useContext as useContext14, useEffect as useEffect8, useState as useState13 } from "react";
|
|
2850
3322
|
import { createPortal as createPortal3 } from "react-dom";
|
|
2851
|
-
import { jsx as
|
|
2852
|
-
var ToastContext =
|
|
3323
|
+
import { jsx as jsx60, jsxs as jsxs30 } from "react/jsx-runtime";
|
|
3324
|
+
var ToastContext = createContext11({});
|
|
2853
3325
|
var ToastProvider = ({ children }) => {
|
|
2854
|
-
const [isClientRender, setIsClientRender] =
|
|
2855
|
-
const [toasts, setToasts] =
|
|
2856
|
-
const addToast =
|
|
3326
|
+
const [isClientRender, setIsClientRender] = useState13(false);
|
|
3327
|
+
const [toasts, setToasts] = useState13([]);
|
|
3328
|
+
const addToast = useCallback12(({ message, state }) => {
|
|
2857
3329
|
setToasts((prev) => [...prev, { id: Math.trunc(Math.random() * 1e5), message, state }]);
|
|
2858
3330
|
}, []);
|
|
2859
|
-
const removeToast =
|
|
3331
|
+
const removeToast = useCallback12((id) => {
|
|
2860
3332
|
setToasts((prev) => prev.filter((snackbar) => snackbar.id !== id));
|
|
2861
3333
|
}, []);
|
|
2862
|
-
|
|
3334
|
+
useEffect8(() => {
|
|
2863
3335
|
setIsClientRender(true);
|
|
2864
3336
|
}, []);
|
|
2865
|
-
return /* @__PURE__ */
|
|
3337
|
+
return /* @__PURE__ */ jsxs30(ToastContext.Provider, { value: { addToast, removeToast }, children: [
|
|
2866
3338
|
children,
|
|
2867
3339
|
isClientRender && createPortal3(
|
|
2868
|
-
/* @__PURE__ */
|
|
3340
|
+
/* @__PURE__ */ jsx60("div", { className: "pointer-events-none fixed bottom-0 left-0 z-toast mb-4 ml-4 flex w-full flex-col-reverse gap-[16px]", children: toasts.map(({ id, message, state }) => /* @__PURE__ */ jsx60(Toast, { state, isAutoClose: true, isAnimation: true, onClickClose: () => removeToast(id), width: 475, children: message }, id)) }),
|
|
2869
3341
|
document.body
|
|
2870
3342
|
)
|
|
2871
3343
|
] });
|
|
2872
3344
|
};
|
|
2873
3345
|
var useToast = () => {
|
|
2874
|
-
return
|
|
3346
|
+
return useContext14(ToastContext);
|
|
2875
3347
|
};
|
|
2876
3348
|
|
|
2877
3349
|
// src/toggle/toggle.tsx
|
|
2878
|
-
import
|
|
2879
|
-
import { jsx as
|
|
3350
|
+
import clsx45 from "clsx";
|
|
3351
|
+
import { jsx as jsx61, jsxs as jsxs31 } from "react/jsx-runtime";
|
|
2880
3352
|
function Toggle({
|
|
2881
3353
|
id,
|
|
2882
3354
|
size = "medium",
|
|
@@ -2886,7 +3358,7 @@ function Toggle({
|
|
|
2886
3358
|
labelPosition = "right",
|
|
2887
3359
|
isDisabled = false
|
|
2888
3360
|
}) {
|
|
2889
|
-
const baseClasses =
|
|
3361
|
+
const baseClasses = clsx45("relative flex items-center rounded-full", {
|
|
2890
3362
|
"bg-disabledOn": isDisabled && isChecked,
|
|
2891
3363
|
"bg-disabled01": isDisabled && !isChecked,
|
|
2892
3364
|
"bg-interactive01 peer-hover:bg-hover01": !isDisabled && isChecked,
|
|
@@ -2894,16 +3366,16 @@ function Toggle({
|
|
|
2894
3366
|
"w-8 h-4 px-[3px]": size === "small",
|
|
2895
3367
|
"w-12 h-6 px-1": size === "medium" || size === "large"
|
|
2896
3368
|
});
|
|
2897
|
-
const inputClasses =
|
|
3369
|
+
const inputClasses = clsx45(
|
|
2898
3370
|
"peer absolute inset-0 z-[1] opacity-0",
|
|
2899
3371
|
isDisabled ? "cursor-not-allowed" : "cursor-pointer"
|
|
2900
3372
|
);
|
|
2901
|
-
const indicatorClasses =
|
|
3373
|
+
const indicatorClasses = clsx45("rounded-full bg-iconOnColor", {
|
|
2902
3374
|
"w-2.5 h-2.5": size === "small",
|
|
2903
3375
|
"w-4 h-4": size === "medium" || size === "large",
|
|
2904
3376
|
"ml-auto": isChecked
|
|
2905
3377
|
});
|
|
2906
|
-
const labelClasses =
|
|
3378
|
+
const labelClasses = clsx45("break-all", {
|
|
2907
3379
|
"mr-2": labelPosition === "left",
|
|
2908
3380
|
"ml-2": labelPosition === "right",
|
|
2909
3381
|
"typography-label14regular": size === "small" || size === "medium",
|
|
@@ -2911,9 +3383,9 @@ function Toggle({
|
|
|
2911
3383
|
"pointer-events-none cursor-not-allowed text-disabled01": isDisabled,
|
|
2912
3384
|
"cursor-pointer text-text01": !isDisabled
|
|
2913
3385
|
});
|
|
2914
|
-
return /* @__PURE__ */
|
|
2915
|
-
label != null && labelPosition === "left" && /* @__PURE__ */
|
|
2916
|
-
/* @__PURE__ */
|
|
3386
|
+
return /* @__PURE__ */ jsxs31("div", { className: "relative flex flex-[0_0_auto] items-center", children: [
|
|
3387
|
+
label != null && labelPosition === "left" && /* @__PURE__ */ jsx61("label", { htmlFor: id, className: labelClasses, children: label }),
|
|
3388
|
+
/* @__PURE__ */ jsx61(
|
|
2917
3389
|
"input",
|
|
2918
3390
|
{
|
|
2919
3391
|
className: inputClasses,
|
|
@@ -2925,23 +3397,23 @@ function Toggle({
|
|
|
2925
3397
|
disabled: isDisabled
|
|
2926
3398
|
}
|
|
2927
3399
|
),
|
|
2928
|
-
/* @__PURE__ */
|
|
2929
|
-
label != null && labelPosition === "right" && /* @__PURE__ */
|
|
3400
|
+
/* @__PURE__ */ jsx61("div", { className: baseClasses, children: /* @__PURE__ */ jsx61("span", { className: indicatorClasses }) }),
|
|
3401
|
+
label != null && labelPosition === "right" && /* @__PURE__ */ jsx61("label", { htmlFor: id, className: labelClasses, children: label })
|
|
2930
3402
|
] });
|
|
2931
3403
|
}
|
|
2932
3404
|
|
|
2933
3405
|
// src/tooltip/tooltip.tsx
|
|
2934
|
-
import { useCallback as
|
|
3406
|
+
import { useCallback as useCallback14, useEffect as useEffect9, useRef as useRef10, useState as useState14 } from "react";
|
|
2935
3407
|
import { createPortal as createPortal4 } from "react-dom";
|
|
2936
3408
|
|
|
2937
3409
|
// src/tooltip/tooltip-content.tsx
|
|
2938
|
-
import
|
|
3410
|
+
import clsx47 from "clsx";
|
|
2939
3411
|
|
|
2940
3412
|
// src/tooltip/tail-icon.tsx
|
|
2941
|
-
import
|
|
2942
|
-
import { jsx as
|
|
3413
|
+
import clsx46 from "clsx";
|
|
3414
|
+
import { jsx as jsx62 } from "react/jsx-runtime";
|
|
2943
3415
|
var TailIcon = (props) => {
|
|
2944
|
-
const tailClasses =
|
|
3416
|
+
const tailClasses = clsx46("absolute fill-uiBackgroundTooltip", {
|
|
2945
3417
|
"rotate-180": props.verticalPosition === "bottom",
|
|
2946
3418
|
"rotate-0": props.verticalPosition !== "bottom",
|
|
2947
3419
|
"-top-1": props.verticalPosition === "bottom" && props.size === "small",
|
|
@@ -2956,9 +3428,9 @@ var TailIcon = (props) => {
|
|
|
2956
3428
|
"left-1/2 -translate-x-2": props.horizontalAlign === "center" && props.size !== "small"
|
|
2957
3429
|
});
|
|
2958
3430
|
if (props.size === "small") {
|
|
2959
|
-
return /* @__PURE__ */
|
|
3431
|
+
return /* @__PURE__ */ jsx62("svg", { className: tailClasses, width: "8", height: "4", viewBox: "0 0 8 4", xmlns: "http://www.w3.org/2000/svg", children: /* @__PURE__ */ jsx62("path", { d: "M4 4L0 0H8L4 4Z" }) });
|
|
2960
3432
|
} else {
|
|
2961
|
-
return /* @__PURE__ */
|
|
3433
|
+
return /* @__PURE__ */ jsx62(
|
|
2962
3434
|
"svg",
|
|
2963
3435
|
{
|
|
2964
3436
|
className: tailClasses,
|
|
@@ -2967,14 +3439,14 @@ var TailIcon = (props) => {
|
|
|
2967
3439
|
viewBox: "0 0 14 8",
|
|
2968
3440
|
fill: "none",
|
|
2969
3441
|
xmlns: "http://www.w3.org/2000/svg",
|
|
2970
|
-
children: /* @__PURE__ */
|
|
3442
|
+
children: /* @__PURE__ */ jsx62("path", { d: "M7 8L0 0H14L7 8Z" })
|
|
2971
3443
|
}
|
|
2972
3444
|
);
|
|
2973
3445
|
}
|
|
2974
3446
|
};
|
|
2975
3447
|
|
|
2976
3448
|
// src/tooltip/tooltip-content.tsx
|
|
2977
|
-
import { jsx as
|
|
3449
|
+
import { jsx as jsx63, jsxs as jsxs32 } from "react/jsx-runtime";
|
|
2978
3450
|
var TooltipContent = ({
|
|
2979
3451
|
content,
|
|
2980
3452
|
horizontalAlign,
|
|
@@ -2984,7 +3456,7 @@ var TooltipContent = ({
|
|
|
2984
3456
|
maxWidth,
|
|
2985
3457
|
isPortal = false
|
|
2986
3458
|
}) => {
|
|
2987
|
-
const tooltipWrapperClasses =
|
|
3459
|
+
const tooltipWrapperClasses = clsx47("absolute z-tooltip m-auto flex", {
|
|
2988
3460
|
"top-0": !isPortal && verticalPosition === "top",
|
|
2989
3461
|
"bottom-0": !isPortal && verticalPosition === "bottom",
|
|
2990
3462
|
"justify-start": horizontalAlign === "left",
|
|
@@ -2993,7 +3465,7 @@ var TooltipContent = ({
|
|
|
2993
3465
|
"w-[24px]": size === "small",
|
|
2994
3466
|
"w-[46px]": size !== "small"
|
|
2995
3467
|
});
|
|
2996
|
-
const tooltipBodyClasses =
|
|
3468
|
+
const tooltipBodyClasses = clsx47(
|
|
2997
3469
|
"absolute z-tooltip inline-block w-max rounded bg-uiBackgroundTooltip text-textOnColor",
|
|
2998
3470
|
{
|
|
2999
3471
|
"typography-body12regular": size === "small",
|
|
@@ -3010,7 +3482,7 @@ var TooltipContent = ({
|
|
|
3010
3482
|
transform: `translate(${tooltipPosition.translateX}, ${tooltipPosition.translateY})`,
|
|
3011
3483
|
...tooltipPosition
|
|
3012
3484
|
} : {};
|
|
3013
|
-
return /* @__PURE__ */
|
|
3485
|
+
return /* @__PURE__ */ jsx63("div", { className: tooltipWrapperClasses, style: tooltipWrapperStyle, children: /* @__PURE__ */ jsxs32(
|
|
3014
3486
|
"div",
|
|
3015
3487
|
{
|
|
3016
3488
|
className: tooltipBodyClasses,
|
|
@@ -3019,16 +3491,16 @@ var TooltipContent = ({
|
|
|
3019
3491
|
},
|
|
3020
3492
|
children: [
|
|
3021
3493
|
content,
|
|
3022
|
-
/* @__PURE__ */
|
|
3494
|
+
/* @__PURE__ */ jsx63(TailIcon, { size, verticalPosition, horizontalAlign })
|
|
3023
3495
|
]
|
|
3024
3496
|
}
|
|
3025
3497
|
) });
|
|
3026
3498
|
};
|
|
3027
3499
|
|
|
3028
3500
|
// src/tooltip/tooltip-hook.ts
|
|
3029
|
-
import { useCallback as
|
|
3501
|
+
import { useCallback as useCallback13 } from "react";
|
|
3030
3502
|
var useTooltip = () => {
|
|
3031
|
-
const calculatePosition =
|
|
3503
|
+
const calculatePosition = useCallback13(
|
|
3032
3504
|
(args) => {
|
|
3033
3505
|
const result = {
|
|
3034
3506
|
maxWidth: "none",
|
|
@@ -3080,7 +3552,7 @@ var useTooltip = () => {
|
|
|
3080
3552
|
};
|
|
3081
3553
|
|
|
3082
3554
|
// src/tooltip/tooltip.tsx
|
|
3083
|
-
import { jsx as
|
|
3555
|
+
import { jsx as jsx64, jsxs as jsxs33 } from "react/jsx-runtime";
|
|
3084
3556
|
function Tooltip({
|
|
3085
3557
|
children,
|
|
3086
3558
|
content,
|
|
@@ -3092,8 +3564,8 @@ function Tooltip({
|
|
|
3092
3564
|
portalTarget
|
|
3093
3565
|
}) {
|
|
3094
3566
|
const { calculatePosition } = useTooltip();
|
|
3095
|
-
const [isVisible, setIsVisible] =
|
|
3096
|
-
const [tooltipPosition, setTooltipPosition] =
|
|
3567
|
+
const [isVisible, setIsVisible] = useState14(false);
|
|
3568
|
+
const [tooltipPosition, setTooltipPosition] = useState14({
|
|
3097
3569
|
maxWidth: "none",
|
|
3098
3570
|
width: "auto",
|
|
3099
3571
|
left: "0px",
|
|
@@ -3102,23 +3574,23 @@ function Tooltip({
|
|
|
3102
3574
|
translateX: "0",
|
|
3103
3575
|
translateY: "0"
|
|
3104
3576
|
});
|
|
3105
|
-
const targetRef =
|
|
3106
|
-
const handleMouseOverWrapper =
|
|
3577
|
+
const targetRef = useRef10(null);
|
|
3578
|
+
const handleMouseOverWrapper = useCallback14(() => {
|
|
3107
3579
|
if (isDisabledHover) {
|
|
3108
3580
|
return;
|
|
3109
3581
|
}
|
|
3110
3582
|
setIsVisible(true);
|
|
3111
3583
|
}, [isDisabledHover]);
|
|
3112
|
-
const handleMouseOutWrapper =
|
|
3584
|
+
const handleMouseOutWrapper = useCallback14(() => {
|
|
3113
3585
|
setIsVisible(false);
|
|
3114
3586
|
}, []);
|
|
3115
|
-
|
|
3587
|
+
useEffect9(() => {
|
|
3116
3588
|
if (targetRef.current === null) return;
|
|
3117
3589
|
const dimensions = targetRef.current?.getBoundingClientRect();
|
|
3118
3590
|
const position = calculatePosition({ dimensions, maxWidth, verticalPosition, horizontalAlign, tooltipSize: size });
|
|
3119
3591
|
setTooltipPosition(position);
|
|
3120
3592
|
}, [calculatePosition, horizontalAlign, maxWidth, size, verticalPosition]);
|
|
3121
|
-
return /* @__PURE__ */
|
|
3593
|
+
return /* @__PURE__ */ jsxs33(
|
|
3122
3594
|
"div",
|
|
3123
3595
|
{
|
|
3124
3596
|
ref: targetRef,
|
|
@@ -3127,7 +3599,7 @@ function Tooltip({
|
|
|
3127
3599
|
onMouseLeave: handleMouseOutWrapper,
|
|
3128
3600
|
children: [
|
|
3129
3601
|
children,
|
|
3130
|
-
isVisible && (portalTarget == null ? /* @__PURE__ */
|
|
3602
|
+
isVisible && (portalTarget == null ? /* @__PURE__ */ jsx64(
|
|
3131
3603
|
TooltipContent,
|
|
3132
3604
|
{
|
|
3133
3605
|
content,
|
|
@@ -3138,7 +3610,7 @@ function Tooltip({
|
|
|
3138
3610
|
tooltipPosition
|
|
3139
3611
|
}
|
|
3140
3612
|
) : createPortal4(
|
|
3141
|
-
/* @__PURE__ */
|
|
3613
|
+
/* @__PURE__ */ jsx64(
|
|
3142
3614
|
TooltipContent,
|
|
3143
3615
|
{
|
|
3144
3616
|
isPortal: true,
|
|
@@ -3161,6 +3633,7 @@ export {
|
|
|
3161
3633
|
Breadcrumb,
|
|
3162
3634
|
Button,
|
|
3163
3635
|
Checkbox,
|
|
3636
|
+
DatePicker,
|
|
3164
3637
|
Dropdown,
|
|
3165
3638
|
EvaluationStar,
|
|
3166
3639
|
FileInput,
|