@spear-ai/spectral 1.22.3 → 1.22.5
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/DataCard.d.ts
CHANGED
package/dist/DataCard.js
CHANGED
|
@@ -24,7 +24,7 @@ const DataCard = ({ accentColor, cardHeaderEndSlot, className, dataDescription,
|
|
|
24
24
|
className: "text-4xl font-bold tabular-nums",
|
|
25
25
|
style: { color: accentColor },
|
|
26
26
|
children: dataValue
|
|
27
|
-
}), /* @__PURE__ */ jsx("div", {
|
|
27
|
+
}), dataDescription && /* @__PURE__ */ jsx("div", {
|
|
28
28
|
className: "text-xs text-data-card-description",
|
|
29
29
|
children: dataDescription
|
|
30
30
|
})]
|
package/dist/DataCard.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DataCard.js","names":[],"sources":["../src/components/DataCard/DataCard.tsx"],"sourcesContent":["import { cn } from '@utils/twUtils'\nimport { type ReactNode } from 'react'\nimport { Card, CardContent, CardHeader, CardTitle, type CardProps } from './Card'\n\nexport type DataCardProps = CardProps & {\n accentColor: string\n cardHeaderEndSlot: ReactNode\n dataDescription
|
|
1
|
+
{"version":3,"file":"DataCard.js","names":[],"sources":["../src/components/DataCard/DataCard.tsx"],"sourcesContent":["import { cn } from '@utils/twUtils'\nimport { type ReactNode } from 'react'\nimport { Card, CardContent, CardHeader, CardTitle, type CardProps } from './Card'\n\nexport type DataCardProps = CardProps & {\n accentColor: string\n cardHeaderEndSlot: ReactNode\n dataDescription?: string\n dataValue: string | number\n title: string\n}\n\nexport const DataCard = ({ accentColor, cardHeaderEndSlot, className, dataDescription, dataValue, title, ...props }: DataCardProps) => {\n return (\n <Card\n className={cn('gap-4 card-effects-medium', className)}\n {...props}\n data-testid='spectral-datacard'\n >\n <CardHeader\n className='pb-0'\n data-testid='spectral-datacard-header'\n >\n <CardTitle\n className='text-sm font-bold uppercase'\n data-testid='spectral-datacard-title'\n >\n {title}\n </CardTitle>\n <div\n style={{ color: accentColor }}\n data-testid='spectral-datacard-end-slot'\n >\n {cardHeaderEndSlot}\n </div>\n </CardHeader>\n <CardContent>\n <div className='gap-4 flex flex-col'>\n <div\n className='text-4xl font-bold tabular-nums'\n data-testid='spectral-datacard-data-value'\n style={{ color: accentColor }}\n >\n {dataValue}\n </div>\n {dataDescription && (\n <div\n className='text-xs text-data-card-description'\n data-testid='spectral-datacard-data-description'\n >\n {dataDescription}\n </div>\n )}\n </div>\n </CardContent>\n </Card>\n )\n}\n"],"mappings":";;;;;;;AAYA,MAAa,YAAY,EAAE,aAAa,mBAAmB,WAAW,iBAAiB,WAAW,OAAO,GAAG,YAA2B;AACrI,QACE,qBAAC,MAAD;EACE,WAAW,GAAG,6BAA6B,UAAU;EACrD,GAAI;YAFN,CAKE,qBAAC,YAAD;GACE,WAAU;aADZ,CAIE,oBAAC,WAAD;IACE,WAAU;cAGT;IACQ,GACX,oBAAC,OAAD;IACE,OAAO,EAAE,OAAO,aAAa;cAG5B;IACE,EACK;MACZ,oBAAC,aAAD,YACE,qBAAC,OAAD;GAAK,WAAU;aAAf,CACE,oBAAC,OAAD;IACE,WAAU;IAEV,OAAO,EAAE,OAAO,aAAa;cAE5B;IACE,GACJ,mBACC,oBAAC,OAAD;IACE,WAAU;cAGT;IACE,EAEJ;MACM,EACT"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FormFieldMessage.d.ts","names":[],"sources":["../src/components/FormFieldMessage/FormFieldMessage.tsx"],"mappings":";;;;KAGY,qBAAA,uBAA4C,MAAA;AAAA,UAE9C,qBAAA;EACR,SAAA;EACA,kBAAA;EACA,UAAA;EACA,EAAA;EACA,OAAA,EAAS,qBAAA;EACT,mBAAA;EACA,mBAAA;AAAA;AAAA,
|
|
1
|
+
{"version":3,"file":"FormFieldMessage.d.ts","names":[],"sources":["../src/components/FormFieldMessage/FormFieldMessage.tsx"],"mappings":";;;;KAGY,qBAAA,uBAA4C,MAAA;AAAA,UAE9C,qBAAA;EACR,SAAA;EACA,kBAAA;EACA,UAAA;EACA,EAAA;EACA,OAAA,EAAS,qBAAA;EACT,mBAAA;EACA,mBAAA;AAAA;AAAA,cAqEW,YAAA;EAAY,SAAA;EAAA,kBAAA;EAAA,UAAA;EAAA,EAAA;EAAA,OAAA;EAAA,mBAAA;EAAA;AAAA,GAAgJ,qBAAA,KAAqB,oBAAA,CAAA,GAAA,CAAA,OAAA;AAAA,cAiBjL,cAAA;EAAc,SAAA;EAAA,kBAAA;EAAA,UAAA;EAAA,EAAA;EAAA,OAAA;EAAA,mBAAA;EAAA;AAAA,GAAkJ,qBAAA,KAAqB,oBAAA,CAAA,GAAA,CAAA,OAAA"}
|
package/dist/FormFieldMessage.js
CHANGED
|
@@ -27,7 +27,7 @@ const FormFieldMessage = ({ ariaLive, className, containerClassName, dataTestId,
|
|
|
27
27
|
const toneClasses = tone === "danger" ? "text-danger-400!" : "text-warning-400!";
|
|
28
28
|
return /* @__PURE__ */ jsx("div", {
|
|
29
29
|
"aria-hidden": !isVisible,
|
|
30
|
-
className: cn("transition-[opacity,transform] duration-180
|
|
30
|
+
className: cn("transition-[opacity,transform] duration-180 ease-out motion-reduce:transition-none", (isVisible || reservedHeight) && "pt-1", isVisible ? "translate-y-0 opacity-100" : "-translate-y-0.5 opacity-0", containerClassName),
|
|
31
31
|
style: reservedHeight ? { minHeight: reservedHeight } : void 0,
|
|
32
32
|
children: /* @__PURE__ */ jsx("p", {
|
|
33
33
|
"aria-atomic": isVisible ? "true" : void 0,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FormFieldMessage.js","names":[],"sources":["../src/components/FormFieldMessage/FormFieldMessage.tsx"],"sourcesContent":["import { cn } from '@utils/twUtils'\nimport { type ReactNode } from 'react'\n\nexport type FormFieldMessageValue = string | string[] | Record<string, unknown> | null | undefined\n\ninterface BaseFieldMessageProps {\n className?: string\n containerClassName?: string\n dataTestId?: string\n id: string\n message: FormFieldMessageValue\n messageReserveLines?: number\n messageReserveSpace?: boolean\n}\n\nconst renderFieldMessageContent = (message: FormFieldMessageValue): ReactNode => {\n if (!message) return null\n\n if (typeof message === 'string') {\n return message\n }\n\n if (Array.isArray(message)) {\n return message.join(', ')\n }\n\n if (typeof message === 'object') {\n if ('message' in message && typeof message.message === 'string') return message.message\n if ('error' in message && typeof message.error === 'string') return message.error\n if ('details' in message && typeof message.details === 'string') return message.details\n try {\n return JSON.stringify(message)\n } catch {\n return '[Circular]'\n }\n }\n\n return String(message)\n}\n\nconst FormFieldMessage = ({\n ariaLive,\n className,\n containerClassName,\n dataTestId,\n id,\n message,\n messageReserveLines = 1,\n messageReserveSpace = false,\n role,\n tone,\n}: BaseFieldMessageProps & {\n ariaLive: 'assertive' | 'polite'\n role: 'alert' | 'status'\n tone: 'danger' | 'warning'\n}) => {\n const content = renderFieldMessageContent(message)\n const isVisible = Boolean(content)\n const reservedHeight
|
|
1
|
+
{"version":3,"file":"FormFieldMessage.js","names":[],"sources":["../src/components/FormFieldMessage/FormFieldMessage.tsx"],"sourcesContent":["import { cn } from '@utils/twUtils'\nimport { type ReactNode } from 'react'\n\nexport type FormFieldMessageValue = string | string[] | Record<string, unknown> | null | undefined\n\ninterface BaseFieldMessageProps {\n className?: string\n containerClassName?: string\n dataTestId?: string\n id: string\n message: FormFieldMessageValue\n messageReserveLines?: number\n messageReserveSpace?: boolean\n}\n\nconst renderFieldMessageContent = (message: FormFieldMessageValue): ReactNode => {\n if (!message) return null\n\n if (typeof message === 'string') {\n return message\n }\n\n if (Array.isArray(message)) {\n return message.join(', ')\n }\n\n if (typeof message === 'object') {\n if ('message' in message && typeof message.message === 'string') return message.message\n if ('error' in message && typeof message.error === 'string') return message.error\n if ('details' in message && typeof message.details === 'string') return message.details\n try {\n return JSON.stringify(message)\n } catch {\n return '[Circular]'\n }\n }\n\n return String(message)\n}\n\nconst FormFieldMessage = ({\n ariaLive,\n className,\n containerClassName,\n dataTestId,\n id,\n message,\n messageReserveLines = 1,\n messageReserveSpace = false,\n role,\n tone,\n}: BaseFieldMessageProps & {\n ariaLive: 'assertive' | 'polite'\n role: 'alert' | 'status'\n tone: 'danger' | 'warning'\n}) => {\n const content = renderFieldMessageContent(message)\n const isVisible = Boolean(content)\n const reservedHeight = messageReserveSpace && messageReserveLines > 0 ? `${Math.max(messageReserveLines, 1) * 1.25 + 0.25}rem` : undefined\n const toneClasses = tone === 'danger' ? 'text-danger-400!' : 'text-warning-400!'\n\n return (\n <div\n aria-hidden={!isVisible}\n className={cn('transition-[opacity,transform] duration-180 ease-out motion-reduce:transition-none', (isVisible || reservedHeight) && 'pt-1', isVisible ? 'translate-y-0 opacity-100' : '-translate-y-0.5 opacity-0', containerClassName)}\n style={reservedHeight ? { minHeight: reservedHeight } : undefined}\n >\n <p\n aria-atomic={isVisible ? 'true' : undefined}\n aria-live={isVisible ? ariaLive : undefined}\n className={cn('m-0! text-sm leading-5 overflow-hidden', toneClasses, className)}\n data-testid={isVisible ? dataTestId : undefined}\n id={id}\n role={isVisible ? role : undefined}\n >\n {content}\n </p>\n </div>\n )\n}\n\nexport const ErrorMessage = ({ className, containerClassName, dataTestId = 'spectral-form-field-error-message', id, message, messageReserveLines, messageReserveSpace }: BaseFieldMessageProps) => {\n return (\n <FormFieldMessage\n ariaLive='polite'\n className={className}\n containerClassName={containerClassName}\n dataTestId={dataTestId}\n id={id}\n message={message}\n messageReserveLines={messageReserveLines}\n messageReserveSpace={messageReserveSpace}\n role='status'\n tone='danger'\n />\n )\n}\n\nexport const WarningMessage = ({ className, containerClassName, dataTestId = 'spectral-form-field-warning-message', id, message, messageReserveLines, messageReserveSpace }: BaseFieldMessageProps) => {\n return (\n <FormFieldMessage\n ariaLive='polite'\n className={className}\n containerClassName={containerClassName}\n dataTestId={dataTestId}\n id={id}\n message={message}\n messageReserveLines={messageReserveLines}\n messageReserveSpace={messageReserveSpace}\n role='status'\n tone='warning'\n />\n )\n}\n"],"mappings":";;;;;;AAeA,MAAM,6BAA6B,YAA8C;AAC/E,KAAI,CAAC,QAAS,QAAO;AAErB,KAAI,OAAO,YAAY,SACrB,QAAO;AAGT,KAAI,MAAM,QAAQ,QAAQ,CACxB,QAAO,QAAQ,KAAK,KAAI;AAG1B,KAAI,OAAO,YAAY,UAAU;AAC/B,MAAI,aAAa,WAAW,OAAO,QAAQ,YAAY,SAAU,QAAO,QAAQ;AAChF,MAAI,WAAW,WAAW,OAAO,QAAQ,UAAU,SAAU,QAAO,QAAQ;AAC5E,MAAI,aAAa,WAAW,OAAO,QAAQ,YAAY,SAAU,QAAO,QAAQ;AAChF,MAAI;AACF,UAAO,KAAK,UAAU,QAAO;UACvB;AACN,UAAO;;;AAIX,QAAO,OAAO,QAAO;;AAGvB,MAAM,oBAAoB,EACxB,UACA,WACA,oBACA,YACA,IACA,SACA,sBAAsB,GACtB,sBAAsB,OACtB,MACA,WAKI;CACJ,MAAM,UAAU,0BAA0B,QAAO;CACjD,MAAM,YAAY,QAAQ,QAAO;CACjC,MAAM,iBAAiB,uBAAuB,sBAAsB,IAAI,GAAG,KAAK,IAAI,qBAAqB,EAAE,GAAG,OAAO,IAAK,OAAO;CACjI,MAAM,cAAc,SAAS,WAAW,qBAAqB;AAE7D,QACE,oBAAC,OAAD;EACE,eAAa,CAAC;EACd,WAAW,GAAG,uFAAuF,aAAa,mBAAmB,QAAQ,YAAY,8BAA8B,8BAA8B,mBAAmB;EACxO,OAAO,iBAAiB,EAAE,WAAW,gBAAgB,GAAG;YAExD,oBAAC,KAAD;GACE,eAAa,YAAY,SAAS;GAClC,aAAW,YAAY,WAAW;GAClC,WAAW,GAAG,0CAA0C,aAAa,UAAU;GAE3E;GACJ,MAAM,YAAY,OAAO;aAExB;GACA;EACA;;AAIT,MAAa,gBAAgB,EAAE,WAAW,oBAAoB,aAAa,qCAAqC,IAAI,SAAS,qBAAqB,0BAAiD;AACjM,QACE,oBAAC,kBAAD;EACE,UAAS;EACE;EACS;EACR;EACR;EACK;EACY;EACA;EACrB,MAAK;EACL,MAAK;EACN;;AAIL,MAAa,kBAAkB,EAAE,WAAW,oBAAoB,aAAa,uCAAuC,IAAI,SAAS,qBAAqB,0BAAiD;AACrM,QACE,oBAAC,kBAAD;EACE,UAAS;EACE;EACS;EACR;EACR;EACK;EACY;EACA;EACrB,MAAK;EACL,MAAK;EACN"}
|