@nori-ui/core 1.3.0 → 1.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (43) hide show
  1. package/dist/{chunk-V2AWSDDZ.js → chunk-76FZF4GM.js} +3 -3
  2. package/dist/{chunk-V2AWSDDZ.js.map → chunk-76FZF4GM.js.map} +1 -1
  3. package/dist/chunk-BNDUQNG7.js +443 -0
  4. package/dist/chunk-BNDUQNG7.js.map +1 -0
  5. package/dist/{chunk-XXBN6CIK.js → chunk-F7G6R373.js} +3 -3
  6. package/dist/{chunk-XXBN6CIK.js.map → chunk-F7G6R373.js.map} +1 -1
  7. package/dist/{chunk-HZKXPN6B.js → chunk-ND7MRYW7.js} +3 -3
  8. package/dist/{chunk-HZKXPN6B.js.map → chunk-ND7MRYW7.js.map} +1 -1
  9. package/dist/chunk-O4NMS3KB.js +11 -0
  10. package/dist/chunk-O4NMS3KB.js.map +1 -0
  11. package/dist/{chunk-SJZTETUT.js → chunk-VMAGFYHG.js} +3 -3
  12. package/dist/{chunk-SJZTETUT.js.map → chunk-VMAGFYHG.js.map} +1 -1
  13. package/dist/{chunk-OCHEPOOO.js → chunk-Y4ZRSW35.js} +3 -3
  14. package/dist/{chunk-OCHEPOOO.js.map → chunk-Y4ZRSW35.js.map} +1 -1
  15. package/dist/client.cjs +447 -3
  16. package/dist/client.cjs.map +1 -1
  17. package/dist/client.d.cts +2 -0
  18. package/dist/client.d.ts +2 -0
  19. package/dist/client.js +14 -12
  20. package/dist/client.js.map +1 -1
  21. package/dist/components/Accordion/index.js +2 -2
  22. package/dist/components/Calendar/index.js +2 -2
  23. package/dist/components/Combobox/index.cjs +1374 -0
  24. package/dist/components/Combobox/index.cjs.map +1 -0
  25. package/dist/components/Combobox/index.d.cts +17 -0
  26. package/dist/components/Combobox/index.d.ts +17 -0
  27. package/dist/components/Combobox/index.js +9 -0
  28. package/dist/components/Combobox/index.js.map +1 -0
  29. package/dist/components/DatePicker/index.js +3 -3
  30. package/dist/components/Pagination/index.js +2 -2
  31. package/dist/components/Sheet/index.cjs +855 -0
  32. package/dist/components/Sheet/index.cjs.map +1 -0
  33. package/dist/components/Sheet/index.d.cts +104 -0
  34. package/dist/components/Sheet/index.d.ts +104 -0
  35. package/dist/components/Sheet/index.js +8 -0
  36. package/dist/components/Sheet/index.js.map +1 -0
  37. package/dist/components/Switch/index.js +2 -2
  38. package/dist/index.cjs +447 -3
  39. package/dist/index.cjs.map +1 -1
  40. package/dist/index.d.cts +2 -0
  41. package/dist/index.d.ts +2 -0
  42. package/dist/index.js +13 -11
  43. package/package.json +1 -1
package/dist/index.cjs CHANGED
@@ -6590,6 +6590,9 @@ var Checkbox = /* @__PURE__ */ __name(({
6590
6590
  }
6591
6591
  );
6592
6592
  }, "Checkbox");
6593
+ var Combobox = /* @__PURE__ */ __name((props) => {
6594
+ return /* @__PURE__ */ jsxRuntime.jsx(Select, { searchable: true, ...props });
6595
+ }, "Combobox");
6593
6596
  var MenuContext = React.createContext(null);
