@tappify/extension-sdk 2.1.0-beta.1 → 2.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +18 -54
- package/dist/{chunk-6HETNZJY.cjs → chunk-2DBSVKAU.cjs} +1 -1
- package/dist/{chunk-6HETNZJY.cjs.map → chunk-2DBSVKAU.cjs.map} +1 -1
- package/dist/{chunk-O357OJXL.cjs → chunk-3YWVYA42.cjs} +18 -14
- package/dist/chunk-3YWVYA42.cjs.map +1 -0
- package/dist/{chunk-GAUZYBXE.cjs → chunk-5AAPD5WV.cjs} +11 -11
- package/dist/chunk-5AAPD5WV.cjs.map +1 -0
- package/dist/{chunk-SGEYDV3K.mjs → chunk-BDCX6LRQ.mjs} +3 -3
- package/dist/chunk-BDCX6LRQ.mjs.map +1 -0
- package/dist/{chunk-KZ5NGFUP.mjs → chunk-C3YNVHBP.mjs} +7 -20
- package/dist/chunk-C3YNVHBP.mjs.map +1 -0
- package/dist/{chunk-QXD7WVKK.mjs → chunk-CSTYBKZC.mjs} +1 -1
- package/dist/chunk-CSTYBKZC.mjs.map +1 -0
- package/dist/{chunk-SWG7CNTZ.mjs → chunk-CTSZ5D7S.mjs} +5 -9
- package/dist/chunk-CTSZ5D7S.mjs.map +1 -0
- package/dist/chunk-EW54H7CR.cjs +722 -0
- package/dist/chunk-EW54H7CR.cjs.map +1 -0
- package/dist/chunk-EX3NFXDK.mjs +722 -0
- package/dist/chunk-EX3NFXDK.mjs.map +1 -0
- package/dist/{chunk-A74HCO6T.cjs → chunk-G7XZSN2Q.cjs} +18 -31
- package/dist/chunk-G7XZSN2Q.cjs.map +1 -0
- package/dist/{chunk-RBIQT75L.mjs → chunk-GG3IX52W.mjs} +2 -2
- package/dist/{chunk-SLGOHIBL.mjs → chunk-IGK2AP6J.mjs} +17 -13
- package/dist/chunk-IGK2AP6J.mjs.map +1 -0
- package/dist/{chunk-VV7ELNRW.cjs → chunk-JMUK3K47.cjs} +3 -3
- package/dist/{chunk-VV7ELNRW.cjs.map → chunk-JMUK3K47.cjs.map} +1 -1
- package/dist/{chunk-SGCYEEXD.mjs → chunk-MNDVYPEP.mjs} +2 -9
- package/dist/chunk-MNDVYPEP.mjs.map +1 -0
- package/dist/{chunk-BPCGXXMD.cjs → chunk-NFUPPCX4.cjs} +18 -22
- package/dist/chunk-NFUPPCX4.cjs.map +1 -0
- package/dist/{chunk-PRCZMOLD.cjs → chunk-OPPYEA7F.cjs} +3 -3
- package/dist/{chunk-PRCZMOLD.cjs.map → chunk-OPPYEA7F.cjs.map} +1 -1
- package/dist/{chunk-7YKH4LZN.cjs → chunk-PYJMJF44.cjs} +2 -9
- package/dist/chunk-PYJMJF44.cjs.map +1 -0
- package/dist/{chunk-QA5AL3VZ.mjs → chunk-QHM7XNRK.mjs} +2 -2
- package/dist/{chunk-QA5AL3VZ.mjs.map → chunk-QHM7XNRK.mjs.map} +1 -1
- package/dist/codegen.cjs.map +1 -1
- package/dist/codegen.d.cts +7 -40
- package/dist/codegen.d.ts +7 -40
- package/dist/codegen.mjs.map +1 -1
- package/dist/{constants-BAimnqOK.d.cts → constants-DJ_KgZpN.d.cts} +8 -41
- package/dist/{constants-BAimnqOK.d.ts → constants-DJ_KgZpN.d.ts} +8 -41
- package/dist/{context-Cr93B05o.d.ts → context-Dt6xh_5t.d.cts} +4 -5
- package/dist/{context-DJ3REtdT.d.cts → context-Ml7k_V14.d.ts} +4 -5
- package/dist/{errors-Cqh0wrqt.d.ts → errors-COsBh7kd.d.cts} +2 -3
- package/dist/{errors-Cqh0wrqt.d.cts → errors-COsBh7kd.d.ts} +2 -3
- package/dist/handler-CZIlZ5vu.d.ts +227 -0
- package/dist/handler-kU9Jf36K.d.cts +227 -0
- package/dist/host.cjs +4 -4
- package/dist/host.d.cts +4 -4
- package/dist/host.d.ts +4 -4
- package/dist/host.mjs +3 -3
- package/dist/index.cjs +34 -5
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +627 -69
- package/dist/index.d.ts +627 -69
- package/dist/index.mjs +33 -4
- package/dist/manifest.cjs +23 -132
- package/dist/manifest.cjs.map +1 -1
- package/dist/manifest.d.cts +12 -93
- package/dist/manifest.d.ts +12 -93
- package/dist/manifest.mjs +9 -118
- package/dist/manifest.mjs.map +1 -1
- package/dist/server.cjs +66 -14
- package/dist/server.cjs.map +1 -1
- package/dist/server.d.cts +6 -6
- package/dist/server.d.ts +6 -6
- package/dist/server.mjs +61 -9
- package/dist/server.mjs.map +1 -1
- package/dist/styles.css +367 -0
- package/dist/testing/index.cjs +13 -72
- package/dist/testing/index.cjs.map +1 -1
- package/dist/testing/index.d.cts +10 -29
- package/dist/testing/index.d.ts +10 -29
- package/dist/testing/index.mjs +13 -72
- package/dist/testing/index.mjs.map +1 -1
- package/dist/testing/jest.cjs +5 -5
- package/dist/testing/jest.mjs +2 -2
- package/dist/testing/vitest.cjs +5 -5
- package/dist/testing/vitest.cjs.map +1 -1
- package/dist/testing/vitest.d.cts +0 -10
- package/dist/testing/vitest.d.ts +0 -10
- package/dist/testing/vitest.mjs +2 -2
- package/dist/testing/vitest.mjs.map +1 -1
- package/dist/{types-BYGcp5pZ.d.ts → types-DDAGLpov.d.ts} +3 -4
- package/dist/{types-I1JOZyI_.d.cts → types-DrpQSv_2.d.cts} +3 -4
- package/dist/vite-preview.cjs +125 -294
- package/dist/vite-preview.cjs.map +1 -1
- package/dist/vite-preview.d.cts +24 -6
- package/dist/vite-preview.d.ts +24 -6
- package/dist/vite-preview.mjs +118 -287
- package/dist/vite-preview.mjs.map +1 -1
- package/dist/vite.cjs +23 -133
- package/dist/vite.cjs.map +1 -1
- package/dist/vite.d.cts +7 -40
- package/dist/vite.d.ts +7 -40
- package/dist/vite.mjs +17 -127
- package/dist/vite.mjs.map +1 -1
- package/package.json +2 -12
- package/schema/extension-v2.json +121 -432
- package/dist/chunk-2CY5HVY7.mjs +0 -59
- package/dist/chunk-2CY5HVY7.mjs.map +0 -1
- package/dist/chunk-7YKH4LZN.cjs.map +0 -1
- package/dist/chunk-A74HCO6T.cjs.map +0 -1
- package/dist/chunk-BPCGXXMD.cjs.map +0 -1
- package/dist/chunk-EB5XWQAU.cjs +0 -132
- package/dist/chunk-EB5XWQAU.cjs.map +0 -1
- package/dist/chunk-GAUZYBXE.cjs.map +0 -1
- package/dist/chunk-KZ5NGFUP.mjs.map +0 -1
- package/dist/chunk-O357OJXL.cjs.map +0 -1
- package/dist/chunk-ONJMPO3P.cjs +0 -59
- package/dist/chunk-ONJMPO3P.cjs.map +0 -1
- package/dist/chunk-QJMZRV7A.mjs +0 -132
- package/dist/chunk-QJMZRV7A.mjs.map +0 -1
- package/dist/chunk-QXD7WVKK.mjs.map +0 -1
- package/dist/chunk-SGCYEEXD.mjs.map +0 -1
- package/dist/chunk-SGEYDV3K.mjs.map +0 -1
- package/dist/chunk-SLGOHIBL.mjs.map +0 -1
- package/dist/chunk-SWG7CNTZ.mjs.map +0 -1
- package/dist/client-CV1qzQgx.d.cts +0 -25
- package/dist/client-CnlSHDWE.d.ts +0 -25
- package/dist/ui/styles.css +0 -740
- package/dist/ui.cjs +0 -1018
- package/dist/ui.cjs.map +0 -1
- package/dist/ui.d.cts +0 -231
- package/dist/ui.d.ts +0 -231
- package/dist/ui.mjs +0 -1018
- package/dist/ui.mjs.map +0 -1
- package/dist/vite-preview-bootstrap.cjs +0 -66
- package/dist/vite-preview-bootstrap.cjs.map +0 -1
- package/dist/vite-preview-bootstrap.d.cts +0 -15
- package/dist/vite-preview-bootstrap.d.ts +0 -15
- package/dist/vite-preview-bootstrap.mjs +0 -66
- package/dist/vite-preview-bootstrap.mjs.map +0 -1
- package/dist/work-events-DB3WR468.d.ts +0 -547
- package/dist/work-events-Dxe7Djdy.d.cts +0 -547
- /package/dist/{chunk-RBIQT75L.mjs.map → chunk-GG3IX52W.mjs.map} +0 -0
package/dist/ui.cjs.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["/home/runner/work/extension-sdk/extension-sdk/dist/ui.cjs","../src/client/ui/cn.ts","../src/client/ui/button.tsx","../src/client/ui/card.tsx","../src/client/ui/dialog.tsx","../src/client/ui/layout.tsx","../src/client/ui/feedback.tsx","../src/client/ui/field.tsx","../src/client/ui/page-header.tsx","../src/client/ui/schema-form.tsx","../src/client/ui/table.tsx"],"names":["jsx","jsxs","createContext","useId"],"mappings":"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","file":"/home/runner/work/extension-sdk/extension-sdk/dist/ui.cjs","sourcesContent":[null,"import clsx, { type ClassValue as ClsxClassValue } from 'clsx';\n\n/**\n * Anything `cn` accepts: a class string, a number, an array of these, a map of\n * class name to condition, or a value to drop.\n */\nexport type ClassValue = ClsxClassValue;\n\n/**\n * Joins class names, dropping the ones that are `false`, `null` or `undefined`.\n *\n * @remarks\n * This is `clsx`, re-exported so a vendor surface needs no class-name dependency\n * of its own. It does not merge conflicting utility classes.\n *\n * @example\n * ```tsx\n * import { cn } from '@tappify/extension-sdk/ui';\n *\n * function Row({ compact }: { compact: boolean }) {\n * return <div className={cn('starter-row', compact && 'starter-row--compact')} />;\n * }\n * ```\n */\nexport function cn(...values: ClassValue[]): string {\n return clsx(values);\n}\n","import type { ButtonHTMLAttributes } from 'react';\nimport { cn } from './cn';\n\n/** Visual emphasis available for a {@link Button}. */\nexport type ButtonVariant =\n | 'primary'\n | 'secondary'\n | 'tertiary'\n | 'inverse'\n | 'destructive';\n\n/** Density and icon-only sizes available for a {@link Button}. */\nexport type ButtonSize =\n | 'default'\n | 'compact'\n | 'xs'\n | 'sm'\n | 'lg'\n | 'icon'\n | 'icon-xs'\n | 'icon-sm'\n | 'icon-lg';\n\n/** Props for the One UI button primitive. */\nexport interface ButtonProps extends ButtonHTMLAttributes<HTMLButtonElement> {\n 'data-slot'?: string;\n loading?: boolean;\n size?: ButtonSize;\n variant?: ButtonVariant;\n}\n\n/** Renders an accessible One UI button with loading, size, and tone states. */\nexport function Button({\n 'aria-busy': ariaBusy,\n 'data-slot': slot = 'button',\n children,\n className,\n disabled,\n loading = false,\n size = 'default',\n type = 'button',\n variant = 'primary',\n ...props\n}: ButtonProps) {\n return (\n <button\n {...props}\n aria-busy={ariaBusy ?? (loading || undefined)}\n className={cn('tap-button', className)}\n data-loading={loading || undefined}\n data-size={size}\n data-slot={slot}\n data-variant={variant}\n disabled={loading ? true : disabled}\n type={type}\n >\n {loading ? (\n <span aria-hidden=\"true\" className=\"tap-button__spinner\" />\n ) : null}\n {children}\n </button>\n );\n}\n","import type { ComponentPropsWithoutRef } from 'react';\nimport { cn } from './cn';\n\n/** Props for a One UI card surface. */\nexport interface CardProps extends ComponentPropsWithoutRef<'div'> {\n size?: 'default' | 'sm';\n}\n\n/** Provides the root surface for compound card parts. */\nexport function Card({ className, size = 'default', ...props }: CardProps) {\n return (\n <div\n {...props}\n className={cn('tap-ui-card', className)}\n data-size={size}\n data-slot=\"card\"\n />\n );\n}\n\n/** Lays out a card title, description, and optional action. */\nexport function CardHeader({\n className,\n ...props\n}: ComponentPropsWithoutRef<'div'>) {\n return (\n <div\n {...props}\n className={cn('tap-card__header', className)}\n data-slot=\"card-header\"\n />\n );\n}\n\n/** Renders a card's primary heading. */\nexport function CardTitle({\n className,\n ...props\n}: ComponentPropsWithoutRef<'div'>) {\n return (\n <div\n {...props}\n className={cn('tap-card__title', className)}\n data-slot=\"card-title\"\n />\n );\n}\n\n/** Renders supporting copy below a card title. */\nexport function CardDescription({\n className,\n ...props\n}: ComponentPropsWithoutRef<'div'>) {\n return (\n <div\n {...props}\n className={cn('tap-card__description', className)}\n data-slot=\"card-description\"\n />\n );\n}\n\n/** Positions a control in the card header. */\nexport function CardAction({\n className,\n ...props\n}: ComponentPropsWithoutRef<'div'>) {\n return (\n <div\n {...props}\n className={cn('tap-card__action', className)}\n data-slot=\"card-action\"\n />\n );\n}\n\n/** Wraps the main contents of a card. */\nexport function CardContent({\n className,\n ...props\n}: ComponentPropsWithoutRef<'div'>) {\n return (\n <div\n {...props}\n className={cn('tap-card__content', className)}\n data-slot=\"card-content\"\n />\n );\n}\n\n/** Wraps actions or metadata at the bottom of a card. */\nexport function CardFooter({\n className,\n ...props\n}: ComponentPropsWithoutRef<'div'>) {\n return (\n <div\n {...props}\n className={cn('tap-card__footer', className)}\n data-slot=\"card-footer\"\n />\n );\n}\n","import {\n createContext,\n useCallback,\n useContext,\n useEffect,\n useId,\n useRef,\n type ButtonHTMLAttributes,\n type ComponentPropsWithoutRef,\n type KeyboardEvent,\n type ReactElement,\n type ReactNode,\n type RefObject,\n} from 'react';\nimport { createPortal } from 'react-dom';\nimport { useTap } from '../context';\nimport { TapError } from '../errors';\nimport { Button } from './button';\nimport { cn } from './cn';\n\nconst FOCUSABLE =\n 'a[href], button:not([disabled]), textarea:not([disabled]), input:not([disabled]), select:not([disabled]), [tabindex]:not([tabindex=\"-1\"])';\n\nfunction activeElementNear(node: Node | null): Element | null {\n const root = node?.getRootNode();\n return root instanceof ShadowRoot\n ? root.activeElement\n : document.activeElement;\n}\n\ninterface DialogContextValue {\n close: () => void;\n contentRef: RefObject<HTMLDivElement | null>;\n descriptionId: string;\n titleId: string;\n}\n\nconst DialogContext = createContext<DialogContextValue | null>(null);\n\nfunction useDialogPart(): DialogContextValue {\n const value = useContext(DialogContext);\n if (!value)\n throw new Error('Dialog compound parts must be rendered inside Dialog.');\n return value;\n}\n\n/** Props for the controlled dialog root. */\nexport interface DialogProps {\n children: ReactNode;\n /** Called when the dialog requests an open-state change. */\n onOpenChange: (open: boolean) => void;\n open: boolean;\n}\n\n/** Coordinates a controlled, host-portaled modal dialog. */\nexport function Dialog({\n children,\n onOpenChange,\n open,\n}: DialogProps): ReactElement | null {\n const tap = useTap();\n const contentRef = useRef<HTMLDivElement | null>(null);\n const titleId = useId();\n const descriptionId = useId();\n const close = useCallback(() => onOpenChange(false), [onOpenChange]);\n const focusables = useCallback(\n () =>\n Array.from(\n contentRef.current?.querySelectorAll<HTMLElement>(FOCUSABLE) ?? [],\n ),\n [],\n );\n\n useEffect(() => {\n if (!open) return;\n const previous = activeElementNear(contentRef.current);\n focusables()[0]?.focus();\n return () => {\n if (previous instanceof HTMLElement) previous.focus();\n };\n }, [focusables, open]);\n\n useEffect(() => {\n if (!open || !tap.__portal) return;\n tap.__portal.addEventListener('tap:dialog-close', close);\n return () => tap.__portal?.removeEventListener('tap:dialog-close', close);\n }, [close, open, tap]);\n\n if (!open) return null;\n if (!tap.__portal) {\n throw new TapError(\n 'TAP_NO_PORTAL',\n 'Dialog needs the host portal node inside the extension shadow root.',\n );\n }\n\n const onKeyDown = (event: KeyboardEvent<HTMLDivElement>) => {\n if (event.key === 'Escape') {\n event.preventDefault();\n event.stopPropagation();\n close();\n return;\n }\n if (event.key !== 'Tab') return;\n const items = focusables();\n if (items.length === 0) return;\n const first = items[0];\n const last = items.at(-1)!;\n const active = activeElementNear(contentRef.current);\n if (event.shiftKey && active === first) {\n event.preventDefault();\n last.focus();\n } else if (!event.shiftKey && active === last) {\n event.preventDefault();\n first.focus();\n }\n };\n\n return createPortal(\n <DialogContext.Provider\n value={{ close, contentRef, descriptionId, titleId }}\n >\n <div\n className=\"tap-root tap-ui-dialog-overlay\"\n data-slot=\"dialog-overlay\"\n onKeyDown={onKeyDown}\n onMouseDown={event => {\n if (event.target === event.currentTarget) close();\n }}\n >\n {children}\n </div>\n </DialogContext.Provider>,\n tap.__portal,\n );\n}\n\n/** Supported dialog widths and purpose-built layouts. */\nexport type DialogSize =\n | 'compact'\n | 'default'\n | 'medium'\n | 'confirmation'\n | 'large'\n | 'wide';\n\n/** Props for the modal surface rendered inside {@link Dialog}. */\nexport interface DialogContentProps extends ComponentPropsWithoutRef<'div'> {\n size?: DialogSize;\n surface?: 'paper' | 'canvas';\n}\n\n/** Renders the accessible dialog surface and focus-trap boundary. */\nexport function DialogContent({\n className,\n size = 'default',\n surface = 'paper',\n ...props\n}: DialogContentProps) {\n const dialog = useDialogPart();\n return (\n <div\n {...props}\n aria-describedby={props['aria-describedby'] ?? dialog.descriptionId}\n aria-labelledby={props['aria-labelledby'] ?? dialog.titleId}\n aria-modal=\"true\"\n className={cn('tap-ui-dialog', className)}\n data-size={size}\n data-slot=\"dialog-content\"\n data-surface={surface}\n ref={dialog.contentRef}\n role=\"dialog\"\n />\n );\n}\n\n/** Wraps a dialog title and description. */\nexport function DialogHeader({\n className,\n ...props\n}: ComponentPropsWithoutRef<'header'>) {\n return (\n <header\n {...props}\n className={cn('tap-dialog__header', className)}\n data-slot=\"dialog-header\"\n />\n );\n}\n\n/** Labels the containing dialog. */\nexport function DialogTitle({\n className,\n ...props\n}: ComponentPropsWithoutRef<'h2'>) {\n const dialog = useDialogPart();\n return (\n <h2\n {...props}\n className={cn('tap-dialog__title', className)}\n data-slot=\"dialog-title\"\n id={props.id ?? dialog.titleId}\n />\n );\n}\n\n/** Describes the containing dialog for assistive technology. */\nexport function DialogDescription({\n className,\n ...props\n}: ComponentPropsWithoutRef<'div'>) {\n const dialog = useDialogPart();\n return (\n <div\n {...props}\n className={cn('tap-dialog__description', className)}\n data-slot=\"dialog-description\"\n id={props.id ?? dialog.descriptionId}\n />\n );\n}\n\n/** Wraps the main dialog content. */\nexport function DialogBody({\n className,\n ...props\n}: ComponentPropsWithoutRef<'div'>) {\n return (\n <div\n {...props}\n className={cn('tap-dialog__body', className)}\n data-slot=\"dialog-body\"\n />\n );\n}\n\n/** Wraps dialog actions. */\nexport function DialogFooter({\n className,\n ...props\n}: ComponentPropsWithoutRef<'footer'>) {\n return (\n <footer\n {...props}\n className={cn('tap-dialog__footer', className)}\n data-slot=\"dialog-footer\"\n />\n );\n}\n\n/** Renders a button that requests closure of the containing dialog. */\nexport function DialogClose({\n children = '×',\n ...props\n}: ButtonHTMLAttributes<HTMLButtonElement>) {\n const dialog = useDialogPart();\n return (\n <Button\n {...props}\n aria-label={props['aria-label'] ?? 'Close dialog'}\n data-slot=\"dialog-close\"\n onClick={event => {\n props.onClick?.(event);\n if (!event.defaultPrevented) dialog.close();\n }}\n size=\"icon-sm\"\n variant=\"tertiary\"\n >\n {children}\n </Button>\n );\n}\n","import type { ComponentPropsWithoutRef } from 'react';\nimport { cn } from './cn';\n\n/** Spacing values supported by the layout primitives. */\nexport type Space = 4 | 8 | 12 | 16 | 24 | 32 | 40;\n\n/** Props for a vertical stack layout. */\nexport interface StackProps extends ComponentPropsWithoutRef<'div'> {\n 'data-slot'?: string;\n gap?: Space;\n}\n\n/** Arranges children vertically with a tokenized gap. */\nexport function Stack({\n gap = 16,\n className,\n 'data-slot': slot = 'stack',\n ...props\n}: StackProps) {\n return (\n <div\n {...props}\n className={cn('tap-stack', className)}\n data-gap={gap}\n data-slot={slot}\n />\n );\n}\n\n/** Cross-axis alignment values supported by {@link Inline}. */\nexport type InlineAlign = 'start' | 'center' | 'end' | 'stretch';\n/** Main-axis distribution values supported by {@link Inline}. */\nexport type InlineJustify = 'start' | 'center' | 'end' | 'between';\n\n/** Props for a horizontal inline layout. */\nexport interface InlineProps extends ComponentPropsWithoutRef<'div'> {\n 'data-slot'?: string;\n align?: InlineAlign;\n gap?: Space;\n justify?: InlineJustify;\n}\n\n/** Arranges children horizontally with tokenized alignment and spacing. */\nexport function Inline({\n align = 'center',\n gap = 8,\n justify = 'start',\n className,\n 'data-slot': slot = 'inline',\n ...props\n}: InlineProps) {\n return (\n <div\n {...props}\n className={cn('tap-inline', className)}\n data-align={align}\n data-gap={gap}\n data-justify={justify}\n data-slot={slot}\n />\n );\n}\n","import type { CSSProperties, ReactNode } from 'react';\nimport { Button } from './button';\nimport { cn } from './cn';\nimport { Stack } from './layout';\n\n/** Props for a compact labeled metric. */\nexport interface MetricProps {\n delta?: number;\n description?: ReactNode;\n label: ReactNode;\n value: ReactNode;\n}\n\n/** Displays a value with its label and optional trend context. */\nexport function Metric({ delta, description, label, value }: MetricProps) {\n const percent = delta === undefined ? undefined : Math.round(delta * 100);\n const direction =\n percent === undefined || percent === 0\n ? 'flat'\n : percent > 0\n ? 'up'\n : 'down';\n return (\n <div className=\"tap-metric\" data-slot=\"metric\">\n <div className=\"tap-metric__label\" data-slot=\"metric-label\">\n {label}\n </div>\n <div className=\"tap-metric__value\" data-slot=\"metric-value\">\n {value}\n </div>\n {percent !== undefined ? (\n <div\n className=\"tap-metric__delta\"\n data-direction={direction}\n data-slot=\"metric-delta\"\n >\n {percent > 0 ? '+' : ''}\n {percent}%\n </div>\n ) : null}\n {description ? (\n <div className=\"tap-metric__description\" data-slot=\"metric-description\">\n {description}\n </div>\n ) : null}\n </div>\n );\n}\n\n/** Props for a reduced-motion-aware loading placeholder. */\nexport interface SkeletonProps {\n className?: string;\n lines?: number;\n width?: CSSProperties['width'];\n}\n\n/** Displays one or more loading placeholder lines. */\nexport function Skeleton({ className, lines = 1, width }: SkeletonProps) {\n return (\n <div className={cn('tap-ui-skeleton', className)} data-slot=\"skeleton\">\n {Array.from({ length: Math.max(0, lines) }, (_, index) => (\n <span\n className=\"tap-skeleton__line\"\n data-slot=\"skeleton-line\"\n key={index}\n style={{ width }}\n />\n ))}\n </div>\n );\n}\n\n/** Props for an empty collection or unconfigured surface. */\nexport interface EmptyStateProps {\n action?: ReactNode;\n description?: ReactNode;\n title: ReactNode;\n}\n\n/** Explains an empty state and optionally presents a recovery action. */\nexport function EmptyState({ action, description, title }: EmptyStateProps) {\n return (\n <Stack className=\"tap-ui-state\" data-slot=\"empty-state\" gap={12}>\n <div className=\"tap-state__title\">{title}</div>\n {description ? (\n <div className=\"tap-state__description\">{description}</div>\n ) : null}\n {action ? <div className=\"tap-state__action\">{action}</div> : null}\n </Stack>\n );\n}\n\n/** Props for an inline error surface. */\nexport interface ErrorStateProps {\n code?: ReactNode;\n description?: ReactNode;\n /** Called when the user chooses to retry the failed operation. */\n onRetry?: () => void;\n title: ReactNode;\n}\n\n/** Displays a recoverable inline error with an optional retry control. */\nexport function ErrorState({\n code,\n description,\n onRetry,\n title,\n}: ErrorStateProps) {\n return (\n <Stack\n className=\"tap-ui-state tap-ui-state--error\"\n data-slot=\"error-state\"\n gap={12}\n role=\"alert\"\n >\n <div className=\"tap-state__title\">{title}</div>\n {description ? (\n <div className=\"tap-state__description\">{description}</div>\n ) : null}\n {code ? <code className=\"tap-state__code\">{code}</code> : null}\n {onRetry ? (\n <div className=\"tap-state__action\">\n <Button variant=\"secondary\" onClick={onRetry}>\n Try again\n </Button>\n </div>\n ) : null}\n </Stack>\n );\n}\n","import {\n Children,\n createContext,\n forwardRef,\n isValidElement,\n useContext,\n useEffect,\n useId,\n useRef,\n type ComponentPropsWithoutRef,\n type InputHTMLAttributes,\n} from 'react';\nimport { cn } from './cn';\n\ninterface FieldContextValue {\n controlId: string;\n descriptionId?: string;\n errorId?: string;\n}\n\nconst FieldContext = createContext<FieldContextValue | null>(null);\n\n/** Connects a label, description, error, and control as one field. */\nexport function Field({\n children,\n className,\n ...props\n}: ComponentPropsWithoutRef<'div'>) {\n const generatedId = useId();\n const items = Children.toArray(children);\n const control = items.find(\n child =>\n isValidElement(child) &&\n (child.type === Input ||\n child.type === Textarea ||\n child.type === Checkbox ||\n child.type === Select),\n );\n const customId =\n isValidElement<{ id?: string }>(control) &&\n typeof control.props.id === 'string'\n ? control.props.id\n : undefined;\n const hasDescription = items.some(\n child => isValidElement(child) && child.type === FieldDescription,\n );\n const hasError = items.some(\n child => isValidElement(child) && child.type === FieldError,\n );\n const baseId = `tap-ui-field-${generatedId.replace(/:/g, '')}`;\n const value: FieldContextValue = {\n controlId: customId ?? `${baseId}-control`,\n descriptionId: hasDescription ? `${baseId}-description` : undefined,\n errorId: hasError ? `${baseId}-error` : undefined,\n };\n\n return (\n <FieldContext.Provider value={value}>\n <div\n {...props}\n className={cn('tap-ui-field', className)}\n data-invalid={hasError || undefined}\n data-slot=\"field\"\n >\n {children}\n </div>\n </FieldContext.Provider>\n );\n}\n\n/** Labels the control in the containing {@link Field}. */\nexport function FieldLabel({\n className,\n ...props\n}: ComponentPropsWithoutRef<'label'>) {\n const field = useContext(FieldContext);\n return (\n <label\n {...props}\n className={cn('tap-field__label', className)}\n data-slot=\"field-label\"\n htmlFor={props.htmlFor ?? field?.controlId}\n />\n );\n}\n\n/** Adds supporting text to the containing {@link Field}. */\nexport function FieldDescription({\n className,\n ...props\n}: ComponentPropsWithoutRef<'div'>) {\n const field = useContext(FieldContext);\n return (\n <div\n {...props}\n className={cn('tap-field__description', className)}\n data-slot=\"field-description\"\n id={props.id ?? field?.descriptionId}\n />\n );\n}\n\n/** Adds an accessible validation error to the containing {@link Field}. */\nexport function FieldError({\n className,\n ...props\n}: ComponentPropsWithoutRef<'div'>) {\n const field = useContext(FieldContext);\n return (\n <div\n {...props}\n className={cn('tap-field__error', className)}\n data-slot=\"field-error\"\n id={props.id ?? field?.errorId}\n role={props.role ?? 'alert'}\n />\n );\n}\n\nfunction joinIds(...ids: Array<string | undefined>): string | undefined {\n const unique = [\n ...new Set(ids.flatMap(id => id?.split(/\\s+/) ?? []).filter(Boolean)),\n ];\n return unique.length > 0 ? unique.join(' ') : undefined;\n}\n\nfunction fieldControlProps(\n field: FieldContextValue | null,\n id: string | undefined,\n describedBy: string | undefined,\n invalid: boolean | 'true' | 'false' | 'grammar' | 'spelling' | undefined,\n) {\n return {\n 'aria-describedby': joinIds(\n describedBy,\n field?.descriptionId,\n field?.errorId,\n ),\n 'aria-invalid': field?.errorId ? true : invalid,\n id: id ?? field?.controlId,\n } as const;\n}\n\n/** Renders a One UI text input and consumes optional field context. */\nexport const Input = forwardRef<\n HTMLInputElement,\n ComponentPropsWithoutRef<'input'>\n>(function Input(\n {\n className,\n id,\n 'aria-describedby': describedBy,\n 'aria-invalid': invalid,\n ...props\n },\n ref,\n) {\n const field = useContext(FieldContext);\n return (\n <input\n {...props}\n {...fieldControlProps(field, id, describedBy, invalid)}\n className={cn('tap-ui-control tap-input', className)}\n data-slot=\"input\"\n ref={ref}\n />\n );\n});\n\n/** Renders a One UI multiline input and consumes optional field context. */\nexport const Textarea = forwardRef<\n HTMLTextAreaElement,\n ComponentPropsWithoutRef<'textarea'>\n>(function Textarea(\n {\n className,\n id,\n 'aria-describedby': describedBy,\n 'aria-invalid': invalid,\n ...props\n },\n ref,\n) {\n const field = useContext(FieldContext);\n return (\n <textarea\n {...props}\n {...fieldControlProps(field, id, describedBy, invalid)}\n className={cn('tap-ui-control tap-textarea', className)}\n data-slot=\"textarea\"\n ref={ref}\n />\n );\n});\n\n/** Renders a One UI native select and consumes optional field context. */\nexport const Select = forwardRef<\n HTMLSelectElement,\n ComponentPropsWithoutRef<'select'>\n>(function Select(\n {\n className,\n id,\n 'aria-describedby': describedBy,\n 'aria-invalid': invalid,\n ...props\n },\n ref,\n) {\n const field = useContext(FieldContext);\n return (\n <select\n {...props}\n {...fieldControlProps(field, id, describedBy, invalid)}\n className={cn('tap-ui-control tap-select', className)}\n data-slot=\"select\"\n ref={ref}\n />\n );\n});\n\n/** Props for the One UI checkbox primitive. */\nexport interface CheckboxProps extends Omit<\n InputHTMLAttributes<HTMLInputElement>,\n 'type'\n> {\n indeterminate?: boolean;\n}\n\n/** Renders a native checkbox with checked and indeterminate visual states. */\nexport const Checkbox = forwardRef<HTMLInputElement, CheckboxProps>(\n function Checkbox(\n {\n checked,\n className,\n id,\n indeterminate = false,\n 'aria-describedby': describedBy,\n 'aria-invalid': invalid,\n ...props\n },\n forwardedRef,\n ) {\n const field = useContext(FieldContext);\n const innerRef = useRef<HTMLInputElement | null>(null);\n\n useEffect(() => {\n if (innerRef.current) innerRef.current.indeterminate = indeterminate;\n }, [indeterminate]);\n\n const setRef = (element: HTMLInputElement | null) => {\n innerRef.current = element;\n if (typeof forwardedRef === 'function') forwardedRef(element);\n else if (forwardedRef) forwardedRef.current = element;\n };\n\n return (\n <input\n {...props}\n {...fieldControlProps(field, id, describedBy, invalid)}\n checked={checked}\n className={cn('tap-checkbox', className)}\n data-slot=\"checkbox\"\n data-state={\n indeterminate ? 'indeterminate' : checked ? 'checked' : 'unchecked'\n }\n ref={setRef}\n type=\"checkbox\"\n />\n );\n },\n);\n","import type { ComponentPropsWithoutRef, ReactNode } from 'react';\nimport { cn } from './cn';\n\n/** Props for an extension page heading with optional actions. */\nexport interface PageHeaderProps extends Omit<\n ComponentPropsWithoutRef<'header'>,\n 'title'\n> {\n actions?: ReactNode;\n description?: ReactNode;\n title: ReactNode;\n}\n\n/** Introduces a page with a title, supporting copy, and optional actions. */\nexport function PageHeader({\n actions,\n className,\n description,\n title,\n ...props\n}: PageHeaderProps) {\n return (\n <header\n {...props}\n className={cn('tap-ui-page-header', className)}\n data-slot=\"page-header\"\n >\n <div className=\"tap-page-header__copy\" data-slot=\"page-header-copy\">\n <h2 className=\"tap-page-header__title\" data-slot=\"page-header-title\">\n {title}\n </h2>\n {description ? (\n <div\n className=\"tap-page-header__description\"\n data-slot=\"page-header-description\"\n >\n {description}\n </div>\n ) : null}\n </div>\n {actions ? (\n <div\n className=\"tap-page-header__actions\"\n data-slot=\"page-header-actions\"\n >\n {actions}\n </div>\n ) : null}\n </header>\n );\n}\n","import {\n useMemo,\n useState,\n type ReactElement,\n type SubmitEventHandler,\n} from 'react';\nimport { z } from 'zod';\nimport type { JsonSchema } from '../../manifest/types';\nimport { Button } from './button';\nimport {\n Checkbox,\n Field,\n FieldDescription,\n FieldError,\n FieldLabel,\n Input,\n Select,\n Textarea,\n} from './field';\nimport { Inline } from './layout';\n\n/** Controls rendered by {@link SchemaForm} for supported schema properties. */\nexport type SchemaFieldKind =\n | 'text'\n | 'textarea'\n | 'date'\n | 'number'\n | 'boolean'\n | 'enum';\n\n/** Normalized presentation metadata for one JSON Schema property. */\nexport interface SchemaField {\n name: string;\n label: string;\n kind: SchemaFieldKind;\n required: boolean;\n description?: string;\n options?: { value: string; label: string }[];\n}\n\nfunction text(\n source: Record<string, unknown>,\n key: string,\n): string | undefined {\n return typeof source[key] === 'string' ? source[key] : undefined;\n}\n\nfunction humanize(name: string): string {\n const spaced = name\n .replace(/[_-]+/g, ' ')\n .replace(/([a-z0-9])([A-Z])/g, '$1 $2')\n .trim();\n return spaced.charAt(0).toUpperCase() + spaced.slice(1);\n}\n\nfunction fieldKind(property: Record<string, unknown>): SchemaFieldKind {\n if (Array.isArray(property.enum)) return 'enum';\n if (property.type === 'boolean') return 'boolean';\n if (property.type === 'number' || property.type === 'integer')\n return 'number';\n if (property.format === 'textarea') return 'textarea';\n if (property.format === 'date') return 'date';\n return 'text';\n}\n\n/** Converts supported JSON Schema properties into ordered form fields. */\nexport function schemaFields(schema: JsonSchema): SchemaField[] {\n if (typeof schema.properties !== 'object' || schema.properties === null)\n return [];\n const required = new Set(\n Array.isArray(schema.required)\n ? schema.required.filter(\n (name): name is string => typeof name === 'string',\n )\n : [],\n );\n\n return Object.entries(schema.properties).flatMap(([name, raw]) => {\n if (typeof raw !== 'object' || raw === null) return [];\n const property: Record<string, unknown> = { ...raw };\n const kind = fieldKind(property);\n const field: SchemaField = {\n name,\n label: text(property, 'title') ?? humanize(name),\n kind,\n required: required.has(name),\n };\n const description = text(property, 'description');\n if (description) field.description = description;\n if (kind === 'enum' && Array.isArray(property.enum)) {\n field.options = property.enum\n .filter((option): option is string => typeof option === 'string')\n .map(option => ({ value: option, label: option }));\n }\n return [field];\n });\n}\n\ntype Values = Record<string, unknown>;\n\nfunction compile(schema: JsonSchema): z.ZodType | null {\n try {\n return z.fromJSONSchema(schema);\n } catch {\n return null;\n }\n}\n\nfunction clean(fields: SchemaField[], values: Values): Values {\n return Object.fromEntries(\n fields.flatMap(field => {\n const value = values[field.name];\n return value === undefined || value === '' ? [] : [[field.name, value]];\n }),\n );\n}\n\nfunction validate(\n fields: SchemaField[],\n compiled: z.ZodType | null,\n values: Values,\n): Record<string, string> {\n const errors: Record<string, string> = {};\n for (const field of fields) {\n if (\n field.required &&\n (values[field.name] === undefined || values[field.name] === '')\n ) {\n errors[field.name] = `${field.label} is required.`;\n }\n }\n if (!compiled) return errors;\n const result = compiled.safeParse(values);\n if (result.success) return errors;\n for (const issue of result.error.issues) {\n const key = issue.path[0];\n if (typeof key === 'string' && errors[key] === undefined)\n errors[key] = issue.message;\n }\n return errors;\n}\n\n/** Props for a JSON Schema-driven One UI form. */\nexport interface SchemaFormProps<T> {\n schema: JsonSchema;\n value?: Partial<T>;\n submitLabel?: string;\n cancelLabel?: string;\n busy?: boolean;\n /** Receives the cleaned, validated value when the form is submitted. */\n onSubmit: (value: T) => void | Promise<void>;\n /** Called when the optional cancel action is selected. */\n onCancel?: () => void;\n}\n\n/** Renders supported JSON Schema properties as accessible One UI fields. */\nexport function SchemaForm<T>({\n schema,\n value,\n submitLabel = 'Submit',\n cancelLabel = 'Cancel',\n busy = false,\n onSubmit,\n onCancel,\n}: SchemaFormProps<T>): ReactElement {\n const fields = useMemo(() => schemaFields(schema), [schema]);\n const compiled = useMemo(() => compile(schema), [schema]);\n const [values, setValues] = useState<Values>(() => ({ ...value }));\n const [errors, setErrors] = useState<Record<string, string>>({});\n\n const set = (name: string, next: unknown) => {\n setValues(current => ({ ...current, [name]: next }));\n setErrors(current => {\n if (current[name] === undefined) return current;\n const { [name]: _removed, ...rest } = current;\n return rest;\n });\n };\n\n const submit: SubmitEventHandler<HTMLFormElement> = event => {\n event.preventDefault();\n const candidate = clean(fields, values);\n const found = validate(fields, compiled, candidate);\n setErrors(found);\n if (Object.keys(found).length === 0) void onSubmit(candidate as T);\n };\n\n return (\n <form\n className=\"tap-schema-form\"\n data-slot=\"schema-form\"\n noValidate\n onSubmit={submit}\n >\n {fields.map(field => {\n const raw = values[field.name];\n const description = field.description ? (\n <FieldDescription>{field.description}</FieldDescription>\n ) : null;\n const error = errors[field.name] ? (\n <FieldError>{errors[field.name]}</FieldError>\n ) : null;\n\n if (field.kind === 'boolean') {\n return (\n <Field className=\"tap-ui-field--checkbox\" key={field.name}>\n <FieldLabel className=\"tap-checkbox-row\">\n <Checkbox\n checked={raw === true}\n onChange={event => set(field.name, event.target.checked)}\n />\n <span>{field.label}</span>\n </FieldLabel>\n {description}\n {error}\n </Field>\n );\n }\n\n return (\n <Field key={field.name}>\n <FieldLabel>{field.label}</FieldLabel>\n {field.kind === 'enum' ? (\n <Select\n required={field.required}\n value={typeof raw === 'string' ? raw : ''}\n onChange={event => set(field.name, event.target.value)}\n >\n <option value=\"\">Choose one</option>\n {field.options?.map(option => (\n <option key={option.value} value={option.value}>\n {option.label}\n </option>\n ))}\n </Select>\n ) : field.kind === 'textarea' ? (\n <Textarea\n required={field.required}\n value={typeof raw === 'string' ? raw : ''}\n onChange={event => set(field.name, event.target.value)}\n />\n ) : (\n <Input\n required={field.required}\n type={\n field.kind === 'number'\n ? 'number'\n : field.kind === 'date'\n ? 'date'\n : 'text'\n }\n value={\n typeof raw === 'string' || typeof raw === 'number'\n ? String(raw)\n : ''\n }\n onChange={event =>\n set(\n field.name,\n field.kind === 'number'\n ? event.target.value === ''\n ? ''\n : Number(event.target.value)\n : event.target.value,\n )\n }\n />\n )}\n {description}\n {error}\n </Field>\n );\n })}\n\n <Inline\n className=\"tap-schema-form__actions\"\n data-slot=\"form-actions\"\n justify=\"end\"\n >\n {onCancel ? (\n <Button variant=\"secondary\" onClick={onCancel}>\n {cancelLabel}\n </Button>\n ) : null}\n <Button loading={busy} type=\"submit\">\n {submitLabel}\n </Button>\n </Inline>\n </form>\n );\n}\n","import type { ComponentPropsWithoutRef } from 'react';\nimport { cn } from './cn';\n\n/** Provides a horizontally scrollable semantic table surface. */\nexport function Table({\n className,\n ...props\n}: ComponentPropsWithoutRef<'table'>) {\n return (\n <div className=\"tap-ui-table-container\" data-slot=\"table-container\">\n <table\n {...props}\n className={cn('tap-ui-table', className)}\n data-slot=\"table\"\n />\n </div>\n );\n}\n\n/** Groups table header rows. */\nexport function TableHeader({\n className,\n ...props\n}: ComponentPropsWithoutRef<'thead'>) {\n return (\n <thead\n {...props}\n className={cn('tap-table__header', className)}\n data-slot=\"table-header\"\n />\n );\n}\n\n/** Groups table body rows. */\nexport function TableBody({\n className,\n ...props\n}: ComponentPropsWithoutRef<'tbody'>) {\n return (\n <tbody\n {...props}\n className={cn('tap-table__body', className)}\n data-slot=\"table-body\"\n />\n );\n}\n\n/** Props for a semantic table row. */\nexport interface TableRowProps extends ComponentPropsWithoutRef<'tr'> {\n variant?: 'header' | 'body';\n}\n\n/** Renders a table row with header or body styling. */\nexport function TableRow({\n className,\n variant = 'body',\n ...props\n}: TableRowProps) {\n return (\n <tr\n {...props}\n className={cn('tap-table__row', className)}\n data-slot=\"table-row\"\n data-variant={variant}\n />\n );\n}\n\n/** Renders a semantic table column heading. */\nexport function TableHead({\n className,\n ...props\n}: ComponentPropsWithoutRef<'th'>) {\n return (\n <th\n {...props}\n className={cn('tap-table__head', className)}\n data-slot=\"table-head\"\n />\n );\n}\n\n/** Renders a semantic table data cell. */\nexport function TableCell({\n className,\n ...props\n}: ComponentPropsWithoutRef<'td'>) {\n return (\n <td\n {...props}\n className={cn('tap-table__cell', className)}\n data-slot=\"table-cell\"\n />\n );\n}\n"]}
|
package/dist/ui.d.cts
DELETED
|
@@ -1,231 +0,0 @@
|
|
|
1
|
-
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
2
|
-
import * as react from 'react';
|
|
3
|
-
import { ButtonHTMLAttributes, ComponentPropsWithoutRef, ReactNode, ReactElement, CSSProperties, InputHTMLAttributes } from 'react';
|
|
4
|
-
import { ClassValue as ClassValue$1 } from 'clsx';
|
|
5
|
-
import { J as JsonSchema } from './constants-BAimnqOK.cjs';
|
|
6
|
-
|
|
7
|
-
/** Visual emphasis available for a {@link Button}. */
|
|
8
|
-
type ButtonVariant = 'primary' | 'secondary' | 'tertiary' | 'inverse' | 'destructive';
|
|
9
|
-
/** Density and icon-only sizes available for a {@link Button}. */
|
|
10
|
-
type ButtonSize = 'default' | 'compact' | 'xs' | 'sm' | 'lg' | 'icon' | 'icon-xs' | 'icon-sm' | 'icon-lg';
|
|
11
|
-
/** Props for the One UI button primitive. */
|
|
12
|
-
interface ButtonProps extends ButtonHTMLAttributes<HTMLButtonElement> {
|
|
13
|
-
'data-slot'?: string;
|
|
14
|
-
loading?: boolean;
|
|
15
|
-
size?: ButtonSize;
|
|
16
|
-
variant?: ButtonVariant;
|
|
17
|
-
}
|
|
18
|
-
/** Renders an accessible One UI button with loading, size, and tone states. */
|
|
19
|
-
declare function Button({ 'aria-busy': ariaBusy, 'data-slot': slot, children, className, disabled, loading, size, type, variant, ...props }: ButtonProps): react_jsx_runtime.JSX.Element;
|
|
20
|
-
|
|
21
|
-
/** Props for a One UI card surface. */
|
|
22
|
-
interface CardProps extends ComponentPropsWithoutRef<'div'> {
|
|
23
|
-
size?: 'default' | 'sm';
|
|
24
|
-
}
|
|
25
|
-
/** Provides the root surface for compound card parts. */
|
|
26
|
-
declare function Card({ className, size, ...props }: CardProps): react_jsx_runtime.JSX.Element;
|
|
27
|
-
/** Lays out a card title, description, and optional action. */
|
|
28
|
-
declare function CardHeader({ className, ...props }: ComponentPropsWithoutRef<'div'>): react_jsx_runtime.JSX.Element;
|
|
29
|
-
/** Renders a card's primary heading. */
|
|
30
|
-
declare function CardTitle({ className, ...props }: ComponentPropsWithoutRef<'div'>): react_jsx_runtime.JSX.Element;
|
|
31
|
-
/** Renders supporting copy below a card title. */
|
|
32
|
-
declare function CardDescription({ className, ...props }: ComponentPropsWithoutRef<'div'>): react_jsx_runtime.JSX.Element;
|
|
33
|
-
/** Positions a control in the card header. */
|
|
34
|
-
declare function CardAction({ className, ...props }: ComponentPropsWithoutRef<'div'>): react_jsx_runtime.JSX.Element;
|
|
35
|
-
/** Wraps the main contents of a card. */
|
|
36
|
-
declare function CardContent({ className, ...props }: ComponentPropsWithoutRef<'div'>): react_jsx_runtime.JSX.Element;
|
|
37
|
-
/** Wraps actions or metadata at the bottom of a card. */
|
|
38
|
-
declare function CardFooter({ className, ...props }: ComponentPropsWithoutRef<'div'>): react_jsx_runtime.JSX.Element;
|
|
39
|
-
|
|
40
|
-
/**
|
|
41
|
-
* Anything `cn` accepts: a class string, a number, an array of these, a map of
|
|
42
|
-
* class name to condition, or a value to drop.
|
|
43
|
-
*/
|
|
44
|
-
type ClassValue = ClassValue$1;
|
|
45
|
-
/**
|
|
46
|
-
* Joins class names, dropping the ones that are `false`, `null` or `undefined`.
|
|
47
|
-
*
|
|
48
|
-
* @remarks
|
|
49
|
-
* This is `clsx`, re-exported so a vendor surface needs no class-name dependency
|
|
50
|
-
* of its own. It does not merge conflicting utility classes.
|
|
51
|
-
*
|
|
52
|
-
* @example
|
|
53
|
-
* ```tsx
|
|
54
|
-
* import { cn } from '@tappify/extension-sdk/ui';
|
|
55
|
-
*
|
|
56
|
-
* function Row({ compact }: { compact: boolean }) {
|
|
57
|
-
* return <div className={cn('starter-row', compact && 'starter-row--compact')} />;
|
|
58
|
-
* }
|
|
59
|
-
* ```
|
|
60
|
-
*/
|
|
61
|
-
declare function cn(...values: ClassValue[]): string;
|
|
62
|
-
|
|
63
|
-
/** Props for the controlled dialog root. */
|
|
64
|
-
interface DialogProps {
|
|
65
|
-
children: ReactNode;
|
|
66
|
-
/** Called when the dialog requests an open-state change. */
|
|
67
|
-
onOpenChange: (open: boolean) => void;
|
|
68
|
-
open: boolean;
|
|
69
|
-
}
|
|
70
|
-
/** Coordinates a controlled, host-portaled modal dialog. */
|
|
71
|
-
declare function Dialog({ children, onOpenChange, open, }: DialogProps): ReactElement | null;
|
|
72
|
-
/** Supported dialog widths and purpose-built layouts. */
|
|
73
|
-
type DialogSize = 'compact' | 'default' | 'medium' | 'confirmation' | 'large' | 'wide';
|
|
74
|
-
/** Props for the modal surface rendered inside {@link Dialog}. */
|
|
75
|
-
interface DialogContentProps extends ComponentPropsWithoutRef<'div'> {
|
|
76
|
-
size?: DialogSize;
|
|
77
|
-
surface?: 'paper' | 'canvas';
|
|
78
|
-
}
|
|
79
|
-
/** Renders the accessible dialog surface and focus-trap boundary. */
|
|
80
|
-
declare function DialogContent({ className, size, surface, ...props }: DialogContentProps): react_jsx_runtime.JSX.Element;
|
|
81
|
-
/** Wraps a dialog title and description. */
|
|
82
|
-
declare function DialogHeader({ className, ...props }: ComponentPropsWithoutRef<'header'>): react_jsx_runtime.JSX.Element;
|
|
83
|
-
/** Labels the containing dialog. */
|
|
84
|
-
declare function DialogTitle({ className, ...props }: ComponentPropsWithoutRef<'h2'>): react_jsx_runtime.JSX.Element;
|
|
85
|
-
/** Describes the containing dialog for assistive technology. */
|
|
86
|
-
declare function DialogDescription({ className, ...props }: ComponentPropsWithoutRef<'div'>): react_jsx_runtime.JSX.Element;
|
|
87
|
-
/** Wraps the main dialog content. */
|
|
88
|
-
declare function DialogBody({ className, ...props }: ComponentPropsWithoutRef<'div'>): react_jsx_runtime.JSX.Element;
|
|
89
|
-
/** Wraps dialog actions. */
|
|
90
|
-
declare function DialogFooter({ className, ...props }: ComponentPropsWithoutRef<'footer'>): react_jsx_runtime.JSX.Element;
|
|
91
|
-
/** Renders a button that requests closure of the containing dialog. */
|
|
92
|
-
declare function DialogClose({ children, ...props }: ButtonHTMLAttributes<HTMLButtonElement>): react_jsx_runtime.JSX.Element;
|
|
93
|
-
|
|
94
|
-
/** Props for a compact labeled metric. */
|
|
95
|
-
interface MetricProps {
|
|
96
|
-
delta?: number;
|
|
97
|
-
description?: ReactNode;
|
|
98
|
-
label: ReactNode;
|
|
99
|
-
value: ReactNode;
|
|
100
|
-
}
|
|
101
|
-
/** Displays a value with its label and optional trend context. */
|
|
102
|
-
declare function Metric({ delta, description, label, value }: MetricProps): react_jsx_runtime.JSX.Element;
|
|
103
|
-
/** Props for a reduced-motion-aware loading placeholder. */
|
|
104
|
-
interface SkeletonProps {
|
|
105
|
-
className?: string;
|
|
106
|
-
lines?: number;
|
|
107
|
-
width?: CSSProperties['width'];
|
|
108
|
-
}
|
|
109
|
-
/** Displays one or more loading placeholder lines. */
|
|
110
|
-
declare function Skeleton({ className, lines, width }: SkeletonProps): react_jsx_runtime.JSX.Element;
|
|
111
|
-
/** Props for an empty collection or unconfigured surface. */
|
|
112
|
-
interface EmptyStateProps {
|
|
113
|
-
action?: ReactNode;
|
|
114
|
-
description?: ReactNode;
|
|
115
|
-
title: ReactNode;
|
|
116
|
-
}
|
|
117
|
-
/** Explains an empty state and optionally presents a recovery action. */
|
|
118
|
-
declare function EmptyState({ action, description, title }: EmptyStateProps): react_jsx_runtime.JSX.Element;
|
|
119
|
-
/** Props for an inline error surface. */
|
|
120
|
-
interface ErrorStateProps {
|
|
121
|
-
code?: ReactNode;
|
|
122
|
-
description?: ReactNode;
|
|
123
|
-
/** Called when the user chooses to retry the failed operation. */
|
|
124
|
-
onRetry?: () => void;
|
|
125
|
-
title: ReactNode;
|
|
126
|
-
}
|
|
127
|
-
/** Displays a recoverable inline error with an optional retry control. */
|
|
128
|
-
declare function ErrorState({ code, description, onRetry, title, }: ErrorStateProps): react_jsx_runtime.JSX.Element;
|
|
129
|
-
|
|
130
|
-
/** Connects a label, description, error, and control as one field. */
|
|
131
|
-
declare function Field({ children, className, ...props }: ComponentPropsWithoutRef<'div'>): react_jsx_runtime.JSX.Element;
|
|
132
|
-
/** Labels the control in the containing {@link Field}. */
|
|
133
|
-
declare function FieldLabel({ className, ...props }: ComponentPropsWithoutRef<'label'>): react_jsx_runtime.JSX.Element;
|
|
134
|
-
/** Adds supporting text to the containing {@link Field}. */
|
|
135
|
-
declare function FieldDescription({ className, ...props }: ComponentPropsWithoutRef<'div'>): react_jsx_runtime.JSX.Element;
|
|
136
|
-
/** Adds an accessible validation error to the containing {@link Field}. */
|
|
137
|
-
declare function FieldError({ className, ...props }: ComponentPropsWithoutRef<'div'>): react_jsx_runtime.JSX.Element;
|
|
138
|
-
/** Renders a One UI text input and consumes optional field context. */
|
|
139
|
-
declare const Input: react.ForwardRefExoticComponent<Omit<react.DetailedHTMLProps<InputHTMLAttributes<HTMLInputElement>, HTMLInputElement>, "ref"> & react.RefAttributes<HTMLInputElement>>;
|
|
140
|
-
/** Renders a One UI multiline input and consumes optional field context. */
|
|
141
|
-
declare const Textarea: react.ForwardRefExoticComponent<Omit<react.DetailedHTMLProps<react.TextareaHTMLAttributes<HTMLTextAreaElement>, HTMLTextAreaElement>, "ref"> & react.RefAttributes<HTMLTextAreaElement>>;
|
|
142
|
-
/** Renders a One UI native select and consumes optional field context. */
|
|
143
|
-
declare const Select: react.ForwardRefExoticComponent<Omit<react.DetailedHTMLProps<react.SelectHTMLAttributes<HTMLSelectElement>, HTMLSelectElement>, "ref"> & react.RefAttributes<HTMLSelectElement>>;
|
|
144
|
-
/** Props for the One UI checkbox primitive. */
|
|
145
|
-
interface CheckboxProps extends Omit<InputHTMLAttributes<HTMLInputElement>, 'type'> {
|
|
146
|
-
indeterminate?: boolean;
|
|
147
|
-
}
|
|
148
|
-
/** Renders a native checkbox with checked and indeterminate visual states. */
|
|
149
|
-
declare const Checkbox: react.ForwardRefExoticComponent<CheckboxProps & react.RefAttributes<HTMLInputElement>>;
|
|
150
|
-
|
|
151
|
-
/** Spacing values supported by the layout primitives. */
|
|
152
|
-
type Space = 4 | 8 | 12 | 16 | 24 | 32 | 40;
|
|
153
|
-
/** Props for a vertical stack layout. */
|
|
154
|
-
interface StackProps extends ComponentPropsWithoutRef<'div'> {
|
|
155
|
-
'data-slot'?: string;
|
|
156
|
-
gap?: Space;
|
|
157
|
-
}
|
|
158
|
-
/** Arranges children vertically with a tokenized gap. */
|
|
159
|
-
declare function Stack({ gap, className, 'data-slot': slot, ...props }: StackProps): react_jsx_runtime.JSX.Element;
|
|
160
|
-
/** Cross-axis alignment values supported by {@link Inline}. */
|
|
161
|
-
type InlineAlign = 'start' | 'center' | 'end' | 'stretch';
|
|
162
|
-
/** Main-axis distribution values supported by {@link Inline}. */
|
|
163
|
-
type InlineJustify = 'start' | 'center' | 'end' | 'between';
|
|
164
|
-
/** Props for a horizontal inline layout. */
|
|
165
|
-
interface InlineProps extends ComponentPropsWithoutRef<'div'> {
|
|
166
|
-
'data-slot'?: string;
|
|
167
|
-
align?: InlineAlign;
|
|
168
|
-
gap?: Space;
|
|
169
|
-
justify?: InlineJustify;
|
|
170
|
-
}
|
|
171
|
-
/** Arranges children horizontally with tokenized alignment and spacing. */
|
|
172
|
-
declare function Inline({ align, gap, justify, className, 'data-slot': slot, ...props }: InlineProps): react_jsx_runtime.JSX.Element;
|
|
173
|
-
|
|
174
|
-
/** Props for an extension page heading with optional actions. */
|
|
175
|
-
interface PageHeaderProps extends Omit<ComponentPropsWithoutRef<'header'>, 'title'> {
|
|
176
|
-
actions?: ReactNode;
|
|
177
|
-
description?: ReactNode;
|
|
178
|
-
title: ReactNode;
|
|
179
|
-
}
|
|
180
|
-
/** Introduces a page with a title, supporting copy, and optional actions. */
|
|
181
|
-
declare function PageHeader({ actions, className, description, title, ...props }: PageHeaderProps): react_jsx_runtime.JSX.Element;
|
|
182
|
-
|
|
183
|
-
/** Controls rendered by {@link SchemaForm} for supported schema properties. */
|
|
184
|
-
type SchemaFieldKind = 'text' | 'textarea' | 'date' | 'number' | 'boolean' | 'enum';
|
|
185
|
-
/** Normalized presentation metadata for one JSON Schema property. */
|
|
186
|
-
interface SchemaField {
|
|
187
|
-
name: string;
|
|
188
|
-
label: string;
|
|
189
|
-
kind: SchemaFieldKind;
|
|
190
|
-
required: boolean;
|
|
191
|
-
description?: string;
|
|
192
|
-
options?: {
|
|
193
|
-
value: string;
|
|
194
|
-
label: string;
|
|
195
|
-
}[];
|
|
196
|
-
}
|
|
197
|
-
/** Converts supported JSON Schema properties into ordered form fields. */
|
|
198
|
-
declare function schemaFields(schema: JsonSchema): SchemaField[];
|
|
199
|
-
/** Props for a JSON Schema-driven One UI form. */
|
|
200
|
-
interface SchemaFormProps<T> {
|
|
201
|
-
schema: JsonSchema;
|
|
202
|
-
value?: Partial<T>;
|
|
203
|
-
submitLabel?: string;
|
|
204
|
-
cancelLabel?: string;
|
|
205
|
-
busy?: boolean;
|
|
206
|
-
/** Receives the cleaned, validated value when the form is submitted. */
|
|
207
|
-
onSubmit: (value: T) => void | Promise<void>;
|
|
208
|
-
/** Called when the optional cancel action is selected. */
|
|
209
|
-
onCancel?: () => void;
|
|
210
|
-
}
|
|
211
|
-
/** Renders supported JSON Schema properties as accessible One UI fields. */
|
|
212
|
-
declare function SchemaForm<T>({ schema, value, submitLabel, cancelLabel, busy, onSubmit, onCancel, }: SchemaFormProps<T>): ReactElement;
|
|
213
|
-
|
|
214
|
-
/** Provides a horizontally scrollable semantic table surface. */
|
|
215
|
-
declare function Table({ className, ...props }: ComponentPropsWithoutRef<'table'>): react_jsx_runtime.JSX.Element;
|
|
216
|
-
/** Groups table header rows. */
|
|
217
|
-
declare function TableHeader({ className, ...props }: ComponentPropsWithoutRef<'thead'>): react_jsx_runtime.JSX.Element;
|
|
218
|
-
/** Groups table body rows. */
|
|
219
|
-
declare function TableBody({ className, ...props }: ComponentPropsWithoutRef<'tbody'>): react_jsx_runtime.JSX.Element;
|
|
220
|
-
/** Props for a semantic table row. */
|
|
221
|
-
interface TableRowProps extends ComponentPropsWithoutRef<'tr'> {
|
|
222
|
-
variant?: 'header' | 'body';
|
|
223
|
-
}
|
|
224
|
-
/** Renders a table row with header or body styling. */
|
|
225
|
-
declare function TableRow({ className, variant, ...props }: TableRowProps): react_jsx_runtime.JSX.Element;
|
|
226
|
-
/** Renders a semantic table column heading. */
|
|
227
|
-
declare function TableHead({ className, ...props }: ComponentPropsWithoutRef<'th'>): react_jsx_runtime.JSX.Element;
|
|
228
|
-
/** Renders a semantic table data cell. */
|
|
229
|
-
declare function TableCell({ className, ...props }: ComponentPropsWithoutRef<'td'>): react_jsx_runtime.JSX.Element;
|
|
230
|
-
|
|
231
|
-
export { Button, type ButtonProps, type ButtonSize, type ButtonVariant, Card, CardAction, CardContent, CardDescription, CardFooter, CardHeader, type CardProps, CardTitle, Checkbox, type CheckboxProps, type ClassValue, Dialog, DialogBody, DialogClose, DialogContent, type DialogContentProps, DialogDescription, DialogFooter, DialogHeader, type DialogProps, type DialogSize, DialogTitle, EmptyState, type EmptyStateProps, ErrorState, type ErrorStateProps, Field, FieldDescription, FieldError, FieldLabel, Inline, type InlineAlign, type InlineJustify, type InlineProps, Input, Metric, type MetricProps, PageHeader, type PageHeaderProps, type SchemaField, type SchemaFieldKind, SchemaForm, type SchemaFormProps, Select, Skeleton, type SkeletonProps, type Space, Stack, type StackProps, Table, TableBody, TableCell, TableHead, TableHeader, TableRow, type TableRowProps, Textarea, cn, schemaFields };
|
package/dist/ui.d.ts
DELETED
|
@@ -1,231 +0,0 @@
|
|
|
1
|
-
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
2
|
-
import * as react from 'react';
|
|
3
|
-
import { ButtonHTMLAttributes, ComponentPropsWithoutRef, ReactNode, ReactElement, CSSProperties, InputHTMLAttributes } from 'react';
|
|
4
|
-
import { ClassValue as ClassValue$1 } from 'clsx';
|
|
5
|
-
import { J as JsonSchema } from './constants-BAimnqOK.js';
|
|
6
|
-
|
|
7
|
-
/** Visual emphasis available for a {@link Button}. */
|
|
8
|
-
type ButtonVariant = 'primary' | 'secondary' | 'tertiary' | 'inverse' | 'destructive';
|
|
9
|
-
/** Density and icon-only sizes available for a {@link Button}. */
|
|
10
|
-
type ButtonSize = 'default' | 'compact' | 'xs' | 'sm' | 'lg' | 'icon' | 'icon-xs' | 'icon-sm' | 'icon-lg';
|
|
11
|
-
/** Props for the One UI button primitive. */
|
|
12
|
-
interface ButtonProps extends ButtonHTMLAttributes<HTMLButtonElement> {
|
|
13
|
-
'data-slot'?: string;
|
|
14
|
-
loading?: boolean;
|
|
15
|
-
size?: ButtonSize;
|
|
16
|
-
variant?: ButtonVariant;
|
|
17
|
-
}
|
|
18
|
-
/** Renders an accessible One UI button with loading, size, and tone states. */
|
|
19
|
-
declare function Button({ 'aria-busy': ariaBusy, 'data-slot': slot, children, className, disabled, loading, size, type, variant, ...props }: ButtonProps): react_jsx_runtime.JSX.Element;
|
|
20
|
-
|
|
21
|
-
/** Props for a One UI card surface. */
|
|
22
|
-
interface CardProps extends ComponentPropsWithoutRef<'div'> {
|
|
23
|
-
size?: 'default' | 'sm';
|
|
24
|
-
}
|
|
25
|
-
/** Provides the root surface for compound card parts. */
|
|
26
|
-
declare function Card({ className, size, ...props }: CardProps): react_jsx_runtime.JSX.Element;
|
|
27
|
-
/** Lays out a card title, description, and optional action. */
|
|
28
|
-
declare function CardHeader({ className, ...props }: ComponentPropsWithoutRef<'div'>): react_jsx_runtime.JSX.Element;
|
|
29
|
-
/** Renders a card's primary heading. */
|
|
30
|
-
declare function CardTitle({ className, ...props }: ComponentPropsWithoutRef<'div'>): react_jsx_runtime.JSX.Element;
|
|
31
|
-
/** Renders supporting copy below a card title. */
|
|
32
|
-
declare function CardDescription({ className, ...props }: ComponentPropsWithoutRef<'div'>): react_jsx_runtime.JSX.Element;
|
|
33
|
-
/** Positions a control in the card header. */
|
|
34
|
-
declare function CardAction({ className, ...props }: ComponentPropsWithoutRef<'div'>): react_jsx_runtime.JSX.Element;
|
|
35
|
-
/** Wraps the main contents of a card. */
|
|
36
|
-
declare function CardContent({ className, ...props }: ComponentPropsWithoutRef<'div'>): react_jsx_runtime.JSX.Element;
|
|
37
|
-
/** Wraps actions or metadata at the bottom of a card. */
|
|
38
|
-
declare function CardFooter({ className, ...props }: ComponentPropsWithoutRef<'div'>): react_jsx_runtime.JSX.Element;
|
|
39
|
-
|
|
40
|
-
/**
|
|
41
|
-
* Anything `cn` accepts: a class string, a number, an array of these, a map of
|
|
42
|
-
* class name to condition, or a value to drop.
|
|
43
|
-
*/
|
|
44
|
-
type ClassValue = ClassValue$1;
|
|
45
|
-
/**
|
|
46
|
-
* Joins class names, dropping the ones that are `false`, `null` or `undefined`.
|
|
47
|
-
*
|
|
48
|
-
* @remarks
|
|
49
|
-
* This is `clsx`, re-exported so a vendor surface needs no class-name dependency
|
|
50
|
-
* of its own. It does not merge conflicting utility classes.
|
|
51
|
-
*
|
|
52
|
-
* @example
|
|
53
|
-
* ```tsx
|
|
54
|
-
* import { cn } from '@tappify/extension-sdk/ui';
|
|
55
|
-
*
|
|
56
|
-
* function Row({ compact }: { compact: boolean }) {
|
|
57
|
-
* return <div className={cn('starter-row', compact && 'starter-row--compact')} />;
|
|
58
|
-
* }
|
|
59
|
-
* ```
|
|
60
|
-
*/
|
|
61
|
-
declare function cn(...values: ClassValue[]): string;
|
|
62
|
-
|
|
63
|
-
/** Props for the controlled dialog root. */
|
|
64
|
-
interface DialogProps {
|
|
65
|
-
children: ReactNode;
|
|
66
|
-
/** Called when the dialog requests an open-state change. */
|
|
67
|
-
onOpenChange: (open: boolean) => void;
|
|
68
|
-
open: boolean;
|
|
69
|
-
}
|
|
70
|
-
/** Coordinates a controlled, host-portaled modal dialog. */
|
|
71
|
-
declare function Dialog({ children, onOpenChange, open, }: DialogProps): ReactElement | null;
|
|
72
|
-
/** Supported dialog widths and purpose-built layouts. */
|
|
73
|
-
type DialogSize = 'compact' | 'default' | 'medium' | 'confirmation' | 'large' | 'wide';
|
|
74
|
-
/** Props for the modal surface rendered inside {@link Dialog}. */
|
|
75
|
-
interface DialogContentProps extends ComponentPropsWithoutRef<'div'> {
|
|
76
|
-
size?: DialogSize;
|
|
77
|
-
surface?: 'paper' | 'canvas';
|
|
78
|
-
}
|
|
79
|
-
/** Renders the accessible dialog surface and focus-trap boundary. */
|
|
80
|
-
declare function DialogContent({ className, size, surface, ...props }: DialogContentProps): react_jsx_runtime.JSX.Element;
|
|
81
|
-
/** Wraps a dialog title and description. */
|
|
82
|
-
declare function DialogHeader({ className, ...props }: ComponentPropsWithoutRef<'header'>): react_jsx_runtime.JSX.Element;
|
|
83
|
-
/** Labels the containing dialog. */
|
|
84
|
-
declare function DialogTitle({ className, ...props }: ComponentPropsWithoutRef<'h2'>): react_jsx_runtime.JSX.Element;
|
|
85
|
-
/** Describes the containing dialog for assistive technology. */
|
|
86
|
-
declare function DialogDescription({ className, ...props }: ComponentPropsWithoutRef<'div'>): react_jsx_runtime.JSX.Element;
|
|
87
|
-
/** Wraps the main dialog content. */
|
|
88
|
-
declare function DialogBody({ className, ...props }: ComponentPropsWithoutRef<'div'>): react_jsx_runtime.JSX.Element;
|
|
89
|
-
/** Wraps dialog actions. */
|
|
90
|
-
declare function DialogFooter({ className, ...props }: ComponentPropsWithoutRef<'footer'>): react_jsx_runtime.JSX.Element;
|
|
91
|
-
/** Renders a button that requests closure of the containing dialog. */
|
|
92
|
-
declare function DialogClose({ children, ...props }: ButtonHTMLAttributes<HTMLButtonElement>): react_jsx_runtime.JSX.Element;
|
|
93
|
-
|
|
94
|
-
/** Props for a compact labeled metric. */
|
|
95
|
-
interface MetricProps {
|
|
96
|
-
delta?: number;
|
|
97
|
-
description?: ReactNode;
|
|
98
|
-
label: ReactNode;
|
|
99
|
-
value: ReactNode;
|
|
100
|
-
}
|
|
101
|
-
/** Displays a value with its label and optional trend context. */
|
|
102
|
-
declare function Metric({ delta, description, label, value }: MetricProps): react_jsx_runtime.JSX.Element;
|
|
103
|
-
/** Props for a reduced-motion-aware loading placeholder. */
|
|
104
|
-
interface SkeletonProps {
|
|
105
|
-
className?: string;
|
|
106
|
-
lines?: number;
|
|
107
|
-
width?: CSSProperties['width'];
|
|
108
|
-
}
|
|
109
|
-
/** Displays one or more loading placeholder lines. */
|
|
110
|
-
declare function Skeleton({ className, lines, width }: SkeletonProps): react_jsx_runtime.JSX.Element;
|
|
111
|
-
/** Props for an empty collection or unconfigured surface. */
|
|
112
|
-
interface EmptyStateProps {
|
|
113
|
-
action?: ReactNode;
|
|
114
|
-
description?: ReactNode;
|
|
115
|
-
title: ReactNode;
|
|
116
|
-
}
|
|
117
|
-
/** Explains an empty state and optionally presents a recovery action. */
|
|
118
|
-
declare function EmptyState({ action, description, title }: EmptyStateProps): react_jsx_runtime.JSX.Element;
|
|
119
|
-
/** Props for an inline error surface. */
|
|
120
|
-
interface ErrorStateProps {
|
|
121
|
-
code?: ReactNode;
|
|
122
|
-
description?: ReactNode;
|
|
123
|
-
/** Called when the user chooses to retry the failed operation. */
|
|
124
|
-
onRetry?: () => void;
|
|
125
|
-
title: ReactNode;
|
|
126
|
-
}
|
|
127
|
-
/** Displays a recoverable inline error with an optional retry control. */
|
|
128
|
-
declare function ErrorState({ code, description, onRetry, title, }: ErrorStateProps): react_jsx_runtime.JSX.Element;
|
|
129
|
-
|
|
130
|
-
/** Connects a label, description, error, and control as one field. */
|
|
131
|
-
declare function Field({ children, className, ...props }: ComponentPropsWithoutRef<'div'>): react_jsx_runtime.JSX.Element;
|
|
132
|
-
/** Labels the control in the containing {@link Field}. */
|
|
133
|
-
declare function FieldLabel({ className, ...props }: ComponentPropsWithoutRef<'label'>): react_jsx_runtime.JSX.Element;
|
|
134
|
-
/** Adds supporting text to the containing {@link Field}. */
|
|
135
|
-
declare function FieldDescription({ className, ...props }: ComponentPropsWithoutRef<'div'>): react_jsx_runtime.JSX.Element;
|
|
136
|
-
/** Adds an accessible validation error to the containing {@link Field}. */
|
|
137
|
-
declare function FieldError({ className, ...props }: ComponentPropsWithoutRef<'div'>): react_jsx_runtime.JSX.Element;
|
|
138
|
-
/** Renders a One UI text input and consumes optional field context. */
|
|
139
|
-
declare const Input: react.ForwardRefExoticComponent<Omit<react.DetailedHTMLProps<InputHTMLAttributes<HTMLInputElement>, HTMLInputElement>, "ref"> & react.RefAttributes<HTMLInputElement>>;
|
|
140
|
-
/** Renders a One UI multiline input and consumes optional field context. */
|
|
141
|
-
declare const Textarea: react.ForwardRefExoticComponent<Omit<react.DetailedHTMLProps<react.TextareaHTMLAttributes<HTMLTextAreaElement>, HTMLTextAreaElement>, "ref"> & react.RefAttributes<HTMLTextAreaElement>>;
|
|
142
|
-
/** Renders a One UI native select and consumes optional field context. */
|
|
143
|
-
declare const Select: react.ForwardRefExoticComponent<Omit<react.DetailedHTMLProps<react.SelectHTMLAttributes<HTMLSelectElement>, HTMLSelectElement>, "ref"> & react.RefAttributes<HTMLSelectElement>>;
|
|
144
|
-
/** Props for the One UI checkbox primitive. */
|
|
145
|
-
interface CheckboxProps extends Omit<InputHTMLAttributes<HTMLInputElement>, 'type'> {
|
|
146
|
-
indeterminate?: boolean;
|
|
147
|
-
}
|
|
148
|
-
/** Renders a native checkbox with checked and indeterminate visual states. */
|
|
149
|
-
declare const Checkbox: react.ForwardRefExoticComponent<CheckboxProps & react.RefAttributes<HTMLInputElement>>;
|
|
150
|
-
|
|
151
|
-
/** Spacing values supported by the layout primitives. */
|
|
152
|
-
type Space = 4 | 8 | 12 | 16 | 24 | 32 | 40;
|
|
153
|
-
/** Props for a vertical stack layout. */
|
|
154
|
-
interface StackProps extends ComponentPropsWithoutRef<'div'> {
|
|
155
|
-
'data-slot'?: string;
|
|
156
|
-
gap?: Space;
|
|
157
|
-
}
|
|
158
|
-
/** Arranges children vertically with a tokenized gap. */
|
|
159
|
-
declare function Stack({ gap, className, 'data-slot': slot, ...props }: StackProps): react_jsx_runtime.JSX.Element;
|
|
160
|
-
/** Cross-axis alignment values supported by {@link Inline}. */
|
|
161
|
-
type InlineAlign = 'start' | 'center' | 'end' | 'stretch';
|
|
162
|
-
/** Main-axis distribution values supported by {@link Inline}. */
|
|
163
|
-
type InlineJustify = 'start' | 'center' | 'end' | 'between';
|
|
164
|
-
/** Props for a horizontal inline layout. */
|
|
165
|
-
interface InlineProps extends ComponentPropsWithoutRef<'div'> {
|
|
166
|
-
'data-slot'?: string;
|
|
167
|
-
align?: InlineAlign;
|
|
168
|
-
gap?: Space;
|
|
169
|
-
justify?: InlineJustify;
|
|
170
|
-
}
|
|
171
|
-
/** Arranges children horizontally with tokenized alignment and spacing. */
|
|
172
|
-
declare function Inline({ align, gap, justify, className, 'data-slot': slot, ...props }: InlineProps): react_jsx_runtime.JSX.Element;
|
|
173
|
-
|
|
174
|
-
/** Props for an extension page heading with optional actions. */
|
|
175
|
-
interface PageHeaderProps extends Omit<ComponentPropsWithoutRef<'header'>, 'title'> {
|
|
176
|
-
actions?: ReactNode;
|
|
177
|
-
description?: ReactNode;
|
|
178
|
-
title: ReactNode;
|
|
179
|
-
}
|
|
180
|
-
/** Introduces a page with a title, supporting copy, and optional actions. */
|
|
181
|
-
declare function PageHeader({ actions, className, description, title, ...props }: PageHeaderProps): react_jsx_runtime.JSX.Element;
|
|
182
|
-
|
|
183
|
-
/** Controls rendered by {@link SchemaForm} for supported schema properties. */
|
|
184
|
-
type SchemaFieldKind = 'text' | 'textarea' | 'date' | 'number' | 'boolean' | 'enum';
|
|
185
|
-
/** Normalized presentation metadata for one JSON Schema property. */
|
|
186
|
-
interface SchemaField {
|
|
187
|
-
name: string;
|
|
188
|
-
label: string;
|
|
189
|
-
kind: SchemaFieldKind;
|
|
190
|
-
required: boolean;
|
|
191
|
-
description?: string;
|
|
192
|
-
options?: {
|
|
193
|
-
value: string;
|
|
194
|
-
label: string;
|
|
195
|
-
}[];
|
|
196
|
-
}
|
|
197
|
-
/** Converts supported JSON Schema properties into ordered form fields. */
|
|
198
|
-
declare function schemaFields(schema: JsonSchema): SchemaField[];
|
|
199
|
-
/** Props for a JSON Schema-driven One UI form. */
|
|
200
|
-
interface SchemaFormProps<T> {
|
|
201
|
-
schema: JsonSchema;
|
|
202
|
-
value?: Partial<T>;
|
|
203
|
-
submitLabel?: string;
|
|
204
|
-
cancelLabel?: string;
|
|
205
|
-
busy?: boolean;
|
|
206
|
-
/** Receives the cleaned, validated value when the form is submitted. */
|
|
207
|
-
onSubmit: (value: T) => void | Promise<void>;
|
|
208
|
-
/** Called when the optional cancel action is selected. */
|
|
209
|
-
onCancel?: () => void;
|
|
210
|
-
}
|
|
211
|
-
/** Renders supported JSON Schema properties as accessible One UI fields. */
|
|
212
|
-
declare function SchemaForm<T>({ schema, value, submitLabel, cancelLabel, busy, onSubmit, onCancel, }: SchemaFormProps<T>): ReactElement;
|
|
213
|
-
|
|
214
|
-
/** Provides a horizontally scrollable semantic table surface. */
|
|
215
|
-
declare function Table({ className, ...props }: ComponentPropsWithoutRef<'table'>): react_jsx_runtime.JSX.Element;
|
|
216
|
-
/** Groups table header rows. */
|
|
217
|
-
declare function TableHeader({ className, ...props }: ComponentPropsWithoutRef<'thead'>): react_jsx_runtime.JSX.Element;
|
|
218
|
-
/** Groups table body rows. */
|
|
219
|
-
declare function TableBody({ className, ...props }: ComponentPropsWithoutRef<'tbody'>): react_jsx_runtime.JSX.Element;
|
|
220
|
-
/** Props for a semantic table row. */
|
|
221
|
-
interface TableRowProps extends ComponentPropsWithoutRef<'tr'> {
|
|
222
|
-
variant?: 'header' | 'body';
|
|
223
|
-
}
|
|
224
|
-
/** Renders a table row with header or body styling. */
|
|
225
|
-
declare function TableRow({ className, variant, ...props }: TableRowProps): react_jsx_runtime.JSX.Element;
|
|
226
|
-
/** Renders a semantic table column heading. */
|
|
227
|
-
declare function TableHead({ className, ...props }: ComponentPropsWithoutRef<'th'>): react_jsx_runtime.JSX.Element;
|
|
228
|
-
/** Renders a semantic table data cell. */
|
|
229
|
-
declare function TableCell({ className, ...props }: ComponentPropsWithoutRef<'td'>): react_jsx_runtime.JSX.Element;
|
|
230
|
-
|
|
231
|
-
export { Button, type ButtonProps, type ButtonSize, type ButtonVariant, Card, CardAction, CardContent, CardDescription, CardFooter, CardHeader, type CardProps, CardTitle, Checkbox, type CheckboxProps, type ClassValue, Dialog, DialogBody, DialogClose, DialogContent, type DialogContentProps, DialogDescription, DialogFooter, DialogHeader, type DialogProps, type DialogSize, DialogTitle, EmptyState, type EmptyStateProps, ErrorState, type ErrorStateProps, Field, FieldDescription, FieldError, FieldLabel, Inline, type InlineAlign, type InlineJustify, type InlineProps, Input, Metric, type MetricProps, PageHeader, type PageHeaderProps, type SchemaField, type SchemaFieldKind, SchemaForm, type SchemaFormProps, Select, Skeleton, type SkeletonProps, type Space, Stack, type StackProps, Table, TableBody, TableCell, TableHead, TableHeader, TableRow, type TableRowProps, Textarea, cn, schemaFields };
|