@sarunyu/system-one 4.9.23 → 4.9.24

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.cjs CHANGED
@@ -9,6 +9,7 @@ const react = require("@phosphor-icons/react");
9
9
  const reactDayPicker = require("react-day-picker");
10
10
  const Popover = require("@radix-ui/react-popover");
11
11
  const vaul = require("vaul");
12
+ const reactDom = require("react-dom");
12
13
  function _interopNamespaceDefault(e) {
13
14
  const n = Object.create(null, { [Symbol.toStringTag]: { value: "Module" } });
14
15
  if (e) {
@@ -2656,6 +2657,9 @@ const Dropdown = React.forwardRef(
2656
2657
  const [search, setSearch] = React.useState("");
2657
2658
  const containerRef = React.useRef(null);
2658
2659
  const inputRef = React.useRef(null);
2660
+ const triggerRef = React.useRef(null);
2661
+ const menuRef = React.useRef(null);
2662
+ const [menuStyle, setMenuStyle] = React.useState({});
2659
2663
  const controlled = value !== void 0;
2660
2664
  const currentValue = controlled ? value : internalValue;
2661
2665
  const isDisabled = forceState === "disabled";
@@ -2686,12 +2690,29 @@ const Dropdown = React.forwardRef(
2686
2690
  React.useEffect(() => {
2687
2691
  if (!open) setSearch("");
2688
2692
  }, [open]);
2693
+ const updateMenuPosition = React.useCallback(() => {
2694
+ if (!triggerRef.current) return;
2695
+ const rect = triggerRef.current.getBoundingClientRect();
2696
+ setMenuStyle({ position: "fixed", top: rect.bottom + 4, left: rect.left, width: rect.width });
2697
+ }, []);
2698
+ React.useEffect(() => {
2699
+ if (!open) return;
2700
+ updateMenuPosition();
2701
+ window.addEventListener("scroll", updateMenuPosition, true);
2702
+ window.addEventListener("resize", updateMenuPosition);
2703
+ return () => {
2704
+ window.removeEventListener("scroll", updateMenuPosition, true);
2705
+ window.removeEventListener("resize", updateMenuPosition);
2706
+ };
2707
+ }, [open, updateMenuPosition]);
2689
2708
  React.useEffect(() => {
2690
2709
  if (!open) return;
2691
2710
  const handler = (e) => {
2692
- if (containerRef.current && !containerRef.current.contains(e.target)) {
2693
- setOpen(false);
2694
- }
2711
+ var _a2, _b;
2712
+ const target = e.target;
2713
+ const inContainer = ((_a2 = containerRef.current) == null ? void 0 : _a2.contains(target)) ?? false;
2714
+ const inMenu = ((_b = menuRef.current) == null ? void 0 : _b.contains(target)) ?? false;
2715
+ if (!inContainer && !inMenu) setOpen(false);
2695
2716
  };
2696
2717
  document.addEventListener("mousedown", handler);
2697
2718
  return () => document.removeEventListener("mousedown", handler);
@@ -2731,6 +2752,7 @@ const Dropdown = React.forwardRef(
2731
2752
  /* @__PURE__ */ jsxRuntime.jsxs(
2732
2753
  "div",
2733
2754
  {
2755
+ ref: triggerRef,
2734
2756
  onClick: handleToggle,
2735
2757
  className: cn(
2736
2758
  "relative flex gap-2 items-center rounded-lg px-3.5",
@@ -2887,46 +2909,52 @@ const Dropdown = React.forwardRef(
2887
2909
  }
2888
2910
  )
2889
2911
  ),
2890
- isFocus ? /* @__PURE__ */ jsxRuntime.jsx(react.CaretUp, { size: 22, className: cn("shrink-0", caretClassName) }) : /* @__PURE__ */ jsxRuntime.jsx(react.CaretDown, { size: 22, className: cn("shrink-0", caretClassName) }),
2891
- open && !forceState && options.length > 0 && /* @__PURE__ */ jsxRuntime.jsx(
2912
+ isFocus ? /* @__PURE__ */ jsxRuntime.jsx(react.CaretUp, { size: 22, className: cn("shrink-0", caretClassName) }) : /* @__PURE__ */ jsxRuntime.jsx(react.CaretDown, { size: 22, className: cn("shrink-0", caretClassName) })
2913
+ ]
2914
+ }
2915
+ ),
2916
+ open && !forceState && options.length > 0 && reactDom.createPortal(
2917
+ /* @__PURE__ */ jsxRuntime.jsx(
2918
+ "div",
2919
+ {
2920
+ ref: menuRef,
2921
+ className: cn(
2922
+ "bg-popover rounded-lg overflow-clip p-2 flex flex-col items-start text-popover-foreground",
2923
+ filteredOptions.length > 10 && "overflow-y-auto"
2924
+ ),
2925
+ style: {
2926
+ ...menuStyle,
2927
+ boxShadow: "var(--elevation-popover)",
2928
+ zIndex: 9999,
2929
+ ...filteredOptions.length > 10 ? { maxHeight: 10 * 48 + 16 } : {}
2930
+ },
2931
+ children: filteredOptions.length > 0 ? filteredOptions.map((opt) => /* @__PURE__ */ jsxRuntime.jsx(
2892
2932
  "div",
2893
2933
  {
2934
+ onClick: (e) => {
2935
+ e.stopPropagation();
2936
+ handleSelect(opt.value);
2937
+ },
2894
2938
  className: cn(
2895
- "absolute top-full left-0 w-full mt-1 bg-popover rounded-lg overflow-clip p-2 z-50 flex flex-col items-start text-popover-foreground",
2896
- filteredOptions.length > 10 && "overflow-y-auto"
2939
+ "w-full shrink-0 rounded-[4px] cursor-pointer transition-colors duration-100",
2940
+ opt.value === currentValue ? "bg-primary-action-light" : "bg-popover hover:bg-disabled-bg"
2897
2941
  ),
2898
- style: {
2899
- boxShadow: "var(--elevation-popover)",
2900
- ...filteredOptions.length > 10 ? { maxHeight: 10 * 48 + 16 } : {}
2901
- },
2902
- children: filteredOptions.length > 0 ? filteredOptions.map((opt) => /* @__PURE__ */ jsxRuntime.jsx(
2903
- "div",
2942
+ children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex flex-row items-center size-full", children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex items-center p-3.5 relative w-full", children: /* @__PURE__ */ jsxRuntime.jsx(
2943
+ "p",
2904
2944
  {
2905
- onClick: (e) => {
2906
- e.stopPropagation();
2907
- handleSelect(opt.value);
2908
- },
2909
2945
  className: cn(
2910
- "w-full shrink-0 rounded-[4px] cursor-pointer transition-colors duration-100",
2911
- opt.value === currentValue ? "bg-primary-action-light" : "bg-popover hover:bg-disabled-bg"
2946
+ "flex-1 min-w-0 min-h-[1px] leading-5 not-italic overflow-hidden text-sm text-ellipsis whitespace-nowrap",
2947
+ opt.value === currentValue ? "text-primary-action" : "text-foreground"
2912
2948
  ),
2913
- children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex flex-row items-center size-full", children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex items-center p-3.5 relative w-full", children: /* @__PURE__ */ jsxRuntime.jsx(
2914
- "p",
2915
- {
2916
- className: cn(
2917
- "flex-1 min-w-0 min-h-[1px] leading-5 not-italic overflow-hidden text-sm text-ellipsis whitespace-nowrap",
2918
- opt.value === currentValue ? "text-primary-action" : "text-foreground"
2919
- ),
2920
- children: opt.label
2921
- }
2922
- ) }) })
2923
- },
2924
- opt.value
2925
- )) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: "w-full shrink-0 bg-popover", children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex flex-row items-center size-full", children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex items-center p-[14px] relative w-full", children: /* @__PURE__ */ jsxRuntime.jsx("p", { className: "flex-1 min-w-0 min-h-[1px] leading-[20px] not-italic text-[14px] text-disabled", children: "No results found" }) }) }) })
2926
- }
2927
- )
2928
- ]
2929
- }
2949
+ children: opt.label
2950
+ }
2951
+ ) }) })
2952
+ },
2953
+ opt.value
2954
+ )) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: "w-full shrink-0 bg-popover", children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex flex-row items-center size-full", children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex items-center p-[14px] relative w-full", children: /* @__PURE__ */ jsxRuntime.jsx("p", { className: "flex-1 min-w-0 min-h-[1px] leading-[20px] not-italic text-[14px] text-disabled", children: "No results found" }) }) }) })
2955
+ }
2956
+ ),
2957
+ document.body
2930
2958
  ),