6594
6597
  var MenuContextProvider = /* @__PURE__ */ __name(({
6595
6598
  open,
@@ -10644,6 +10647,436 @@ var Separator = /* @__PURE__ */ __name(({
10644
10647
  }
10645
10648
  );
10646
10649
  }, "Separator");
10650
+ var SIZE_PERCENT = {
10651
+ sm: "25%",
10652
+ md: "50%",
10653
+ lg: "75%",
10654
+ full: "100%"
10655
+ };
10656
+ var SheetContext = React.createContext(null);
10657
+ var useSheetContext = /* @__PURE__ */ __name((label) => {
10658
+ const ctx = React.useContext(SheetContext);
10659
+ if (!ctx) {
10660
+ throw new Error(`<${label}> must be rendered inside a <Sheet>.`);
10661
+ }
10662
+ return ctx;
10663
+ }, "useSheetContext");
10664
+ var SheetRoot = /* @__PURE__ */ __name(({
10665
+ open,
10666
+ defaultOpen = false,
10667
+ onOpenChange,
10668
+ side = "bottom",
10669
+ size = "md",
10670
+ dismissible = true,
10671
+ children
10672
+ }) => {
10673
+ const [inner, setInner] = React.useState(defaultOpen);
10674
+ const isControlled = open !== void 0;
10675
+ const current = isControlled ? open : inner;
10676
+ const setOpen = React.useCallback(
10677
+ (next) => {
10678
+ if (!isControlled) {
10679
+ setInner(next);
10680
+ }
10681
+ onOpenChange?.(next);
10682
+ },
10683
+ [isControlled, onOpenChange]
10684
+ );
10685
+ const baseId = React.useId();
10686
+ const triggerRef = React.useRef(null);
10687
+ const ctxValue = {
10688
+ open: current,
10689
+ setOpen,
10690
+ titleId: `${baseId}-title`,
10691
+ descriptionId: `${baseId}-description`,
10692
+ triggerRef,
10693
+ side,
10694
+ size,
10695
+ dismissible
10696
+ };
10697
+ return /* @__PURE__ */ jsxRuntime.jsx(SheetContext.Provider, { value: ctxValue, children });
10698
+ }, "SheetRoot");
10699
+ var SheetTrigger = /* @__PURE__ */ __name(({ asChild = true, children, className, testID }) => {
10700
+ const ctx = useSheetContext("SheetTrigger");
10701
+ const onPress = React.useCallback(() => ctx.setOpen(true), [ctx]);
10702
+ if (asChild && React.isValidElement(children)) {
10703
+ const child = children;
10704
+ const fire = /* @__PURE__ */ __name((existing) => (event) => {
10705
+ existing?.(event);
10706
+ ctx.setOpen(true);
10707
+ }, "fire");
10708
+ return /* @__PURE__ */ jsxRuntime.jsx(
10709
+ Slot,
10710
+ {
10711
+ ref: (node) => {
10712
+ ctx.triggerRef.current = node;
10713
+ },
10714
+ onClick: fire(child.props.onClick),
10715
+ onPress: fire(child.props.onPress),
10716
+ ...testID !== void 0 ? { "data-testid": testID } : {},
10717
+ ...className !== void 0 ? { className } : {},
10718
+ children: child
10719
+ }
10720
+ );
10721
+ }
10722
+ return /* @__PURE__ */ jsxRuntime.jsx(
10723
+ reactNative.Pressable,
10724
+ {
10725
+ ref: (node) => {
10726
+ ctx.triggerRef.current = node;
10727
+ },
10728
+ onPress,
10729
+ ...testID !== void 0 ? { testID } : {},
10730
+ ...className !== void 0 ? { className } : {},
10731
+ children: wrapStringChildren5(children)
10732
+ }
10733
+ );
10734
+ }, "SheetTrigger");
10735
+ var SheetHeader = /* @__PURE__ */ __name(({ children, className }) => {
10736
+ const colors = useThemeColors();
10737
+ return /* @__PURE__ */ jsxRuntime.jsx(
10738
+ reactNative.View,
10739
+ {
10740
+ className: cn("flex-col gap-1", className),
10741
+ style: {
10742
+ flexDirection: "column",
10743
+ gap: px(colors.spacing["1"]),
10744
+ paddingHorizontal: px(colors.spacing["6"]),
10745
+ paddingTop: px(colors.spacing["6"]),
10746
+ paddingBottom: px(colors.spacing["2"])
10747
+ },
10748
+ children
10749
+ }
10750
+ );
10751
+ }, "SheetHeader");
10752
+ var SheetTitle = /* @__PURE__ */ __name(({ children, className }) => {
10753
+ const ctx = useSheetContext("SheetTitle");
10754
+ const colors = useThemeColors();
10755
+ return /* @__PURE__ */ jsxRuntime.jsx(
10756
+ reactNative.Text,
10757
+ {
10758
+ nativeID: ctx.titleId,
10759
+ id: ctx.titleId,
10760
+ role: "heading",
10761
+ "aria-level": 2,
10762
+ className: cn("text-lg font-semibold text-semantic-text-default", className),
10763
+ style: {
10764
+ color: colors.semantic.text.default,
10765
+ fontFamily: colors.fontFamily.display,
10766
+ fontSize: px(colors.fontSize.lg),
10767
+ fontWeight: colors.fontWeight.semibold
10768
+ },
10769
+ children
10770
+ }
10771
+ );
10772
+ }, "SheetTitle");
10773
+ var SheetDescription = /* @__PURE__ */ __name(({ children, className }) => {
10774
+ const ctx = useSheetContext("SheetDescription");
10775
+ const colors = useThemeColors();
10776
+ return /* @__PURE__ */ jsxRuntime.jsx(
10777
+ reactNative.Text,
10778
+ {
10779
+ nativeID: ctx.descriptionId,
10780
+ id: ctx.descriptionId,
10781
+ className: cn("text-sm text-semantic-text-muted", className),
10782
+ style: {
10783
+ color: colors.semantic.text.muted,
10784
+ fontFamily: colors.fontFamily.body,
10785
+ fontSize: px(colors.fontSize.sm),
10786
+ lineHeight: px(colors.fontSize.sm) * Number(colors.lineHeight.normal)
10787
+ },
10788
+ children
10789
+ }
10790
+ );
10791
+ }, "SheetDescription");
10792
+ var SheetBody = /* @__PURE__ */ __name(({ children, className }) => {
10793
+ const colors = useThemeColors();
10794
+ return /* @__PURE__ */ jsxRuntime.jsx(
10795
+ reactNative.View,
10796
+ {
10797
+ className: cn("flex-1", className),
10798
+ style: {
10799
+ flex: 1,
10800
+ paddingHorizontal: px(colors.spacing["6"]),
10801
+ paddingVertical: px(colors.spacing["4"])
10802
+ },
10803
+ children
10804
+ }
10805
+ );
10806
+ }, "SheetBody");
10807
+ var SheetFooter = /* @__PURE__ */ __name(({ children, className }) => {
10808
+ const colors = useThemeColors();
10809
+ return /* @__PURE__ */ jsxRuntime.jsx(
10810
+ reactNative.View,
10811
+ {
10812
+ className: cn("flex-row items-center justify-end gap-2", className),
10813
+ style: {
10814
+ flexDirection: "row",
10815
+ alignItems: "center",
10816
+ justifyContent: "flex-end",
10817
+ gap: px(colors.spacing["2"]),
10818
+ paddingHorizontal: px(colors.spacing["6"]),
10819
+ paddingBottom: px(colors.spacing["6"]),
10820
+ paddingTop: px(colors.spacing["2"])
10821
+ },
10822
+ children
10823
+ }
10824
+ );
10825
+ }, "SheetFooter");
10826
+ var SheetClose = /* @__PURE__ */ __name(({
10827
+ asChild = true,
10828
+ children,
10829
+ className,
10830
+ testID,
10831
+ accessibilityLabel = "Close"
10832
+ }) => {
10833
+ const ctx = useSheetContext("SheetClose");
10834
+ const onPress = React.useCallback(() => ctx.setOpen(false), [ctx]);
10835
+ if (asChild && React.isValidElement(children)) {
10836
+ const child = children;
10837
+ const fire = /* @__PURE__ */ __name((existing) => (event) => {
10838
+ existing?.(event);
10839
+ ctx.setOpen(false);
10840
+ }, "fire");
10841
+ return /* @__PURE__ */ jsxRuntime.jsx(
10842
+ Slot,
10843
+ {
10844
+ onClick: fire(child.props.onClick),
10845
+ onPress: fire(child.props.onPress),
10846
+ ...testID !== void 0 ? { "data-testid": testID } : {},
10847
+ ...className !== void 0 ? { className } : {},
10848
+ children: child
10849
+ }
10850
+ );
10851
+ }
10852
+ return /* @__PURE__ */ jsxRuntime.jsx(
10853
+ reactNative.Pressable,
10854
+ {
10855
+ onPress,
10856
+ role: "button",
10857
+ accessibilityRole: "button",
10858
+ accessibilityLabel,
10859
+ "aria-label": accessibilityLabel,
10860
+ ...testID !== void 0 ? { testID } : {},
10861
+ ...className !== void 0 ? { className } : {},
10862
+ children: wrapStringChildren5(children)
10863
+ }
10864
+ );
10865
+ }, "SheetClose");
10866
+ function wrapStringChildren5(children) {
10867
+ if (typeof children === "string" || typeof children === "number") {
10868
+ return /* @__PURE__ */ jsxRuntime.jsx(reactNative.Text, { children });
10869
+ }
10870
+ return children;
10871
+ }
10872
+ __name(wrapStringChildren5, "wrapStringChildren");
10873
+ var SCRIM_COLOR3 = "rgba(0, 0, 0, 0.40)";
10874
+ var FOCUSABLE_SELECTOR3 = 'a[href], button:not([disabled]), textarea:not([disabled]), input:not([disabled]):not([type="hidden"]), select:not([disabled]), [tabindex]:not([tabindex="-1"])';
10875
+ var SheetPanel = /* @__PURE__ */ __name(({ children, className, testID }) => {
10876
+ const ctx = useSheetContext("SheetPanel");
10877
+ const colors = useThemeColors();
10878
+ const panelRef = React.useRef(null);
10879
+ const overlayDomRef = React.useRef(null);
10880
+ const [entered, setEntered] = React.useState(false);
10881
+ React.useEffect(() => {
10882
+ if (reactNative.Platform.OS !== "web") {
10883
+ setEntered(true);
10884
+ return;
10885
+ }
10886
+ if (!ctx.open) {
10887
+ setEntered(false);
10888
+ return;
10889
+ }
10890
+ const id = requestAnimationFrame(() => setEntered(true));
10891
+ return () => cancelAnimationFrame(id);
10892
+ }, [ctx.open]);
10893
+ React.useEffect(() => {
10894
+ if (reactNative.Platform.OS !== "web") {
10895
+ return;
10896
+ }
10897
+ const node = overlayDomRef.current;
10898
+ if (!node) {
10899
+ return;
10900
+ }
10901
+ node.style.transitionProperty = "background-color";
10902
+ node.style.transitionDuration = "200ms";
10903
+ node.style.transitionTimingFunction = "ease-out";
10904
+ node.style.backgroundColor = entered ? SCRIM_COLOR3 : "rgba(0,0,0,0)";
10905
+ }, [entered]);
10906
+ React.useEffect(() => {
10907
+ if (!ctx.open || reactNative.Platform.OS !== "web" || typeof document === "undefined") {
10908
+ return;
10909
+ }
10910
+ const previouslyFocused = document.activeElement;
10911
+ const prevBodyOverflow = document.body.style.overflow;
10912
+ document.body.style.overflow = "hidden";
10913
+ const focusFirst = /* @__PURE__ */ __name(() => {
10914
+ const node = panelRef.current;
10915
+ if (!node) {
10916
+ return;
10917
+ }
10918
+ const focusable = node.querySelectorAll(FOCUSABLE_SELECTOR3);
10919
+ const first = focusable[0];
10920
+ if (first) {
10921
+ first.focus();
10922
+ } else {
10923
+ node.setAttribute("tabindex", "-1");
10924
+ node.focus();
10925
+ }
10926
+ }, "focusFirst");
10927
+ focusFirst();
10928
+ const onKeyDown = /* @__PURE__ */ __name((event) => {
10929
+ if (event.key === "Escape") {
10930
+ event.preventDefault();
10931
+ ctx.setOpen(false);
10932
+ return;
10933
+ }
10934
+ if (event.key !== "Tab") {
10935
+ return;
10936
+ }
10937
+ const node = panelRef.current;
10938
+ if (!node) {
10939
+ return;
10940
+ }
10941
+ const focusable = Array.from(node.querySelectorAll(FOCUSABLE_SELECTOR3)).filter(
10942
+ (el) => el.offsetParent !== null || el === document.activeElement
10943
+ );
10944
+ if (focusable.length === 0) {
10945
+ event.preventDefault();
10946
+ return;
10947
+ }
10948
+ const first = focusable[0];
10949
+ const last = focusable[focusable.length - 1];
10950
+ if (!first || !last) {
10951
+ return;
10952
+ }
10953
+ if (event.shiftKey) {
10954
+ if (document.activeElement === first || !node.contains(document.activeElement)) {
10955
+ event.preventDefault();
10956
+ last.focus();
10957
+ }
10958
+ } else if (document.activeElement === last) {
10959
+ event.preventDefault();
10960
+ first.focus();
10961
+ }
10962
+ }, "onKeyDown");
10963
+ document.addEventListener("keydown", onKeyDown);
10964
+ return () => {
10965
+ document.removeEventListener("keydown", onKeyDown);
10966
+ document.body.style.overflow = prevBodyOverflow;
10967
+ const restoreTo = ctx.triggerRef.current ?? previouslyFocused;
10968
+ restoreTo?.focus?.();
10969
+ };
10970
+ }, [ctx.open, ctx.setOpen, ctx.triggerRef]);
10971
+ const onBackdropPress = React.useCallback(() => {
10972
+ if (ctx.dismissible) {
10973
+ ctx.setOpen(false);
10974
+ }
10975
+ }, [ctx]);
10976
+ const isHorizontal = ctx.side === "left" || ctx.side === "right";
10977
+ const dim = typeof ctx.size === "number" ? ctx.size : SIZE_PERCENT[ctx.size];
10978
+ const panelStyle = {
10979
+ position: "absolute",
10980
+ backgroundColor: colors.semantic.background.elevated,
10981
+ ...isHorizontal ? { top: 0, bottom: 0 } : { left: 0, right: 0 },
10982
+ ...ctx.side === "bottom" && { bottom: 0 },
10983
+ ...ctx.side === "top" && { top: 0 },
10984
+ ...ctx.side === "left" && { left: 0 },
10985
+ ...ctx.side === "right" && { right: 0 }
10986
+ };
10987
+ const translateStyle = reactNative.Platform.OS === "web" ? {
10988
+ transform: entered ? "translateX(0) translateY(0)" : translateOffscreen(ctx.side),
10989
+ transitionProperty: "transform",
10990
+ transitionDuration: "280ms",
10991
+ transitionTimingFunction: "cubic-bezier(0.16, 1, 0.3, 1)"
10992
+ } : {};
10993
+ const overlayStyle = {
10994
+ position: reactNative.Platform.OS === "web" ? "fixed" : "absolute",
10995
+ top: 0,
10996
+ left: 0,
10997
+ right: 0,
10998
+ bottom: 0,
10999
+ ...reactNative.Platform.OS === "web" ? { zIndex: 50 } : { backgroundColor: SCRIM_COLOR3 }
11000
+ };
11001
+ const sizeStyle = isHorizontal ? { width: dim, height: "100%" } : { height: dim, width: "100%" };
11002
+ return /* @__PURE__ */ jsxRuntime.jsx(
11003
+ reactNative.Modal,
11004
+ {
11005
+ visible: ctx.open,
11006
+ transparent: true,
11007
+ animationType: reactNative.Platform.OS === "web" ? "none" : ctx.side === "bottom" || ctx.side === "top" ? "slide" : "fade",
11008
+ onRequestClose: () => ctx.setOpen(false),
11009
+ children: /* @__PURE__ */ jsxRuntime.jsx(
11010
+ reactNative.Pressable,
11011
+ {
11012
+ accessibilityRole: "none",
11013
+ "aria-hidden": true,
11014
+ ref: (node) => {
11015
+ overlayDomRef.current = node;
11016
+ },
11017
+ style: overlayStyle,
11018
+ onPress: onBackdropPress,
11019
+ children: /* @__PURE__ */ jsxRuntime.jsx(
11020
+ reactNative.Pressable,
11021
+ {
11022
+ onPress: (event) => event.stopPropagation?.(),
11023
+ ref: (node) => {
11024
+ panelRef.current = node;
11025
+ },
11026
+ role: "dialog",
11027
+ accessibilityRole: "none",
11028
+ "aria-modal": true,
11029
+ "aria-labelledby": ctx.titleId,
11030
+ "aria-describedby": ctx.descriptionId,
11031
+ "data-side": ctx.side,
11032
+ ...testID !== void 0 ? { testID } : {},
11033
+ className: cn("bg-semantic-background-elevated", className),
11034
+ style: [
11035
+ panelStyle,
11036
+ sizeStyle,
11037
+ translateStyle,
11038
+ {
11039
+ shadowColor: "#000",
11040
+ shadowOffset: { width: 0, height: -2 },
11041
+ shadowOpacity: 0.15,
11042
+ shadowRadius: 20,
11043
+ elevation: 24,
11044
+ ...ctx.side === "bottom" ? { borderTopLeftRadius: 16, borderTopRightRadius: 16 } : {},
11045
+ ...ctx.side === "top" ? { borderBottomLeftRadius: 16, borderBottomRightRadius: 16 } : {}
11046
+ }
11047
+ ],
11048
+ children
11049
+ }
11050
+ )
11051
+ }
11052
+ )
11053
+ }
11054
+ );
11055
+ }, "SheetPanel");
11056
+ var Sheet = Object.assign(SheetRoot, {
11057
+ Trigger: SheetTrigger,
11058
+ Panel: SheetPanel,
11059
+ Header: SheetHeader,
11060
+ Title: SheetTitle,
11061
+ Description: SheetDescription,
11062
+ Body: SheetBody,
11063
+ Footer: SheetFooter,
11064
+ Close: SheetClose
11065
+ });
11066
+ var Drawer = Sheet;
11067
+ function translateOffscreen(side) {
11068
+ switch (side) {
11069
+ case "bottom":
11070
+ return "translateY(100%)";
11071
+ case "top":
11072
+ return "translateY(-100%)";
11073
+ case "left":
11074
+ return "translateX(-100%)";
11075
+ case "right":
11076
+ return "translateX(100%)";
11077
+ }
11078
+ }
11079
+ __name(translateOffscreen, "translateOffscreen");
10647
11080
  var PULSE_DURATION_MS = 900;
10648
11081
  var PULSE_MIN = 0.55;
10649
11082
  var PULSE_MAX = 1;
@@ -12557,17 +12990,17 @@ var TooltipTrigger = /* @__PURE__ */ __name(({ asChild = true, children, classNa
12557
12990
  },
12558
12991
  ...testID !== void 0 ? { testID } : {},
12559
12992
  ...className !== void 0 ? { className } : {},
12560
- children: wrapStringChildren5(children)
12993
+ children: wrapStringChildren6(children)
12561
12994
  }
12562
12995
  );
12563
12996
  }, "TooltipTrigger");
