diff --git a/.storybook/preview.js b/.storybook/preview.js index 0ec5f265..5240ac6b 100644 --- a/.storybook/preview.js +++ b/.storybook/preview.js @@ -23,6 +23,8 @@ const preview = { ["Theme", "Fonts"], "Examples", "Components", + "Layercake", + ["Intro"], "Layout", "Logos", "Maps", diff --git a/CHANGELOG.md b/CHANGELOG.md index 5cf4a346..cfdbf0a1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,7 @@ - Patch: Update method of declaring Storybook component descriptions and add import instructions to components - Patch: Remove description field from top level `meta` object in component `.stories.svelte` files (do not render) - Feature: CLI command to generate new component boilerplate (`npm run create-component`) +- Feature: Add Layercake AxisX and AxisY components and docs ## v0.10.2 diff --git a/src/lib/Layercake/AxisX.docs.md b/src/lib/Layercake/AxisX.docs.md new file mode 100644 index 00000000..f1b7883a --- /dev/null +++ b/src/lib/Layercake/AxisX.docs.md @@ -0,0 +1,42 @@ +## Usage + +```js +import { AxisX } from "@urbaninstitute/dataviz-components"; +``` + +## Want to update axis style straight from the Layercake repo? + +Use this css instead: + +```js + +``` + +## Story diff --git a/src/lib/Layercake/AxisX.stories.svelte b/src/lib/Layercake/AxisX.stories.svelte new file mode 100644 index 00000000..27a8d05d --- /dev/null +++ b/src/lib/Layercake/AxisX.stories.svelte @@ -0,0 +1,60 @@ + + + + + + + diff --git a/src/lib/Layercake/AxisX.svelte b/src/lib/Layercake/AxisX.svelte new file mode 100644 index 00000000..5f013209 --- /dev/null +++ b/src/lib/Layercake/AxisX.svelte @@ -0,0 +1,146 @@ + + + + + {#each tickVals as tick, i (tick)} + + {#if gridlines !== false} + + {/if} + {#if tickMarks === true} + + {/if} + {formatTick(tick)} + + {/each} + {#if baseline === true} + + {/if} + {#if axisLabel} + {axisLabel} + {/if} + + + diff --git a/src/lib/Layercake/AxisY.docs.md b/src/lib/Layercake/AxisY.docs.md new file mode 100644 index 00000000..023ccec3 --- /dev/null +++ b/src/lib/Layercake/AxisY.docs.md @@ -0,0 +1,27 @@ +## Usage + +```js +import { AxisY } from "@urbaninstitute/dataviz-components"; +``` + +## Want to update axis style straight from the Layercake repo? + +Use this css instead: + +```js + +``` + +## Story \ No newline at end of file diff --git a/src/lib/Layercake/AxisY.stories.svelte b/src/lib/Layercake/AxisY.stories.svelte new file mode 100644 index 00000000..f0095d7e --- /dev/null +++ b/src/lib/Layercake/AxisY.stories.svelte @@ -0,0 +1,69 @@ + + + + + + + diff --git a/src/lib/Layercake/AxisY.svelte b/src/lib/Layercake/AxisY.svelte new file mode 100644 index 00000000..88b13b73 --- /dev/null +++ b/src/lib/Layercake/AxisY.svelte @@ -0,0 +1,130 @@ + + + + + {#each tickVals as tick (tick)} + + {#if gridlines !== false} + + {/if} + {#if tickMarks === true} + + {/if} + {formatTick(tick)} + + {/each} + {#if axisLabel} + {axisLabel} + {/if} + + + diff --git a/src/lib/Layercake/Intro.docs.mdx b/src/lib/Layercake/Intro.docs.mdx new file mode 100644 index 00000000..9dc131db --- /dev/null +++ b/src/lib/Layercake/Intro.docs.mdx @@ -0,0 +1,17 @@ +import { Meta } from "@storybook/blocks"; + + + +# Urban-styled Layercake commponents + +Layercake components can be useful for out-of-the-box Svelte charts. Often, however, they are not built according to Urban style. This AxisY component takes those available in Layercake and updates them to use Urban font family, colors, and sizes. + +Furthermore, while Layercake components are often externally updated, this axis here is set in time at a stage where they will not break our builds. Any updates to merge in newer Layercake code will happen not project to project but here, at source, when decided necessary. Therefore, this axis will always work with expected parameters. + +## Usage + +Layercake axes must be built inside a Layercake component and context, and, further, within an Svg component. Both can be imported from the layercake package. The Layercake object must be passed flat array (not object) data and domain before anything can be initialized and rendered, and these are used across all components used to craft a chart. + +## More on Layercake + +Learn more with Layercake documentation and examples. \ No newline at end of file diff --git a/src/lib/Layercake/data.json b/src/lib/Layercake/data.json new file mode 100644 index 00000000..c3c512bf --- /dev/null +++ b/src/lib/Layercake/data.json @@ -0,0 +1,8 @@ +[ + ["year", "value"], + [1979, 2], + [1980, 3], + [1981, 5], + [1982, 8], + [1983, 18] +] diff --git a/src/lib/index.js b/src/lib/index.js index e03e9159..143b38fb 100644 --- a/src/lib/index.js +++ b/src/lib/index.js @@ -27,3 +27,5 @@ export { default as Headline } from "./Headline/Headline.svelte"; export { default as PymChild } from "./Pym/PymChild.svelte"; export { default as LoadingWrapper } from "./LoadingWrapper/LoadingWrapper.svelte"; export { default as Tooltip } from "./Tooltip/Tooltip.svelte"; +export { default as AxisY } from "./Layercake/AxisY.svelte"; +export { default as AxisX } from "./Layercake/AxisX.svelte";