next-sanity
Version:
Sanity.io toolkit for Next.js
106 lines (105 loc) • 5.68 kB
JavaScript
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