12564
- function wrapStringChildren5(children) {
12997
+ function wrapStringChildren6(children) {
12565
12998
  if (typeof children === "string" || typeof children === "number") {
12566
12999
  return /* @__PURE__ */ jsxRuntime.jsx(reactNative.Text, { children });
12567
13000
  }
12568
13001
  return children;
12569
13002
  }
12570
- __name(wrapStringChildren5, "wrapStringChildren");
13003
+ __name(wrapStringChildren6, "wrapStringChildren");
12571
13004
  var GAP2 = 4;
12572
13005
  var MIN_WIDTH2 = 0;
12573
13006
  function computePosition2(rect, side, align, contentSize) {
@@ -12872,9 +13305,11 @@ exports.Button = Button;
12872
13305
  exports.Calendar = Calendar;
12873
13306
  exports.Card = Card;
12874
13307
  exports.Checkbox = Checkbox;
13308
+ exports.Combobox = Combobox;
12875
13309
  exports.ContextMenu = ContextMenu;
12876
13310
  exports.DatePicker = DatePicker;
12877
13311
  exports.Dialog = Dialog;
13312
+ exports.Drawer = Drawer;
12878
13313
  exports.DropdownMenu = DropdownMenu;
12879
13314
  exports.Field = Field;
12880
13315
  exports.FloatButton = FloatButton;
@@ -12894,6 +13329,15 @@ exports.Radio = Radio;
12894
13329
  exports.SegmentedControl = SegmentedControl;
12895
13330
  exports.Select = Select;
12896
13331
  exports.Separator = Separator;
13332
+ exports.Sheet = Sheet;
13333
+ exports.SheetBody = SheetBody;
13334
+ exports.SheetClose = SheetClose;
13335
+ exports.SheetDescription = SheetDescription;
13336
+ exports.SheetFooter = SheetFooter;
13337
+ exports.SheetHeader = SheetHeader;
13338
+ exports.SheetPanel = SheetPanel;
13339
+ exports.SheetTitle = SheetTitle;
13340
+ exports.SheetTrigger = SheetTrigger;
12897
13341
  exports.Skeleton = Skeleton;
12898
13342
  exports.Slider = Slider;
12899
13343
  exports.SliderGestureProvider = SliderGestureProvider;