import '../src/radix.css'
import '../src/radix-hsl.css'
import './theme.css'
import '../src/index.css'
import { useEffect } from 'react'
// require in this file to keep app state when HMR
const { setupGlobals } = require('../src/ui')
setupGlobals()
// REPL
if (process.env.NODE_ENV !== 'production') {
require('./cljs/cljs_env')
require('./cljs/shadow.cljs.devtools.client.browser')
}
function ThemeObserver(
{ children }
) {
const theme = window.localStorage.getItem('__ls-theme-color__')
useEffect(() => {
const html = document.documentElement
html.dataset.color = theme
return () => (delete html.dataset.theme)
}, [theme])
return (
{children}
)
}
/** @type { import('@storybook/react').Preview } */
const preview = {
parameters: {
actions: { argTypesRegex: '^on[A-Z].*' },
controls: {
matchers: {
color: /(background|color)$/i,
date: /Date$/i,
},
},
},
decorators: [
(Story) => {
return (
)
}
],
globalTypes: {
theme: {
// description: 'Global theme for components',
// defaultValue: 'light',
// toolbar: {
// // The label to show for this toolbar item
// title: 'Theme',
// icon: 'circlehollow',
// // Array of plain string values or MenuItem shape (see below)
// items: ['light', 'dark'],
// // Change title based on selected value
// dynamicTitle: true,
// },
},
},
}
export default preview