@oztix/roadie-components 2.0.0 → 2.0.2
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/Accordion.d.ts +42 -21
- package/dist/Accordion.d.ts.map +1 -0
- package/dist/Accordion.js +1 -2
- package/dist/Accordion.js.map +1 -1
- package/dist/Autocomplete.d.ts +120 -95
- package/dist/Autocomplete.d.ts.map +1 -0
- package/dist/Autocomplete.js +1 -2
- package/dist/Autocomplete.js.map +1 -1
- package/dist/Badge.d.ts +27 -16
- package/dist/Badge.d.ts.map +1 -0
- package/dist/Badge.js +1 -1
- package/dist/Badge.js.map +1 -1
- package/dist/Breadcrumb.d.ts +45 -23
- package/dist/Breadcrumb.d.ts.map +1 -0
- package/dist/Breadcrumb.js +1 -1
- package/dist/Breadcrumb.js.map +1 -1
- package/dist/Button-CDQ6ik0P.js +2 -0
- package/dist/Button-CDQ6ik0P.js.map +1 -0
- package/dist/Button-DdE0vCfo.js +2 -0
- package/dist/Button-DdE0vCfo.js.map +1 -0
- package/dist/Button-Dt1TGgrL.d.ts +26 -0
- package/dist/Button-Dt1TGgrL.d.ts.map +1 -0
- package/dist/Button.d.ts +3 -17
- package/dist/Button.js +1 -2
- package/dist/Card.d.ts +56 -30
- package/dist/Card.d.ts.map +1 -0
- package/dist/Card.js +1 -1
- package/dist/Card.js.map +1 -1
- package/dist/Code.d.ts +19 -13
- package/dist/Code.d.ts.map +1 -0
- package/dist/Code.js +1 -1
- package/dist/Code.js.map +1 -1
- package/dist/Combobox.d.ts +132 -101
- package/dist/Combobox.d.ts.map +1 -0
- package/dist/Combobox.js +1 -2
- package/dist/Combobox.js.map +1 -1
- package/dist/Field.d.ts +63 -46
- package/dist/Field.d.ts.map +1 -0
- package/dist/Field.js +1 -2
- package/dist/Field.js.map +1 -1
- package/dist/Fieldset.d.ts +34 -22
- package/dist/Fieldset.d.ts.map +1 -0
- package/dist/Fieldset.js +1 -2
- package/dist/Fieldset.js.map +1 -1
- package/dist/Highlight.d.ts +20 -15
- package/dist/Highlight.d.ts.map +1 -0
- package/dist/Highlight.js +1 -2
- package/dist/Highlight.js.map +1 -1
- package/dist/Indicator.d.ts +20 -12
- package/dist/Indicator.d.ts.map +1 -0
- package/dist/Indicator.js +1 -1
- package/dist/Indicator.js.map +1 -1
- package/dist/Input.d.ts +22 -14
- package/dist/Input.d.ts.map +1 -0
- package/dist/Input.js +1 -2
- package/dist/Input.js.map +1 -1
- package/dist/Label.d.ts +12 -8
- package/dist/Label.d.ts.map +1 -0
- package/dist/Label.js +1 -1
- package/dist/Label.js.map +1 -1
- package/dist/LinkButton-9nnOzX_0.js +2 -0
- package/dist/LinkButton-9nnOzX_0.js.map +1 -0
- package/dist/LinkButton.d.ts +2 -35
- package/dist/LinkButton.js +1 -2
- package/dist/Mark.d.ts +19 -12
- package/dist/Mark.d.ts.map +1 -0
- package/dist/Mark.js +1 -1
- package/dist/Mark.js.map +1 -1
- package/dist/Marquee.d.ts +27 -16
- package/dist/Marquee.d.ts.map +1 -0
- package/dist/Marquee.js +5 -2
- package/dist/Marquee.js.map +1 -1
- package/dist/Prose.d.ts +19 -12
- package/dist/Prose.d.ts.map +1 -0
- package/dist/Prose.js +1 -1
- package/dist/Prose.js.map +1 -1
- package/dist/RadioGroup.d.ts +64 -40
- package/dist/RadioGroup.d.ts.map +1 -0
- package/dist/RadioGroup.js +1 -2
- package/dist/RadioGroup.js.map +1 -1
- package/dist/Select.d.ts +150 -107
- package/dist/Select.d.ts.map +1 -0
- package/dist/Select.js +1 -2
- package/dist/Select.js.map +1 -1
- package/dist/Separator.d.ts +17 -12
- package/dist/Separator.d.ts.map +1 -0
- package/dist/Separator.js +1 -1
- package/dist/Separator.js.map +1 -1
- package/dist/SpotIllustration.d.ts +71 -50
- package/dist/SpotIllustration.d.ts.map +1 -0
- package/dist/SpotIllustration.js +1 -2
- package/dist/SpotIllustration.js.map +1 -1
- package/dist/Steps.d.ts +111 -72
- package/dist/Steps.d.ts.map +1 -0
- package/dist/Steps.js +1 -2
- package/dist/Steps.js.map +1 -1
- package/dist/Textarea.d.ts +22 -13
- package/dist/Textarea.d.ts.map +1 -0
- package/dist/Textarea.js +1 -2
- package/dist/Textarea.js.map +1 -1
- package/dist/index-0w-ydb3o.d.ts +50 -0
- package/dist/index-0w-ydb3o.d.ts.map +1 -0
- package/dist/index-C3_4djmE.d.ts +17 -0
- package/dist/index-C3_4djmE.d.ts.map +1 -0
- package/dist/index.d.ts +47 -49
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +23 -23
- package/dist/index.js.map +1 -1
- package/dist/variants-DTAwzBl3.js +2 -0
- package/dist/variants-DTAwzBl3.js.map +1 -0
- package/package.json +14 -8
- package/dist/Button-DagX1D_q.d.ts +0 -19
- package/dist/Button.js.map +0 -1
- package/dist/LinkButton.js.map +0 -1
- package/dist/_chunks/chunk-2MBFDJ6K.js +0 -3
- package/dist/_chunks/chunk-2MBFDJ6K.js.map +0 -1
- package/dist/_chunks/chunk-3HWPLULJ.js +0 -2
- package/dist/_chunks/chunk-3HWPLULJ.js.map +0 -1
- package/dist/_chunks/chunk-3NU36NBL.js +0 -3
- package/dist/_chunks/chunk-3NU36NBL.js.map +0 -1
- package/dist/_chunks/chunk-42UB7PQB.js +0 -3
- package/dist/_chunks/chunk-42UB7PQB.js.map +0 -1
- package/dist/_chunks/chunk-4LGCF3SN.js +0 -3
- package/dist/_chunks/chunk-4LGCF3SN.js.map +0 -1
- package/dist/_chunks/chunk-A6JSYXKN.js +0 -2
- package/dist/_chunks/chunk-A6JSYXKN.js.map +0 -1
- package/dist/_chunks/chunk-AFSDN4WI.js +0 -2
- package/dist/_chunks/chunk-AFSDN4WI.js.map +0 -1
- package/dist/_chunks/chunk-DRVUAPKN.js +0 -2
- package/dist/_chunks/chunk-DRVUAPKN.js.map +0 -1
- package/dist/_chunks/chunk-EKOEXSAP.js +0 -2
- package/dist/_chunks/chunk-EKOEXSAP.js.map +0 -1
- package/dist/_chunks/chunk-FQNVMKKV.js +0 -7
- package/dist/_chunks/chunk-FQNVMKKV.js.map +0 -1
- package/dist/_chunks/chunk-FSO4EAAY.js +0 -3
- package/dist/_chunks/chunk-FSO4EAAY.js.map +0 -1
- package/dist/_chunks/chunk-IEDKSZAQ.js +0 -3
- package/dist/_chunks/chunk-IEDKSZAQ.js.map +0 -1
- package/dist/_chunks/chunk-JBHYUOI2.js +0 -3
- package/dist/_chunks/chunk-JBHYUOI2.js.map +0 -1
- package/dist/_chunks/chunk-JGTZ3GCR.js +0 -2
- package/dist/_chunks/chunk-JGTZ3GCR.js.map +0 -1
- package/dist/_chunks/chunk-LHNOY24C.js +0 -2
- package/dist/_chunks/chunk-LHNOY24C.js.map +0 -1
- package/dist/_chunks/chunk-LMV3JECI.js +0 -3
- package/dist/_chunks/chunk-LMV3JECI.js.map +0 -1
- package/dist/_chunks/chunk-M4FEKBLW.js +0 -2
- package/dist/_chunks/chunk-M4FEKBLW.js.map +0 -1
- package/dist/_chunks/chunk-MDRAL676.js +0 -3
- package/dist/_chunks/chunk-MDRAL676.js.map +0 -1
- package/dist/_chunks/chunk-N2HGY7W7.js +0 -3
- package/dist/_chunks/chunk-N2HGY7W7.js.map +0 -1
- package/dist/_chunks/chunk-OIAETOZT.js +0 -3
- package/dist/_chunks/chunk-OIAETOZT.js.map +0 -1
- package/dist/_chunks/chunk-RXMWFJ6W.js +0 -3
- package/dist/_chunks/chunk-RXMWFJ6W.js.map +0 -1
- package/dist/_chunks/chunk-VSKUGXQG.js +0 -3
- package/dist/_chunks/chunk-VSKUGXQG.js.map +0 -1
- package/dist/_chunks/chunk-WOU2B425.js +0 -3
- package/dist/_chunks/chunk-WOU2B425.js.map +0 -1
- package/dist/_chunks/chunk-Y6TDYPCZ.js +0 -3
- package/dist/_chunks/chunk-Y6TDYPCZ.js.map +0 -1
- package/dist/_chunks/chunk-ZXR32FYA.js +0 -2
- package/dist/_chunks/chunk-ZXR32FYA.js.map +0 -1
package/dist/Mark.d.ts
CHANGED
|
@@ -1,18 +1,25 @@
|
|
|
1
|
-
import
|
|
2
|
-
import * as
|
|
3
|
-
import {
|
|
4
|
-
import
|
|
1
|
+
import { VariantProps } from "class-variance-authority";
|
|
2
|
+
import * as _$react_jsx_runtime0 from "react/jsx-runtime";
|
|
3
|
+
import { ComponentProps, ElementType } from "react";
|
|
4
|
+
import * as _$class_variance_authority_types0 from "class-variance-authority/types";
|
|
5
5
|
|
|
6
|
+
//#region src/components/Mark/index.d.ts
|
|
6
7
|
declare const markVariants: (props?: ({
|
|
7
|
-
|
|
8
|
-
} &
|
|
8
|
+
intent?: "neutral" | "brand" | "brand-secondary" | "accent" | "danger" | "success" | "warning" | "info" | "neutral-inverted" | null | undefined;
|
|
9
|
+
} & _$class_variance_authority_types0.ClassProp) | undefined) => string;
|
|
9
10
|
type MarkProps<T extends ElementType = 'mark'> = {
|
|
10
|
-
|
|
11
|
-
|
|
11
|
+
as?: T;
|
|
12
|
+
className?: string;
|
|
12
13
|
} & VariantProps<typeof markVariants> & Omit<ComponentProps<T>, 'as' | 'className'>;
|
|
13
|
-
declare function Mark<T extends ElementType = 'mark'>({
|
|
14
|
+
declare function Mark<T extends ElementType = 'mark'>({
|
|
15
|
+
as,
|
|
16
|
+
className,
|
|
17
|
+
intent,
|
|
18
|
+
...props
|
|
19
|
+
}: MarkProps<T>): _$react_jsx_runtime0.JSX.Element;
|
|
14
20
|
declare namespace Mark {
|
|
15
|
-
|
|
21
|
+
var displayName: string;
|
|
16
22
|
}
|
|
17
|
-
|
|
18
|
-
export { Mark,
|
|
23
|
+
//#endregion
|
|
24
|
+
export { Mark, MarkProps, markVariants };
|
|
25
|
+
//# sourceMappingURL=Mark.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Mark.d.ts","names":[],"sources":["../src/components/Mark/index.tsx"],"mappings":";;;;;;cAMa,YAAA,GAAY,KAAA;;IAkBxB,iCAAA,CAAA,SAAA;AAAA,KAEW,SAAA,WAAoB,WAAA;EAC9B,EAAA,GAAK,CAAA;EACL,SAAA;AAAA,IACE,YAAA,QAAoB,YAAA,IACtB,IAAA,CAAK,cAAA,CAAe,CAAA;AAAA,iBAIN,IAAA,WAAe,WAAA,UAAA,CAAA;EAC7B,EAAA;EACA,SAAA;EACA,MAAA;EAAA,GACG;AAAA,GACF,SAAA,CAAU,CAAA,IAAE,oBAAA,CAAA,GAAA,CAAA,OAAA;AAAA,kBALC,IAAA;EAAA,IAAI,WAAA;AAAA"}
|
package/dist/Mark.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
|
|
1
|
+
import{cva as e}from"class-variance-authority";import{cn as t}from"@oztix/roadie-core/utils";import{jsx as n}from"react/jsx-runtime";const r=e(`inline-block justify-self-start self-start px-[0.1em] py-[0.05em]`,{variants:{intent:{neutral:`intent-neutral`,"neutral-inverted":`intent-neutral`,brand:`intent-brand`,"brand-secondary":`intent-brand-secondary`,accent:`intent-accent`,danger:`intent-danger`,success:`intent-success`,warning:`intent-warning`,info:`intent-info`}},defaultVariants:{intent:`info`}}),i=new Set([`h1`,`h2`,`h3`,`h4`,`h5`,`h6`]);function a({as:e,className:a,intent:o,...s}){let c=e||`mark`,l=typeof c==`string`&&i.has(c),u=o===`neutral-inverted`;return n(c,{className:t(r({intent:o}),u?`bg-neutral-0 text-neutral-13`:`bg-mark text-mark`,l&&`px-[0.4em] py-[0.2em]`,a),...s})}a.displayName=`Mark`;export{a as Mark,r as markVariants};
|
|
2
2
|
//# sourceMappingURL=Mark.js.map
|
package/dist/Mark.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"Mark.js","names":[],"sources":["../src/components/Mark/index.tsx"],"sourcesContent":["import type { ComponentProps, ElementType } from 'react'\n\nimport { type VariantProps, cva } from 'class-variance-authority'\n\nimport { cn } from '@oztix/roadie-core/utils'\n\nexport const markVariants = cva(\n 'inline-block justify-self-start self-start px-[0.1em] py-[0.05em]',\n {\n variants: {\n intent: {\n neutral: 'intent-neutral',\n 'neutral-inverted': 'intent-neutral',\n brand: 'intent-brand',\n 'brand-secondary': 'intent-brand-secondary',\n accent: 'intent-accent',\n danger: 'intent-danger',\n success: 'intent-success',\n warning: 'intent-warning',\n info: 'intent-info'\n }\n },\n defaultVariants: { intent: 'info' }\n }\n)\n\nexport type MarkProps<T extends ElementType = 'mark'> = {\n as?: T\n className?: string\n} & VariantProps<typeof markVariants> &\n Omit<ComponentProps<T>, 'as' | 'className'>\n\nconst headingElements = new Set(['h1', 'h2', 'h3', 'h4', 'h5', 'h6'])\n\nexport function Mark<T extends ElementType = 'mark'>({\n as,\n className,\n intent,\n ...props\n}: MarkProps<T>) {\n const Component = as || 'mark'\n const isHeading =\n typeof Component === 'string' && headingElements.has(Component)\n const isNeutralInverted = intent === 'neutral-inverted'\n return (\n <Component\n className={cn(\n markVariants({ intent }),\n isNeutralInverted\n ? 'bg-neutral-0 text-neutral-13'\n : 'bg-mark text-mark',\n isHeading && 'px-[0.4em] py-[0.2em]',\n className\n )}\n {...props}\n />\n )\n}\n\nMark.displayName = 'Mark'\n"],"mappings":"qIAMA,MAAa,EAAe,EAC1B,oEACA,CACE,SAAU,CACR,OAAQ,CACN,QAAS,iBACT,mBAAoB,iBACpB,MAAO,eACP,kBAAmB,yBACnB,OAAQ,gBACR,OAAQ,gBACR,QAAS,iBACT,QAAS,iBACT,KAAM,cACP,CACF,CACD,gBAAiB,CAAE,OAAQ,OAAQ,CACpC,CACF,CAQK,EAAkB,IAAI,IAAI,CAAC,KAAM,KAAM,KAAM,KAAM,KAAM,KAAK,CAAC,CAErE,SAAgB,EAAqC,CACnD,KACA,YACA,SACA,GAAG,GACY,CACf,IAAM,EAAY,GAAM,OAClB,EACJ,OAAO,GAAc,UAAY,EAAgB,IAAI,EAAU,CAC3D,EAAoB,IAAW,mBACrC,OACE,EAAC,EAAD,CACE,UAAW,EACT,EAAa,CAAE,SAAQ,CAAC,CACxB,EACI,+BACA,oBACJ,GAAa,wBACb,EACD,CACD,GAAI,EACJ,CAAA,CAIN,EAAK,YAAc"}
|
package/dist/Marquee.d.ts
CHANGED
|
@@ -1,21 +1,32 @@
|
|
|
1
|
-
import * as
|
|
2
|
-
import { ComponentProps } from
|
|
1
|
+
import * as _$react_jsx_runtime0 from "react/jsx-runtime";
|
|
2
|
+
import { ComponentProps } from "react";
|
|
3
3
|
|
|
4
|
+
//#region src/components/Marquee/index.d.ts
|
|
4
5
|
interface MarqueeProps extends ComponentProps<'div'> {
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
6
|
+
/** Scroll speed in pixels per second. @default 50 */
|
|
7
|
+
speed?: number;
|
|
8
|
+
/** Pause animation on hover. @default false */
|
|
9
|
+
pauseOnHover?: boolean;
|
|
10
|
+
/** Scroll direction. @default 'normal' */
|
|
11
|
+
direction?: 'normal' | 'reverse';
|
|
12
|
+
/** Gap between items in pixels. @default 16 */
|
|
13
|
+
gap?: number;
|
|
14
|
+
/** Accessible label for the marquee region. */
|
|
15
|
+
'aria-label'?: string;
|
|
15
16
|
}
|
|
16
|
-
declare function Marquee({
|
|
17
|
+
declare function Marquee({
|
|
18
|
+
children,
|
|
19
|
+
speed,
|
|
20
|
+
pauseOnHover,
|
|
21
|
+
direction,
|
|
22
|
+
gap,
|
|
23
|
+
className,
|
|
24
|
+
'aria-label': ariaLabel,
|
|
25
|
+
...props
|
|
26
|
+
}: MarqueeProps): _$react_jsx_runtime0.JSX.Element;
|
|
17
27
|
declare namespace Marquee {
|
|
18
|
-
|
|
28
|
+
var displayName: string;
|
|
19
29
|
}
|
|
20
|
-
|
|
21
|
-
export { Marquee,
|
|
30
|
+
//#endregion
|
|
31
|
+
export { Marquee, MarqueeProps };
|
|
32
|
+
//# sourceMappingURL=Marquee.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Marquee.d.ts","names":[],"sources":["../src/components/Marquee/index.tsx"],"mappings":";;;;UAMiB,YAAA,SAAqB,cAAA;;EAEpC,KAAA;EAFe;EAIf,YAAA;;EAEA,SAAA;EANoC;EAQpC,GAAA;EAJA;EAMA,YAAA;AAAA;AAAA,iBAGc,OAAA,CAAA;EACd,QAAA;EACA,KAAA;EACA,YAAA;EACA,SAAA;EACA,GAAA;EACA,SAAA;EAAA,cACc,SAAA;EAAA,GACX;AAAA,GACF,YAAA,GAAY,oBAAA,CAAA,GAAA,CAAA,OAAA;AAAA,kBATC,OAAA;EAAA,IAAO,WAAA;AAAA"}
|
package/dist/Marquee.js
CHANGED
|
@@ -1,3 +1,6 @@
|
|
|
1
|
-
"use client";
|
|
2
|
-
|
|
1
|
+
"use client";import{cn as e}from"@oztix/roadie-core/utils";import{jsx as t,jsxs as n}from"react/jsx-runtime";import{useEffect as r,useRef as i,useState as a}from"react";function o({children:o,speed:s=50,pauseOnHover:c=!1,direction:l=`normal`,gap:u=16,className:d,"aria-label":f,...p}){let m=i(null),h=i(null),g=i(null),[_,v]=a(0),[y,b]=a(1);r(()=>{let e=m.current,t=g.current;if(!e||!t)return;let n=()=>{let n=e.clientWidth,r=t.scrollWidth;r>0&&b(Math.ceil(n/r)+1)};n();let r=new ResizeObserver(n);return r.observe(e),r.observe(t),()=>r.disconnect()},[o,u]),r(()=>{let e=h.current;if(!e)return;let t=()=>{let t=e.scrollWidth/2;t>0&&v(t/s)};t();let n=new ResizeObserver(t);return n.observe(e),()=>n.disconnect()},[s,y]);let x=`${u}px`,S=Array.from({length:y},(e,n)=>t(`div`,{className:`flex shrink-0 items-center`,style:{gap:x},children:o},n));return n(`div`,{ref:m,className:e(`relative max-w-full overflow-hidden`,d),"aria-label":f,...p,children:[t(`style`,{children:`
|
|
2
|
+
@keyframes roadie-marquee {
|
|
3
|
+
to { transform: translateX(-50%); }
|
|
4
|
+
}
|
|
5
|
+
`}),t(`div`,{ref:g,"aria-hidden":`true`,style:{position:`absolute`,visibility:`hidden`,pointerEvents:`none`,display:`flex`,width:`max-content`,height:0,overflow:`hidden`,gap:x},children:o}),n(`div`,{ref:h,style:{display:`flex`,width:`max-content`,gap:x,animationName:_>0?`roadie-marquee`:`none`,animationDuration:`${_}s`,animationTimingFunction:`linear`,animationIterationCount:`infinite`,animationDirection:l,animationPlayState:`running`},onMouseEnter:c?e=>{e.currentTarget.style.animationPlayState=`paused`}:void 0,onMouseLeave:c?e=>{e.currentTarget.style.animationPlayState=`running`}:void 0,children:[t(`div`,{className:`flex shrink-0 items-center`,style:{gap:x},children:S}),t(`div`,{className:`flex shrink-0 items-center`,style:{gap:x},"aria-hidden":`true`,children:S})]})]})}o.displayName=`Marquee`;export{o as Marquee};
|
|
3
6
|
//# sourceMappingURL=Marquee.js.map
|
package/dist/Marquee.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"Marquee.js","names":[],"sources":["../src/components/Marquee/index.tsx"],"sourcesContent":["'use client'\n\nimport { type ComponentProps, useEffect, useRef, useState } from 'react'\n\nimport { cn } from '@oztix/roadie-core/utils'\n\nexport interface MarqueeProps extends ComponentProps<'div'> {\n /** Scroll speed in pixels per second. @default 50 */\n speed?: number\n /** Pause animation on hover. @default false */\n pauseOnHover?: boolean\n /** Scroll direction. @default 'normal' */\n direction?: 'normal' | 'reverse'\n /** Gap between items in pixels. @default 16 */\n gap?: number\n /** Accessible label for the marquee region. */\n 'aria-label'?: string\n}\n\nexport function Marquee({\n children,\n speed = 50,\n pauseOnHover = false,\n direction = 'normal',\n gap = 16,\n className,\n 'aria-label': ariaLabel,\n ...props\n}: MarqueeProps) {\n const outerRef = useRef<HTMLDivElement>(null)\n const trackRef = useRef<HTMLDivElement>(null)\n const measureRef = useRef<HTMLDivElement>(null)\n const [duration, setDuration] = useState(0)\n const [repeats, setRepeats] = useState(1)\n\n useEffect(() => {\n const outer = outerRef.current\n const measure = measureRef.current\n if (!outer || !measure) return\n\n const update = () => {\n const containerWidth = outer.clientWidth\n const contentWidth = measure.scrollWidth\n if (contentWidth > 0) {\n // Repeat enough times so one \"set\" is always wider than the container\n const needed = Math.ceil(containerWidth / contentWidth) + 1\n setRepeats(needed)\n }\n }\n\n update()\n\n const observer = new ResizeObserver(update)\n observer.observe(outer)\n observer.observe(measure)\n return () => observer.disconnect()\n }, [children, gap])\n\n useEffect(() => {\n const track = trackRef.current\n if (!track) return\n\n const updateDuration = () => {\n const halfWidth = track.scrollWidth / 2\n if (halfWidth > 0) {\n setDuration(halfWidth / speed)\n }\n }\n\n updateDuration()\n\n const observer = new ResizeObserver(updateDuration)\n observer.observe(track)\n return () => observer.disconnect()\n }, [speed, repeats])\n\n const gapPx = `${gap}px`\n\n const repeatedChildren = Array.from({ length: repeats }, (_, i) => (\n <div key={i} className='flex shrink-0 items-center' style={{ gap: gapPx }}>\n {children}\n </div>\n ))\n\n return (\n <div\n ref={outerRef}\n className={cn('relative max-w-full overflow-hidden', className)}\n aria-label={ariaLabel}\n {...props}\n >\n <style>{`\n @keyframes roadie-marquee {\n to { transform: translateX(-50%); }\n }\n `}</style>\n {/* Hidden measure element to get single-set width */}\n <div\n ref={measureRef}\n aria-hidden='true'\n style={{\n position: 'absolute',\n visibility: 'hidden',\n pointerEvents: 'none',\n display: 'flex',\n width: 'max-content',\n height: 0,\n overflow: 'hidden',\n gap: gapPx\n }}\n >\n {children}\n </div>\n <div\n ref={trackRef}\n style={{\n display: 'flex',\n width: 'max-content',\n gap: gapPx,\n animationName: duration > 0 ? 'roadie-marquee' : 'none',\n animationDuration: `${duration}s`,\n animationTimingFunction: 'linear',\n animationIterationCount: 'infinite',\n animationDirection: direction,\n animationPlayState: 'running'\n }}\n onMouseEnter={\n pauseOnHover\n ? (e) => {\n e.currentTarget.style.animationPlayState = 'paused'\n }\n : undefined\n }\n onMouseLeave={\n pauseOnHover\n ? (e) => {\n e.currentTarget.style.animationPlayState = 'running'\n }\n : undefined\n }\n >\n {/* Set A */}\n <div className='flex shrink-0 items-center' style={{ gap: gapPx }}>\n {repeatedChildren}\n </div>\n {/* Set B (clone for seamless loop) */}\n <div\n className='flex shrink-0 items-center'\n style={{ gap: gapPx }}\n aria-hidden='true'\n >\n {repeatedChildren}\n </div>\n </div>\n </div>\n )\n}\n\nMarquee.displayName = 'Marquee'\n"],"mappings":"yKAmBA,SAAgB,EAAQ,CACtB,WACA,QAAQ,GACR,eAAe,GACf,YAAY,SACZ,MAAM,GACN,YACA,aAAc,EACd,GAAG,GACY,CACf,IAAM,EAAW,EAAuB,KAAK,CACvC,EAAW,EAAuB,KAAK,CACvC,EAAa,EAAuB,KAAK,CACzC,CAAC,EAAU,GAAe,EAAS,EAAE,CACrC,CAAC,EAAS,GAAc,EAAS,EAAE,CAEzC,MAAgB,CACd,IAAM,EAAQ,EAAS,QACjB,EAAU,EAAW,QAC3B,GAAI,CAAC,GAAS,CAAC,EAAS,OAExB,IAAM,MAAe,CACnB,IAAM,EAAiB,EAAM,YACvB,EAAe,EAAQ,YACzB,EAAe,GAGjB,EADe,KAAK,KAAK,EAAiB,EAAa,CAAG,EACxC,EAItB,GAAQ,CAER,IAAM,EAAW,IAAI,eAAe,EAAO,CAG3C,OAFA,EAAS,QAAQ,EAAM,CACvB,EAAS,QAAQ,EAAQ,KACZ,EAAS,YAAY,EACjC,CAAC,EAAU,EAAI,CAAC,CAEnB,MAAgB,CACd,IAAM,EAAQ,EAAS,QACvB,GAAI,CAAC,EAAO,OAEZ,IAAM,MAAuB,CAC3B,IAAM,EAAY,EAAM,YAAc,EAClC,EAAY,GACd,EAAY,EAAY,EAAM,EAIlC,GAAgB,CAEhB,IAAM,EAAW,IAAI,eAAe,EAAe,CAEnD,OADA,EAAS,QAAQ,EAAM,KACV,EAAS,YAAY,EACjC,CAAC,EAAO,EAAQ,CAAC,CAEpB,IAAM,EAAQ,GAAG,EAAI,IAEf,EAAmB,MAAM,KAAK,CAAE,OAAQ,EAAS,EAAG,EAAG,IAC3D,EAAC,MAAD,CAAa,UAAU,6BAA6B,MAAO,CAAE,IAAK,EAAO,CACtE,WACG,CAFI,EAEJ,CACN,CAEF,OACE,EAAC,MAAD,CACE,IAAK,EACL,UAAW,EAAG,sCAAuC,EAAU,CAC/D,aAAY,EACZ,GAAI,WAJN,CAME,EAAC,QAAD,CAAA,SAAQ;;;;QAIE,CAAA,CAEV,EAAC,MAAD,CACE,IAAK,EACL,cAAY,OACZ,MAAO,CACL,SAAU,WACV,WAAY,SACZ,cAAe,OACf,QAAS,OACT,MAAO,cACP,OAAQ,EACR,SAAU,SACV,IAAK,EACN,CAEA,WACG,CAAA,CACN,EAAC,MAAD,CACE,IAAK,EACL,MAAO,CACL,QAAS,OACT,MAAO,cACP,IAAK,EACL,cAAe,EAAW,EAAI,iBAAmB,OACjD,kBAAmB,GAAG,EAAS,GAC/B,wBAAyB,SACzB,wBAAyB,WACzB,mBAAoB,EACpB,mBAAoB,UACrB,CACD,aACE,EACK,GAAM,CACL,EAAE,cAAc,MAAM,mBAAqB,UAE7C,IAAA,GAEN,aACE,EACK,GAAM,CACL,EAAE,cAAc,MAAM,mBAAqB,WAE7C,IAAA,YAzBR,CA6BE,EAAC,MAAD,CAAK,UAAU,6BAA6B,MAAO,CAAE,IAAK,EAAO,UAC9D,EACG,CAAA,CAEN,EAAC,MAAD,CACE,UAAU,6BACV,MAAO,CAAE,IAAK,EAAO,CACrB,cAAY,gBAEX,EACG,CAAA,CACF,GACF,GAIV,EAAQ,YAAc"}
|
package/dist/Prose.d.ts
CHANGED
|
@@ -1,22 +1,29 @@
|
|
|
1
|
-
import
|
|
2
|
-
import * as
|
|
3
|
-
import {
|
|
4
|
-
import
|
|
1
|
+
import { VariantProps } from "class-variance-authority";
|
|
2
|
+
import * as _$react_jsx_runtime0 from "react/jsx-runtime";
|
|
3
|
+
import { ComponentProps, ElementType } from "react";
|
|
4
|
+
import * as _$class_variance_authority_types0 from "class-variance-authority/types";
|
|
5
5
|
|
|
6
|
+
//#region src/components/Prose/index.d.ts
|
|
6
7
|
declare const proseVariants: (props?: ({
|
|
7
|
-
|
|
8
|
-
} &
|
|
8
|
+
size?: "sm" | "md" | "lg" | null | undefined;
|
|
9
|
+
} & _$class_variance_authority_types0.ClassProp) | undefined) => string;
|
|
9
10
|
type ProseProps<T extends ElementType = 'div'> = {
|
|
10
|
-
|
|
11
|
-
|
|
11
|
+
as?: T;
|
|
12
|
+
className?: string;
|
|
12
13
|
} & VariantProps<typeof proseVariants> & Omit<ComponentProps<T>, 'as' | 'className' | 'size'>;
|
|
13
14
|
/**
|
|
14
15
|
* Prose container for long-form/rich content (CMS output, markdown, user HTML).
|
|
15
16
|
* Applies semantic typography styles to nested HTML elements.
|
|
16
17
|
*/
|
|
17
|
-
declare function Prose<T extends ElementType = 'div'>({
|
|
18
|
+
declare function Prose<T extends ElementType = 'div'>({
|
|
19
|
+
as,
|
|
20
|
+
className,
|
|
21
|
+
size,
|
|
22
|
+
...props
|
|
23
|
+
}: ProseProps<T>): _$react_jsx_runtime0.JSX.Element;
|
|
18
24
|
declare namespace Prose {
|
|
19
|
-
|
|
25
|
+
var displayName: string;
|
|
20
26
|
}
|
|
21
|
-
|
|
22
|
-
export { Prose,
|
|
27
|
+
//#endregion
|
|
28
|
+
export { Prose, ProseProps, proseVariants };
|
|
29
|
+
//# sourceMappingURL=Prose.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Prose.d.ts","names":[],"sources":["../src/components/Prose/index.tsx"],"mappings":";;;;;;cAMa,aAAA,GAAa,KAAA;;IAyEzB,iCAAA,CAAA,SAAA;AAAA,KAEW,UAAA,WAAqB,WAAA;EAC/B,EAAA,GAAK,CAAA;EACL,SAAA;AAAA,IACE,YAAA,QAAoB,aAAA,IACtB,IAAA,CAAK,cAAA,CAAe,CAAA;;;;;iBAMN,KAAA,WAAgB,WAAA,SAAA,CAAA;EAC9B,EAAA;EACA,SAAA;EACA,IAAA;EAAA,GACG;AAAA,GACF,UAAA,CAAW,CAAA,IAAE,oBAAA,CAAA,GAAA,CAAA,OAAA;AAAA,kBALA,KAAA;EAAA,IAAK,WAAA;AAAA"}
|
package/dist/Prose.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
|
|
1
|
+
import{cva as e}from"class-variance-authority";import{cn as t}from"@oztix/roadie-core/utils";import{jsx as n}from"react/jsx-runtime";const r=e([`text-prose text-normal`,`[&_a]:underline [&_a]:underline-offset-2`,`[&_ul]:list-disc [&_ul]:pl-6`,`[&_ol]:list-decimal [&_ol]:pl-6`,`[&_blockquote]:border-l-[3px] [&_blockquote]:border-normal [&_blockquote]:pl-4 [&_blockquote]:text-subtle`,`[&_:not(pre)>code]:bg-subtler [&_:not(pre)>code]:rounded-md [&_:not(pre)>code]:px-1.5 [&_:not(pre)>code]:py-0.5 [&_:not(pre)>code]:text-[0.9em] [&_:not(pre)>code]:font-mono`,`[&_pre]:bg-sunken [&_pre]:rounded-lg [&_pre]:overflow-x-auto [&_pre]:font-mono`,`[&_img]:rounded-lg`,`[&_table]:w-full`,`[&_th]:text-left [&_th]:font-semibold [&_th]:border-b [&_th]:border-subtle`,`[&_td]:border-b [&_td]:border-subtler`,`[&_strong]:font-semibold [&_strong]:text-strong`],{variants:{size:{sm:[`text-sm`,`[&>*+*]:mt-2`,`[&_h1]:text-display-ui-2 [&_h1]:text-strong [&_h1]:mt-4`,`[&_h2]:text-display-ui-3 [&_h2]:text-strong [&_h2]:mt-4`,`[&_h3]:text-display-ui-4 [&_h3]:text-strong [&_h3]:mt-3`,`[&_h4]:text-display-ui-5 [&_h4]:text-strong [&_h4]:mt-3`,`[&_h5]:text-display-ui-6 [&_h5]:text-strong [&_h5]:mt-2`,`[&_h6]:text-display-ui-6 [&_h6]:text-strong [&_h6]:mt-2`,`[&_ul>li+li]:mt-0.5 [&_ol>li+li]:mt-0.5`,`[&_pre]:p-3 [&_pre]:text-xs`,`[&_th]:py-1.5 [&_th]:pr-3 [&_td]:py-1.5 [&_td]:pr-3`,`[&_hr]:my-4`],md:[`[&>*+*]:mt-4`,`[&_h1]:text-display-prose-1 [&_h1]:text-strong [&_h1]:mt-8`,`[&_h2]:text-display-prose-2 [&_h2]:text-strong [&_h2]:mt-8`,`[&_h3]:text-display-prose-3 [&_h3]:text-strong [&_h3]:mt-6`,`[&_h4]:text-display-prose-4 [&_h4]:text-strong [&_h4]:mt-6`,`[&_h5]:text-display-prose-5 [&_h5]:text-strong [&_h5]:mt-4`,`[&_h6]:text-display-prose-6 [&_h6]:text-strong [&_h6]:mt-4`,`[&_ul>li+li]:mt-1 [&_ol>li+li]:mt-1`,`[&_pre]:p-4 [&_pre]:text-sm`,`[&_th]:py-2 [&_th]:pr-4 [&_td]:py-2 [&_td]:pr-4`,`[&_hr]:my-8`],lg:[`text-lg`,`[&>*+*]:mt-6`,`[&_h1]:text-display-prose-1 [&_h1]:text-strong [&_h1]:mt-12`,`[&_h2]:text-display-prose-2 [&_h2]:text-strong [&_h2]:mt-10`,`[&_h3]:text-display-prose-3 [&_h3]:text-strong [&_h3]:mt-8`,`[&_h4]:text-display-prose-4 [&_h4]:text-strong [&_h4]:mt-6`,`[&_h5]:text-display-prose-5 [&_h5]:text-strong [&_h5]:mt-6`,`[&_h6]:text-display-prose-6 [&_h6]:text-strong [&_h6]:mt-4`,`[&_ul>li+li]:mt-2 [&_ol>li+li]:mt-2`,`[&_pre]:p-6 [&_pre]:text-sm`,`[&_th]:py-3 [&_th]:pr-4 [&_td]:py-3 [&_td]:pr-4`,`[&_hr]:my-12`]}},defaultVariants:{size:`md`}});function i({as:e,className:i,size:a,...o}){return n(e||`div`,{className:t(r({size:a,className:i})),...o})}i.displayName=`Prose`;export{i as Prose,r as proseVariants};
|
|
2
2
|
//# sourceMappingURL=Prose.js.map
|
package/dist/Prose.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"Prose.js","names":[],"sources":["../src/components/Prose/index.tsx"],"sourcesContent":["import type { ComponentProps, ElementType } from 'react'\n\nimport { type VariantProps, cva } from 'class-variance-authority'\n\nimport { cn } from '@oztix/roadie-core/utils'\n\nexport const proseVariants = cva(\n [\n 'text-prose text-normal',\n // Links\n '[&_a]:underline [&_a]:underline-offset-2',\n // Lists\n '[&_ul]:list-disc [&_ul]:pl-6',\n '[&_ol]:list-decimal [&_ol]:pl-6',\n // Blockquote\n '[&_blockquote]:border-l-[3px] [&_blockquote]:border-normal [&_blockquote]:pl-4 [&_blockquote]:text-subtle',\n // Code\n '[&_:not(pre)>code]:bg-subtler [&_:not(pre)>code]:rounded-md [&_:not(pre)>code]:px-1.5 [&_:not(pre)>code]:py-0.5 [&_:not(pre)>code]:text-[0.9em] [&_:not(pre)>code]:font-mono',\n // Pre\n '[&_pre]:bg-sunken [&_pre]:rounded-lg [&_pre]:overflow-x-auto [&_pre]:font-mono',\n // Images\n '[&_img]:rounded-lg',\n // Tables\n '[&_table]:w-full',\n '[&_th]:text-left [&_th]:font-semibold [&_th]:border-b [&_th]:border-subtle',\n '[&_td]:border-b [&_td]:border-subtler',\n // Strong/em\n '[&_strong]:font-semibold [&_strong]:text-strong'\n ],\n {\n variants: {\n size: {\n sm: [\n 'text-sm',\n '[&>*+*]:mt-2',\n '[&_h1]:text-display-ui-2 [&_h1]:text-strong [&_h1]:mt-4',\n '[&_h2]:text-display-ui-3 [&_h2]:text-strong [&_h2]:mt-4',\n '[&_h3]:text-display-ui-4 [&_h3]:text-strong [&_h3]:mt-3',\n '[&_h4]:text-display-ui-5 [&_h4]:text-strong [&_h4]:mt-3',\n '[&_h5]:text-display-ui-6 [&_h5]:text-strong [&_h5]:mt-2',\n '[&_h6]:text-display-ui-6 [&_h6]:text-strong [&_h6]:mt-2',\n '[&_ul>li+li]:mt-0.5 [&_ol>li+li]:mt-0.5',\n '[&_pre]:p-3 [&_pre]:text-xs',\n '[&_th]:py-1.5 [&_th]:pr-3 [&_td]:py-1.5 [&_td]:pr-3',\n '[&_hr]:my-4'\n ],\n md: [\n '[&>*+*]:mt-4',\n '[&_h1]:text-display-prose-1 [&_h1]:text-strong [&_h1]:mt-8',\n '[&_h2]:text-display-prose-2 [&_h2]:text-strong [&_h2]:mt-8',\n '[&_h3]:text-display-prose-3 [&_h3]:text-strong [&_h3]:mt-6',\n '[&_h4]:text-display-prose-4 [&_h4]:text-strong [&_h4]:mt-6',\n '[&_h5]:text-display-prose-5 [&_h5]:text-strong [&_h5]:mt-4',\n '[&_h6]:text-display-prose-6 [&_h6]:text-strong [&_h6]:mt-4',\n '[&_ul>li+li]:mt-1 [&_ol>li+li]:mt-1',\n '[&_pre]:p-4 [&_pre]:text-sm',\n '[&_th]:py-2 [&_th]:pr-4 [&_td]:py-2 [&_td]:pr-4',\n '[&_hr]:my-8'\n ],\n lg: [\n 'text-lg',\n '[&>*+*]:mt-6',\n '[&_h1]:text-display-prose-1 [&_h1]:text-strong [&_h1]:mt-12',\n '[&_h2]:text-display-prose-2 [&_h2]:text-strong [&_h2]:mt-10',\n '[&_h3]:text-display-prose-3 [&_h3]:text-strong [&_h3]:mt-8',\n '[&_h4]:text-display-prose-4 [&_h4]:text-strong [&_h4]:mt-6',\n '[&_h5]:text-display-prose-5 [&_h5]:text-strong [&_h5]:mt-6',\n '[&_h6]:text-display-prose-6 [&_h6]:text-strong [&_h6]:mt-4',\n '[&_ul>li+li]:mt-2 [&_ol>li+li]:mt-2',\n '[&_pre]:p-6 [&_pre]:text-sm',\n '[&_th]:py-3 [&_th]:pr-4 [&_td]:py-3 [&_td]:pr-4',\n '[&_hr]:my-12'\n ]\n }\n },\n defaultVariants: {\n size: 'md'\n }\n }\n)\n\nexport type ProseProps<T extends ElementType = 'div'> = {\n as?: T\n className?: string\n} & VariantProps<typeof proseVariants> &\n Omit<ComponentProps<T>, 'as' | 'className' | 'size'>\n\n/**\n * Prose container for long-form/rich content (CMS output, markdown, user HTML).\n * Applies semantic typography styles to nested HTML elements.\n */\nexport function Prose<T extends ElementType = 'div'>({\n as,\n className,\n size,\n ...props\n}: ProseProps<T>) {\n const Component = as || 'div'\n return (\n <Component className={cn(proseVariants({ size, className }))} {...props} />\n )\n}\n\nProse.displayName = 'Prose'\n"],"mappings":"qIAMA,MAAa,EAAgB,EAC3B,CACE,yBAEA,2CAEA,+BACA,kCAEA,4GAEA,+KAEA,iFAEA,qBAEA,mBACA,6EACA,wCAEA,kDACD,CACD,CACE,SAAU,CACR,KAAM,CACJ,GAAI,CACF,UACA,eACA,0DACA,0DACA,0DACA,0DACA,0DACA,0DACA,0CACA,8BACA,sDACA,cACD,CACD,GAAI,CACF,eACA,6DACA,6DACA,6DACA,6DACA,6DACA,6DACA,sCACA,8BACA,kDACA,cACD,CACD,GAAI,CACF,UACA,eACA,8DACA,8DACA,6DACA,6DACA,6DACA,6DACA,sCACA,8BACA,kDACA,eACD,CACF,CACF,CACD,gBAAiB,CACf,KAAM,KACP,CACF,CACF,CAYD,SAAgB,EAAqC,CACnD,KACA,YACA,OACA,GAAG,GACa,CAEhB,OACE,EAFgB,GAAM,MAEtB,CAAW,UAAW,EAAG,EAAc,CAAE,OAAM,YAAW,CAAC,CAAC,CAAE,GAAI,EAAS,CAAA,CAI/E,EAAM,YAAc"}
|
package/dist/RadioGroup.d.ts
CHANGED
|
@@ -1,59 +1,83 @@
|
|
|
1
|
-
import
|
|
2
|
-
import * as
|
|
3
|
-
import { ComponentProps } from
|
|
4
|
-
import { Radio } from
|
|
5
|
-
import { RadioGroup as RadioGroup$1 } from
|
|
6
|
-
import
|
|
1
|
+
import { VariantProps } from "class-variance-authority";
|
|
2
|
+
import * as _$react_jsx_runtime0 from "react/jsx-runtime";
|
|
3
|
+
import { ComponentProps, RefAttributes } from "react";
|
|
4
|
+
import { Radio } from "@base-ui/react/radio";
|
|
5
|
+
import { RadioGroup as RadioGroup$1 } from "@base-ui/react/radio-group";
|
|
6
|
+
import * as _$class_variance_authority_types0 from "class-variance-authority/types";
|
|
7
7
|
|
|
8
|
+
//#region src/components/RadioGroup/index.d.ts
|
|
8
9
|
type RadioGroupEmphasis = 'subtler' | 'normal';
|
|
9
10
|
declare const radioGroupVariants: (props?: ({
|
|
10
|
-
|
|
11
|
-
} &
|
|
11
|
+
direction?: "vertical" | "horizontal" | null | undefined;
|
|
12
|
+
} & _$class_variance_authority_types0.ClassProp) | undefined) => string;
|
|
12
13
|
declare const radioGroupItemVariants: (props?: ({
|
|
13
|
-
|
|
14
|
-
} &
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
}
|
|
20
|
-
declare function RadioGroupRoot({
|
|
14
|
+
emphasis?: "normal" | "subtler" | null | undefined;
|
|
15
|
+
} & _$class_variance_authority_types0.ClassProp) | undefined) => string;
|
|
16
|
+
type RadioGroupRootProps = RadioGroup$1.Props & RefAttributes<HTMLDivElement> & VariantProps<typeof radioGroupVariants> & {
|
|
17
|
+
emphasis?: RadioGroupEmphasis;
|
|
18
|
+
invalid?: boolean;
|
|
19
|
+
required?: boolean;
|
|
20
|
+
};
|
|
21
|
+
declare function RadioGroupRoot({
|
|
22
|
+
className,
|
|
23
|
+
direction,
|
|
24
|
+
emphasis,
|
|
25
|
+
invalid,
|
|
26
|
+
required,
|
|
27
|
+
...props
|
|
28
|
+
}: RadioGroupRootProps): _$react_jsx_runtime0.JSX.Element;
|
|
21
29
|
declare namespace RadioGroupRoot {
|
|
22
|
-
|
|
30
|
+
var displayName: string;
|
|
23
31
|
}
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
}
|
|
28
|
-
declare function RadioGroupItem({
|
|
32
|
+
type RadioGroupItemProps = Radio.Root.Props & RefAttributes<HTMLButtonElement> & {
|
|
33
|
+
label?: string;
|
|
34
|
+
description?: string;
|
|
35
|
+
};
|
|
36
|
+
declare function RadioGroupItem({
|
|
37
|
+
className,
|
|
38
|
+
label,
|
|
39
|
+
description,
|
|
40
|
+
children,
|
|
41
|
+
...props
|
|
42
|
+
}: RadioGroupItemProps): _$react_jsx_runtime0.JSX.Element;
|
|
29
43
|
declare namespace RadioGroupItem {
|
|
30
|
-
|
|
44
|
+
var displayName: string;
|
|
31
45
|
}
|
|
32
46
|
interface RadioGroupLabelProps extends ComponentProps<'label'> {
|
|
33
|
-
|
|
47
|
+
showIndicator?: boolean;
|
|
34
48
|
}
|
|
35
|
-
declare function RadioGroupLabel({
|
|
49
|
+
declare function RadioGroupLabel({
|
|
50
|
+
className,
|
|
51
|
+
showIndicator,
|
|
52
|
+
children,
|
|
53
|
+
...props
|
|
54
|
+
}: RadioGroupLabelProps): _$react_jsx_runtime0.JSX.Element;
|
|
36
55
|
declare namespace RadioGroupLabel {
|
|
37
|
-
|
|
56
|
+
var displayName: string;
|
|
38
57
|
}
|
|
39
|
-
interface RadioGroupHelperTextProps extends ComponentProps<'p'> {
|
|
40
|
-
|
|
41
|
-
|
|
58
|
+
interface RadioGroupHelperTextProps extends ComponentProps<'p'> {}
|
|
59
|
+
declare function RadioGroupHelperText({
|
|
60
|
+
className,
|
|
61
|
+
...props
|
|
62
|
+
}: RadioGroupHelperTextProps): _$react_jsx_runtime0.JSX.Element;
|
|
42
63
|
declare namespace RadioGroupHelperText {
|
|
43
|
-
|
|
44
|
-
}
|
|
45
|
-
interface RadioGroupErrorTextProps extends ComponentProps<'p'> {
|
|
64
|
+
var displayName: string;
|
|
46
65
|
}
|
|
47
|
-
|
|
66
|
+
interface RadioGroupErrorTextProps extends ComponentProps<'p'> {}
|
|
67
|
+
declare function RadioGroupErrorText({
|
|
68
|
+
className,
|
|
69
|
+
...props
|
|
70
|
+
}: RadioGroupErrorTextProps): _$react_jsx_runtime0.JSX.Element | null;
|
|
48
71
|
declare namespace RadioGroupErrorText {
|
|
49
|
-
|
|
72
|
+
var displayName: string;
|
|
50
73
|
}
|
|
51
74
|
declare const RadioGroup: typeof RadioGroupRoot & {
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
75
|
+
Item: typeof RadioGroupItem;
|
|
76
|
+
Label: typeof RadioGroupLabel;
|
|
77
|
+
HelperText: typeof RadioGroupHelperText;
|
|
78
|
+
ErrorText: typeof RadioGroupErrorText;
|
|
56
79
|
};
|
|
57
80
|
type RadioGroupProps = RadioGroupRootProps;
|
|
58
|
-
|
|
59
|
-
export { RadioGroup,
|
|
81
|
+
//#endregion
|
|
82
|
+
export { RadioGroup, RadioGroupErrorTextProps, RadioGroupHelperTextProps, RadioGroupItemProps, RadioGroupLabelProps, RadioGroupProps, RadioGroupRootProps, radioGroupItemVariants, radioGroupVariants };
|
|
83
|
+
//# sourceMappingURL=RadioGroup.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RadioGroup.d.ts","names":[],"sources":["../src/components/RadioGroup/index.tsx"],"mappings":";;;;;;;;KAqBK,kBAAA;AAAA,cAoBQ,kBAAA,GAAkB,KAAA;;IAU7B,iCAAA,CAAA,SAAA;AAAA,cAIW,sBAAA,GAAsB,KAAA;;IAclC,iCAAA,CAAA,SAAA;AAAA,KAIW,mBAAA,GAAsB,YAAA,CAAoB,KAAA,GACpD,aAAA,CAAc,cAAA,IACd,YAAA,QAAoB,kBAAA;EAClB,QAAA,GAAW,kBAAA;EACX,OAAA;EACA,QAAA;AAAA;AAAA,iBAGK,cAAA,CAAA;EACP,SAAA;EACA,SAAA;EACA,QAAA;EACA,OAAA;EACA,QAAA;EAAA,GACG;AAAA,GACF,mBAAA,GAAmB,oBAAA,CAAA,GAAA,CAAA,OAAA;AAAA,kBAPb,cAAA;EAAA,IAAc,WAAA;AAAA;AAAA,KAwCX,mBAAA,GAAsB,KAAA,CAAM,IAAA,CAAK,KAAA,GAC3C,aAAA,CAAc,iBAAA;EACZ,KAAA;EACA,WAAA;AAAA;AAAA,iBAGK,cAAA,CAAA;EACP,SAAA;EACA,KAAA;EACA,WAAA;EACA,QAAA;EAAA,GACG;AAAA,GACF,mBAAA,GAAmB,oBAAA,CAAA,GAAA,CAAA,OAAA;AAAA,kBANb,cAAA;EAAA,IAAc,WAAA;AAAA;AAAA,UA6DN,oBAAA,SAA6B,cAAA;EAC5C,aAAA;AAAA;AAAA,iBAGO,eAAA,CAAA;EACP,SAAA;EACA,aAAA;EACA,QAAA;EAAA,GACG;AAAA,GACF,oBAAA,GAAoB,oBAAA,CAAA,GAAA,CAAA,OAAA;AAAA,kBALd,eAAA;EAAA,IAAe,WAAA;AAAA;AAAA,UAoCP,yBAAA,SAAkC,cAAA;AAAA,iBAE1C,oBAAA,CAAA;EACP,SAAA;EAAA,GACG;AAAA,GACF,yBAAA,GAAyB,oBAAA,CAAA,GAAA,CAAA,OAAA;AAAA,kBAHnB,oBAAA;EAAA,IAAoB,WAAA;AAAA;AAAA,UAaZ,wBAAA,SAAiC,cAAA;AAAA,iBAEzC,mBAAA,CAAA;EACP,SAAA;EAAA,GACG;AAAA,GACF,wBAAA,GAAwB,oBAAA,CAAA,GAAA,CAAA,OAAA;AAAA,kBAHlB,mBAAA;EAAA,IAAmB,WAAA;AAAA;AAAA,cAmBf,UAAA,SAAU,cAAA;;;;;;KAOX,eAAA,GAAkB,mBAAA"}
|
package/dist/RadioGroup.js
CHANGED
|
@@ -1,3 +1,2 @@
|
|
|
1
|
-
"use client";
|
|
2
|
-
export{c as RadioGroup,b as radioGroupItemVariants,a as radioGroupVariants}from'./_chunks/chunk-3NU36NBL.js';import'./_chunks/chunk-N2HGY7W7.js';import'./_chunks/chunk-OIAETOZT.js';import'./_chunks/chunk-LMV3JECI.js';import'./_chunks/chunk-VSKUGXQG.js';import'./_chunks/chunk-IEDKSZAQ.js';import'./_chunks/chunk-4LGCF3SN.js';//# sourceMappingURL=RadioGroup.js.map
|
|
1
|
+
"use client";import{OptionalIndicator as e,RequiredIndicator as t}from"./Indicator.js";import{useFieldContext as n}from"./Field.js";import{cva as r}from"class-variance-authority";import{cn as i}from"@oztix/roadie-core/utils";import{Fragment as a,jsx as o,jsxs as s}from"react/jsx-runtime";import{createContext as c,use as l}from"react";import{Radio as u}from"@base-ui/react/radio";import{RadioGroup as d}from"@base-ui/react/radio-group";const f=c({emphasis:`subtler`,direction:`vertical`}),p=r(`flex flex-wrap`,{variants:{direction:{vertical:`flex-col gap-2`,horizontal:`flex-row gap-4`}},defaultVariants:{direction:`vertical`}}),m=r(`flex cursor-pointer select-none items-center`,{variants:{emphasis:{subtler:`gap-2 rounded-lg px-1.5 py-1 emphasis-subtler is-interactive`,normal:`justify-between gap-3 rounded-xl p-4 emphasis-normal is-interactive has-[:checked]:bg-[var(--color-accent-2)] has-[:checked]:border-[var(--color-accent-9)] has-[:focus-visible]:outline has-[:focus-visible]:outline-[length:var(--focus-ring-width)] has-[:focus-visible]:outline-[color-mix(in_oklch,var(--color-accent-9)_var(--focus-ring-opacity),transparent)] has-[:focus-visible]:outline-offset-0`}},defaultVariants:{emphasis:`subtler`}});function h({className:e,direction:t=`vertical`,emphasis:r=`subtler`,invalid:a,required:s,...c}){let l=n(),u=a??l.invalid,m=s??l.required,h=!!l.fieldId;return o(f,{value:{emphasis:r,direction:t??`vertical`,invalid:u,required:m},children:o(d,{className:i(p({direction:t,className:e})),...h&&{"aria-labelledby":l.labelId||void 0,"aria-describedby":u?l.errorTextId||void 0:l.helperTextId||void 0},...c})})}h.displayName=`RadioGroup`;function g({className:e,label:t,description:n,children:r,...c}){let{emphasis:d,direction:p}=l(f),h=o(u.Root,{className:i(`duration-moderate flex size-6 shrink-0 items-center justify-center rounded-full border border-subtle emphasis-sunken outline-0 outline-offset-0 outline-[color-mix(in_oklch,var(--color-accent-9)_var(--focus-ring-opacity),transparent)] transition-[background-color,border-color,outline-width,outline-color] data-[checked]:border-[var(--color-accent-9)] data-[checked]:bg-[var(--color-accent-3)]`,d!==`normal`&&`focus-visible:outline-[length:var(--focus-ring-width)]`),...c,children:o(u.Indicator,{className:`size-2.5 rounded-full bg-[var(--color-accent-9)]`})});return o(`label`,{className:i(m({emphasis:d,className:e}),p===`horizontal`&&d===`normal`&&`flex-1`),children:d===`normal`?s(a,{children:[s(`div`,{className:`grid gap-0.5`,children:[s(`span`,{className:`flex items-center gap-2`,children:[r,t&&o(`span`,{className:`text-base font-medium text-normal`,children:t})]}),n&&o(`span`,{className:`text-sm text-subtle`,children:n})]}),h]}):s(a,{children:[h,r,t&&o(`span`,{className:`text-sm text-normal`,children:t})]})})}g.displayName=`RadioGroup.Item`;function _({className:n,showIndicator:r,children:c,...u}){let{required:d}=l(f);return s(`label`,{className:i(`flex w-full items-center gap-1 text-sm font-medium text-normal`,n),...u,children:[c,r&&(d?s(a,{children:[` `,o(t,{})]}):s(a,{children:[` `,o(e,{})]}))]})}_.displayName=`RadioGroup.Label`;function v({className:e,...t}){return o(`p`,{className:i(`w-full text-sm text-subtle`,e),...t})}v.displayName=`RadioGroup.HelperText`;function y({className:e,...t}){let{invalid:n}=l(f);return n?o(`p`,{role:`alert`,className:i(`w-full text-sm text-subtle intent-danger`,e),...t}):null}y.displayName=`RadioGroup.ErrorText`;const b=Object.assign(h,{Item:g,Label:_,HelperText:v,ErrorText:y});export{b as RadioGroup,m as radioGroupItemVariants,p as radioGroupVariants};
|
|
3
2
|
//# sourceMappingURL=RadioGroup.js.map
|
package/dist/RadioGroup.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"RadioGroup.js","names":["RadioGroupPrimitive"],"sources":["../src/components/RadioGroup/index.tsx"],"sourcesContent":["'use client'\n\nimport {\n type ComponentProps,\n type RefAttributes,\n createContext,\n use\n} from 'react'\n\nimport { Radio } from '@base-ui/react/radio'\nimport { RadioGroup as RadioGroupPrimitive } from '@base-ui/react/radio-group'\nimport { type VariantProps, cva } from 'class-variance-authority'\n\nimport { cn } from '@oztix/roadie-core/utils'\n\nimport { useFieldContext } from '../Field'\nimport { OptionalIndicator } from '../Indicator'\nimport { RequiredIndicator } from '../Indicator'\n\n/* ─── Types ─── */\n\ntype RadioGroupEmphasis = 'subtler' | 'normal'\n\n/* ─── Context ─── */\n\ntype RadioGroupDirection = 'vertical' | 'horizontal'\n\ninterface RadioGroupContextValue {\n emphasis: RadioGroupEmphasis\n direction: RadioGroupDirection\n invalid?: boolean\n required?: boolean\n}\n\nconst RadioGroupContext = createContext<RadioGroupContextValue>({\n emphasis: 'subtler',\n direction: 'vertical'\n})\n\n/* ─── Root variants ─── */\n\nexport const radioGroupVariants = cva('flex flex-wrap', {\n variants: {\n direction: {\n vertical: 'flex-col gap-2',\n horizontal: 'flex-row gap-4'\n }\n },\n defaultVariants: {\n direction: 'vertical'\n }\n})\n\n/* ─── Item variants ─── */\n\nexport const radioGroupItemVariants = cva(\n 'flex cursor-pointer select-none items-center',\n {\n variants: {\n emphasis: {\n subtler: 'gap-2 rounded-lg px-1.5 py-1 emphasis-subtler is-interactive',\n normal:\n 'justify-between gap-3 rounded-xl p-4 emphasis-normal is-interactive has-[:checked]:bg-[var(--color-accent-2)] has-[:checked]:border-[var(--color-accent-9)] has-[:focus-visible]:outline has-[:focus-visible]:outline-[length:var(--focus-ring-width)] has-[:focus-visible]:outline-[color-mix(in_oklch,var(--color-accent-9)_var(--focus-ring-opacity),transparent)] has-[:focus-visible]:outline-offset-0'\n }\n },\n defaultVariants: {\n emphasis: 'subtler'\n }\n }\n)\n\n/* ─── Root ─── */\n\nexport type RadioGroupRootProps = RadioGroupPrimitive.Props &\n RefAttributes<HTMLDivElement> &\n VariantProps<typeof radioGroupVariants> & {\n emphasis?: RadioGroupEmphasis\n invalid?: boolean\n required?: boolean\n }\n\nfunction RadioGroupRoot({\n className,\n direction = 'vertical',\n emphasis = 'subtler',\n invalid,\n required,\n ...props\n}: RadioGroupRootProps) {\n const fieldContext = useFieldContext()\n const resolvedInvalid = invalid ?? fieldContext.invalid\n const resolvedRequired = required ?? fieldContext.required\n const inField = !!fieldContext.fieldId\n\n return (\n <RadioGroupContext\n value={{\n emphasis,\n direction: direction ?? 'vertical',\n invalid: resolvedInvalid,\n required: resolvedRequired\n }}\n >\n <RadioGroupPrimitive\n className={cn(radioGroupVariants({ direction, className }))}\n {...(inField && {\n 'aria-labelledby': fieldContext.labelId || undefined,\n 'aria-describedby': resolvedInvalid\n ? fieldContext.errorTextId || undefined\n : fieldContext.helperTextId || undefined\n })}\n {...props}\n />\n </RadioGroupContext>\n )\n}\n\nRadioGroupRoot.displayName = 'RadioGroup'\n\n/* ─── Item ─── */\n\nexport type RadioGroupItemProps = Radio.Root.Props &\n RefAttributes<HTMLButtonElement> & {\n label?: string\n description?: string\n }\n\nfunction RadioGroupItem({\n className,\n label,\n description,\n children,\n ...props\n}: RadioGroupItemProps) {\n const { emphasis, direction } = use(RadioGroupContext)\n\n const radio = (\n <Radio.Root\n className={cn(\n 'duration-moderate flex size-6 shrink-0 items-center justify-center rounded-full border border-subtle emphasis-sunken outline-0 outline-offset-0 outline-[color-mix(in_oklch,var(--color-accent-9)_var(--focus-ring-opacity),transparent)] transition-[background-color,border-color,outline-width,outline-color] data-[checked]:border-[var(--color-accent-9)] data-[checked]:bg-[var(--color-accent-3)]',\n emphasis !== 'normal' &&\n 'focus-visible:outline-[length:var(--focus-ring-width)]'\n )}\n {...props}\n >\n <Radio.Indicator className='size-2.5 rounded-full bg-[var(--color-accent-9)]' />\n </Radio.Root>\n )\n\n return (\n <label\n className={cn(\n radioGroupItemVariants({ emphasis, className }),\n direction === 'horizontal' && emphasis === 'normal' && 'flex-1'\n )}\n >\n {emphasis === 'normal' ? (\n <>\n <div className='grid gap-0.5'>\n <span className='flex items-center gap-2'>\n {children}\n {label && (\n <span className='text-base font-medium text-normal'>\n {label}\n </span>\n )}\n </span>\n {description && (\n <span className='text-sm text-subtle'>{description}</span>\n )}\n </div>\n {radio}\n </>\n ) : (\n <>\n {radio}\n {children}\n {label && <span className='text-sm text-normal'>{label}</span>}\n </>\n )}\n </label>\n )\n}\n\nRadioGroupItem.displayName = 'RadioGroup.Item'\n\n/* ─── Label ─── */\n\nexport interface RadioGroupLabelProps extends ComponentProps<'label'> {\n showIndicator?: boolean\n}\n\nfunction RadioGroupLabel({\n className,\n showIndicator,\n children,\n ...props\n}: RadioGroupLabelProps) {\n const { required } = use(RadioGroupContext)\n return (\n <label\n className={cn(\n 'flex w-full items-center gap-1 text-sm font-medium text-normal',\n className\n )}\n {...props}\n >\n {children}\n {showIndicator &&\n (required ? (\n <>\n {' '}\n <RequiredIndicator />\n </>\n ) : (\n <>\n {' '}\n <OptionalIndicator />\n </>\n ))}\n </label>\n )\n}\n\nRadioGroupLabel.displayName = 'RadioGroup.Label'\n\n/* ─── Helper text ─── */\n\nexport interface RadioGroupHelperTextProps extends ComponentProps<'p'> {}\n\nfunction RadioGroupHelperText({\n className,\n ...props\n}: RadioGroupHelperTextProps) {\n return (\n <p className={cn('w-full text-sm text-subtle', className)} {...props} />\n )\n}\n\nRadioGroupHelperText.displayName = 'RadioGroup.HelperText'\n\n/* ─── Error text ─── */\n\nexport interface RadioGroupErrorTextProps extends ComponentProps<'p'> {}\n\nfunction RadioGroupErrorText({\n className,\n ...props\n}: RadioGroupErrorTextProps) {\n const { invalid } = use(RadioGroupContext)\n if (!invalid) return null\n return (\n <p\n role='alert'\n className={cn('w-full text-sm text-subtle intent-danger', className)}\n {...props}\n />\n )\n}\n\nRadioGroupErrorText.displayName = 'RadioGroup.ErrorText'\n\n/* ─── Compound export ─── */\n\nexport const RadioGroup = Object.assign(RadioGroupRoot, {\n Item: RadioGroupItem,\n Label: RadioGroupLabel,\n HelperText: RadioGroupHelperText,\n ErrorText: RadioGroupErrorText\n})\n\nexport type RadioGroupProps = RadioGroupRootProps\n"],"mappings":"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"}
|