├── .nvmrc ├── logo.png ├── packages ├── css │ ├── src │ │ ├── components │ │ │ ├── Forms │ │ │ │ ├── index.ts │ │ │ │ └── Button │ │ │ │ │ ├── index.story.svelte │ │ │ │ │ ├── index.story.vue │ │ │ │ │ └── index.ts │ │ │ ├── Feedback │ │ │ │ ├── index.ts │ │ │ │ └── Spinner │ │ │ │ │ └── index.ts │ │ │ ├── Utility │ │ │ │ ├── index.ts │ │ │ │ ├── Overlay │ │ │ │ │ └── index.ts │ │ │ │ └── Inputable │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── index.story.svelte │ │ │ │ │ └── index.story.vue │ │ │ ├── index.ts │ │ │ ├── Typography │ │ │ │ ├── index.ts │ │ │ │ ├── Link │ │ │ │ │ └── index.ts │ │ │ │ ├── Text │ │ │ │ │ └── index.ts │ │ │ │ ├── Label │ │ │ │ │ └── index.ts │ │ │ │ ├── Heading │ │ │ │ │ └── index.ts │ │ │ │ └── Content │ │ │ │ │ └── index.ts │ │ │ └── Layout │ │ │ │ ├── index.ts │ │ │ │ ├── Flex │ │ │ │ └── index.ts │ │ │ │ ├── Grid │ │ │ │ └── index.ts │ │ │ │ ├── Box │ │ │ │ └── index.ts │ │ │ │ ├── Stack │ │ │ │ └── index.ts │ │ │ │ ├── Skeleton │ │ │ │ └── index.ts │ │ │ │ └── Card │ │ │ │ └── index.ts │ │ ├── utils │ │ │ ├── index.ts │ │ │ └── animation.ts │ │ ├── index.ts │ │ ├── types.ts │ │ └── theme │ │ │ ├── utils │ │ │ └── index.ts │ │ │ ├── colors │ │ │ └── index.ts │ │ │ └── index.ts │ ├── .svelte-kit │ │ ├── generated │ │ │ └── client │ │ │ │ ├── matchers.js │ │ │ │ ├── nodes │ │ │ │ ├── 0.js │ │ │ │ └── 1.js │ │ │ │ └── app.js │ │ ├── tsconfig.json │ │ └── ambient.d.ts │ ├── env.d.ts │ ├── svelte.config.js │ ├── .npmignore │ ├── histoire.config.ts │ ├── vite.config.js │ ├── tsup.config.ts │ ├── README.md │ └── package.json └── react │ ├── .ladle │ └── config.mjs │ ├── src │ ├── utils │ │ ├── index.ts │ │ ├── useDisclosure │ │ │ ├── index.tsx │ │ │ └── index.test.tsx │ │ ├── date │ │ │ ├── index.ts │ │ │ └── index.test.ts │ │ └── useCalendar │ │ │ └── index.tsx │ ├── components │ │ ├── Utility │ │ │ ├── index.ts │ │ │ ├── Overlay │ │ │ │ └── index.ts │ │ │ └── ShowableContent │ │ │ │ └── index.ts │ │ ├── index.ts │ │ ├── Layout │ │ │ ├── Flex │ │ │ │ ├── index.ts │ │ │ │ └── index.stories.tsx │ │ │ ├── Grid │ │ │ │ ├── index.ts │ │ │ │ └── index.stories.tsx │ │ │ ├── AspectRatio │ │ │ │ ├── index.ts │ │ │ │ └── index.stories.tsx │ │ │ ├── Card │ │ │ │ ├── index.ts │ │ │ │ └── index.stories.tsx │ │ │ ├── Skeleton │ │ │ │ ├── index.tsx │ │ │ │ └── index.stories.tsx │ │ │ ├── Box │ │ │ │ ├── index.ts │ │ │ │ └── index.stories.tsx │ │ │ ├── Container │ │ │ │ ├── index.stories.tsx │ │ │ │ └── index.tsx │ │ │ ├── Stack │ │ │ │ ├── index.tsx │ │ │ │ └── index.stories.tsx │ │ │ ├── index.ts │ │ │ ├── SimpleGrid │ │ │ │ ├── index.stories.tsx │ │ │ │ └── index.tsx │ │ │ └── Image │ │ │ │ ├── index.stories.tsx │ │ │ │ └── index.tsx │ │ ├── Typography │ │ │ ├── Link │ │ │ │ ├── index.ts │ │ │ │ └── index.stories.tsx │ │ │ ├── Text │ │ │ │ ├── index.ts │ │ │ │ └── index.stories.tsx │ │ │ ├── Label │ │ │ │ ├── index.ts │ │ │ │ └── index.stories.tsx │ │ │ ├── Heading │ │ │ │ ├── index.ts │ │ │ │ └── index.stories.tsx │ │ │ ├── index.ts │ │ │ └── Content │ │ │ │ ├── index.ts │ │ │ │ └── index.stories.tsx │ │ ├── Forms │ │ │ ├── Button │ │ │ │ ├── index.ts │ │ │ │ └── index.stories.tsx │ │ │ ├── Input │ │ │ │ ├── index.ts │ │ │ │ └── index.stories.tsx │ │ │ ├── Textarea │ │ │ │ ├── index.ts │ │ │ │ └── index.stories.tsx │ │ │ ├── Select │ │ │ │ ├── index.ts │ │ │ │ └── index.stories.tsx │ │ │ ├── index.ts │ │ │ ├── Calendar │ │ │ │ ├── index.stories.tsx │ │ │ │ └── index.tsx │ │ │ ├── Switch │ │ │ │ ├── index.stories.tsx │ │ │ │ └── index.tsx │ │ │ ├── Checkbox │ │ │ │ ├── index.stories.tsx │ │ │ │ └── index.tsx │ │ │ └── RadioGroup │ │ │ │ ├── index.stories.tsx │ │ │ │ └── index.tsx │ │ └── Feedback │ │ │ ├── index.ts │ │ │ ├── Spinner │ │ │ ├── index.tsx │ │ │ └── index.stories.tsx │ │ │ ├── Tooltip │ │ │ ├── index.stories.tsx │ │ │ └── index.tsx │ │ │ ├── Popover │ │ │ ├── index.stories.tsx │ │ │ └── index.tsx │ │ │ ├── Modal │ │ │ ├── index.ts │ │ │ └── index.stories.tsx │ │ │ └── Drawer │ │ │ ├── index.ts │ │ │ └── index.stories.tsx │ ├── assets │ │ └── icons │ │ │ └── chevron-down.svg │ ├── types.ts │ ├── theme.stories.tsx │ ├── index.ts │ └── index.stories.tsx │ ├── .babelrc │ ├── e2e │ ├── snapshot.spec.ts-snapshots │ │ ├── exoui--theme-chromium-linux.png │ │ ├── exoui--readme-chromium-linux.png │ │ ├── layout--box--default-chromium-linux.png │ │ ├── forms--button--default-chromium-linux.png │ │ ├── forms--button--loading-chromium-linux.png │ │ ├── forms--input--default-chromium-darwin.png │ │ ├── forms--input--default-chromium-linux.png │ │ ├── forms--select--default-chromium-linux.png │ │ ├── forms--switch--default-chromium-linux.png │ │ ├── layout--box--default-chromium-darwin.png │ │ ├── layout--card--default-chromium-darwin.png │ │ ├── layout--card--default-chromium-linux.png │ │ ├── layout--flex--default-chromium-darwin.png │ │ ├── layout--flex--default-chromium-linux.png │ │ ├── layout--grid--default-chromium-darwin.png │ │ ├── layout--grid--default-chromium-linux.png │ │ ├── layout--image--avatar-chromium-darwin.png │ │ ├── layout--image--avatar-chromium-linux.png │ │ ├── layout--image--default-chromium-linux.png │ │ ├── layout--stack--default-chromium-linux.png │ │ ├── feedback--drawer--default-chromium-linux.png │ │ ├── feedback--modal--default-chromium-darwin.png │ │ ├── feedback--modal--default-chromium-linux.png │ │ ├── forms--button--default-chromium-darwin.png │ │ ├── forms--button--loading-chromium-darwin.png │ │ ├── forms--calendar--default-chromium-darwin.png │ │ ├── forms--calendar--default-chromium-linux.png │ │ ├── forms--checkbox--default-chromium-darwin.png │ │ ├── forms--checkbox--default-chromium-linux.png │ │ ├── forms--select--default-chromium-darwin.png │ │ ├── forms--switch--default-chromium-darwin.png │ │ ├── forms--textarea--default-chromium-darwin.png │ │ ├── forms--textarea--default-chromium-linux.png │ │ ├── layout--image--default-chromium-darwin.png │ │ ├── layout--skeleton--default-chromium-linux.png │ │ ├── layout--stack--default-chromium-darwin.png │ │ ├── layout--stack--horizontal-chromium-linux.png │ │ ├── typography--link--default-chromium-linux.png │ │ ├── typography--text--default-chromium-linux.png │ │ ├── feedback--drawer--default-chromium-darwin.png │ │ ├── feedback--drawer--positions-chromium-linux.png │ │ ├── feedback--popover--default-chromium-darwin.png │ │ ├── feedback--popover--default-chromium-linux.png │ │ ├── feedback--spinner--default-chromium-darwin.png │ │ ├── feedback--spinner--default-chromium-linux.png │ │ ├── feedback--tooltip--default-chromium-darwin.png │ │ ├── feedback--tooltip--default-chromium-linux.png │ │ ├── forms--radio-group--default-chromium-linux.png │ │ ├── layout--container--default-chromium-darwin.png │ │ ├── layout--container--default-chromium-linux.png │ │ ├── layout--skeleton--default-chromium-darwin.png │ │ ├── layout--stack--horizontal-chromium-darwin.png │ │ ├── typography--label--default-chromium-darwin.png │ │ ├── typography--label--default-chromium-linux.png │ │ ├── typography--link--default-chromium-darwin.png │ │ ├── typography--text--default-chromium-darwin.png │ │ ├── feedback--drawer--positions-chromium-darwin.png │ │ ├── forms--button--scheme-variants-chromium-linux.png │ │ ├── forms--button--size-variants-chromium-darwin.png │ │ ├── forms--button--size-variants-chromium-linux.png │ │ ├── forms--radio-group--default-chromium-darwin.png │ │ ├── layout--aspect-ratio--default-chromium-darwin.png │ │ ├── layout--aspect-ratio--default-chromium-linux.png │ │ ├── layout--card--scheme-variants-chromium-darwin.png │ │ ├── layout--card--scheme-variants-chromium-linux.png │ │ ├── layout--image--gradient-avatar-chromium-linux.png │ │ ├── layout--simple-grid--default-chromium-darwin.png │ │ ├── layout--simple-grid--default-chromium-linux.png │ │ ├── typography--content--default-chromium-darwin.png │ │ ├── typography--content--default-chromium-linux.png │ │ ├── typography--heading--default-chromium-darwin.png │ │ ├── typography--heading--default-chromium-linux.png │ │ ├── forms--button--scheme-variants-chromium-darwin.png │ │ └── layout--image--gradient-avatar-chromium-darwin.png │ └── snapshot.spec.ts │ ├── README.md │ ├── .npmignore │ ├── tsup.config.ts │ ├── .gitignore │ ├── playwright.config.ts │ └── package.json ├── .prettierrc ├── .editorconfig ├── README.md ├── .gitignore ├── turbo.json ├── favicon.svg ├── package.json ├── .github └── workflows │ └── ci.yml └── logo.svg /.nvmrc: -------------------------------------------------------------------------------- 1 | v19.1.0 2 | -------------------------------------------------------------------------------- /logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berlinbnb/deneme2/HEAD/logo.png -------------------------------------------------------------------------------- /packages/css/src/components/Forms/index.ts: -------------------------------------------------------------------------------- 1 | export * from './Button/index' 2 | -------------------------------------------------------------------------------- /packages/css/src/utils/index.ts: -------------------------------------------------------------------------------- 1 | export * as animation from './animation' 2 | -------------------------------------------------------------------------------- /packages/css/.svelte-kit/generated/client/matchers.js: -------------------------------------------------------------------------------- 1 | export const matchers = {}; -------------------------------------------------------------------------------- /packages/css/env.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | -------------------------------------------------------------------------------- /packages/css/src/components/Feedback/index.ts: -------------------------------------------------------------------------------- 1 | export { spinnerStyles } from './Spinner/index' 2 | -------------------------------------------------------------------------------- /packages/css/src/components/Utility/index.ts: -------------------------------------------------------------------------------- 1 | export * from './Inputable/index' 2 | export * from './Overlay/index' 3 | -------------------------------------------------------------------------------- /packages/react/.ladle/config.mjs: -------------------------------------------------------------------------------- 1 | export default { 2 | defaultStory: 'exoui--readme', 3 | base: '/exo-ui/' 4 | } 5 | -------------------------------------------------------------------------------- /packages/css/src/index.ts: -------------------------------------------------------------------------------- 1 | export * from './components/index' 2 | export * from './utils/index' 3 | export * from './theme' 4 | -------------------------------------------------------------------------------- /packages/react/src/utils/index.ts: -------------------------------------------------------------------------------- 1 | export { useDisclosure } from './useDisclosure' 2 | export { useCalendar } from './useCalendar' 3 | -------------------------------------------------------------------------------- /.prettierrc: -------------------------------------------------------------------------------- 1 | { 2 | "semi": false, 3 | "trailingComma": "none", 4 | "singleQuote": true, 5 | "printWidth": 120, 6 | "tabWidth": 2 7 | } 8 | -------------------------------------------------------------------------------- /packages/react/.babelrc: -------------------------------------------------------------------------------- 1 | { 2 | "presets": ["@babel/preset-env", "@babel/preset-react", "@babel/preset-typescript"], 3 | "plugins": [] 4 | } 5 | -------------------------------------------------------------------------------- /packages/css/svelte.config.js: -------------------------------------------------------------------------------- 1 | import { vitePreprocess } from '@sveltejs/kit/vite' 2 | 3 | export default { 4 | preprocess: [vitePreprocess()] 5 | } 6 | -------------------------------------------------------------------------------- /packages/react/src/components/Utility/index.ts: -------------------------------------------------------------------------------- 1 | export { composeOverlay } from './Overlay/index' 2 | export { composeShowableContent } from './ShowableContent/index' 3 | -------------------------------------------------------------------------------- /packages/css/.svelte-kit/generated/client/nodes/0.js: -------------------------------------------------------------------------------- 1 | export { default as component } from "../../../../../../node_modules/@sveltejs/kit/src/runtime/components/layout.svelte"; -------------------------------------------------------------------------------- /packages/css/.svelte-kit/generated/client/nodes/1.js: -------------------------------------------------------------------------------- 1 | export { default as component } from "../../../../../../node_modules/@sveltejs/kit/src/runtime/components/error.svelte"; -------------------------------------------------------------------------------- /packages/css/.npmignore: -------------------------------------------------------------------------------- 1 | !dist 2 | .histoire 3 | .turbo 4 | node_modules 5 | src 6 | vite.config.js 7 | tsconfig.json 8 | svelte.config.js 9 | histoire.config.ts 10 | env.d.ts 11 | -------------------------------------------------------------------------------- /packages/react/e2e/snapshot.spec.ts-snapshots/exoui--theme-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berlinbnb/deneme2/HEAD/packages/react/e2e/snapshot.spec.ts-snapshots/exoui--theme-chromium-linux.png -------------------------------------------------------------------------------- /packages/react/e2e/snapshot.spec.ts-snapshots/exoui--readme-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berlinbnb/deneme2/HEAD/packages/react/e2e/snapshot.spec.ts-snapshots/exoui--readme-chromium-linux.png -------------------------------------------------------------------------------- /packages/css/src/components/index.ts: -------------------------------------------------------------------------------- 1 | export * from './Forms/index' 2 | export * from './Utility/index' 3 | export * from './Layout/index' 4 | export * from './Typography/index' 5 | export * from './Feedback/index' 6 | -------------------------------------------------------------------------------- /packages/react/README.md: -------------------------------------------------------------------------------- 1 | # ExoUI React 2 | 3 | Yet another React UI Library. Under construction. 4 | 5 | ## Installation 6 | 7 | ```sh 8 | $ yarn add @mvr-studio/exo-ui 9 | ✨ Done in 3.52s. 10 | ``` 11 | -------------------------------------------------------------------------------- /packages/css/src/components/Typography/index.ts: -------------------------------------------------------------------------------- 1 | export * from './Heading/index' 2 | export * from './Label/index' 3 | export * from './Link/index' 4 | export * from './Text/index' 5 | export * from './Content/index' 6 | -------------------------------------------------------------------------------- /packages/react/e2e/snapshot.spec.ts-snapshots/layout--box--default-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berlinbnb/deneme2/HEAD/packages/react/e2e/snapshot.spec.ts-snapshots/layout--box--default-chromium-linux.png -------------------------------------------------------------------------------- /packages/react/src/components/index.ts: -------------------------------------------------------------------------------- 1 | export * from './Forms/index' 2 | export * from './Layout/index' 3 | export * from './Feedback/index' 4 | export * from './Typography/index' 5 | export * from './Utility/index' 6 | -------------------------------------------------------------------------------- /packages/react/e2e/snapshot.spec.ts-snapshots/forms--button--default-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berlinbnb/deneme2/HEAD/packages/react/e2e/snapshot.spec.ts-snapshots/forms--button--default-chromium-linux.png -------------------------------------------------------------------------------- /packages/react/e2e/snapshot.spec.ts-snapshots/forms--button--loading-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berlinbnb/deneme2/HEAD/packages/react/e2e/snapshot.spec.ts-snapshots/forms--button--loading-chromium-linux.png -------------------------------------------------------------------------------- /packages/react/e2e/snapshot.spec.ts-snapshots/forms--input--default-chromium-darwin.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berlinbnb/deneme2/HEAD/packages/react/e2e/snapshot.spec.ts-snapshots/forms--input--default-chromium-darwin.png -------------------------------------------------------------------------------- /packages/react/e2e/snapshot.spec.ts-snapshots/forms--input--default-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berlinbnb/deneme2/HEAD/packages/react/e2e/snapshot.spec.ts-snapshots/forms--input--default-chromium-linux.png -------------------------------------------------------------------------------- /packages/react/e2e/snapshot.spec.ts-snapshots/forms--select--default-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berlinbnb/deneme2/HEAD/packages/react/e2e/snapshot.spec.ts-snapshots/forms--select--default-chromium-linux.png -------------------------------------------------------------------------------- /packages/react/e2e/snapshot.spec.ts-snapshots/forms--switch--default-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berlinbnb/deneme2/HEAD/packages/react/e2e/snapshot.spec.ts-snapshots/forms--switch--default-chromium-linux.png -------------------------------------------------------------------------------- /packages/react/e2e/snapshot.spec.ts-snapshots/layout--box--default-chromium-darwin.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berlinbnb/deneme2/HEAD/packages/react/e2e/snapshot.spec.ts-snapshots/layout--box--default-chromium-darwin.png -------------------------------------------------------------------------------- /packages/react/e2e/snapshot.spec.ts-snapshots/layout--card--default-chromium-darwin.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berlinbnb/deneme2/HEAD/packages/react/e2e/snapshot.spec.ts-snapshots/layout--card--default-chromium-darwin.png -------------------------------------------------------------------------------- /packages/react/e2e/snapshot.spec.ts-snapshots/layout--card--default-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berlinbnb/deneme2/HEAD/packages/react/e2e/snapshot.spec.ts-snapshots/layout--card--default-chromium-linux.png -------------------------------------------------------------------------------- /packages/react/e2e/snapshot.spec.ts-snapshots/layout--flex--default-chromium-darwin.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berlinbnb/deneme2/HEAD/packages/react/e2e/snapshot.spec.ts-snapshots/layout--flex--default-chromium-darwin.png -------------------------------------------------------------------------------- /packages/react/e2e/snapshot.spec.ts-snapshots/layout--flex--default-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berlinbnb/deneme2/HEAD/packages/react/e2e/snapshot.spec.ts-snapshots/layout--flex--default-chromium-linux.png -------------------------------------------------------------------------------- /packages/react/e2e/snapshot.spec.ts-snapshots/layout--grid--default-chromium-darwin.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berlinbnb/deneme2/HEAD/packages/react/e2e/snapshot.spec.ts-snapshots/layout--grid--default-chromium-darwin.png -------------------------------------------------------------------------------- /packages/react/e2e/snapshot.spec.ts-snapshots/layout--grid--default-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berlinbnb/deneme2/HEAD/packages/react/e2e/snapshot.spec.ts-snapshots/layout--grid--default-chromium-linux.png -------------------------------------------------------------------------------- /packages/react/e2e/snapshot.spec.ts-snapshots/layout--image--avatar-chromium-darwin.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berlinbnb/deneme2/HEAD/packages/react/e2e/snapshot.spec.ts-snapshots/layout--image--avatar-chromium-darwin.png -------------------------------------------------------------------------------- /packages/react/e2e/snapshot.spec.ts-snapshots/layout--image--avatar-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berlinbnb/deneme2/HEAD/packages/react/e2e/snapshot.spec.ts-snapshots/layout--image--avatar-chromium-linux.png -------------------------------------------------------------------------------- /packages/react/e2e/snapshot.spec.ts-snapshots/layout--image--default-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berlinbnb/deneme2/HEAD/packages/react/e2e/snapshot.spec.ts-snapshots/layout--image--default-chromium-linux.png -------------------------------------------------------------------------------- /packages/react/e2e/snapshot.spec.ts-snapshots/layout--stack--default-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berlinbnb/deneme2/HEAD/packages/react/e2e/snapshot.spec.ts-snapshots/layout--stack--default-chromium-linux.png -------------------------------------------------------------------------------- /packages/react/e2e/snapshot.spec.ts-snapshots/feedback--drawer--default-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berlinbnb/deneme2/HEAD/packages/react/e2e/snapshot.spec.ts-snapshots/feedback--drawer--default-chromium-linux.png -------------------------------------------------------------------------------- /packages/react/e2e/snapshot.spec.ts-snapshots/feedback--modal--default-chromium-darwin.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berlinbnb/deneme2/HEAD/packages/react/e2e/snapshot.spec.ts-snapshots/feedback--modal--default-chromium-darwin.png -------------------------------------------------------------------------------- /packages/react/e2e/snapshot.spec.ts-snapshots/feedback--modal--default-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berlinbnb/deneme2/HEAD/packages/react/e2e/snapshot.spec.ts-snapshots/feedback--modal--default-chromium-linux.png -------------------------------------------------------------------------------- /packages/react/e2e/snapshot.spec.ts-snapshots/forms--button--default-chromium-darwin.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berlinbnb/deneme2/HEAD/packages/react/e2e/snapshot.spec.ts-snapshots/forms--button--default-chromium-darwin.png -------------------------------------------------------------------------------- /packages/react/e2e/snapshot.spec.ts-snapshots/forms--button--loading-chromium-darwin.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berlinbnb/deneme2/HEAD/packages/react/e2e/snapshot.spec.ts-snapshots/forms--button--loading-chromium-darwin.png -------------------------------------------------------------------------------- /packages/react/e2e/snapshot.spec.ts-snapshots/forms--calendar--default-chromium-darwin.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berlinbnb/deneme2/HEAD/packages/react/e2e/snapshot.spec.ts-snapshots/forms--calendar--default-chromium-darwin.png -------------------------------------------------------------------------------- /packages/react/e2e/snapshot.spec.ts-snapshots/forms--calendar--default-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berlinbnb/deneme2/HEAD/packages/react/e2e/snapshot.spec.ts-snapshots/forms--calendar--default-chromium-linux.png -------------------------------------------------------------------------------- /packages/react/e2e/snapshot.spec.ts-snapshots/forms--checkbox--default-chromium-darwin.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berlinbnb/deneme2/HEAD/packages/react/e2e/snapshot.spec.ts-snapshots/forms--checkbox--default-chromium-darwin.png -------------------------------------------------------------------------------- /packages/react/e2e/snapshot.spec.ts-snapshots/forms--checkbox--default-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berlinbnb/deneme2/HEAD/packages/react/e2e/snapshot.spec.ts-snapshots/forms--checkbox--default-chromium-linux.png -------------------------------------------------------------------------------- /packages/react/e2e/snapshot.spec.ts-snapshots/forms--select--default-chromium-darwin.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berlinbnb/deneme2/HEAD/packages/react/e2e/snapshot.spec.ts-snapshots/forms--select--default-chromium-darwin.png -------------------------------------------------------------------------------- /packages/react/e2e/snapshot.spec.ts-snapshots/forms--switch--default-chromium-darwin.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berlinbnb/deneme2/HEAD/packages/react/e2e/snapshot.spec.ts-snapshots/forms--switch--default-chromium-darwin.png -------------------------------------------------------------------------------- /packages/react/e2e/snapshot.spec.ts-snapshots/forms--textarea--default-chromium-darwin.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berlinbnb/deneme2/HEAD/packages/react/e2e/snapshot.spec.ts-snapshots/forms--textarea--default-chromium-darwin.png -------------------------------------------------------------------------------- /packages/react/e2e/snapshot.spec.ts-snapshots/forms--textarea--default-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berlinbnb/deneme2/HEAD/packages/react/e2e/snapshot.spec.ts-snapshots/forms--textarea--default-chromium-linux.png -------------------------------------------------------------------------------- /packages/react/e2e/snapshot.spec.ts-snapshots/layout--image--default-chromium-darwin.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berlinbnb/deneme2/HEAD/packages/react/e2e/snapshot.spec.ts-snapshots/layout--image--default-chromium-darwin.png -------------------------------------------------------------------------------- /packages/react/e2e/snapshot.spec.ts-snapshots/layout--skeleton--default-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berlinbnb/deneme2/HEAD/packages/react/e2e/snapshot.spec.ts-snapshots/layout--skeleton--default-chromium-linux.png -------------------------------------------------------------------------------- /packages/react/e2e/snapshot.spec.ts-snapshots/layout--stack--default-chromium-darwin.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berlinbnb/deneme2/HEAD/packages/react/e2e/snapshot.spec.ts-snapshots/layout--stack--default-chromium-darwin.png -------------------------------------------------------------------------------- /packages/react/e2e/snapshot.spec.ts-snapshots/layout--stack--horizontal-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berlinbnb/deneme2/HEAD/packages/react/e2e/snapshot.spec.ts-snapshots/layout--stack--horizontal-chromium-linux.png -------------------------------------------------------------------------------- /packages/react/e2e/snapshot.spec.ts-snapshots/typography--link--default-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berlinbnb/deneme2/HEAD/packages/react/e2e/snapshot.spec.ts-snapshots/typography--link--default-chromium-linux.png -------------------------------------------------------------------------------- /packages/react/e2e/snapshot.spec.ts-snapshots/typography--text--default-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berlinbnb/deneme2/HEAD/packages/react/e2e/snapshot.spec.ts-snapshots/typography--text--default-chromium-linux.png -------------------------------------------------------------------------------- /packages/react/e2e/snapshot.spec.ts-snapshots/feedback--drawer--default-chromium-darwin.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berlinbnb/deneme2/HEAD/packages/react/e2e/snapshot.spec.ts-snapshots/feedback--drawer--default-chromium-darwin.png -------------------------------------------------------------------------------- /packages/react/e2e/snapshot.spec.ts-snapshots/feedback--drawer--positions-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berlinbnb/deneme2/HEAD/packages/react/e2e/snapshot.spec.ts-snapshots/feedback--drawer--positions-chromium-linux.png -------------------------------------------------------------------------------- /packages/react/e2e/snapshot.spec.ts-snapshots/feedback--popover--default-chromium-darwin.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berlinbnb/deneme2/HEAD/packages/react/e2e/snapshot.spec.ts-snapshots/feedback--popover--default-chromium-darwin.png -------------------------------------------------------------------------------- /packages/react/e2e/snapshot.spec.ts-snapshots/feedback--popover--default-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berlinbnb/deneme2/HEAD/packages/react/e2e/snapshot.spec.ts-snapshots/feedback--popover--default-chromium-linux.png -------------------------------------------------------------------------------- /packages/react/e2e/snapshot.spec.ts-snapshots/feedback--spinner--default-chromium-darwin.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berlinbnb/deneme2/HEAD/packages/react/e2e/snapshot.spec.ts-snapshots/feedback--spinner--default-chromium-darwin.png -------------------------------------------------------------------------------- /packages/react/e2e/snapshot.spec.ts-snapshots/feedback--spinner--default-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berlinbnb/deneme2/HEAD/packages/react/e2e/snapshot.spec.ts-snapshots/feedback--spinner--default-chromium-linux.png -------------------------------------------------------------------------------- /packages/react/e2e/snapshot.spec.ts-snapshots/feedback--tooltip--default-chromium-darwin.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berlinbnb/deneme2/HEAD/packages/react/e2e/snapshot.spec.ts-snapshots/feedback--tooltip--default-chromium-darwin.png -------------------------------------------------------------------------------- /packages/react/e2e/snapshot.spec.ts-snapshots/feedback--tooltip--default-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berlinbnb/deneme2/HEAD/packages/react/e2e/snapshot.spec.ts-snapshots/feedback--tooltip--default-chromium-linux.png -------------------------------------------------------------------------------- /packages/react/e2e/snapshot.spec.ts-snapshots/forms--radio-group--default-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berlinbnb/deneme2/HEAD/packages/react/e2e/snapshot.spec.ts-snapshots/forms--radio-group--default-chromium-linux.png -------------------------------------------------------------------------------- /packages/react/e2e/snapshot.spec.ts-snapshots/layout--container--default-chromium-darwin.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berlinbnb/deneme2/HEAD/packages/react/e2e/snapshot.spec.ts-snapshots/layout--container--default-chromium-darwin.png -------------------------------------------------------------------------------- /packages/react/e2e/snapshot.spec.ts-snapshots/layout--container--default-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berlinbnb/deneme2/HEAD/packages/react/e2e/snapshot.spec.ts-snapshots/layout--container--default-chromium-linux.png -------------------------------------------------------------------------------- /packages/react/e2e/snapshot.spec.ts-snapshots/layout--skeleton--default-chromium-darwin.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berlinbnb/deneme2/HEAD/packages/react/e2e/snapshot.spec.ts-snapshots/layout--skeleton--default-chromium-darwin.png -------------------------------------------------------------------------------- /packages/react/e2e/snapshot.spec.ts-snapshots/layout--stack--horizontal-chromium-darwin.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berlinbnb/deneme2/HEAD/packages/react/e2e/snapshot.spec.ts-snapshots/layout--stack--horizontal-chromium-darwin.png -------------------------------------------------------------------------------- /packages/react/e2e/snapshot.spec.ts-snapshots/typography--label--default-chromium-darwin.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berlinbnb/deneme2/HEAD/packages/react/e2e/snapshot.spec.ts-snapshots/typography--label--default-chromium-darwin.png -------------------------------------------------------------------------------- /packages/react/e2e/snapshot.spec.ts-snapshots/typography--label--default-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berlinbnb/deneme2/HEAD/packages/react/e2e/snapshot.spec.ts-snapshots/typography--label--default-chromium-linux.png -------------------------------------------------------------------------------- /packages/react/e2e/snapshot.spec.ts-snapshots/typography--link--default-chromium-darwin.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berlinbnb/deneme2/HEAD/packages/react/e2e/snapshot.spec.ts-snapshots/typography--link--default-chromium-darwin.png -------------------------------------------------------------------------------- /packages/react/e2e/snapshot.spec.ts-snapshots/typography--text--default-chromium-darwin.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berlinbnb/deneme2/HEAD/packages/react/e2e/snapshot.spec.ts-snapshots/typography--text--default-chromium-darwin.png -------------------------------------------------------------------------------- /packages/react/e2e/snapshot.spec.ts-snapshots/feedback--drawer--positions-chromium-darwin.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berlinbnb/deneme2/HEAD/packages/react/e2e/snapshot.spec.ts-snapshots/feedback--drawer--positions-chromium-darwin.png -------------------------------------------------------------------------------- /packages/react/e2e/snapshot.spec.ts-snapshots/forms--button--scheme-variants-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berlinbnb/deneme2/HEAD/packages/react/e2e/snapshot.spec.ts-snapshots/forms--button--scheme-variants-chromium-linux.png -------------------------------------------------------------------------------- /packages/react/e2e/snapshot.spec.ts-snapshots/forms--button--size-variants-chromium-darwin.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berlinbnb/deneme2/HEAD/packages/react/e2e/snapshot.spec.ts-snapshots/forms--button--size-variants-chromium-darwin.png -------------------------------------------------------------------------------- /packages/react/e2e/snapshot.spec.ts-snapshots/forms--button--size-variants-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berlinbnb/deneme2/HEAD/packages/react/e2e/snapshot.spec.ts-snapshots/forms--button--size-variants-chromium-linux.png -------------------------------------------------------------------------------- /packages/react/e2e/snapshot.spec.ts-snapshots/forms--radio-group--default-chromium-darwin.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berlinbnb/deneme2/HEAD/packages/react/e2e/snapshot.spec.ts-snapshots/forms--radio-group--default-chromium-darwin.png -------------------------------------------------------------------------------- /packages/react/e2e/snapshot.spec.ts-snapshots/layout--aspect-ratio--default-chromium-darwin.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berlinbnb/deneme2/HEAD/packages/react/e2e/snapshot.spec.ts-snapshots/layout--aspect-ratio--default-chromium-darwin.png -------------------------------------------------------------------------------- /packages/react/e2e/snapshot.spec.ts-snapshots/layout--aspect-ratio--default-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berlinbnb/deneme2/HEAD/packages/react/e2e/snapshot.spec.ts-snapshots/layout--aspect-ratio--default-chromium-linux.png -------------------------------------------------------------------------------- /packages/react/e2e/snapshot.spec.ts-snapshots/layout--card--scheme-variants-chromium-darwin.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berlinbnb/deneme2/HEAD/packages/react/e2e/snapshot.spec.ts-snapshots/layout--card--scheme-variants-chromium-darwin.png -------------------------------------------------------------------------------- /packages/react/e2e/snapshot.spec.ts-snapshots/layout--card--scheme-variants-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berlinbnb/deneme2/HEAD/packages/react/e2e/snapshot.spec.ts-snapshots/layout--card--scheme-variants-chromium-linux.png -------------------------------------------------------------------------------- /packages/react/e2e/snapshot.spec.ts-snapshots/layout--image--gradient-avatar-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berlinbnb/deneme2/HEAD/packages/react/e2e/snapshot.spec.ts-snapshots/layout--image--gradient-avatar-chromium-linux.png -------------------------------------------------------------------------------- /packages/react/e2e/snapshot.spec.ts-snapshots/layout--simple-grid--default-chromium-darwin.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berlinbnb/deneme2/HEAD/packages/react/e2e/snapshot.spec.ts-snapshots/layout--simple-grid--default-chromium-darwin.png -------------------------------------------------------------------------------- /packages/react/e2e/snapshot.spec.ts-snapshots/layout--simple-grid--default-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berlinbnb/deneme2/HEAD/packages/react/e2e/snapshot.spec.ts-snapshots/layout--simple-grid--default-chromium-linux.png -------------------------------------------------------------------------------- /packages/react/e2e/snapshot.spec.ts-snapshots/typography--content--default-chromium-darwin.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berlinbnb/deneme2/HEAD/packages/react/e2e/snapshot.spec.ts-snapshots/typography--content--default-chromium-darwin.png -------------------------------------------------------------------------------- /packages/react/e2e/snapshot.spec.ts-snapshots/typography--content--default-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berlinbnb/deneme2/HEAD/packages/react/e2e/snapshot.spec.ts-snapshots/typography--content--default-chromium-linux.png -------------------------------------------------------------------------------- /packages/react/e2e/snapshot.spec.ts-snapshots/typography--heading--default-chromium-darwin.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berlinbnb/deneme2/HEAD/packages/react/e2e/snapshot.spec.ts-snapshots/typography--heading--default-chromium-darwin.png -------------------------------------------------------------------------------- /packages/react/e2e/snapshot.spec.ts-snapshots/typography--heading--default-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berlinbnb/deneme2/HEAD/packages/react/e2e/snapshot.spec.ts-snapshots/typography--heading--default-chromium-linux.png -------------------------------------------------------------------------------- /packages/css/src/components/Layout/index.ts: -------------------------------------------------------------------------------- 1 | export * from './Box/index' 2 | export * from './Flex/index' 3 | export * from './Grid/index' 4 | export * from './Stack/index' 5 | export * from './Card/index' 6 | export * from './Skeleton/index' 7 | -------------------------------------------------------------------------------- /packages/react/e2e/snapshot.spec.ts-snapshots/forms--button--scheme-variants-chromium-darwin.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berlinbnb/deneme2/HEAD/packages/react/e2e/snapshot.spec.ts-snapshots/forms--button--scheme-variants-chromium-darwin.png -------------------------------------------------------------------------------- /packages/react/e2e/snapshot.spec.ts-snapshots/layout--image--gradient-avatar-chromium-darwin.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berlinbnb/deneme2/HEAD/packages/react/e2e/snapshot.spec.ts-snapshots/layout--image--gradient-avatar-chromium-darwin.png -------------------------------------------------------------------------------- /packages/react/.npmignore: -------------------------------------------------------------------------------- 1 | !/dist 2 | /.ladle 3 | /.github 4 | /.storybook 5 | /build 6 | /coverage 7 | /node_modules 8 | /src 9 | /storybook-static 10 | /e2e 11 | .babelrc 12 | playwright.config.ts 13 | tsconfig.json 14 | /playwright-report 15 | -------------------------------------------------------------------------------- /packages/css/histoire.config.ts: -------------------------------------------------------------------------------- 1 | import { defineConfig } from 'histoire' 2 | import { HstVue } from '@histoire/plugin-vue' 3 | import { HstSvelte } from '@histoire/plugin-svelte' 4 | 5 | export default defineConfig({ 6 | plugins: [HstVue(), HstSvelte()] 7 | }) 8 | -------------------------------------------------------------------------------- /packages/react/src/components/Layout/Flex/index.ts: -------------------------------------------------------------------------------- 1 | import { flexStyles } from '@mvr-studio/exo-css' 2 | import { ComponentFactory } from '../../../types' 3 | 4 | export const composeFlex = ({ styled }: ComponentFactory) => { 5 | return styled('div', flexStyles) 6 | } 7 | -------------------------------------------------------------------------------- /packages/react/src/components/Layout/Grid/index.ts: -------------------------------------------------------------------------------- 1 | import { ComponentFactory } from '../../../types' 2 | import { gridStyles } from '@mvr-studio/exo-css' 3 | 4 | export const composeGrid = ({ styled }: ComponentFactory) => { 5 | return styled('div', gridStyles) 6 | } 7 | -------------------------------------------------------------------------------- /packages/react/src/components/Typography/Link/index.ts: -------------------------------------------------------------------------------- 1 | import { linkStyles } from '@mvr-studio/exo-css' 2 | import { ComponentFactory } from '../../../types' 3 | 4 | export const composeLink = ({ styled }: ComponentFactory) => { 5 | return styled('a', linkStyles) 6 | } 7 | -------------------------------------------------------------------------------- /packages/react/src/components/Typography/Text/index.ts: -------------------------------------------------------------------------------- 1 | import { ComponentFactory } from '../../../types' 2 | import { textStyles } from '@mvr-studio/exo-css' 3 | 4 | export const composeText = ({ styled }: ComponentFactory) => { 5 | return styled('p', textStyles) 6 | } 7 | -------------------------------------------------------------------------------- /packages/css/vite.config.js: -------------------------------------------------------------------------------- 1 | import vue from '@vitejs/plugin-vue' 2 | import { svelte } from '@sveltejs/vite-plugin-svelte' 3 | 4 | export default { 5 | plugins: [vue(), svelte()], 6 | server: { 7 | fs: { 8 | allow: ['../../'] 9 | } 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /packages/react/src/components/Layout/AspectRatio/index.ts: -------------------------------------------------------------------------------- 1 | import * as AspectRatio from '@radix-ui/react-aspect-ratio' 2 | import { ComponentFactory } from '../../../types' 3 | 4 | export const composeAspectRatio = ({ styled }: ComponentFactory) => styled(AspectRatio.Root, {}) 5 | -------------------------------------------------------------------------------- /packages/react/src/components/Forms/Button/index.ts: -------------------------------------------------------------------------------- 1 | import { ComponentFactory } from '../../../types' 2 | import { buttonStyles } from '@mvr-studio/exo-css' 3 | 4 | export const composeButton = ({ styled }: ComponentFactory) => { 5 | return styled('button', buttonStyles) 6 | } 7 | -------------------------------------------------------------------------------- /packages/react/src/components/Typography/Label/index.ts: -------------------------------------------------------------------------------- 1 | import { labelStyles } from '@mvr-studio/exo-css' 2 | import { ComponentFactory } from '../../../types' 3 | 4 | export const composeLabel = ({ styled }: ComponentFactory) => { 5 | return styled('label', labelStyles) 6 | } 7 | -------------------------------------------------------------------------------- /packages/react/src/components/Typography/Heading/index.ts: -------------------------------------------------------------------------------- 1 | import { headingStyles } from '@mvr-studio/exo-css' 2 | import { ComponentFactory } from '../../../types' 3 | 4 | export const composeHeading = ({ styled }: ComponentFactory) => { 5 | return styled('h1', headingStyles) 6 | } 7 | -------------------------------------------------------------------------------- /packages/react/src/components/Typography/index.ts: -------------------------------------------------------------------------------- 1 | export { composeLabel } from './Label/index' 2 | export { composeHeading } from './Heading/index' 3 | export { composeText } from './Text/index' 4 | export { composeLink } from './Link/index' 5 | export { composeContent } from './Content/index' 6 | -------------------------------------------------------------------------------- /.editorconfig: -------------------------------------------------------------------------------- 1 | # EditorConfig is awesome: https://EditorConfig.org 2 | 3 | # top-most EditorConfig file 4 | root = true 5 | 6 | [*] 7 | indent_style = space 8 | indent_size = 2 9 | end_of_line = lf 10 | charset = utf-8 11 | trim_trailing_whitespace = true 12 | insert_final_newline = true 13 | -------------------------------------------------------------------------------- /packages/react/src/components/Feedback/index.ts: -------------------------------------------------------------------------------- 1 | export { composeModal } from './Modal/index' 2 | export { composeDrawer } from './Drawer/index' 3 | export { composeTooltip } from './Tooltip/index' 4 | export { composePopover } from './Popover/index' 5 | export { composeSpinner } from './Spinner/index' 6 | -------------------------------------------------------------------------------- /packages/react/src/assets/icons/chevron-down.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /packages/css/src/components/Layout/Flex/index.ts: -------------------------------------------------------------------------------- 1 | import { ComposerFactory } from '../../../types' 2 | import { boxStyles } from '../Box' 3 | 4 | export const flexStyles = { 5 | ...boxStyles, 6 | display: 'flex' 7 | } 8 | 9 | export const composeFlexCss = ({ css }: ComposerFactory) => { 10 | return css(flexStyles) 11 | } 12 | -------------------------------------------------------------------------------- /packages/css/src/components/Layout/Grid/index.ts: -------------------------------------------------------------------------------- 1 | import { ComposerFactory } from '../../../types' 2 | import { boxStyles } from '../Box' 3 | 4 | export const gridStyles = { 5 | ...boxStyles, 6 | display: 'grid' 7 | } 8 | 9 | export const composeGridCss = ({ css }: ComposerFactory) => { 10 | return css(gridStyles) 11 | } 12 | -------------------------------------------------------------------------------- /packages/css/src/types.ts: -------------------------------------------------------------------------------- 1 | import type { css } from '@stitches/core' 2 | 3 | export type Color = string 4 | 5 | export interface CreateExpoThemeProps { 6 | primaryColor?: Color 7 | secondaryColor?: Color 8 | colors?: Record 9 | } 10 | 11 | export interface ComposerFactory { 12 | css: typeof css 13 | } 14 | -------------------------------------------------------------------------------- /packages/css/src/components/Typography/Link/index.ts: -------------------------------------------------------------------------------- 1 | import { boxStyles } from '../../' 2 | import { ComposerFactory } from '../../../types' 3 | 4 | export const linkStyles = { 5 | ...boxStyles, 6 | color: 'inherit' 7 | } 8 | 9 | export const composeLinkCss = ({ css }: ComposerFactory) => { 10 | return css(linkStyles) 11 | } 12 | -------------------------------------------------------------------------------- /packages/react/src/components/Layout/Card/index.ts: -------------------------------------------------------------------------------- 1 | import { ComponentFactory } from '../../../types' 2 | import { composeBox } from '../Box' 3 | import { cardStyles } from '@mvr-studio/exo-css' 4 | 5 | export const composeCard = ({ styled }: ComponentFactory) => { 6 | const Box = composeBox({ styled }) 7 | return styled(Box, cardStyles) 8 | } 9 | -------------------------------------------------------------------------------- /packages/react/src/components/Utility/Overlay/index.ts: -------------------------------------------------------------------------------- 1 | import { ComponentFactory } from '../../../types' 2 | import * as Dialog from '@radix-ui/react-dialog' 3 | import { overlayStyles } from '@mvr-studio/exo-css' 4 | 5 | export const composeOverlay = ({ styled }: ComponentFactory) => { 6 | return styled(Dialog.Overlay, overlayStyles) 7 | } 8 | -------------------------------------------------------------------------------- /packages/react/src/components/Layout/Skeleton/index.tsx: -------------------------------------------------------------------------------- 1 | import { ComponentFactory } from '../../../types' 2 | import { skeletonStyles } from '@mvr-studio/exo-css' 3 | import { composeBox } from '../Box' 4 | 5 | export const composeSkeleton = ({ styled }: ComponentFactory) => { 6 | const Box = composeBox({ styled }) 7 | return styled(Box, skeletonStyles) 8 | } 9 | -------------------------------------------------------------------------------- /packages/react/src/components/Feedback/Spinner/index.tsx: -------------------------------------------------------------------------------- 1 | import { spinnerStyles } from '@mvr-studio/exo-css' 2 | import { ComponentFactory } from '../../../types' 3 | import { composeBox } from '../../Layout/Box' 4 | 5 | export const composeSpinner = ({ styled }: ComponentFactory) => { 6 | const Box = composeBox({ styled }) 7 | return styled(Box, spinnerStyles) 8 | } 9 | -------------------------------------------------------------------------------- /packages/react/src/components/Typography/Content/index.ts: -------------------------------------------------------------------------------- 1 | import { contentStyles } from '@mvr-studio/exo-css' 2 | import { ComponentFactory } from '../../../types' 3 | import { composeBox } from '../../Layout' 4 | 5 | export const composeContent = ({ styled }: ComponentFactory) => { 6 | const Box = composeBox({ styled }) 7 | return styled(Box, contentStyles) 8 | } 9 | -------------------------------------------------------------------------------- /packages/react/src/components/Forms/Input/index.ts: -------------------------------------------------------------------------------- 1 | import { ComponentFactory } from '../../../types' 2 | import { inputableStyles } from '@mvr-studio/exo-css' 3 | 4 | interface ComposeInputProps extends ComponentFactory { 5 | type?: string 6 | } 7 | 8 | export const composeInput = ({ styled }: ComposeInputProps) => { 9 | return styled('input', inputableStyles) 10 | } 11 | -------------------------------------------------------------------------------- /packages/css/src/components/Typography/Text/index.ts: -------------------------------------------------------------------------------- 1 | import { boxStyles } from '../../' 2 | import { ComposerFactory } from '../../../types' 3 | 4 | export const textStyles = { 5 | ...boxStyles, 6 | color: 'var(--default-text-body-color)', 7 | lineHeight: '$tall' 8 | } 9 | 10 | export const composeTextCss = ({ css }: ComposerFactory) => { 11 | return css(textStyles) 12 | } 13 | -------------------------------------------------------------------------------- /packages/react/src/components/Feedback/Spinner/index.stories.tsx: -------------------------------------------------------------------------------- 1 | import React from 'react' 2 | import { Story, StoryDefault } from '@ladle/react' 3 | import { createExoUi } from '../../..' 4 | 5 | export const Default: Story = () => { 6 | const { Spinner } = createExoUi() 7 | return 8 | } 9 | 10 | export default { 11 | title: 'Feedback / Spinner' 12 | } satisfies StoryDefault 13 | -------------------------------------------------------------------------------- /packages/react/src/components/Typography/Label/index.stories.tsx: -------------------------------------------------------------------------------- 1 | import React from 'react' 2 | import { Story, StoryDefault } from '@ladle/react' 3 | import { createExoUi } from '../../..' 4 | 5 | export const Default: Story = () => { 6 | const { Label } = createExoUi() 7 | return 8 | } 9 | 10 | export default { 11 | title: 'Typography / Label' 12 | } satisfies StoryDefault 13 | -------------------------------------------------------------------------------- /packages/css/tsup.config.ts: -------------------------------------------------------------------------------- 1 | import { defineConfig } from 'tsup' 2 | 3 | export default defineConfig([ 4 | { 5 | name: 'main', 6 | entry: ['./src/index.ts'], 7 | outDir: './dist', 8 | format: ['esm', 'cjs'], 9 | sourcemap: true, 10 | clean: true, 11 | bundle: true, 12 | dts: { 13 | compilerOptions: { 14 | moduleResolution: 'Node' 15 | } 16 | } 17 | } 18 | ]) 19 | -------------------------------------------------------------------------------- /packages/react/tsup.config.ts: -------------------------------------------------------------------------------- 1 | import { defineConfig } from 'tsup' 2 | 3 | export default defineConfig([ 4 | { 5 | name: 'main', 6 | entry: ['./src/index.ts'], 7 | outDir: './dist', 8 | format: ['esm', 'cjs'], 9 | sourcemap: true, 10 | clean: true, 11 | bundle: true, 12 | dts: { 13 | compilerOptions: { 14 | moduleResolution: 'Node' 15 | } 16 | } 17 | } 18 | ]) 19 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # 2 | 3 | ![ExoUI Logo](logo.png) 4 | 5 | --- 6 | 7 | [![Maintainability](https://api.codeclimate.com/v1/badges/a33d25100f6a14071f78/maintainability)](https://codeclimate.com/github/mvr-studio/exo-ui/maintainability) 8 | 9 | > Yet another UI Library. Under construction. 10 | 11 | --- 12 | 13 | [Roadmap](https://github.com/orgs/mvr-studio/projects/1/views/1) | 14 | [Maintained by MVR Studio](https://mvr.studio) 15 | -------------------------------------------------------------------------------- /packages/css/src/components/Typography/Label/index.ts: -------------------------------------------------------------------------------- 1 | import { boxStyles } from '../../' 2 | import { ComposerFactory } from '../../../types' 3 | 4 | export const labelStyles = { 5 | ...boxStyles, 6 | fontSize: '14px', 7 | fontWeight: '$semibold', 8 | '&[for]': { 9 | cursor: 'pointer' 10 | } 11 | } 12 | 13 | export const composeLabelCss = ({ css }: ComposerFactory) => { 14 | return css(labelStyles) 15 | } 16 | -------------------------------------------------------------------------------- /packages/react/src/components/Layout/Box/index.ts: -------------------------------------------------------------------------------- 1 | import { ComponentType } from 'react' 2 | import { ComponentFactory } from '../../../types' 3 | import { boxStyles } from '@mvr-studio/exo-css' 4 | 5 | interface BoxFactory extends ComponentFactory { 6 | type?: string 7 | } 8 | 9 | export const composeBox = ({ styled, type = 'div' }: BoxFactory) => { 10 | return styled(type as unknown as ComponentType, boxStyles) 11 | } 12 | -------------------------------------------------------------------------------- /packages/react/src/components/Forms/Textarea/index.ts: -------------------------------------------------------------------------------- 1 | import { ComponentFactory } from '../../../types' 2 | import { inputableStyles } from '@mvr-studio/exo-css' 3 | 4 | interface ComposeTextareaProps extends ComponentFactory { 5 | type?: string 6 | } 7 | 8 | export const composeTextarea = ({ styled }: ComposeTextareaProps) => { 9 | return styled('textarea', { 10 | ...inputableStyles, 11 | resize: 'none' 12 | }) 13 | } 14 | -------------------------------------------------------------------------------- /packages/react/src/components/Layout/Skeleton/index.stories.tsx: -------------------------------------------------------------------------------- 1 | import React from 'react' 2 | import { Story, StoryDefault } from '@ladle/react' 3 | import { createExoUi } from '../../..' 4 | 5 | export const Default: Story = () => { 6 | const { Skeleton } = createExoUi() 7 | return 8 | } 9 | 10 | export default { 11 | title: 'Layout / Skeleton' 12 | } satisfies StoryDefault 13 | -------------------------------------------------------------------------------- /packages/css/.svelte-kit/generated/client/app.js: -------------------------------------------------------------------------------- 1 | export { matchers } from './matchers.js'; 2 | 3 | export const nodes = [ 4 | () => import('./nodes/0'), 5 | () => import('./nodes/1') 6 | ]; 7 | 8 | export const server_loads = []; 9 | 10 | export const dictionary = { 11 | 12 | }; 13 | 14 | export const hooks = { 15 | handleError: (({ error }) => { console.error(error) }), 16 | }; 17 | 18 | export { default as root } from '../root.svelte'; -------------------------------------------------------------------------------- /packages/css/src/components/Layout/Box/index.ts: -------------------------------------------------------------------------------- 1 | import { ComposerFactory } from '../../../types' 2 | 3 | export const boxStyles = { 4 | appearance: 'none', 5 | fontFamily: '$body', 6 | fontSize: '$md', 7 | color: 'var(--default-text-color)', 8 | padding: 0, 9 | margin: 0, 10 | boxSizing: 'border-box', 11 | width: '100%' 12 | } 13 | 14 | export const composeBoxCss = ({ css }: ComposerFactory) => { 15 | return css(boxStyles) 16 | } 17 | -------------------------------------------------------------------------------- /packages/react/src/components/Layout/Container/index.stories.tsx: -------------------------------------------------------------------------------- 1 | import React from 'react' 2 | import { Story, StoryDefault } from '@ladle/react' 3 | import { createExoUi } from '../../..' 4 | 5 | export const Default: Story = () => { 6 | const { Container } = createExoUi() 7 | return Box 8 | } 9 | 10 | export default { 11 | title: 'Layout / Container' 12 | } satisfies StoryDefault 13 | -------------------------------------------------------------------------------- /packages/react/src/components/Forms/Select/index.ts: -------------------------------------------------------------------------------- 1 | import { inputableStyles } from '@mvr-studio/exo-css' 2 | import { ComponentFactory } from '../../../types' 3 | 4 | export const composeSelect = ({ styled }: ComponentFactory) => { 5 | return styled('select', { 6 | ...inputableStyles, 7 | background: 'var(--select-background)', 8 | backgroundRepeat: 'no-repeat', 9 | backgroundPosition: `calc(100% - 0.75rem) center` 10 | }) 11 | } 12 | -------------------------------------------------------------------------------- /packages/react/src/components/Forms/index.ts: -------------------------------------------------------------------------------- 1 | export { composeButton } from './Button/index' 2 | export { composeInput } from './Input/index' 3 | export { composeSelect } from './Select/index' 4 | export { composeCheckbox } from './Checkbox/index' 5 | export { composeRadioGroup } from './RadioGroup/index' 6 | export { composeCalendar } from './Calendar/index' 7 | export { composeSwitch } from './Switch/index' 8 | export { composeTextarea } from './Textarea/index' 9 | -------------------------------------------------------------------------------- /packages/react/src/components/Layout/Stack/index.tsx: -------------------------------------------------------------------------------- 1 | import { ComponentFactory } from '../../../types' 2 | import { stackStyles } from '@mvr-studio/exo-css' 3 | 4 | export const composeStack = ({ styled }: ComponentFactory) => { 5 | return styled('div', stackStyles) 6 | } 7 | 8 | export const composeHStack = ({ styled }: ComponentFactory) => { 9 | const Stack = composeStack({ styled }) 10 | return styled(Stack, { flexDirection: 'row' }) 11 | } 12 | -------------------------------------------------------------------------------- /packages/react/src/components/Layout/Box/index.stories.tsx: -------------------------------------------------------------------------------- 1 | import React from 'react' 2 | import { Story, StoryDefault } from '@ladle/react' 3 | import { createExoUi } from '../../..' 4 | 5 | export const Default: Story = () => { 6 | const { Box } = createExoUi() 7 | return Box 8 | } 9 | 10 | export default { 11 | title: 'Layout / Box' 12 | } satisfies StoryDefault 13 | -------------------------------------------------------------------------------- /packages/react/src/utils/useDisclosure/index.tsx: -------------------------------------------------------------------------------- 1 | import { useState } from 'react' 2 | 3 | export const useDisclosure = (defaultIsOpen = false) => { 4 | const [isOpen, setIsOpen] = useState(defaultIsOpen) 5 | const onClose = () => setIsOpen(false) 6 | const onOpen = () => setIsOpen(true) 7 | const onToggle = () => setIsOpen(!isOpen) 8 | return { 9 | isOpen, 10 | onClose, 11 | onOpen, 12 | onToggle, 13 | setIsOpen 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /packages/react/src/components/Forms/Calendar/index.stories.tsx: -------------------------------------------------------------------------------- 1 | import React from 'react' 2 | import { Story, StoryDefault } from '@ladle/react' 3 | import { createExoUi } from '../../..' 4 | 5 | export const Default: Story = () => { 6 | const { Calendar, Box } = createExoUi() 7 | return ( 8 | 9 | 10 | 11 | ) 12 | } 13 | 14 | export default { 15 | title: 'Forms / Calendar' 16 | } satisfies StoryDefault 17 | -------------------------------------------------------------------------------- /packages/react/src/components/Typography/Link/index.stories.tsx: -------------------------------------------------------------------------------- 1 | import React from 'react' 2 | import { Story, StoryDefault } from '@ladle/react' 3 | import { createExoUi } from '../../..' 4 | 5 | export const Default: Story = () => { 6 | const { Link } = createExoUi() 7 | return ( 8 | 9 | Link 10 | 11 | ) 12 | } 13 | 14 | export default { 15 | title: 'Typography / Link' 16 | } satisfies StoryDefault 17 | -------------------------------------------------------------------------------- /packages/react/.gitignore: -------------------------------------------------------------------------------- 1 | coverage 2 | build 3 | !e2e 4 | 5 | # Logs 6 | logs 7 | *.log 8 | npm-debug.log* 9 | yarn-debug.log* 10 | yarn-error.log* 11 | pnpm-debug.log* 12 | lerna-debug.log* 13 | storybook-static 14 | 15 | node_modules 16 | dist 17 | dist-ssr 18 | *.local 19 | 20 | # Editor directories and files 21 | .vscode/* 22 | !.vscode/extensions.json 23 | .idea 24 | .DS_Store 25 | *.suo 26 | *.ntvs* 27 | *.njsproj 28 | *.sln 29 | *.sw? 30 | /test-results/ 31 | /playwright-report/ 32 | /playwright/.cache/ 33 | -------------------------------------------------------------------------------- /packages/react/src/components/Feedback/Tooltip/index.stories.tsx: -------------------------------------------------------------------------------- 1 | import React from 'react' 2 | import { Story, StoryDefault } from '@ladle/react' 3 | import { createExoUi } from '../../..' 4 | 5 | export const Default: Story = () => { 6 | const { Button, Tooltip } = createExoUi() 7 | return ( 8 | 9 | 10 | 11 | ) 12 | } 13 | 14 | export default { 15 | title: 'Feedback / Tooltip' 16 | } satisfies StoryDefault 17 | -------------------------------------------------------------------------------- /packages/react/src/components/Forms/Input/index.stories.tsx: -------------------------------------------------------------------------------- 1 | import React from 'react' 2 | import { Story, StoryDefault } from '@ladle/react' 3 | import { createExoUi } from '../../..' 4 | 5 | export const Default: Story = () => { 6 | const { Input, Label, Stack } = createExoUi() 7 | return ( 8 | 9 | 10 | 11 | 12 | ) 13 | } 14 | 15 | export default { 16 | title: 'Forms / Input' 17 | } satisfies StoryDefault 18 | -------------------------------------------------------------------------------- /packages/react/src/components/Forms/Textarea/index.stories.tsx: -------------------------------------------------------------------------------- 1 | import React from 'react' 2 | import { Story, StoryDefault } from '@ladle/react' 3 | import { createExoUi } from '../../..' 4 | 5 | export const Default: Story = () => { 6 | const { Textarea, Label, Stack } = createExoUi() 7 | return ( 8 | 9 | 10 |