@jbpark/ui-kit 5.4.4 → 5.4.6
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/components/molecules/upload.d.mts.map +1 -1
- package/dist/components/molecules/upload.mjs +3 -2
- package/dist/components/molecules/upload.mjs.map +1 -1
- package/dist/components/organisms/imperative-stack.mjs +3 -2
- package/dist/components/organisms/imperative-stack.mjs.map +1 -1
- package/dist/core/badge.d.mts +1 -1
- package/dist/core/button.d.mts +1 -1
- package/dist/core/label.d.mts +4 -4
- package/dist/core/label.d.mts.map +1 -1
- package/dist/core/label.mjs +5 -5
- package/dist/core/label.mjs.map +1 -1
- package/dist/core/radio-group.d.mts +5 -5
- package/dist/core/radio-group.d.mts.map +1 -1
- package/dist/core/radio-group.mjs +8 -8
- package/dist/core/radio-group.mjs.map +1 -1
- package/dist/core/select.d.mts +13 -13
- package/dist/core/select.d.mts.map +1 -1
- package/dist/core/select.mjs +19 -19
- package/dist/core/select.mjs.map +1 -1
- package/dist/core/separator.d.mts +4 -4
- package/dist/core/separator.d.mts.map +1 -1
- package/dist/core/separator.mjs +5 -5
- package/dist/core/separator.mjs.map +1 -1
- package/package.json +11 -10
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"upload.d.mts","names":[],"sources":["../../../src/components/molecules/upload.tsx"],"mappings":";
|
|
1
|
+
{"version":3,"file":"upload.d.mts","names":[],"sources":["../../../src/components/molecules/upload.tsx"],"mappings":";UAuBiB;EACf;EACA;EACA;;UAGe;EACf,eAAe;EACf,QAAQ;EACR;EACA;EACA;EACA;EACA;EACA;IACE;IACA;IACA;;EAEF,YAAY,OAAO;;;;;EAKnB,YAAY;IAAQ,MAAM;IAAM;;;cAO5B,WAAU,cAAA,OAAA,QAAA,UAAA,QAAA,UAAA,UAAA,WAAA,YAAA,UAAA,WAAA,YAWb,0BAAK,IAAA"}
|
|
@@ -5,8 +5,9 @@ import { Upload, X } from "lucide-react";
|
|
|
5
5
|
import { useId } from "react";
|
|
6
6
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
7
7
|
import { useControllableState, useFileDrop, useFileToDataUrl } from "@jbpark/use-hooks";
|
|
8
|
-
import { v4 } from "uuid";
|
|
9
8
|
//#region src/components/molecules/upload.tsx
|
|
9
|
+
let uidCounter = 0;
|
|
10
|
+
const nextUid = () => uidCounter += 1;
|
|
10
11
|
const isImage = (file) => /^data:image\//.test(file.url) || /\.(png|jpe?g|gif|webp|svg)$/i.test(file.name);
|
|
11
12
|
const Upload$1 = ({ defaultValue = [], value: _value, multiple = true, accept = "image/*", maxCount, disabled, className, classNames, onChange: _onChange = () => {}, onReject }) => {
|
|
12
13
|
const inputId = useId();
|
|
@@ -27,7 +28,7 @@ const Upload$1 = ({ defaultValue = [], value: _value, multiple = true, accept =
|
|
|
27
28
|
const uploaded = (await Promise.all(accepted.map(async (file) => {
|
|
28
29
|
try {
|
|
29
30
|
return {
|
|
30
|
-
uid: `${file.name}-${file.lastModified}-${file.size}-${
|
|
31
|
+
uid: `${file.name}-${file.lastModified}-${file.size}-${nextUid()}`,
|
|
31
32
|
name: file.name,
|
|
32
33
|
url: await readAsDataUrl(file)
|
|
33
34
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"upload.mjs","names":["Upload","
|
|
1
|
+
{"version":3,"file":"upload.mjs","names":["Upload","UploadIcon"],"sources":["../../../src/components/molecules/upload.tsx"],"sourcesContent":["'use client';\n\nimport { useId } from 'react';\n\nimport {\n useControllableState,\n useFileDrop,\n useFileToDataUrl,\n} from '@jbpark/use-hooks';\nimport { Upload as UploadIcon, X } from 'lucide-react';\n\nimport { cn } from '@repo/ui/utils';\n\nimport Button from '../atoms/button';\n\n// Monotonic per-session counter used as a uniqueness tiebreaker for file\n// uids. Guarantees a unique suffix even for the same file (identical\n// name/lastModified/size) added twice, which name+lastModified+size alone\n// can't. These uids are internal React keys, not cryptographic, so a plain\n// counter is enough — and it avoids a runtime `uuid` dependency.\nlet uidCounter = 0;\nconst nextUid = () => (uidCounter += 1);\n\nexport interface UploadFile {\n uid: string;\n name: string;\n url: string;\n}\n\nexport interface Props {\n defaultValue?: UploadFile[];\n value?: UploadFile[];\n multiple?: boolean;\n accept?: string;\n maxCount?: number;\n disabled?: boolean;\n className?: string;\n classNames?: {\n dropzone?: string;\n list?: string;\n item?: string;\n };\n onChange?: (files: UploadFile[]) => void;\n /**\n * Called once per file that didn't make it in — either bumped by\n * `maxCount` or failed to read.\n */\n onReject?: (info: { file: File; reason: 'max-count' | 'read-error' }) => void;\n}\n\nconst isImage = (file: UploadFile) =>\n /^data:image\\//.test(file.url) ||\n /\\.(png|jpe?g|gif|webp|svg)$/i.test(file.name);\n\nconst Upload = ({\n defaultValue = [],\n value: _value,\n multiple = true,\n accept = 'image/*',\n maxCount,\n disabled,\n className,\n classNames,\n onChange: _onChange = () => {},\n onReject,\n}: Props) => {\n const inputId = useId();\n const readAsDataUrl = useFileToDataUrl();\n const [files, setFiles] = useControllableState<UploadFile[]>({\n value: _value,\n defaultValue,\n onChange: _onChange,\n });\n\n const addFiles = async (incoming: File[]) => {\n const remaining =\n typeof maxCount === 'number'\n ? Math.max(0, maxCount - files.length)\n : incoming.length;\n\n const accepted = incoming.slice(0, remaining);\n const rejected = incoming.slice(remaining);\n\n rejected.forEach(file => onReject?.({ file, reason: 'max-count' }));\n\n if (accepted.length === 0) {\n return;\n }\n\n const uploaded = (\n await Promise.all(\n accepted.map(async file => {\n try {\n return {\n // `nextUid()` guarantees uniqueness even for the same file\n // added twice (identical name/lastModified/size), which\n // name+lastModified+size alone can't — a collision there\n // corrupted React's item keys and made removeFile's\n // uid-based filter delete both copies at once.\n uid: `${file.name}-${file.lastModified}-${file.size}-${nextUid()}`,\n name: file.name,\n url: await readAsDataUrl(file),\n };\n } catch {\n onReject?.({ file, reason: 'read-error' });\n return null;\n }\n }),\n )\n ).filter((file): file is UploadFile => file !== null);\n\n if (uploaded.length === 0) {\n return;\n }\n\n setFiles([...files, ...uploaded]);\n };\n\n const removeFile = (uid: string) => {\n setFiles(files.filter(file => file.uid !== uid));\n };\n\n const { dropRef, isDragging } = useFileDrop<HTMLLabelElement>({\n accept,\n multiple,\n disabled,\n onDrop: addFiles,\n });\n\n return (\n <div\n className={cn(\n 'flex flex-col gap-3',\n className,\n //\n )}\n >\n <label\n ref={dropRef}\n htmlFor={inputId}\n className={cn(\n 'flex cursor-pointer flex-col items-center justify-center gap-2',\n 'rounded-md border border-dashed p-6 text-center',\n 'text-muted-foreground text-sm',\n 'transition-colors',\n isDragging && 'border-primary bg-accent',\n disabled && 'pointer-events-none cursor-not-allowed opacity-50',\n classNames?.dropzone,\n //\n )}\n >\n <UploadIcon className=\"size-6\" />\n <span>Click or drag file{multiple ? 's' : ''} to upload</span>\n <input\n id={inputId}\n type=\"file\"\n accept={accept}\n multiple={multiple}\n disabled={disabled}\n className=\"hidden\"\n onChange={e => {\n if (e.target.files?.length) {\n addFiles(Array.from(e.target.files));\n }\n e.target.value = '';\n }}\n />\n </label>\n\n {files.length > 0 && (\n <ul\n className={cn(\n 'm-0 flex list-none flex-col gap-2 p-0',\n classNames?.list,\n //\n )}\n >\n {files.map(file => (\n <li\n key={file.uid}\n className={cn(\n 'flex items-center gap-2 rounded-md border p-2',\n classNames?.item,\n //\n )}\n >\n {isImage(file) && (\n <img\n src={file.url}\n alt=\"\"\n className=\"size-10 shrink-0 rounded object-cover\"\n />\n )}\n <span className=\"flex-1 truncate text-sm\">{file.name}</span>\n <Button\n type=\"text\"\n shape=\"circle\"\n size=\"small\"\n icon={<X className=\"size-4\" />}\n onClick={() => removeFile(file.uid)}\n className=\"text-muted-foreground hover:text-foreground shrink-0\"\n aria-label={`Remove ${file.name}`}\n />\n </li>\n ))}\n </ul>\n )}\n </div>\n );\n};\n\nexport default Upload;\n"],"mappings":"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"}
|
|
@@ -2,9 +2,10 @@
|
|
|
2
2
|
import { ConfigSnapshotProvider, getRootConfigValue } from "../../providers/config/registry.mjs";
|
|
3
3
|
import { useCallback, useSyncExternalStore } from "react";
|
|
4
4
|
import { jsx } from "react/jsx-runtime";
|
|
5
|
-
import { v4 } from "uuid";
|
|
6
5
|
import { createRoot } from "react-dom/client";
|
|
7
6
|
//#region src/components/organisms/imperative-stack.tsx
|
|
7
|
+
let idCounter = 0;
|
|
8
|
+
const nextId = () => `stack-${idCounter += 1}`;
|
|
8
9
|
const isBrowser = typeof window !== "undefined" && typeof document !== "undefined";
|
|
9
10
|
function createImperativeStack({ createRootElement, StackItem }) {
|
|
10
11
|
const containerStates = /* @__PURE__ */ new Map();
|
|
@@ -58,7 +59,7 @@ function createImperativeStack({ createRootElement, StackItem }) {
|
|
|
58
59
|
root.render(/* @__PURE__ */ jsx(StackRenderer, { container: targetContainer }));
|
|
59
60
|
}
|
|
60
61
|
const state = getContainerState(targetContainer);
|
|
61
|
-
const id = props.id ||
|
|
62
|
+
const id = props.id || nextId();
|
|
62
63
|
state.stack = [...state.stack, {
|
|
63
64
|
...props,
|
|
64
65
|
id
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"imperative-stack.mjs","names":[
|
|
1
|
+
{"version":3,"file":"imperative-stack.mjs","names":[],"sources":["../../../src/components/organisms/imperative-stack.tsx"],"sourcesContent":["'use client';\n\nimport { useCallback, useSyncExternalStore } from 'react';\nimport { Root, createRoot } from 'react-dom/client';\n\nimport { ConfigSnapshotProvider, getRootConfigValue } from '@repo/ui/providers';\n\n// Monotonic per-session counter for stack item ids. These ids are internal\n// handles (React keys + destroy(id) lookups), not cryptographic, so a plain\n// counter is enough and avoids a runtime `uuid` dependency.\nlet idCounter = 0;\nconst nextId = () => `stack-${(idCounter += 1)}`;\n\n// Shared machinery behind Modal.info/success/error/warning/confirm and\n// Toast.info/success/error/warning — both used to independently\n// reimplement ~120 near-identical lines of this (container-scoped stack,\n// a React root per container, imperative render/destroy). The only parts\n// that actually differ between the two are the DOM node their stack\n// mounts into (position/ARIA) and which component renders each stack\n// entry — everything else here is generic over that.\n\nexport const isBrowser =\n typeof window !== 'undefined' && typeof document !== 'undefined';\n\ntype ContainerState<TProps> = {\n stack: (TProps & { id: string })[];\n update: (() => void) | null;\n};\n\nexport interface ImperativeStack<\n TProps extends { id?: string; container?: HTMLElement },\n> {\n render: (props: TProps) => string | undefined;\n destroy: (id?: string) => void;\n getRootElement: (container?: HTMLElement) => HTMLElement | null;\n}\n\nexport interface ImperativeStackOptions<\n TProps extends { id?: string; container?: HTMLElement },\n> {\n /** Creates the DOM node this stack's React root mounts into — not yet\n * attached to the document; the factory appends it to the target\n * container itself. Called once per distinct container. */\n createRootElement: () => HTMLElement;\n /** Renders one stack entry — typically each caller's \"Static<Thing>\"\n * component, which owns its own createPortal(..., getRootElement()). */\n StackItem: React.ComponentType<TProps & { id: string }>;\n}\n\nexport function createImperativeStack<\n TProps extends { id?: string; container?: HTMLElement },\n>({\n createRootElement,\n StackItem,\n}: ImperativeStackOptions<TProps>): ImperativeStack<TProps> {\n const containerStates = new Map<HTMLElement, ContainerState<TProps>>();\n const rootElements = new WeakMap<HTMLElement, HTMLElement>();\n const reactRoots = new Map<HTMLElement, Root>();\n\n const getContainerState = (\n container: HTMLElement,\n ): ContainerState<TProps> => {\n let state = containerStates.get(container);\n\n if (!state) {\n state = { stack: [], update: null };\n containerStates.set(container, state);\n }\n\n return state;\n };\n\n // Shared by `render` and `getRootElement` so both agree on the same\n // target container whenever the caller doesn't pass one explicitly — the\n // stack's React root (created once, in `render`) and the DOM node a\n // `StackItem` (e.g. StaticToast) later portals into (calling\n // `getRootElement` again with the same, possibly-undefined `container`)\n // would otherwise resolve two different containers here, splitting the\n // React tree (correctly under the root Config, via ConfigSnapshotProvider\n // above) from the actual visible DOM (silently back under `document.body`,\n // outside the Config's themed wrapper — undoing this fix's whole point).\n const resolveContainer = (container?: HTMLElement): HTMLElement =>\n container || getRootConfigValue()?.getContainer() || document.body;\n\n const getRootElement = (container?: HTMLElement): HTMLElement | null => {\n if (!isBrowser) {\n return null;\n }\n\n const targetContainer = resolveContainer(container);\n let rootEl = rootElements.get(targetContainer);\n\n if (!rootEl) {\n rootEl = createRootElement();\n targetContainer.appendChild(rootEl);\n rootElements.set(targetContainer, rootEl);\n }\n\n return rootEl;\n };\n\n const StackRenderer = ({ container }: { container: HTMLElement }) => {\n const subscribe = useCallback(\n (onStoreChange: () => void) => {\n const state = getContainerState(container);\n state.update = onStoreChange;\n return () => {\n state.update = null;\n };\n },\n [container],\n );\n\n const getSnapshot = useCallback(\n () => getContainerState(container).stack,\n [container],\n );\n\n const stack = useSyncExternalStore(subscribe, getSnapshot, getSnapshot);\n\n return (\n <ConfigSnapshotProvider>\n {stack.map(({ id, ...props }) => (\n <StackItem key={id} id={id} {...(props as TProps)} />\n ))}\n </ConfigSnapshotProvider>\n );\n };\n\n const render = (props: TProps): string | undefined => {\n if (!isBrowser) {\n return;\n }\n\n // An explicit `container` prop always wins (it may be chosen for\n // layout reasons unrelated to theming); otherwise mount into the root\n // Config's own themed wrapper element (if one renders — see\n // `needsWrapper` in config.tsx) so CSS custom properties and the\n // `.dark` class cascade to this stack via normal DOM inheritance, not\n // just `document.body` sitting as an unthemed sibling of it.\n const targetContainer = resolveContainer(props.container);\n const rootElement = getRootElement(targetContainer)!;\n\n if (!reactRoots.has(targetContainer)) {\n const root = createRoot(rootElement);\n reactRoots.set(targetContainer, root);\n root.render(<StackRenderer container={targetContainer} />);\n }\n\n const state = getContainerState(targetContainer);\n const id = props.id || nextId();\n state.stack = [...state.stack, { ...props, id }];\n state.update?.();\n\n return id;\n };\n\n const destroy = (id?: string) => {\n if (!id) {\n containerStates.forEach(state => {\n state.stack = [];\n state.update?.();\n });\n reactRoots.forEach((root, container) => {\n root.unmount();\n rootElements.get(container)?.remove();\n rootElements.delete(container);\n });\n reactRoots.clear();\n containerStates.clear();\n return;\n }\n\n containerStates.forEach((state, container) => {\n if (!state.stack.some(item => item.id === id)) {\n return;\n }\n\n state.stack = state.stack.filter(item => item.id !== id);\n state.update?.();\n\n if (!state.stack.length) {\n reactRoots.get(container)?.unmount();\n reactRoots.delete(container);\n containerStates.delete(container);\n rootElements.get(container)?.remove();\n rootElements.delete(container);\n }\n });\n };\n\n return { render, destroy, getRootElement };\n}\n"],"mappings":"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"}
|
package/dist/core/badge.d.mts
CHANGED
|
@@ -4,7 +4,7 @@ declare namespace badge_d_exports {
|
|
|
4
4
|
export { Badge, Props, badgeVariants };
|
|
5
5
|
}
|
|
6
6
|
declare const badgeVariants: (props?: ({
|
|
7
|
-
variant?: "
|
|
7
|
+
variant?: "outline" | "default" | "destructive" | "secondary" | null | undefined;
|
|
8
8
|
} & import("class-variance-authority/types").ClassProp) | undefined) => string;
|
|
9
9
|
type Props = React$1.ComponentProps<'span'> & VariantProps<typeof badgeVariants> & {
|
|
10
10
|
asChild?: boolean;
|
package/dist/core/button.d.mts
CHANGED
|
@@ -4,7 +4,7 @@ declare namespace button_d_exports {
|
|
|
4
4
|
export { Button, Props, buttonVariants };
|
|
5
5
|
}
|
|
6
6
|
declare const buttonVariants: (props?: ({
|
|
7
|
-
variant?: "link" | "
|
|
7
|
+
variant?: "link" | "outline" | "default" | "destructive" | "secondary" | "ghost" | null | undefined;
|
|
8
8
|
size?: "icon" | "default" | "xs" | "sm" | "lg" | "icon-xs" | "icon-sm" | "icon-lg" | null | undefined;
|
|
9
9
|
} & import("class-variance-authority/types").ClassProp) | undefined) => string;
|
|
10
10
|
type Props = React$1.ComponentProps<'button'> & VariantProps<typeof buttonVariants> & {
|
package/dist/core/label.d.mts
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import * as React$1 from "react";
|
|
2
|
-
import
|
|
2
|
+
import * as LabelPrimitive from "@radix-ui/react-label";
|
|
3
3
|
declare namespace label_d_exports {
|
|
4
|
-
export { Label
|
|
4
|
+
export { Label };
|
|
5
5
|
}
|
|
6
|
-
declare function Label
|
|
6
|
+
declare function Label({ className, ...props }: React$1.ComponentProps<typeof LabelPrimitive.Root>): React$1.JSX.Element;
|
|
7
7
|
//#endregion
|
|
8
|
-
export { Label
|
|
8
|
+
export { Label, label_d_exports };
|
|
9
9
|
//# sourceMappingURL=label.d.mts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"label.d.mts","names":[],"sources":["../../src/core/label.tsx"],"mappings":";;;;;iBAQS,
|
|
1
|
+
{"version":3,"file":"label.d.mts","names":[],"sources":["../../src/core/label.tsx"],"mappings":";;;;;iBAQS,QACP,cACG,SACF,QAAM,sBAAsB,eAAe,QAAK,QAAA,IAAA"}
|
package/dist/core/label.mjs
CHANGED
|
@@ -3,11 +3,11 @@ import { __exportAll } from "../_virtual/_rolldown/runtime.mjs";
|
|
|
3
3
|
import { cn } from "../utils.mjs";
|
|
4
4
|
import "react";
|
|
5
5
|
import { jsx } from "react/jsx-runtime";
|
|
6
|
-
import
|
|
6
|
+
import * as LabelPrimitive from "@radix-ui/react-label";
|
|
7
7
|
//#region src/core/label.tsx
|
|
8
|
-
var label_exports = /* @__PURE__ */ __exportAll({ Label: () => Label
|
|
9
|
-
function Label
|
|
10
|
-
return /* @__PURE__ */ jsx(
|
|
8
|
+
var label_exports = /* @__PURE__ */ __exportAll({ Label: () => Label });
|
|
9
|
+
function Label({ className, ...props }) {
|
|
10
|
+
return /* @__PURE__ */ jsx(LabelPrimitive.Root, {
|
|
11
11
|
"data-slot": "label",
|
|
12
12
|
className: cn(`flex items-center gap-2 text-sm leading-none font-medium select-none
|
|
13
13
|
group-data-[disabled=true]:pointer-events-none
|
|
@@ -17,6 +17,6 @@ function Label$1({ className, ...props }) {
|
|
|
17
17
|
});
|
|
18
18
|
}
|
|
19
19
|
//#endregion
|
|
20
|
-
export { Label
|
|
20
|
+
export { Label, label_exports };
|
|
21
21
|
|
|
22
22
|
//# sourceMappingURL=label.mjs.map
|
package/dist/core/label.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"label.mjs","names":[
|
|
1
|
+
{"version":3,"file":"label.mjs","names":[],"sources":["../../src/core/label.tsx"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\n\nimport * as LabelPrimitive from '@radix-ui/react-label';\n\nimport { cn } from '@repo/ui/utils';\n\nfunction Label({\n className,\n ...props\n}: React.ComponentProps<typeof LabelPrimitive.Root>) {\n return (\n <LabelPrimitive.Root\n data-slot=\"label\"\n className={cn(\n `flex items-center gap-2 text-sm leading-none font-medium select-none\n group-data-[disabled=true]:pointer-events-none\n group-data-[disabled=true]:opacity-50 peer-disabled:cursor-not-allowed\n peer-disabled:opacity-50`,\n className,\n )}\n {...props}\n />\n );\n}\n\nexport { Label };\n"],"mappings":";;;;;;;;AAQA,SAAS,MAAM,EACb,WACA,GAAG,SACgD;CACnD,OACE,oBAAC,eAAe,MAAhB;EACE,aAAU;EACV,WAAW,GACT;;;mCAIA,SACF;EACA,GAAI;CACL,CAAA;AAEL"}
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import * as React$1 from "react";
|
|
2
|
-
import
|
|
2
|
+
import * as RadioGroupPrimitive from "@radix-ui/react-radio-group";
|
|
3
3
|
declare namespace radio_group_d_exports {
|
|
4
|
-
export { RadioGroup
|
|
4
|
+
export { RadioGroup, RadioGroupItem };
|
|
5
5
|
}
|
|
6
|
-
declare function RadioGroup
|
|
7
|
-
declare function RadioGroupItem({ className, asChild, children, ...props }: React$1.ComponentProps<typeof
|
|
6
|
+
declare function RadioGroup({ className, ...props }: React$1.ComponentProps<typeof RadioGroupPrimitive.Root>): React$1.JSX.Element;
|
|
7
|
+
declare function RadioGroupItem({ className, asChild, children, ...props }: React$1.ComponentProps<typeof RadioGroupPrimitive.Item> & {
|
|
8
8
|
asChild?: boolean;
|
|
9
9
|
}): React$1.JSX.Element;
|
|
10
10
|
//#endregion
|
|
11
|
-
export { RadioGroup
|
|
11
|
+
export { RadioGroup, RadioGroupItem, radio_group_d_exports };
|
|
12
12
|
//# sourceMappingURL=radio-group.d.mts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"radio-group.d.mts","names":[],"sources":["../../src/core/radio-group.tsx"],"mappings":";;;;;iBASS,
|
|
1
|
+
{"version":3,"file":"radio-group.d.mts","names":[],"sources":["../../src/core/radio-group.tsx"],"mappings":";;;;;iBASS,aACP,cACG,SACF,QAAM,sBAAsB,oBAAoB,QAAK,QAAA,IAAA;iBAU/C,iBACP,WACA,SACA,aACG,SACF,QAAM,sBAAsB,oBAAoB;EACjD;IACD,QAAA,IAAA"}
|
|
@@ -4,27 +4,27 @@ import { cn } from "../utils.mjs";
|
|
|
4
4
|
import { CircleIcon } from "lucide-react";
|
|
5
5
|
import "react";
|
|
6
6
|
import { jsx } from "react/jsx-runtime";
|
|
7
|
-
import
|
|
7
|
+
import * as RadioGroupPrimitive from "@radix-ui/react-radio-group";
|
|
8
8
|
//#region src/core/radio-group.tsx
|
|
9
9
|
var radio_group_exports = /* @__PURE__ */ __exportAll({
|
|
10
|
-
RadioGroup: () => RadioGroup
|
|
10
|
+
RadioGroup: () => RadioGroup,
|
|
11
11
|
RadioGroupItem: () => RadioGroupItem
|
|
12
12
|
});
|
|
13
|
-
function RadioGroup
|
|
14
|
-
return /* @__PURE__ */ jsx(
|
|
13
|
+
function RadioGroup({ className, ...props }) {
|
|
14
|
+
return /* @__PURE__ */ jsx(RadioGroupPrimitive.Root, {
|
|
15
15
|
"data-slot": "radio-group",
|
|
16
16
|
className: cn("grid gap-3", className),
|
|
17
17
|
...props
|
|
18
18
|
});
|
|
19
19
|
}
|
|
20
20
|
function RadioGroupItem({ className, asChild, children, ...props }) {
|
|
21
|
-
if (asChild) return /* @__PURE__ */ jsx(
|
|
21
|
+
if (asChild) return /* @__PURE__ */ jsx(RadioGroupPrimitive.Item, {
|
|
22
22
|
asChild: true,
|
|
23
23
|
"data-slot": "radio-group-item",
|
|
24
24
|
...props,
|
|
25
25
|
children
|
|
26
26
|
});
|
|
27
|
-
return /* @__PURE__ */ jsx(
|
|
27
|
+
return /* @__PURE__ */ jsx(RadioGroupPrimitive.Item, {
|
|
28
28
|
"data-slot": "radio-group-item",
|
|
29
29
|
className: cn(`border-input text-primary focus-visible:border-ring
|
|
30
30
|
focus-visible:ring-ring/50 aria-invalid:ring-destructive/20
|
|
@@ -34,7 +34,7 @@ function RadioGroupItem({ className, asChild, children, ...props }) {
|
|
|
34
34
|
focus-visible:ring-[3px] disabled:cursor-not-allowed
|
|
35
35
|
disabled:opacity-50`, className),
|
|
36
36
|
...props,
|
|
37
|
-
children: /* @__PURE__ */ jsx(
|
|
37
|
+
children: /* @__PURE__ */ jsx(RadioGroupPrimitive.Indicator, {
|
|
38
38
|
"data-slot": "radio-group-indicator",
|
|
39
39
|
className: "relative flex items-center justify-center",
|
|
40
40
|
children: /* @__PURE__ */ jsx(CircleIcon, { className: "fill-primary absolute top-1/2 left-1/2 size-2\n -translate-x-1/2 -translate-y-1/2" })
|
|
@@ -42,6 +42,6 @@ function RadioGroupItem({ className, asChild, children, ...props }) {
|
|
|
42
42
|
});
|
|
43
43
|
}
|
|
44
44
|
//#endregion
|
|
45
|
-
export { RadioGroup
|
|
45
|
+
export { RadioGroup, RadioGroupItem, radio_group_exports };
|
|
46
46
|
|
|
47
47
|
//# sourceMappingURL=radio-group.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"radio-group.mjs","names":[
|
|
1
|
+
{"version":3,"file":"radio-group.mjs","names":[],"sources":["../../src/core/radio-group.tsx"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\n\nimport * as RadioGroupPrimitive from '@radix-ui/react-radio-group';\nimport { CircleIcon } from 'lucide-react';\n\nimport { cn } from '@repo/ui/utils';\n\nfunction RadioGroup({\n className,\n ...props\n}: React.ComponentProps<typeof RadioGroupPrimitive.Root>) {\n return (\n <RadioGroupPrimitive.Root\n data-slot=\"radio-group\"\n className={cn('grid gap-3', className)}\n {...props}\n />\n );\n}\n\nfunction RadioGroupItem({\n className,\n asChild,\n children,\n ...props\n}: React.ComponentProps<typeof RadioGroupPrimitive.Item> & {\n asChild?: boolean;\n}) {\n // `asChild` hands the rendered element to `children` entirely (e.g. a\n // `Button`), so the default dot indicator doesn't apply — Radix clones\n // its own role/aria-checked/keyboard handling onto that single child\n // instead of onto its own `<button>`.\n if (asChild) {\n return (\n <RadioGroupPrimitive.Item asChild data-slot=\"radio-group-item\" {...props}>\n {children}\n </RadioGroupPrimitive.Item>\n );\n }\n\n return (\n <RadioGroupPrimitive.Item\n data-slot=\"radio-group-item\"\n className={cn(\n `border-input text-primary focus-visible:border-ring\n focus-visible:ring-ring/50 aria-invalid:ring-destructive/20\n dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive\n dark:bg-input/30 aspect-square size-4 shrink-0 rounded-full border\n shadow-xs transition-[color,box-shadow] outline-none\n focus-visible:ring-[3px] disabled:cursor-not-allowed\n disabled:opacity-50`,\n className,\n )}\n {...props}\n >\n <RadioGroupPrimitive.Indicator\n data-slot=\"radio-group-indicator\"\n className=\"relative flex items-center justify-center\"\n >\n <CircleIcon\n className=\"fill-primary absolute top-1/2 left-1/2 size-2\n -translate-x-1/2 -translate-y-1/2\"\n />\n </RadioGroupPrimitive.Indicator>\n </RadioGroupPrimitive.Item>\n );\n}\n\nexport { RadioGroup, RadioGroupItem };\n"],"mappings":";;;;;;;;;;;;AASA,SAAS,WAAW,EAClB,WACA,GAAG,SACqD;CACxD,OACE,oBAAC,oBAAoB,MAArB;EACE,aAAU;EACV,WAAW,GAAG,cAAc,SAAS;EACrC,GAAI;CACL,CAAA;AAEL;AAEA,SAAS,eAAe,EACtB,WACA,SACA,UACA,GAAG,SAGF;CAKD,IAAI,SACF,OACE,oBAAC,oBAAoB,MAArB;EAA0B,SAAA;EAAQ,aAAU;EAAmB,GAAI;EAChE;CACuB,CAAA;CAI9B,OACE,oBAAC,oBAAoB,MAArB;EACE,aAAU;EACV,WAAW,GACT;;;;;;8BAOA,SACF;EACA,GAAI;EAEJ,UAAA,oBAAC,oBAAoB,WAArB;GACE,aAAU;GACV,WAAU;GAEV,UAAA,oBAAC,YAAD,EACE,WAAU,+FAEX,CAAA;EAC4B,CAAA;CACP,CAAA;AAE9B"}
|
package/dist/core/select.d.mts
CHANGED
|
@@ -1,22 +1,22 @@
|
|
|
1
1
|
import * as React$1 from "react";
|
|
2
|
-
import
|
|
2
|
+
import * as SelectPrimitive from "@radix-ui/react-select";
|
|
3
3
|
declare namespace select_d_exports {
|
|
4
|
-
export { Select
|
|
4
|
+
export { Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue };
|
|
5
5
|
}
|
|
6
|
-
declare function Select
|
|
7
|
-
declare function SelectGroup({ ...props }: React$1.ComponentProps<typeof
|
|
8
|
-
declare function SelectValue({ ...props }: React$1.ComponentProps<typeof
|
|
9
|
-
declare function SelectTrigger({ className, size, children, ...props }: React$1.ComponentProps<typeof
|
|
6
|
+
declare function Select({ ...props }: React$1.ComponentProps<typeof SelectPrimitive.Root>): React$1.JSX.Element;
|
|
7
|
+
declare function SelectGroup({ ...props }: React$1.ComponentProps<typeof SelectPrimitive.Group>): React$1.JSX.Element;
|
|
8
|
+
declare function SelectValue({ ...props }: React$1.ComponentProps<typeof SelectPrimitive.Value>): React$1.JSX.Element;
|
|
9
|
+
declare function SelectTrigger({ className, size, children, ...props }: React$1.ComponentProps<typeof SelectPrimitive.Trigger> & {
|
|
10
10
|
size?: 'sm' | 'default';
|
|
11
11
|
}): React$1.JSX.Element;
|
|
12
|
-
declare function SelectContent({ className, children, position, align, container, ...props }: React$1.ComponentProps<typeof
|
|
12
|
+
declare function SelectContent({ className, children, position, align, container, ...props }: React$1.ComponentProps<typeof SelectPrimitive.Content> & {
|
|
13
13
|
container?: HTMLElement;
|
|
14
14
|
}): React$1.JSX.Element;
|
|
15
|
-
declare function SelectLabel({ className, ...props }: React$1.ComponentProps<typeof
|
|
16
|
-
declare function SelectItem({ className, children, ...props }: React$1.ComponentProps<typeof
|
|
17
|
-
declare function SelectSeparator({ className, ...props }: React$1.ComponentProps<typeof
|
|
18
|
-
declare function SelectScrollUpButton({ className, ...props }: React$1.ComponentProps<typeof
|
|
19
|
-
declare function SelectScrollDownButton({ className, ...props }: React$1.ComponentProps<typeof
|
|
15
|
+
declare function SelectLabel({ className, ...props }: React$1.ComponentProps<typeof SelectPrimitive.Label>): React$1.JSX.Element;
|
|
16
|
+
declare function SelectItem({ className, children, ...props }: React$1.ComponentProps<typeof SelectPrimitive.Item>): React$1.JSX.Element;
|
|
17
|
+
declare function SelectSeparator({ className, ...props }: React$1.ComponentProps<typeof SelectPrimitive.Separator>): React$1.JSX.Element;
|
|
18
|
+
declare function SelectScrollUpButton({ className, ...props }: React$1.ComponentProps<typeof SelectPrimitive.ScrollUpButton>): React$1.JSX.Element;
|
|
19
|
+
declare function SelectScrollDownButton({ className, ...props }: React$1.ComponentProps<typeof SelectPrimitive.ScrollDownButton>): React$1.JSX.Element;
|
|
20
20
|
//#endregion
|
|
21
|
-
export { Select
|
|
21
|
+
export { Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue, select_d_exports };
|
|
22
22
|
//# sourceMappingURL=select.d.mts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"select.d.mts","names":[],"sources":["../../src/core/select.tsx"],"mappings":";;;;;iBAUS,
|
|
1
|
+
{"version":3,"file":"select.d.mts","names":[],"sources":["../../src/core/select.tsx"],"mappings":";;;;;iBAUS,YACJ,SACF,QAAM,sBAAsB,gBAAgB,QAAK,QAAA,IAAA;iBAI3C,iBACJ,SACF,QAAM,sBAAsB,gBAAgB,SAAM,QAAA,IAAA;iBAI5C,iBACJ,SACF,QAAM,sBAAsB,gBAAgB,SAAM,QAAA,IAAA;iBAI5C,gBACP,WACA,MACA,aACG,SACF,QAAM,sBAAsB,gBAAgB;EAC7C;IACD,QAAA,IAAA;iBA+BQ,gBACP,WACA,UACA,UACA,OACA,cACG,SACF,QAAM,sBAAsB,gBAAgB;EAC7C,YAAY;IACb,QAAA,IAAA;iBA4CQ,cACP,cACG,SACF,QAAM,sBAAsB,gBAAgB,SAAM,QAAA,IAAA;iBAU5C,aACP,WACA,aACG,SACF,QAAM,sBAAsB,gBAAgB,QAAK,QAAA,IAAA;iBA6B3C,kBACP,cACG,SACF,QAAM,sBAAsB,gBAAgB,aAAU,QAAA,IAAA;iBAUhD,uBACP,cACG,SACF,QAAM,sBAAsB,gBAAgB,kBAAe,QAAA,IAAA;iBAerD,yBACP,cACG,SACF,QAAM,sBAAsB,gBAAgB,oBAAiB,QAAA,IAAA"}
|
package/dist/core/select.mjs
CHANGED
|
@@ -5,10 +5,10 @@ import { useConfig } from "../providers/config/context.mjs";
|
|
|
5
5
|
import { CheckIcon, ChevronDownIcon, ChevronUpIcon } from "lucide-react";
|
|
6
6
|
import "react";
|
|
7
7
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
8
|
-
import
|
|
8
|
+
import * as SelectPrimitive from "@radix-ui/react-select";
|
|
9
9
|
//#region src/core/select.tsx
|
|
10
10
|
var select_exports = /* @__PURE__ */ __exportAll({
|
|
11
|
-
Select: () => Select
|
|
11
|
+
Select: () => Select,
|
|
12
12
|
SelectContent: () => SelectContent,
|
|
13
13
|
SelectGroup: () => SelectGroup,
|
|
14
14
|
SelectItem: () => SelectItem,
|
|
@@ -19,26 +19,26 @@ var select_exports = /* @__PURE__ */ __exportAll({
|
|
|
19
19
|
SelectTrigger: () => SelectTrigger,
|
|
20
20
|
SelectValue: () => SelectValue
|
|
21
21
|
});
|
|
22
|
-
function Select
|
|
23
|
-
return /* @__PURE__ */ jsx(
|
|
22
|
+
function Select({ ...props }) {
|
|
23
|
+
return /* @__PURE__ */ jsx(SelectPrimitive.Root, {
|
|
24
24
|
"data-slot": "select",
|
|
25
25
|
...props
|
|
26
26
|
});
|
|
27
27
|
}
|
|
28
28
|
function SelectGroup({ ...props }) {
|
|
29
|
-
return /* @__PURE__ */ jsx(
|
|
29
|
+
return /* @__PURE__ */ jsx(SelectPrimitive.Group, {
|
|
30
30
|
"data-slot": "select-group",
|
|
31
31
|
...props
|
|
32
32
|
});
|
|
33
33
|
}
|
|
34
34
|
function SelectValue({ ...props }) {
|
|
35
|
-
return /* @__PURE__ */ jsx(
|
|
35
|
+
return /* @__PURE__ */ jsx(SelectPrimitive.Value, {
|
|
36
36
|
"data-slot": "select-value",
|
|
37
37
|
...props
|
|
38
38
|
});
|
|
39
39
|
}
|
|
40
40
|
function SelectTrigger({ className, size = "default", children, ...props }) {
|
|
41
|
-
return /* @__PURE__ */ jsxs(
|
|
41
|
+
return /* @__PURE__ */ jsxs(SelectPrimitive.Trigger, {
|
|
42
42
|
"data-slot": "select-trigger",
|
|
43
43
|
"data-size": size,
|
|
44
44
|
className: cn(`border-input data-[placeholder]:text-muted-foreground
|
|
@@ -55,7 +55,7 @@ function SelectTrigger({ className, size = "default", children, ...props }) {
|
|
|
55
55
|
*:data-[slot=select-value]:gap-2 [&_svg]:pointer-events-none
|
|
56
56
|
[&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4`, className),
|
|
57
57
|
...props,
|
|
58
|
-
children: [children, /* @__PURE__ */ jsx(
|
|
58
|
+
children: [children, /* @__PURE__ */ jsx(SelectPrimitive.Icon, {
|
|
59
59
|
asChild: true,
|
|
60
60
|
children: /* @__PURE__ */ jsx(ChevronDownIcon, { className: "size-4 opacity-50" })
|
|
61
61
|
})]
|
|
@@ -63,9 +63,9 @@ function SelectTrigger({ className, size = "default", children, ...props }) {
|
|
|
63
63
|
}
|
|
64
64
|
function SelectContent({ className, children, position = "item-aligned", align = "center", container, ...props }) {
|
|
65
65
|
const { getContainer } = useConfig();
|
|
66
|
-
return /* @__PURE__ */ jsx(
|
|
66
|
+
return /* @__PURE__ */ jsx(SelectPrimitive.Portal, {
|
|
67
67
|
container: container ?? getContainer(),
|
|
68
|
-
children: /* @__PURE__ */ jsxs(
|
|
68
|
+
children: /* @__PURE__ */ jsxs(SelectPrimitive.Content, {
|
|
69
69
|
"data-slot": "select-content",
|
|
70
70
|
className: cn(`bg-popover text-popover-foreground data-[state=open]:animate-in
|
|
71
71
|
data-[state=closed]:animate-out data-[state=closed]:fade-out-0
|
|
@@ -83,7 +83,7 @@ function SelectContent({ className, children, position = "item-aligned", align =
|
|
|
83
83
|
...props,
|
|
84
84
|
children: [
|
|
85
85
|
/* @__PURE__ */ jsx(SelectScrollUpButton, {}),
|
|
86
|
-
/* @__PURE__ */ jsx(
|
|
86
|
+
/* @__PURE__ */ jsx(SelectPrimitive.Viewport, {
|
|
87
87
|
className: cn("p-1", position === "popper" && `h-[var(--radix-select-trigger-height)] w-full
|
|
88
88
|
min-w-[var(--radix-select-trigger-width)] scroll-my-1`),
|
|
89
89
|
children
|
|
@@ -94,14 +94,14 @@ function SelectContent({ className, children, position = "item-aligned", align =
|
|
|
94
94
|
});
|
|
95
95
|
}
|
|
96
96
|
function SelectLabel({ className, ...props }) {
|
|
97
|
-
return /* @__PURE__ */ jsx(
|
|
97
|
+
return /* @__PURE__ */ jsx(SelectPrimitive.Label, {
|
|
98
98
|
"data-slot": "select-label",
|
|
99
99
|
className: cn("text-muted-foreground px-2 py-1.5 text-xs", className),
|
|
100
100
|
...props
|
|
101
101
|
});
|
|
102
102
|
}
|
|
103
103
|
function SelectItem({ className, children, ...props }) {
|
|
104
|
-
return /* @__PURE__ */ jsxs(
|
|
104
|
+
return /* @__PURE__ */ jsxs(SelectPrimitive.Item, {
|
|
105
105
|
"data-slot": "select-item",
|
|
106
106
|
className: cn(`focus:bg-accent focus:text-accent-foreground
|
|
107
107
|
[&_svg:not([class*='text-'])]:text-muted-foreground relative flex w-full
|
|
@@ -114,19 +114,19 @@ function SelectItem({ className, children, ...props }) {
|
|
|
114
114
|
children: [/* @__PURE__ */ jsx("span", {
|
|
115
115
|
"data-slot": "select-item-indicator",
|
|
116
116
|
className: "absolute right-2 flex size-3.5 items-center justify-center",
|
|
117
|
-
children: /* @__PURE__ */ jsx(
|
|
118
|
-
}), /* @__PURE__ */ jsx(
|
|
117
|
+
children: /* @__PURE__ */ jsx(SelectPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx(CheckIcon, { className: "size-4" }) })
|
|
118
|
+
}), /* @__PURE__ */ jsx(SelectPrimitive.ItemText, { children })]
|
|
119
119
|
});
|
|
120
120
|
}
|
|
121
121
|
function SelectSeparator({ className, ...props }) {
|
|
122
|
-
return /* @__PURE__ */ jsx(
|
|
122
|
+
return /* @__PURE__ */ jsx(SelectPrimitive.Separator, {
|
|
123
123
|
"data-slot": "select-separator",
|
|
124
124
|
className: cn("bg-border pointer-events-none -mx-1 my-1 h-px", className),
|
|
125
125
|
...props
|
|
126
126
|
});
|
|
127
127
|
}
|
|
128
128
|
function SelectScrollUpButton({ className, ...props }) {
|
|
129
|
-
return /* @__PURE__ */ jsx(
|
|
129
|
+
return /* @__PURE__ */ jsx(SelectPrimitive.ScrollUpButton, {
|
|
130
130
|
"data-slot": "select-scroll-up-button",
|
|
131
131
|
className: cn("flex cursor-default items-center justify-center py-1", className),
|
|
132
132
|
...props,
|
|
@@ -134,7 +134,7 @@ function SelectScrollUpButton({ className, ...props }) {
|
|
|
134
134
|
});
|
|
135
135
|
}
|
|
136
136
|
function SelectScrollDownButton({ className, ...props }) {
|
|
137
|
-
return /* @__PURE__ */ jsx(
|
|
137
|
+
return /* @__PURE__ */ jsx(SelectPrimitive.ScrollDownButton, {
|
|
138
138
|
"data-slot": "select-scroll-down-button",
|
|
139
139
|
className: cn("flex cursor-default items-center justify-center py-1", className),
|
|
140
140
|
...props,
|
|
@@ -142,6 +142,6 @@ function SelectScrollDownButton({ className, ...props }) {
|
|
|
142
142
|
});
|
|
143
143
|
}
|
|
144
144
|
//#endregion
|
|
145
|
-
export { Select
|
|
145
|
+
export { Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue, select_exports };
|
|
146
146
|
|
|
147
147
|
//# sourceMappingURL=select.mjs.map
|
package/dist/core/select.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"select.mjs","names":[
|
|
1
|
+
{"version":3,"file":"select.mjs","names":[],"sources":["../../src/core/select.tsx"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\n\nimport * as SelectPrimitive from '@radix-ui/react-select';\nimport { CheckIcon, ChevronDownIcon, ChevronUpIcon } from 'lucide-react';\n\nimport { useConfig } from '@repo/ui/providers';\nimport { cn } from '@repo/ui/utils';\n\nfunction Select({\n ...props\n}: React.ComponentProps<typeof SelectPrimitive.Root>) {\n return <SelectPrimitive.Root data-slot=\"select\" {...props} />;\n}\n\nfunction SelectGroup({\n ...props\n}: React.ComponentProps<typeof SelectPrimitive.Group>) {\n return <SelectPrimitive.Group data-slot=\"select-group\" {...props} />;\n}\n\nfunction SelectValue({\n ...props\n}: React.ComponentProps<typeof SelectPrimitive.Value>) {\n return <SelectPrimitive.Value data-slot=\"select-value\" {...props} />;\n}\n\nfunction SelectTrigger({\n className,\n size = 'default',\n children,\n ...props\n}: React.ComponentProps<typeof SelectPrimitive.Trigger> & {\n size?: 'sm' | 'default';\n}) {\n return (\n <SelectPrimitive.Trigger\n data-slot=\"select-trigger\"\n data-size={size}\n className={cn(\n `border-input data-[placeholder]:text-muted-foreground\n [&_svg:not([class*='text-'])]:text-muted-foreground\n focus-visible:border-ring focus-visible:ring-ring/50\n aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40\n aria-invalid:border-destructive dark:bg-input/30 dark:hover:bg-input/50\n flex w-fit items-center justify-between gap-2 rounded-md border\n bg-transparent px-3 py-2 text-sm whitespace-nowrap shadow-xs\n transition-[color,box-shadow] outline-none focus-visible:ring-[3px]\n disabled:cursor-not-allowed disabled:opacity-50 data-[size=default]:h-9\n data-[size=sm]:h-8 *:data-[slot=select-value]:line-clamp-1\n *:data-[slot=select-value]:flex *:data-[slot=select-value]:items-center\n *:data-[slot=select-value]:gap-2 [&_svg]:pointer-events-none\n [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4`,\n className,\n )}\n {...props}\n >\n {children}\n <SelectPrimitive.Icon asChild>\n <ChevronDownIcon className=\"size-4 opacity-50\" />\n </SelectPrimitive.Icon>\n </SelectPrimitive.Trigger>\n );\n}\n\nfunction SelectContent({\n className,\n children,\n position = 'item-aligned',\n align = 'center',\n container,\n ...props\n}: React.ComponentProps<typeof SelectPrimitive.Content> & {\n container?: HTMLElement;\n}) {\n const { getContainer } = useConfig();\n\n return (\n <SelectPrimitive.Portal container={container ?? getContainer()}>\n <SelectPrimitive.Content\n data-slot=\"select-content\"\n className={cn(\n `bg-popover text-popover-foreground data-[state=open]:animate-in\n data-[state=closed]:animate-out data-[state=closed]:fade-out-0\n data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95\n data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2\n data-[side=left]:slide-in-from-right-2\n data-[side=right]:slide-in-from-left-2\n data-[side=top]:slide-in-from-bottom-2 relative z-50\n max-h-(--radix-select-content-available-height) min-w-[8rem]\n origin-(--radix-select-content-transform-origin) overflow-x-hidden\n overflow-y-auto rounded-md border shadow-md`,\n position === 'popper' &&\n `data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1\n data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1`,\n className,\n )}\n position={position}\n align={align}\n {...props}\n >\n <SelectScrollUpButton />\n <SelectPrimitive.Viewport\n className={cn(\n 'p-1',\n position === 'popper' &&\n `h-[var(--radix-select-trigger-height)] w-full\n min-w-[var(--radix-select-trigger-width)] scroll-my-1`,\n )}\n >\n {children}\n </SelectPrimitive.Viewport>\n <SelectScrollDownButton />\n </SelectPrimitive.Content>\n </SelectPrimitive.Portal>\n );\n}\n\nfunction SelectLabel({\n className,\n ...props\n}: React.ComponentProps<typeof SelectPrimitive.Label>) {\n return (\n <SelectPrimitive.Label\n data-slot=\"select-label\"\n className={cn('text-muted-foreground px-2 py-1.5 text-xs', className)}\n {...props}\n />\n );\n}\n\nfunction SelectItem({\n className,\n children,\n ...props\n}: React.ComponentProps<typeof SelectPrimitive.Item>) {\n return (\n <SelectPrimitive.Item\n data-slot=\"select-item\"\n className={cn(\n `focus:bg-accent focus:text-accent-foreground\n [&_svg:not([class*='text-'])]:text-muted-foreground relative flex w-full\n cursor-default items-center gap-2 rounded-sm py-1.5 pr-8 pl-2 text-sm\n outline-hidden select-none data-[disabled]:pointer-events-none\n data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0\n [&_svg:not([class*='size-'])]:size-4 *:[span]:last:flex\n *:[span]:last:items-center *:[span]:last:gap-2`,\n className,\n )}\n {...props}\n >\n <span\n data-slot=\"select-item-indicator\"\n className=\"absolute right-2 flex size-3.5 items-center justify-center\"\n >\n <SelectPrimitive.ItemIndicator>\n <CheckIcon className=\"size-4\" />\n </SelectPrimitive.ItemIndicator>\n </span>\n <SelectPrimitive.ItemText>{children}</SelectPrimitive.ItemText>\n </SelectPrimitive.Item>\n );\n}\n\nfunction SelectSeparator({\n className,\n ...props\n}: React.ComponentProps<typeof SelectPrimitive.Separator>) {\n return (\n <SelectPrimitive.Separator\n data-slot=\"select-separator\"\n className={cn('bg-border pointer-events-none -mx-1 my-1 h-px', className)}\n {...props}\n />\n );\n}\n\nfunction SelectScrollUpButton({\n className,\n ...props\n}: React.ComponentProps<typeof SelectPrimitive.ScrollUpButton>) {\n return (\n <SelectPrimitive.ScrollUpButton\n data-slot=\"select-scroll-up-button\"\n className={cn(\n 'flex cursor-default items-center justify-center py-1',\n className,\n )}\n {...props}\n >\n <ChevronUpIcon className=\"size-4\" />\n </SelectPrimitive.ScrollUpButton>\n );\n}\n\nfunction SelectScrollDownButton({\n className,\n ...props\n}: React.ComponentProps<typeof SelectPrimitive.ScrollDownButton>) {\n return (\n <SelectPrimitive.ScrollDownButton\n data-slot=\"select-scroll-down-button\"\n className={cn(\n 'flex cursor-default items-center justify-center py-1',\n className,\n )}\n {...props}\n >\n <ChevronDownIcon className=\"size-4\" />\n </SelectPrimitive.ScrollDownButton>\n );\n}\n\nexport {\n Select,\n SelectContent,\n SelectGroup,\n SelectItem,\n SelectLabel,\n SelectScrollDownButton,\n SelectScrollUpButton,\n SelectSeparator,\n SelectTrigger,\n SelectValue,\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAUA,SAAS,OAAO,EACd,GAAG,SACiD;CACpD,OAAO,oBAAC,gBAAgB,MAAjB;EAAsB,aAAU;EAAS,GAAI;CAAQ,CAAA;AAC9D;AAEA,SAAS,YAAY,EACnB,GAAG,SACkD;CACrD,OAAO,oBAAC,gBAAgB,OAAjB;EAAuB,aAAU;EAAe,GAAI;CAAQ,CAAA;AACrE;AAEA,SAAS,YAAY,EACnB,GAAG,SACkD;CACrD,OAAO,oBAAC,gBAAgB,OAAjB;EAAuB,aAAU;EAAe,GAAI;CAAQ,CAAA;AACrE;AAEA,SAAS,cAAc,EACrB,WACA,OAAO,WACP,UACA,GAAG,SAGF;CACD,OACE,qBAAC,gBAAgB,SAAjB;EACE,aAAU;EACV,aAAW;EACX,WAAW,GACT;;;;;;;;;;;;gEAaA,SACF;EACA,GAAI;EAnBN,UAAA,CAqBG,UACD,oBAAC,gBAAgB,MAAjB;GAAsB,SAAA;GACpB,UAAA,oBAAC,iBAAD,EAAiB,WAAU,oBAAqB,CAAA;EAC5B,CAAA,CACC;;AAE7B;AAEA,SAAS,cAAc,EACrB,WACA,UACA,WAAW,gBACX,QAAQ,UACR,WACA,GAAG,SAGF;CACD,MAAM,EAAE,iBAAiB,UAAU;CAEnC,OACE,oBAAC,gBAAgB,QAAjB;EAAwB,WAAW,aAAa,aAAa;EAC3D,UAAA,qBAAC,gBAAgB,SAAjB;GACE,aAAU;GACV,WAAW,GACT;;;;;;;;;wDAUA,aAAa,YACX;6EAEF,SACF;GACU;GACH;GACP,GAAI;GApBN,UAAA;IAsBE,oBAAC,sBAAD,CAAuB,CAAA;IACvB,oBAAC,gBAAgB,UAAjB;KACE,WAAW,GACT,OACA,aAAa,YACX;oEAEJ;KAEC;IACuB,CAAA;IAC1B,oBAAC,wBAAD,CAAyB,CAAA;GACF;;CACH,CAAA;AAE5B;AAEA,SAAS,YAAY,EACnB,WACA,GAAG,SACkD;CACrD,OACE,oBAAC,gBAAgB,OAAjB;EACE,aAAU;EACV,WAAW,GAAG,6CAA6C,SAAS;EACpE,GAAI;CACL,CAAA;AAEL;AAEA,SAAS,WAAW,EAClB,WACA,UACA,GAAG,SACiD;CACpD,OACE,qBAAC,gBAAgB,MAAjB;EACE,aAAU;EACV,WAAW,GACT;;;;;;yDAOA,SACF;EACA,GAAI;EAZN,UAAA,CAcE,oBAAC,QAAD;GACE,aAAU;GACV,WAAU;GAEV,UAAA,oBAAC,gBAAgB,eAAjB,EAAA,UACE,oBAAC,WAAD,EAAW,WAAU,SAAU,CAAA,EACF,CAAA;EAC3B,CAAA,GACN,oBAAC,gBAAgB,UAAjB,EAA2B,SAAmC,CAAA,CAC1C;;AAE1B;AAEA,SAAS,gBAAgB,EACvB,WACA,GAAG,SACsD;CACzD,OACE,oBAAC,gBAAgB,WAAjB;EACE,aAAU;EACV,WAAW,GAAG,iDAAiD,SAAS;EACxE,GAAI;CACL,CAAA;AAEL;AAEA,SAAS,qBAAqB,EAC5B,WACA,GAAG,SAC2D;CAC9D,OACE,oBAAC,gBAAgB,gBAAjB;EACE,aAAU;EACV,WAAW,GACT,wDACA,SACF;EACA,GAAI;EAEJ,UAAA,oBAAC,eAAD,EAAe,WAAU,SAAU,CAAA;CACL,CAAA;AAEpC;AAEA,SAAS,uBAAuB,EAC9B,WACA,GAAG,SAC6D;CAChE,OACE,oBAAC,gBAAgB,kBAAjB;EACE,aAAU;EACV,WAAW,GACT,wDACA,SACF;EACA,GAAI;EAEJ,UAAA,oBAAC,iBAAD,EAAiB,WAAU,SAAU,CAAA;CACL,CAAA;AAEtC"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import * as React$1 from "react";
|
|
2
|
-
import
|
|
2
|
+
import * as SeparatorPrimitive from "@radix-ui/react-separator";
|
|
3
3
|
declare namespace separator_d_exports {
|
|
4
|
-
export { Separator
|
|
4
|
+
export { Separator };
|
|
5
5
|
}
|
|
6
|
-
declare function Separator
|
|
6
|
+
declare function Separator({ className, orientation, decorative, ...props }: React$1.ComponentProps<typeof SeparatorPrimitive.Root>): React$1.JSX.Element;
|
|
7
7
|
//#endregion
|
|
8
|
-
export { Separator
|
|
8
|
+
export { Separator, separator_d_exports };
|
|
9
9
|
//# sourceMappingURL=separator.d.mts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"separator.d.mts","names":[],"sources":["../../src/core/separator.tsx"],"mappings":";;;;;iBAQS,
|
|
1
|
+
{"version":3,"file":"separator.d.mts","names":[],"sources":["../../src/core/separator.tsx"],"mappings":";;;;;iBAQS,YACP,WACA,aACA,eACG,SACF,QAAM,sBAAsB,mBAAmB,QAAK,QAAA,IAAA"}
|
package/dist/core/separator.mjs
CHANGED
|
@@ -3,11 +3,11 @@ import { __exportAll } from "../_virtual/_rolldown/runtime.mjs";
|
|
|
3
3
|
import { cn } from "../utils.mjs";
|
|
4
4
|
import "react";
|
|
5
5
|
import { jsx } from "react/jsx-runtime";
|
|
6
|
-
import
|
|
6
|
+
import * as SeparatorPrimitive from "@radix-ui/react-separator";
|
|
7
7
|
//#region src/core/separator.tsx
|
|
8
|
-
var separator_exports = /* @__PURE__ */ __exportAll({ Separator: () => Separator
|
|
9
|
-
function Separator
|
|
10
|
-
return /* @__PURE__ */ jsx(
|
|
8
|
+
var separator_exports = /* @__PURE__ */ __exportAll({ Separator: () => Separator });
|
|
9
|
+
function Separator({ className, orientation = "horizontal", decorative = true, ...props }) {
|
|
10
|
+
return /* @__PURE__ */ jsx(SeparatorPrimitive.Root, {
|
|
11
11
|
"data-slot": "separator",
|
|
12
12
|
decorative,
|
|
13
13
|
orientation,
|
|
@@ -18,6 +18,6 @@ function Separator$1({ className, orientation = "horizontal", decorative = true,
|
|
|
18
18
|
});
|
|
19
19
|
}
|
|
20
20
|
//#endregion
|
|
21
|
-
export { Separator
|
|
21
|
+
export { Separator, separator_exports };
|
|
22
22
|
|
|
23
23
|
//# sourceMappingURL=separator.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"separator.mjs","names":[
|
|
1
|
+
{"version":3,"file":"separator.mjs","names":[],"sources":["../../src/core/separator.tsx"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\n\nimport * as SeparatorPrimitive from '@radix-ui/react-separator';\n\nimport { cn } from '@repo/ui/utils';\n\nfunction Separator({\n className,\n orientation = 'horizontal',\n decorative = true,\n ...props\n}: React.ComponentProps<typeof SeparatorPrimitive.Root>) {\n return (\n <SeparatorPrimitive.Root\n data-slot=\"separator\"\n decorative={decorative}\n orientation={orientation}\n className={cn(\n `bg-border shrink-0 data-[orientation=horizontal]:h-px\n data-[orientation=horizontal]:w-full data-[orientation=vertical]:h-full\n data-[orientation=vertical]:w-px`,\n className,\n )}\n {...props}\n />\n );\n}\n\nexport { Separator };\n"],"mappings":";;;;;;;;AAQA,SAAS,UAAU,EACjB,WACA,cAAc,cACd,aAAa,MACb,GAAG,SACoD;CACvD,OACE,oBAAC,mBAAmB,MAApB;EACE,aAAU;EACE;EACC;EACb,WAAW,GACT;;2CAGA,SACF;EACA,GAAI;CACL,CAAA;AAEL"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@jbpark/ui-kit",
|
|
3
|
-
"version": "5.4.
|
|
3
|
+
"version": "5.4.6",
|
|
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",
|
|
@@ -89,16 +89,16 @@
|
|
|
89
89
|
"import": "./dist/utils.mjs",
|
|
90
90
|
"default": "./dist/utils.mjs"
|
|
91
91
|
},
|
|
92
|
-
"./enums": {
|
|
93
|
-
"types": "./dist/enums.d.mts",
|
|
94
|
-
"import": "./dist/enums.mjs",
|
|
95
|
-
"default": "./dist/enums.mjs"
|
|
96
|
-
},
|
|
97
92
|
"./core": {
|
|
98
93
|
"types": "./dist/core.d.mts",
|
|
99
94
|
"import": "./dist/core.mjs",
|
|
100
95
|
"default": "./dist/core.mjs"
|
|
101
96
|
},
|
|
97
|
+
"./providers": {
|
|
98
|
+
"types": "./dist/providers.d.mts",
|
|
99
|
+
"import": "./dist/providers.mjs",
|
|
100
|
+
"default": "./dist/providers.mjs"
|
|
101
|
+
},
|
|
102
102
|
"./style.css": {
|
|
103
103
|
"import": "./dist/style.css",
|
|
104
104
|
"default": "./dist/style.css"
|
|
@@ -122,7 +122,9 @@
|
|
|
122
122
|
"@types/react": "19.2.18",
|
|
123
123
|
"@types/react-dom": "19.2.4",
|
|
124
124
|
"eslint": "^9.39.5",
|
|
125
|
+
"postcss": "^8.5.26",
|
|
125
126
|
"rollup-plugin-postcss": "^4.0.2",
|
|
127
|
+
"tailwindcss": "^4.3.3",
|
|
126
128
|
"tsdown": "^0.22.14",
|
|
127
129
|
"typescript": "6.0.3"
|
|
128
130
|
},
|
|
@@ -136,6 +138,9 @@
|
|
|
136
138
|
"@radix-ui/react-label": "^2.1.15",
|
|
137
139
|
"@radix-ui/react-popover": "^1.1.23",
|
|
138
140
|
"@radix-ui/react-progress": "^1.1.16",
|
|
141
|
+
"@radix-ui/react-radio-group": "^1.4.7",
|
|
142
|
+
"@radix-ui/react-select": "^2.3.7",
|
|
143
|
+
"@radix-ui/react-separator": "^1.1.15",
|
|
139
144
|
"@radix-ui/react-slot": "^1.3.3",
|
|
140
145
|
"@radix-ui/react-switch": "^1.3.7",
|
|
141
146
|
"class-variance-authority": "^0.7.1",
|
|
@@ -144,15 +149,11 @@
|
|
|
144
149
|
"gsap": "^3.15.0",
|
|
145
150
|
"lucide-react": "^1.31.0",
|
|
146
151
|
"motion": "^13.1.0",
|
|
147
|
-
"postcss": "^8.5.26",
|
|
148
|
-
"radix-ui": "^1.6.7",
|
|
149
152
|
"react-colorful": "^5.8.0",
|
|
150
153
|
"react-day-picker": "^10.0.1",
|
|
151
154
|
"react-resizable-panels": "^4.12.2",
|
|
152
155
|
"swiper": "^14.1.0",
|
|
153
156
|
"tailwind-merge": "^3.6.0",
|
|
154
|
-
"tailwindcss": "^4.3.3",
|
|
155
|
-
"uuid": "^14.0.1",
|
|
156
157
|
"vaul": "^1.1.2"
|
|
157
158
|
},
|
|
158
159
|
"peerDependencies": {
|