@cryptlex/web-components 6.6.44 → 6.6.45

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.
@@ -1,5 +1,7 @@
1
+ import { ReactNode } from 'react';
1
2
  import { FileTriggerProps as AriaFileTriggerProps } from 'react-aria-components';
2
3
  export interface FileTriggerProps extends AriaFileTriggerProps {
3
4
  className?: string;
5
+ children?: ReactNode;
4
6
  }
5
7
  export declare function FileTrigger(props: FileTriggerProps): import("react/jsx-runtime").JSX.Element;
@@ -1,2 +1,2 @@
1
- import{jsx as r,jsxs as o}from"react/jsx-runtime";import{FileTrigger as m}from"react-aria-components";import{classNames as e}from"../utilities/theme.js";import{Button as t}from"./button.js";import{IcUpload as l}from"./icons.js";import"clsx";import"class-variance-authority";import"./loader.js";import"@icons-pack/react-simple-icons";import"react";function x(i){return r(m,{...i,children:o(t,{className:e(i.className),children:[r(l,{}),r("p",{children:"Click to browse files"})]})})}export{x as FileTrigger};
1
+ import{jsx as r,jsxs as t}from"react/jsx-runtime";import{FileTrigger as s}from"react-aria-components";import{classNames as l}from"../utilities/theme.js";import{Button as p}from"./button.js";import{IcUpload as c}from"./icons.js";import"clsx";import"class-variance-authority";import"./loader.js";import"@icons-pack/react-simple-icons";import"react";function T(i){const{children:o,className:e,...m}=i;return r(s,{...m,children:o??t(p,{className:l(e),children:[r(c,{}),r("p",{children:"Click to browse files"})]})})}export{T as FileTrigger};
2
2
  //# sourceMappingURL=file-trigger.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"file-trigger.js","sources":["../../lib/components/file-trigger.tsx"],"sourcesContent":["import { FileTrigger as AriaFileTrigger, FileTriggerProps as AriaFileTriggerProps } from 'react-aria-components';\nimport { classNames } from '../utilities/theme';\nimport { Button } from './button';\nimport { IcUpload } from './icons';\nexport interface FileTriggerProps extends AriaFileTriggerProps {\n className?: string;\n}\nexport function FileTrigger(props: FileTriggerProps) {\n return (\n <AriaFileTrigger {...props}>\n <Button className={classNames(props.className)}>\n <IcUpload />\n <p>Click to browse files</p>\n </Button>\n </AriaFileTrigger>\n );\n}\n"],"names":["FileTrigger","props","jsx","AriaFileTrigger","jsxs","Button","classNames","IcUpload"],"mappings":"2VAOO,SAASA,EAAYC,EAAyB,CACjD,OACIC,EAACC,EAAA,CAAiB,GAAGF,EACjB,SAAAG,EAACC,GAAO,UAAWC,EAAWL,EAAM,SAAS,EACzC,SAAA,CAAAC,EAACK,EAAA,EAAS,EACVL,EAAC,KAAE,SAAA,uBAAA,CAAqB,CAAA,CAAA,CAC5B,CAAA,CACJ,CAER"}
