From 6480193cd54d993fddf3ad571ea2933136c1ff80 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=94=D0=BC=D0=B8=D1=82=D1=80=D0=B8=D0=B9=20=D0=9C=D0=B0?= =?UTF-8?q?=D0=BB=D1=8E=D0=B3=D0=B8=D0=BD?= <d.malygin@iqdev.digital> Date: Mon, 3 Feb 2025 14:26:23 +0500 Subject: [PATCH] feat: init 'Cropper' --- src/common/interfaces/componentsProps.ts | 4 ++ .../ColorPicker/ColorPicker.stories.ts | 2 +- src/components/Cropper/Cropper.stories.ts | 43 +++++++++++++++++++ src/components/Cropper/Cropper.vue | 17 ++++++++ 4 files changed, 65 insertions(+), 1 deletion(-) create mode 100644 src/components/Cropper/Cropper.stories.ts create mode 100644 src/components/Cropper/Cropper.vue diff --git a/src/common/interfaces/componentsProps.ts b/src/common/interfaces/componentsProps.ts index 13d4a5e..ebbe3ed 100644 --- a/src/common/interfaces/componentsProps.ts +++ b/src/common/interfaces/componentsProps.ts @@ -182,6 +182,10 @@ export interface IPopupProps { left?: number; } +export interface ICropperProps { + size?: TSize; +} + export interface IColorPickerProps { size?: TSize; disabled?: boolean; diff --git a/src/components/ColorPicker/ColorPicker.stories.ts b/src/components/ColorPicker/ColorPicker.stories.ts index cf71cf7..2abc156 100644 --- a/src/components/ColorPicker/ColorPicker.stories.ts +++ b/src/components/ColorPicker/ColorPicker.stories.ts @@ -9,7 +9,7 @@ const meta: Meta = { parameters: { docs: { description: { - component: 'A component to define number inputs with a dial.', + component: 'A component to pick color. Can be with button.', }, }, }, diff --git a/src/components/Cropper/Cropper.stories.ts b/src/components/Cropper/Cropper.stories.ts new file mode 100644 index 0000000..2cc8135 --- /dev/null +++ b/src/components/Cropper/Cropper.stories.ts @@ -0,0 +1,43 @@ +import type { Meta, StoryObj } from '@storybook/vue3'; + +import Cropper from './Cropper.vue'; + +const meta: Meta = { + title: 'Components/Cropper', + component: Cropper, + tags: ['pick'], + parameters: { + docs: { + description: { + component: 'A component to pick color. Can be with button.', + }, + }, + }, + argTypes: { + buttonProps: { control: 'object' }, + sameButtonColor: { control: 'boolean' }, + disabled: { control: 'boolean' }, + size: { control: 'select', options: ['small', 'normal', 'large', 'huge'] }, + }, +} satisfies Meta<typeof Cropper>; + +export default meta; + +type Story = StoryObj<typeof meta>; + +export const Simple: Story = { + args: {}, +}; + +export const Full: Story = { + args: { + buttonProps: { + label: 'Pick color!', + theme: 'red', + textStyle: 'bold', + }, + + size: 'large', + sameButtonColor: true, + }, +}; diff --git a/src/components/Cropper/Cropper.vue b/src/components/Cropper/Cropper.vue new file mode 100644 index 0000000..07f9948 --- /dev/null +++ b/src/components/Cropper/Cropper.vue @@ -0,0 +1,17 @@ +<script setup lang="ts"> +import type { ICropperProps } from '@interfaces/componentsProps'; + +const props = withDefaults(defineProps<ICropperProps>(), { + size: 'normal', + disabled: false, +}); +</script> + +<template> + <section class="container"></section> +</template> + +<style scoped> +.container { +} +</style> -- GitLab