vega-frontend-monorepo/libs/ui-toolkit/.storybook/preview.js

91 lines
2.4 KiB
JavaScript
Raw Normal View History

import { useThemeSwitcher } from '@vegaprotocol/utils';
import classNames from 'classnames';
import { useEffect } from 'react';
feat(#927) design update (#1201) * feat: create new buttons * feat: update anchor and button link styles * feat: add icon support * feat: fix full width with icon * feat: convert invalid button props to use new props * feat: tidy up explorer * feat: more tidy up for token and trading * feat: move styles to css file using @apply * chore: remove css with @apply as its not working in apps * fix: deposit form button * feat: use default tailwind config, start on forms * feat: fixup trade grid styles * feat: form styles * feat: styles for order book and tables * feat: make key management use dropdown * feat: update various components * feat: tidy up wallet section * feat: token tidy up * feat: token governance styles * Feat/927: Dialog styling * feat: token styles * feat: add font familys * feat: change token borders to be softer * feat: console-lite changes to support new theme * Feat/927: Centered key-value-table.tsx spacing * Feat/927: Tweak to Explorer site border colours to be inline with trading * Feat/927: Tweak to Explorer header * Feat/927: Theme switcher icon colours * Feat/927: Fix for Explorer block data styling * feat: fix tests, add status footer and change logos * feat: render both theme icons to avoid hydration error * chore: run migrations for project * fix: tailwindconfig build to work with new next version * feat: use document page for next as per documentation * chore: update build targets to use development mode when serving * fix: console-lite default text colors * chore: fix tooltip text break, change submit button * feat: adjust console-lite styles to work with tabs * feat: add bespoke dialog for console-lite market-selector * Feat/927: Theme switcher now has prop for fixed bg colour * Feat/927: Font size and border radius tweak for toggles * Feat/927: Cleaned up trade-grid.tsx spacing * feat: responsive styles for market header and nav * feat: update designs for market popover * fix: nav active state * chore: allow classname to be passed to button * Feat/927: Fix Token width on desktop (was overflowing) * Feat/927: Fix token header h1 from wrapping * Feat/927: Tweak for claim-flow.tsx * fix: connect button test * Feat/927: Proposals list styling polish * Feat/927: key-value-table.tsx spacing tweak * feat: add copy button to kp dropdown * Feat/927: Removing old theme params and uses * Feat/927: Removing old theme params and uses, documenting the now used otb sizes * feat: use key val table in asset dialog * feat: align tooltip styles * fix: orderbook grid alignment * chore: linting * fix: dialog sizing in medium mode, node switcher styles * chore: remove unused color classes * feat: update radio and checkbox designs * feat: updates to storybook * feat: update design system stories * chore: stories update * chore: rename resize panels and tidy * feat: fix checkbox tick * fix: add poyfills for jest in trading test setup * chore: fix checkbox tests * chore: fix tests * chore: fix tests again * chore: revert token wallet name test * fix: tooltip tests on console-lite * fix: wallet dropdown test Co-authored-by: sam-keen <samuel.kleinmann@gmail.com>
2022-08-31 04:35:46 +00:00
import '../src/styles.css';
2022-02-21 15:41:32 +00:00
export const parameters = {
actions: { argTypesRegex: '^on[A-Z].*' },
Feature/303 orderbook improvements (#312) * [#151] market-depth code cleanup * [#303] Make ask and bid relative volume bars relative to maximum bid or ask volume * [#151] align cmulative vol bars to left * [#151] replace orderbook zoom in zoom out buttons with dropdown * [#151] fill gaps in orderbook data * Order book mocks added * [#151] mark mid price in orderbook * [303] Show number in orderbook cumulative volume column * [#808] show indicative uncrossing volume instead of volume if market is in auction mode * Method for asserting order book style * [#303] Add test id attributes to orderbook cells * Cleanup steps after merge * Order book test passing * Change method name * Revert "[#151] fill gaps in orderbook data" This reverts commit 90ea4e4ab381748d990095a4c332f1c98205d8f9. * [#303] Orderbook rows render optimization * test: update feature with @todo tests Same tests can be found in Notion * [#303] Orderbook scroll to mid price * [#303] orderbook scroll to row pixel perfect alignment * [#303] Bring back best offer horizontal lines * [#303] Preserve center price level on row number change, adjust indicativePrice to resoluton * feat(orderbook): add storybook Refs: #303 * feat(orderbook): fix no rows handling Refs: #303 * feat(orderbook): add orderbook stories for auction and continous market Refs: #303 * feat(orderbook): add stories for empty orderbook Refs: #303 * feat(orderbook): fix footer position when there is no data Refs: #303 * feat(orderbook): seperate number of rows for buy and sell in storybook Refs: #303 * feat(orderbook): keep mid price in middle until user will scroll Refs: #303 * feat(orderbook): style scrollbar * feat(orderbook): style scrollbar * feat(orderbook): adjust gaps * feat(orderbook): adjust gaps * test: addition for autofilled order and mid price lines * fix: lint * feat(orderbook): make it posiible to write RTL tests * feat(orderbook): fix price focus, add unit tests * feat(orderbook): fix price scroll to mid proce, add unit tests * feat(orderbook): improvements - fix scrollbar colors in firefox - bring back resolution dropdown chevron - hide go to mid button when locked on mid price - right align ask vol bar - change grid gap to 5px - add vertical lines between columns - display "No data" if theis no orderbook data - align header labels to right * feat(orderbook): fix formatting * feat(orderbook): add 5px gap * feat(orderbook): improvements after code review * feat(orderbook): display full height vertical lines * fix: change in mid position * feat(orderbook): fix number cannot be converted to BigInt because it is not integer * feat(orderbook): fix TS2307 in trading-e2e caused by .module.scss import Co-authored-by: Joe <joe@vega.xyz>
2022-06-10 13:52:39 +00:00
backgrounds: { disable: true },
layout: 'fullscreen',
a11y: {
config: {
rules: [
{
// Disabled only for storybook because we display both the dark and light variants of the components on the same page without differentiating the ids, so it will always error.
id: 'duplicate-id-aria',
selector: '[data-testid="form-group"] > label',
},
{
// Disabled because we can't control the radix radio group component and it claims to be accessible to begin with, so hopefully no issues.
id: 'button-name',
selector: '[role=radiogroup] > button',
},
],
},
},
2022-02-21 15:41:32 +00:00
};
export const globalTypes = {
theme: {
name: 'Theme',
description: 'Global theme for components',
defaultValue: 'dark',
toolbar: {
icon: 'circlehollow',
items: [
{ value: 'light', title: 'Light' },
{ value: 'dark', title: 'Dark' },
{ value: 'sideBySide', title: 'Side by side' },
],
showName: true,
},
},
};
const StoryWrapper = ({ children, fill }) => {
const classes = classNames(
'p-4',
'bg-white dark:bg-black',
'text-neutral-800 dark:text-neutral-200',
{
'w-screen h-screen': fill,
}
);
return <div className={classes}>{children}</div>;
};
const ThemeWrapper = (Story, context) => {
const theme = context.parameters.theme || context.globals.theme;
const { setTheme } = useThemeSwitcher();
useEffect(() => {
// in side by side mode a 'dark' class on the html tag will interfere
// making the light 'side' dark, so remove it in that case
if (theme === 'sideBySide') {
document.documentElement.classList.remove('dark');
} else {
setTheme(theme);
}
}, [setTheme, theme]);
return theme === 'sideBySide' ? (
<>
<div className="bg-white text-black">
<StoryWrapper>
2022-03-04 16:21:24 +00:00
<Story />
Feat/63 Deal ticket (#82) * scaffold dealticket package, remove trading views from react-helpers * add deal ticket component, add intent utils, expand dialog and form group styles * add splash component, show market not found message if market doesnt exist * tidy up error handling * add handleError method for vega tx hook * add better testname for provider test, flesh out tests a bit more for deal ticket * Add unit tests for useVegaTransaction and useOrderSubmit hooks * add wrapper component for order dialog styles * add vega styled loader to ui toolkit and use in order dialog * add title prop to order dialog * split limit and market tickets into own files * add button radio component * revert dialog styles * move splash component to ui-toolkit, add story * convert intent to enum * Make button always type=button unless type prop is passed * inline filter logic for tif selector * add date-fns, add datetime to helpers * add order types to wallet package, make price undefined if order type is market * use enums in deal ticket logic * tidy up order state by moving submit and transaction hooks out of deal ticket * add comment for dialog styles * remove decimal from price input * add types package, delete old generated types from trading project * rename types package to graphql * update generate command to point to correct locations * fix use order submit test * use intent shadow helper * remove date-fns and format manually, update submit button error to use input-error * remove stray console.log
2022-03-17 19:35:46 +00:00
</StoryWrapper>
</div>
<div className="dark bg-black text-white">
Feat/63 Deal ticket (#82) * scaffold dealticket package, remove trading views from react-helpers * add deal ticket component, add intent utils, expand dialog and form group styles * add splash component, show market not found message if market doesnt exist * tidy up error handling * add handleError method for vega tx hook * add better testname for provider test, flesh out tests a bit more for deal ticket * Add unit tests for useVegaTransaction and useOrderSubmit hooks * add wrapper component for order dialog styles * add vega styled loader to ui toolkit and use in order dialog * add title prop to order dialog * split limit and market tickets into own files * add button radio component * revert dialog styles * move splash component to ui-toolkit, add story * convert intent to enum * Make button always type=button unless type prop is passed * inline filter logic for tif selector * add date-fns, add datetime to helpers * add order types to wallet package, make price undefined if order type is market * use enums in deal ticket logic * tidy up order state by moving submit and transaction hooks out of deal ticket * add comment for dialog styles * remove decimal from price input * add types package, delete old generated types from trading project * rename types package to graphql * update generate command to point to correct locations * fix use order submit test * use intent shadow helper * remove date-fns and format manually, update submit button error to use input-error * remove stray console.log
2022-03-17 19:35:46 +00:00
<StoryWrapper>
2022-03-04 16:21:24 +00:00
<Story />
Feat/63 Deal ticket (#82) * scaffold dealticket package, remove trading views from react-helpers * add deal ticket component, add intent utils, expand dialog and form group styles * add splash component, show market not found message if market doesnt exist * tidy up error handling * add handleError method for vega tx hook * add better testname for provider test, flesh out tests a bit more for deal ticket * Add unit tests for useVegaTransaction and useOrderSubmit hooks * add wrapper component for order dialog styles * add vega styled loader to ui toolkit and use in order dialog * add title prop to order dialog * split limit and market tickets into own files * add button radio component * revert dialog styles * move splash component to ui-toolkit, add story * convert intent to enum * Make button always type=button unless type prop is passed * inline filter logic for tif selector * add date-fns, add datetime to helpers * add order types to wallet package, make price undefined if order type is market * use enums in deal ticket logic * tidy up order state by moving submit and transaction hooks out of deal ticket * add comment for dialog styles * remove decimal from price input * add types package, delete old generated types from trading project * rename types package to graphql * update generate command to point to correct locations * fix use order submit test * use intent shadow helper * remove date-fns and format manually, update submit button error to use input-error * remove stray console.log
2022-03-17 19:35:46 +00:00
</StoryWrapper>
2022-03-03 14:48:40 +00:00
</div>
</>
) : (
<StoryWrapper fill={true}>
<Story />
</StoryWrapper>
);
};
export const decorators = [ThemeWrapper];