@cryptlex/web-components 6.6.45 → 6.6.46

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,2 +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};
1
+ "use client";import{jsxs as c,jsx as e}from"react/jsx-runtime";import{useState as m}from"react";import{getFieldErrorMessage as F}from"../utilities/form.js";import{useFieldContext as v}from"../utilities/form-context.js";import{classNames as h}from"../utilities/theme.js";import{Alert as y}from"./alert.js";import{Button as N}from"./button.js";import{FileTrigger as R}from"./file-trigger.js";import{FormField as q}from"./form.js";import{IcPlus as I}from"./icons.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,r]=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){r(null),t(null);return}f(!0);try{const b=await g(d);r(d),t(b??null)}catch{p("Failed to read the file. Please try again."),r(null),t(null)}finally{f(!1)}n?.()};return c("div",{className:h("flex flex-col gap-2",s),children:[e(R,{onSelect:x,children:e(N,{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:[e("div",{className:"flex size-12 items-center justify-center rounded-md border border-foreground/20 bg-elevation-2",children:e(I,{className:"size-icon"})}),c("div",{className:"flex flex-col text-left",children:[e("p",{className:"body-sm",children:i?i.name:"Upload file"}),e("p",{className:"body-sm",children:i?"Click to replace":"Generated by the SDK"})]})]})})}),u&&e(y,{variant:"destructive",children:u})]})}function J({label:s,description:t,isDisabled:l,className:n,...i}){const r=v({disabled:l});return e("div",{children:e(q,{label:s,description:t,requiredIndicator:r.isRequired,errorMessage:F(r),children:e(S,{...i,onSelect:o=>r.handleChange(o),onBlur:()=>r.handleBlur(),isDisabled:l||r.isSubmitting,className:n})})})}export{S as OfflineRequestFileInput,J as TfOfflineRequestFileInput};
2
2
  //# sourceMappingURL=offline-request-file-input.js.map
@@ -1 +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"}
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 { getFieldErrorMessage } from '../utilities/form';\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';\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 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 <div>\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 </div>\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,cAAc,IACxE,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,SACK,MAAA,CACG,SAAAe,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,EAER,CAER"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cryptlex/web-components",
3
- "version": "6.6.45",
3
+ "version": "6.6.46",
4
4
  "description": "React component library for Cryptlex web applications",
5
5
  "author": "Cryptlex",
6
6
  "type": "module",