├── .gitattributes ├── .prettierignore ├── __mocks__ └── nanoid.js ├── docs ├── assets │ └── componentry.png ├── TODO.md ├── Tailwind.md ├── Theming.md ├── CONTRIBUTING.md ├── publishing.stories.mdx └── adr │ ├── 03-utilities.md │ ├── template.md │ └── 02-classes.md ├── .github ├── CODEOWNERS ├── dependabot.yml └── workflows │ ├── codeql-analysis.yml │ └── ci-cd.yml ├── .renovaterc ├── .storybook ├── preview-head.html ├── preview.js ├── manager.js ├── preview-body.html ├── main.js └── storybook-styles.css ├── src ├── plugin-postcss │ └── index.ts ├── plugin-babel │ ├── index.ts │ └── __fixtures__ │ │ ├── data-precompiled │ │ ├── code.js │ │ └── output.js │ │ ├── ignores-components │ │ ├── code.js │ │ └── output.js │ │ ├── refs │ │ ├── code.js │ │ └── output.js │ │ ├── as-prop │ │ ├── code.js │ │ └── output.js │ │ ├── exclude_option │ │ ├── code.js │ │ └── output.js │ │ ├── transforms-components │ │ ├── code.js │ │ └── output.js │ │ ├── passthrough-props │ │ ├── code.js │ │ └── output.js │ │ ├── checks-import-paths │ │ ├── code.js │ │ └── output.js │ │ ├── styles-props │ │ ├── code.js │ │ └── output.js │ │ ├── component-props │ │ ├── code.js │ │ └── output.js │ │ ├── classname-props │ │ ├── code.js │ │ └── output.js │ │ └── prop-types │ │ ├── code.js │ │ └── output.js ├── components │ ├── Drawer │ │ ├── _drawer.scss │ │ ├── __snapshots__ │ │ │ └── Drawer.spec.jsx.snap │ │ ├── Drawer.spec.jsx │ │ ├── Drawer.stories.tsx │ │ └── Drawer.ts │ ├── Table │ │ ├── Table.spec.jsx │ │ ├── Table.stories.tsx │ │ ├── Table.styles.ts │ │ └── Table.ts │ ├── FormGroup │ │ ├── __snapshots__ │ │ │ └── FormGroup.spec.jsx.snap │ │ ├── FormGroup.styles.ts │ │ ├── FormGroup.ts │ │ ├── FormGroup.spec.jsx │ │ └── FormGroup.stories.tsx │ ├── Text │ │ ├── __snapshots__ │ │ │ └── Text.spec.jsx.snap │ │ ├── Text.spec.jsx │ │ ├── Text.styles.ts │ │ ├── Text.ts │ │ └── Text.stories.tsx │ ├── Block │ │ ├── __snapshots__ │ │ │ └── Block.spec.jsx.snap │ │ ├── Block.spec.jsx │ │ ├── Block.stories.tsx │ │ └── Block.ts │ ├── Flex │ │ ├── __snapshots__ │ │ │ └── Flex.spec.jsx.snap │ │ ├── Flex.stories.tsx │ │ ├── Flex.spec.jsx │ │ └── Flex.ts │ ├── Grid │ │ ├── __snapshots__ │ │ │ └── Grid.spec.jsx.snap │ │ ├── Grid.stories.tsx │ │ ├── Grid.spec.jsx │ │ └── Grid.ts │ ├── Link │ │ ├── __snapshots__ │ │ │ └── Link.spec.jsx.snap │ │ ├── Link.spec.jsx │ │ ├── Link.stories.tsx │ │ ├── Link.styles.ts │ │ └── Link.ts │ ├── Paper │ │ ├── __snapshots__ │ │ │ └── Paper.spec.jsx.snap │ │ ├── Paper.stories.tsx │ │ ├── Paper.spec.jsx │ │ ├── Paper.styles.ts │ │ └── Paper.ts │ ├── Badge │ │ ├── __snapshots__ │ │ │ └── Badge.spec.jsx.snap │ │ ├── Badge.stories.tsx │ │ ├── Badge.spec.jsx │ │ ├── Badge.styles.ts │ │ └── Badge.ts │ ├── Button │ │ ├── __snapshots__ │ │ │ └── Button.spec.jsx.snap │ │ └── Button.stories.tsx │ ├── Icon │ │ ├── Icon.stories.tsx │ │ ├── __snapshots__ │ │ │ └── Icon.spec.jsx.snap │ │ ├── Icon.spec.jsx │ │ ├── Icon.styles.ts │ │ └── Icon.tsx │ ├── Close │ │ ├── Close.stories.tsx │ │ ├── __snapshots__ │ │ │ └── Close.spec.jsx.snap │ │ ├── Close.spec.jsx │ │ ├── Close.tsx │ │ └── Close.styles.ts │ ├── IconButton │ │ ├── __snapshots__ │ │ │ └── IconButton.spec.jsx.snap │ │ ├── IconButton.tsx │ │ └── IconButton.spec.jsx │ ├── Active │ │ ├── __snapshots__ │ │ │ └── Active.spec.jsx.snap │ │ ├── Active.stories.tsx │ │ ├── Active.spec.jsx │ │ ├── Active.ts │ │ └── active-types.ts │ ├── Card │ │ ├── __snapshots__ │ │ │ └── Card.spec.jsx.snap │ │ ├── Card.spec.jsx │ │ ├── Card.stories.tsx │ │ └── Card.styles.ts │ ├── Input │ │ ├── __snapshots__ │ │ │ └── Input.spec.jsx.snap │ │ ├── Input.stories.tsx │ │ └── Input.spec.jsx │ ├── Tooltip │ │ ├── Tooltip.stories.tsx │ │ ├── __snapshots__ │ │ │ └── Tooltip.spec.jsx.snap │ │ ├── Tooltip.spec.jsx │ │ ├── Tooltip.tsx │ │ └── Tooltip.styles.ts │ ├── Alert │ │ ├── __snapshots__ │ │ │ └── Alert.spec.jsx.snap │ │ ├── Alert.stories.tsx │ │ ├── Alert.spec.jsx │ │ └── Alert.styles.ts │ ├── Media │ │ ├── Media.stories.tsx │ │ └── Media.tsx │ ├── Dropdown │ │ ├── __snapshots__ │ │ │ └── Dropdown.spec.jsx.snap │ │ ├── Dropdown.stories.tsx │ │ ├── Dropdown.spec.jsx │ │ └── Dropdown.ts │ ├── Popover │ │ ├── Popover.stories.tsx │ │ ├── __snapshots__ │ │ │ └── Popover.spec.jsx.snap │ │ └── Popover.spec.jsx │ ├── Provider │ │ ├── Provider.stories.tsx │ │ ├── Provider.spec.jsx │ │ └── Provider.tsx │ ├── Tabs │ │ ├── Tabs.stories.tsx │ │ ├── Tabs.spec.jsx │ │ └── __snapshots__ │ │ │ └── Tabs.spec.jsx.snap │ └── Modal │ │ ├── Modal.spec.jsx │ │ ├── Modal.stories.tsx │ │ └── __snapshots__ │ │ └── Modal.spec.jsx.snap ├── test │ └── vitest.setup.mjs ├── utils │ ├── types.ts │ ├── deep-merge.ts │ ├── create-static-component.tsx │ ├── tailwind-plugins.ts │ ├── create-active-content-component.tsx │ ├── create-element.tsx │ ├── tailwind-safelist.ts │ ├── dom.ts │ └── create-active-action-component.tsx ├── api-types.ts ├── theme │ ├── create-theme.spec.js │ └── theme.ts ├── styles │ └── states.styles.ts ├── index.ts └── config │ └── load-config.ts ├── .prettierrc ├── .codeclimate.yml ├── @types └── postcss-js.d.ts ├── postcss.config.js ├── .gitignore ├── tailwind.config.js ├── vitest.config.mjs ├── .vscode └── launch.json ├── .npmignore ├── LICENSE ├── README.md ├── .babelrc.js ├── tsconfig.json └── eslint.config.mjs /.gitattributes: -------------------------------------------------------------------------------- 1 | *.json linguist-language=JSON-with-Comments -------------------------------------------------------------------------------- /.prettierignore: -------------------------------------------------------------------------------- 1 | # Skip formatting files generated or managed by other tools 2 | 3 | CHANGELOG.md 4 | -------------------------------------------------------------------------------- /__mocks__/nanoid.js: -------------------------------------------------------------------------------- 1 | // Use stable id in testing for snapshots 2 | export const nanoid = () => 'test-guid' 3 | -------------------------------------------------------------------------------- /docs/assets/componentry.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crystal-ball/componentry/HEAD/docs/assets/componentry.png -------------------------------------------------------------------------------- /.github/CODEOWNERS: -------------------------------------------------------------------------------- 1 | # Code Owners 2 | 3 | # Package code owners will be requested for review for pull requests 4 | * @dhedgecock -------------------------------------------------------------------------------- /.renovaterc: -------------------------------------------------------------------------------- 1 | { 2 | "extends": [ 3 | "github>crystal-ball/renovate-base:library" 4 | ], 5 | "packageRules": [] 6 | } 7 | -------------------------------------------------------------------------------- /.storybook/preview-head.html: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/plugin-postcss/index.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * Componentry PostCSS plugin entry 3 | */ 4 | export { plugin as default } from './plugin' 5 | -------------------------------------------------------------------------------- /src/plugin-babel/index.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * Componentry components pre-compile Babel plugin entry 3 | */ 4 | export { default } from './plugin' 5 | -------------------------------------------------------------------------------- /.prettierrc: -------------------------------------------------------------------------------- 1 | { 2 | "jsxSingleQuote": true, 3 | "printWidth": 90, 4 | "proseWrap": "always", 5 | "semi": false, 6 | "singleQuote": true 7 | } 8 | -------------------------------------------------------------------------------- /src/components/Drawer/_drawer.scss: -------------------------------------------------------------------------------- 1 | /* componentry/src/Drawer/drawer */ 2 | 3 | .drawer-action-primary { 4 | @include active-action-element; 5 | display: block; 6 | } 7 | -------------------------------------------------------------------------------- /src/test/vitest.setup.mjs: -------------------------------------------------------------------------------- 1 | import { vi } from 'vitest' 2 | 3 | // Setup custom jest matchers to test the state of the DOM 4 | // https://github.com/gnapse/jest-dom 5 | import '@testing-library/jest-dom' 6 | 7 | vi.mock('nanoid') 8 | -------------------------------------------------------------------------------- /src/components/Table/Table.spec.jsx: -------------------------------------------------------------------------------- 1 | import { describe } from 'vitest' 2 | import { elementTests } from '../../test/element-tests' 3 | import { Table } from './Table' 4 | 5 | describe('
30 | {JSON.stringify(media, null, 2)}
31 |
32 |