2931
2959
  showBelow && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex items-start px-[4px] text-[12px] leading-[16px]", children: /* @__PURE__ */ jsxRuntime.jsx("span", { className: "flex-1 min-w-0", style: { color: leftColor }, children: leftText }) })
2932
2960
  ]
@@ -3114,6 +3142,9 @@ const DropdownMultiple = React.forwardRef(
3114
3142
  const containerRef = React.useRef(null);
3115
3143
  const inputRef = React.useRef(null);
3116
3144
  const measureRef = React.useRef(null);
3145
+ const triggerRef = React.useRef(null);
3146
+ const menuRef = React.useRef(null);
3147
+ const [menuStyle, setMenuStyle] = React.useState({});
3117
3148
  React.useImperativeHandle(ref, () => containerRef.current);
3118
3149
  const controlled = value !== void 0;
3119
3150
  const currentValue = controlled ? value : internalValue;
@@ -3159,12 +3190,29 @@ const DropdownMultiple = React.forwardRef(
3159
3190
  React.useEffect(() => {
3160
3191
  if (!open) setSearch("");
3161
3192
  }, [open]);
3193
+ const updateMenuPosition = React.useCallback(() => {
3194
+ if (!triggerRef.current) return;
3195
+ const rect = triggerRef.current.getBoundingClientRect();
3196
+ setMenuStyle({ position: "fixed", top: rect.bottom + 4, left: rect.left, width: rect.width });
3197
+ }, []);
3198
+ React.useEffect(() => {
3199
+ if (!open) return;
3200
+ updateMenuPosition();
3201
+ window.addEventListener("scroll", updateMenuPosition, true);
3202
+ window.addEventListener("resize", updateMenuPosition);
3203
+ return () => {
3204
+ window.removeEventListener("scroll", updateMenuPosition, true);
3205
+ window.removeEventListener("resize", updateMenuPosition);
3206
+ };
3207
+ }, [open, updateMenuPosition]);
3162
3208
  React.useEffect(() => {
3163
3209
  if (!open) return;
3164
3210
  const handler = (e) => {
3165
- if (containerRef.current && !containerRef.current.contains(e.target)) {
3166
- setOpen(false);
3167
- }
3211
+ var _a, _b;
3212
+ const target = e.target;
3213
+ const inContainer = ((_a = containerRef.current) == null ? void 0 : _a.contains(target)) ?? false;
3214
+ const inMenu = ((_b = menuRef.current) == null ? void 0 : _b.contains(target)) ?? false;
3215
+ if (!inContainer && !inMenu) setOpen(false);
3168
3216
  };
3169
3217
  document.addEventListener("mousedown", handler);
3170
3218
  return () => document.removeEventListener("mousedown", handler);
@@ -3398,6 +3446,7 @@ const DropdownMultiple = React.forwardRef(
3398
3446
  /* @__PURE__ */ jsxRuntime.jsxs(
3399
3447
  "div",
3400
3448
  {
3449
+ ref: triggerRef,
3401
3450
  onClick: handleTriggerClick,
3402
3451
  className: cn(
3403
3452
  "relative flex gap-[8px] items-center rounded-[8px]",
@@ -3433,76 +3482,82 @@ const DropdownMultiple = React.forwardRef(
3433
3482
  )
3434
3483
  }
3435
3484
  ),
3436
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "shrink-0", style: { color: caretColor }, children: isFocus ? /* @__PURE__ */ jsxRuntime.jsx(react.CaretUp, { size: 22 }) : /* @__PURE__ */ jsxRuntime.jsx(react.CaretDown, { size: 22 }) }),
3437
- open && !isStatic && options.length > 0 && /* @__PURE__ */ jsxRuntime.jsx(
3485
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "shrink-0", style: { color: caretColor }, children: isFocus ? /* @__PURE__ */ jsxRuntime.jsx(react.CaretUp, { size: 22 }) : /* @__PURE__ */ jsxRuntime.jsx(react.CaretDown, { size: 22 }) })
3486
+ ]
3487
+ }
3488
+ ),
3489
+ open && !isStatic && options.length > 0 && reactDom.createPortal(
3490
+ /* @__PURE__ */ jsxRuntime.jsx(
3491
+ "div",
3492
+ {
3493
+ ref: menuRef,
3494
+ className: "bg-popover rounded-[8px] overflow-clip p-[8px] flex flex-col items-start text-popover-foreground",
3495
+ style: {
3496
+ ...menuStyle,
3497
+ boxShadow: "var(--elevation-popover)",
3498
+ zIndex: 9999
3499
+ },
3500
+ children: /* @__PURE__ */ jsxRuntime.jsx(
3438
3501
  "div",
3439
3502
  {
3440
- className: "absolute top-full left-0 w-full mt-1 bg-popover rounded-[8px] overflow-clip p-[8px] z-50 flex flex-col items-start text-popover-foreground",
3441
- style: {
3442
- boxShadow: "var(--elevation-popover)"
3443
- },
3444
- children: /* @__PURE__ */ jsxRuntime.jsx(
3445
- "div",
3446
- {
3447
- className: cn(
3448
- "w-full flex flex-col",
3449
- filteredOptions.length > 10 && "overflow-y-auto"
3450
- ),
3451
- style: filteredOptions.length > 10 ? { maxHeight: 10 * 48 } : void 0,
3452
- children: filteredOptions.length > 0 ? filteredOptions.map((opt) => {
3453
- const isSelected = currentValue.includes(opt.value);
3454
- return /* @__PURE__ */ jsxRuntime.jsx(
3455
- "div",
3456
- {
3457
- onClick: (e) => {
3458
- var _a;
3459
- e.stopPropagation();
3460
- handleToggleOption(opt.value);
3461
- (_a = inputRef.current) == null ? void 0 : _a.focus();
3462
- },
3463
- className: cn(
3464
- "w-full shrink-0 rounded-[4px] cursor-pointer transition-colors duration-100",
3465
- isSelected ? "bg-primary-action-light" : "bg-popover hover:bg-disabled-bg"
3466
- ),
3467
- children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex flex-row items-center size-full", children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-[8px] p-[14px] relative w-full", children: [
3468
- /* @__PURE__ */ jsxRuntime.jsx(
3469
- "p",
3470
- {
3471
- className: cn(
3472
- "flex-1 min-w-0 min-h-[1px] leading-[20px] not-italic overflow-hidden text-[14px] text-ellipsis whitespace-nowrap",
3473
- isSelected ? "text-primary-action" : "text-foreground"
3474
- ),
3475
- children: opt.label
3476
- }
3503
+ className: cn(
3504
+ "w-full flex flex-col",
3505
+ filteredOptions.length > 10 && "overflow-y-auto"
3506
+ ),
3507
+ style: filteredOptions.length > 10 ? { maxHeight: 10 * 48 } : void 0,
3508
+ children: filteredOptions.length > 0 ? filteredOptions.map((opt) => {
3509
+ const isSelected = currentValue.includes(opt.value);
3510
+ return /* @__PURE__ */ jsxRuntime.jsx(
3511
+ "div",
3512
+ {
3513
+ onClick: (e) => {
3514
+ var _a;
3515
+ e.stopPropagation();
3516
+ handleToggleOption(opt.value);
3517
+ (_a = inputRef.current) == null ? void 0 : _a.focus();
3518
+ },
3519
+ className: cn(
3520
+ "w-full shrink-0 rounded-[4px] cursor-pointer transition-colors duration-100",
3521
+ isSelected ? "bg-primary-action-light" : "bg-popover hover:bg-disabled-bg"
3522
+ ),
3523
+ children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex flex-row items-center size-full", children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-[8px] p-[14px] relative w-full", children: [
3524
+ /* @__PURE__ */ jsxRuntime.jsx(
3525
+ "p",
3526
+ {
3527
+ className: cn(
3528
+ "flex-1 min-w-0 min-h-[1px] leading-[20px] not-italic overflow-hidden text-[14px] text-ellipsis whitespace-nowrap",
3529
+ isSelected ? "text-primary-action" : "text-foreground"
3477
3530
  ),
3478
- /* @__PURE__ */ jsxRuntime.jsx(
3479
- "div",
3531
+ children: opt.label
3532
+ }
3533
+ ),
3534
+ /* @__PURE__ */ jsxRuntime.jsx(
3535
+ "div",
3536
+ {
3537
+ className: cn(
3538
+ "shrink-0 w-[16px] h-[16px] rounded-[3px] flex items-center justify-center transition-colors duration-100",
3539
+ "bg-transparent"
3540
+ ),
3541
+ children: isSelected && /* @__PURE__ */ jsxRuntime.jsx(
3542
+ react.Check,
3480
3543
  {
3481
- className: cn(
3482
- "shrink-0 w-[16px] h-[16px] rounded-[3px] flex items-center justify-center transition-colors duration-100",
3483
- "bg-transparent"
3484
- ),
3485
- children: isSelected && /* @__PURE__ */ jsxRuntime.jsx(
3486
- react.Check,
3487
- {
3488
- size: 12,
3489
- weight: "bold",
3490
- className: "text-primary-action"
3491
- }
3492
- )
3544
+ size: 12,
3545
+ weight: "bold",
3546
+ className: "text-primary-action"
3493
3547
  }
3494
3548
  )
3495
- ] }) })
3496
- },
3497
- opt.value
3498
- );
3499
- }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: "w-full shrink-0 bg-popover", children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex flex-row items-center size-full", children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex items-center p-[14px] relative w-full", children: /* @__PURE__ */ jsxRuntime.jsx("p", { className: "flex-1 min-w-0 min-h-[1px] leading-[20px] not-italic text-[14px] text-disabled", children: "No results found" }) }) }) })
3500
- }
3501
- )
3549
+ }
3550
+ )
3551
+ ] }) })
3552
+ },
3553
+ opt.value
3554
+ );
3555
+ }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: "w-full shrink-0 bg-popover", children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex flex-row items-center size-full", children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex items-center p-[14px] relative w-full", children: /* @__PURE__ */ jsxRuntime.jsx("p", { className: "flex-1 min-w-0 min-h-[1px] leading-[20px] not-italic text-[14px] text-disabled", children: "No results found" }) }) }) })
3502
3556
  }
