@jongh/ui 1.6.5 → 2.20260905.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/base.css +1103 -0
- package/dist/blue.css +155 -0
- package/dist/chunks/component-accordion-fyrDP4PS.js +28 -0
- package/dist/chunks/component-avatar-Cl7qxXL7.js +15 -0
- package/dist/chunks/component-badge-BqDGL-KR.js +23 -0
- package/dist/chunks/component-box-BVJJ_2Ye.js +27 -0
- package/dist/chunks/component-button-6iooYVkM.js +21 -0
- package/dist/chunks/component-calendar-BIBA_BgQ.js +241 -0
- package/dist/chunks/component-center-rifwb_-x.js +33 -0
- package/dist/chunks/component-checkbox-KSwDeqdV.js +54 -0
- package/dist/chunks/component-dialog-xLex6FJh.js +36 -0
- package/dist/chunks/component-grid-aWgGm3Ad.js +39 -0
- package/dist/chunks/component-h-stack-Cj62v71l.js +37 -0
- package/dist/chunks/component-select-B35mHD7A.js +52 -0
- package/dist/chunks/component-slider-CPcl-o95.js +16 -0
- package/dist/chunks/component-tabs-2-w8TPID.js +58 -0
- package/dist/chunks/component-textfield-CaSHslMS.js +53 -0
- package/dist/chunks/component-v-stack-BzMHYpjP.js +37 -0
- package/dist/chunks/panda-runtime-C6bA3kfx.js +496 -0
- package/dist/chunks/recipe-accordion-recipe-CchKveXQ.js +27 -0
- package/dist/chunks/recipe-avatar-recipe-5VMtXIhg.js +24 -0
- package/dist/chunks/recipe-badge-recipe-D02izv1z.js +136 -0
- package/dist/chunks/recipe-button-recipe-CjRb9Hj9.js +36 -0
- package/dist/chunks/recipe-calendar-recipe-BUUS4QEd.js +31 -0
- package/dist/chunks/recipe-center-recipe-_gQI_rG1.js +24 -0
- package/dist/chunks/recipe-checkbox-recipe-D72btvoT.js +31 -0
- package/dist/chunks/recipe-dialog-recipe-RKZYROxV.js +31 -0
- package/dist/chunks/recipe-layout-recipe-BMWtqxiV.js +20 -0
- package/dist/chunks/recipe-select-recipe-BbGnyPQ_.js +33 -0
- package/dist/chunks/recipe-slider-recipe-BHAFeUmN.js +25 -0
- package/dist/chunks/recipe-tabs-recipe-Cbr23IZY.js +26 -0
- package/dist/chunks/recipe-textfield-recipe-C2tyOCzn.js +27 -0
- package/dist/chunks/rolldown-runtime-CKyOoeiN.js +12 -0
- package/dist/index.d.ts +21694 -0
- package/dist/index.js +93 -0
- package/dist/purple.css +155 -0
- package/dist/recipes/accordion-recipe.css +118 -0
- package/dist/recipes/avatar-recipe.css +44 -0
- package/dist/recipes/badge-recipe.css +47 -0
- package/dist/recipes/button-recipe.css +153 -0
- package/dist/recipes/calendar-recipe.css +145 -0
- package/dist/recipes/center-recipe.css +13 -0
- package/dist/recipes/checkbox-recipe.css +156 -0
- package/dist/recipes/dialog-recipe.css +101 -0
- package/dist/recipes/layout-recipe.css +427 -0
- package/dist/recipes/select-recipe.css +175 -0
- package/dist/recipes/slider-recipe.css +60 -0
- package/dist/recipes/tabs-recipe.css +76 -0
- package/dist/recipes/textfield-recipe.css +95 -0
- package/dist/style.css +1 -0
- package/package.json +64 -39
- package/.storybook/index.css +0 -1
- package/.storybook/main.ts +0 -40
- package/.storybook/preview.ts +0 -16
- package/.storybook/vitest.setup.ts +0 -9
- package/.turbo/turbo-build.log +0 -79
- package/CHANGELOG.md +0 -54
- package/chromatic.config.json +0 -6
- package/eslint.config.mjs +0 -14
- package/index.html +0 -13
- package/panda.config.ts +0 -13
- package/postcss.config.cjs +0 -3
- package/preset.ts +0 -134
- package/src/component/accordion/ui/index.tsx +0 -80
- package/src/component/accordion/ui/recipe.ts +0 -65
- package/src/component/avatar/ui/index.tsx +0 -47
- package/src/component/avatar/ui/recipe.ts +0 -30
- package/src/component/button/ui/index.tsx +0 -29
- package/src/component/button/ui/recipe.ts +0 -102
- package/src/component/chip/ui/index.tsx +0 -30
- package/src/component/chip/ui/recipe.ts +0 -112
- package/src/component/dialog/ui/index.tsx +0 -73
- package/src/component/dialog/ui/recipe.ts +0 -92
- package/src/component/select/ui/index.tsx +0 -128
- package/src/component/select/ui/recipe.ts +0 -142
- package/src/component/slider/ui/index.tsx +0 -61
- package/src/component/slider/ui/recipe.ts +0 -52
- package/src/component/tabs/ui/index.tsx +0 -61
- package/src/component/tabs/ui/recipe.ts +0 -59
- package/src/hooks/createContext.tsx +0 -34
- package/src/hooks/useComposedRefs.ts +0 -20
- package/src/hooks/useControllableState.ts +0 -87
- package/src/hooks/useKeyboardEvent.ts +0 -58
- package/src/stories/accordion.stories.tsx +0 -63
- package/src/stories/avatar.stories.tsx +0 -33
- package/src/stories/button.stories.tsx +0 -53
- package/src/stories/chip.stories.tsx +0 -69
- package/src/stories/dialog.stories.tsx +0 -134
- package/src/stories/select.stories.tsx +0 -35
- package/src/stories/slider.stories.tsx +0 -31
- package/src/stories/tabs.stories.tsx +0 -63
- package/src/test/accordion.test.tsx +0 -66
- package/src/test/tabs.test.tsx +0 -30
- package/src/types/index.ts +0 -1
- package/src/utils/createStyleContext.tsx +0 -108
- package/src/utils/defineSafe.ts +0 -46
- package/src/utils/getObjectKeys.ts +0 -20
- package/src/vite-env.d.ts +0 -1
- package/storybook-static/assets/Color-F6OSRLHC-CrKta8Qx.js +0 -1
- package/storybook-static/assets/DocsRenderer-CFRXHY34-Crd9Mepd.js +0 -586
- package/storybook-static/assets/_commonjsHelpers-Cpj98o6Y.js +0 -1
- package/storybook-static/assets/accordion.stories-0Om0AnMm.js +0 -50
- package/storybook-static/assets/avatar.stories-DMDsrSks.js +0 -16
- package/storybook-static/assets/axe-Dzet_oDA.js +0 -30
- package/storybook-static/assets/button.stories-CuVC-3x-.js +0 -40
- package/storybook-static/assets/chip.stories-FBIp8XNi.js +0 -48
- package/storybook-static/assets/chunk-XP5HYGXS-D5tuasO7.js +0 -1
- package/storybook-static/assets/createLucideIcon-DmXe7Z8R.js +0 -21
- package/storybook-static/assets/dialog.stories-3WsEvXt4.js +0 -106
- package/storybook-static/assets/entry-preview-Bkgdgq1b.js +0 -10
- package/storybook-static/assets/entry-preview-docs-zLz1Es7d.js +0 -46
- package/storybook-static/assets/iframe-LPPPXabV.js +0 -199
- package/storybook-static/assets/index-Bklpsb39.js +0 -1
- package/storybook-static/assets/index-BrlJLjep.js +0 -24
- package/storybook-static/assets/index-C2tRLqin.js +0 -41
- package/storybook-static/assets/index-CBft-ReK.js +0 -8
- package/storybook-static/assets/index-CSbWd7UJ.js +0 -1
- package/storybook-static/assets/index-ClcD9ViR.js +0 -9
- package/storybook-static/assets/index-Cu4lwwaE.js +0 -1
- package/storybook-static/assets/index-Cvkemp2J.js +0 -1
- package/storybook-static/assets/index-D59aU5s_.js +0 -240
- package/storybook-static/assets/index-DNo8LKN3.js +0 -1
- package/storybook-static/assets/index-DUy19JZU.js +0 -1
- package/storybook-static/assets/index-D_35mznO.js +0 -1
- package/storybook-static/assets/index-DrFu-skq.js +0 -6
- package/storybook-static/assets/index-DvbTp2M2.js +0 -1
- package/storybook-static/assets/index-rtmQni2k.js +0 -1
- package/storybook-static/assets/jsx-runtime-BYYWji4R.js +0 -9
- package/storybook-static/assets/matchers-57EZJSQE-oeXCqs4p.js +0 -14
- package/storybook-static/assets/preview-1l6V4UsQ.js +0 -1
- package/storybook-static/assets/preview-B3PTUHS7.js +0 -1
- package/storybook-static/assets/preview-BBWR9nbA.js +0 -1
- package/storybook-static/assets/preview-BCV5r-Ja.js +0 -1
- package/storybook-static/assets/preview-BWzBA1C2.js +0 -396
- package/storybook-static/assets/preview-Bb56VplF.js +0 -2
- package/storybook-static/assets/preview-Bl8rsKRy.js +0 -1
- package/storybook-static/assets/preview-Bm-a94Ct.js +0 -2
- package/storybook-static/assets/preview-Br-h4d84.js +0 -1
- package/storybook-static/assets/preview-D77C14du.js +0 -34
- package/storybook-static/assets/preview-DC8N7cZb.css +0 -1
- package/storybook-static/assets/preview-DGUiP6tS.js +0 -7
- package/storybook-static/assets/react-18-BPs3tMGP.js +0 -1
- package/storybook-static/assets/select.stories-AN8Hb81Z.js +0 -20
- package/storybook-static/assets/slider.stories-CxOczq0y.js +0 -12
- package/storybook-static/assets/tabs.stories-BbTU4QU3.js +0 -28
- package/storybook-static/favicon.svg +0 -1
- package/storybook-static/iframe.html +0 -666
- package/storybook-static/index.html +0 -193
- package/storybook-static/index.json +0 -1
- package/storybook-static/nunito-sans-bold-italic.woff2 +0 -0
- package/storybook-static/nunito-sans-bold.woff2 +0 -0
- package/storybook-static/nunito-sans-italic.woff2 +0 -0
- package/storybook-static/nunito-sans-regular.woff2 +0 -0
- package/storybook-static/project.json +0 -1
- package/storybook-static/sb-addons/a11y-12/manager-bundle.js +0 -3
- package/storybook-static/sb-addons/a11y-12/manager-bundle.js.LEGAL.txt +0 -0
- package/storybook-static/sb-addons/chromatic-com-storybook-10/manager-bundle.js +0 -331
- package/storybook-static/sb-addons/chromatic-com-storybook-10/manager-bundle.js.LEGAL.txt +0 -51
- package/storybook-static/sb-addons/controls-11/manager-bundle.js +0 -391
- package/storybook-static/sb-addons/controls-11/manager-bundle.js.LEGAL.txt +0 -0
- package/storybook-static/sb-addons/essentials-actions-3/manager-bundle.js +0 -3
- package/storybook-static/sb-addons/essentials-actions-3/manager-bundle.js.LEGAL.txt +0 -0
- package/storybook-static/sb-addons/essentials-backgrounds-5/manager-bundle.js +0 -12
- package/storybook-static/sb-addons/essentials-backgrounds-5/manager-bundle.js.LEGAL.txt +0 -0
- package/storybook-static/sb-addons/essentials-controls-2/manager-bundle.js +0 -391
- package/storybook-static/sb-addons/essentials-controls-2/manager-bundle.js.LEGAL.txt +0 -0
- package/storybook-static/sb-addons/essentials-docs-4/manager-bundle.js +0 -230
- package/storybook-static/sb-addons/essentials-docs-4/manager-bundle.js.LEGAL.txt +0 -0
- package/storybook-static/sb-addons/essentials-measure-8/manager-bundle.js +0 -3
- package/storybook-static/sb-addons/essentials-measure-8/manager-bundle.js.LEGAL.txt +0 -0
- package/storybook-static/sb-addons/essentials-outline-9/manager-bundle.js +0 -3
- package/storybook-static/sb-addons/essentials-outline-9/manager-bundle.js.LEGAL.txt +0 -0
- package/storybook-static/sb-addons/essentials-toolbars-7/manager-bundle.js +0 -3
- package/storybook-static/sb-addons/essentials-toolbars-7/manager-bundle.js.LEGAL.txt +0 -0
- package/storybook-static/sb-addons/essentials-viewport-6/manager-bundle.js +0 -3
- package/storybook-static/sb-addons/essentials-viewport-6/manager-bundle.js.LEGAL.txt +0 -0
- package/storybook-static/sb-addons/links-1/manager-bundle.js +0 -3
- package/storybook-static/sb-addons/links-1/manager-bundle.js.LEGAL.txt +0 -0
- package/storybook-static/sb-addons/storybook-core-core-server-presets-0/common-manager-bundle.js +0 -3
- package/storybook-static/sb-addons/storybook-core-core-server-presets-0/common-manager-bundle.js.LEGAL.txt +0 -0
- package/storybook-static/sb-addons/storybook-experimental-addon-test-13/manager-bundle.js +0 -211
- package/storybook-static/sb-addons/storybook-experimental-addon-test-13/manager-bundle.js.LEGAL.txt +0 -0
- package/storybook-static/sb-common-assets/favicon.svg +0 -1
- package/storybook-static/sb-common-assets/nunito-sans-bold-italic.woff2 +0 -0
- package/storybook-static/sb-common-assets/nunito-sans-bold.woff2 +0 -0
- package/storybook-static/sb-common-assets/nunito-sans-italic.woff2 +0 -0
- package/storybook-static/sb-common-assets/nunito-sans-regular.woff2 +0 -0
- package/storybook-static/sb-manager/globals-module-info.js +0 -1037
- package/storybook-static/sb-manager/globals-runtime.js +0 -40857
- package/storybook-static/sb-manager/globals.js +0 -48
- package/storybook-static/sb-manager/runtime.js +0 -11963
- package/styled-system/css/conditions.mjs +0 -36
- package/styled-system/css/css.d.ts +0 -22
- package/styled-system/css/css.mjs +0 -45
- package/styled-system/css/cva.d.ts +0 -6
- package/styled-system/css/cva.mjs +0 -87
- package/styled-system/css/cx.d.ts +0 -5
- package/styled-system/css/cx.mjs +0 -15
- package/styled-system/css/index.d.ts +0 -5
- package/styled-system/css/index.mjs +0 -4
- package/styled-system/css/sva.d.ts +0 -4
- package/styled-system/css/sva.mjs +0 -41
- package/styled-system/helpers.mjs +0 -336
- package/styled-system/jsx/aspect-ratio.d.ts +0 -10
- package/styled-system/jsx/aspect-ratio.mjs +0 -14
- package/styled-system/jsx/bleed.d.ts +0 -10
- package/styled-system/jsx/bleed.mjs +0 -14
- package/styled-system/jsx/box.d.ts +0 -10
- package/styled-system/jsx/box.mjs +0 -14
- package/styled-system/jsx/center.d.ts +0 -10
- package/styled-system/jsx/center.mjs +0 -14
- package/styled-system/jsx/circle.d.ts +0 -10
- package/styled-system/jsx/circle.mjs +0 -14
- package/styled-system/jsx/container.d.ts +0 -10
- package/styled-system/jsx/container.mjs +0 -14
- package/styled-system/jsx/cq.d.ts +0 -10
- package/styled-system/jsx/cq.mjs +0 -14
- package/styled-system/jsx/divider.d.ts +0 -10
- package/styled-system/jsx/divider.mjs +0 -14
- package/styled-system/jsx/factory-helper.mjs +0 -22
- package/styled-system/jsx/factory.d.ts +0 -3
- package/styled-system/jsx/factory.mjs +0 -80
- package/styled-system/jsx/flex.d.ts +0 -10
- package/styled-system/jsx/flex.mjs +0 -14
- package/styled-system/jsx/float.d.ts +0 -10
- package/styled-system/jsx/float.mjs +0 -14
- package/styled-system/jsx/grid-item.d.ts +0 -10
- package/styled-system/jsx/grid-item.mjs +0 -14
- package/styled-system/jsx/grid.d.ts +0 -10
- package/styled-system/jsx/grid.mjs +0 -14
- package/styled-system/jsx/hstack.d.ts +0 -10
- package/styled-system/jsx/hstack.mjs +0 -14
- package/styled-system/jsx/index.d.ts +0 -24
- package/styled-system/jsx/index.mjs +0 -22
- package/styled-system/jsx/is-valid-prop.d.ts +0 -11
- package/styled-system/jsx/is-valid-prop.mjs +0 -17
- package/styled-system/jsx/link-overlay.d.ts +0 -10
- package/styled-system/jsx/link-overlay.mjs +0 -14
- package/styled-system/jsx/spacer.d.ts +0 -10
- package/styled-system/jsx/spacer.mjs +0 -14
- package/styled-system/jsx/square.d.ts +0 -10
- package/styled-system/jsx/square.mjs +0 -14
- package/styled-system/jsx/stack.d.ts +0 -10
- package/styled-system/jsx/stack.mjs +0 -14
- package/styled-system/jsx/visually-hidden.d.ts +0 -10
- package/styled-system/jsx/visually-hidden.mjs +0 -14
- package/styled-system/jsx/vstack.d.ts +0 -10
- package/styled-system/jsx/vstack.mjs +0 -14
- package/styled-system/jsx/wrap.d.ts +0 -10
- package/styled-system/jsx/wrap.mjs +0 -14
- package/styled-system/patterns/aspect-ratio.d.ts +0 -21
- package/styled-system/patterns/aspect-ratio.mjs +0 -38
- package/styled-system/patterns/bleed.d.ts +0 -22
- package/styled-system/patterns/bleed.mjs +0 -24
- package/styled-system/patterns/box.d.ts +0 -21
- package/styled-system/patterns/box.mjs +0 -15
- package/styled-system/patterns/center.d.ts +0 -21
- package/styled-system/patterns/center.mjs +0 -21
- package/styled-system/patterns/circle.d.ts +0 -21
- package/styled-system/patterns/circle.mjs +0 -25
- package/styled-system/patterns/container.d.ts +0 -21
- package/styled-system/patterns/container.mjs +0 -21
- package/styled-system/patterns/cq.d.ts +0 -22
- package/styled-system/patterns/cq.mjs +0 -21
- package/styled-system/patterns/divider.d.ts +0 -23
- package/styled-system/patterns/divider.mjs +0 -25
- package/styled-system/patterns/flex.d.ts +0 -27
- package/styled-system/patterns/flex.mjs +0 -26
- package/styled-system/patterns/float.d.ts +0 -24
- package/styled-system/patterns/float.mjs +0 -52
- package/styled-system/patterns/grid-item.d.ts +0 -26
- package/styled-system/patterns/grid-item.mjs +0 -25
- package/styled-system/patterns/grid.d.ts +0 -25
- package/styled-system/patterns/grid.mjs +0 -27
- package/styled-system/patterns/hstack.d.ts +0 -22
- package/styled-system/patterns/hstack.mjs +0 -24
- package/styled-system/patterns/index.d.ts +0 -21
- package/styled-system/patterns/index.mjs +0 -20
- package/styled-system/patterns/link-overlay.d.ts +0 -21
- package/styled-system/patterns/link-overlay.mjs +0 -24
- package/styled-system/patterns/spacer.d.ts +0 -21
- package/styled-system/patterns/spacer.mjs +0 -21
- package/styled-system/patterns/square.d.ts +0 -21
- package/styled-system/patterns/square.mjs +0 -24
- package/styled-system/patterns/stack.d.ts +0 -24
- package/styled-system/patterns/stack.mjs +0 -24
- package/styled-system/patterns/visually-hidden.d.ts +0 -21
- package/styled-system/patterns/visually-hidden.mjs +0 -18
- package/styled-system/patterns/vstack.d.ts +0 -22
- package/styled-system/patterns/vstack.mjs +0 -24
- package/styled-system/patterns/wrap.d.ts +0 -25
- package/styled-system/patterns/wrap.mjs +0 -25
- package/styled-system/tokens/index.d.ts +0 -9
- package/styled-system/tokens/index.mjs +0 -1992
- package/styled-system/tokens/tokens.d.ts +0 -60
- package/styled-system/types/composition.d.ts +0 -164
- package/styled-system/types/conditions.d.ts +0 -274
- package/styled-system/types/csstype.d.ts +0 -21298
- package/styled-system/types/global.d.ts +0 -20
- package/styled-system/types/index.d.ts +0 -8
- package/styled-system/types/jsx.d.ts +0 -52
- package/styled-system/types/parts.d.ts +0 -8
- package/styled-system/types/pattern.d.ts +0 -78
- package/styled-system/types/prop-type.d.ts +0 -235
- package/styled-system/types/recipe.d.ts +0 -181
- package/styled-system/types/selectors.d.ts +0 -59
- package/styled-system/types/static-css.d.ts +0 -56
- package/styled-system/types/style-props.d.ts +0 -7468
- package/styled-system/types/system-types.d.ts +0 -109
- package/tsconfig.json +0 -13
- package/turbo/generators/config.cjs +0 -7
- package/turbo/generators/stories.cjs +0 -23
- package/turbo/generators/templates/stories.tsx.hbs +0 -16
- package/turbo/generators/templates/ui.tsx.hbs +0 -8
- package/turbo/generators/ui.cjs +0 -19
- package/vite.config.ts +0 -7
- package/vitest.config.ts +0 -45
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
import type { Meta, StoryObj } from "@storybook/react"
|
|
2
|
-
|
|
3
|
-
import * as Select from "../component/select/ui"
|
|
4
|
-
|
|
5
|
-
export default {
|
|
6
|
-
title: "Select",
|
|
7
|
-
tags: ["autodocs"],
|
|
8
|
-
} satisfies Meta<typeof Select>
|
|
9
|
-
|
|
10
|
-
type Story = StoryObj<typeof Select>
|
|
11
|
-
|
|
12
|
-
const arr = Array.from({ length: 100 }, (_, i) => i)
|
|
13
|
-
//부모 요소의 width 고정값 or Trigger의 width 고정값 필요
|
|
14
|
-
export const Primary: Story = {
|
|
15
|
-
render: () => {
|
|
16
|
-
return (
|
|
17
|
-
<div style={{ width: "300px" }}>
|
|
18
|
-
<Select.Root>
|
|
19
|
-
<Select.Trigger>
|
|
20
|
-
<Select.Value placeholder="Select a frui" />
|
|
21
|
-
</Select.Trigger>
|
|
22
|
-
<Select.Content>
|
|
23
|
-
<Select.Group>
|
|
24
|
-
{arr.map((num) => (
|
|
25
|
-
<Select.Item key={num} value={num.toString()}>
|
|
26
|
-
{num}
|
|
27
|
-
</Select.Item>
|
|
28
|
-
))}
|
|
29
|
-
</Select.Group>
|
|
30
|
-
</Select.Content>
|
|
31
|
-
</Select.Root>
|
|
32
|
-
</div>
|
|
33
|
-
)
|
|
34
|
-
},
|
|
35
|
-
}
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
import type { Meta, StoryObj } from "@storybook/react"
|
|
2
|
-
import { css } from "@styled-system/css"
|
|
3
|
-
|
|
4
|
-
import * as Slider from "../component/slider/ui"
|
|
5
|
-
|
|
6
|
-
export default {
|
|
7
|
-
title: "Slider",
|
|
8
|
-
tags: ["autodocs"],
|
|
9
|
-
} satisfies Meta<typeof Slider>
|
|
10
|
-
|
|
11
|
-
type Story = StoryObj<typeof Slider>
|
|
12
|
-
|
|
13
|
-
export const Primary: Story = {
|
|
14
|
-
render: () => {
|
|
15
|
-
return (
|
|
16
|
-
<Slider.Root
|
|
17
|
-
defaultValue={[50, 100]}
|
|
18
|
-
max={100}
|
|
19
|
-
step={2}
|
|
20
|
-
className={css({
|
|
21
|
-
width: "[100px]",
|
|
22
|
-
})}
|
|
23
|
-
>
|
|
24
|
-
<Slider.Track>
|
|
25
|
-
<Slider.Range />
|
|
26
|
-
</Slider.Track>
|
|
27
|
-
<Slider.Thumb />
|
|
28
|
-
</Slider.Root>
|
|
29
|
-
)
|
|
30
|
-
},
|
|
31
|
-
}
|
|
@@ -1,63 +0,0 @@
|
|
|
1
|
-
/* eslint-disable react-hooks/rules-of-hooks */
|
|
2
|
-
import { useState } from "@storybook/preview-api"
|
|
3
|
-
import type { Meta, StoryObj } from "@storybook/react"
|
|
4
|
-
|
|
5
|
-
import * as Tabs from "../component/tabs/ui"
|
|
6
|
-
|
|
7
|
-
const meta = {
|
|
8
|
-
title: "Tabs",
|
|
9
|
-
tags: ["autodocs"],
|
|
10
|
-
} satisfies Meta<typeof Tabs>
|
|
11
|
-
|
|
12
|
-
export default meta
|
|
13
|
-
type Story = StoryObj<typeof meta>
|
|
14
|
-
|
|
15
|
-
const data = [
|
|
16
|
-
{ value: "1", label: "Tab 1", content: "1번" },
|
|
17
|
-
{ value: "2", label: "Tab 2", content: "2번" },
|
|
18
|
-
{ value: "3", label: "Tab 3", content: "3번" },
|
|
19
|
-
]
|
|
20
|
-
|
|
21
|
-
export const Primary: Story = {
|
|
22
|
-
render: (args) => {
|
|
23
|
-
return (
|
|
24
|
-
<Tabs.Root {...args}>
|
|
25
|
-
<Tabs.List>
|
|
26
|
-
{data.map((item) => (
|
|
27
|
-
<Tabs.Trigger key={item.value} value={item.value}>
|
|
28
|
-
{item.label}
|
|
29
|
-
</Tabs.Trigger>
|
|
30
|
-
))}
|
|
31
|
-
</Tabs.List>
|
|
32
|
-
{data.map((item) => (
|
|
33
|
-
<Tabs.Content key={item.value} value={item.value}>
|
|
34
|
-
{item.content}
|
|
35
|
-
</Tabs.Content>
|
|
36
|
-
))}
|
|
37
|
-
</Tabs.Root>
|
|
38
|
-
)
|
|
39
|
-
},
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
// 제어 컴포넌트 예시
|
|
43
|
-
export const Controlled: Story = {
|
|
44
|
-
render: (args) => {
|
|
45
|
-
const [value, setValue] = useState("2")
|
|
46
|
-
return (
|
|
47
|
-
<Tabs.Root value={value} onValueChange={setValue} {...args}>
|
|
48
|
-
<Tabs.List>
|
|
49
|
-
{data.map((item) => (
|
|
50
|
-
<Tabs.Trigger key={item.value} value={item.value}>
|
|
51
|
-
{item.label}
|
|
52
|
-
</Tabs.Trigger>
|
|
53
|
-
))}
|
|
54
|
-
</Tabs.List>
|
|
55
|
-
{data.map((item) => (
|
|
56
|
-
<Tabs.Content key={item.value} value={item.value}>
|
|
57
|
-
{item.content}
|
|
58
|
-
</Tabs.Content>
|
|
59
|
-
))}
|
|
60
|
-
</Tabs.Root>
|
|
61
|
-
)
|
|
62
|
-
},
|
|
63
|
-
}
|
|
@@ -1,66 +0,0 @@
|
|
|
1
|
-
import { fireEvent, render, screen } from "@testing-library/react"
|
|
2
|
-
import { useState } from "react"
|
|
3
|
-
import { describe, expect, it, vi } from "vitest"
|
|
4
|
-
|
|
5
|
-
import * as Accordion from "../component/accordion/ui"
|
|
6
|
-
|
|
7
|
-
// 예시 컴포넌트
|
|
8
|
-
const AccordionExample = () => {
|
|
9
|
-
const [selectedItems, setSelectedItems] = useState<string[]>([])
|
|
10
|
-
|
|
11
|
-
return (
|
|
12
|
-
<Accordion.Root
|
|
13
|
-
type="multiple"
|
|
14
|
-
value={selectedItems}
|
|
15
|
-
onValueChange={(items) => setSelectedItems(items)}
|
|
16
|
-
>
|
|
17
|
-
<Accordion.Item value="1">
|
|
18
|
-
<Accordion.Header>
|
|
19
|
-
<Accordion.Trigger data-testid="1">1번</Accordion.Trigger>
|
|
20
|
-
</Accordion.Header>
|
|
21
|
-
<Accordion.Content>내용1</Accordion.Content>
|
|
22
|
-
</Accordion.Item>
|
|
23
|
-
</Accordion.Root>
|
|
24
|
-
)
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
// 테스트
|
|
28
|
-
describe("Accordion with useState", () => {
|
|
29
|
-
it("상태 변경 테스트", async () => {
|
|
30
|
-
render(<AccordionExample />)
|
|
31
|
-
|
|
32
|
-
// 초기 상태 확인
|
|
33
|
-
expect(screen.queryByText("내용1")).toBeDefined()
|
|
34
|
-
|
|
35
|
-
// 트리거 클릭
|
|
36
|
-
const trigger = screen.getByTestId("1")
|
|
37
|
-
await fireEvent.click(trigger)
|
|
38
|
-
|
|
39
|
-
// 상태 변경 후 내용 표시 확인
|
|
40
|
-
expect(screen.getByText("내용1")).toBeDefined()
|
|
41
|
-
})
|
|
42
|
-
|
|
43
|
-
// 외부에서 상태를 제어하는 경우 테스트
|
|
44
|
-
it("외부 상태 제어 테스트", () => {
|
|
45
|
-
const onValueChange = vi.fn()
|
|
46
|
-
|
|
47
|
-
render(
|
|
48
|
-
<Accordion.Root
|
|
49
|
-
type="multiple"
|
|
50
|
-
value={["1"]}
|
|
51
|
-
onValueChange={onValueChange}
|
|
52
|
-
>
|
|
53
|
-
<Accordion.Item value="1">
|
|
54
|
-
<Accordion.Trigger data-testid="trigger-1">1번</Accordion.Trigger>
|
|
55
|
-
<Accordion.Content>내용1</Accordion.Content>
|
|
56
|
-
</Accordion.Item>
|
|
57
|
-
</Accordion.Root>,
|
|
58
|
-
)
|
|
59
|
-
//Fix: getByText로 찾을 시 multiple error 발생
|
|
60
|
-
const trigger = screen.getByTestId("trigger-1")
|
|
61
|
-
|
|
62
|
-
fireEvent.click(trigger)
|
|
63
|
-
|
|
64
|
-
expect(onValueChange).toHaveBeenCalledWith([])
|
|
65
|
-
})
|
|
66
|
-
})
|
package/src/test/tabs.test.tsx
DELETED
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
import { composeStories } from "@storybook/react"
|
|
2
|
-
import { screen } from "@testing-library/react"
|
|
3
|
-
import userEvent from "@testing-library/user-event"
|
|
4
|
-
import { expect, test } from "vitest"
|
|
5
|
-
|
|
6
|
-
import * as stories from "../stories/tabs.stories"
|
|
7
|
-
|
|
8
|
-
const { Primary } = composeStories(stories)
|
|
9
|
-
|
|
10
|
-
test("초기 렌더링 시 defaultValue가 존재하면 해당되는 탭이 선택됩니다", async () => {
|
|
11
|
-
await Primary.run({ args: { ...Primary.args } })
|
|
12
|
-
expect(screen.getByText("Tab 1")).toBeDefined()
|
|
13
|
-
})
|
|
14
|
-
|
|
15
|
-
test("클릭 시 해당 tab에 대한 content가 노출됩니다", async () => {
|
|
16
|
-
const user = userEvent.setup()
|
|
17
|
-
await Primary.run({ args: { ...Primary.args } })
|
|
18
|
-
await user.click(screen.getByText("Tab 2"))
|
|
19
|
-
expect(screen.getByText("2번")).toBeDefined()
|
|
20
|
-
})
|
|
21
|
-
|
|
22
|
-
test("arrow key를 통해 탭을 조작할 수 있습니다", async () => {
|
|
23
|
-
const user = userEvent.setup()
|
|
24
|
-
await Primary.run()
|
|
25
|
-
|
|
26
|
-
await user.click(screen.getByText("Tab 2"))
|
|
27
|
-
await user.keyboard("{ArrowLeft}")
|
|
28
|
-
|
|
29
|
-
expect(document.activeElement).toBe(screen.getByText("Tab 1"))
|
|
30
|
-
})
|
package/src/types/index.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export type Assign<T, U> = Omit<T, keyof U> & U
|
|
@@ -1,108 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
createContext,
|
|
3
|
-
type ElementType,
|
|
4
|
-
forwardRef,
|
|
5
|
-
type ForwardRefExoticComponent,
|
|
6
|
-
type PropsWithoutRef,
|
|
7
|
-
type RefAttributes,
|
|
8
|
-
useContext,
|
|
9
|
-
} from "react"
|
|
10
|
-
import { cx } from "styled-system/css"
|
|
11
|
-
import { isCssProperty, styled, type StyledComponent } from "styled-system/jsx"
|
|
12
|
-
|
|
13
|
-
type Props = Record<string, unknown>
|
|
14
|
-
type Recipe = {
|
|
15
|
-
(props?: Props): Props
|
|
16
|
-
splitVariantProps: (props: Props) => [Props, Props]
|
|
17
|
-
}
|
|
18
|
-
type Slot<R extends Recipe> = keyof ReturnType<R>
|
|
19
|
-
type Options = { forwardProps?: string[] }
|
|
20
|
-
|
|
21
|
-
const shouldForwardProp = (
|
|
22
|
-
prop: string,
|
|
23
|
-
variantKeys: string[],
|
|
24
|
-
options: Options = {},
|
|
25
|
-
) =>
|
|
26
|
-
options.forwardProps?.includes(prop) ||
|
|
27
|
-
(!variantKeys.includes(prop) && !isCssProperty(prop))
|
|
28
|
-
|
|
29
|
-
export const createStyleContext = <R extends Recipe>(recipe: R) => {
|
|
30
|
-
const StyleContext = createContext<Record<Slot<R>, string> | null>(null)
|
|
31
|
-
|
|
32
|
-
const withRootProvider = (Component: ElementType) => {
|
|
33
|
-
const StyledComponent = (props: Props) => {
|
|
34
|
-
const [variantProps, otherProps] = recipe.splitVariantProps(props)
|
|
35
|
-
const slotStyles = recipe(variantProps) as Record<Slot<R>, string>
|
|
36
|
-
|
|
37
|
-
return (
|
|
38
|
-
<StyleContext.Provider value={slotStyles}>
|
|
39
|
-
<Component {...otherProps} />
|
|
40
|
-
</StyleContext.Provider>
|
|
41
|
-
)
|
|
42
|
-
}
|
|
43
|
-
return StyledComponent
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
const withProvider = <T, P extends { className?: string | undefined }>(
|
|
47
|
-
Component: ElementType,
|
|
48
|
-
slot: Slot<R>,
|
|
49
|
-
options?: Options,
|
|
50
|
-
): ForwardRefExoticComponent<PropsWithoutRef<P> & RefAttributes<T>> => {
|
|
51
|
-
const StyledComponent = styled(
|
|
52
|
-
Component,
|
|
53
|
-
{},
|
|
54
|
-
{
|
|
55
|
-
shouldForwardProp: (prop, variantKeys) =>
|
|
56
|
-
shouldForwardProp(prop, variantKeys, options),
|
|
57
|
-
},
|
|
58
|
-
) as StyledComponent<ElementType>
|
|
59
|
-
const StyledSlotProvider = forwardRef<T, P>((props, ref) => {
|
|
60
|
-
const [variantProps, otherProps] = recipe.splitVariantProps(props)
|
|
61
|
-
const slotStyles = recipe(variantProps) as Record<Slot<R>, string>
|
|
62
|
-
|
|
63
|
-
return (
|
|
64
|
-
<StyleContext.Provider value={slotStyles}>
|
|
65
|
-
<StyledComponent
|
|
66
|
-
{...otherProps}
|
|
67
|
-
ref={ref}
|
|
68
|
-
className={cx(slotStyles?.[slot], props.className)}
|
|
69
|
-
/>
|
|
70
|
-
</StyleContext.Provider>
|
|
71
|
-
)
|
|
72
|
-
})
|
|
73
|
-
// @ts-expect-error '''
|
|
74
|
-
StyledSlotProvider.displayName = Component.displayName || Component.name
|
|
75
|
-
|
|
76
|
-
return StyledSlotProvider
|
|
77
|
-
}
|
|
78
|
-
|
|
79
|
-
const withContext = <T, P extends { className?: string | undefined }>(
|
|
80
|
-
Component: ElementType,
|
|
81
|
-
slot: Slot<R>,
|
|
82
|
-
): ForwardRefExoticComponent<PropsWithoutRef<P> & RefAttributes<T>> => {
|
|
83
|
-
const StyledComponent = styled(Component)
|
|
84
|
-
const StyledSlotComponent = forwardRef<T, P>((props, ref) => {
|
|
85
|
-
const slotStyles = useContext(StyleContext)
|
|
86
|
-
return (
|
|
87
|
-
<StyledComponent
|
|
88
|
-
{...props}
|
|
89
|
-
ref={ref}
|
|
90
|
-
className={cx(slotStyles?.[slot], props.className)}
|
|
91
|
-
/>
|
|
92
|
-
)
|
|
93
|
-
})
|
|
94
|
-
|
|
95
|
-
StyledSlotComponent.displayName =
|
|
96
|
-
typeof Component === "function"
|
|
97
|
-
? Component.displayName || Component.name
|
|
98
|
-
: String(Component)
|
|
99
|
-
|
|
100
|
-
return StyledSlotComponent
|
|
101
|
-
}
|
|
102
|
-
|
|
103
|
-
return {
|
|
104
|
-
withRootProvider,
|
|
105
|
-
withProvider,
|
|
106
|
-
withContext,
|
|
107
|
-
}
|
|
108
|
-
}
|
package/src/utils/defineSafe.ts
DELETED
|
@@ -1,46 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
RecipeConfig,
|
|
3
|
-
SlotRecipeConfig,
|
|
4
|
-
SystemStyleObject,
|
|
5
|
-
TextStyles,
|
|
6
|
-
} from "@pandacss/dev"
|
|
7
|
-
import {
|
|
8
|
-
RecipeConfig as CodegenRecipeConfig,
|
|
9
|
-
RecipeVariantRecord,
|
|
10
|
-
SlotRecipeConfig as CodegenSlotRecipeConfig,
|
|
11
|
-
SlotRecipeVariantRecord,
|
|
12
|
-
SystemStyleObject as CodegenSystemStyleObject,
|
|
13
|
-
} from "@styled-system/types"
|
|
14
|
-
import { TextStyle } from "@styled-system/types/composition"
|
|
15
|
-
|
|
16
|
-
function defineSafeRecipe<T extends RecipeVariantRecord>(
|
|
17
|
-
config: CodegenRecipeConfig<T>,
|
|
18
|
-
): RecipeConfig {
|
|
19
|
-
return config as RecipeConfig
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
function defineSafeSlotRecipe<
|
|
23
|
-
S extends string,
|
|
24
|
-
T extends SlotRecipeVariantRecord<S>,
|
|
25
|
-
>(config: CodegenSlotRecipeConfig<S, T>): SlotRecipeConfig {
|
|
26
|
-
return config as SlotRecipeConfig
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
interface Token<T> {
|
|
30
|
-
value: T
|
|
31
|
-
description?: string
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
interface Recursive<T> {
|
|
35
|
-
// @ts-expect-error this makes the textStyles typings happy
|
|
36
|
-
value?: T
|
|
37
|
-
[key: string]: Recursive<T> | T
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
export const defineSafe = {
|
|
41
|
-
recipe: defineSafeRecipe,
|
|
42
|
-
slotRecipe: defineSafeSlotRecipe,
|
|
43
|
-
textStyle: (definition: TextStyle) => definition,
|
|
44
|
-
styles: (styles: CodegenSystemStyleObject) => styles as SystemStyleObject,
|
|
45
|
-
textStyles: (defs: Recursive<Token<TextStyle>>) => defs as TextStyles,
|
|
46
|
-
}
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
export type ObjectKeys<T extends Record<PropertyKey, unknown>> =
|
|
2
|
-
`${Exclude<keyof T, symbol>}`
|
|
3
|
-
|
|
4
|
-
export function objectKeys<T extends Record<PropertyKey, unknown>>(
|
|
5
|
-
obj: T,
|
|
6
|
-
): Array<ObjectKeys<T>> {
|
|
7
|
-
return Object.keys(obj) as Array<ObjectKeys<T>>
|
|
8
|
-
}
|
|
9
|
-
|
|
10
|
-
export function objectValues<T extends Record<PropertyKey, unknown>>(
|
|
11
|
-
obj: T,
|
|
12
|
-
): Array<T[ObjectKeys<T>]> {
|
|
13
|
-
return Object.values(obj) as Array<T[ObjectKeys<T>]>
|
|
14
|
-
}
|
|
15
|
-
|
|
16
|
-
export function objectEntries<T extends Record<PropertyKey, unknown>>(
|
|
17
|
-
obj: T,
|
|
18
|
-
): Array<[ObjectKeys<T>, T[ObjectKeys<T>]]> {
|
|
19
|
-
return Object.entries(obj) as Array<[ObjectKeys<T>, T[ObjectKeys<T>]]>
|
|
20
|
-
}
|
package/src/vite-env.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
/// <reference types="vite/client" />
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{d as ce,T as M,q as J,g as he,n as fe,Y as de,M as ge,_ as be,a as H}from"./DocsRenderer-CFRXHY34-Crd9Mepd.js";import{r as p,R as m}from"./index-ClcD9ViR.js";import"./iframe-LPPPXabV.js";import"./jsx-runtime-BYYWji4R.js";import"./index-BrlJLjep.js";import"./_commonjsHelpers-Cpj98o6Y.js";import"./index-Cu4lwwaE.js";import"./index-CBft-ReK.js";import"./index-DrFu-skq.js";import"./react-18-BPs3tMGP.js";var me=H({"../../node_modules/color-name/index.js"(n,o){o.exports={aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],grey:[128,128,128],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],rebeccapurple:[102,51,153],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]}}}),Q=H({"../../node_modules/color-convert/conversions.js"(n,o){var c=me(),h={};for(let e of Object.keys(c))h[c[e]]=e;var u={rgb:{channels:3,labels:"rgb"},hsl:{channels:3,labels:"hsl"},hsv:{channels:3,labels:"hsv"},hwb:{channels:3,labels:"hwb"},cmyk:{channels:4,labels:"cmyk"},xyz:{channels:3,labels:"xyz"},lab:{channels:3,labels:"lab"},lch:{channels:3,labels:"lch"},hex:{channels:1,labels:["hex"]},keyword:{channels:1,labels:["keyword"]},ansi16:{channels:1,labels:["ansi16"]},ansi256:{channels:1,labels:["ansi256"]},hcg:{channels:3,labels:["h","c","g"]},apple:{channels:3,labels:["r16","g16","b16"]},gray:{channels:1,labels:["gray"]}};o.exports=u;for(let e of Object.keys(u)){if(!("channels"in u[e]))throw new Error("missing channels property: "+e);if(!("labels"in u[e]))throw new Error("missing channel labels property: "+e);if(u[e].labels.length!==u[e].channels)throw new Error("channel and label counts mismatch: "+e);let{channels:t,labels:r}=u[e];delete u[e].channels,delete u[e].labels,Object.defineProperty(u[e],"channels",{value:t}),Object.defineProperty(u[e],"labels",{value:r})}u.rgb.hsl=function(e){let t=e[0]/255,r=e[1]/255,a=e[2]/255,l=Math.min(t,r,a),i=Math.max(t,r,a),s=i-l,f,g;i===l?f=0:t===i?f=(r-a)/s:r===i?f=2+(a-t)/s:a===i&&(f=4+(t-r)/s),f=Math.min(f*60,360),f<0&&(f+=360);let b=(l+i)/2;return i===l?g=0:b<=.5?g=s/(i+l):g=s/(2-i-l),[f,g*100,b*100]},u.rgb.hsv=function(e){let t,r,a,l,i,s=e[0]/255,f=e[1]/255,g=e[2]/255,b=Math.max(s,f,g),y=b-Math.min(s,f,g),v=function(w){return(b-w)/6/y+1/2};return y===0?(l=0,i=0):(i=y/b,t=v(s),r=v(f),a=v(g),s===b?l=a-r:f===b?l=1/3+t-a:g===b&&(l=2/3+r-t),l<0?l+=1:l>1&&(l-=1)),[l*360,i*100,b*100]},u.rgb.hwb=function(e){let t=e[0],r=e[1],a=e[2],l=u.rgb.hsl(e)[0],i=1/255*Math.min(t,Math.min(r,a));return a=1-1/255*Math.max(t,Math.max(r,a)),[l,i*100,a*100]},u.rgb.cmyk=function(e){let t=e[0]/255,r=e[1]/255,a=e[2]/255,l=Math.min(1-t,1-r,1-a),i=(1-t-l)/(1-l)||0,s=(1-r-l)/(1-l)||0,f=(1-a-l)/(1-l)||0;return[i*100,s*100,f*100,l*100]};function d(e,t){return(e[0]-t[0])**2+(e[1]-t[1])**2+(e[2]-t[2])**2}u.rgb.keyword=function(e){let t=h[e];if(t)return t;let r=1/0,a;for(let l of Object.keys(c)){let i=c[l],s=d(e,i);s<r&&(r=s,a=l)}return a},u.keyword.rgb=function(e){return c[e]},u.rgb.xyz=function(e){let t=e[0]/255,r=e[1]/255,a=e[2]/255;t=t>.04045?((t+.055)/1.055)**2.4:t/12.92,r=r>.04045?((r+.055)/1.055)**2.4:r/12.92,a=a>.04045?((a+.055)/1.055)**2.4:a/12.92;let l=t*.4124+r*.3576+a*.1805,i=t*.2126+r*.7152+a*.0722,s=t*.0193+r*.1192+a*.9505;return[l*100,i*100,s*100]},u.rgb.lab=function(e){let t=u.rgb.xyz(e),r=t[0],a=t[1],l=t[2];r/=95.047,a/=100,l/=108.883,r=r>.008856?r**(1/3):7.787*r+16/116,a=a>.008856?a**(1/3):7.787*a+16/116,l=l>.008856?l**(1/3):7.787*l+16/116;let i=116*a-16,s=500*(r-a),f=200*(a-l);return[i,s,f]},u.hsl.rgb=function(e){let t=e[0]/360,r=e[1]/100,a=e[2]/100,l,i,s;if(r===0)return s=a*255,[s,s,s];a<.5?l=a*(1+r):l=a+r-a*r;let f=2*a-l,g=[0,0,0];for(let b=0;b<3;b++)i=t+1/3*-(b-1),i<0&&i++,i>1&&i--,6*i<1?s=f+(l-f)*6*i:2*i<1?s=l:3*i<2?s=f+(l-f)*(2/3-i)*6:s=f,g[b]=s*255;return g},u.hsl.hsv=function(e){let t=e[0],r=e[1]/100,a=e[2]/100,l=r,i=Math.max(a,.01);a*=2,r*=a<=1?a:2-a,l*=i<=1?i:2-i;let s=(a+r)/2,f=a===0?2*l/(i+l):2*r/(a+r);return[t,f*100,s*100]},u.hsv.rgb=function(e){let t=e[0]/60,r=e[1]/100,a=e[2]/100,l=Math.floor(t)%6,i=t-Math.floor(t),s=255*a*(1-r),f=255*a*(1-r*i),g=255*a*(1-r*(1-i));switch(a*=255,l){case 0:return[a,g,s];case 1:return[f,a,s];case 2:return[s,a,g];case 3:return[s,f,a];case 4:return[g,s,a];case 5:return[a,s,f]}},u.hsv.hsl=function(e){let t=e[0],r=e[1]/100,a=e[2]/100,l=Math.max(a,.01),i,s;s=(2-r)*a;let f=(2-r)*l;return i=r*l,i/=f<=1?f:2-f,i=i||0,s/=2,[t,i*100,s*100]},u.hwb.rgb=function(e){let t=e[0]/360,r=e[1]/100,a=e[2]/100,l=r+a,i;l>1&&(r/=l,a/=l);let s=Math.floor(6*t),f=1-a;i=6*t-s,s&1&&(i=1-i);let g=r+i*(f-r),b,y,v;switch(s){default:case 6:case 0:b=f,y=g,v=r;break;case 1:b=g,y=f,v=r;break;case 2:b=r,y=f,v=g;break;case 3:b=r,y=g,v=f;break;case 4:b=g,y=r,v=f;break;case 5:b=f,y=r,v=g;break}return[b*255,y*255,v*255]},u.cmyk.rgb=function(e){let t=e[0]/100,r=e[1]/100,a=e[2]/100,l=e[3]/100,i=1-Math.min(1,t*(1-l)+l),s=1-Math.min(1,r*(1-l)+l),f=1-Math.min(1,a*(1-l)+l);return[i*255,s*255,f*255]},u.xyz.rgb=function(e){let t=e[0]/100,r=e[1]/100,a=e[2]/100,l,i,s;return l=t*3.2406+r*-1.5372+a*-.4986,i=t*-.9689+r*1.8758+a*.0415,s=t*.0557+r*-.204+a*1.057,l=l>.0031308?1.055*l**(1/2.4)-.055:l*12.92,i=i>.0031308?1.055*i**(1/2.4)-.055:i*12.92,s=s>.0031308?1.055*s**(1/2.4)-.055:s*12.92,l=Math.min(Math.max(0,l),1),i=Math.min(Math.max(0,i),1),s=Math.min(Math.max(0,s),1),[l*255,i*255,s*255]},u.xyz.lab=function(e){let t=e[0],r=e[1],a=e[2];t/=95.047,r/=100,a/=108.883,t=t>.008856?t**(1/3):7.787*t+16/116,r=r>.008856?r**(1/3):7.787*r+16/116,a=a>.008856?a**(1/3):7.787*a+16/116;let l=116*r-16,i=500*(t-r),s=200*(r-a);return[l,i,s]},u.lab.xyz=function(e){let t=e[0],r=e[1],a=e[2],l,i,s;i=(t+16)/116,l=r/500+i,s=i-a/200;let f=i**3,g=l**3,b=s**3;return i=f>.008856?f:(i-16/116)/7.787,l=g>.008856?g:(l-16/116)/7.787,s=b>.008856?b:(s-16/116)/7.787,l*=95.047,i*=100,s*=108.883,[l,i,s]},u.lab.lch=function(e){let t=e[0],r=e[1],a=e[2],l;l=Math.atan2(a,r)*360/2/Math.PI,l<0&&(l+=360);let i=Math.sqrt(r*r+a*a);return[t,i,l]},u.lch.lab=function(e){let t=e[0],r=e[1],a=e[2]/360*2*Math.PI,l=r*Math.cos(a),i=r*Math.sin(a);return[t,l,i]},u.rgb.ansi16=function(e,t=null){let[r,a,l]=e,i=t===null?u.rgb.hsv(e)[2]:t;if(i=Math.round(i/50),i===0)return 30;let s=30+(Math.round(l/255)<<2|Math.round(a/255)<<1|Math.round(r/255));return i===2&&(s+=60),s},u.hsv.ansi16=function(e){return u.rgb.ansi16(u.hsv.rgb(e),e[2])},u.rgb.ansi256=function(e){let t=e[0],r=e[1],a=e[2];return t===r&&r===a?t<8?16:t>248?231:Math.round((t-8)/247*24)+232:16+36*Math.round(t/255*5)+6*Math.round(r/255*5)+Math.round(a/255*5)},u.ansi16.rgb=function(e){let t=e%10;if(t===0||t===7)return e>50&&(t+=3.5),t=t/10.5*255,[t,t,t];let r=(~~(e>50)+1)*.5,a=(t&1)*r*255,l=(t>>1&1)*r*255,i=(t>>2&1)*r*255;return[a,l,i]},u.ansi256.rgb=function(e){if(e>=232){let i=(e-232)*10+8;return[i,i,i]}e-=16;let t,r=Math.floor(e/36)/5*255,a=Math.floor((t=e%36)/6)/5*255,l=t%6/5*255;return[r,a,l]},u.rgb.hex=function(e){let t=(((Math.round(e[0])&255)<<16)+((Math.round(e[1])&255)<<8)+(Math.round(e[2])&255)).toString(16).toUpperCase();return"000000".substring(t.length)+t},u.hex.rgb=function(e){let t=e.toString(16).match(/[a-f0-9]{6}|[a-f0-9]{3}/i);if(!t)return[0,0,0];let r=t[0];t[0].length===3&&(r=r.split("").map(f=>f+f).join(""));let a=parseInt(r,16),l=a>>16&255,i=a>>8&255,s=a&255;return[l,i,s]},u.rgb.hcg=function(e){let t=e[0]/255,r=e[1]/255,a=e[2]/255,l=Math.max(Math.max(t,r),a),i=Math.min(Math.min(t,r),a),s=l-i,f,g;return s<1?f=i/(1-s):f=0,s<=0?g=0:l===t?g=(r-a)/s%6:l===r?g=2+(a-t)/s:g=4+(t-r)/s,g/=6,g%=1,[g*360,s*100,f*100]},u.hsl.hcg=function(e){let t=e[1]/100,r=e[2]/100,a=r<.5?2*t*r:2*t*(1-r),l=0;return a<1&&(l=(r-.5*a)/(1-a)),[e[0],a*100,l*100]},u.hsv.hcg=function(e){let t=e[1]/100,r=e[2]/100,a=t*r,l=0;return a<1&&(l=(r-a)/(1-a)),[e[0],a*100,l*100]},u.hcg.rgb=function(e){let t=e[0]/360,r=e[1]/100,a=e[2]/100;if(r===0)return[a*255,a*255,a*255];let l=[0,0,0],i=t%1*6,s=i%1,f=1-s,g=0;switch(Math.floor(i)){case 0:l[0]=1,l[1]=s,l[2]=0;break;case 1:l[0]=f,l[1]=1,l[2]=0;break;case 2:l[0]=0,l[1]=1,l[2]=s;break;case 3:l[0]=0,l[1]=f,l[2]=1;break;case 4:l[0]=s,l[1]=0,l[2]=1;break;default:l[0]=1,l[1]=0,l[2]=f}return g=(1-r)*a,[(r*l[0]+g)*255,(r*l[1]+g)*255,(r*l[2]+g)*255]},u.hcg.hsv=function(e){let t=e[1]/100,r=e[2]/100,a=t+r*(1-t),l=0;return a>0&&(l=t/a),[e[0],l*100,a*100]},u.hcg.hsl=function(e){let t=e[1]/100,r=e[2]/100*(1-t)+.5*t,a=0;return r>0&&r<.5?a=t/(2*r):r>=.5&&r<1&&(a=t/(2*(1-r))),[e[0],a*100,r*100]},u.hcg.hwb=function(e){let t=e[1]/100,r=e[2]/100,a=t+r*(1-t);return[e[0],(a-t)*100,(1-a)*100]},u.hwb.hcg=function(e){let t=e[1]/100,r=1-e[2]/100,a=r-t,l=0;return a<1&&(l=(r-a)/(1-a)),[e[0],a*100,l*100]},u.apple.rgb=function(e){return[e[0]/65535*255,e[1]/65535*255,e[2]/65535*255]},u.rgb.apple=function(e){return[e[0]/255*65535,e[1]/255*65535,e[2]/255*65535]},u.gray.rgb=function(e){return[e[0]/100*255,e[0]/100*255,e[0]/100*255]},u.gray.hsl=function(e){return[0,0,e[0]]},u.gray.hsv=u.gray.hsl,u.gray.hwb=function(e){return[0,100,e[0]]},u.gray.cmyk=function(e){return[0,0,0,e[0]]},u.gray.lab=function(e){return[e[0],0,0]},u.gray.hex=function(e){let t=Math.round(e[0]/100*255)&255,r=((t<<16)+(t<<8)+t).toString(16).toUpperCase();return"000000".substring(r.length)+r},u.rgb.gray=function(e){return[(e[0]+e[1]+e[2])/3/255*100]}}}),ve=H({"../../node_modules/color-convert/route.js"(n,o){var c=Q();function h(){let t={},r=Object.keys(c);for(let a=r.length,l=0;l<a;l++)t[r[l]]={distance:-1,parent:null};return t}function u(t){let r=h(),a=[t];for(r[t].distance=0;a.length;){let l=a.pop(),i=Object.keys(c[l]);for(let s=i.length,f=0;f<s;f++){let g=i[f],b=r[g];b.distance===-1&&(b.distance=r[l].distance+1,b.parent=l,a.unshift(g))}}return r}function d(t,r){return function(a){return r(t(a))}}function e(t,r){let a=[r[t].parent,t],l=c[r[t].parent][t],i=r[t].parent;for(;r[i].parent;)a.unshift(r[i].parent),l=d(c[r[i].parent][i],l),i=r[i].parent;return l.conversion=a,l}o.exports=function(t){let r=u(t),a={},l=Object.keys(r);for(let i=l.length,s=0;s<i;s++){let f=l[s];r[f].parent!==null&&(a[f]=e(f,r))}return a}}}),pe=H({"../../node_modules/color-convert/index.js"(n,o){var c=Q(),h=ve(),u={},d=Object.keys(c);function e(r){let a=function(...l){let i=l[0];return i==null?i:(i.length>1&&(l=i),r(l))};return"conversion"in r&&(a.conversion=r.conversion),a}function t(r){let a=function(...l){let i=l[0];if(i==null)return i;i.length>1&&(l=i);let s=r(l);if(typeof s=="object")for(let f=s.length,g=0;g<f;g++)s[g]=Math.round(s[g]);return s};return"conversion"in r&&(a.conversion=r.conversion),a}d.forEach(r=>{u[r]={},Object.defineProperty(u[r],"channels",{value:c[r].channels}),Object.defineProperty(u[r],"labels",{value:c[r].labels});let a=h(r);Object.keys(a).forEach(l=>{let i=a[l];u[r][l]=t(i),u[r][l].raw=e(i)})}),o.exports=u}}),_=be(pe());function C(){return(C=Object.assign||function(n){for(var o=1;o<arguments.length;o++){var c=arguments[o];for(var h in c)Object.prototype.hasOwnProperty.call(c,h)&&(n[h]=c[h])}return n}).apply(this,arguments)}function D(n,o){if(n==null)return{};var c,h,u={},d=Object.keys(n);for(h=0;h<d.length;h++)o.indexOf(c=d[h])>=0||(u[c]=n[c]);return u}function L(n){var o=p.useRef(n),c=p.useRef(function(h){o.current&&o.current(h)});return o.current=n,c.current}var O=function(n,o,c){return o===void 0&&(o=0),c===void 0&&(c=1),n>c?c:n<o?o:n},S=function(n){return"touches"in n},B=function(n){return n&&n.ownerDocument.defaultView||self},F=function(n,o,c){var h=n.getBoundingClientRect(),u=S(o)?function(d,e){for(var t=0;t<d.length;t++)if(d[t].identifier===e)return d[t];return d[0]}(o.touches,c):o;return{left:O((u.pageX-(h.left+B(n).pageXOffset))/h.width),top:O((u.pageY-(h.top+B(n).pageYOffset))/h.height)}},W=function(n){!S(n)&&n.preventDefault()},V=m.memo(function(n){var o=n.onMove,c=n.onKey,h=D(n,["onMove","onKey"]),u=p.useRef(null),d=L(o),e=L(c),t=p.useRef(null),r=p.useRef(!1),a=p.useMemo(function(){var f=function(y){W(y),(S(y)?y.touches.length>0:y.buttons>0)&&u.current?d(F(u.current,y,t.current)):b(!1)},g=function(){return b(!1)};function b(y){var v=r.current,w=B(u.current),E=y?w.addEventListener:w.removeEventListener;E(v?"touchmove":"mousemove",f),E(v?"touchend":"mouseup",g)}return[function(y){var v=y.nativeEvent,w=u.current;if(w&&(W(v),!function(k,P){return P&&!S(k)}(v,r.current)&&w)){if(S(v)){r.current=!0;var E=v.changedTouches||[];E.length&&(t.current=E[0].identifier)}w.focus(),d(F(w,v,t.current)),b(!0)}},function(y){var v=y.which||y.keyCode;v<37||v>40||(y.preventDefault(),e({left:v===39?.05:v===37?-.05:0,top:v===40?.05:v===38?-.05:0}))},b]},[e,d]),l=a[0],i=a[1],s=a[2];return p.useEffect(function(){return s},[s]),m.createElement("div",C({},h,{onTouchStart:l,onMouseDown:l,className:"react-colorful__interactive",ref:u,onKeyDown:i,tabIndex:0,role:"slider"}))}),N=function(n){return n.filter(Boolean).join(" ")},G=function(n){var o=n.color,c=n.left,h=n.top,u=h===void 0?.5:h,d=N(["react-colorful__pointer",n.className]);return m.createElement("div",{className:d,style:{top:100*u+"%",left:100*c+"%"}},m.createElement("div",{className:"react-colorful__pointer-fill",style:{backgroundColor:o}}))},x=function(n,o,c){return o===void 0&&(o=0),c===void 0&&(c=Math.pow(10,o)),Math.round(c*n)/c},ye={grad:.9,turn:360,rad:360/(2*Math.PI)},xe=function(n){return re(X(n))},X=function(n){return n[0]==="#"&&(n=n.substring(1)),n.length<6?{r:parseInt(n[0]+n[0],16),g:parseInt(n[1]+n[1],16),b:parseInt(n[2]+n[2],16),a:n.length===4?x(parseInt(n[3]+n[3],16)/255,2):1}:{r:parseInt(n.substring(0,2),16),g:parseInt(n.substring(2,4),16),b:parseInt(n.substring(4,6),16),a:n.length===8?x(parseInt(n.substring(6,8),16)/255,2):1}},we=function(n,o){return o===void 0&&(o="deg"),Number(n)*(ye[o]||1)},ke=function(n){var o=/hsla?\(?\s*(-?\d*\.?\d+)(deg|rad|grad|turn)?[,\s]+(-?\d*\.?\d+)%?[,\s]+(-?\d*\.?\d+)%?,?\s*[/\s]*(-?\d*\.?\d+)?(%)?\s*\)?/i.exec(n);return o?_e({h:we(o[1],o[2]),s:Number(o[3]),l:Number(o[4]),a:o[5]===void 0?1:Number(o[5])/(o[6]?100:1)}):{h:0,s:0,v:0,a:1}},_e=function(n){var o=n.s,c=n.l;return{h:n.h,s:(o*=(c<50?c:100-c)/100)>0?2*o/(c+o)*100:0,v:c+o,a:n.a}},Ee=function(n){return Ce(ee(n))},Z=function(n){var o=n.s,c=n.v,h=n.a,u=(200-o)*c/100;return{h:x(n.h),s:x(u>0&&u<200?o*c/100/(u<=100?u:200-u)*100:0),l:x(u/2),a:x(h,2)}},K=function(n){var o=Z(n);return"hsl("+o.h+", "+o.s+"%, "+o.l+"%)"},I=function(n){var o=Z(n);return"hsla("+o.h+", "+o.s+"%, "+o.l+"%, "+o.a+")"},ee=function(n){var o=n.h,c=n.s,h=n.v,u=n.a;o=o/360*6,c/=100,h/=100;var d=Math.floor(o),e=h*(1-c),t=h*(1-(o-d)*c),r=h*(1-(1-o+d)*c),a=d%6;return{r:x(255*[h,t,e,e,r,h][a]),g:x(255*[r,h,h,t,e,e][a]),b:x(255*[e,e,r,h,h,t][a]),a:x(u,2)}},Me=function(n){var o=/rgba?\(?\s*(-?\d*\.?\d+)(%)?[,\s]+(-?\d*\.?\d+)(%)?[,\s]+(-?\d*\.?\d+)(%)?,?\s*[/\s]*(-?\d*\.?\d+)?(%)?\s*\)?/i.exec(n);return o?re({r:Number(o[1])/(o[2]?100/255:1),g:Number(o[3])/(o[4]?100/255:1),b:Number(o[5])/(o[6]?100/255:1),a:o[7]===void 0?1:Number(o[7])/(o[8]?100:1)}):{h:0,s:0,v:0,a:1}},j=function(n){var o=n.toString(16);return o.length<2?"0"+o:o},Ce=function(n){var o=n.r,c=n.g,h=n.b,u=n.a,d=u<1?j(x(255*u)):"";return"#"+j(o)+j(c)+j(h)+d},re=function(n){var o=n.r,c=n.g,h=n.b,u=n.a,d=Math.max(o,c,h),e=d-Math.min(o,c,h),t=e?d===o?(c-h)/e:d===c?2+(h-o)/e:4+(o-c)/e:0;return{h:x(60*(t<0?t+6:t)),s:x(d?e/d*100:0),v:x(d/255*100),a:u}},te=m.memo(function(n){var o=n.hue,c=n.onChange,h=N(["react-colorful__hue",n.className]);return m.createElement("div",{className:h},m.createElement(V,{onMove:function(u){c({h:360*u.left})},onKey:function(u){c({h:O(o+360*u.left,0,360)})},"aria-label":"Hue","aria-valuenow":x(o),"aria-valuemax":"360","aria-valuemin":"0"},m.createElement(G,{className:"react-colorful__hue-pointer",left:o/360,color:K({h:o,s:100,v:100,a:1})})))}),ne=m.memo(function(n){var o=n.hsva,c=n.onChange,h={backgroundColor:K({h:o.h,s:100,v:100,a:1})};return m.createElement("div",{className:"react-colorful__saturation",style:h},m.createElement(V,{onMove:function(u){c({s:100*u.left,v:100-100*u.top})},onKey:function(u){c({s:O(o.s+100*u.left,0,100),v:O(o.v-100*u.top,0,100)})},"aria-label":"Color","aria-valuetext":"Saturation "+x(o.s)+"%, Brightness "+x(o.v)+"%"},m.createElement(G,{className:"react-colorful__saturation-pointer",top:1-o.v/100,left:o.s/100,color:K(o)})))}),ae=function(n,o){if(n===o)return!0;for(var c in n)if(n[c]!==o[c])return!1;return!0},le=function(n,o){return n.replace(/\s/g,"")===o.replace(/\s/g,"")},$e=function(n,o){return n.toLowerCase()===o.toLowerCase()||ae(X(n),X(o))};function oe(n,o,c){var h=L(c),u=p.useState(function(){return n.toHsva(o)}),d=u[0],e=u[1],t=p.useRef({color:o,hsva:d});p.useEffect(function(){if(!n.equal(o,t.current.color)){var a=n.toHsva(o);t.current={hsva:a,color:o},e(a)}},[o,n]),p.useEffect(function(){var a;ae(d,t.current.hsva)||n.equal(a=n.fromHsva(d),t.current.color)||(t.current={hsva:d,color:a},h(a))},[d,n,h]);var r=p.useCallback(function(a){e(function(l){return Object.assign({},l,a)})},[]);return[d,r]}var Oe=typeof window<"u"?p.useLayoutEffect:p.useEffect,Se=function(){return typeof __webpack_nonce__<"u"?__webpack_nonce__:void 0},Y=new Map,ie=function(n){Oe(function(){var o=n.current?n.current.ownerDocument:document;if(o!==void 0&&!Y.has(o)){var c=o.createElement("style");c.innerHTML=`.react-colorful{position:relative;display:flex;flex-direction:column;width:200px;height:200px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:default}.react-colorful__saturation{position:relative;flex-grow:1;border-color:transparent;border-bottom:12px solid #000;border-radius:8px 8px 0 0;background-image:linear-gradient(0deg,#000,transparent),linear-gradient(90deg,#fff,hsla(0,0%,100%,0))}.react-colorful__alpha-gradient,.react-colorful__pointer-fill{content:"";position:absolute;left:0;top:0;right:0;bottom:0;pointer-events:none;border-radius:inherit}.react-colorful__alpha-gradient,.react-colorful__saturation{box-shadow:inset 0 0 0 1px rgba(0,0,0,.05)}.react-colorful__alpha,.react-colorful__hue{position:relative;height:24px}.react-colorful__hue{background:linear-gradient(90deg,red 0,#ff0 17%,#0f0 33%,#0ff 50%,#00f 67%,#f0f 83%,red)}.react-colorful__last-control{border-radius:0 0 8px 8px}.react-colorful__interactive{position:absolute;left:0;top:0;right:0;bottom:0;border-radius:inherit;outline:none;touch-action:none}.react-colorful__pointer{position:absolute;z-index:1;box-sizing:border-box;width:28px;height:28px;transform:translate(-50%,-50%);background-color:#fff;border:2px solid #fff;border-radius:50%;box-shadow:0 2px 4px rgba(0,0,0,.2)}.react-colorful__interactive:focus .react-colorful__pointer{transform:translate(-50%,-50%) scale(1.1)}.react-colorful__alpha,.react-colorful__alpha-pointer{background-color:#fff;background-image:url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill-opacity=".05"><path d="M8 0h8v8H8zM0 8h8v8H0z"/></svg>')}.react-colorful__saturation-pointer{z-index:3}.react-colorful__hue-pointer{z-index:2}`,Y.set(o,c);var h=Se();h&&c.setAttribute("nonce",h),o.head.appendChild(c)}},[])},Ne=function(n){var o=n.className,c=n.colorModel,h=n.color,u=h===void 0?c.defaultColor:h,d=n.onChange,e=D(n,["className","colorModel","color","onChange"]),t=p.useRef(null);ie(t);var r=oe(c,u,d),a=r[0],l=r[1],i=N(["react-colorful",o]);return m.createElement("div",C({},e,{ref:t,className:i}),m.createElement(ne,{hsva:a,onChange:l}),m.createElement(te,{hue:a.h,onChange:l,className:"react-colorful__last-control"}))},je={defaultColor:"000",toHsva:xe,fromHsva:function(n){return Ee({h:n.h,s:n.s,v:n.v,a:1})},equal:$e},Re=function(n){return m.createElement(Ne,C({},n,{colorModel:je}))},ze=function(n){var o=n.className,c=n.hsva,h=n.onChange,u={backgroundImage:"linear-gradient(90deg, "+I(Object.assign({},c,{a:0}))+", "+I(Object.assign({},c,{a:1}))+")"},d=N(["react-colorful__alpha",o]),e=x(100*c.a);return m.createElement("div",{className:d},m.createElement("div",{className:"react-colorful__alpha-gradient",style:u}),m.createElement(V,{onMove:function(t){h({a:t.left})},onKey:function(t){h({a:O(c.a+t.left)})},"aria-label":"Alpha","aria-valuetext":e+"%","aria-valuenow":e,"aria-valuemin":"0","aria-valuemax":"100"},m.createElement(G,{className:"react-colorful__alpha-pointer",left:c.a,color:I(c)})))},ue=function(n){var o=n.className,c=n.colorModel,h=n.color,u=h===void 0?c.defaultColor:h,d=n.onChange,e=D(n,["className","colorModel","color","onChange"]),t=p.useRef(null);ie(t);var r=oe(c,u,d),a=r[0],l=r[1],i=N(["react-colorful",o]);return m.createElement("div",C({},e,{ref:t,className:i}),m.createElement(ne,{hsva:a,onChange:l}),m.createElement(te,{hue:a.h,onChange:l}),m.createElement(ze,{hsva:a,onChange:l,className:"react-colorful__last-control"}))},Ie={defaultColor:"hsla(0, 0%, 0%, 1)",toHsva:ke,fromHsva:I,equal:le},qe=function(n){return m.createElement(ue,C({},n,{colorModel:Ie}))},He={defaultColor:"rgba(0, 0, 0, 1)",toHsva:Me,fromHsva:function(n){var o=ee(n);return"rgba("+o.r+", "+o.g+", "+o.b+", "+o.a+")"},equal:le},Pe=function(n){return m.createElement(ue,C({},n,{colorModel:He}))},Le=M.div({position:"relative",maxWidth:250,'&[aria-readonly="true"]':{opacity:.5}}),Be=M(J)({position:"absolute",zIndex:1,top:4,left:4,"[aria-readonly=true] &":{cursor:"not-allowed"}}),Xe=M.div({width:200,margin:5,".react-colorful__saturation":{borderRadius:"4px 4px 0 0"},".react-colorful__hue":{boxShadow:"inset 0 0 0 1px rgb(0 0 0 / 5%)"},".react-colorful__last-control":{borderRadius:"0 0 4px 4px"}}),Ke=M(fe)(({theme:n})=>({fontFamily:n.typography.fonts.base})),Te=M.div({display:"grid",gridTemplateColumns:"repeat(9, 16px)",gap:6,padding:3,marginTop:5,width:200}),De=M.div(({theme:n,active:o})=>({width:16,height:16,boxShadow:o?`${n.appBorderColor} 0 0 0 1px inset, ${n.textMutedColor}50 0 0 0 4px`:`${n.appBorderColor} 0 0 0 1px inset`,borderRadius:n.appBorderRadius})),Ve=`url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill-opacity=".05"><path d="M8 0h8v8H8zM0 8h8v8H0z"/></svg>')`,A=({value:n,style:o,...c})=>{let h=`linear-gradient(${n}, ${n}), ${Ve}, linear-gradient(#fff, #fff)`;return m.createElement(De,{...c,style:{...o,backgroundImage:h}})},Ge=M(de.Input)(({theme:n,readOnly:o})=>({width:"100%",paddingLeft:30,paddingRight:30,boxSizing:"border-box",fontFamily:n.typography.fonts.base})),Fe=M(ge)(({theme:n})=>({position:"absolute",zIndex:1,top:6,right:7,width:20,height:20,padding:4,boxSizing:"border-box",cursor:"pointer",color:n.input.color})),se=(n=>(n.RGB="rgb",n.HSL="hsl",n.HEX="hex",n))(se||{}),R=Object.values(se),We=/\(([0-9]+),\s*([0-9]+)%?,\s*([0-9]+)%?,?\s*([0-9.]+)?\)/,Ye=/^\s*rgba?\(([0-9]+),\s*([0-9]+),\s*([0-9]+),?\s*([0-9.]+)?\)\s*$/i,Ae=/^\s*hsla?\(([0-9]+),\s*([0-9]+)%,\s*([0-9]+)%,?\s*([0-9.]+)?\)\s*$/i,T=/^\s*#?([0-9a-f]{3}|[0-9a-f]{6})\s*$/i,Ue=/^\s*#?([0-9a-f]{3})\s*$/i,Je={hex:Re,rgb:Pe,hsl:qe},z={hex:"transparent",rgb:"rgba(0, 0, 0, 0)",hsl:"hsla(0, 0%, 0%, 0)"},U=n=>{let o=n==null?void 0:n.match(We);if(!o)return[0,0,0,1];let[,c,h,u,d=1]=o;return[c,h,u,d].map(Number)},$=n=>{if(!n)return;let o=!0;if(Ye.test(n)){let[e,t,r,a]=U(n),[l,i,s]=_.default.rgb.hsl([e,t,r])||[0,0,0];return{valid:o,value:n,keyword:_.default.rgb.keyword([e,t,r]),colorSpace:"rgb",rgb:n,hsl:`hsla(${l}, ${i}%, ${s}%, ${a})`,hex:`#${_.default.rgb.hex([e,t,r]).toLowerCase()}`}}if(Ae.test(n)){let[e,t,r,a]=U(n),[l,i,s]=_.default.hsl.rgb([e,t,r])||[0,0,0];return{valid:o,value:n,keyword:_.default.hsl.keyword([e,t,r]),colorSpace:"hsl",rgb:`rgba(${l}, ${i}, ${s}, ${a})`,hsl:n,hex:`#${_.default.hsl.hex([e,t,r]).toLowerCase()}`}}let c=n.replace("#",""),h=_.default.keyword.rgb(c)||_.default.hex.rgb(c),u=_.default.rgb.hsl(h),d=n;if(/[^#a-f0-9]/i.test(n)?d=c:T.test(n)&&(d=`#${c}`),d.startsWith("#"))o=T.test(d);else try{_.default.keyword.hex(d)}catch{o=!1}return{valid:o,value:d,keyword:_.default.rgb.keyword(h),colorSpace:"hex",rgb:`rgba(${h[0]}, ${h[1]}, ${h[2]}, 1)`,hsl:`hsla(${u[0]}, ${u[1]}%, ${u[2]}%, 1)`,hex:d}},Qe=(n,o,c)=>{if(!n||!(o!=null&&o.valid))return z[c];if(c!=="hex")return(o==null?void 0:o[c])||z[c];if(!o.hex.startsWith("#"))try{return`#${_.default.keyword.hex(o.hex)}`}catch{return z.hex}let h=o.hex.match(Ue);if(!h)return T.test(o.hex)?o.hex:z.hex;let[u,d,e]=h[1].split("");return`#${u}${u}${d}${d}${e}${e}`},Ze=(n,o)=>{let[c,h]=p.useState(n||""),[u,d]=p.useState(()=>$(c)),[e,t]=p.useState((u==null?void 0:u.colorSpace)||"hex");p.useEffect(()=>{let i=n||"",s=$(i);h(i),d(s),t((s==null?void 0:s.colorSpace)||"hex")},[n]);let r=p.useMemo(()=>Qe(c,u,e).toLowerCase(),[c,u,e]),a=p.useCallback(i=>{let s=$(i),f=(s==null?void 0:s.value)||i||"";h(f),f===""&&(d(void 0),o(void 0)),s&&(d(s),t(s.colorSpace),o(s.value))},[o]),l=p.useCallback(()=>{let i=R.indexOf(e)+1;i>=R.length&&(i=0),t(R[i]);let s=(u==null?void 0:u[R[i]])||"";h(s),o(s)},[u,e,o]);return{value:c,realValue:r,updateValue:a,color:u,colorSpace:e,cycleColorSpace:l}},q=n=>n.replace(/\s*/,"").toLowerCase(),er=(n,o,c)=>{let[h,u]=p.useState(o!=null&&o.valid?[o]:[]);p.useEffect(()=>{o===void 0&&u([])},[o]);let d=p.useMemo(()=>(n||[]).map(t=>typeof t=="string"?$(t):t.title?{...$(t.color),keyword:t.title}:$(t.color)).concat(h).filter(Boolean).slice(-27),[n,h]),e=p.useCallback(t=>{t!=null&&t.valid&&(d.some(r=>q(r[c])===q(t[c]))||u(r=>r.concat(t)))},[c,d]);return{presets:d,addPreset:e}},rr=({name:n,value:o,onChange:c,onFocus:h,onBlur:u,presetColors:d,startOpen:e=!1,argType:t})=>{var E;let r=p.useCallback(ce(c,200),[c]),{value:a,realValue:l,updateValue:i,color:s,colorSpace:f,cycleColorSpace:g}=Ze(o,r),{presets:b,addPreset:y}=er(d,s,f),v=Je[f],w=!!((E=t==null?void 0:t.table)!=null&&E.readonly);return m.createElement(Le,{"aria-readonly":w},m.createElement(Be,{startOpen:e,trigger:w?[null]:void 0,closeOnOutsideClick:!0,onVisibleChange:()=>y(s),tooltip:m.createElement(Xe,null,m.createElement(v,{color:l==="transparent"?"#000000":l,onChange:i,onFocus:h,onBlur:u}),b.length>0&&m.createElement(Te,null,b.map((k,P)=>m.createElement(J,{key:`${k.value}-${P}`,hasChrome:!1,tooltip:m.createElement(Ke,{note:k.keyword||k.value})},m.createElement(A,{value:k[f],active:s&&q(k[f])===q(s[f]),onClick:()=>i(k.value)})))))},m.createElement(A,{value:l,style:{margin:4}})),m.createElement(Ge,{id:he(n),value:a,onChange:k=>i(k.target.value),onFocus:k=>k.target.select(),readOnly:w,placeholder:"Choose color..."}),a?m.createElement(Fe,{onClick:g}):null)},fr=rr;export{rr as ColorControl,fr as default};
|