1
+ {"version":3,"file":"file-trigger.js","sources":["../../lib/components/file-trigger.tsx"],"sourcesContent":["import type { ReactNode } from 'react';\nimport { FileTrigger as AriaFileTrigger, FileTriggerProps as AriaFileTriggerProps } from 'react-aria-components';\nimport { classNames } from '../utilities/theme';\nimport { Button } from './button';\nimport { IcUpload } from './icons';\nexport interface FileTriggerProps extends AriaFileTriggerProps {\n className?: string;\n children?: ReactNode;\n}\nexport function FileTrigger(props: FileTriggerProps) {\n const { children, className, ...rest } = props;\n return (\n <AriaFileTrigger {...rest}>\n {children ?? (\n <Button className={classNames(className)}>\n <IcUpload />\n <p>Click to browse files</p>\n </Button>\n )}\n </AriaFileTrigger>\n );\n}\n"],"names":["FileTrigger","props","children","className","rest","jsx","AriaFileTrigger","Button","classNames","IcUpload"],"mappings":"2VASO,SAASA,EAAYC,EAAyB,CACjD,KAAM,CAAE,SAAAC,EAAU,UAAAC,EAAW,GAAGC,GAASH,EACzC,OACII,EAACC,EAAA,CAAiB,GAAGF,EAChB,SAAAF,KACIK,EAAA,CAAO,UAAWC,EAAWL,CAAS,EACnC,SAAA,CAAAE,EAACI,EAAA,EAAS,EACVJ,EAAC,KAAE,SAAA,uBAAA,CAAqB,CAAA,CAAA,CAC5B,CAAA,CAER,CAER"}
@@ -0,0 +1,9 @@
1
+ import { FormFieldProps } from './form';
2
+ export type OfflineRequestFileInputProps = {
3
+ className?: string;
4
+ onSelect: (value: string | null) => void;
5
+ isDisabled?: boolean;
6
+ onBlur?: () => void;
7
+ };
8
+ export declare function OfflineRequestFileInput({ className, onSelect, isDisabled, onBlur }: OfflineRequestFileInputProps): import("react/jsx-runtime").JSX.Element;
9
+ export declare function TfOfflineRequestFileInput({ label, description, isDisabled, className, ...props }: Omit<OfflineRequestFileInputProps, 'onSelect'> & FormFieldProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,2 @@
1
+ "use client";import{jsxs as c,jsx as r}from"react/jsx-runtime";import{useState as m}from"react";import{useFieldContext as F}from"../utilities/form-context.js";import{classNames as h}from"../utilities/theme.js";import{Alert as y}from"./alert.js";import{Button as v}from"./button.js";import{FileTrigger as N}from"./file-trigger.js";import{FormField as R}from"./form.js";import{IcPlus as q}from"./icons.js";import{getFieldErrorMessage as I}from"../utilities/form.js";import"@tanstack/react-form";import"clsx";import"class-variance-authority";import"@icons-pack/react-simple-icons";import"react-aria-components";import"./loader.js";import"./card.js";function S({className:s,onSelect:t,isDisabled:l,onBlur:n}){const[i,e]=m(null),[o,f]=m(!1),[u,p]=m(null);async function g(a){return(await a.text()).trim()}const x=async a=>{p(null);const d=a?.[0]??null;if(!d){e(null),t(null);return}f(!0);try{const b=await g(d);e(d),t(b??null)}catch{p("Failed to read the file. Please try again."),e(null),t(null)}finally{f(!1)}n?.()};return c("div",{className:h("flex flex-col gap-2",s),children:[r(N,{onSelect:x,children:r(v,{size:"none",variant:"ghost",isDisabled:l||o,className:h("rounded-md border border-dashed border-foreground/20 bg-elevation-1 inline-flex justify-start items-center p-4"),onBlur:n,children:c("div",{className:"flex items-center gap-4",children:[r("div",{className:"flex size-12 items-center justify-center rounded-md border border-foreground/20 bg-elevation-2",children:r(q,{className:"size-icon"})}),c("div",{className:"flex flex-col text-left",children:[r("p",{className:"body-sm",children:i?i.name:"Upload .dat file"}),r("p",{className:"body-sm",children:i?"Click to replace":"Generated by the SDK"})]})]})})}),u&&r(y,{variant:"destructive",children:u})]})}function J({label:s,description:t,isDisabled:l,className:n,...i}){const e=F({disabled:l});return r(R,{label:s,description:t,requiredIndicator:e.isRequired,errorMessage:I(e),children:r(S,{...i,onSelect:o=>e.handleChange(o),onBlur:()=>e.handleBlur(),isDisabled:l||e.isSubmitting,className:n})})}export{S as OfflineRequestFileInput,J as TfOfflineRequestFileInput};
2
+ //# sourceMappingURL=offline-request-file-input.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"offline-request-file-input.js","sources":["../../lib/components/offline-request-file-input.tsx"],"sourcesContent":["'use client';\nimport { useState } from 'react';\nimport { useFieldContext } from '../utilities/form-context';\nimport { classNames } from '../utilities/theme';\nimport { Alert } from './alert';\nimport { Button } from './button';\nimport { FileTrigger } from './file-trigger';\nimport { FormField, type FormFieldProps } from './form';\nimport { IcPlus } from './icons';\nimport { getFieldErrorMessage } from '../utilities/form';\n\nexport type OfflineRequestFileInputProps = {\n className?: string;\n onSelect: (value: string | null) => void;\n isDisabled?: boolean;\n onBlur?: () => void;\n};\n\nexport function OfflineRequestFileInput({ className, onSelect, isDisabled, onBlur }: OfflineRequestFileInputProps) {\n const [selectedFile, setSelectedFile] = useState<File | null>(null);\n const [isReading, setIsReading] = useState(false);\n const [error, setError] = useState<string | null>(null);\n\n async function readOfflineRequestFileText(file: File): Promise<string> {\n return (await file.text()).trim();\n }\n\n const handleSelect = async (files: FileList | null) => {\n setError(null);\n\n const file = files?.[0] ?? null;\n\n if (!file) {\n setSelectedFile(null);\n onSelect(null);\n return;\n }\n\n setIsReading(true);\n try {\n const text = await readOfflineRequestFileText(file);\n setSelectedFile(file);\n onSelect(text ?? null);\n } catch {\n setError('Failed to read the file. Please try again.');\n setSelectedFile(null);\n onSelect(null);\n } finally {\n setIsReading(false);\n }\n onBlur?.();\n };\n\n return (\n <div className={classNames('flex flex-col gap-2', className)}>\n <FileTrigger onSelect={handleSelect}>\n <Button\n size=\"none\"\n variant=\"ghost\"\n isDisabled={isDisabled || isReading}\n className={classNames(\n 'rounded-md border border-dashed border-foreground/20 bg-elevation-1 inline-flex justify-start items-center p-4'\n )}\n onBlur={onBlur}\n >\n <div className=\"flex items-center gap-4\">\n <div className=\"flex size-12 items-center justify-center rounded-md border border-foreground/20 bg-elevation-2\">\n <IcPlus className=\"size-icon\" />\n </div>\n <div className=\"flex flex-col text-left\">\n <p className=\"body-sm\">{selectedFile ? selectedFile.name : 'Upload .dat file'}</p>\n <p className=\"body-sm\">{selectedFile ? `Click to replace` : 'Generated by the SDK'}</p>\n </div>\n </div>\n </Button>\n </FileTrigger>\n\n {error && <Alert variant=\"destructive\">{error}</Alert>}\n </div>\n );\n}\n\nexport function TfOfflineRequestFileInput({\n label,\n description,\n isDisabled,\n className,\n ...props\n}: Omit<OfflineRequestFileInputProps, 'onSelect'> & FormFieldProps) {\n const field = useFieldContext<string | null>({ disabled: isDisabled });\n return (\n <FormField\n {...{\n label: label,\n description: description,\n requiredIndicator: field.isRequired,\n errorMessage: getFieldErrorMessage(field),\n }}\n >\n <OfflineRequestFileInput\n {...props}\n onSelect={value => field.handleChange(value)}\n onBlur={() => field.handleBlur()}\n isDisabled={isDisabled || field.isSubmitting}\n className={className}\n />\n </FormField>\n );\n}\n"],"names":["OfflineRequestFileInput","className","onSelect","isDisabled","onBlur","selectedFile","setSelectedFile","useState","isReading","setIsReading","error","setError","readOfflineRequestFileText","file","handleSelect","files","text","classNames","jsx","FileTrigger","Button","jsxs","IcPlus","Alert","TfOfflineRequestFileInput","label","description","props","field","useFieldContext","FormField","getFieldErrorMessage","value"],"mappings":"soBAkBO,SAASA,EAAwB,CAAE,UAAAC,EAAW,SAAAC,EAAU,WAAAC,EAAY,OAAAC,GAAwC,CAC/G,KAAM,CAACC,EAAcC,CAAe,EAAIC,EAAsB,IAAI,EAC5D,CAACC,EAAWC,CAAY,EAAIF,EAAS,EAAK,EAC1C,CAACG,EAAOC,CAAQ,EAAIJ,EAAwB,IAAI,EAEtD,eAAeK,EAA2BC,EAA6B,CACnE,OAAQ,MAAMA,EAAK,KAAA,GAAQ,KAAA,CAC/B,CAEA,MAAMC,EAAe,MAAOC,GAA2B,CACnDJ,EAAS,IAAI,EAEb,MAAME,EAAOE,IAAQ,CAAC,GAAK,KAE3B,GAAI,CAACF,EAAM,CACPP,EAAgB,IAAI,EACpBJ,EAAS,IAAI,EACb,MACJ,CAEAO,EAAa,EAAI,EACjB,GAAI,CACA,MAAMO,EAAO,MAAMJ,EAA2BC,CAAI,EAClDP,EAAgBO,CAAI,EACpBX,EAASc,GAAQ,IAAI,CACzB,MAAQ,CACJL,EAAS,4CAA4C,EACrDL,EAAgB,IAAI,EACpBJ,EAAS,IAAI,CACjB,QAAA,CACIO,EAAa,EAAK,CACtB,CACAL,IAAA,CACJ,EAEA,SACK,MAAA,CAAI,UAAWa,EAAW,sBAAuBhB,CAAS,EACvD,SAAA,CAAAiB,EAACC,EAAA,CAAY,SAAUL,EACnB,SAAAI,EAACE,EAAA,CACG,KAAK,OACL,QAAQ,QACR,WAAYjB,GAAcK,EAC1B,UAAWS,EACP,gHAAA,EAEJ,OAAAb,EAEA,SAAAiB,EAAC,MAAA,CAAI,UAAU,0BACX,SAAA,CAAAH,EAAC,OAAI,UAAU,iGACX,WAACI,EAAA,CAAO,UAAU,YAAY,CAAA,CAClC,EACAD,EAAC,MAAA,CAAI,UAAU,0BACX,SAAA,CAAAH,EAAC,KAAE,UAAU,UAAW,SAAAb,EAAeA,EAAa,KAAO,mBAAmB,IAC7E,IAAA,CAAE,UAAU,UAAW,SAAAA,EAAe,mBAAqB,sBAAA,CAAuB,CAAA,CAAA,CACvF,CAAA,CAAA,CACJ,CAAA,CAAA,EAER,EAECK,GAASQ,EAACK,EAAA,CAAM,QAAQ,cAAe,SAAAb,CAAA,CAAM,CAAA,EAClD,CAER,CAEO,SAASc,EAA0B,CACtC,MAAAC,EACA,YAAAC,EACA,WAAAvB,EACA,UAAAF,EACA,GAAG0B,CACP,EAAoE,CAChE,MAAMC,EAAQC,EAA+B,CAAE,SAAU1B,EAAY,EACrE,OACIe,EAACY,EAAA,CAEO,MAAAL,EACA,YAAAC,EACA,kBAAmBE,EAAM,WACzB,aAAcG,EAAqBH,CAAK,EAG5C,SAAAV,EAAClB,EAAA,CACI,GAAG2B,EACJ,SAAUK,GAASJ,EAAM,aAAaI,CAAK,EAC3C,OAAQ,IAAMJ,EAAM,WAAA,EACpB,WAAYzB,GAAcyB,EAAM,aAChC,UAAA3B,CAAA,CAAA,CACJ,CAAA,CAGZ"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cryptlex/web-components",
3
- "version": "6.6.44",
3
+ "version": "6.6.45",
4
4
  "description": "React component library for Cryptlex web applications",
5
5
  "author": "Cryptlex",
6
6
  "type": "module",