3503
3557
  )
3504
- ]
3505
- }
3558
+ }
3559
+ ),
3560
+ document.body
3506
3561
  ),
3507
3562
  showBelow && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex items-start px-[4px] text-[12px] leading-[16px]", children: /* @__PURE__ */ jsxRuntime.jsx(
3508
3563
  "span",
@@ -3578,7 +3633,7 @@ const Input = React.forwardRef(function Input2({
3578
3633
  onBlurProp == null ? void 0 : onBlurProp(e);
3579
3634
  setFocused(false);
3580
3635
  };
3581
- const containerFlex = isFilled ? !hasRight ? "flex-col items-start justify-center" : rightIcon ? "flex items-center gap-[8px]" : "flex items-end gap-[8px]" : cn("flex items-center", hasRight && "gap-[8px]");
3636
+ const containerFlex = isFilled ? !hasRight ? "flex-col items-start justify-center" : rightIcon ? "flex items-center gap-[8px]" : "flex items-center gap-[8px]" : cn("flex items-center", hasRight && "gap-[8px]");
3582
3637
  const inputCaretStyle = {
3583
3638
  caretColor: "var(--caret-color)"
3584
3639
  };
@@ -3587,7 +3642,8 @@ const Input = React.forwardRef(function Input2({
3587
3642
  "div",
3588
3643
  {
3589
3644
  className: cn(
3590
- "relative rounded-lg min-h-[48px]",
3645
+ "relative rounded-lg",
3646
+ isFilled ? "min-h-[48px]" : "h-[48px]",
3591
3647
  padding,
3592
3648
  bg,
3593
3649
  containerFlex
@@ -3664,7 +3720,7 @@ const Input = React.forwardRef(function Input2({
3664
3720
  } : {
3665
3721
  ...inputStyleProp,
3666
3722
  color: "transparent",
3667
- caretColor: isFocus ? "var(--caret-color)" : "transparent",
3723
+ caretColor: focused ? "var(--caret-color)" : "transparent",
3668
3724
  padding: hasRight ? "12px 14px" : "14px",
3669
3725
  fontSize: "16px",
3670
3726
  lineHeight: "24px"
@@ -4835,6 +4891,7 @@ const TableRow = React.forwardRef(
4835
4891
  selected = false,
4836
4892
  onSelectedChange,
4837
4893
  hoverable = true,
4894
+ header: _header,
4838
4895
  onMouseEnter,
4839
4896
  onMouseLeave,
4840
4897
  ...props
@@ -4878,6 +4935,7 @@ const TableHeaderCell = React.forwardRef(
4878
4935
  fixed,
4879
4936
  fixedOffset = 0,
4880
4937
  fixedShadow,
4938
+ contentAlign: _contentAlign,
4881
4939
  children = "Title text",
4882
4940
  style: styleProp,
4883
4941
  onClick: onClickProp,
@@ -5061,10 +5119,22 @@ const TableCell = React.forwardRef(function TableCell2({
5061
5119
  }
5062
5120
  );
5063
5121
  });
5122
+ const TableHead = React.forwardRef(
5123
+ function TableHead2({ className, ...props }, ref) {
5124
+ return /* @__PURE__ */ jsxRuntime.jsx("thead", { ref, className: cn("", className), ...props });
5125
+ }
5126
+ );
5127
+ const TableBody = React.forwardRef(
5128
+ function TableBody2({ className, ...props }, ref) {
5129
+ return /* @__PURE__ */ jsxRuntime.jsx("tbody", { ref, className: cn("", className), ...props });
5130
+ }
5131
+ );
5064
5132
  Table.displayName = "Table";
5065
5133
  TableRow.displayName = "TableRow";
5066
5134
  TableHeaderCell.displayName = "TableHeaderCell";
5067
5135
  TableCell.displayName = "TableCell";
5136
+ TableHead.displayName = "TableHead";
5137
+ TableBody.displayName = "TableBody";
5068
5138
  const TextArea = React.forwardRef(
5069
5139
  function TextArea2({
5070
5140
  placeholder = "Text label",
@@ -5913,6 +5983,8 @@ const index = {
5913
5983
  Tag,
5914
5984
  StatusTag,
5915
5985
  Table,
5986
+ TableHead,
5987
+ TableBody,
5916
5988
  TableRow,
5917
5989
  TableHeaderCell,
5918
5990
  TableCell,
@@ -5941,7 +6013,9 @@ exports.StatusTag = StatusTag;
5941
6013
  exports.Tab = Tab;
5942
6014
  exports.TabGroup = TabGroup;
5943
6015
  exports.Table = Table;
6016
+ exports.TableBody = TableBody;
5944
6017
  exports.TableCell = TableCell;
6018
+ exports.TableHead = TableHead;
5945
6019
  exports.TableHeaderCell = TableHeaderCell;
5946
6020
  exports.TableRow = TableRow;
5947
6021
  exports.Tag = Tag;