@contractspec/lib.design-system 1.44.1 → 1.45.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/atoms/Button.js.map +1 -1
- package/dist/components/atoms/ButtonLink.js +1 -2
- package/dist/components/atoms/ButtonLink.js.map +1 -1
- package/dist/components/atoms/ErrorState.js.map +1 -1
- package/dist/components/atoms/Input.js.map +1 -1
- package/dist/components/atoms/Link.js.map +1 -1
- package/dist/components/atoms/LoaderCircular.js.map +1 -1
- package/dist/components/forms/ActionForm.js.map +1 -1
- package/dist/components/molecules/LoaderBlock.js.map +1 -1
- package/dist/components/molecules/OverviewCard.js.map +1 -1
- package/dist/components/molecules/SkeletonBlock/index.web.d.ts +2 -2
- package/dist/components/molecules/SkeletonBlock/index.web.js.map +1 -1
- package/dist/components/molecules/SkeletonCircle/index.web.js.map +1 -1
- package/dist/components/molecules/SkeletonList/index.web.d.ts +2 -2
- package/dist/components/molecules/SkeletonList/index.web.d.ts.map +1 -1
- package/dist/components/molecules/SkeletonList/index.web.js +0 -1
- package/dist/components/molecules/SkeletonList/index.web.js.map +1 -1
- package/dist/components/organisms/MarketingHeader.d.ts +2 -0
- package/dist/components/organisms/MarketingHeader.d.ts.map +1 -1
- package/dist/components/organisms/MarketingHeader.js +5 -2
- package/dist/components/organisms/MarketingHeader.js.map +1 -1
- package/dist/components/templates/lists/ListPageTemplate/index.web.d.ts +2 -2
- package/dist/index.js +2 -2
- package/dist/index.js.map +1 -1
- package/dist/renderers/form-contract.d.ts +2 -2
- package/package.json +7 -7
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Button.js","names":["Button","WebButton"],"sources":["../../../src/components/atoms/Button.tsx"],"sourcesContent":["import * as React from 'react';\nimport {\n Button as WebButton,\n type ButtonProps as WebButtonProps,\n} from '@contractspec/lib.ui-kit-web/ui/button';\nimport { Loader2 } from 'lucide-react';\n// type-only import to avoid bundling RN on web\nimport type { PressableProps as _RNPressableProps } from 'react-native';\n\ntype SpinnerPlacement = 'start' | 'end';\n\nexport type ButtonProps = Omit<\n WebButtonProps,\n 'onClick' | 'disabled' | 'children'\n> & {\n // PressableBridgeProps & {\n children: React.ReactNode;\n loading?: boolean;\n loadingText?: string; // ignored on web, present for API symmetry\n spinnerPlacement?: SpinnerPlacement;\n // Normalized events\n onPress?: () => void;\n onPressIn?: () => void;\n onPressOut?: () => void;\n onLongPress?: () => void;\n // Web-only optional onClick for compatibility\n onClick?: React.MouseEventHandler<HTMLButtonElement>;\n disabled?: boolean;\n};\n\nexport function Button({\n children,\n loading,\n spinnerPlacement = 'start',\n onPress,\n onPressIn,\n onPressOut,\n onLongPress,\n onTouchStart,\n onTouchEnd,\n onTouchCancel,\n onMouseDown,\n onMouseUp,\n onClick,\n className,\n disabled,\n ...rest\n}: ButtonProps) {\n const isDisabled = Boolean(disabled || loading);\n\n const content = !rest.asChild ? (\n <>\n {loading && spinnerPlacement === 'start' ? (\n <Loader2 className=\"h-4 w-4 animate-spin\" />\n ) : null}\n {children}\n {loading && spinnerPlacement === 'end' ? (\n <Loader2 className=\"h-4 w-4 animate-spin\" />\n ) : null}\n </>\n ) : (\n children\n );\n\n return (\n <WebButton\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n {...(rest as any)}\n className={className}\n disabled={isDisabled}\n aria-busy={loading ? true : undefined}\n aria-disabled={isDisabled ? true : undefined}\n // normalized + bridged events\n onPress={onPress || onClick}\n onClick={onPress || onClick}\n onMouseDown={onMouseDown || onPressIn}\n onMouseUp={onMouseUp || onPressOut}\n onTouchStart={onTouchStart}\n onTouchEnd={onTouchEnd || onPressOut}\n onTouchCancel={onTouchCancel || onPressOut}\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n type={(rest as any)?.type ?? 'button'}\n >\n {content}\n </WebButton>\n );\n}\n
|
|
1
|
+
{"version":3,"file":"Button.js","names":["Button","WebButton"],"sources":["../../../src/components/atoms/Button.tsx"],"sourcesContent":["import * as React from 'react';\nimport {\n Button as WebButton,\n type ButtonProps as WebButtonProps,\n} from '@contractspec/lib.ui-kit-web/ui/button';\nimport { Loader2 } from 'lucide-react';\n// type-only import to avoid bundling RN on web\nimport type { PressableProps as _RNPressableProps } from 'react-native';\n\ntype SpinnerPlacement = 'start' | 'end';\n\nexport type ButtonProps = Omit<\n WebButtonProps,\n 'onClick' | 'disabled' | 'children'\n> & {\n // PressableBridgeProps & {\n children: React.ReactNode;\n loading?: boolean;\n loadingText?: string; // ignored on web, present for API symmetry\n spinnerPlacement?: SpinnerPlacement;\n // Normalized events\n onPress?: () => void;\n onPressIn?: () => void;\n onPressOut?: () => void;\n onLongPress?: () => void;\n // Web-only optional onClick for compatibility\n onClick?: React.MouseEventHandler<HTMLButtonElement>;\n disabled?: boolean;\n};\n\nexport function Button({\n children,\n loading,\n spinnerPlacement = 'start',\n onPress,\n onPressIn,\n onPressOut,\n onLongPress,\n onTouchStart,\n onTouchEnd,\n onTouchCancel,\n onMouseDown,\n onMouseUp,\n onClick,\n className,\n disabled,\n ...rest\n}: ButtonProps) {\n const isDisabled = Boolean(disabled || loading);\n\n const content = !rest.asChild ? (\n <>\n {loading && spinnerPlacement === 'start' ? (\n <Loader2 className=\"h-4 w-4 animate-spin\" />\n ) : null}\n {children}\n {loading && spinnerPlacement === 'end' ? (\n <Loader2 className=\"h-4 w-4 animate-spin\" />\n ) : null}\n </>\n ) : (\n children\n );\n\n return (\n <WebButton\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n {...(rest as any)}\n className={className}\n disabled={isDisabled}\n aria-busy={loading ? true : undefined}\n aria-disabled={isDisabled ? true : undefined}\n // normalized + bridged events\n onPress={onPress || onClick}\n onClick={onPress || onClick}\n onMouseDown={onMouseDown || onPressIn}\n onMouseUp={onMouseUp || onPressOut}\n onTouchStart={onTouchStart}\n onTouchEnd={onTouchEnd || onPressOut}\n onTouchCancel={onTouchCancel || onPressOut}\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n type={(rest as any)?.type ?? 'button'}\n >\n {content}\n </WebButton>\n );\n}\n"],"mappings":";;;;;;AA8BA,SAAgBA,SAAO,EACrB,UACA,SACA,mBAAmB,SACnB,SACA,WACA,YACA,aACA,cACA,YACA,eACA,aACA,WACA,SACA,WACA,UACA,GAAG,QACW;CACd,MAAM,aAAa,QAAQ,YAAY,QAAQ;CAE/C,MAAM,UAAU,CAAC,KAAK,UACpB;EACG,WAAW,qBAAqB,UAC/B,oBAAC,WAAQ,WAAU,yBAAyB,GAC1C;EACH;EACA,WAAW,qBAAqB,QAC/B,oBAAC,WAAQ,WAAU,yBAAyB,GAC1C;KACH,GAEH;AAGF,QACE,oBAACC;EAEC,GAAK;EACM;EACX,UAAU;EACV,aAAW,UAAU,OAAO;EAC5B,iBAAe,aAAa,OAAO;EAEnC,SAAS,WAAW;EACpB,SAAS,WAAW;EACpB,aAAa,eAAe;EAC5B,WAAW,aAAa;EACV;EACd,YAAY,cAAc;EAC1B,eAAe,iBAAiB;EAEhC,MAAO,MAAc,QAAQ;YAE5B;GACS"}
|
|
@@ -30,8 +30,7 @@ function ButtonLink({ href, target, rel, replace, loading, disabled, children, o
|
|
|
30
30
|
})
|
|
31
31
|
});
|
|
32
32
|
}
|
|
33
|
-
var ButtonLink_default = ButtonLink;
|
|
34
33
|
|
|
35
34
|
//#endregion
|
|
36
|
-
export { ButtonLink
|
|
35
|
+
export { ButtonLink };
|
|
37
36
|
//# sourceMappingURL=ButtonLink.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ButtonLink.js","names":[],"sources":["../../../src/components/atoms/ButtonLink.tsx"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport { Button, type ButtonProps } from './Button';\nimport { Link, type LinkProps } from './Link.web';\n\nexport type ButtonLinkProps = Omit<ButtonProps, 'onClick'> &\n Pick<LinkProps, 'href' | 'target' | 'rel' | 'onClick'> & {\n replace?: boolean;\n };\n\nexport function ButtonLink({\n href,\n target,\n rel,\n replace,\n loading,\n disabled,\n children,\n onClick,\n ...btn\n}: ButtonLinkProps) {\n const blocked = Boolean(disabled || loading);\n const handleClick = React.useCallback<\n React.MouseEventHandler<HTMLAnchorElement>\n >(\n (e) => {\n if (blocked) {\n e.preventDefault();\n e.stopPropagation();\n return;\n }\n onClick?.(e);\n },\n [blocked, onClick]\n );\n return (\n <Button {...btn} disabled={disabled} loading={loading} asChild>\n <Link href={href} target={target} rel={rel} onClick={handleClick}>\n {children}\n </Link>\n </Button>\n );\n}\n
|
|
1
|
+
{"version":3,"file":"ButtonLink.js","names":[],"sources":["../../../src/components/atoms/ButtonLink.tsx"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport { Button, type ButtonProps } from './Button';\nimport { Link, type LinkProps } from './Link.web';\n\nexport type ButtonLinkProps = Omit<ButtonProps, 'onClick'> &\n Pick<LinkProps, 'href' | 'target' | 'rel' | 'onClick'> & {\n replace?: boolean;\n };\n\nexport function ButtonLink({\n href,\n target,\n rel,\n replace,\n loading,\n disabled,\n children,\n onClick,\n ...btn\n}: ButtonLinkProps) {\n const blocked = Boolean(disabled || loading);\n const handleClick = React.useCallback<\n React.MouseEventHandler<HTMLAnchorElement>\n >(\n (e) => {\n if (blocked) {\n e.preventDefault();\n e.stopPropagation();\n return;\n }\n onClick?.(e);\n },\n [blocked, onClick]\n );\n return (\n <Button {...btn} disabled={disabled} loading={loading} asChild>\n <Link href={href} target={target} rel={rel} onClick={handleClick}>\n {children}\n </Link>\n </Button>\n );\n}\n"],"mappings":";;;;;;;;AAWA,SAAgB,WAAW,EACzB,MACA,QACA,KACA,SACA,SACA,UACA,UACA,SACA,GAAG,OACe;CAClB,MAAM,UAAU,QAAQ,YAAY,QAAQ;CAC5C,MAAM,cAAc,MAAM,aAGvB,MAAM;AACL,MAAI,SAAS;AACX,KAAE,gBAAgB;AAClB,KAAE,iBAAiB;AACnB;;AAEF,YAAU,EAAE;IAEd,CAAC,SAAS,QAAQ,CACnB;AACD,QACE,oBAAC;EAAO,GAAI;EAAe;EAAmB;EAAS;YACrD,oBAAC;GAAW;GAAc;GAAa;GAAK,SAAS;GAClD;IACI;GACA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ErrorState.js","names":[],"sources":["../../../src/components/atoms/ErrorState.tsx"],"sourcesContent":["import * as React from 'react';\nimport {\n Empty,\n EmptyContent,\n EmptyDescription,\n EmptyHeader,\n EmptyTitle,\n} from '@contractspec/lib.ui-kit-web/ui/empty';\nimport { Button } from '../atoms/Button';\nimport { ButtonLink } from '../atoms/ButtonLink';\n\nexport interface ErrorStateProps {\n title?: React.ReactNode;\n description?: React.ReactNode;\n icon?: React.ReactNode;\n onRetry?: () => void;\n retryLabel?: React.ReactNode;\n supportHref?: string;\n onContactSupport?: () => void;\n supportLabel?: React.ReactNode;\n className?: string;\n}\n\nexport function ErrorState({\n title = 'Something went wrong',\n description,\n icon,\n onRetry,\n retryLabel = 'Retry',\n supportHref,\n onContactSupport,\n supportLabel = 'Contact support',\n className,\n}: ErrorStateProps) {\n const Support = (() => {\n if (supportHref) {\n return (\n <ButtonLink variant=\"ghost\" href={supportHref}>\n {supportLabel}\n </ButtonLink>\n );\n }\n if (onContactSupport) {\n return (\n <Button variant=\"ghost\" onPress={onContactSupport}>\n {supportLabel}\n </Button>\n );\n }\n return null;\n })();\n\n return (\n <Empty className={className}>\n <EmptyHeader>\n {icon}\n <EmptyTitle>{title}</EmptyTitle>\n {description ? (\n <EmptyDescription>{description}</EmptyDescription>\n ) : null}\n </EmptyHeader>\n <EmptyContent>\n <div className=\"flex flex-wrap items-center gap-2\">\n {onRetry ? <Button onPress={onRetry}>{retryLabel}</Button> : null}\n {Support}\n </div>\n </EmptyContent>\n </Empty>\n );\n}\n
|
|
1
|
+
{"version":3,"file":"ErrorState.js","names":[],"sources":["../../../src/components/atoms/ErrorState.tsx"],"sourcesContent":["import * as React from 'react';\nimport {\n Empty,\n EmptyContent,\n EmptyDescription,\n EmptyHeader,\n EmptyTitle,\n} from '@contractspec/lib.ui-kit-web/ui/empty';\nimport { Button } from '../atoms/Button';\nimport { ButtonLink } from '../atoms/ButtonLink';\n\nexport interface ErrorStateProps {\n title?: React.ReactNode;\n description?: React.ReactNode;\n icon?: React.ReactNode;\n onRetry?: () => void;\n retryLabel?: React.ReactNode;\n supportHref?: string;\n onContactSupport?: () => void;\n supportLabel?: React.ReactNode;\n className?: string;\n}\n\nexport function ErrorState({\n title = 'Something went wrong',\n description,\n icon,\n onRetry,\n retryLabel = 'Retry',\n supportHref,\n onContactSupport,\n supportLabel = 'Contact support',\n className,\n}: ErrorStateProps) {\n const Support = (() => {\n if (supportHref) {\n return (\n <ButtonLink variant=\"ghost\" href={supportHref}>\n {supportLabel}\n </ButtonLink>\n );\n }\n if (onContactSupport) {\n return (\n <Button variant=\"ghost\" onPress={onContactSupport}>\n {supportLabel}\n </Button>\n );\n }\n return null;\n })();\n\n return (\n <Empty className={className}>\n <EmptyHeader>\n {icon}\n <EmptyTitle>{title}</EmptyTitle>\n {description ? (\n <EmptyDescription>{description}</EmptyDescription>\n ) : null}\n </EmptyHeader>\n <EmptyContent>\n <div className=\"flex flex-wrap items-center gap-2\">\n {onRetry ? <Button onPress={onRetry}>{retryLabel}</Button> : null}\n {Support}\n </div>\n </EmptyContent>\n </Empty>\n );\n}\n"],"mappings":";;;;;;;AAuBA,SAAgB,WAAW,EACzB,QAAQ,wBACR,aACA,MACA,SACA,aAAa,SACb,aACA,kBACA,eAAe,mBACf,aACkB;CAClB,MAAM,iBAAiB;AACrB,MAAI,YACF,QACE,oBAAC;GAAW,SAAQ;GAAQ,MAAM;aAC/B;IACU;AAGjB,MAAI,iBACF,QACE,oBAAC;GAAO,SAAQ;GAAQ,SAAS;aAC9B;IACM;AAGb,SAAO;KACL;AAEJ,QACE,qBAAC;EAAiB;aAChB,qBAAC;GACE;GACD,oBAAC,wBAAY,QAAmB;GAC/B,cACC,oBAAC,8BAAkB,cAA+B,GAChD;MACQ,EACd,oBAAC,0BACC,qBAAC;GAAI,WAAU;cACZ,UAAU,oBAAC;IAAO,SAAS;cAAU;KAAoB,GAAG,MAC5D;IACG,GACO;GACT"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Input.js","names":["Input","WebInput"],"sources":["../../../src/components/atoms/Input.tsx"],"sourcesContent":["import * as React from 'react';\nimport {\n Input as WebInput,\n type InputProps as WebInputProps,\n} from '@contractspec/lib.ui-kit-web/ui/input';\nimport { type KeyboardOptions, mapKeyboardToWeb } from '../../lib/keyboard';\n\ninterface BaseFieldProps {\n // value?: string | number;\n // defaultValue?: string | number;\n // onChange?: (text: string) => void;\n onSubmit?: () => void;\n onFocus?: () => void;\n // onBlur?: () => void;\n placeholder?: string;\n disabled?: boolean;\n readOnly?: boolean;\n maxLength?: number;\n name?: string;\n className?: string;\n keyboard?: KeyboardOptions;\n}\n\nexport type InputProps = Omit<\n WebInputProps,\n 'input' // | 'onChange' | 'value' | 'defaultValue'\n> &\n BaseFieldProps;\n\nexport function Input({\n value,\n defaultValue,\n onChange,\n onSubmit,\n onFocus,\n onBlur,\n placeholder,\n disabled,\n readOnly,\n maxLength,\n name,\n className,\n keyboard,\n ...rest\n}: InputProps) {\n const webKeyboard = mapKeyboardToWeb(keyboard);\n\n return (\n <WebInput\n {...rest}\n className={className}\n value={value}\n defaultValue={defaultValue}\n // onChange={onChange ? (e) => onChange?.(e.target.value) : undefined}\n // onKeyDown={onKeyDown}\n onChange={onChange}\n onFocus={onFocus}\n onBlur={onBlur}\n placeholder={placeholder}\n disabled={disabled}\n readOnly={readOnly}\n maxLength={maxLength}\n name={name}\n {...webKeyboard}\n />\n );\n}\n
|
|
1
|
+
{"version":3,"file":"Input.js","names":["Input","WebInput"],"sources":["../../../src/components/atoms/Input.tsx"],"sourcesContent":["import * as React from 'react';\nimport {\n Input as WebInput,\n type InputProps as WebInputProps,\n} from '@contractspec/lib.ui-kit-web/ui/input';\nimport { type KeyboardOptions, mapKeyboardToWeb } from '../../lib/keyboard';\n\ninterface BaseFieldProps {\n // value?: string | number;\n // defaultValue?: string | number;\n // onChange?: (text: string) => void;\n onSubmit?: () => void;\n onFocus?: () => void;\n // onBlur?: () => void;\n placeholder?: string;\n disabled?: boolean;\n readOnly?: boolean;\n maxLength?: number;\n name?: string;\n className?: string;\n keyboard?: KeyboardOptions;\n}\n\nexport type InputProps = Omit<\n WebInputProps,\n 'input' // | 'onChange' | 'value' | 'defaultValue'\n> &\n BaseFieldProps;\n\nexport function Input({\n value,\n defaultValue,\n onChange,\n onSubmit,\n onFocus,\n onBlur,\n placeholder,\n disabled,\n readOnly,\n maxLength,\n name,\n className,\n keyboard,\n ...rest\n}: InputProps) {\n const webKeyboard = mapKeyboardToWeb(keyboard);\n\n return (\n <WebInput\n {...rest}\n className={className}\n value={value}\n defaultValue={defaultValue}\n // onChange={onChange ? (e) => onChange?.(e.target.value) : undefined}\n // onKeyDown={onKeyDown}\n onChange={onChange}\n onFocus={onFocus}\n onBlur={onBlur}\n placeholder={placeholder}\n disabled={disabled}\n readOnly={readOnly}\n maxLength={maxLength}\n name={name}\n {...webKeyboard}\n />\n );\n}\n"],"mappings":";;;;;;AA6BA,SAAgBA,QAAM,EACpB,OACA,cACA,UACA,UACA,SACA,QACA,aACA,UACA,UACA,WACA,MACA,WACA,UACA,GAAG,QACU;CACb,MAAM,cAAc,iBAAiB,SAAS;AAE9C,QACE,oBAACC;EACC,GAAI;EACO;EACJ;EACO;EAGJ;EACD;EACD;EACK;EACH;EACA;EACC;EACL;EACN,GAAI;GACJ"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Link.js","names":[],"sources":["../../../src/components/atoms/Link.tsx"],"sourcesContent":["import type { AnchorHTMLAttributes } from 'react';\nimport * as React from 'react';\n\nexport type LinkProps = AnchorHTMLAttributes<HTMLAnchorElement>;\n\nexport function Link({ children, ...props }: LinkProps) {\n return <a {...props}>{children}</a>;\n}\n
|
|
1
|
+
{"version":3,"file":"Link.js","names":[],"sources":["../../../src/components/atoms/Link.tsx"],"sourcesContent":["import type { AnchorHTMLAttributes } from 'react';\nimport * as React from 'react';\n\nexport type LinkProps = AnchorHTMLAttributes<HTMLAnchorElement>;\n\nexport function Link({ children, ...props }: LinkProps) {\n return <a {...props}>{children}</a>;\n}\n"],"mappings":";;;;AAKA,SAAgB,KAAK,EAAE,UAAU,GAAG,SAAoB;AACtD,QAAO,oBAAC;EAAE,GAAI;EAAQ;GAAa"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LoaderCircular.js","names":[],"sources":["../../../src/components/atoms/LoaderCircular.tsx"],"sourcesContent":["import * as React from 'react';\nimport { Loader2 } from 'lucide-react';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { cn } from '@contractspec/lib.ui-kit-web/ui/utils';\n\nconst spinnerVariants = cva('animate-spin', {\n variants: {\n size: {\n sm: 'h-4 w-4',\n md: 'h-5 w-5',\n lg: 'h-6 w-6',\n },\n tone: {\n default: 'text-foreground',\n muted: 'text-muted-foreground',\n },\n },\n defaultVariants: { size: 'md', tone: 'muted' },\n});\n\nexport type LoaderCircularProps = React.HTMLAttributes<HTMLDivElement> &\n VariantProps<typeof spinnerVariants> & {\n label?: React.ReactNode;\n };\n\nexport function LoaderCircular({\n size,\n tone,\n label,\n className,\n ...props\n}: LoaderCircularProps) {\n return (\n <div\n className={cn('inline-flex items-center gap-2', className)}\n role=\"status\"\n aria-live=\"polite\"\n aria-busy\n {...props}\n >\n <Loader2 className={cn(spinnerVariants({ size, tone }))} />\n {label ? (\n <span className=\"text-muted-foreground text-base\">{label}</span>\n ) : null}\n </div>\n );\n}\n
|
|
1
|
+
{"version":3,"file":"LoaderCircular.js","names":[],"sources":["../../../src/components/atoms/LoaderCircular.tsx"],"sourcesContent":["import * as React from 'react';\nimport { Loader2 } from 'lucide-react';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { cn } from '@contractspec/lib.ui-kit-web/ui/utils';\n\nconst spinnerVariants = cva('animate-spin', {\n variants: {\n size: {\n sm: 'h-4 w-4',\n md: 'h-5 w-5',\n lg: 'h-6 w-6',\n },\n tone: {\n default: 'text-foreground',\n muted: 'text-muted-foreground',\n },\n },\n defaultVariants: { size: 'md', tone: 'muted' },\n});\n\nexport type LoaderCircularProps = React.HTMLAttributes<HTMLDivElement> &\n VariantProps<typeof spinnerVariants> & {\n label?: React.ReactNode;\n };\n\nexport function LoaderCircular({\n size,\n tone,\n label,\n className,\n ...props\n}: LoaderCircularProps) {\n return (\n <div\n className={cn('inline-flex items-center gap-2', className)}\n role=\"status\"\n aria-live=\"polite\"\n aria-busy\n {...props}\n >\n <Loader2 className={cn(spinnerVariants({ size, tone }))} />\n {label ? (\n <span className=\"text-muted-foreground text-base\">{label}</span>\n ) : null}\n </div>\n );\n}\n"],"mappings":";;;;;;;AAKA,MAAM,kBAAkB,IAAI,gBAAgB;CAC1C,UAAU;EACR,MAAM;GACJ,IAAI;GACJ,IAAI;GACJ,IAAI;GACL;EACD,MAAM;GACJ,SAAS;GACT,OAAO;GACR;EACF;CACD,iBAAiB;EAAE,MAAM;EAAM,MAAM;EAAS;CAC/C,CAAC;AAOF,SAAgB,eAAe,EAC7B,MACA,MACA,OACA,WACA,GAAG,SACmB;AACtB,QACE,qBAAC;EACC,WAAW,GAAG,kCAAkC,UAAU;EAC1D,MAAK;EACL,aAAU;EACV;EACA,GAAI;aAEJ,oBAAC,WAAQ,WAAW,GAAG,gBAAgB;GAAE;GAAM;GAAM,CAAC,CAAC,GAAI,EAC1D,QACC,oBAAC;GAAK,WAAU;aAAmC;IAAa,GAC9D;GACA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ActionForm.js","names":[],"sources":["../../../src/components/forms/ActionForm.tsx"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport { cn } from '@contractspec/lib.ui-kit-web/ui/utils';\n\nexport interface ActionFormProps extends Omit<\n React.FormHTMLAttributes<HTMLFormElement>,\n 'action'\n> {\n action: (formData: FormData) => void | Promise<void>;\n children: React.ReactNode;\n}\n\nexport function ActionForm({\n action,\n children,\n className,\n ...rest\n}: ActionFormProps) {\n return (\n <form action={action} className={cn('space-y-3', className)} {...rest}>\n {children}\n </form>\n );\n}\n
|
|
1
|
+
{"version":3,"file":"ActionForm.js","names":[],"sources":["../../../src/components/forms/ActionForm.tsx"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport { cn } from '@contractspec/lib.ui-kit-web/ui/utils';\n\nexport interface ActionFormProps extends Omit<\n React.FormHTMLAttributes<HTMLFormElement>,\n 'action'\n> {\n action: (formData: FormData) => void | Promise<void>;\n children: React.ReactNode;\n}\n\nexport function ActionForm({\n action,\n children,\n className,\n ...rest\n}: ActionFormProps) {\n return (\n <form action={action} className={cn('space-y-3', className)} {...rest}>\n {children}\n </form>\n );\n}\n"],"mappings":";;;;;;;AAaA,SAAgB,WAAW,EACzB,QACA,UACA,WACA,GAAG,QACe;AAClB,QACE,oBAAC;EAAa;EAAQ,WAAW,GAAG,aAAa,UAAU;EAAE,GAAI;EAC9D;GACI"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LoaderBlock.js","names":[],"sources":["../../../src/components/molecules/LoaderBlock.tsx"],"sourcesContent":["import * as React from 'react';\nimport { cn } from '@contractspec/lib.ui-kit-web/ui/utils';\nimport { LoaderCircular } from '../atoms/LoaderCircular';\n\nexport interface LoaderBlockProps {\n label?: React.ReactNode;\n description?: React.ReactNode;\n className?: string;\n size?: 'sm' | 'md' | 'lg';\n}\n\nexport function LoaderBlock({\n label,\n description,\n className,\n size = 'md',\n}: LoaderBlockProps) {\n return (\n <div className={cn('flex items-center justify-center p-6', className)}>\n <div className=\"inline-flex items-center gap-3\">\n <LoaderCircular size={size} label={label} />\n {description ? (\n <span className=\"text-muted-foreground text-base\">{description}</span>\n ) : null}\n </div>\n </div>\n );\n}\n
|
|
1
|
+
{"version":3,"file":"LoaderBlock.js","names":[],"sources":["../../../src/components/molecules/LoaderBlock.tsx"],"sourcesContent":["import * as React from 'react';\nimport { cn } from '@contractspec/lib.ui-kit-web/ui/utils';\nimport { LoaderCircular } from '../atoms/LoaderCircular';\n\nexport interface LoaderBlockProps {\n label?: React.ReactNode;\n description?: React.ReactNode;\n className?: string;\n size?: 'sm' | 'md' | 'lg';\n}\n\nexport function LoaderBlock({\n label,\n description,\n className,\n size = 'md',\n}: LoaderBlockProps) {\n return (\n <div className={cn('flex items-center justify-center p-6', className)}>\n <div className=\"inline-flex items-center gap-3\">\n <LoaderCircular size={size} label={label} />\n {description ? (\n <span className=\"text-muted-foreground text-base\">{description}</span>\n ) : null}\n </div>\n </div>\n );\n}\n"],"mappings":";;;;;;AAWA,SAAgB,YAAY,EAC1B,OACA,aACA,WACA,OAAO,QACY;AACnB,QACE,oBAAC;EAAI,WAAW,GAAG,wCAAwC,UAAU;YACnE,qBAAC;GAAI,WAAU;cACb,oBAAC;IAAqB;IAAa;KAAS,EAC3C,cACC,oBAAC;IAAK,WAAU;cAAmC;KAAmB,GACpE;IACA;GACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OverviewCard.js","names":[],"sources":["../../../src/components/molecules/OverviewCard.tsx"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport Link from 'next/link';\nimport {\n Dialog,\n DialogContent,\n DialogHeader,\n DialogTitle,\n DialogTrigger,\n} from '@contractspec/lib.ui-kit-web/ui/dialog';\n\ninterface OverviewCardProps {\n title: string;\n summary: string;\n href: string;\n preview?: React.ReactNode;\n ctaLabel: string;\n}\n\nexport function OverviewCard({\n title,\n summary,\n href,\n preview,\n ctaLabel,\n}: OverviewCardProps) {\n return (\n <Dialog>\n <DialogTrigger asChild>\n <button className=\"bg-background/50 hover:bg-accent/40 rounded-md border p-4 text-left shadow-2xs transition\">\n <div className=\"text-lg font-medium\">{title}</div>\n <div className=\"text-foreground/80\">{summary}</div>\n </button>\n </DialogTrigger>\n <DialogContent className=\"max-h-[90vh] max-w-2xl overflow-y-auto sm:max-w-3xl\">\n <DialogHeader>\n <DialogTitle>{title}</DialogTitle>\n </DialogHeader>\n <div className=\"space-y-4\">\n {preview}\n <div>\n <Link\n href={href}\n className=\"bg-primary text-primary-foreground inline-flex rounded-md px-4 py-2\"\n >\n {ctaLabel}\n </Link>\n </div>\n </div>\n </DialogContent>\n </Dialog>\n );\n}\n
|
|
1
|
+
{"version":3,"file":"OverviewCard.js","names":[],"sources":["../../../src/components/molecules/OverviewCard.tsx"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport Link from 'next/link';\nimport {\n Dialog,\n DialogContent,\n DialogHeader,\n DialogTitle,\n DialogTrigger,\n} from '@contractspec/lib.ui-kit-web/ui/dialog';\n\ninterface OverviewCardProps {\n title: string;\n summary: string;\n href: string;\n preview?: React.ReactNode;\n ctaLabel: string;\n}\n\nexport function OverviewCard({\n title,\n summary,\n href,\n preview,\n ctaLabel,\n}: OverviewCardProps) {\n return (\n <Dialog>\n <DialogTrigger asChild>\n <button className=\"bg-background/50 hover:bg-accent/40 rounded-md border p-4 text-left shadow-2xs transition\">\n <div className=\"text-lg font-medium\">{title}</div>\n <div className=\"text-foreground/80\">{summary}</div>\n </button>\n </DialogTrigger>\n <DialogContent className=\"max-h-[90vh] max-w-2xl overflow-y-auto sm:max-w-3xl\">\n <DialogHeader>\n <DialogTitle>{title}</DialogTitle>\n </DialogHeader>\n <div className=\"space-y-4\">\n {preview}\n <div>\n <Link\n href={href}\n className=\"bg-primary text-primary-foreground inline-flex rounded-md px-4 py-2\"\n >\n {ctaLabel}\n </Link>\n </div>\n </div>\n </DialogContent>\n </Dialog>\n );\n}\n"],"mappings":";;;;;;;;AAoBA,SAAgB,aAAa,EAC3B,OACA,SACA,MACA,SACA,YACoB;AACpB,QACE,qBAAC,qBACC,oBAAC;EAAc;YACb,qBAAC;GAAO,WAAU;cAChB,oBAAC;IAAI,WAAU;cAAuB;KAAY,EAClD,oBAAC;IAAI,WAAU;cAAsB;KAAc;IAC5C;GACK,EAChB,qBAAC;EAAc,WAAU;aACvB,oBAAC,0BACC,oBAAC,yBAAa,QAAoB,GACrB,EACf,qBAAC;GAAI,WAAU;cACZ,SACD,oBAAC,mBACC,oBAAC;IACO;IACN,WAAU;cAET;KACI,GACH;IACF;GACQ,IACT"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { SkeletonBlockProps } from "./types.js";
|
|
2
|
-
import * as
|
|
2
|
+
import * as react_jsx_runtime112 from "react/jsx-runtime";
|
|
3
3
|
|
|
4
4
|
//#region src/components/molecules/SkeletonBlock/index.web.d.ts
|
|
5
5
|
declare function SkeletonBlock({
|
|
@@ -7,7 +7,7 @@ declare function SkeletonBlock({
|
|
|
7
7
|
h,
|
|
8
8
|
rounded,
|
|
9
9
|
className
|
|
10
|
-
}: SkeletonBlockProps):
|
|
10
|
+
}: SkeletonBlockProps): react_jsx_runtime112.JSX.Element;
|
|
11
11
|
//#endregion
|
|
12
12
|
export { SkeletonBlock };
|
|
13
13
|
//# sourceMappingURL=index.web.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.web.js","names":[],"sources":["../../../../src/components/molecules/SkeletonBlock/index.web.tsx"],"sourcesContent":["import * as React from 'react';\nimport { Skeleton } from '@contractspec/lib.ui-kit-web/ui/skeleton';\nimport { cn } from '@contractspec/lib.ui-kit-web/ui/utils';\nimport type { SkeletonBlockProps } from './types';\n\nexport function SkeletonBlock({\n w = 'w-full',\n h = 'h-4',\n rounded = 'md',\n className,\n}: SkeletonBlockProps) {\n const radius =\n rounded === 'full'\n ? 'rounded-full'\n : rounded === 'lg'\n ? 'rounded-lg'\n : rounded === 'sm'\n ? 'rounded-xs'\n : 'rounded-md';\n return <Skeleton className={cn(w, h, radius, className)} />;\n}\n
|
|
1
|
+
{"version":3,"file":"index.web.js","names":[],"sources":["../../../../src/components/molecules/SkeletonBlock/index.web.tsx"],"sourcesContent":["import * as React from 'react';\nimport { Skeleton } from '@contractspec/lib.ui-kit-web/ui/skeleton';\nimport { cn } from '@contractspec/lib.ui-kit-web/ui/utils';\nimport type { SkeletonBlockProps } from './types';\n\nexport function SkeletonBlock({\n w = 'w-full',\n h = 'h-4',\n rounded = 'md',\n className,\n}: SkeletonBlockProps) {\n const radius =\n rounded === 'full'\n ? 'rounded-full'\n : rounded === 'lg'\n ? 'rounded-lg'\n : rounded === 'sm'\n ? 'rounded-xs'\n : 'rounded-md';\n return <Skeleton className={cn(w, h, radius, className)} />;\n}\n"],"mappings":";;;;;;AAKA,SAAgB,cAAc,EAC5B,IAAI,UACJ,IAAI,OACJ,UAAU,MACV,aACqB;AASrB,QAAO,oBAAC,YAAS,WAAW,GAAG,GAAG,GAPhC,YAAY,SACR,iBACA,YAAY,OACV,eACA,YAAY,OACV,eACA,cACmC,UAAU,GAAI"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.web.js","names":[],"sources":["../../../../src/components/molecules/SkeletonCircle/index.web.tsx"],"sourcesContent":["import * as React from 'react';\nimport { Skeleton } from '@contractspec/lib.ui-kit-web/ui/skeleton';\nimport type { SkeletonCircleProps } from './types';\n\nexport function SkeletonCircle({\n size = 32,\n sizeClass,\n className,\n}: SkeletonCircleProps) {\n const classes = ['rounded-full', sizeClass || undefined, className]\n .filter(Boolean)\n .join(' ');\n return sizeClass ? (\n <Skeleton className={classes} />\n ) : (\n <Skeleton className={classes} style={{ width: size, height: size }} />\n );\n}\n
|
|
1
|
+
{"version":3,"file":"index.web.js","names":[],"sources":["../../../../src/components/molecules/SkeletonCircle/index.web.tsx"],"sourcesContent":["import * as React from 'react';\nimport { Skeleton } from '@contractspec/lib.ui-kit-web/ui/skeleton';\nimport type { SkeletonCircleProps } from './types';\n\nexport function SkeletonCircle({\n size = 32,\n sizeClass,\n className,\n}: SkeletonCircleProps) {\n const classes = ['rounded-full', sizeClass || undefined, className]\n .filter(Boolean)\n .join(' ');\n return sizeClass ? (\n <Skeleton className={classes} />\n ) : (\n <Skeleton className={classes} style={{ width: size, height: size }} />\n );\n}\n"],"mappings":";;;;;AAIA,SAAgB,eAAe,EAC7B,OAAO,IACP,WACA,aACsB;CACtB,MAAM,UAAU;EAAC;EAAgB,aAAa;EAAW;EAAU,CAChE,OAAO,QAAQ,CACf,KAAK,IAAI;AACZ,QAAO,YACL,oBAAC,YAAS,WAAW,UAAW,GAEhC,oBAAC;EAAS,WAAW;EAAS,OAAO;GAAE,OAAO;GAAM,QAAQ;GAAM;GAAI"}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { SkeletonListProps } from "./types.js";
|
|
2
|
-
import * as
|
|
2
|
+
import * as react_jsx_runtime113 from "react/jsx-runtime";
|
|
3
3
|
|
|
4
4
|
//#region src/components/molecules/SkeletonList/index.web.d.ts
|
|
5
5
|
declare function SkeletonList({
|
|
6
6
|
count,
|
|
7
7
|
className
|
|
8
|
-
}: SkeletonListProps):
|
|
8
|
+
}: SkeletonListProps): react_jsx_runtime113.JSX.Element;
|
|
9
9
|
//#endregion
|
|
10
10
|
export { SkeletonList };
|
|
11
11
|
//# sourceMappingURL=index.web.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.web.d.ts","names":[],"sources":["../../../../src/components/molecules/SkeletonList/index.web.tsx"],"sourcesContent":[],"mappings":";;;;
|
|
1
|
+
{"version":3,"file":"index.web.d.ts","names":[],"sources":["../../../../src/components/molecules/SkeletonList/index.web.tsx"],"sourcesContent":[],"mappings":";;;;iBAGgB,YAAA;;;GAAwC,oBAAiB,oBAAA,CAAA,GAAA,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.web.js","names":["SkeletonList","UISkeletonList"],"sources":["../../../../src/components/molecules/SkeletonList/index.web.tsx"],"sourcesContent":["import
|
|
1
|
+
{"version":3,"file":"index.web.js","names":["SkeletonList","UISkeletonList"],"sources":["../../../../src/components/molecules/SkeletonList/index.web.tsx"],"sourcesContent":["import { SkeletonList as UISkeletonList } from '@contractspec/lib.ui-kit-web/ui/molecules/SkeletonList';\nimport type { SkeletonListProps } from './types';\n\nexport function SkeletonList({ count = 10, className }: SkeletonListProps) {\n return <UISkeletonList count={count} className={className} />;\n}\n"],"mappings":";;;;AAGA,SAAgBA,eAAa,EAAE,QAAQ,IAAI,aAAgC;AACzE,QAAO,oBAACC;EAAsB;EAAkB;GAAa"}
|
|
@@ -8,6 +8,7 @@ import * as react_jsx_runtime27 from "react/jsx-runtime";
|
|
|
8
8
|
interface MarketingHeaderProps {
|
|
9
9
|
logo: React.ReactNode;
|
|
10
10
|
nav?: HeaderNavItem[];
|
|
11
|
+
navLinkClassName?: string;
|
|
11
12
|
userMenu?: {
|
|
12
13
|
name?: string;
|
|
13
14
|
email?: string;
|
|
@@ -24,6 +25,7 @@ interface MarketingHeaderProps {
|
|
|
24
25
|
declare function MarketingHeader({
|
|
25
26
|
logo,
|
|
26
27
|
nav,
|
|
28
|
+
navLinkClassName,
|
|
27
29
|
userMenu,
|
|
28
30
|
cta,
|
|
29
31
|
className,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MarketingHeader.d.ts","names":[],"sources":["../../../src/components/organisms/MarketingHeader.tsx"],"sourcesContent":[],"mappings":";;;;;;;UAsCiB,oBAAA;QACT,KAAA,CAAM;QACN;EAFS,
|
|
1
|
+
{"version":3,"file":"MarketingHeader.d.ts","names":[],"sources":["../../../src/components/organisms/MarketingHeader.tsx"],"sourcesContent":[],"mappings":";;;;;;;UAsCiB,oBAAA;QACT,KAAA,CAAM;QACN;EAFS,gBAAA,CAAA,EAAA,MAAoB;EAC7B,QAAM,CAAA,EAAA;IACN,IAAA,CAAA,EAAA,MAAA;IAMG,KAAA,CAAA,EAAA,MAAA;IAEH,QAAA,CAAA,EAAA,MAAA;IAGQ,KAAA,EALL,YAKK,EAAA;EACoC,CAAA;EAA5B,GAAM,CAAA,EAJtB,SAIsB;EACX,SAAA,CAAA,EAAA,MAAA;EAAe,OAAA,CAAA,EAAA,SAAA,GAAA,aAAA;EAalB,KAAA,CAAA,EAfN,KAAA,CAAM,SAee;EAC7B,oBAAA,EAfsB,KAAA,CAAM,cAe5B,CAAA,OAfkD,cAelD,CAAA,CAAA,QAAA,CAAA;EACA,eAAA,EAfiB,eAejB;;AAEA,iBAJc,eAAA,CAId;EAAA,IAAA;EAAA,GAAA;EAAA,gBAAA;EAAA,QAAA;EAAA,GAAA;EAAA,SAAA;EAAA,OAAA;EAAA,KAAA;EAAA,oBAAA;EAAA;AAAA,CAAA,EAOC,oBAPD,CAAA,EAOqB,mBAAA,CAAA,GAAA,CAAA,OAPrB"}
|
|
@@ -27,7 +27,7 @@ const headerVariants = cva("flex items-center justify-between gap-4", {
|
|
|
27
27
|
} },
|
|
28
28
|
defaultVariants: { density: "comfortable" }
|
|
29
29
|
});
|
|
30
|
-
function MarketingHeader({ logo, nav = [], userMenu, cta, className, density, right, commandPaletteGroups, langSwitchProps }) {
|
|
30
|
+
function MarketingHeader({ logo, nav = [], navLinkClassName, userMenu, cta, className, density, right, commandPaletteGroups, langSwitchProps }) {
|
|
31
31
|
const [open, setOpen] = React.useState(false);
|
|
32
32
|
return /* @__PURE__ */ jsx(HStack, {
|
|
33
33
|
as: "header",
|
|
@@ -76,7 +76,10 @@ function MarketingHeader({ logo, nav = [], userMenu, cta, className, density, ri
|
|
|
76
76
|
className: "h-6"
|
|
77
77
|
}), /* @__PURE__ */ jsx(NavigationMenu, {
|
|
78
78
|
className: "hidden md:flex",
|
|
79
|
-
children: /* @__PURE__ */ jsx(NavigationMenuList, { children: nav.map((item) => /* @__PURE__ */ jsx(NavigationMenuItem, { children: item.items && item.items.length > 0 ? /* @__PURE__ */ jsxs(Fragment, { children: [/* @__PURE__ */ jsx(NavigationMenuTrigger, {
|
|
79
|
+
children: /* @__PURE__ */ jsx(NavigationMenuList, { children: nav.map((item) => /* @__PURE__ */ jsx(NavigationMenuItem, { children: item.items && item.items.length > 0 ? /* @__PURE__ */ jsxs(Fragment, { children: [/* @__PURE__ */ jsx(NavigationMenuTrigger, {
|
|
80
|
+
className: navLinkClassName,
|
|
81
|
+
children: item.label
|
|
82
|
+
}), /* @__PURE__ */ jsx(NavigationMenuContent, { children: /* @__PURE__ */ jsx("div", {
|
|
80
83
|
className: "grid w-[760px] grid-cols-3 gap-3 p-3",
|
|
81
84
|
children: item.items.map((link) => /* @__PURE__ */ jsx(NavItemCard, { item: link }, link.href))
|
|
82
85
|
}) })] }) : /* @__PURE__ */ jsx(NavigationMenuLink, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MarketingHeader.js","names":["Nav","NavList","NavItem","NavTrigger","NavContent","NavLink"],"sources":["../../../src/components/organisms/MarketingHeader.tsx"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport { cn } from '@contractspec/lib.ui-kit-web/ui/utils';\nimport { Button } from '../atoms/Button';\nimport { ButtonLink } from '../atoms/ButtonLink';\nimport {\n NavigationMenu as Nav,\n NavigationMenuContent as NavContent,\n NavigationMenuItem as NavItem,\n NavigationMenuLink as NavLink,\n NavigationMenuList as NavList,\n NavigationMenuTrigger as NavTrigger,\n} from '@contractspec/lib.ui-kit-web/ui/navigation-menu';\nimport { Separator } from '@contractspec/lib.ui-kit-web/ui/separator';\nimport {\n Sheet,\n SheetContent,\n SheetHeader,\n SheetTrigger,\n} from '@contractspec/lib.ui-kit-web/ui/sheet';\nimport { Menu } from 'lucide-react';\nimport { MobileNavMenu } from '../molecules/MobileNavMenu';\nimport { CommandSearchTrigger } from '../molecules/CommandSearchTrigger';\nimport { LangSwitchDropdown } from '../molecules/LangSwitchDropdown';\nimport type {\n CtaAction,\n HeaderNavItem,\n UserMenuItem,\n} from '../../types/navigation';\nimport { NavUser } from '../molecules/NavUser';\nimport { cva } from 'class-variance-authority';\nimport { NavItemCard } from '../molecules/NavItemCard';\nimport { Box, HStack, VStack } from '@contractspec/lib.ui-kit-web/ui/stack';\nimport { CommandPalette } from '../molecules/CommandPalette';\nimport type { LangSwitchProps } from '../molecules/LangSwitch';\nimport { Text } from '@contractspec/lib.ui-kit-web/ui/text';\n\nexport interface MarketingHeaderProps {\n logo: React.ReactNode;\n nav?: HeaderNavItem[];\n userMenu?: {\n name?: string;\n email?: string;\n imageUrl?: string;\n items: UserMenuItem[];\n };\n cta?: CtaAction;\n className?: string;\n density?: 'compact' | 'comfortable';\n right?: React.ReactNode; // e.g. AI link button, extra actions\n commandPaletteGroups: React.ComponentProps<typeof CommandPalette>['groups'];\n langSwitchProps: LangSwitchProps;\n}\n\nconst headerVariants = cva('flex items-center justify-between gap-4', {\n variants: {\n density: {\n compact: 'px-3 py-2',\n comfortable: 'px-4 py-3',\n },\n },\n defaultVariants: { density: 'comfortable' },\n});\n\nexport function MarketingHeader({\n logo,\n nav = [],\n userMenu,\n cta,\n className,\n density,\n right,\n commandPaletteGroups,\n langSwitchProps,\n}: MarketingHeaderProps) {\n const [open, setOpen] = React.useState(false);\n return (\n <HStack\n as=\"header\"\n className={cn(\n 'bg-background/95 supports-backdrop-filter:bg-background/60 sticky top-0 z-50 w-full border-b backdrop-blur-xs',\n className\n )}\n >\n <HStack\n className={cn(\n 'mx-auto w-full max-w-7xl items-center justify-center',\n headerVariants({ density })\n )}\n >\n {/* Mobile: compact left cluster */}\n <VStack className=\"flex items-center gap-2 md:hidden\">\n {/* Menu trigger (sheet) */}\n <Sheet open={open} onOpenChange={setOpen}>\n <SheetTrigger asChild>\n <Button variant=\"ghost\" size=\"icon\" aria-label=\"Open menu\">\n <Menu className=\"h-5 w-5\" />\n </Button>\n </SheetTrigger>\n\n <SheetContent side=\"left\" className=\"w-[320px] p-4\">\n {!!commandPaletteGroups?.length && (\n <SheetHeader>\n <CommandSearchTrigger groups={commandPaletteGroups} />\n {/*<SheetTitle>Menu</SheetTitle>*/}\n </SheetHeader>\n )}\n\n {cta && (\n <VStack className=\"mb-3\">\n <ButtonLink\n variant={cta.variant}\n size={cta.size}\n href={cta.href}\n onClick={cta.onClick}\n >\n <Text>{cta.label}</Text>\n </ButtonLink>\n </VStack>\n )}\n\n <MobileNavMenu items={nav} />\n </SheetContent>\n </Sheet>\n </VStack>\n\n {logo}\n\n {/* Desktop navigation */}\n <HStack className=\"hidden items-center gap-4 md:flex\">\n {nav.length > 0 && (\n <>\n <Separator orientation=\"vertical\" className=\"h-6\" />\n <Nav className=\"hidden md:flex\">\n <NavList>\n {nav.map((item) => (\n <NavItem key={String(item.key ?? item.href ?? item.label)}>\n {item.items && item.items.length > 0 ? (\n <>\n <NavTrigger
|
|
1
|
+
{"version":3,"file":"MarketingHeader.js","names":["Nav","NavList","NavItem","NavTrigger","NavContent","NavLink"],"sources":["../../../src/components/organisms/MarketingHeader.tsx"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport { cn } from '@contractspec/lib.ui-kit-web/ui/utils';\nimport { Button } from '../atoms/Button';\nimport { ButtonLink } from '../atoms/ButtonLink';\nimport {\n NavigationMenu as Nav,\n NavigationMenuContent as NavContent,\n NavigationMenuItem as NavItem,\n NavigationMenuLink as NavLink,\n NavigationMenuList as NavList,\n NavigationMenuTrigger as NavTrigger,\n} from '@contractspec/lib.ui-kit-web/ui/navigation-menu';\nimport { Separator } from '@contractspec/lib.ui-kit-web/ui/separator';\nimport {\n Sheet,\n SheetContent,\n SheetHeader,\n SheetTrigger,\n} from '@contractspec/lib.ui-kit-web/ui/sheet';\nimport { Menu } from 'lucide-react';\nimport { MobileNavMenu } from '../molecules/MobileNavMenu';\nimport { CommandSearchTrigger } from '../molecules/CommandSearchTrigger';\nimport { LangSwitchDropdown } from '../molecules/LangSwitchDropdown';\nimport type {\n CtaAction,\n HeaderNavItem,\n UserMenuItem,\n} from '../../types/navigation';\nimport { NavUser } from '../molecules/NavUser';\nimport { cva } from 'class-variance-authority';\nimport { NavItemCard } from '../molecules/NavItemCard';\nimport { Box, HStack, VStack } from '@contractspec/lib.ui-kit-web/ui/stack';\nimport { CommandPalette } from '../molecules/CommandPalette';\nimport type { LangSwitchProps } from '../molecules/LangSwitch';\nimport { Text } from '@contractspec/lib.ui-kit-web/ui/text';\n\nexport interface MarketingHeaderProps {\n logo: React.ReactNode;\n nav?: HeaderNavItem[];\n navLinkClassName?: string;\n userMenu?: {\n name?: string;\n email?: string;\n imageUrl?: string;\n items: UserMenuItem[];\n };\n cta?: CtaAction;\n className?: string;\n density?: 'compact' | 'comfortable';\n right?: React.ReactNode; // e.g. AI link button, extra actions\n commandPaletteGroups: React.ComponentProps<typeof CommandPalette>['groups'];\n langSwitchProps: LangSwitchProps;\n}\n\nconst headerVariants = cva('flex items-center justify-between gap-4', {\n variants: {\n density: {\n compact: 'px-3 py-2',\n comfortable: 'px-4 py-3',\n },\n },\n defaultVariants: { density: 'comfortable' },\n});\n\nexport function MarketingHeader({\n logo,\n nav = [],\n navLinkClassName,\n userMenu,\n cta,\n className,\n density,\n right,\n commandPaletteGroups,\n langSwitchProps,\n}: MarketingHeaderProps) {\n const [open, setOpen] = React.useState(false);\n return (\n <HStack\n as=\"header\"\n className={cn(\n 'bg-background/95 supports-backdrop-filter:bg-background/60 sticky top-0 z-50 w-full border-b backdrop-blur-xs',\n className\n )}\n >\n <HStack\n className={cn(\n 'mx-auto w-full max-w-7xl items-center justify-center',\n headerVariants({ density })\n )}\n >\n {/* Mobile: compact left cluster */}\n <VStack className=\"flex items-center gap-2 md:hidden\">\n {/* Menu trigger (sheet) */}\n <Sheet open={open} onOpenChange={setOpen}>\n <SheetTrigger asChild>\n <Button variant=\"ghost\" size=\"icon\" aria-label=\"Open menu\">\n <Menu className=\"h-5 w-5\" />\n </Button>\n </SheetTrigger>\n\n <SheetContent side=\"left\" className=\"w-[320px] p-4\">\n {!!commandPaletteGroups?.length && (\n <SheetHeader>\n <CommandSearchTrigger groups={commandPaletteGroups} />\n {/*<SheetTitle>Menu</SheetTitle>*/}\n </SheetHeader>\n )}\n\n {cta && (\n <VStack className=\"mb-3\">\n <ButtonLink\n variant={cta.variant}\n size={cta.size}\n href={cta.href}\n onClick={cta.onClick}\n >\n <Text>{cta.label}</Text>\n </ButtonLink>\n </VStack>\n )}\n\n <MobileNavMenu items={nav} />\n </SheetContent>\n </Sheet>\n </VStack>\n\n {logo}\n\n {/* Desktop navigation */}\n <HStack className=\"hidden items-center gap-4 md:flex\">\n {nav.length > 0 && (\n <>\n <Separator orientation=\"vertical\" className=\"h-6\" />\n <Nav className=\"hidden md:flex\">\n <NavList>\n {nav.map((item) => (\n <NavItem key={String(item.key ?? item.href ?? item.label)}>\n {item.items && item.items.length > 0 ? (\n <>\n <NavTrigger className={navLinkClassName}>\n {item.label}\n </NavTrigger>\n <NavContent>\n <div className=\"grid w-[760px] grid-cols-3 gap-3 p-3\">\n {item.items.map((link) => (\n <NavItemCard key={link.href} item={link} />\n ))}\n </div>\n </NavContent>\n </>\n ) : (\n <NavLink href={item.href || '#'}>{item.label}</NavLink>\n )}\n </NavItem>\n ))}\n </NavList>\n </Nav>\n </>\n )}\n </HStack>\n\n <HStack className=\"flex items-center gap-2\">\n {/* Desktop: show search trigger and custom right slot */}\n {!!commandPaletteGroups?.length && (\n <Box className=\"hidden items-center gap-2 md:flex\">\n <CommandSearchTrigger groups={commandPaletteGroups} />\n </Box>\n )}\n\n {!!(langSwitchProps?.options?.length > 1) && (\n <LangSwitchDropdown\n value={langSwitchProps.value}\n onChange={langSwitchProps.onChange}\n options={langSwitchProps.options}\n />\n )}\n\n {right && <Box className=\"hidden md:flex\">{right}</Box>}\n\n {cta && (\n <Box className=\"hidden md:flex\">\n <ButtonLink\n variant={cta.variant}\n size={cta.size}\n href={cta.href}\n onClick={cta.onClick}\n >\n <Text>{cta.label}</Text>\n </ButtonLink>\n </Box>\n )}\n\n {userMenu && <NavUser {...userMenu} />}\n </HStack>\n </HStack>\n </HStack>\n );\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAwDA,MAAM,iBAAiB,IAAI,2CAA2C;CACpE,UAAU,EACR,SAAS;EACP,SAAS;EACT,aAAa;EACd,EACF;CACD,iBAAiB,EAAE,SAAS,eAAe;CAC5C,CAAC;AAEF,SAAgB,gBAAgB,EAC9B,MACA,MAAM,EAAE,EACR,kBACA,UACA,KACA,WACA,SACA,OACA,sBACA,mBACuB;CACvB,MAAM,CAAC,MAAM,WAAW,MAAM,SAAS,MAAM;AAC7C,QACE,oBAAC;EACC,IAAG;EACH,WAAW,GACT,iHACA,UACD;YAED,qBAAC;GACC,WAAW,GACT,wDACA,eAAe,EAAE,SAAS,CAAC,CAC5B;;IAGD,oBAAC;KAAO,WAAU;eAEhB,qBAAC;MAAY;MAAM,cAAc;iBAC/B,oBAAC;OAAa;iBACZ,oBAAC;QAAO,SAAQ;QAAQ,MAAK;QAAO,cAAW;kBAC7C,oBAAC,QAAK,WAAU,YAAY;SACrB;QACI,EAEf,qBAAC;OAAa,MAAK;OAAO,WAAU;;QACjC,CAAC,CAAC,sBAAsB,UACvB,oBAAC,yBACC,oBAAC,wBAAqB,QAAQ,uBAAwB,GAE1C;QAGf,OACC,oBAAC;SAAO,WAAU;mBAChB,oBAAC;UACC,SAAS,IAAI;UACb,MAAM,IAAI;UACV,MAAM,IAAI;UACV,SAAS,IAAI;oBAEb,oBAAC,kBAAM,IAAI,QAAa;WACb;UACN;QAGX,oBAAC,iBAAc,OAAO,MAAO;;QAChB;OACT;MACD;IAER;IAGD,oBAAC;KAAO,WAAU;eACf,IAAI,SAAS,KACZ,4CACE,oBAAC;MAAU,aAAY;MAAW,WAAU;OAAQ,EACpD,oBAACA;MAAI,WAAU;gBACb,oBAACC,gCACE,IAAI,KAAK,SACR,oBAACC,gCACE,KAAK,SAAS,KAAK,MAAM,SAAS,IACjC,4CACE,oBAACC;OAAW,WAAW;iBACpB,KAAK;QACK,EACb,oBAACC,mCACC,oBAAC;OAAI,WAAU;iBACZ,KAAK,MAAM,KAAK,SACf,oBAAC,eAA4B,MAAM,QAAjB,KAAK,KAAoB,CAC3C;QACE,GACK,IACZ,GAEH,oBAACC;OAAQ,MAAM,KAAK,QAAQ;iBAAM,KAAK;QAAgB,IAf7C,OAAO,KAAK,OAAO,KAAK,QAAQ,KAAK,MAAM,CAiB/C,CACV,GACM;OACN,IACL;MAEE;IAET,qBAAC;KAAO,WAAU;;MAEf,CAAC,CAAC,sBAAsB,UACvB,oBAAC;OAAI,WAAU;iBACb,oBAAC,wBAAqB,QAAQ,uBAAwB;QAClD;MAGP,CAAC,EAAE,iBAAiB,SAAS,SAAS,MACrC,oBAAC;OACC,OAAO,gBAAgB;OACvB,UAAU,gBAAgB;OAC1B,SAAS,gBAAgB;QACzB;MAGH,SAAS,oBAAC;OAAI,WAAU;iBAAkB;QAAY;MAEtD,OACC,oBAAC;OAAI,WAAU;iBACb,oBAAC;QACC,SAAS,IAAI;QACb,MAAM,IAAI;QACV,MAAM,IAAI;QACV,SAAS,IAAI;kBAEb,oBAAC,kBAAM,IAAI,QAAa;SACb;QACT;MAGP,YAAY,oBAAC,WAAQ,GAAI,WAAY;;MAC/B;;IACF;GACF"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { ListPageTemplateProps } from "./types.js";
|
|
2
|
-
import * as
|
|
2
|
+
import * as react_jsx_runtime110 from "react/jsx-runtime";
|
|
3
3
|
|
|
4
4
|
//#region src/components/templates/lists/ListPageTemplate/index.web.d.ts
|
|
5
5
|
declare function ListPageTemplate<T = unknown>({
|
|
@@ -17,7 +17,7 @@ declare function ListPageTemplate<T = unknown>({
|
|
|
17
17
|
data,
|
|
18
18
|
renderItem,
|
|
19
19
|
emptyProps
|
|
20
|
-
}: ListPageTemplateProps<T>):
|
|
20
|
+
}: ListPageTemplateProps<T>): react_jsx_runtime110.JSX.Element;
|
|
21
21
|
//#endregion
|
|
22
22
|
export { ListPageTemplate };
|
|
23
23
|
//# sourceMappingURL=index.web.d.ts.map
|
package/dist/index.js
CHANGED
|
@@ -4,7 +4,7 @@ import { Input } from "./components/atoms/Input.js";
|
|
|
4
4
|
import { Textarea } from "./components/atoms/Textarea.js";
|
|
5
5
|
import { formRenderer } from "./renderers/form-contract.js";
|
|
6
6
|
import "./renderers/index.js";
|
|
7
|
-
import
|
|
7
|
+
import { ButtonLink } from "./components/atoms/ButtonLink.js";
|
|
8
8
|
import { Cta } from "./components/atoms/Cta.js";
|
|
9
9
|
import { Link } from "./components/atoms/Link.js";
|
|
10
10
|
import { EmptyState } from "./components/atoms/EmptyState.js";
|
|
@@ -118,5 +118,5 @@ import { DataViewRenderer } from "./components/data-view/DataViewRenderer.js";
|
|
|
118
118
|
init_HoverPreview();
|
|
119
119
|
|
|
120
120
|
//#endregion
|
|
121
|
-
export { AcademyLayout, ActionForm, AgentMonitor, AiLinkButton, AppHeader, AppLayout, AppSidebar, ApprovalQueue, Breadcrumbs, Button,
|
|
121
|
+
export { AcademyLayout, ActionForm, AgentMonitor, AiLinkButton, AppHeader, AppLayout, AppSidebar, ApprovalQueue, Breadcrumbs, Button, ButtonLink, CommandPalette, CommandSearchTrigger, ConsentItem, ConsentList, ContactFields, ContactForm, ContactTemplate, CookiesTemplate, Cta, DEFAULT_BREAKPOINTS, DataViewDetail, DataViewList, DataViewRenderer, DataViewTable, DateChip, DefinitionList, DeleteButton, DesktopHeader, DurationChip, EditButton, EmptyDataList, EmptySearchResult, EmptyState, EntityCard, ErrorState, FAQSection, FeatureCarousel, FeaturesSection, FiltersToolbar, Footer, FormCardLayout, FormDialog, FormGrid, FormOneByOneLayout, FormRow, FormSection, FormStepsLayout, GDPRDataRequest, GDPRRights, Header, HeroResponsive, HeroSection, HoverPreview, HoverPreviewDoc, HoverPreviewMedia, HoverPreviewSimple, HoverPreviewStats, HoverPreviewUser, Input, KeyValueList, LangSwitch, LegalCallout, LegalHeading, LegalList, LegalMeta, LegalPageLayout, LegalSection, LegalTOC, LegalText, Link, ListCardPage, ListGridPage, ListPageResponsive, ListPageTemplate, ListTablePage, LoaderBlock, LoaderCircular, MarketingCard, CardContent as MarketingCardContent, CardDescription as MarketingCardDescription, CardHeader as MarketingCardHeader, CardTitle as MarketingCardTitle, MarketingCardsSection, MarketingComparisonSection, MarketingHeader, MarketingHeaderDesktop, MarketingHeaderMobile, MarketingIconCard, MarketingLayout, MarketingSection, MarketingStepCard, MobileHeader, NavBrand, NavMain, NavUser, OverviewCard, PageHeaderResponsive, PlaceChip, PricingCarousel, PricingSection, PrivacyTemplate, SalesTermsTemplate, SkeletonBlock, SkeletonCircle, SkeletonList, StatCard, StatCardGroup, StatusChip, Stepper, TermsTemplate, TestimonialCarousel, Textarea, TimeChip, ToggleButton, ToggleLeftButton, ToggleRightButton, ViewButton, ZodForm, defaultTokens, dsBaseVariants, formRenderer, mapTokensForPlatform, useColorScheme, useListUrlState, useReducedMotion, useResponsive, withPlatformUI };
|
|
122
122
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":[],"sources":["../src/index.ts"],"sourcesContent":["export * from './types/navigation';\n\n// Atoms\nexport * from './renderers';\nexport { Cta } from './components/atoms/Cta';\nexport { Button } from './components/atoms/Button';\nexport {
|
|
1
|
+
{"version":3,"file":"index.js","names":[],"sources":["../src/index.ts"],"sourcesContent":["export * from './types/navigation';\n\n// Atoms\nexport * from './renderers';\nexport { Cta } from './components/atoms/Cta';\nexport { Button } from './components/atoms/Button';\nexport { ButtonLink } from './components/atoms/ButtonLink';\nexport { Link } from './components/atoms/Link';\nexport { Input } from './components/atoms/Input';\nexport { Textarea } from './components/atoms/Textarea';\nexport { EmptyState } from './components/atoms/EmptyState';\n// export { ErrorState } from './components/atoms/ErrorState';\nexport { Stepper } from './components/atoms/Stepper';\nexport {\n EditButton,\n DeleteButton,\n ViewButton,\n ToggleButton,\n ToggleLeftButton,\n ToggleRightButton,\n} from './components/atoms/ActionButtons';\nexport {\n DateChip,\n TimeChip,\n PlaceChip,\n DurationChip,\n} from './components/atoms/DataChips';\n\n// Molecules\nexport { NavMain } from './components/molecules/NavMain';\nexport { NavUser } from './components/molecules/NavUser';\nexport { ApprovalQueue } from './components/agent/ApprovalQueue';\nexport { AgentMonitor } from './components/agent/AgentMonitor';\n\n// Organisms\nexport { AppSidebar } from './components/organisms/AppSidebar';\nexport {\n Header,\n DesktopHeader,\n MobileHeader,\n} from './components/organisms/Header';\nexport { Footer } from './components/organisms/Footer';\nexport { FeatureCarousel } from './components/organisms/FeatureCarousel';\nexport { MarketingHeader } from './components/organisms/MarketingHeader';\nexport { MarketingHeaderDesktop } from './components/organisms/MarketingHeaderDesktop';\nexport { MarketingHeaderMobile } from './components/organisms/MarketingHeaderMobile';\nexport { MarketingLayout } from './components/organisms/MarketingLayout';\nexport {\n MarketingSection,\n type MarketingSectionTone,\n type MarketingSectionPadding,\n} from './components/marketing/MarketingSection';\nexport { MarketingCardsSection } from './components/marketing/MarketingCardsSection';\nexport {\n MarketingCard,\n MarketingCardContent,\n MarketingCardDescription,\n MarketingCardHeader,\n MarketingCardTitle,\n type MarketingCardTone,\n} from './components/marketing/MarketingCard';\nexport { MarketingIconCard } from './components/marketing/MarketingIconCard';\nexport { MarketingStepCard } from './components/marketing/MarketingStepCard';\nexport { MarketingComparisonSection } from './components/marketing/MarketingComparisonSection';\nexport { AppLayout } from './components/organisms/AppLayout';\nexport { AcademyLayout } from './components/organisms/AcademyLayout';\nexport { AppHeader } from './components/organisms/AppHeader';\n// export { AppHeader as AppHeaderMobile } from './components/organisms/AppHeader.mobile';\n// export { BottomTabs } from './components/native/BottomTabs.mobile';\n// export { SheetMenu } from './components/native/SheetMenu.mobile';\nexport { CommandPalette } from './components/molecules/CommandPalette';\nexport { LangSwitch } from './components/molecules/LangSwitch';\nexport { NavBrand } from './components/atoms/NavBrand';\nexport { Breadcrumbs } from './components/molecules/Breadcrumbs';\nexport { CommandSearchTrigger } from './components/molecules/CommandSearchTrigger';\nexport { StatusChip } from './components/molecules/StatusChip';\nexport { EntityCard } from './components/molecules/EntityCard';\nexport { StatCard, StatCardGroup } from './components/molecules/StatCard';\nexport { OverviewCard } from './components/molecules/OverviewCard';\nexport { HoverPreview } from './components/molecules/HoverPreview';\nexport { HoverPreviewSimple } from './components/molecules/hover-previews/Simple';\nexport { HoverPreviewMedia } from './components/molecules/hover-previews/Media';\nexport { HoverPreviewDoc } from './components/molecules/hover-previews/Doc';\nexport { HoverPreviewUser } from './components/molecules/hover-previews/User';\nexport { HoverPreviewStats } from './components/molecules/hover-previews/Stats';\nexport { PricingCarousel } from './components/organisms/PricingCarousel';\nexport { TestimonialCarousel } from './components/organisms/TestimonialCarousel';\nexport { HeroSection } from './components/organisms/HeroSection';\nexport { HeroResponsive } from './components/organisms/HeroResponsive';\nexport { FeaturesSection } from './components/organisms/FeaturesSection';\nexport { PageHeaderResponsive } from './components/organisms/PageHeaderResponsive';\nexport { PricingSection } from './components/organisms/PricingSection';\nexport { FAQSection } from './components/organisms/FAQSection';\nexport { ListPageResponsive } from './components/organisms/ListPageResponsive';\nexport { ListGridPage } from './components/organisms/ListGridPage';\nexport { ListCardPage } from './components/organisms/ListCardPage';\nexport { ListTablePage } from './components/organisms/ListTablePage';\nexport { FiltersToolbar } from './components/molecules/FiltersToolbar';\nexport { ListPageTemplate } from './components/templates/lists/ListPageTemplate';\nexport { AiLinkButton } from './components/molecules/AiLinkButton';\nexport { EmptyDataList } from './components/organisms/EmptyDataList';\nexport { EmptySearchResult } from './components/organisms/EmptySearchResult';\n// Loaders & Skeletons\nexport { LoaderCircular } from './components/atoms/LoaderCircular';\nexport { LoaderBlock } from './components/molecules/LoaderBlock';\nexport { SkeletonBlock } from './components/molecules/SkeletonBlock';\nexport { SkeletonCircle } from './components/molecules/SkeletonCircle';\nexport { SkeletonList } from './components/molecules/SkeletonList';\nexport { ErrorState } from './components/atoms/ErrorState';\n// export {\n// DropdownMenu,\n// DropdownMenuPortal,\n// DropdownMenuTrigger,\n// DropdownMenuContent,\n// DropdownMenuGroup,\n// DropdownMenuLabel,\n// DropdownMenuItem,\n// DropdownMenuCheckboxItem,\n// DropdownMenuRadioGroup,\n// DropdownMenuRadioItem,\n// DropdownMenuSeparator,\n// DropdownMenuShortcut,\n// DropdownMenuSub,\n// DropdownMenuSubTrigger,\n// DropdownMenuSubContent,\n// } from './components/molecules/DropdownMenu';\nexport { useListUrlState } from './hooks/useListUrlState';\n\n// Legal components\nexport { LegalHeading } from './components/legal/atoms/LegalHeading';\nexport { LegalText } from './components/legal/atoms/LegalText';\nexport { LegalSection } from './components/legal/atoms/LegalSection';\nexport { DefinitionList } from './components/legal/atoms/DefinitionList';\nexport { KeyValueList } from './components/legal/atoms/KeyValueList';\nexport { LegalList } from './components/legal/atoms/LegalList';\nexport { LegalCallout } from './components/legal/atoms/LegalCallout';\nexport { LegalTOC } from './components/legal/molecules/LegalTOC';\nexport { LegalMeta } from './components/legal/molecules/LegalMeta';\nexport { ConsentItem, ConsentList } from './components/legal/molecules/Consent';\nexport { ContactFields } from './components/legal/molecules/ContactFields';\nexport * from './components/legal/organisms/LegalPageLayout';\nexport * from './components/legal/organisms/GDPRRights';\nexport * from './components/legal/organisms/ContactForm';\nexport * from './components/legal/organisms/GDPRDataRequest';\nexport { TermsTemplate } from './components/legal/templates/TermsTemplate';\nexport { SalesTermsTemplate } from './components/legal/templates/SalesTermsTemplate';\nexport { PrivacyTemplate } from './components/legal/templates/PrivacyTemplate';\nexport { CookiesTemplate } from './components/legal/templates/CookiesTemplate';\nexport { ContactTemplate } from './components/legal/templates/ContactTemplate';\n// Platform adapter\nexport * from './platform/withPlatformUI';\nexport { useResponsive } from './platform/useResponsive';\nexport { useReducedMotion } from './platform/useReducedMotion';\nexport { useColorScheme } from './platform/useColorScheme';\nexport * from './theme/variants';\nexport * from './theme/tokens';\nexport { mapTokensForPlatform } from './theme/tokenBridge';\n\n// Forms\nexport { FormDialog } from './components/forms/FormDialog';\nexport { ZodForm } from './components/forms/ZodForm';\nexport { FormSection, FormRow, FormGrid } from './components/forms/FormLayout';\nexport { FormCardLayout } from './components/forms/FormCardLayout';\nexport { FormStepsLayout } from './components/forms/FormStepsLayout';\nexport { FormOneByOneLayout } from './components/forms/FormOneByOneLayout';\nexport { ActionForm } from './components/forms/ActionForm';\n\n// Data views\nexport { DataViewList } from './components/data-view/DataViewList';\nexport { DataViewTable } from './components/data-view/DataViewTable';\nexport { DataViewDetail } from './components/data-view/DataViewDetail';\nexport { DataViewRenderer } from './components/data-view/DataViewRenderer';\n\n// Overlays re-exports (web default; native via Metro alias)\n// Overlays are used directly from ui-kit(s) in apps for now to avoid DTS bundling issues\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;mBA+EmE"}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import * as _contractspec_lib_contracts_client_react_form_render0 from "@contractspec/lib.contracts/client/react/form-render";
|
|
2
|
-
import * as
|
|
2
|
+
import * as react_jsx_runtime108 from "react/jsx-runtime";
|
|
3
3
|
import * as _contractspec_lib_schema0 from "@contractspec/lib.schema";
|
|
4
4
|
import * as _contractspec_lib_contracts_forms0 from "@contractspec/lib.contracts/forms";
|
|
5
5
|
|
|
6
6
|
//#region src/renderers/form-contract.d.ts
|
|
7
7
|
declare const formRenderer: {
|
|
8
|
-
render: (spec: _contractspec_lib_contracts_forms0.FormSpec<_contractspec_lib_schema0.AnySchemaModel>, options?: _contractspec_lib_contracts_client_react_form_render0.RenderOptions<unknown> | undefined) =>
|
|
8
|
+
render: (spec: _contractspec_lib_contracts_forms0.FormSpec<_contractspec_lib_schema0.AnySchemaModel>, options?: _contractspec_lib_contracts_client_react_form_render0.RenderOptions<unknown> | undefined) => react_jsx_runtime108.JSX.Element;
|
|
9
9
|
};
|
|
10
10
|
//#endregion
|
|
11
11
|
export { formRenderer };
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@contractspec/lib.design-system",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.45.1",
|
|
4
4
|
"description": "Design tokens and theming primitives",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"contractspec",
|
|
@@ -30,10 +30,10 @@
|
|
|
30
30
|
"tree-shake": true,
|
|
31
31
|
"dependencies": {
|
|
32
32
|
"@hookform/resolvers": "5.2.2",
|
|
33
|
-
"@contractspec/lib.ai-agent": "1.
|
|
34
|
-
"@contractspec/lib.contracts": "1.
|
|
35
|
-
"@contractspec/lib.ui-kit": "1.
|
|
36
|
-
"@contractspec/lib.ui-kit-web": "1.
|
|
33
|
+
"@contractspec/lib.ai-agent": "1.45.1",
|
|
34
|
+
"@contractspec/lib.contracts": "1.45.1",
|
|
35
|
+
"@contractspec/lib.ui-kit": "1.45.1",
|
|
36
|
+
"@contractspec/lib.ui-kit-web": "1.45.1",
|
|
37
37
|
"class-variance-authority": "^0.7.1",
|
|
38
38
|
"clsx": "^2.1.1",
|
|
39
39
|
"lucide-react": "^0.562.0",
|
|
@@ -45,8 +45,8 @@
|
|
|
45
45
|
"next": "16.1.1"
|
|
46
46
|
},
|
|
47
47
|
"devDependencies": {
|
|
48
|
-
"@contractspec/tool.typescript": "1.
|
|
49
|
-
"@contractspec/tool.tsdown": "1.
|
|
48
|
+
"@contractspec/tool.typescript": "1.45.1",
|
|
49
|
+
"@contractspec/tool.tsdown": "1.45.1",
|
|
50
50
|
"@types/node": "^24.9.0",
|
|
51
51
|
"@types/react-dom": "^19.0.14",
|
|
52
52
|
"postcss": "^8.5",
|