UNPKG

next-sanity

Version:
106 lines (105 loc) 5.68 kB
const _excluded = ["children", "config", "unstable__noScript", "scheme"]; var _templateObject; function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; } function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; } function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); } function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); } function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; } function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; } function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); } import { jsx, Fragment } from 'react/jsx-runtime'; import { useState, useEffect, startTransition, memo, useSyncExternalStore } from 'react'; import { Studio } from 'sanity'; import styled from 'styled-components'; import { useTheme, NextStudioLoading } from '../_chunks/NextStudioLoading-4b938208.js'; export { NextStudioNoScript } from '../_chunks/NextStudioLoading-4b938208.js'; import '@sanity/icons'; import '@sanity/ui'; function NextStudioClientOnly(_ref) { let { children, fallback } = _ref; const [mounted, setMounted] = useState(false); useEffect(() => startTransition(() => setMounted(true)), []); return /* @__PURE__ */jsx(Fragment, { children: mounted ? children : fallback }); } const Layout = styled.div(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n font-family: ", ";\n background-color: ", ";\n height: 100vh;\n max-height: 100dvh;\n overscroll-behavior: none;\n -webkit-font-smoothing: antialiased;\n overflow: auto;\n"])), _ref2 => { let { $fontFamily } = _ref2; return $fontFamily; }, _ref3 => { let { $bg } = _ref3; return $bg; }); const NextStudioLayoutComponent = _ref4 => { let { children, config, scheme = "light" } = _ref4; const theme = useTheme(config); return /* @__PURE__ */jsx(Layout, { "data-ui": "NextStudioLayout", $fontFamily: theme.fonts.text.family, $bg: theme.color[scheme].default.base.bg, children }); }; const NextStudioLayout = memo(NextStudioLayoutComponent); const NextStudioComponent = _ref5 => { let { children, config, unstable__noScript, scheme } = _ref5, props = _objectWithoutProperties(_ref5, _excluded); return /* @__PURE__ */jsx(NextStudioClientOnly, { fallback: /* @__PURE__ */jsx(NextStudioLoading, { unstable__noScript, config, scheme }), children: /* @__PURE__ */jsx(NextStudioLayout, { config, scheme, children: children || /* @__PURE__ */jsx(Studio, _objectSpread({ config, scheme, unstable_globalStyles: true }, props)) }) }); }; const NextStudio = memo(NextStudioComponent); function createStore() { if (typeof document === "undefined") { return { subscribe: () => () => {}, getSnapshot: () => "light", getServerSnapshot: () => "light" }; } const matchMedia = window.matchMedia("(prefers-color-scheme: dark)"); return { subscribe: onStoreChange => { matchMedia.addEventListener("change", onStoreChange); return () => matchMedia.removeEventListener("change", onStoreChange); }, getSnapshot: () => matchMedia.matches ? "dark" : "light", getServerSnapshot: () => "light" }; } const store = createStore(); function usePrefersColorScheme() { return useSyncExternalStore(store.subscribe, store.getSnapshot, store.getServerSnapshot); } export { NextStudio, NextStudioClientOnly, NextStudioLayout, usePrefersColorScheme, useTheme }; //# sourceMappingURL=index.js.map