@jbpark/ui-kit 2.4.0 → 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.mjs +3 -3
- package/dist/components/atoms/Button/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.map +1 -1
- package/dist/components/atoms/Switch/index.mjs +16 -15
- 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/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 +57 -47
- 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
package/dist/Menu.d.mts
CHANGED
|
@@ -41,8 +41,8 @@ type ClickEventHandler = (params: {
|
|
|
41
41
|
}) => void;
|
|
42
42
|
declare const MENU_CLASSNAMES: string[];
|
|
43
43
|
type SelectionMap = ReadonlyMap<React.Key, boolean>;
|
|
44
|
-
declare
|
|
45
|
-
declare
|
|
44
|
+
declare const buildSelectionMap: (items: MenuItem[], selectedKeysSet: ReadonlySet<React.Key>) => SelectionMap;
|
|
45
|
+
declare const findKey: (menu: MenuItem, targetKeys: ReadonlySet<React.Key>) => boolean;
|
|
46
46
|
declare const Menu: ({
|
|
47
47
|
items,
|
|
48
48
|
mode,
|
package/dist/Menu.d.mts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Menu.d.mts","names":[],"sources":["../src/components/molecules/Menu/index.tsx"],"mappings":";;;UAQiB,QAAA;EACf,KAAA,EAAO,KAAA,CAAM,SAAA;EACb,GAAA,EAAK,KAAA,CAAM,GAAA;EACX,IAAA;EACA,IAAA;EACA,QAAA,GAAW,QAAA;AAAA;AAAA,UAGI,KAAA;EACf,IAAA;EACA,YAAA,GAAe,KAAA,CAAM,GAAA;EACrB,mBAAA,GAAsB,KAAA,CAAM,GAAA;EAC5B,YAAA,GAAe,YAAA;EACf,MAAA;EACA,YAAA;EACA,UAAA;IACE,QAAA;IACA,OAAA;IACA,IAAA;IACA,KAAA;EAAA;EAGF,MAAA;IACE,QAAA,GAAW,KAAA,CAAM,aAAA;IACjB,OAAA,GAAU,KAAA,CAAM,aAAA;IAChB,IAAA,GAAO,KAAA,CAAM,aAAA;IACb,KAAA,GAAQ,KAAA,CAAM,aAAA;EAAA;EAGhB,OAAA,GAAU,iBAAA;EACV,QAAA,GAAW,iBAAA;AAAA;AAAA,UAGI,SAAA,SAEb,KAAA,EACA,IAAA,CAAK,KAAA,CAAM,wBAAA;EACb,KAAA,GAAQ,QAAA;AAAA;AAAA,KAGE,iBAAA,IAAqB,MAAA;EAC/B,QAAA,EAAU,KAAA,CAAM,UAAA;EAChB,GAAA,EAAK,KAAA,CAAM,GAAA;EACX,OAAA,EAAS,KAAA,CAAM,GAAA;EACf,IAAA,EAAM,QAAA;AAAA;AAAA,cAGK,eAAA;AAAA,KAQD,YAAA,GAAe,WAAA,CAAY,KAAA,CAAM,GAAA;AAAA,
|
|
1
|
+
{"version":3,"file":"Menu.d.mts","names":[],"sources":["../src/components/molecules/Menu/index.tsx"],"mappings":";;;UAQiB,QAAA;EACf,KAAA,EAAO,KAAA,CAAM,SAAA;EACb,GAAA,EAAK,KAAA,CAAM,GAAA;EACX,IAAA;EACA,IAAA;EACA,QAAA,GAAW,QAAA;AAAA;AAAA,UAGI,KAAA;EACf,IAAA;EACA,YAAA,GAAe,KAAA,CAAM,GAAA;EACrB,mBAAA,GAAsB,KAAA,CAAM,GAAA;EAC5B,YAAA,GAAe,YAAA;EACf,MAAA;EACA,YAAA;EACA,UAAA;IACE,QAAA;IACA,OAAA;IACA,IAAA;IACA,KAAA;EAAA;EAGF,MAAA;IACE,QAAA,GAAW,KAAA,CAAM,aAAA;IACjB,OAAA,GAAU,KAAA,CAAM,aAAA;IAChB,IAAA,GAAO,KAAA,CAAM,aAAA;IACb,KAAA,GAAQ,KAAA,CAAM,aAAA;EAAA;EAGhB,OAAA,GAAU,iBAAA;EACV,QAAA,GAAW,iBAAA;AAAA;AAAA,UAGI,SAAA,SAEb,KAAA,EACA,IAAA,CAAK,KAAA,CAAM,wBAAA;EACb,KAAA,GAAQ,QAAA;AAAA;AAAA,KAGE,iBAAA,IAAqB,MAAA;EAC/B,QAAA,EAAU,KAAA,CAAM,UAAA;EAChB,GAAA,EAAK,KAAA,CAAM,GAAA;EACX,OAAA,EAAS,KAAA,CAAM,GAAA;EACf,IAAA,EAAM,QAAA;AAAA;AAAA,cAGK,eAAA;AAAA,KAQD,YAAA,GAAe,WAAA,CAAY,KAAA,CAAM,GAAA;AAAA,cAEhC,iBAAA,GACX,KAAA,EAAO,QAAA,IACP,eAAA,EAAiB,WAAA,CAAY,KAAA,CAAM,GAAA,MAClC,YAAA;AAAA,cAeU,OAAA,GACX,IAAA,EAAM,QAAA,EACN,UAAA,EAAY,WAAA,CAAY,KAAA,CAAM,GAAA;AAAA,cAiB1B,IAAA;EAAQ,KAAA;EAAA,IAAA;EAAA,mBAAA;EAAA,YAAA,EAAA,aAAA;EAAA,SAAA;EAAA,UAAA;EAAA,MAAA;EAAA,MAAA;EAAA,YAAA;EAAA,OAAA;EAAA,QAAA,EAAA,SAAA;EAAA,GAAA;AAAA,GAaX,SAAA,KAAS,kBAAA,CAAA,GAAA,CAAA,OAAA"}
|
package/dist/Menu.mjs
CHANGED
|
@@ -12,7 +12,7 @@ const MENU_CLASSNAMES = [
|
|
|
12
12
|
"shadow-md",
|
|
13
13
|
"rounded-md"
|
|
14
14
|
];
|
|
15
|
-
|
|
15
|
+
const buildSelectionMap = (items, selectedKeysSet) => {
|
|
16
16
|
const map = /* @__PURE__ */ new Map();
|
|
17
17
|
const dfs = (node) => {
|
|
18
18
|
const self = selectedKeysSet.has(node.key);
|
|
@@ -23,14 +23,14 @@ function buildSelectionMap(items, selectedKeysSet) {
|
|
|
23
23
|
};
|
|
24
24
|
items.forEach(dfs);
|
|
25
25
|
return map;
|
|
26
|
-
}
|
|
27
|
-
|
|
26
|
+
};
|
|
27
|
+
const findKey = (menu, targetKeys) => {
|
|
28
28
|
if (targetKeys.has(menu.key)) return true;
|
|
29
29
|
if (menu.children && Array.isArray(menu.children)) {
|
|
30
30
|
for (const child of menu.children) if (findKey(child, targetKeys)) return true;
|
|
31
31
|
}
|
|
32
32
|
return false;
|
|
33
|
-
}
|
|
33
|
+
};
|
|
34
34
|
const Menu = ({ items, mode = "vertical", defaultSelectedKeys = [], selectedKeys: _selectedKeys, className, classNames, styles, offset, inlineOffset, onClick, onSelect: _onSelect, ...props }) => {
|
|
35
35
|
const controlled = _selectedKeys !== void 0;
|
|
36
36
|
const [uncontrolledSelectedKeys, setUncontrolledSelectedKeys] = useState(defaultSelectedKeys ?? []);
|
package/dist/Menu.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Menu.mjs","names":[],"sources":["../src/components/molecules/Menu/index.tsx"],"sourcesContent":["'use client';\n\nimport { useMemo, useState } from 'react';\n\nimport { cn } from '@repo/ui/utils';\n\nimport Item from './Item';\n\nexport interface MenuItem {\n label: React.ReactNode;\n key: React.Key;\n type?: string;\n path?: string;\n children?: MenuItem[];\n}\n\nexport interface Props {\n mode?: 'horizontal' | 'vertical' | 'inline';\n selectedKeys?: React.Key[];\n defaultSelectedKeys?: React.Key[];\n selectionMap?: SelectionMap;\n offset?: [number, number];\n inlineOffset?: number;\n classNames?: {\n rootItem?: string;\n subMenu?: string;\n item?: string;\n label?: string;\n // open?: string;\n };\n styles?: {\n rootItem?: React.CSSProperties;\n subMenu?: React.CSSProperties;\n item?: React.CSSProperties;\n label?: React.CSSProperties;\n // open?: React.CSSProperties;\n };\n onClick?: ClickEventHandler;\n onSelect?: ClickEventHandler;\n}\n\nexport interface MenuProps\n extends\n Props,\n Omit<React.ComponentPropsWithoutRef<'ul'>, 'onClick' | 'onSelect'> {\n items?: MenuItem[];\n}\n\nexport type ClickEventHandler = (params: {\n domEvent: React.MouseEvent;\n key: React.Key;\n keyPath: React.Key[];\n item: MenuItem;\n}) => void;\n\nexport const MENU_CLASSNAMES = [\n 'p-0',\n 'bg-white',\n 'shadow-md',\n 'rounded-md',\n //\n];\n\nexport type SelectionMap = ReadonlyMap<React.Key, boolean>;\n\nexport
|
|
1
|
+
{"version":3,"file":"Menu.mjs","names":[],"sources":["../src/components/molecules/Menu/index.tsx"],"sourcesContent":["'use client';\n\nimport { useMemo, useState } from 'react';\n\nimport { cn } from '@repo/ui/utils';\n\nimport Item from './Item';\n\nexport interface MenuItem {\n label: React.ReactNode;\n key: React.Key;\n type?: string;\n path?: string;\n children?: MenuItem[];\n}\n\nexport interface Props {\n mode?: 'horizontal' | 'vertical' | 'inline';\n selectedKeys?: React.Key[];\n defaultSelectedKeys?: React.Key[];\n selectionMap?: SelectionMap;\n offset?: [number, number];\n inlineOffset?: number;\n classNames?: {\n rootItem?: string;\n subMenu?: string;\n item?: string;\n label?: string;\n // open?: string;\n };\n styles?: {\n rootItem?: React.CSSProperties;\n subMenu?: React.CSSProperties;\n item?: React.CSSProperties;\n label?: React.CSSProperties;\n // open?: React.CSSProperties;\n };\n onClick?: ClickEventHandler;\n onSelect?: ClickEventHandler;\n}\n\nexport interface MenuProps\n extends\n Props,\n Omit<React.ComponentPropsWithoutRef<'ul'>, 'onClick' | 'onSelect'> {\n items?: MenuItem[];\n}\n\nexport type ClickEventHandler = (params: {\n domEvent: React.MouseEvent;\n key: React.Key;\n keyPath: React.Key[];\n item: MenuItem;\n}) => void;\n\nexport const MENU_CLASSNAMES = [\n 'p-0',\n 'bg-white',\n 'shadow-md',\n 'rounded-md',\n //\n];\n\nexport type SelectionMap = ReadonlyMap<React.Key, boolean>;\n\nexport const buildSelectionMap = (\n items: MenuItem[],\n selectedKeysSet: ReadonlySet<React.Key>,\n): SelectionMap => {\n const map = new Map<React.Key, boolean>();\n\n const dfs = (node: MenuItem): boolean => {\n const self = selectedKeysSet.has(node.key);\n const hasSelectedChild = node.children?.some(child => dfs(child)) ?? false;\n const isSelected = self || hasSelectedChild;\n map.set(node.key, isSelected);\n return isSelected;\n };\n\n items.forEach(dfs);\n return map;\n};\n\nexport const findKey = (\n menu: MenuItem,\n targetKeys: ReadonlySet<React.Key>,\n): boolean => {\n if (targetKeys.has(menu.key)) {\n return true;\n }\n\n if (menu.children && Array.isArray(menu.children)) {\n for (const child of menu.children) {\n if (findKey(child, targetKeys)) {\n return true;\n }\n }\n }\n\n return false;\n};\n\nconst Menu = ({\n items,\n mode = 'vertical',\n defaultSelectedKeys = [],\n selectedKeys: _selectedKeys,\n className,\n classNames,\n styles,\n offset,\n inlineOffset,\n onClick,\n onSelect: _onSelect,\n ...props\n}: MenuProps) => {\n const controlled = _selectedKeys !== undefined;\n const [uncontrolledSelectedKeys, setUncontrolledSelectedKeys] = useState<\n React.Key[]\n >(defaultSelectedKeys ?? []);\n\n const selectedKeys = controlled\n ? (_selectedKeys as React.Key[])\n : uncontrolledSelectedKeys;\n\n const selectedKeysSet = useMemo(\n () => new Set<React.Key>(selectedKeys ?? []),\n [selectedKeys],\n );\n\n const selectionMap = useMemo(\n () => buildSelectionMap(items ?? [], selectedKeysSet),\n [items, selectedKeysSet],\n );\n\n const onSelect = (params: {\n domEvent: React.MouseEvent;\n key: React.Key;\n keyPath: React.Key[];\n item: MenuItem;\n }) => {\n if (!controlled) {\n setUncontrolledSelectedKeys([params.key]);\n }\n _onSelect?.(params);\n };\n\n return (\n <ul\n role=\"menu\"\n className={cn(\n MENU_CLASSNAMES,\n mode === 'horizontal' ? 'flex' : 'inline-block',\n className,\n )}\n {...props}\n >\n {items?.map(item => (\n <Item\n root\n {...item}\n key={item.key}\n itemKey={item.key}\n keyPath={[item.key]}\n selectedKeys={selectedKeys}\n selectionMap={selectionMap}\n mode={mode}\n classNames={classNames}\n styles={styles}\n offset={offset}\n inlineOffset={inlineOffset}\n onClick={onClick}\n onSelect={onSelect}\n />\n ))}\n </ul>\n );\n};\n\nexport default Menu;\n"],"mappings":";;;;;;;;AAuDA,MAAa,kBAAkB;CAC7B;CACA;CACA;CACA;CAED;AAID,MAAa,qBACX,OACA,oBACiB;CACjB,MAAM,sBAAM,IAAI,KAAyB;CAEzC,MAAM,OAAO,SAA4B;EACvC,MAAM,OAAO,gBAAgB,IAAI,KAAK,IAAI;EAC1C,MAAM,mBAAmB,KAAK,UAAU,MAAK,UAAS,IAAI,MAAM,CAAC,IAAI;EACrE,MAAM,aAAa,QAAQ;AAC3B,MAAI,IAAI,KAAK,KAAK,WAAW;AAC7B,SAAO;;AAGT,OAAM,QAAQ,IAAI;AAClB,QAAO;;AAGT,MAAa,WACX,MACA,eACY;AACZ,KAAI,WAAW,IAAI,KAAK,IAAI,CAC1B,QAAO;AAGT,KAAI,KAAK,YAAY,MAAM,QAAQ,KAAK,SAAS,EAC/C;OAAK,MAAM,SAAS,KAAK,SACvB,KAAI,QAAQ,OAAO,WAAW,CAC5B,QAAO;;AAKb,QAAO;;AAGT,MAAM,QAAQ,EACZ,OACA,OAAO,YACP,sBAAsB,EAAE,EACxB,cAAc,eACd,WACA,YACA,QACA,QACA,cACA,SACA,UAAU,WACV,GAAG,YACY;CACf,MAAM,aAAa,kBAAkB;CACrC,MAAM,CAAC,0BAA0B,+BAA+B,SAE9D,uBAAuB,EAAE,CAAC;CAE5B,MAAM,eAAe,aAChB,gBACD;CAEJ,MAAM,kBAAkB,cAChB,IAAI,IAAe,gBAAgB,EAAE,CAAC,EAC5C,CAAC,aAAa,CACf;CAED,MAAM,eAAe,cACb,kBAAkB,SAAS,EAAE,EAAE,gBAAgB,EACrD,CAAC,OAAO,gBAAgB,CACzB;CAED,MAAM,YAAY,WAKZ;AACJ,MAAI,CAAC,WACH,6BAA4B,CAAC,OAAO,IAAI,CAAC;AAE3C,cAAY,OAAO;;AAGrB,QACE,oBAAC;EACC,MAAK;EACL,WAAW,GACT,iBACA,SAAS,eAAe,SAAS,gBACjC,UACD;EACD,GAAI;YAEH,OAAO,KAAI,SACV,8BAAC;GACC;GACA,GAAI;GACJ,KAAK,KAAK;GACV,SAAS,KAAK;GACd,SAAS,CAAC,KAAK,IAAI;GACL;GACA;GACR;GACM;GACJ;GACA;GACM;GACL;GACC;IACV,CACF;GACC"}
|
|
@@ -10,8 +10,8 @@ import { jsx, jsxs } from "react/jsx-runtime";
|
|
|
10
10
|
const Core = Button$1;
|
|
11
11
|
const variantClasses = {
|
|
12
12
|
solid: "",
|
|
13
|
-
outlined: cn("border border-[
|
|
14
|
-
dashed: cn("border border-dashed border-[
|
|
13
|
+
outlined: cn("border border-[color-mix(in_oklch,var(--btn-border),transparent_50%)]", "bg-background text-foreground", "hover:bg-accent"),
|
|
14
|
+
dashed: cn("border border-dashed border-[color-mix(in_oklch,var(--btn-border),transparent_50%)]", "bg-background text-foreground", "hover:bg-accent"),
|
|
15
15
|
filled: cn("bg-muted text-foreground", "hover:bg-muted/80"),
|
|
16
16
|
text: cn("bg-transparent text-foreground", "hover:bg-accent"),
|
|
17
17
|
link: cn("bg-transparent text-primary", "underline-offset-4 hover:underline", "hover:bg-primary/10")
|
|
@@ -54,7 +54,7 @@ const Button = ({ icon, className, type = "default", variant, size = "middle", c
|
|
|
54
54
|
"active:bg-(--btn-bg-active)",
|
|
55
55
|
"text-(--btn-fg)",
|
|
56
56
|
"border-(--btn-border)"
|
|
57
|
-
] : ["text-(--btn-bg)", "border-[
|
|
57
|
+
] : ["text-(--btn-bg)", "border-[color-mix(in_oklch,var(--btn-border),transparent_50%)]"]), className),
|
|
58
58
|
onMouseDown: (e) => {
|
|
59
59
|
e.preventDefault();
|
|
60
60
|
onMouseDown?.(e);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.mjs","names":["button.Button"],"sources":["../../../../src/components/atoms/Button/index.tsx"],"sourcesContent":["'use client';\n\nimport { LoaderCircle } from 'lucide-react';\n\nimport { button } from '@repo/ui/core';\nimport { cn } from '@repo/ui/utils';\n\nconst Core = button.Button;\ntype ButtonProps = button.Props;\n\ntype PresetColors =\n | 'blue'\n | 'purple'\n | 'cyan'\n | 'green'\n | 'magenta'\n | 'pink'\n | 'red'\n | 'orange'\n | 'yellow'\n | 'volcano'\n | 'geekblue'\n | 'lime'\n | 'gold';\n\nexport interface Props extends Omit<ButtonProps, 'size' | 'variant' | 'type'> {\n icon?: React.ReactNode;\n block?: boolean;\n danger?: boolean;\n disabled?: boolean;\n size?: 'small' | 'middle' | 'large';\n type?: 'primary' | 'default' | 'dashed' | 'text' | 'link';\n variant?: 'solid' | 'outlined' | 'dashed' | 'filled' | 'text' | 'link';\n shape?: 'default' | 'circle' | 'round';\n color?: PresetColors | 'default' | 'primary' | 'danger';\n loading?: boolean | { icon: React.ReactNode };\n}\n\nconst variantClasses: Record<string, string> = {\n solid: '',\n outlined: cn(\n 'border border-[
|
|
1
|
+
{"version":3,"file":"index.mjs","names":["button.Button"],"sources":["../../../../src/components/atoms/Button/index.tsx"],"sourcesContent":["'use client';\n\nimport { LoaderCircle } from 'lucide-react';\n\nimport { button } from '@repo/ui/core';\nimport { cn } from '@repo/ui/utils';\n\nconst Core = button.Button;\ntype ButtonProps = button.Props;\n\ntype PresetColors =\n | 'blue'\n | 'purple'\n | 'cyan'\n | 'green'\n | 'magenta'\n | 'pink'\n | 'red'\n | 'orange'\n | 'yellow'\n | 'volcano'\n | 'geekblue'\n | 'lime'\n | 'gold';\n\nexport interface Props extends Omit<ButtonProps, 'size' | 'variant' | 'type'> {\n icon?: React.ReactNode;\n block?: boolean;\n danger?: boolean;\n disabled?: boolean;\n size?: 'small' | 'middle' | 'large';\n type?: 'primary' | 'default' | 'dashed' | 'text' | 'link';\n variant?: 'solid' | 'outlined' | 'dashed' | 'filled' | 'text' | 'link';\n shape?: 'default' | 'circle' | 'round';\n color?: PresetColors | 'default' | 'primary' | 'danger';\n loading?: boolean | { icon: React.ReactNode };\n}\n\nconst variantClasses: Record<string, string> = {\n solid: '',\n outlined: cn(\n 'border border-[color-mix(in_oklch,var(--btn-border),transparent_50%)]',\n 'bg-background text-foreground',\n 'hover:bg-accent',\n ),\n dashed: cn(\n 'border border-dashed border-[color-mix(in_oklch,var(--btn-border),transparent_50%)]',\n 'bg-background text-foreground',\n 'hover:bg-accent',\n ),\n filled: cn('bg-muted text-foreground', 'hover:bg-muted/80'),\n text: cn('bg-transparent text-foreground', 'hover:bg-accent'),\n link: cn(\n 'bg-transparent text-primary',\n 'underline-offset-4 hover:underline',\n 'hover:bg-primary/10',\n ),\n};\n\nconst typeToVariant: Record<string, string> = {\n primary: 'solid',\n default: 'outlined',\n dashed: 'dashed',\n text: 'text',\n link: 'link',\n};\n\nconst sizesClasses: Record<string, string> = {\n small: 'h-6 px-3 text-sm',\n middle: 'h-8 px-4 text-base',\n large: 'h-10 px-5 text-lg',\n};\n\nconst iconClasses: Record<string, string> = {\n small: `size-6 [&_svg:not([class*='size-'])]:size-3`,\n middle: `size-8 [&_svg:not([class*='size-'])]:size-4`,\n large: `size-10 [&_svg:not([class*='size-'])]:size-5`,\n};\n\nconst shapesClasses = {\n default: 'rounded-sm',\n circle: 'rounded-full',\n round: 'rounded-2xl',\n};\n\nconst Button = ({\n icon,\n className,\n type = 'default',\n variant,\n size = 'middle',\n color = 'default',\n shape = 'default',\n block = false,\n disabled,\n loading,\n danger,\n children,\n onMouseDown,\n ...props\n}: Props) => {\n const iconOnly = icon && !children;\n const computedColor = danger ? 'danger' : color;\n const colored = computedColor && computedColor !== 'default';\n const resolvedVariant = variant ?? typeToVariant[type] ?? 'solid';\n\n const displayIcon = loading ? (\n typeof loading === 'object' ? (\n loading.icon\n ) : (\n <LoaderCircle className=\"animate-spin\" />\n )\n ) : (\n icon\n );\n\n return (\n <Core\n disabled={disabled}\n variant=\"default\"\n data-color={computedColor}\n className={cn(\n 'inline-flex items-center justify-center gap-x-2',\n 'rounded-lg',\n 'cursor-pointer',\n 'h-auto py-0',\n 'transition-all',\n variantClasses[resolvedVariant],\n sizesClasses[size || 'medium'],\n iconOnly && ['p-0', iconClasses[size || 'medium']],\n shapesClasses[shape || 'default'],\n block && 'w-full',\n colored &&\n (resolvedVariant === 'solid'\n ? [\n 'bg-(--btn-bg)',\n 'hover:bg-(--btn-bg-hover)',\n 'active:bg-(--btn-bg-active)',\n 'text-(--btn-fg)',\n 'border-(--btn-border)',\n ]\n : [\n 'text-(--btn-bg)',\n 'border-[color-mix(in_oklch,var(--btn-border),transparent_50%)]',\n //\n ]),\n className,\n //\n )}\n onMouseDown={e => {\n e.preventDefault();\n onMouseDown?.(e);\n }}\n {...props}\n >\n {displayIcon}\n {children}\n </Core>\n );\n};\n\nexport default Button;\n"],"mappings":";;;;;;;;;AAOA,MAAM,OAAOA;AA+Bb,MAAM,iBAAyC;CAC7C,OAAO;CACP,UAAU,GACR,yEACA,iCACA,kBACD;CACD,QAAQ,GACN,uFACA,iCACA,kBACD;CACD,QAAQ,GAAG,4BAA4B,oBAAoB;CAC3D,MAAM,GAAG,kCAAkC,kBAAkB;CAC7D,MAAM,GACJ,+BACA,sCACA,sBACD;CACF;AAED,MAAM,gBAAwC;CAC5C,SAAS;CACT,SAAS;CACT,QAAQ;CACR,MAAM;CACN,MAAM;CACP;AAED,MAAM,eAAuC;CAC3C,OAAO;CACP,QAAQ;CACR,OAAO;CACR;AAED,MAAM,cAAsC;CAC1C,OAAO;CACP,QAAQ;CACR,OAAO;CACR;AAED,MAAM,gBAAgB;CACpB,SAAS;CACT,QAAQ;CACR,OAAO;CACR;AAED,MAAM,UAAU,EACd,MACA,WACA,OAAO,WACP,SACA,OAAO,UACP,QAAQ,WACR,QAAQ,WACR,QAAQ,OACR,UACA,SACA,QACA,UACA,aACA,GAAG,YACQ;CACX,MAAM,WAAW,QAAQ,CAAC;CAC1B,MAAM,gBAAgB,SAAS,WAAW;CAC1C,MAAM,UAAU,iBAAiB,kBAAkB;CACnD,MAAM,kBAAkB,WAAW,cAAc,SAAS;CAE1D,MAAM,cAAc,UAClB,OAAO,YAAY,WACjB,QAAQ,OAER,oBAAC,gBAAa,WAAU,iBAAiB,GAG3C;AAGF,QACE,qBAAC;EACW;EACV,SAAQ;EACR,cAAY;EACZ,WAAW,GACT,mDACA,cACA,kBACA,eACA,kBACA,eAAe,kBACf,aAAa,QAAQ,WACrB,YAAY,CAAC,OAAO,YAAY,QAAQ,UAAU,EAClD,cAAc,SAAS,YACvB,SAAS,UACT,YACG,oBAAoB,UACjB;GACE;GACA;GACA;GACA;GACA;GACD,GACD,CACE,mBACA,iEAED,GACP,UAED;EACD,cAAa,MAAK;AAChB,KAAE,gBAAgB;AAClB,iBAAc,EAAE;;EAElB,GAAI;aAEH,aACA;GACI"}
|
|
@@ -36,7 +36,7 @@ declare const Skeleton: {
|
|
|
36
36
|
height,
|
|
37
37
|
children,
|
|
38
38
|
...props
|
|
39
|
-
}: Props): string | number | bigint | boolean | Iterable<react.ReactNode> | Promise<string | number | bigint | boolean | react.ReactPortal | react.ReactElement<unknown, string | react.JSXElementConstructor<any>> | Iterable<react.ReactNode> | null | undefined> |
|
|
39
|
+
}: Props): string | number | bigint | boolean | 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> | null | undefined;
|
|
40
40
|
Button: ({
|
|
41
41
|
className,
|
|
42
42
|
...props
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.mts","names":[],"sources":["../../../../src/components/atoms/Skeleton/index.tsx"],"mappings":";;;;;;UAYiB,KAAA,SAAc,KAAA,CAAM,wBAAA;EACnC,MAAA;EACA,OAAA;EACA,MAAA;EACA,IAAA;EACA,KAAA;EACA,GAAA;EACA,SAAA;EACA,KAAA;EACA,MAAA;EACA,UAAA;IACE,OAAA;IACA,MAAA;IACA,IAAA;EAAA;AAAA;AAAA,cAUE,QAAA;EAAA;;;;;;;;;;;;;;;KAeH,KAAA,wCAAK,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/atoms/Skeleton/index.tsx"],"mappings":";;;;;;UAYiB,KAAA,SAAc,KAAA,CAAM,wBAAA;EACnC,MAAA;EACA,OAAA;EACA,MAAA;EACA,IAAA;EACA,KAAA;EACA,GAAA;EACA,SAAA;EACA,KAAA;EACA,MAAA;EACA,UAAA;IACE,OAAA;IACA,MAAA;IACA,IAAA;EAAA;AAAA;AAAA,cAUE,QAAA;EAAA;;;;;;;;;;;;;;;KAeH,KAAA,wCAAK,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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.mts","names":[],"sources":["../../../../src/components/atoms/Switch/index.tsx"],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"index.d.mts","names":[],"sources":["../../../../src/components/atoms/Switch/index.tsx"],"mappings":";;;UAgCU,KAAA,SAAc,IAAA,CACtB,KAAA,CAAM,wBAAA;EAGN,UAAA;IACE,KAAA;IACA,MAAA;EAAA;EAEF,IAAA;EACA,cAAA;EACA,OAAA;EACA,QAAA;EACA,QAAA,IAAY,OAAA;EACZ,eAAA,GAAkB,KAAA,CAAM,SAAA;EACxB,iBAAA,GAAoB,KAAA,CAAM,SAAA;AAAA;AAAA,cAGtB,MAAA;EAAU,SAAA;EAAA,UAAA;EAAA,IAAA;EAAA,cAAA;EAAA,OAAA,EAAA,QAAA;EAAA,QAAA,EAAA,SAAA;EAAA,eAAA;EAAA,iBAAA;EAAA,GAAA;AAAA,GAUb,KAAA,KAAK,kBAAA,CAAA,GAAA,CAAA,OAAA"}
|
|
@@ -11,17 +11,21 @@ const { Switch: Core } = switch_exports;
|
|
|
11
11
|
const sizeConfig = {
|
|
12
12
|
medium: {
|
|
13
13
|
core: "default",
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
14
|
+
track: "h-8! w-12!",
|
|
15
|
+
handle: "size-6!",
|
|
16
|
+
handleChecked: "data-[state=unchecked]:left-0.5 data-[state=checked]:left-[calc(100%-26px)]",
|
|
17
|
+
fontSize: "text-xs",
|
|
18
|
+
marginChecked: "mr-7 ml-2",
|
|
19
|
+
marginUnchecked: "mr-2 ml-7"
|
|
18
20
|
},
|
|
19
21
|
small: {
|
|
20
22
|
core: "sm",
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
23
|
+
track: "h-6! w-10!",
|
|
24
|
+
handle: "size-5!",
|
|
25
|
+
handleChecked: "data-[state=unchecked]:left-0.5 data-[state=checked]:left-[calc(100%-22px)]",
|
|
26
|
+
fontSize: "text-[10px]",
|
|
27
|
+
marginChecked: "mr-6 ml-1.5",
|
|
28
|
+
marginUnchecked: "mr-1.5 ml-6"
|
|
25
29
|
}
|
|
26
30
|
};
|
|
27
31
|
const Switch = ({ className, classNames, size = "medium", defaultChecked, checked: _checked, onChange: _onChange = () => {}, checkedChildren, unCheckedChildren, ...props }) => {
|
|
@@ -37,18 +41,15 @@ const Switch = ({ className, classNames, size = "medium", defaultChecked, checke
|
|
|
37
41
|
return /* @__PURE__ */ jsx(Core, {
|
|
38
42
|
checked,
|
|
39
43
|
size: config.core,
|
|
40
|
-
className: cn("relative", hasChildren && "w-auto! overflow-hidden", className, classNames?.track),
|
|
41
|
-
handleClassName: cn(
|
|
42
|
-
"!absolute top-1/2 !-translate-y-1/2 !translate-x-0",
|
|
43
|
-
"transition-[left] duration-200",
|
|
44
|
-
config.handleChecked
|
|
45
|
-
], classNames?.handle),
|
|
44
|
+
className: cn("relative", config.track, hasChildren && "w-auto! overflow-hidden", className, classNames?.track),
|
|
45
|
+
handleClassName: cn(config.handle, "!absolute top-1/2 !-translate-y-1/2 !translate-x-0", "transition-[left] duration-200 will-change-[left]", config.handleChecked, classNames?.handle),
|
|
46
46
|
onCheckedChange: (checked) => {
|
|
47
47
|
onChange(checked);
|
|
48
48
|
},
|
|
49
49
|
...props,
|
|
50
50
|
children: hasChildren && /* @__PURE__ */ jsxs("span", {
|
|
51
|
-
className: cn(
|
|
51
|
+
className: cn(`grid leading-none text-white transition-[margin] duration-200
|
|
52
|
+
will-change-[margin]`, config.fontSize, checked ? config.marginChecked : config.marginUnchecked),
|
|
52
53
|
children: [/* @__PURE__ */ jsx("span", {
|
|
53
54
|
className: cn("col-start-1 row-start-1 transition-opacity duration-200", checked ? "opacity-100" : "opacity-0"),
|
|
54
55
|
children: checkedChildren
|
|
@@ -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\nconst sizeConfig = {\n medium: {\n core: 'default' as const,\n handleChecked:\n 'data-[state=unchecked]:left-0 data-[state=checked]:left-[calc(100%-
|
|
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/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"}
|
package/dist/style.css
CHANGED
|
@@ -353,17 +353,17 @@
|
|
|
353
353
|
.mt-auto {
|
|
354
354
|
margin-top: auto;
|
|
355
355
|
}
|
|
356
|
-
.mr-
|
|
357
|
-
margin-right: calc(var(--spacing) *
|
|
356
|
+
.mr-1\.5 {
|
|
357
|
+
margin-right: calc(var(--spacing) * 1.5);
|
|
358
358
|
}
|
|
359
|
-
.mr-
|
|
360
|
-
margin-right: calc(var(--spacing) *
|
|
359
|
+
.mr-2 {
|
|
360
|
+
margin-right: calc(var(--spacing) * 2);
|
|
361
361
|
}
|
|
362
|
-
.mr-
|
|
363
|
-
margin-right: calc(var(--spacing) *
|
|
362
|
+
.mr-6 {
|
|
363
|
+
margin-right: calc(var(--spacing) * 6);
|
|
364
364
|
}
|
|
365
|
-
.mr-
|
|
366
|
-
margin-right: calc(var(--spacing) *
|
|
365
|
+
.mr-7 {
|
|
366
|
+
margin-right: calc(var(--spacing) * 7);
|
|
367
367
|
}
|
|
368
368
|
.mb-3 {
|
|
369
369
|
margin-bottom: calc(var(--spacing) * 3);
|
|
@@ -371,20 +371,20 @@
|
|
|
371
371
|
.mb-4 {
|
|
372
372
|
margin-bottom: calc(var(--spacing) * 4);
|
|
373
373
|
}
|
|
374
|
-
.ml-
|
|
375
|
-
margin-left: calc(var(--spacing) *
|
|
374
|
+
.ml-1\.5 {
|
|
375
|
+
margin-left: calc(var(--spacing) * 1.5);
|
|
376
376
|
}
|
|
377
|
-
.ml-
|
|
378
|
-
margin-left: calc(var(--spacing) *
|
|
379
|
-
}
|
|
380
|
-
.ml-3\.5 {
|
|
381
|
-
margin-left: calc(var(--spacing) * 3.5);
|
|
377
|
+
.ml-2 {
|
|
378
|
+
margin-left: calc(var(--spacing) * 2);
|
|
382
379
|
}
|
|
383
380
|
.ml-4 {
|
|
384
381
|
margin-left: calc(var(--spacing) * 4);
|
|
385
382
|
}
|
|
386
|
-
.ml-
|
|
387
|
-
margin-left: calc(var(--spacing) *
|
|
383
|
+
.ml-6 {
|
|
384
|
+
margin-left: calc(var(--spacing) * 6);
|
|
385
|
+
}
|
|
386
|
+
.ml-7 {
|
|
387
|
+
margin-left: calc(var(--spacing) * 7);
|
|
388
388
|
}
|
|
389
389
|
.box-content {
|
|
390
390
|
box-sizing: content-box;
|
|
@@ -428,10 +428,18 @@
|
|
|
428
428
|
width: calc(var(--spacing) * 4);
|
|
429
429
|
height: calc(var(--spacing) * 4);
|
|
430
430
|
}
|
|
431
|
+
.size-5\! {
|
|
432
|
+
width: calc(var(--spacing) * 5) !important;
|
|
433
|
+
height: calc(var(--spacing) * 5) !important;
|
|
434
|
+
}
|
|
431
435
|
.size-6 {
|
|
432
436
|
width: calc(var(--spacing) * 6);
|
|
433
437
|
height: calc(var(--spacing) * 6);
|
|
434
438
|
}
|
|
439
|
+
.size-6\! {
|
|
440
|
+
width: calc(var(--spacing) * 6) !important;
|
|
441
|
+
height: calc(var(--spacing) * 6) !important;
|
|
442
|
+
}
|
|
435
443
|
.size-8 {
|
|
436
444
|
width: calc(var(--spacing) * 8);
|
|
437
445
|
height: calc(var(--spacing) * 8);
|
|
@@ -456,9 +464,15 @@
|
|
|
456
464
|
.h-6 {
|
|
457
465
|
height: calc(var(--spacing) * 6);
|
|
458
466
|
}
|
|
467
|
+
.h-6\! {
|
|
468
|
+
height: calc(var(--spacing) * 6) !important;
|
|
469
|
+
}
|
|
459
470
|
.h-8 {
|
|
460
471
|
height: calc(var(--spacing) * 8);
|
|
461
472
|
}
|
|
473
|
+
.h-8\! {
|
|
474
|
+
height: calc(var(--spacing) * 8) !important;
|
|
475
|
+
}
|
|
462
476
|
.h-9 {
|
|
463
477
|
height: calc(var(--spacing) * 9);
|
|
464
478
|
}
|
|
@@ -495,9 +509,15 @@
|
|
|
495
509
|
.w-4 {
|
|
496
510
|
width: calc(var(--spacing) * 4);
|
|
497
511
|
}
|
|
512
|
+
.w-10\! {
|
|
513
|
+
width: calc(var(--spacing) * 10) !important;
|
|
514
|
+
}
|
|
498
515
|
.w-12 {
|
|
499
516
|
width: calc(var(--spacing) * 12);
|
|
500
517
|
}
|
|
518
|
+
.w-12\! {
|
|
519
|
+
width: calc(var(--spacing) * 12) !important;
|
|
520
|
+
}
|
|
501
521
|
.w-15 {
|
|
502
522
|
width: calc(var(--spacing) * 15);
|
|
503
523
|
}
|
|
@@ -835,8 +855,11 @@
|
|
|
835
855
|
.border-\(--btn-border\) {
|
|
836
856
|
border-color: var(--btn-border);
|
|
837
857
|
}
|
|
838
|
-
.border-\[
|
|
839
|
-
border-color:
|
|
858
|
+
.border-\[color-mix\(in_oklch\,var\(--btn-border\)\,transparent_50\%\)\] {
|
|
859
|
+
border-color: var(--btn-border);
|
|
860
|
+
@supports (color: color-mix(in lab, red, red)) {
|
|
861
|
+
border-color: color-mix(in oklch,var(--btn-border),transparent 50%);
|
|
862
|
+
}
|
|
840
863
|
}
|
|
841
864
|
.border-current {
|
|
842
865
|
border-color: currentcolor;
|
|
@@ -1046,11 +1069,8 @@
|
|
|
1046
1069
|
font-size: var(--text-xs);
|
|
1047
1070
|
line-height: var(--tw-leading, var(--text-xs--line-height));
|
|
1048
1071
|
}
|
|
1049
|
-
.text-\[
|
|
1050
|
-
font-size:
|
|
1051
|
-
}
|
|
1052
|
-
.text-\[9px\] {
|
|
1053
|
-
font-size: 9px;
|
|
1072
|
+
.text-\[10px\] {
|
|
1073
|
+
font-size: 10px;
|
|
1054
1074
|
}
|
|
1055
1075
|
.leading-5\.75 {
|
|
1056
1076
|
--tw-leading: calc(var(--spacing) * 5.75);
|
|
@@ -1255,6 +1275,12 @@
|
|
|
1255
1275
|
--tw-duration: 200ms;
|
|
1256
1276
|
transition-duration: 200ms;
|
|
1257
1277
|
}
|
|
1278
|
+
.will-change-\[left\] {
|
|
1279
|
+
will-change: left;
|
|
1280
|
+
}
|
|
1281
|
+
.will-change-\[margin\] {
|
|
1282
|
+
will-change: margin;
|
|
1283
|
+
}
|
|
1258
1284
|
.outline-none {
|
|
1259
1285
|
--tw-outline-style: none;
|
|
1260
1286
|
outline-style: none;
|
|
@@ -2135,14 +2161,14 @@
|
|
|
2135
2161
|
}
|
|
2136
2162
|
}
|
|
2137
2163
|
}
|
|
2138
|
-
.data-\[state\=checked\]\:left-\[calc\(100\%-
|
|
2164
|
+
.data-\[state\=checked\]\:left-\[calc\(100\%-22px\)\] {
|
|
2139
2165
|
&[data-state="checked"] {
|
|
2140
|
-
left: calc(100% -
|
|
2166
|
+
left: calc(100% - 22px);
|
|
2141
2167
|
}
|
|
2142
2168
|
}
|
|
2143
|
-
.data-\[state\=checked\]\:left-\[calc\(100\%-
|
|
2169
|
+
.data-\[state\=checked\]\:left-\[calc\(100\%-26px\)\] {
|
|
2144
2170
|
&[data-state="checked"] {
|
|
2145
|
-
left: calc(100% -
|
|
2171
|
+
left: calc(100% - 26px);
|
|
2146
2172
|
}
|
|
2147
2173
|
}
|
|
2148
2174
|
.data-\[state\=checked\]\:translate-x-\[calc\(100\%-2px\)\] {
|
|
@@ -2176,9 +2202,9 @@
|
|
|
2176
2202
|
color: var(--muted-foreground);
|
|
2177
2203
|
}
|
|
2178
2204
|
}
|
|
2179
|
-
.data-\[state\=unchecked\]\:left-0 {
|
|
2205
|
+
.data-\[state\=unchecked\]\:left-0\.5 {
|
|
2180
2206
|
&[data-state="unchecked"] {
|
|
2181
|
-
left: calc(var(--spacing) * 0);
|
|
2207
|
+
left: calc(var(--spacing) * 0.5);
|
|
2182
2208
|
}
|
|
2183
2209
|
}
|
|
2184
2210
|
.data-\[state\=unchecked\]\:translate-x-0 {
|
|
@@ -2746,69 +2772,53 @@
|
|
|
2746
2772
|
}
|
|
2747
2773
|
[data-slot='button'][data-color='default'] {
|
|
2748
2774
|
--btn-bg: var(--muted);
|
|
2749
|
-
--btn-border:
|
|
2775
|
+
--btn-border: var(--muted-foreground);
|
|
2750
2776
|
}
|
|
2751
2777
|
[data-slot='button'][data-color='primary'] {
|
|
2752
2778
|
--btn-bg: var(--primary);
|
|
2753
|
-
--btn-border: var(--primary);
|
|
2754
2779
|
--btn-fg: var(--primary-foreground);
|
|
2755
2780
|
}
|
|
2756
2781
|
[data-slot='button'][data-color='danger'] {
|
|
2757
2782
|
--btn-bg: var(--destructive);
|
|
2758
|
-
--btn-border: 239 68 68;
|
|
2759
|
-
--btn-fg: white;
|
|
2760
2783
|
}
|
|
2761
2784
|
[data-slot='button'][data-color='blue'] {
|
|
2762
2785
|
--btn-bg: #3b82f6;
|
|
2763
|
-
--btn-border: 59 130 246;
|
|
2764
2786
|
}
|
|
2765
2787
|
[data-slot='button'][data-color='purple'] {
|
|
2766
2788
|
--btn-bg: #a855f7;
|
|
2767
|
-
--btn-border: 168 85 247;
|
|
2768
2789
|
}
|
|
2769
2790
|
[data-slot='button'][data-color='cyan'] {
|
|
2770
2791
|
--btn-bg: #06b6d4;
|
|
2771
|
-
--btn-border: 6 182 212;
|
|
2772
2792
|
}
|
|
2773
2793
|
[data-slot='button'][data-color='green'] {
|
|
2774
2794
|
--btn-bg: #22c55e;
|
|
2775
|
-
--btn-border: 34 197 94;
|
|
2776
2795
|
}
|
|
2777
2796
|
[data-slot='button'][data-color='magenta'] {
|
|
2778
2797
|
--btn-bg: #d946ef;
|
|
2779
|
-
--btn-border: 217 70 239;
|
|
2780
2798
|
}
|
|
2781
2799
|
[data-slot='button'][data-color='pink'] {
|
|
2782
2800
|
--btn-bg: #ec4899;
|
|
2783
|
-
--btn-border: 236 72 153;
|
|
2784
2801
|
}
|
|
2785
2802
|
[data-slot='button'][data-color='red'] {
|
|
2786
2803
|
--btn-bg: #ef4444;
|
|
2787
|
-
--btn-border: 239 68 68;
|
|
2788
2804
|
}
|
|
2789
2805
|
[data-slot='button'][data-color='orange'] {
|
|
2790
2806
|
--btn-bg: #f97316;
|
|
2791
|
-
--btn-border: 249 115 22;
|
|
2792
2807
|
}
|
|
2793
2808
|
[data-slot='button'][data-color='yellow'] {
|
|
2794
2809
|
--btn-bg: #eab308;
|
|
2795
|
-
--btn-border: 234 179 8;
|
|
2796
2810
|
}
|
|
2797
2811
|
[data-slot='button'][data-color='volcano'] {
|
|
2798
2812
|
--btn-bg: #ea580c;
|
|
2799
|
-
--btn-border: 234 88 12;
|
|
2800
2813
|
}
|
|
2801
2814
|
[data-slot='button'][data-color='geekblue'] {
|
|
2802
2815
|
--btn-bg: #6366f1;
|
|
2803
|
-
--btn-border: 99 102 241;
|
|
2804
2816
|
}
|
|
2805
2817
|
[data-slot='button'][data-color='lime'] {
|
|
2806
2818
|
--btn-bg: #84cc16;
|
|
2807
|
-
--btn-border: 132 204 22;
|
|
2808
2819
|
}
|
|
2809
2820
|
[data-slot='button'][data-color='gold'] {
|
|
2810
2821
|
--btn-bg: #f59e0b;
|
|
2811
|
-
--btn-border: 245 158 11;
|
|
2812
2822
|
}
|
|
2813
2823
|
}
|
|
2814
2824
|
@property --tw-translate-x {
|
package/dist/utils.d.mts
CHANGED
|
@@ -2,8 +2,8 @@ import * as React$1 from "react";
|
|
|
2
2
|
import { ClassValue } from "clsx";
|
|
3
3
|
|
|
4
4
|
//#region src/lib/utils/index.d.ts
|
|
5
|
-
declare
|
|
6
|
-
declare
|
|
5
|
+
declare const cn: (...inputs: ClassValue[]) => string;
|
|
6
|
+
declare const renderConditional: <T extends React$1.ReactNode>(value: T, wrapper?: (value: NonNullable<T>) => React$1.ReactNode) => React$1.ReactNode;
|
|
7
7
|
//#endregion
|
|
8
8
|
export { cn, renderConditional };
|
|
9
9
|
//# sourceMappingURL=utils.d.mts.map
|
package/dist/utils.d.mts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.mts","names":[],"sources":["../src/lib/utils/index.ts"],"mappings":";;;;
|
|
1
|
+
{"version":3,"file":"utils.d.mts","names":[],"sources":["../src/lib/utils/index.ts"],"mappings":";;;;cAKa,EAAA,MAAS,MAAA,EAAQ,UAAA;AAAA,cAIjB,iBAAA,aAA+B,OAAA,CAAM,SAAA,EAChD,KAAA,EAAO,CAAA,EACP,OAAA,IAAW,KAAA,EAAO,WAAA,CAAY,CAAA,MAAO,OAAA,CAAM,SAAA,KAC1C,OAAA,CAAM,SAAA"}
|
package/dist/utils.mjs
CHANGED
|
@@ -3,14 +3,14 @@ import { clsx } from "clsx";
|
|
|
3
3
|
import { twMerge } from "tailwind-merge";
|
|
4
4
|
|
|
5
5
|
//#region src/lib/utils/index.ts
|
|
6
|
-
|
|
6
|
+
const cn = (...inputs) => {
|
|
7
7
|
return twMerge(clsx(inputs));
|
|
8
|
-
}
|
|
9
|
-
|
|
8
|
+
};
|
|
9
|
+
const renderConditional = (value, wrapper) => {
|
|
10
10
|
if (value === null || value === void 0) return null;
|
|
11
11
|
if (React$1.isValidElement(value)) return value;
|
|
12
12
|
return wrapper ? wrapper(value) : value;
|
|
13
|
-
}
|
|
13
|
+
};
|
|
14
14
|
|
|
15
15
|
//#endregion
|
|
16
16
|
export { cn, renderConditional };
|
package/dist/utils.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.mjs","names":["React"],"sources":["../src/lib/utils/index.ts"],"sourcesContent":["import * as React from 'react';\n\nimport { type ClassValue, clsx } from 'clsx';\nimport { twMerge } from 'tailwind-merge';\n\nexport
|
|
1
|
+
{"version":3,"file":"utils.mjs","names":["React"],"sources":["../src/lib/utils/index.ts"],"sourcesContent":["import * as React from 'react';\n\nimport { type ClassValue, clsx } from 'clsx';\nimport { twMerge } from 'tailwind-merge';\n\nexport const cn = (...inputs: ClassValue[]) => {\n return twMerge(clsx(inputs));\n};\n\nexport const renderConditional = <T extends React.ReactNode>(\n value: T,\n wrapper?: (value: NonNullable<T>) => React.ReactNode,\n): React.ReactNode => {\n if (value === null || value === undefined) {\n return null;\n }\n\n if (React.isValidElement(value)) {\n return value;\n }\n\n return wrapper ? wrapper(value as NonNullable<T>) : value;\n};\n"],"mappings":";;;;;AAKA,MAAa,MAAM,GAAG,WAAyB;AAC7C,QAAO,QAAQ,KAAK,OAAO,CAAC;;AAG9B,MAAa,qBACX,OACA,YACoB;AACpB,KAAI,UAAU,QAAQ,UAAU,OAC9B,QAAO;AAGT,KAAIA,QAAM,eAAe,MAAM,CAC7B,QAAO;AAGT,QAAO,UAAU,QAAQ,MAAwB,GAAG"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@jbpark/ui-kit",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.5.0",
|
|
4
4
|
"description": "Modern React UI component library built with TypeScript, Tailwind CSS, and Radix UI. Featuring atoms, molecules, organisms and layout templates for building beautiful interfaces.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"react",
|