@jbpark/ui-kit 2.3.4 → 2.5.0
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/Menu.d.mts +2 -2
- package/dist/Menu.d.mts.map +1 -1
- package/dist/Menu.mjs +4 -4
- package/dist/Menu.mjs.map +1 -1
- package/dist/components/atoms/Button/index.d.mts +5 -1
- package/dist/components/atoms/Button/index.d.mts.map +1 -1
- package/dist/components/atoms/Button/index.mjs +22 -9
- package/dist/components/atoms/Button/index.mjs.map +1 -1
- package/dist/components/atoms/Checkbox/Group/index.d.mts +2 -2
- package/dist/components/atoms/Checkbox/Group/index.d.mts.map +1 -1
- package/dist/components/atoms/Checkbox/Group/index.mjs.map +1 -1
- package/dist/components/atoms/Checkbox/index.d.mts +2 -3
- package/dist/components/atoms/Checkbox/index.d.mts.map +1 -1
- package/dist/components/atoms/Checkbox/index.mjs.map +1 -1
- package/dist/components/atoms/Radio/Group/index.d.mts +7 -2
- package/dist/components/atoms/Radio/Group/index.d.mts.map +1 -1
- package/dist/components/atoms/Radio/Group/index.mjs +15 -4
- package/dist/components/atoms/Radio/Group/index.mjs.map +1 -1
- package/dist/components/atoms/Radio/index.d.mts +6 -3
- package/dist/components/atoms/Radio/index.d.mts.map +1 -1
- package/dist/components/atoms/Radio/index.mjs +3 -2
- package/dist/components/atoms/Radio/index.mjs.map +1 -1
- package/dist/components/atoms/Skeleton/index.d.mts +1 -1
- package/dist/components/atoms/Skeleton/index.d.mts.map +1 -1
- package/dist/components/atoms/Switch/index.d.mts +6 -0
- package/dist/components/atoms/Switch/index.d.mts.map +1 -1
- package/dist/components/atoms/Switch/index.mjs +39 -5
- package/dist/components/atoms/Switch/index.mjs.map +1 -1
- package/dist/components/organisms/List/index.d.mts +1 -1
- package/dist/components/organisms/List/index.d.mts.map +1 -1
- package/dist/core/switch.d.mts +2 -0
- package/dist/core/switch.d.mts.map +1 -1
- package/dist/core/switch.mjs +5 -5
- package/dist/core/switch.mjs.map +1 -1
- package/dist/index.d.mts +5 -1
- package/dist/index.mjs +4 -1
- package/dist/providers/ConfigProvider/ConfigContext.d.mts +8 -0
- package/dist/providers/ConfigProvider/ConfigContext.d.mts.map +1 -0
- package/dist/providers/ConfigProvider/ConfigContext.mjs +11 -0
- package/dist/providers/ConfigProvider/ConfigContext.mjs.map +1 -0
- package/dist/providers/ConfigProvider/index.d.mts +18 -0
- package/dist/providers/ConfigProvider/index.d.mts.map +1 -0
- package/dist/providers/ConfigProvider/index.mjs +67 -0
- package/dist/providers/ConfigProvider/index.mjs.map +1 -0
- package/dist/providers/ConfigProvider/types.d.mts +32 -0
- package/dist/providers/ConfigProvider/types.d.mts.map +1 -0
- package/dist/providers/index.d.mts +3 -0
- package/dist/providers/index.mjs +4 -0
- package/dist/style.css +122 -35
- package/dist/utils.d.mts +2 -2
- package/dist/utils.d.mts.map +1 -1
- package/dist/utils.mjs +4 -4
- package/dist/utils.mjs.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.mjs","names":["switchComponent"],"sources":["../../../../src/components/atoms/Switch/index.tsx"],"sourcesContent":["'use client';\n\nimport { useState } from 'react';\n\nimport { switchComponent } from '@repo/ui/core';\nimport { cn } from '@repo/ui/utils';\n\nconst { Switch: Core } = switchComponent;\n\ninterface Props extends Omit<\n React.ComponentPropsWithoutRef<'button'>,\n 'onChange'\n> {\n classNames?: {\n track?: string;\n handle?: string;\n };\n defaultChecked?: boolean;\n checked?: boolean;\n disabled?: boolean;\n onChange?: (checked: boolean) => void;\n}\n\nconst Switch = ({\n className,\n classNames,\n defaultChecked,\n checked: _checked,\n onChange: _onChange = () => {},\n ...props\n}: Props) => {\n const [uncontrolledChecked, setUncontrolledChecked] = useState<boolean>(\n defaultChecked || false,\n );\n\n const controlled = _checked !== undefined;\n const checked = controlled ? _checked : uncontrolledChecked;\n\n const onChange = (next: boolean) => {\n if (!controlled) {\n setUncontrolledChecked(next);\n }\n _onChange(next);\n };\n\n return (\n <Core\n checked={checked}\n className={cn(\n '
|
|
1
|
+
{"version":3,"file":"index.mjs","names":["switchComponent"],"sources":["../../../../src/components/atoms/Switch/index.tsx"],"sourcesContent":["'use client';\n\nimport { useState } from 'react';\n\nimport { switchComponent } from '@repo/ui/core';\nimport { cn } from '@repo/ui/utils';\n\nconst { Switch: Core } = switchComponent;\n\nconst sizeConfig = {\n medium: {\n core: 'default' as const,\n track: 'h-8! w-12!',\n handle: 'size-6!',\n handleChecked:\n 'data-[state=unchecked]:left-0.5 data-[state=checked]:left-[calc(100%-26px)]',\n fontSize: 'text-xs',\n marginChecked: 'mr-7 ml-2',\n marginUnchecked: 'mr-2 ml-7',\n },\n small: {\n core: 'sm' as const,\n track: 'h-6! w-10!',\n handle: 'size-5!',\n handleChecked:\n 'data-[state=unchecked]:left-0.5 data-[state=checked]:left-[calc(100%-22px)]',\n fontSize: 'text-[10px]',\n marginChecked: 'mr-6 ml-1.5',\n marginUnchecked: 'mr-1.5 ml-6',\n },\n};\n\ninterface Props extends Omit<\n React.ComponentPropsWithoutRef<'button'>,\n 'onChange'\n> {\n classNames?: {\n track?: string;\n handle?: string;\n };\n size?: 'small' | 'medium';\n defaultChecked?: boolean;\n checked?: boolean;\n disabled?: boolean;\n onChange?: (checked: boolean) => void;\n checkedChildren?: React.ReactNode;\n unCheckedChildren?: React.ReactNode;\n}\n\nconst Switch = ({\n className,\n classNames,\n size = 'medium',\n defaultChecked,\n checked: _checked,\n onChange: _onChange = () => {},\n checkedChildren,\n unCheckedChildren,\n ...props\n}: Props) => {\n const [uncontrolledChecked, setUncontrolledChecked] = useState<boolean>(\n defaultChecked || false,\n );\n\n const controlled = _checked !== undefined;\n const checked = controlled ? _checked : uncontrolledChecked;\n\n const onChange = (next: boolean) => {\n if (!controlled) {\n setUncontrolledChecked(next);\n }\n _onChange(next);\n };\n\n const hasChildren = !!(checkedChildren || unCheckedChildren);\n const config = sizeConfig[size];\n\n return (\n <Core\n checked={checked}\n size={config.core}\n className={cn(\n 'relative',\n config.track,\n hasChildren && 'w-auto! overflow-hidden',\n className,\n classNames?.track,\n //\n )}\n handleClassName={cn(\n config.handle,\n '!absolute top-1/2 !-translate-y-1/2 !translate-x-0',\n 'transition-[left] duration-200 will-change-[left]',\n config.handleChecked,\n classNames?.handle,\n //\n )}\n onCheckedChange={checked => {\n onChange(checked);\n }}\n {...props}\n >\n {hasChildren && (\n <span\n className={cn(\n `grid leading-none text-white transition-[margin] duration-200\n will-change-[margin]`,\n config.fontSize,\n checked ? config.marginChecked : config.marginUnchecked,\n //\n )}\n >\n <span\n className={cn(\n 'col-start-1 row-start-1 transition-opacity duration-200',\n checked ? 'opacity-100' : 'opacity-0',\n )}\n >\n {checkedChildren}\n </span>\n <span\n className={cn(\n 'col-start-1 row-start-1 transition-opacity duration-200',\n checked ? 'opacity-0' : 'opacity-100',\n )}\n >\n {unCheckedChildren}\n </span>\n </span>\n )}\n </Core>\n );\n};\n\nexport default Switch;\n"],"mappings":";;;;;;;;;AAOA,MAAM,EAAE,QAAQ,SAASA;AAEzB,MAAM,aAAa;CACjB,QAAQ;EACN,MAAM;EACN,OAAO;EACP,QAAQ;EACR,eACE;EACF,UAAU;EACV,eAAe;EACf,iBAAiB;EAClB;CACD,OAAO;EACL,MAAM;EACN,OAAO;EACP,QAAQ;EACR,eACE;EACF,UAAU;EACV,eAAe;EACf,iBAAiB;EAClB;CACF;AAmBD,MAAM,UAAU,EACd,WACA,YACA,OAAO,UACP,gBACA,SAAS,UACT,UAAU,kBAAkB,IAC5B,iBACA,mBACA,GAAG,YACQ;CACX,MAAM,CAAC,qBAAqB,0BAA0B,SACpD,kBAAkB,MACnB;CAED,MAAM,aAAa,aAAa;CAChC,MAAM,UAAU,aAAa,WAAW;CAExC,MAAM,YAAY,SAAkB;AAClC,MAAI,CAAC,WACH,wBAAuB,KAAK;AAE9B,YAAU,KAAK;;CAGjB,MAAM,cAAc,CAAC,EAAE,mBAAmB;CAC1C,MAAM,SAAS,WAAW;AAE1B,QACE,oBAAC;EACU;EACT,MAAM,OAAO;EACb,WAAW,GACT,YACA,OAAO,OACP,eAAe,2BACf,WACA,YAAY,MAEb;EACD,iBAAiB,GACf,OAAO,QACP,sDACA,qDACA,OAAO,eACP,YAAY,OAEb;EACD,kBAAiB,YAAW;AAC1B,YAAS,QAAQ;;EAEnB,GAAI;YAEH,eACC,qBAAC;GACC,WAAW,GACT;mCAEA,OAAO,UACP,UAAU,OAAO,gBAAgB,OAAO,gBAEzC;cAED,oBAAC;IACC,WAAW,GACT,2DACA,UAAU,gBAAgB,YAC3B;cAEA;KACI,EACP,oBAAC;IACC,WAAW,GACT,2DACA,UAAU,cAAc,cACzB;cAEA;KACI;IACF;GAEJ"}
|
|
@@ -40,7 +40,7 @@ declare const List: {
|
|
|
40
40
|
classNames,
|
|
41
41
|
renderItem,
|
|
42
42
|
...props
|
|
43
|
-
}: Props<T>): string | number | bigint | true | Iterable<React.ReactNode> | Promise<string | number | bigint | boolean | React.ReactPortal | React.ReactElement<unknown, string | React.JSXElementConstructor<any>> | Iterable<React.ReactNode> | null | undefined
|
|
43
|
+
}: Props<T>): string | number | bigint | true | react_jsx_runtime0.JSX.Element | Iterable<React.ReactNode> | Promise<string | number | bigint | boolean | React.ReactPortal | React.ReactElement<unknown, string | React.JSXElementConstructor<any>> | Iterable<React.ReactNode> | null | undefined>;
|
|
44
44
|
Item: ({
|
|
45
45
|
children,
|
|
46
46
|
className,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.mts","names":[],"sources":["../../../../src/components/organisms/List/index.tsx"],"mappings":";;;;;;UAWU,KAAA,YAAiB,IAAA,CACzB,KAAA,CAAM,wBAAA;EAGN,OAAA;EACA,WAAA,GAAc,KAAA,CAAM,cAAA,QAAsB,QAAA;EAC1C,MAAA,GAAS,KAAA,CAAM,SAAA;EACf,KAAA,GAAQ,KAAA,CAAM,SAAA;EACd,MAAA,GAAS,KAAA,CAAM,SAAA;EACf,KAAA,GAAQ,KAAA,CAAM,SAAA;EACd,UAAA;IACE,KAAA;IACA,MAAA;IACA,IAAA;EAAA;EAEF,MAAA;IACE,OAAA;IACA,OAAA;IACA,MAAA,GAAS,KAAA,CAAM,SAAA;IACf,OAAA,GAAU,wBAAA;IACV,IAAA;EAAA;EAEF,IAAA,GAAO,CAAA;EACP,UAAA,IAAc,IAAA,EAAM,CAAA,EAAG,KAAA,aAAkB,KAAA,CAAM,SAAA;AAAA;AAAA,cAG3C,IAAA;EAAA;IAAS,OAAA;IAAA,WAAA;IAAA,MAAA;IAAA,MAAA;IAAA,KAAA;IAAA,KAAA;IAAA,MAAA;IAAA,IAAA;IAAA,SAAA;IAAA,UAAA;IAAA,UAAA;IAAA,GAAA;EAAA,GAaZ,KAAA,CAAM,CAAA,sCAAE,QAAA,CAAA,KAAA,CAAA,SAAA,IAAA,OAAA,sCAAA,KAAA,CAAA,WAAA,GAAA,KAAA,CAAA,YAAA,mBAAA,KAAA,CAAA,qBAAA,SAAA,QAAA,CAAA,KAAA,CAAA,SAAA
|
|
1
|
+
{"version":3,"file":"index.d.mts","names":[],"sources":["../../../../src/components/organisms/List/index.tsx"],"mappings":";;;;;;UAWU,KAAA,YAAiB,IAAA,CACzB,KAAA,CAAM,wBAAA;EAGN,OAAA;EACA,WAAA,GAAc,KAAA,CAAM,cAAA,QAAsB,QAAA;EAC1C,MAAA,GAAS,KAAA,CAAM,SAAA;EACf,KAAA,GAAQ,KAAA,CAAM,SAAA;EACd,MAAA,GAAS,KAAA,CAAM,SAAA;EACf,KAAA,GAAQ,KAAA,CAAM,SAAA;EACd,UAAA;IACE,KAAA;IACA,MAAA;IACA,IAAA;EAAA;EAEF,MAAA;IACE,OAAA;IACA,OAAA;IACA,MAAA,GAAS,KAAA,CAAM,SAAA;IACf,OAAA,GAAU,wBAAA;IACV,IAAA;EAAA;EAEF,IAAA,GAAO,CAAA;EACP,UAAA,IAAc,IAAA,EAAM,CAAA,EAAG,KAAA,aAAkB,KAAA,CAAM,SAAA;AAAA;AAAA,cAG3C,IAAA;EAAA;IAAS,OAAA;IAAA,WAAA;IAAA,MAAA;IAAA,MAAA;IAAA,KAAA;IAAA,KAAA;IAAA,MAAA;IAAA,IAAA;IAAA,SAAA;IAAA,UAAA;IAAA,UAAA;IAAA,GAAA;EAAA,GAaZ,KAAA,CAAM,CAAA,sCAAE,kBAAA,CAAA,GAAA,CAAA,OAAA,GAAA,QAAA,CAAA,KAAA,CAAA,SAAA,IAAA,OAAA,sCAAA,KAAA,CAAA,WAAA,GAAA,KAAA,CAAA,YAAA,mBAAA,KAAA,CAAA,qBAAA,SAAA,QAAA,CAAA,KAAA,CAAA,SAAA"}
|
package/dist/core/switch.d.mts
CHANGED
|
@@ -8,11 +8,13 @@ declare namespace switch_d_exports {
|
|
|
8
8
|
}
|
|
9
9
|
interface CustomProps {
|
|
10
10
|
handleClassName?: string;
|
|
11
|
+
children?: React$1.ReactNode;
|
|
11
12
|
}
|
|
12
13
|
declare function Switch({
|
|
13
14
|
className,
|
|
14
15
|
size,
|
|
15
16
|
handleClassName,
|
|
17
|
+
children,
|
|
16
18
|
...props
|
|
17
19
|
}: React$1.ComponentProps<typeof SwitchPrimitive.Root> & {
|
|
18
20
|
size?: 'sm' | 'default';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"switch.d.mts","names":[],"sources":["../../src/core/switch.tsx"],"mappings":";;;;;;;;UAQU,WAAA;EACR,eAAA;AAAA;AAAA,
|
|
1
|
+
{"version":3,"file":"switch.d.mts","names":[],"sources":["../../src/core/switch.tsx"],"mappings":";;;;;;;;UAQU,WAAA;EACR,eAAA;EACA,QAAA,GAAW,OAAA,CAAM,SAAA;AAAA;AAAA,iBAGV,MAAA,CAAA;EACP,SAAA;EACA,IAAA;EACA,eAAA;EACA,QAAA;EAAA,GACG;AAAA,GACF,OAAA,CAAM,cAAA,QAAsB,eAAA,CAAgB,IAAA;EAC7C,IAAA;AAAA,IACE,WAAA,GAAW,kBAAA,CAAA,GAAA,CAAA,OAAA"}
|
package/dist/core/switch.mjs
CHANGED
|
@@ -3,13 +3,13 @@
|
|
|
3
3
|
import { __exportAll } from "../_virtual/_rolldown/runtime.mjs";
|
|
4
4
|
import { cn } from "../utils.mjs";
|
|
5
5
|
import "react";
|
|
6
|
-
import { jsx } from "react/jsx-runtime";
|
|
6
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
7
7
|
import * as SwitchPrimitive from "@radix-ui/react-switch";
|
|
8
8
|
|
|
9
9
|
//#region src/core/switch.tsx
|
|
10
10
|
var switch_exports = /* @__PURE__ */ __exportAll({ Switch: () => Switch });
|
|
11
|
-
function Switch({ className, size = "default", handleClassName, ...props }) {
|
|
12
|
-
return /* @__PURE__ */
|
|
11
|
+
function Switch({ className, size = "default", handleClassName, children, ...props }) {
|
|
12
|
+
return /* @__PURE__ */ jsxs(SwitchPrimitive.Root, {
|
|
13
13
|
"data-slot": "switch",
|
|
14
14
|
"data-size": size,
|
|
15
15
|
className: cn(`peer data-[state=checked]:bg-primary data-[state=unchecked]:bg-input
|
|
@@ -21,7 +21,7 @@ function Switch({ className, size = "default", handleClassName, ...props }) {
|
|
|
21
21
|
data-[size=default]:h-[1.15rem] data-[size=default]:w-8
|
|
22
22
|
data-[size=sm]:h-3.5 data-[size=sm]:w-6`, className),
|
|
23
23
|
...props,
|
|
24
|
-
children: /* @__PURE__ */ jsx(SwitchPrimitive.Thumb, {
|
|
24
|
+
children: [/* @__PURE__ */ jsx(SwitchPrimitive.Thumb, {
|
|
25
25
|
"data-slot": "switch-thumb",
|
|
26
26
|
className: cn(`bg-background dark:data-[state=unchecked]:bg-foreground
|
|
27
27
|
dark:data-[state=checked]:bg-primary-foreground pointer-events-none
|
|
@@ -30,7 +30,7 @@ function Switch({ className, size = "default", handleClassName, ...props }) {
|
|
|
30
30
|
group-data-[size=sm]/switch:size-3
|
|
31
31
|
data-[state=checked]:translate-x-[calc(100%-2px)]
|
|
32
32
|
data-[state=unchecked]:translate-x-0`, handleClassName)
|
|
33
|
-
})
|
|
33
|
+
}), children]
|
|
34
34
|
});
|
|
35
35
|
}
|
|
36
36
|
|
package/dist/core/switch.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"switch.mjs","names":[],"sources":["../../src/core/switch.tsx"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\n\nimport * as SwitchPrimitive from '@radix-ui/react-switch';\n\nimport { cn } from '@repo/ui/utils';\n\ninterface CustomProps {\n handleClassName?: string;\n}\n\nfunction Switch({\n className,\n size = 'default',\n handleClassName,\n ...props\n}: React.ComponentProps<typeof SwitchPrimitive.Root> & {\n size?: 'sm' | 'default';\n} & CustomProps) {\n return (\n <SwitchPrimitive.Root\n data-slot=\"switch\"\n data-size={size}\n className={cn(\n `peer data-[state=checked]:bg-primary data-[state=unchecked]:bg-input\n focus-visible:border-ring focus-visible:ring-ring/50\n dark:data-[state=unchecked]:bg-input/80 group/switch inline-flex\n shrink-0 items-center rounded-full border border-transparent shadow-xs\n transition-all outline-none focus-visible:ring-[3px]\n disabled:cursor-not-allowed disabled:opacity-50\n data-[size=default]:h-[1.15rem] data-[size=default]:w-8\n data-[size=sm]:h-3.5 data-[size=sm]:w-6`,\n className,\n )}\n {...props}\n >\n <SwitchPrimitive.Thumb\n data-slot=\"switch-thumb\"\n className={cn(\n `bg-background dark:data-[state=unchecked]:bg-foreground\n dark:data-[state=checked]:bg-primary-foreground pointer-events-none\n block rounded-full ring-0 transition-transform\n group-data-[size=default]/switch:size-4\n group-data-[size=sm]/switch:size-3\n data-[state=checked]:translate-x-[calc(100%-2px)]\n data-[state=unchecked]:translate-x-0`,\n handleClassName,\n )}\n />\n </SwitchPrimitive.Root>\n );\n}\n\nexport { Switch };\n"],"mappings":";;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"switch.mjs","names":[],"sources":["../../src/core/switch.tsx"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\n\nimport * as SwitchPrimitive from '@radix-ui/react-switch';\n\nimport { cn } from '@repo/ui/utils';\n\ninterface CustomProps {\n handleClassName?: string;\n children?: React.ReactNode;\n}\n\nfunction Switch({\n className,\n size = 'default',\n handleClassName,\n children,\n ...props\n}: React.ComponentProps<typeof SwitchPrimitive.Root> & {\n size?: 'sm' | 'default';\n} & CustomProps) {\n return (\n <SwitchPrimitive.Root\n data-slot=\"switch\"\n data-size={size}\n className={cn(\n `peer data-[state=checked]:bg-primary data-[state=unchecked]:bg-input\n focus-visible:border-ring focus-visible:ring-ring/50\n dark:data-[state=unchecked]:bg-input/80 group/switch inline-flex\n shrink-0 items-center rounded-full border border-transparent shadow-xs\n transition-all outline-none focus-visible:ring-[3px]\n disabled:cursor-not-allowed disabled:opacity-50\n data-[size=default]:h-[1.15rem] data-[size=default]:w-8\n data-[size=sm]:h-3.5 data-[size=sm]:w-6`,\n className,\n )}\n {...props}\n >\n <SwitchPrimitive.Thumb\n data-slot=\"switch-thumb\"\n className={cn(\n `bg-background dark:data-[state=unchecked]:bg-foreground\n dark:data-[state=checked]:bg-primary-foreground pointer-events-none\n block rounded-full ring-0 transition-transform\n group-data-[size=default]/switch:size-4\n group-data-[size=sm]/switch:size-3\n data-[state=checked]:translate-x-[calc(100%-2px)]\n data-[state=unchecked]:translate-x-0`,\n handleClassName,\n )}\n />\n {children}\n </SwitchPrimitive.Root>\n );\n}\n\nexport { Switch };\n"],"mappings":";;;;;;;;;;AAaA,SAAS,OAAO,EACd,WACA,OAAO,WACP,iBACA,UACA,GAAG,SAGY;AACf,QACE,qBAAC,gBAAgB;EACf,aAAU;EACV,aAAW;EACX,WAAW,GACT;;;;;;;kDAQA,UACD;EACD,GAAI;aAEJ,oBAAC,gBAAgB;GACf,aAAU;GACV,WAAW,GACT;;;;;;iDAOA,gBACD;IACD,EACD;GACoB"}
|
package/dist/index.d.mts
CHANGED
|
@@ -27,4 +27,8 @@ import { Swiper } from "./components/organisms/Swiper/index.mjs";
|
|
|
27
27
|
import "./components/organisms/index.mjs";
|
|
28
28
|
import { Layout } from "./components/templates/Layout/index.mjs";
|
|
29
29
|
import "./components/templates/index.mjs";
|
|
30
|
-
|
|
30
|
+
import { ThemeConfig, ThemeToken } from "./providers/ConfigProvider/types.mjs";
|
|
31
|
+
import { useConfig } from "./providers/ConfigProvider/ConfigContext.mjs";
|
|
32
|
+
import { ConfigProvider, Props } from "./providers/ConfigProvider/index.mjs";
|
|
33
|
+
import "./providers/index.mjs";
|
|
34
|
+
export { Button, Card, Checkbox, Collapse, ColorPicker, ConfigProvider, Props as ConfigProviderProps, Drawer, Dropdown, FloatButton, Input, Layout, List, Marquees, Menu, Modal, Popover, Progress, Radio, Reveals, Select, Skeleton, Space, Spin, Swiper, Switch, ThemeConfig, ThemeToken, Typography, useConfig };
|
package/dist/index.mjs
CHANGED
|
@@ -28,5 +28,8 @@ import Swiper from "./components/organisms/Swiper/index.mjs";
|
|
|
28
28
|
import "./components/organisms/index.mjs";
|
|
29
29
|
import Layout from "./components/templates/Layout/index.mjs";
|
|
30
30
|
import "./components/templates/index.mjs";
|
|
31
|
+
import { useConfig } from "./providers/ConfigProvider/ConfigContext.mjs";
|
|
32
|
+
import ConfigProvider from "./providers/ConfigProvider/index.mjs";
|
|
33
|
+
import "./providers/index.mjs";
|
|
31
34
|
|
|
32
|
-
export { Button, Card, Checkbox, Collapse, ColorPicker, Drawer, Dropdown, FloatButton, Input, Layout, List, Marquees, Menu, Modal, Popover, Progress, Radio, Reveals, Select, Skeleton, Space, Spin, Swiper, Switch, Typography };
|
|
35
|
+
export { Button, Card, Checkbox, Collapse, ColorPicker, ConfigProvider, Drawer, Dropdown, FloatButton, Input, Layout, List, Marquees, Menu, Modal, Popover, Progress, Radio, Reveals, Select, Skeleton, Space, Spin, Swiper, Switch, Typography, useConfig };
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { ConfigContextValue } from "./types.mjs";
|
|
2
|
+
import "react";
|
|
3
|
+
|
|
4
|
+
//#region src/providers/ConfigProvider/ConfigContext.d.ts
|
|
5
|
+
declare const useConfig: () => ConfigContextValue;
|
|
6
|
+
//#endregion
|
|
7
|
+
export { useConfig };
|
|
8
|
+
//# sourceMappingURL=ConfigContext.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ConfigContext.d.mts","names":[],"sources":["../../../src/providers/ConfigProvider/ConfigContext.ts"],"mappings":";;;;cAUa,SAAA,QAAS,kBAAA"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
|
|
3
|
+
import { createContext, useContext } from "react";
|
|
4
|
+
|
|
5
|
+
//#region src/providers/ConfigProvider/ConfigContext.ts
|
|
6
|
+
const ConfigContext = createContext({ theme: {} });
|
|
7
|
+
const useConfig = () => useContext(ConfigContext);
|
|
8
|
+
|
|
9
|
+
//#endregion
|
|
10
|
+
export { ConfigContext, useConfig };
|
|
11
|
+
//# sourceMappingURL=ConfigContext.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ConfigContext.mjs","names":[],"sources":["../../../src/providers/ConfigProvider/ConfigContext.ts"],"sourcesContent":["'use client';\n\nimport { createContext, useContext } from 'react';\n\nimport type { ConfigContextValue } from './types';\n\nexport const ConfigContext = createContext<ConfigContextValue>({\n theme: {},\n});\n\nexport const useConfig = () => useContext(ConfigContext);\n"],"mappings":";;;;;AAMA,MAAa,gBAAgB,cAAkC,EAC7D,OAAO,EAAE,EACV,CAAC;AAEF,MAAa,kBAAkB,WAAW,cAAc"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { ThemeConfig, ThemeToken } from "./types.mjs";
|
|
2
|
+
import { useConfig } from "./ConfigContext.mjs";
|
|
3
|
+
import * as react_jsx_runtime0 from "react/jsx-runtime";
|
|
4
|
+
|
|
5
|
+
//#region src/providers/ConfigProvider/index.d.ts
|
|
6
|
+
interface Props {
|
|
7
|
+
theme?: ThemeConfig;
|
|
8
|
+
className?: string;
|
|
9
|
+
children: React.ReactNode;
|
|
10
|
+
}
|
|
11
|
+
declare const ConfigProvider: ({
|
|
12
|
+
theme,
|
|
13
|
+
className,
|
|
14
|
+
children
|
|
15
|
+
}: Props) => react_jsx_runtime0.JSX.Element;
|
|
16
|
+
//#endregion
|
|
17
|
+
export { ConfigProvider, type Props };
|
|
18
|
+
//# sourceMappingURL=index.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.mts","names":[],"sources":["../../../src/providers/ConfigProvider/index.tsx"],"mappings":";;;;;UAmDU,KAAA;EACR,KAAA,GAAQ,WAAA;EACR,SAAA;EACA,QAAA,EAAU,KAAA,CAAM,SAAA;AAAA;AAAA,cAGZ,cAAA;EAAkB,KAAA;EAAA,SAAA;EAAA;AAAA,GAAqC,KAAA,KAAK,kBAAA,CAAA,GAAA,CAAA,OAAA"}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
|
|
3
|
+
import { cn } from "../../utils.mjs";
|
|
4
|
+
import { ConfigContext, useConfig } from "./ConfigContext.mjs";
|
|
5
|
+
import { useMemo } from "react";
|
|
6
|
+
import { jsx } from "react/jsx-runtime";
|
|
7
|
+
|
|
8
|
+
//#region src/providers/ConfigProvider/index.tsx
|
|
9
|
+
const tokenToCssVar = {
|
|
10
|
+
colorPrimary: "--primary",
|
|
11
|
+
colorPrimaryForeground: "--primary-foreground",
|
|
12
|
+
colorBackground: "--background",
|
|
13
|
+
colorForeground: "--foreground",
|
|
14
|
+
colorCard: "--card",
|
|
15
|
+
colorCardForeground: "--card-foreground",
|
|
16
|
+
colorPopover: "--popover",
|
|
17
|
+
colorPopoverForeground: "--popover-foreground",
|
|
18
|
+
colorSecondary: "--secondary",
|
|
19
|
+
colorSecondaryForeground: "--secondary-foreground",
|
|
20
|
+
colorMuted: "--muted",
|
|
21
|
+
colorMutedForeground: "--muted-foreground",
|
|
22
|
+
colorAccent: "--accent",
|
|
23
|
+
colorAccentForeground: "--accent-foreground",
|
|
24
|
+
colorDestructive: "--destructive",
|
|
25
|
+
colorBorder: "--border",
|
|
26
|
+
colorInput: "--input",
|
|
27
|
+
colorRing: "--ring",
|
|
28
|
+
borderRadius: "--radius"
|
|
29
|
+
};
|
|
30
|
+
const buildCssVars = (token) => {
|
|
31
|
+
if (!token) return {};
|
|
32
|
+
const vars = {};
|
|
33
|
+
for (const [key, value] of Object.entries(token)) {
|
|
34
|
+
if (value === void 0) continue;
|
|
35
|
+
const cssVar = tokenToCssVar[key];
|
|
36
|
+
if (cssVar) vars[cssVar] = value;
|
|
37
|
+
}
|
|
38
|
+
return vars;
|
|
39
|
+
};
|
|
40
|
+
const ConfigProvider = ({ theme = {}, className, children }) => {
|
|
41
|
+
const parent = useConfig();
|
|
42
|
+
const mergedTheme = useMemo(() => ({
|
|
43
|
+
...parent.theme,
|
|
44
|
+
...theme,
|
|
45
|
+
token: {
|
|
46
|
+
...parent.theme.token,
|
|
47
|
+
...theme.token
|
|
48
|
+
}
|
|
49
|
+
}), [parent.theme, theme]);
|
|
50
|
+
const contextValue = useMemo(() => ({ theme: mergedTheme }), [mergedTheme]);
|
|
51
|
+
const cssVars = useMemo(() => buildCssVars(mergedTheme.token), [mergedTheme.token]);
|
|
52
|
+
const hasCssVars = Object.keys(cssVars).length > 0;
|
|
53
|
+
const hasDarkMode = mergedTheme.dark !== void 0;
|
|
54
|
+
const needsWrapper = hasCssVars || hasDarkMode || className;
|
|
55
|
+
return /* @__PURE__ */ jsx(ConfigContext.Provider, {
|
|
56
|
+
value: contextValue,
|
|
57
|
+
children: needsWrapper ? /* @__PURE__ */ jsx("div", {
|
|
58
|
+
className: cn(mergedTheme.dark && "dark", className),
|
|
59
|
+
style: hasCssVars ? cssVars : void 0,
|
|
60
|
+
children
|
|
61
|
+
}) : children
|
|
62
|
+
});
|
|
63
|
+
};
|
|
64
|
+
|
|
65
|
+
//#endregion
|
|
66
|
+
export { ConfigProvider as default };
|
|
67
|
+
//# sourceMappingURL=index.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.mjs","names":[],"sources":["../../../src/providers/ConfigProvider/index.tsx"],"sourcesContent":["'use client';\n\nimport { useMemo } from 'react';\n\nimport { cn } from '@repo/ui/utils';\n\nimport { ConfigContext, useConfig } from './ConfigContext';\nimport type { ThemeConfig, ThemeToken } from './types';\n\nconst tokenToCssVar: Record<keyof ThemeToken, string> = {\n colorPrimary: '--primary',\n colorPrimaryForeground: '--primary-foreground',\n colorBackground: '--background',\n colorForeground: '--foreground',\n colorCard: '--card',\n colorCardForeground: '--card-foreground',\n colorPopover: '--popover',\n colorPopoverForeground: '--popover-foreground',\n colorSecondary: '--secondary',\n colorSecondaryForeground: '--secondary-foreground',\n colorMuted: '--muted',\n colorMutedForeground: '--muted-foreground',\n colorAccent: '--accent',\n colorAccentForeground: '--accent-foreground',\n colorDestructive: '--destructive',\n colorBorder: '--border',\n colorInput: '--input',\n colorRing: '--ring',\n borderRadius: '--radius',\n};\n\nconst buildCssVars = (token?: ThemeToken): React.CSSProperties => {\n if (!token) {\n return {};\n }\n\n const vars: Record<string, string> = {};\n\n for (const [key, value] of Object.entries(token)) {\n if (value === undefined) {\n continue;\n }\n const cssVar = tokenToCssVar[key as keyof ThemeToken];\n if (cssVar) {\n vars[cssVar] = value;\n }\n }\n\n return vars as React.CSSProperties;\n};\n\ninterface Props {\n theme?: ThemeConfig;\n className?: string;\n children: React.ReactNode;\n}\n\nconst ConfigProvider = ({ theme = {}, className, children }: Props) => {\n const parent = useConfig();\n\n const mergedTheme = useMemo<ThemeConfig>(\n () => ({\n ...parent.theme,\n ...theme,\n token: {\n ...parent.theme.token,\n ...theme.token,\n },\n }),\n [parent.theme, theme],\n );\n\n const contextValue = useMemo(() => ({ theme: mergedTheme }), [mergedTheme]);\n\n const cssVars = useMemo(\n () => buildCssVars(mergedTheme.token),\n [mergedTheme.token],\n );\n\n const hasCssVars = Object.keys(cssVars).length > 0;\n const hasDarkMode = mergedTheme.dark !== undefined;\n const needsWrapper = hasCssVars || hasDarkMode || className;\n\n return (\n <ConfigContext.Provider value={contextValue}>\n {needsWrapper ? (\n <div\n className={cn(mergedTheme.dark && 'dark', className)}\n style={hasCssVars ? cssVars : undefined}\n >\n {children}\n </div>\n ) : (\n children\n )}\n </ConfigContext.Provider>\n );\n};\n\nexport default ConfigProvider;\nexport { useConfig };\nexport type { Props, ThemeConfig, ThemeToken };\n"],"mappings":";;;;;;;;AASA,MAAM,gBAAkD;CACtD,cAAc;CACd,wBAAwB;CACxB,iBAAiB;CACjB,iBAAiB;CACjB,WAAW;CACX,qBAAqB;CACrB,cAAc;CACd,wBAAwB;CACxB,gBAAgB;CAChB,0BAA0B;CAC1B,YAAY;CACZ,sBAAsB;CACtB,aAAa;CACb,uBAAuB;CACvB,kBAAkB;CAClB,aAAa;CACb,YAAY;CACZ,WAAW;CACX,cAAc;CACf;AAED,MAAM,gBAAgB,UAA4C;AAChE,KAAI,CAAC,MACH,QAAO,EAAE;CAGX,MAAM,OAA+B,EAAE;AAEvC,MAAK,MAAM,CAAC,KAAK,UAAU,OAAO,QAAQ,MAAM,EAAE;AAChD,MAAI,UAAU,OACZ;EAEF,MAAM,SAAS,cAAc;AAC7B,MAAI,OACF,MAAK,UAAU;;AAInB,QAAO;;AAST,MAAM,kBAAkB,EAAE,QAAQ,EAAE,EAAE,WAAW,eAAsB;CACrE,MAAM,SAAS,WAAW;CAE1B,MAAM,cAAc,eACX;EACL,GAAG,OAAO;EACV,GAAG;EACH,OAAO;GACL,GAAG,OAAO,MAAM;GAChB,GAAG,MAAM;GACV;EACF,GACD,CAAC,OAAO,OAAO,MAAM,CACtB;CAED,MAAM,eAAe,eAAe,EAAE,OAAO,aAAa,GAAG,CAAC,YAAY,CAAC;CAE3E,MAAM,UAAU,cACR,aAAa,YAAY,MAAM,EACrC,CAAC,YAAY,MAAM,CACpB;CAED,MAAM,aAAa,OAAO,KAAK,QAAQ,CAAC,SAAS;CACjD,MAAM,cAAc,YAAY,SAAS;CACzC,MAAM,eAAe,cAAc,eAAe;AAElD,QACE,oBAAC,cAAc;EAAS,OAAO;YAC5B,eACC,oBAAC;GACC,WAAW,GAAG,YAAY,QAAQ,QAAQ,UAAU;GACpD,OAAO,aAAa,UAAU;GAE7B;IACG,GAEN;GAEqB"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
//#region src/providers/ConfigProvider/types.d.ts
|
|
2
|
+
interface ThemeToken {
|
|
3
|
+
colorPrimary?: string;
|
|
4
|
+
colorPrimaryForeground?: string;
|
|
5
|
+
colorBackground?: string;
|
|
6
|
+
colorForeground?: string;
|
|
7
|
+
colorCard?: string;
|
|
8
|
+
colorCardForeground?: string;
|
|
9
|
+
colorPopover?: string;
|
|
10
|
+
colorPopoverForeground?: string;
|
|
11
|
+
colorSecondary?: string;
|
|
12
|
+
colorSecondaryForeground?: string;
|
|
13
|
+
colorMuted?: string;
|
|
14
|
+
colorMutedForeground?: string;
|
|
15
|
+
colorAccent?: string;
|
|
16
|
+
colorAccentForeground?: string;
|
|
17
|
+
colorDestructive?: string;
|
|
18
|
+
colorBorder?: string;
|
|
19
|
+
colorInput?: string;
|
|
20
|
+
colorRing?: string;
|
|
21
|
+
borderRadius?: string;
|
|
22
|
+
}
|
|
23
|
+
interface ThemeConfig {
|
|
24
|
+
token?: ThemeToken;
|
|
25
|
+
dark?: boolean;
|
|
26
|
+
}
|
|
27
|
+
interface ConfigContextValue {
|
|
28
|
+
theme: ThemeConfig;
|
|
29
|
+
}
|
|
30
|
+
//#endregion
|
|
31
|
+
export { ConfigContextValue, ThemeConfig, ThemeToken };
|
|
32
|
+
//# sourceMappingURL=types.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.mts","names":[],"sources":["../../../src/providers/ConfigProvider/types.ts"],"mappings":";UAAiB,UAAA;EAEf,YAAA;EACA,sBAAA;EACA,eAAA;EACA,eAAA;EACA,SAAA;EACA,mBAAA;EACA,YAAA;EACA,sBAAA;EACA,cAAA;EACA,wBAAA;EACA,UAAA;EACA,oBAAA;EACA,WAAA;EACA,qBAAA;EACA,gBAAA;EACA,WAAA;EACA,UAAA;EACA,SAAA;EAGA,YAAA;AAAA;AAAA,UAGe,WAAA;EACf,KAAA,GAAQ,UAAA;EACR,IAAA;AAAA;AAAA,UAGe,kBAAA;EACf,KAAA,EAAO,WAAA;AAAA"}
|