@protonradio/proton-ui 0.11.23-beta.3 → 0.11.23-beta.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/components/Input/BaseInput/Input.cjs.js +1 -1
- package/dist/components/Input/BaseInput/Input.cjs.js.map +1 -1
- package/dist/components/Input/BaseInput/Input.es.js +274 -220
- package/dist/components/Input/BaseInput/Input.es.js.map +1 -1
- package/dist/style.css +1 -1
- package/package.json +1 -1
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const i=require("../../../node_modules/react/jsx-runtime.cjs.js"),d=require("react"),M=require("../../ThemeProvider.cjs.js");;/* empty css */const G=require("../../../utils/copy.cjs.js"),r=require("../../../utils/string.cjs.js"),$=d.forwardRef(({prefix:l,suffix:x,description:p,descriptionPosition:v="top",isDisabled:T,error:o,onChange:y,label:m,name:c,placeholder:q,type:A="text",value:O,autoFocus:z,autoComplete:F,isRequired:b=!1,isReadOnly:C=!1,onSubmit:N,onClear:R,"data-testid":V},B)=>{const W=d.useRef(null),u=d.useRef(null),h=d.useRef(null),n=d.useRef(null),{className:U}=M.useTheme(),K=B||W;d.useEffect(()=>{if(!n.current)return;let s=0,D=Date.now();const a={containerWidth:0,prefixWidth:0,suffixWidth:0};let f=null;const E=w=>{s++;const k=Date.now(),_=k-D;D=k;const L=(w==null?void 0:w.map(I=>I.target.className||"unknown").join(","))||"initial";fetch("http://127.0.0.1:7243/ingest/f16ad2de-908b-4cb9-a792-256436a5e324",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({location:"Input.tsx:149",message:"ResizeObserver callback invoked",data:{callbackCount:s,timeSinceLastUpdate:_,triggeredBy:L},timestamp:Date.now(),sessionId:"debug-session",runId:"post-fix",hypothesisId:"A"})}).catch(()=>{}),f!==null&&cancelAnimationFrame(f),f=requestAnimationFrame(()=>{var I,J;if(n.current){if(n.current){const t=n.current.offsetWidth||200,e=t!==a.containerWidth;fetch("http://127.0.0.1:7243/ingest/f16ad2de-908b-4cb9-a792-256436a5e324",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({location:"Input.tsx:152",message:"Reading container width",data:{containerWidth:t,previousValue:a.containerWidth,changed:e},timestamp:Date.now(),sessionId:"debug-session",runId:"post-fix",hypothesisId:"C"})}).catch(()=>{}),e?(n.current.style.setProperty("--container-width",`${t}px`),a.containerWidth=t,fetch("http://127.0.0.1:7243/ingest/f16ad2de-908b-4cb9-a792-256436a5e324",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({location:"Input.tsx:157",message:"Set container-width CSS property",data:{containerWidth:t,changed:e},timestamp:Date.now(),sessionId:"debug-session",runId:"post-fix",hypothesisId:"A"})}).catch(()=>{})):fetch("http://127.0.0.1:7243/ingest/f16ad2de-908b-4cb9-a792-256436a5e324",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({location:"Input.tsx:157",message:"Skipped setting container-width (unchanged)",data:{containerWidth:t,changed:e},timestamp:Date.now(),sessionId:"debug-session",runId:"post-fix",hypothesisId:"C"})}).catch(()=>{})}if(u.current){const t=u.current.offsetWidth||32,e=t!==a.prefixWidth;fetch("http://127.0.0.1:7243/ingest/f16ad2de-908b-4cb9-a792-256436a5e324",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({location:"Input.tsx:163",message:"Reading prefix width",data:{prefixWidth:t,previousValue:a.prefixWidth,changed:e},timestamp:Date.now(),sessionId:"debug-session",runId:"post-fix",hypothesisId:"C"})}).catch(()=>{}),e?((I=n.current)==null||I.style.setProperty("--prefix-width",`${t}px`),a.prefixWidth=t,fetch("http://127.0.0.1:7243/ingest/f16ad2de-908b-4cb9-a792-256436a5e324",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({location:"Input.tsx:168",message:"Set prefix-width CSS property",data:{prefixWidth:t,changed:e},timestamp:Date.now(),sessionId:"debug-session",runId:"post-fix",hypothesisId:"A"})}).catch(()=>{})):fetch("http://127.0.0.1:7243/ingest/f16ad2de-908b-4cb9-a792-256436a5e324",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({location:"Input.tsx:168",message:"Skipped setting prefix-width (unchanged)",data:{prefixWidth:t,changed:e},timestamp:Date.now(),sessionId:"debug-session",runId:"post-fix",hypothesisId:"C"})}).catch(()=>{})}if(h.current){const t=h.current.offsetWidth||32,e=t!==a.suffixWidth;fetch("http://127.0.0.1:7243/ingest/f16ad2de-908b-4cb9-a792-256436a5e324",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({location:"Input.tsx:174",message:"Reading suffix width",data:{suffixWidth:t,previousValue:a.suffixWidth,changed:e},timestamp:Date.now(),sessionId:"debug-session",runId:"post-fix",hypothesisId:"C"})}).catch(()=>{}),e?((J=n.current)==null||J.style.setProperty("--suffix-width",`${t}px`),a.suffixWidth=t,fetch("http://127.0.0.1:7243/ingest/f16ad2de-908b-4cb9-a792-256436a5e324",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({location:"Input.tsx:179",message:"Set suffix-width CSS property",data:{suffixWidth:t,changed:e},timestamp:Date.now(),sessionId:"debug-session",runId:"post-fix",hypothesisId:"A"})}).catch(()=>{})):fetch("http://127.0.0.1:7243/ingest/f16ad2de-908b-4cb9-a792-256436a5e324",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({location:"Input.tsx:179",message:"Skipped setting suffix-width (unchanged)",data:{suffixWidth:t,changed:e},timestamp:Date.now(),sessionId:"debug-session",runId:"post-fix",hypothesisId:"C"})}).catch(()=>{})}_<10&&fetch("http://127.0.0.1:7243/ingest/f16ad2de-908b-4cb9-a792-256436a5e324",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({location:"Input.tsx:185",message:"Rapid callback detected",data:{callbackCount:s,timeSinceLastUpdate:_},timestamp:Date.now(),sessionId:"debug-session",runId:"post-fix",hypothesisId:"E"})}).catch(()=>{})}})};E();const g=new ResizeObserver(E);return n.current&&g.observe(n.current),u.current&&g.observe(u.current),h.current&&g.observe(h.current),()=>{f!==null&&cancelAnimationFrame(f),g.disconnect()}},[l,x]);const P=`${c}-input`,S=`${c}-error`,j=`${c}-description`;return i.jsxRuntimeExports.jsxs("div",{ref:n,className:"proton-Input__container",children:[p&&v==="top"&&i.jsxRuntimeExports.jsx("div",{id:j,className:"proton-Input__text","aria-live":"polite",children:p}),i.jsxRuntimeExports.jsxs("div",{className:r.csx("proton-Input__container-inner",l&&"proton-Input__has-prefix",x&&"proton-Input__has-suffix"),children:[l&&i.jsxRuntimeExports.jsx("div",{ref:u,className:r.csx("proton-Input__descriptor","proton-Input__prefix"),children:l}),i.jsxRuntimeExports.jsx("input",{id:P,name:c,type:A,value:O,onChange:s=>{y==null||y(s.target.value)},onKeyDown:s=>{switch(s.key){case"Enter":N&&(s.preventDefault(),N(s));break;case"Escape":R&&(s.preventDefault(),R());break}},onCopy:async()=>{var s;return await G.copyTextToClipboard((s=W.current)==null?void 0:s.value)},disabled:T,readOnly:C,required:b,autoFocus:z,autoComplete:F?"on":"off",placeholder:m?void 0:q,"aria-label":m||c,"aria-invalid":!!o,"aria-errormessage":typeof o=="string"?o:S,"aria-required":b,"aria-readonly":C,"aria-describedby":o?S:p?j:void 0,"aria-disabled":T,"data-testid":V,ref:K,className:r.csx("proton-Input",o&&"proton-Input--error",m&&"proton-Input__label-top",U)}),i.jsxRuntimeExports.jsxs("label",{htmlFor:P,className:r.csx("proton-Input__label",O&&"proton-Input__label--filled"),children:[m,b&&i.jsxRuntimeExports.jsx("span",{"aria-hidden":"true",children:" *"})]}),x&&i.jsxRuntimeExports.jsx("div",{ref:h,className:r.csx("proton-Input__descriptor","proton-Input__suffix"),children:x})]}),o?i.jsxRuntimeExports.jsx("div",{role:"alert",className:r.csx("proton-Input__error","proton-Input__text"),id:S,children:o}):p&&v==="bottom"?i.jsxRuntimeExports.jsx("div",{id:j,className:"proton-Input__text","aria-live":"polite",children:p}):null]})});$.displayName="ProtonUIInput";exports.Input=$;
|
|
2
2
|
//# sourceMappingURL=Input.cjs.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Input.cjs.js","sources":["../../../../src/components/Input/BaseInput/Input.tsx"],"sourcesContent":["\"use client\";\n\nimport React, { forwardRef, useEffect, useRef } from \"react\";\n\nimport { useTheme } from \"../../ThemeProvider\";\nimport { csx } from \"../../../utils\";\nimport \"./Input.css\";\nimport { copyTextToClipboard } from \"../../../utils/copy\";\n\nexport interface BaseInputProps {\n /**\n * onChange handler for the input\n */\n onChange?: (value: string) => void;\n\n /** Whether the input is disabled. */\n isDisabled?: boolean;\n\n /** Description text shown above the input. */\n description?: React.ReactNode | string;\n\n /**\n * The position of the description text.\n * @default \"top\"\n */\n descriptionPosition?: \"top\" | \"bottom\";\n\n /** Error state that changes the input's visual style and displays an error message. */\n error?: React.ReactNode | string;\n\n /**\n * Label for the input element.\n * @note When a label is provided, the input will have extra padding, and the label will float above the text input when focused or filled.\n */\n label?: string;\n\n /** Test ID for the component. */\n \"data-testid\"?: string;\n\n /** Content to display before the input. Typically used for icons. */\n prefix?: React.ReactNode;\n\n /** Content to display after the input. Typically used for icons. */\n suffix?: React.ReactNode;\n\n /**\n * Should the browser's autocomplete be enabled?\n * @external https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/autocomplete\n */\n autoComplete?: boolean;\n\n /**\n * Should the input be autofocused?\n * @external https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/autofocus\n */\n autoFocus?: boolean;\n\n /**\n * The name attribute of the input element.\n * @external https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/name\n */\n name: string;\n\n /**\n * The placeholder text to display when the input is empty.\n * @note label takes precedence over placeholder, if both are provided.\n * @external https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/placeholder\n */\n placeholder?: string;\n\n /**\n * The type attribute of the input element.\n * @external https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/type\n * @default \"text\"\n */\n type?: string;\n\n /**\n * The value of the input.\n * @external https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#value\n */\n value?: string;\n\n /**\n * Whether the input is required.\n * @default false\n */\n isRequired?: boolean;\n\n /**\n * Whether the input is read-only.\n * @default false\n */\n isReadOnly?: boolean;\n\n /**\n * Called when the input is submitted (e.g. by pressing Enter).\n */\n onSubmit?: React.FormEventHandler<HTMLInputElement>;\n\n /**\n * Called when the input is cleared (e.g. by pressing Escape).\n */\n onClear?: () => void;\n}\n\n/**\n * A controlled and customizable input component with support for labels, prefixes, suffixes, and error states.\n *\n * API:\n * - {@link BaseInputProps}\n */\nexport const Input = forwardRef<HTMLInputElement, BaseInputProps>(\n (\n {\n prefix,\n suffix,\n description,\n descriptionPosition = \"top\",\n isDisabled,\n error,\n onChange,\n label,\n name,\n placeholder,\n type = \"text\",\n value,\n autoFocus,\n autoComplete,\n isRequired = false,\n isReadOnly = false,\n onSubmit,\n onClear,\n \"data-testid\": testId,\n },\n forwardedRef: React.RefObject<HTMLInputElement>\n ) => {\n const inputRef = useRef<HTMLInputElement>(null);\n const prefixRef = useRef<HTMLDivElement>(null);\n const suffixRef = useRef<HTMLDivElement>(null);\n const containerRef = useRef<HTMLDivElement>(null);\n const { className } = useTheme();\n const ref = forwardedRef || inputRef;\n\n // Control dynamic prefix and suffix widths using ResizeObserver\n useEffect(() => {\n if (!containerRef.current) return;\n\n // #region agent log\n let callbackCount = 0;\n let lastUpdateTime = Date.now();\n const previousValues = {\n containerWidth: 0,\n prefixWidth: 0,\n suffixWidth: 0,\n };\n // #endregion\n\n const updateSizes = (entries?: ResizeObserverEntry[]) => {\n // #region agent log\n callbackCount++;\n const now = Date.now();\n const timeSinceLastUpdate = now - lastUpdateTime;\n lastUpdateTime = now;\n const triggeredBy =\n entries?.map((e) => e.target.className || \"unknown\").join(\",\") ||\n \"initial\";\n fetch(\n \"http://127.0.0.1:7243/ingest/f16ad2de-908b-4cb9-a792-256436a5e324\",\n {\n method: \"POST\",\n headers: { \"Content-Type\": \"application/json\" },\n body: JSON.stringify({\n location: \"Input.tsx:149\",\n message: \"ResizeObserver callback invoked\",\n data: { callbackCount, timeSinceLastUpdate, triggeredBy },\n timestamp: Date.now(),\n sessionId: \"debug-session\",\n runId: \"run1\",\n hypothesisId: \"A\",\n }),\n }\n ).catch(() => {});\n // #endregion\n\n if (containerRef.current) {\n const containerWidth = containerRef.current.offsetWidth || 200;\n // #region agent log\n const containerWidthChanged =\n containerWidth !== previousValues.containerWidth;\n fetch(\n \"http://127.0.0.1:7243/ingest/f16ad2de-908b-4cb9-a792-256436a5e324\",\n {\n method: \"POST\",\n headers: { \"Content-Type\": \"application/json\" },\n body: JSON.stringify({\n location: \"Input.tsx:152\",\n message: \"Reading container width\",\n data: {\n containerWidth,\n previousValue: previousValues.containerWidth,\n changed: containerWidthChanged,\n },\n timestamp: Date.now(),\n sessionId: \"debug-session\",\n runId: \"run1\",\n hypothesisId: \"C\",\n }),\n }\n ).catch(() => {});\n // #endregion\n containerRef.current.style.setProperty(\n \"--container-width\",\n `${containerWidth}px`\n );\n // #region agent log\n previousValues.containerWidth = containerWidth;\n fetch(\n \"http://127.0.0.1:7243/ingest/f16ad2de-908b-4cb9-a792-256436a5e324\",\n {\n method: \"POST\",\n headers: { \"Content-Type\": \"application/json\" },\n body: JSON.stringify({\n location: \"Input.tsx:157\",\n message: \"Set container-width CSS property\",\n data: { containerWidth, changed: containerWidthChanged },\n timestamp: Date.now(),\n sessionId: \"debug-session\",\n runId: \"run1\",\n hypothesisId: \"A\",\n }),\n }\n ).catch(() => {});\n // #endregion\n }\n\n if (prefixRef.current) {\n const prefixWidth = prefixRef.current.offsetWidth || 32;\n // #region agent log\n const prefixWidthChanged = prefixWidth !== previousValues.prefixWidth;\n fetch(\n \"http://127.0.0.1:7243/ingest/f16ad2de-908b-4cb9-a792-256436a5e324\",\n {\n method: \"POST\",\n headers: { \"Content-Type\": \"application/json\" },\n body: JSON.stringify({\n location: \"Input.tsx:163\",\n message: \"Reading prefix width\",\n data: {\n prefixWidth,\n previousValue: previousValues.prefixWidth,\n changed: prefixWidthChanged,\n },\n timestamp: Date.now(),\n sessionId: \"debug-session\",\n runId: \"run1\",\n hypothesisId: \"C\",\n }),\n }\n ).catch(() => {});\n // #endregion\n containerRef.current?.style.setProperty(\n \"--prefix-width\",\n `${prefixWidth}px`\n );\n // #region agent log\n previousValues.prefixWidth = prefixWidth;\n fetch(\n \"http://127.0.0.1:7243/ingest/f16ad2de-908b-4cb9-a792-256436a5e324\",\n {\n method: \"POST\",\n headers: { \"Content-Type\": \"application/json\" },\n body: JSON.stringify({\n location: \"Input.tsx:168\",\n message: \"Set prefix-width CSS property\",\n data: { prefixWidth, changed: prefixWidthChanged },\n timestamp: Date.now(),\n sessionId: \"debug-session\",\n runId: \"run1\",\n hypothesisId: \"A\",\n }),\n }\n ).catch(() => {});\n // #endregion\n }\n\n if (suffixRef.current) {\n const suffixWidth = suffixRef.current.offsetWidth || 32;\n // #region agent log\n const suffixWidthChanged = suffixWidth !== previousValues.suffixWidth;\n fetch(\n \"http://127.0.0.1:7243/ingest/f16ad2de-908b-4cb9-a792-256436a5e324\",\n {\n method: \"POST\",\n headers: { \"Content-Type\": \"application/json\" },\n body: JSON.stringify({\n location: \"Input.tsx:174\",\n message: \"Reading suffix width\",\n data: {\n suffixWidth,\n previousValue: previousValues.suffixWidth,\n changed: suffixWidthChanged,\n },\n timestamp: Date.now(),\n sessionId: \"debug-session\",\n runId: \"run1\",\n hypothesisId: \"C\",\n }),\n }\n ).catch(() => {});\n // #endregion\n containerRef.current?.style.setProperty(\n \"--suffix-width\",\n `${suffixWidth}px`\n );\n // #region agent log\n previousValues.suffixWidth = suffixWidth;\n fetch(\n \"http://127.0.0.1:7243/ingest/f16ad2de-908b-4cb9-a792-256436a5e324\",\n {\n method: \"POST\",\n headers: { \"Content-Type\": \"application/json\" },\n body: JSON.stringify({\n location: \"Input.tsx:179\",\n message: \"Set suffix-width CSS property\",\n data: { suffixWidth, changed: suffixWidthChanged },\n timestamp: Date.now(),\n sessionId: \"debug-session\",\n runId: \"run1\",\n hypothesisId: \"A\",\n }),\n }\n ).catch(() => {});\n // #endregion\n }\n\n // #region agent log\n if (timeSinceLastUpdate < 10) {\n fetch(\n \"http://127.0.0.1:7243/ingest/f16ad2de-908b-4cb9-a792-256436a5e324\",\n {\n method: \"POST\",\n headers: { \"Content-Type\": \"application/json\" },\n body: JSON.stringify({\n location: \"Input.tsx:185\",\n message: \"Rapid callback detected\",\n data: { callbackCount, timeSinceLastUpdate },\n timestamp: Date.now(),\n sessionId: \"debug-session\",\n runId: \"run1\",\n hypothesisId: \"E\",\n }),\n }\n ).catch(() => {});\n }\n // #endregion\n };\n\n updateSizes();\n\n const resizeObserver = new ResizeObserver(updateSizes);\n\n if (containerRef.current) {\n resizeObserver.observe(containerRef.current);\n }\n if (prefixRef.current) {\n resizeObserver.observe(prefixRef.current);\n }\n if (suffixRef.current) {\n resizeObserver.observe(suffixRef.current);\n }\n\n return () => {\n resizeObserver.disconnect();\n };\n }, [prefix, suffix]);\n\n const inputId = `${name}-input`;\n const errorId = `${name}-error`;\n const descriptionId = `${name}-description`;\n\n return (\n <div ref={containerRef} className=\"proton-Input__container\">\n {description && descriptionPosition === \"top\" && (\n <div\n id={descriptionId}\n className=\"proton-Input__text\"\n aria-live=\"polite\"\n >\n {description}\n </div>\n )}\n <div\n className={csx(\n \"proton-Input__container-inner\",\n prefix && \"proton-Input__has-prefix\",\n suffix && \"proton-Input__has-suffix\"\n )}\n >\n {prefix && (\n <div\n ref={prefixRef}\n className={csx(\n \"proton-Input__descriptor\",\n \"proton-Input__prefix\"\n )}\n >\n {prefix}\n </div>\n )}\n\n <input\n id={inputId}\n name={name}\n type={type}\n value={value}\n onChange={(e: React.ChangeEvent<HTMLInputElement>) => {\n onChange?.(e.target.value);\n }}\n onKeyDown={(e: React.KeyboardEvent<HTMLInputElement>) => {\n switch (e.key) {\n case \"Enter\":\n if (onSubmit) {\n e.preventDefault();\n onSubmit(e);\n }\n break;\n case \"Escape\":\n if (onClear) {\n e.preventDefault();\n onClear();\n }\n break;\n }\n }}\n onCopy={async () =>\n await copyTextToClipboard(inputRef.current?.value)\n }\n disabled={isDisabled}\n readOnly={isReadOnly}\n required={isRequired}\n autoFocus={autoFocus}\n autoComplete={autoComplete ? \"on\" : \"off\"}\n placeholder={label ? undefined : placeholder}\n aria-label={label || name}\n aria-invalid={Boolean(error)}\n aria-errormessage={typeof error === \"string\" ? error : errorId}\n aria-required={isRequired}\n aria-readonly={isReadOnly}\n aria-describedby={\n error ? errorId : description ? descriptionId : undefined\n }\n aria-disabled={isDisabled}\n data-testid={testId}\n ref={ref}\n className={csx(\n \"proton-Input\",\n error && \"proton-Input--error\",\n label && \"proton-Input__label-top\",\n className\n )}\n />\n\n <label\n htmlFor={inputId}\n className={csx(\n \"proton-Input__label\",\n value && \"proton-Input__label--filled\"\n )}\n >\n {label}\n {isRequired && <span aria-hidden=\"true\"> *</span>}\n </label>\n\n {suffix && (\n <div\n ref={suffixRef}\n className={csx(\n \"proton-Input__descriptor\",\n \"proton-Input__suffix\"\n )}\n >\n {suffix}\n </div>\n )}\n </div>\n\n {error ? (\n <div\n role=\"alert\"\n className={csx(\"proton-Input__error\", \"proton-Input__text\")}\n id={errorId}\n >\n {error}\n </div>\n ) : description && descriptionPosition === \"bottom\" ? (\n <div\n id={descriptionId}\n className=\"proton-Input__text\"\n aria-live=\"polite\"\n >\n {description}\n </div>\n ) : null}\n </div>\n );\n }\n);\n\nInput.displayName = \"ProtonUIInput\";\n"],"names":["Input","forwardRef","prefix","suffix","description","descriptionPosition","isDisabled","error","onChange","label","name","placeholder","type","value","autoFocus","autoComplete","isRequired","isReadOnly","onSubmit","onClear","testId","forwardedRef","inputRef","useRef","prefixRef","suffixRef","containerRef","className","useTheme","ref","useEffect","callbackCount","lastUpdateTime","previousValues","updateSizes","entries","now","timeSinceLastUpdate","triggeredBy","e","containerWidth","containerWidthChanged","prefixWidth","prefixWidthChanged","_a","suffixWidth","suffixWidthChanged","_b","resizeObserver","inputId","errorId","descriptionId","jsxs","jsx","csx","copyTextToClipboard"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Input.cjs.js","sources":["../../../../src/components/Input/BaseInput/Input.tsx"],"sourcesContent":["\"use client\";\n\nimport React, { forwardRef, useEffect, useRef } from \"react\";\n\nimport { useTheme } from \"../../ThemeProvider\";\nimport { csx } from \"../../../utils\";\nimport \"./Input.css\";\nimport { copyTextToClipboard } from \"../../../utils/copy\";\n\nexport interface BaseInputProps {\n /**\n * onChange handler for the input\n */\n onChange?: (value: string) => void;\n\n /** Whether the input is disabled. */\n isDisabled?: boolean;\n\n /** Description text shown above the input. */\n description?: React.ReactNode | string;\n\n /**\n * The position of the description text.\n * @default \"top\"\n */\n descriptionPosition?: \"top\" | \"bottom\";\n\n /** Error state that changes the input's visual style and displays an error message. */\n error?: React.ReactNode | string;\n\n /**\n * Label for the input element.\n * @note When a label is provided, the input will have extra padding, and the label will float above the text input when focused or filled.\n */\n label?: string;\n\n /** Test ID for the component. */\n \"data-testid\"?: string;\n\n /** Content to display before the input. Typically used for icons. */\n prefix?: React.ReactNode;\n\n /** Content to display after the input. Typically used for icons. */\n suffix?: React.ReactNode;\n\n /**\n * Should the browser's autocomplete be enabled?\n * @external https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/autocomplete\n */\n autoComplete?: boolean;\n\n /**\n * Should the input be autofocused?\n * @external https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/autofocus\n */\n autoFocus?: boolean;\n\n /**\n * The name attribute of the input element.\n * @external https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/name\n */\n name: string;\n\n /**\n * The placeholder text to display when the input is empty.\n * @note label takes precedence over placeholder, if both are provided.\n * @external https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/placeholder\n */\n placeholder?: string;\n\n /**\n * The type attribute of the input element.\n * @external https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/type\n * @default \"text\"\n */\n type?: string;\n\n /**\n * The value of the input.\n * @external https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#value\n */\n value?: string;\n\n /**\n * Whether the input is required.\n * @default false\n */\n isRequired?: boolean;\n\n /**\n * Whether the input is read-only.\n * @default false\n */\n isReadOnly?: boolean;\n\n /**\n * Called when the input is submitted (e.g. by pressing Enter).\n */\n onSubmit?: React.FormEventHandler<HTMLInputElement>;\n\n /**\n * Called when the input is cleared (e.g. by pressing Escape).\n */\n onClear?: () => void;\n}\n\n/**\n * A controlled and customizable input component with support for labels, prefixes, suffixes, and error states.\n *\n * API:\n * - {@link BaseInputProps}\n */\nexport const Input = forwardRef<HTMLInputElement, BaseInputProps>(\n (\n {\n prefix,\n suffix,\n description,\n descriptionPosition = \"top\",\n isDisabled,\n error,\n onChange,\n label,\n name,\n placeholder,\n type = \"text\",\n value,\n autoFocus,\n autoComplete,\n isRequired = false,\n isReadOnly = false,\n onSubmit,\n onClear,\n \"data-testid\": testId,\n },\n forwardedRef: React.RefObject<HTMLInputElement>\n ) => {\n const inputRef = useRef<HTMLInputElement>(null);\n const prefixRef = useRef<HTMLDivElement>(null);\n const suffixRef = useRef<HTMLDivElement>(null);\n const containerRef = useRef<HTMLDivElement>(null);\n const { className } = useTheme();\n const ref = forwardedRef || inputRef;\n\n // Control dynamic prefix and suffix widths using ResizeObserver\n useEffect(() => {\n if (!containerRef.current) return;\n\n // #region agent log\n let callbackCount = 0;\n let lastUpdateTime = Date.now();\n const previousValues = {\n containerWidth: 0,\n prefixWidth: 0,\n suffixWidth: 0,\n };\n // #endregion\n\n let rafId: number | null = null;\n\n const updateSizes = (entries?: ResizeObserverEntry[]) => {\n // #region agent log\n callbackCount++;\n const now = Date.now();\n const timeSinceLastUpdate = now - lastUpdateTime;\n lastUpdateTime = now;\n const triggeredBy =\n entries?.map((e) => e.target.className || \"unknown\").join(\",\") ||\n \"initial\";\n fetch(\n \"http://127.0.0.1:7243/ingest/f16ad2de-908b-4cb9-a792-256436a5e324\",\n {\n method: \"POST\",\n headers: { \"Content-Type\": \"application/json\" },\n body: JSON.stringify({\n location: \"Input.tsx:149\",\n message: \"ResizeObserver callback invoked\",\n data: { callbackCount, timeSinceLastUpdate, triggeredBy },\n timestamp: Date.now(),\n sessionId: \"debug-session\",\n runId: \"post-fix\",\n hypothesisId: \"A\",\n }),\n }\n ).catch(() => {});\n // #endregion\n\n // Cancel any pending animation frame\n if (rafId !== null) {\n cancelAnimationFrame(rafId);\n }\n\n // Batch DOM updates in requestAnimationFrame to avoid synchronous mutations\n rafId = requestAnimationFrame(() => {\n if (!containerRef.current) return;\n\n if (containerRef.current) {\n const containerWidth = containerRef.current.offsetWidth || 200;\n // #region agent log\n const containerWidthChanged =\n containerWidth !== previousValues.containerWidth;\n fetch(\n \"http://127.0.0.1:7243/ingest/f16ad2de-908b-4cb9-a792-256436a5e324\",\n {\n method: \"POST\",\n headers: { \"Content-Type\": \"application/json\" },\n body: JSON.stringify({\n location: \"Input.tsx:152\",\n message: \"Reading container width\",\n data: {\n containerWidth,\n previousValue: previousValues.containerWidth,\n changed: containerWidthChanged,\n },\n timestamp: Date.now(),\n sessionId: \"debug-session\",\n runId: \"post-fix\",\n hypothesisId: \"C\",\n }),\n }\n ).catch(() => {});\n // #endregion\n // Only set CSS property if value actually changed\n if (containerWidthChanged) {\n containerRef.current.style.setProperty(\n \"--container-width\",\n `${containerWidth}px`\n );\n // #region agent log\n previousValues.containerWidth = containerWidth;\n fetch(\n \"http://127.0.0.1:7243/ingest/f16ad2de-908b-4cb9-a792-256436a5e324\",\n {\n method: \"POST\",\n headers: { \"Content-Type\": \"application/json\" },\n body: JSON.stringify({\n location: \"Input.tsx:157\",\n message: \"Set container-width CSS property\",\n data: { containerWidth, changed: containerWidthChanged },\n timestamp: Date.now(),\n sessionId: \"debug-session\",\n runId: \"post-fix\",\n hypothesisId: \"A\",\n }),\n }\n ).catch(() => {});\n // #endregion\n } else {\n // #region agent log\n fetch(\n \"http://127.0.0.1:7243/ingest/f16ad2de-908b-4cb9-a792-256436a5e324\",\n {\n method: \"POST\",\n headers: { \"Content-Type\": \"application/json\" },\n body: JSON.stringify({\n location: \"Input.tsx:157\",\n message: \"Skipped setting container-width (unchanged)\",\n data: { containerWidth, changed: containerWidthChanged },\n timestamp: Date.now(),\n sessionId: \"debug-session\",\n runId: \"post-fix\",\n hypothesisId: \"C\",\n }),\n }\n ).catch(() => {});\n // #endregion\n }\n }\n\n if (prefixRef.current) {\n const prefixWidth = prefixRef.current.offsetWidth || 32;\n // #region agent log\n const prefixWidthChanged =\n prefixWidth !== previousValues.prefixWidth;\n fetch(\n \"http://127.0.0.1:7243/ingest/f16ad2de-908b-4cb9-a792-256436a5e324\",\n {\n method: \"POST\",\n headers: { \"Content-Type\": \"application/json\" },\n body: JSON.stringify({\n location: \"Input.tsx:163\",\n message: \"Reading prefix width\",\n data: {\n prefixWidth,\n previousValue: previousValues.prefixWidth,\n changed: prefixWidthChanged,\n },\n timestamp: Date.now(),\n sessionId: \"debug-session\",\n runId: \"post-fix\",\n hypothesisId: \"C\",\n }),\n }\n ).catch(() => {});\n // #endregion\n // Only set CSS property if value actually changed\n if (prefixWidthChanged) {\n containerRef.current?.style.setProperty(\n \"--prefix-width\",\n `${prefixWidth}px`\n );\n // #region agent log\n previousValues.prefixWidth = prefixWidth;\n fetch(\n \"http://127.0.0.1:7243/ingest/f16ad2de-908b-4cb9-a792-256436a5e324\",\n {\n method: \"POST\",\n headers: { \"Content-Type\": \"application/json\" },\n body: JSON.stringify({\n location: \"Input.tsx:168\",\n message: \"Set prefix-width CSS property\",\n data: { prefixWidth, changed: prefixWidthChanged },\n timestamp: Date.now(),\n sessionId: \"debug-session\",\n runId: \"post-fix\",\n hypothesisId: \"A\",\n }),\n }\n ).catch(() => {});\n // #endregion\n } else {\n // #region agent log\n fetch(\n \"http://127.0.0.1:7243/ingest/f16ad2de-908b-4cb9-a792-256436a5e324\",\n {\n method: \"POST\",\n headers: { \"Content-Type\": \"application/json\" },\n body: JSON.stringify({\n location: \"Input.tsx:168\",\n message: \"Skipped setting prefix-width (unchanged)\",\n data: { prefixWidth, changed: prefixWidthChanged },\n timestamp: Date.now(),\n sessionId: \"debug-session\",\n runId: \"post-fix\",\n hypothesisId: \"C\",\n }),\n }\n ).catch(() => {});\n // #endregion\n }\n }\n\n if (suffixRef.current) {\n const suffixWidth = suffixRef.current.offsetWidth || 32;\n // #region agent log\n const suffixWidthChanged =\n suffixWidth !== previousValues.suffixWidth;\n fetch(\n \"http://127.0.0.1:7243/ingest/f16ad2de-908b-4cb9-a792-256436a5e324\",\n {\n method: \"POST\",\n headers: { \"Content-Type\": \"application/json\" },\n body: JSON.stringify({\n location: \"Input.tsx:174\",\n message: \"Reading suffix width\",\n data: {\n suffixWidth,\n previousValue: previousValues.suffixWidth,\n changed: suffixWidthChanged,\n },\n timestamp: Date.now(),\n sessionId: \"debug-session\",\n runId: \"post-fix\",\n hypothesisId: \"C\",\n }),\n }\n ).catch(() => {});\n // #endregion\n // Only set CSS property if value actually changed\n if (suffixWidthChanged) {\n containerRef.current?.style.setProperty(\n \"--suffix-width\",\n `${suffixWidth}px`\n );\n // #region agent log\n previousValues.suffixWidth = suffixWidth;\n fetch(\n \"http://127.0.0.1:7243/ingest/f16ad2de-908b-4cb9-a792-256436a5e324\",\n {\n method: \"POST\",\n headers: { \"Content-Type\": \"application/json\" },\n body: JSON.stringify({\n location: \"Input.tsx:179\",\n message: \"Set suffix-width CSS property\",\n data: { suffixWidth, changed: suffixWidthChanged },\n timestamp: Date.now(),\n sessionId: \"debug-session\",\n runId: \"post-fix\",\n hypothesisId: \"A\",\n }),\n }\n ).catch(() => {});\n // #endregion\n } else {\n // #region agent log\n fetch(\n \"http://127.0.0.1:7243/ingest/f16ad2de-908b-4cb9-a792-256436a5e324\",\n {\n method: \"POST\",\n headers: { \"Content-Type\": \"application/json\" },\n body: JSON.stringify({\n location: \"Input.tsx:179\",\n message: \"Skipped setting suffix-width (unchanged)\",\n data: { suffixWidth, changed: suffixWidthChanged },\n timestamp: Date.now(),\n sessionId: \"debug-session\",\n runId: \"post-fix\",\n hypothesisId: \"C\",\n }),\n }\n ).catch(() => {});\n // #endregion\n }\n }\n\n // #region agent log\n if (timeSinceLastUpdate < 10) {\n fetch(\n \"http://127.0.0.1:7243/ingest/f16ad2de-908b-4cb9-a792-256436a5e324\",\n {\n method: \"POST\",\n headers: { \"Content-Type\": \"application/json\" },\n body: JSON.stringify({\n location: \"Input.tsx:185\",\n message: \"Rapid callback detected\",\n data: { callbackCount, timeSinceLastUpdate },\n timestamp: Date.now(),\n sessionId: \"debug-session\",\n runId: \"post-fix\",\n hypothesisId: \"E\",\n }),\n }\n ).catch(() => {});\n }\n // #endregion\n });\n };\n\n updateSizes();\n\n const resizeObserver = new ResizeObserver(updateSizes);\n\n if (containerRef.current) {\n resizeObserver.observe(containerRef.current);\n }\n if (prefixRef.current) {\n resizeObserver.observe(prefixRef.current);\n }\n if (suffixRef.current) {\n resizeObserver.observe(suffixRef.current);\n }\n\n return () => {\n if (rafId !== null) {\n cancelAnimationFrame(rafId);\n }\n resizeObserver.disconnect();\n };\n }, [prefix, suffix]);\n\n const inputId = `${name}-input`;\n const errorId = `${name}-error`;\n const descriptionId = `${name}-description`;\n\n return (\n <div ref={containerRef} className=\"proton-Input__container\">\n {description && descriptionPosition === \"top\" && (\n <div\n id={descriptionId}\n className=\"proton-Input__text\"\n aria-live=\"polite\"\n >\n {description}\n </div>\n )}\n <div\n className={csx(\n \"proton-Input__container-inner\",\n prefix && \"proton-Input__has-prefix\",\n suffix && \"proton-Input__has-suffix\"\n )}\n >\n {prefix && (\n <div\n ref={prefixRef}\n className={csx(\n \"proton-Input__descriptor\",\n \"proton-Input__prefix\"\n )}\n >\n {prefix}\n </div>\n )}\n\n <input\n id={inputId}\n name={name}\n type={type}\n value={value}\n onChange={(e: React.ChangeEvent<HTMLInputElement>) => {\n onChange?.(e.target.value);\n }}\n onKeyDown={(e: React.KeyboardEvent<HTMLInputElement>) => {\n switch (e.key) {\n case \"Enter\":\n if (onSubmit) {\n e.preventDefault();\n onSubmit(e);\n }\n break;\n case \"Escape\":\n if (onClear) {\n e.preventDefault();\n onClear();\n }\n break;\n }\n }}\n onCopy={async () =>\n await copyTextToClipboard(inputRef.current?.value)\n }\n disabled={isDisabled}\n readOnly={isReadOnly}\n required={isRequired}\n autoFocus={autoFocus}\n autoComplete={autoComplete ? \"on\" : \"off\"}\n placeholder={label ? undefined : placeholder}\n aria-label={label || name}\n aria-invalid={Boolean(error)}\n aria-errormessage={typeof error === \"string\" ? error : errorId}\n aria-required={isRequired}\n aria-readonly={isReadOnly}\n aria-describedby={\n error ? errorId : description ? descriptionId : undefined\n }\n aria-disabled={isDisabled}\n data-testid={testId}\n ref={ref}\n className={csx(\n \"proton-Input\",\n error && \"proton-Input--error\",\n label && \"proton-Input__label-top\",\n className\n )}\n />\n\n <label\n htmlFor={inputId}\n className={csx(\n \"proton-Input__label\",\n value && \"proton-Input__label--filled\"\n )}\n >\n {label}\n {isRequired && <span aria-hidden=\"true\"> *</span>}\n </label>\n\n {suffix && (\n <div\n ref={suffixRef}\n className={csx(\n \"proton-Input__descriptor\",\n \"proton-Input__suffix\"\n )}\n >\n {suffix}\n </div>\n )}\n </div>\n\n {error ? (\n <div\n role=\"alert\"\n className={csx(\"proton-Input__error\", \"proton-Input__text\")}\n id={errorId}\n >\n {error}\n </div>\n ) : description && descriptionPosition === \"bottom\" ? (\n <div\n id={descriptionId}\n className=\"proton-Input__text\"\n aria-live=\"polite\"\n >\n {description}\n </div>\n ) : null}\n </div>\n );\n }\n);\n\nInput.displayName = \"ProtonUIInput\";\n"],"names":["Input","forwardRef","prefix","suffix","description","descriptionPosition","isDisabled","error","onChange","label","name","placeholder","type","value","autoFocus","autoComplete","isRequired","isReadOnly","onSubmit","onClear","testId","forwardedRef","inputRef","useRef","prefixRef","suffixRef","containerRef","className","useTheme","ref","useEffect","callbackCount","lastUpdateTime","previousValues","rafId","updateSizes","entries","now","timeSinceLastUpdate","triggeredBy","e","containerWidth","containerWidthChanged","prefixWidth","prefixWidthChanged","_a","suffixWidth","suffixWidthChanged","_b","resizeObserver","inputId","errorId","descriptionId","jsxs","jsx","csx","copyTextToClipboard"],"mappings":"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"}
|
|
@@ -1,46 +1,47 @@
|
|
|
1
|
-
import { j as
|
|
2
|
-
import { forwardRef as L, useRef as
|
|
3
|
-
import { useTheme as
|
|
1
|
+
import { j as i } from "../../../node_modules/react/jsx-runtime.es.js";
|
|
2
|
+
import { forwardRef as L, useRef as x, useEffect as G } from "react";
|
|
3
|
+
import { useTheme as H } from "../../ThemeProvider.es.js";
|
|
4
4
|
/* empty css */
|
|
5
|
-
import { copyTextToClipboard as
|
|
6
|
-
import { csx as
|
|
7
|
-
const
|
|
5
|
+
import { copyTextToClipboard as M } from "../../../utils/copy.es.js";
|
|
6
|
+
import { csx as d } from "../../../utils/string.es.js";
|
|
7
|
+
const Q = L(
|
|
8
8
|
({
|
|
9
9
|
prefix: u,
|
|
10
|
-
suffix:
|
|
11
|
-
description:
|
|
12
|
-
descriptionPosition:
|
|
13
|
-
isDisabled:
|
|
10
|
+
suffix: l,
|
|
11
|
+
description: r,
|
|
12
|
+
descriptionPosition: T = "top",
|
|
13
|
+
isDisabled: O,
|
|
14
14
|
error: o,
|
|
15
15
|
onChange: y,
|
|
16
|
-
label:
|
|
16
|
+
label: m,
|
|
17
17
|
name: p,
|
|
18
18
|
placeholder: $,
|
|
19
19
|
type: E = "text",
|
|
20
20
|
value: j,
|
|
21
21
|
autoFocus: z,
|
|
22
|
-
autoComplete:
|
|
22
|
+
autoComplete: F,
|
|
23
23
|
isRequired: b = !1,
|
|
24
|
-
isReadOnly:
|
|
24
|
+
isReadOnly: C = !1,
|
|
25
25
|
onSubmit: N,
|
|
26
|
-
onClear:
|
|
26
|
+
onClear: W,
|
|
27
27
|
"data-testid": V
|
|
28
28
|
}, U) => {
|
|
29
|
-
const
|
|
30
|
-
|
|
29
|
+
const D = x(null), c = x(null), h = x(null), s = x(null), { className: B } = H(), q = U || D;
|
|
30
|
+
G(() => {
|
|
31
31
|
if (!s.current) return;
|
|
32
|
-
let
|
|
32
|
+
let n = 0, k = Date.now();
|
|
33
33
|
const a = {
|
|
34
34
|
containerWidth: 0,
|
|
35
35
|
prefixWidth: 0,
|
|
36
36
|
suffixWidth: 0
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
37
|
+
};
|
|
38
|
+
let f = null;
|
|
39
|
+
const J = (_) => {
|
|
40
|
+
n++;
|
|
41
|
+
const R = Date.now(), v = R - k;
|
|
42
|
+
k = R;
|
|
43
|
+
const K = (_ == null ? void 0 : _.map((I) => I.target.className || "unknown").join(",")) || "initial";
|
|
44
|
+
fetch(
|
|
44
45
|
"http://127.0.0.1:7243/ingest/f16ad2de-908b-4cb9-a792-256436a5e324",
|
|
45
46
|
{
|
|
46
47
|
method: "POST",
|
|
@@ -48,295 +49,348 @@ const M = L(
|
|
|
48
49
|
body: JSON.stringify({
|
|
49
50
|
location: "Input.tsx:149",
|
|
50
51
|
message: "ResizeObserver callback invoked",
|
|
51
|
-
data: { callbackCount:
|
|
52
|
+
data: { callbackCount: n, timeSinceLastUpdate: v, triggeredBy: K },
|
|
52
53
|
timestamp: Date.now(),
|
|
53
54
|
sessionId: "debug-session",
|
|
54
|
-
runId: "
|
|
55
|
+
runId: "post-fix",
|
|
55
56
|
hypothesisId: "A"
|
|
56
57
|
})
|
|
57
58
|
}
|
|
58
59
|
).catch(() => {
|
|
59
|
-
}),
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
60
|
+
}), f !== null && cancelAnimationFrame(f), f = requestAnimationFrame(() => {
|
|
61
|
+
var I, A;
|
|
62
|
+
if (s.current) {
|
|
63
|
+
if (s.current) {
|
|
64
|
+
const t = s.current.offsetWidth || 200, e = t !== a.containerWidth;
|
|
65
|
+
fetch(
|
|
66
|
+
"http://127.0.0.1:7243/ingest/f16ad2de-908b-4cb9-a792-256436a5e324",
|
|
67
|
+
{
|
|
68
|
+
method: "POST",
|
|
69
|
+
headers: { "Content-Type": "application/json" },
|
|
70
|
+
body: JSON.stringify({
|
|
71
|
+
location: "Input.tsx:152",
|
|
72
|
+
message: "Reading container width",
|
|
73
|
+
data: {
|
|
74
|
+
containerWidth: t,
|
|
75
|
+
previousValue: a.containerWidth,
|
|
76
|
+
changed: e
|
|
77
|
+
},
|
|
78
|
+
timestamp: Date.now(),
|
|
79
|
+
sessionId: "debug-session",
|
|
80
|
+
runId: "post-fix",
|
|
81
|
+
hypothesisId: "C"
|
|
82
|
+
})
|
|
83
|
+
}
|
|
84
|
+
).catch(() => {
|
|
85
|
+
}), e ? (s.current.style.setProperty(
|
|
86
|
+
"--container-width",
|
|
87
|
+
`${t}px`
|
|
88
|
+
), a.containerWidth = t, fetch(
|
|
89
|
+
"http://127.0.0.1:7243/ingest/f16ad2de-908b-4cb9-a792-256436a5e324",
|
|
90
|
+
{
|
|
91
|
+
method: "POST",
|
|
92
|
+
headers: { "Content-Type": "application/json" },
|
|
93
|
+
body: JSON.stringify({
|
|
94
|
+
location: "Input.tsx:157",
|
|
95
|
+
message: "Set container-width CSS property",
|
|
96
|
+
data: { containerWidth: t, changed: e },
|
|
97
|
+
timestamp: Date.now(),
|
|
98
|
+
sessionId: "debug-session",
|
|
99
|
+
runId: "post-fix",
|
|
100
|
+
hypothesisId: "A"
|
|
101
|
+
})
|
|
102
|
+
}
|
|
103
|
+
).catch(() => {
|
|
104
|
+
})) : fetch(
|
|
105
|
+
"http://127.0.0.1:7243/ingest/f16ad2de-908b-4cb9-a792-256436a5e324",
|
|
106
|
+
{
|
|
107
|
+
method: "POST",
|
|
108
|
+
headers: { "Content-Type": "application/json" },
|
|
109
|
+
body: JSON.stringify({
|
|
110
|
+
location: "Input.tsx:157",
|
|
111
|
+
message: "Skipped setting container-width (unchanged)",
|
|
112
|
+
data: { containerWidth: t, changed: e },
|
|
113
|
+
timestamp: Date.now(),
|
|
114
|
+
sessionId: "debug-session",
|
|
115
|
+
runId: "post-fix",
|
|
116
|
+
hypothesisId: "C"
|
|
117
|
+
})
|
|
118
|
+
}
|
|
119
|
+
).catch(() => {
|
|
120
|
+
});
|
|
98
121
|
}
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
})
|
|
122
|
+
if (c.current) {
|
|
123
|
+
const t = c.current.offsetWidth || 32, e = t !== a.prefixWidth;
|
|
124
|
+
fetch(
|
|
125
|
+
"http://127.0.0.1:7243/ingest/f16ad2de-908b-4cb9-a792-256436a5e324",
|
|
126
|
+
{
|
|
127
|
+
method: "POST",
|
|
128
|
+
headers: { "Content-Type": "application/json" },
|
|
129
|
+
body: JSON.stringify({
|
|
130
|
+
location: "Input.tsx:163",
|
|
131
|
+
message: "Reading prefix width",
|
|
132
|
+
data: {
|
|
133
|
+
prefixWidth: t,
|
|
134
|
+
previousValue: a.prefixWidth,
|
|
135
|
+
changed: e
|
|
136
|
+
},
|
|
137
|
+
timestamp: Date.now(),
|
|
138
|
+
sessionId: "debug-session",
|
|
139
|
+
runId: "post-fix",
|
|
140
|
+
hypothesisId: "C"
|
|
141
|
+
})
|
|
142
|
+
}
|
|
143
|
+
).catch(() => {
|
|
144
|
+
}), e ? ((I = s.current) == null || I.style.setProperty(
|
|
145
|
+
"--prefix-width",
|
|
146
|
+
`${t}px`
|
|
147
|
+
), a.prefixWidth = t, fetch(
|
|
148
|
+
"http://127.0.0.1:7243/ingest/f16ad2de-908b-4cb9-a792-256436a5e324",
|
|
149
|
+
{
|
|
150
|
+
method: "POST",
|
|
151
|
+
headers: { "Content-Type": "application/json" },
|
|
152
|
+
body: JSON.stringify({
|
|
153
|
+
location: "Input.tsx:168",
|
|
154
|
+
message: "Set prefix-width CSS property",
|
|
155
|
+
data: { prefixWidth: t, changed: e },
|
|
156
|
+
timestamp: Date.now(),
|
|
157
|
+
sessionId: "debug-session",
|
|
158
|
+
runId: "post-fix",
|
|
159
|
+
hypothesisId: "A"
|
|
160
|
+
})
|
|
161
|
+
}
|
|
162
|
+
).catch(() => {
|
|
163
|
+
})) : fetch(
|
|
164
|
+
"http://127.0.0.1:7243/ingest/f16ad2de-908b-4cb9-a792-256436a5e324",
|
|
165
|
+
{
|
|
166
|
+
method: "POST",
|
|
167
|
+
headers: { "Content-Type": "application/json" },
|
|
168
|
+
body: JSON.stringify({
|
|
169
|
+
location: "Input.tsx:168",
|
|
170
|
+
message: "Skipped setting prefix-width (unchanged)",
|
|
171
|
+
data: { prefixWidth: t, changed: e },
|
|
172
|
+
timestamp: Date.now(),
|
|
173
|
+
sessionId: "debug-session",
|
|
174
|
+
runId: "post-fix",
|
|
175
|
+
hypothesisId: "C"
|
|
176
|
+
})
|
|
177
|
+
}
|
|
178
|
+
).catch(() => {
|
|
179
|
+
});
|
|
122
180
|
}
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
181
|
+
if (h.current) {
|
|
182
|
+
const t = h.current.offsetWidth || 32, e = t !== a.suffixWidth;
|
|
183
|
+
fetch(
|
|
184
|
+
"http://127.0.0.1:7243/ingest/f16ad2de-908b-4cb9-a792-256436a5e324",
|
|
185
|
+
{
|
|
186
|
+
method: "POST",
|
|
187
|
+
headers: { "Content-Type": "application/json" },
|
|
188
|
+
body: JSON.stringify({
|
|
189
|
+
location: "Input.tsx:174",
|
|
190
|
+
message: "Reading suffix width",
|
|
191
|
+
data: {
|
|
192
|
+
suffixWidth: t,
|
|
193
|
+
previousValue: a.suffixWidth,
|
|
194
|
+
changed: e
|
|
195
|
+
},
|
|
196
|
+
timestamp: Date.now(),
|
|
197
|
+
sessionId: "debug-session",
|
|
198
|
+
runId: "post-fix",
|
|
199
|
+
hypothesisId: "C"
|
|
200
|
+
})
|
|
201
|
+
}
|
|
202
|
+
).catch(() => {
|
|
203
|
+
}), e ? ((A = s.current) == null || A.style.setProperty(
|
|
204
|
+
"--suffix-width",
|
|
205
|
+
`${t}px`
|
|
206
|
+
), a.suffixWidth = t, fetch(
|
|
207
|
+
"http://127.0.0.1:7243/ingest/f16ad2de-908b-4cb9-a792-256436a5e324",
|
|
208
|
+
{
|
|
209
|
+
method: "POST",
|
|
210
|
+
headers: { "Content-Type": "application/json" },
|
|
211
|
+
body: JSON.stringify({
|
|
212
|
+
location: "Input.tsx:179",
|
|
213
|
+
message: "Set suffix-width CSS property",
|
|
214
|
+
data: { suffixWidth: t, changed: e },
|
|
215
|
+
timestamp: Date.now(),
|
|
216
|
+
sessionId: "debug-session",
|
|
217
|
+
runId: "post-fix",
|
|
218
|
+
hypothesisId: "A"
|
|
219
|
+
})
|
|
220
|
+
}
|
|
221
|
+
).catch(() => {
|
|
222
|
+
})) : fetch(
|
|
223
|
+
"http://127.0.0.1:7243/ingest/f16ad2de-908b-4cb9-a792-256436a5e324",
|
|
224
|
+
{
|
|
225
|
+
method: "POST",
|
|
226
|
+
headers: { "Content-Type": "application/json" },
|
|
227
|
+
body: JSON.stringify({
|
|
228
|
+
location: "Input.tsx:179",
|
|
229
|
+
message: "Skipped setting suffix-width (unchanged)",
|
|
230
|
+
data: { suffixWidth: t, changed: e },
|
|
231
|
+
timestamp: Date.now(),
|
|
232
|
+
sessionId: "debug-session",
|
|
233
|
+
runId: "post-fix",
|
|
234
|
+
hypothesisId: "C"
|
|
235
|
+
})
|
|
236
|
+
}
|
|
237
|
+
).catch(() => {
|
|
238
|
+
});
|
|
141
239
|
}
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
},
|
|
160
|
-
timestamp: Date.now(),
|
|
161
|
-
sessionId: "debug-session",
|
|
162
|
-
runId: "run1",
|
|
163
|
-
hypothesisId: "C"
|
|
164
|
-
})
|
|
165
|
-
}
|
|
166
|
-
).catch(() => {
|
|
167
|
-
}), (J = s.current) == null || J.style.setProperty(
|
|
168
|
-
"--suffix-width",
|
|
169
|
-
`${t}px`
|
|
170
|
-
), a.suffixWidth = t, fetch(
|
|
171
|
-
"http://127.0.0.1:7243/ingest/f16ad2de-908b-4cb9-a792-256436a5e324",
|
|
172
|
-
{
|
|
173
|
-
method: "POST",
|
|
174
|
-
headers: { "Content-Type": "application/json" },
|
|
175
|
-
body: JSON.stringify({
|
|
176
|
-
location: "Input.tsx:179",
|
|
177
|
-
message: "Set suffix-width CSS property",
|
|
178
|
-
data: { suffixWidth: t, changed: i },
|
|
179
|
-
timestamp: Date.now(),
|
|
180
|
-
sessionId: "debug-session",
|
|
181
|
-
runId: "run1",
|
|
182
|
-
hypothesisId: "A"
|
|
183
|
-
})
|
|
184
|
-
}
|
|
185
|
-
).catch(() => {
|
|
186
|
-
});
|
|
187
|
-
}
|
|
188
|
-
v < 10 && fetch(
|
|
189
|
-
"http://127.0.0.1:7243/ingest/f16ad2de-908b-4cb9-a792-256436a5e324",
|
|
190
|
-
{
|
|
191
|
-
method: "POST",
|
|
192
|
-
headers: { "Content-Type": "application/json" },
|
|
193
|
-
body: JSON.stringify({
|
|
194
|
-
location: "Input.tsx:185",
|
|
195
|
-
message: "Rapid callback detected",
|
|
196
|
-
data: { callbackCount: e, timeSinceLastUpdate: v },
|
|
197
|
-
timestamp: Date.now(),
|
|
198
|
-
sessionId: "debug-session",
|
|
199
|
-
runId: "run1",
|
|
200
|
-
hypothesisId: "E"
|
|
201
|
-
})
|
|
240
|
+
v < 10 && fetch(
|
|
241
|
+
"http://127.0.0.1:7243/ingest/f16ad2de-908b-4cb9-a792-256436a5e324",
|
|
242
|
+
{
|
|
243
|
+
method: "POST",
|
|
244
|
+
headers: { "Content-Type": "application/json" },
|
|
245
|
+
body: JSON.stringify({
|
|
246
|
+
location: "Input.tsx:185",
|
|
247
|
+
message: "Rapid callback detected",
|
|
248
|
+
data: { callbackCount: n, timeSinceLastUpdate: v },
|
|
249
|
+
timestamp: Date.now(),
|
|
250
|
+
sessionId: "debug-session",
|
|
251
|
+
runId: "post-fix",
|
|
252
|
+
hypothesisId: "E"
|
|
253
|
+
})
|
|
254
|
+
}
|
|
255
|
+
).catch(() => {
|
|
256
|
+
});
|
|
202
257
|
}
|
|
203
|
-
).catch(() => {
|
|
204
258
|
});
|
|
205
259
|
};
|
|
206
|
-
|
|
207
|
-
const
|
|
208
|
-
return s.current &&
|
|
209
|
-
|
|
260
|
+
J();
|
|
261
|
+
const g = new ResizeObserver(J);
|
|
262
|
+
return s.current && g.observe(s.current), c.current && g.observe(c.current), h.current && g.observe(h.current), () => {
|
|
263
|
+
f !== null && cancelAnimationFrame(f), g.disconnect();
|
|
210
264
|
};
|
|
211
|
-
}, [u,
|
|
212
|
-
const
|
|
213
|
-
return /* @__PURE__ */
|
|
214
|
-
|
|
265
|
+
}, [u, l]);
|
|
266
|
+
const P = `${p}-input`, S = `${p}-error`, w = `${p}-description`;
|
|
267
|
+
return /* @__PURE__ */ i.jsxs("div", { ref: s, className: "proton-Input__container", children: [
|
|
268
|
+
r && T === "top" && /* @__PURE__ */ i.jsx(
|
|
215
269
|
"div",
|
|
216
270
|
{
|
|
217
|
-
id:
|
|
271
|
+
id: w,
|
|
218
272
|
className: "proton-Input__text",
|
|
219
273
|
"aria-live": "polite",
|
|
220
|
-
children:
|
|
274
|
+
children: r
|
|
221
275
|
}
|
|
222
276
|
),
|
|
223
|
-
/* @__PURE__ */
|
|
277
|
+
/* @__PURE__ */ i.jsxs(
|
|
224
278
|
"div",
|
|
225
279
|
{
|
|
226
|
-
className:
|
|
280
|
+
className: d(
|
|
227
281
|
"proton-Input__container-inner",
|
|
228
282
|
u && "proton-Input__has-prefix",
|
|
229
|
-
|
|
283
|
+
l && "proton-Input__has-suffix"
|
|
230
284
|
),
|
|
231
285
|
children: [
|
|
232
|
-
u && /* @__PURE__ */
|
|
286
|
+
u && /* @__PURE__ */ i.jsx(
|
|
233
287
|
"div",
|
|
234
288
|
{
|
|
235
289
|
ref: c,
|
|
236
|
-
className:
|
|
290
|
+
className: d(
|
|
237
291
|
"proton-Input__descriptor",
|
|
238
292
|
"proton-Input__prefix"
|
|
239
293
|
),
|
|
240
294
|
children: u
|
|
241
295
|
}
|
|
242
296
|
),
|
|
243
|
-
/* @__PURE__ */
|
|
297
|
+
/* @__PURE__ */ i.jsx(
|
|
244
298
|
"input",
|
|
245
299
|
{
|
|
246
|
-
id:
|
|
300
|
+
id: P,
|
|
247
301
|
name: p,
|
|
248
302
|
type: E,
|
|
249
303
|
value: j,
|
|
250
|
-
onChange: (
|
|
251
|
-
y == null || y(
|
|
304
|
+
onChange: (n) => {
|
|
305
|
+
y == null || y(n.target.value);
|
|
252
306
|
},
|
|
253
|
-
onKeyDown: (
|
|
254
|
-
switch (
|
|
307
|
+
onKeyDown: (n) => {
|
|
308
|
+
switch (n.key) {
|
|
255
309
|
case "Enter":
|
|
256
|
-
N && (
|
|
310
|
+
N && (n.preventDefault(), N(n));
|
|
257
311
|
break;
|
|
258
312
|
case "Escape":
|
|
259
|
-
|
|
313
|
+
W && (n.preventDefault(), W());
|
|
260
314
|
break;
|
|
261
315
|
}
|
|
262
316
|
},
|
|
263
317
|
onCopy: async () => {
|
|
264
|
-
var
|
|
265
|
-
return await
|
|
318
|
+
var n;
|
|
319
|
+
return await M((n = D.current) == null ? void 0 : n.value);
|
|
266
320
|
},
|
|
267
|
-
disabled:
|
|
268
|
-
readOnly:
|
|
321
|
+
disabled: O,
|
|
322
|
+
readOnly: C,
|
|
269
323
|
required: b,
|
|
270
324
|
autoFocus: z,
|
|
271
|
-
autoComplete:
|
|
272
|
-
placeholder:
|
|
273
|
-
"aria-label":
|
|
325
|
+
autoComplete: F ? "on" : "off",
|
|
326
|
+
placeholder: m ? void 0 : $,
|
|
327
|
+
"aria-label": m || p,
|
|
274
328
|
"aria-invalid": !!o,
|
|
275
|
-
"aria-errormessage": typeof o == "string" ? o :
|
|
329
|
+
"aria-errormessage": typeof o == "string" ? o : S,
|
|
276
330
|
"aria-required": b,
|
|
277
|
-
"aria-readonly":
|
|
278
|
-
"aria-describedby": o ?
|
|
279
|
-
"aria-disabled":
|
|
331
|
+
"aria-readonly": C,
|
|
332
|
+
"aria-describedby": o ? S : r ? w : void 0,
|
|
333
|
+
"aria-disabled": O,
|
|
280
334
|
"data-testid": V,
|
|
281
|
-
ref:
|
|
282
|
-
className:
|
|
335
|
+
ref: q,
|
|
336
|
+
className: d(
|
|
283
337
|
"proton-Input",
|
|
284
338
|
o && "proton-Input--error",
|
|
285
|
-
|
|
339
|
+
m && "proton-Input__label-top",
|
|
286
340
|
B
|
|
287
341
|
)
|
|
288
342
|
}
|
|
289
343
|
),
|
|
290
|
-
/* @__PURE__ */
|
|
344
|
+
/* @__PURE__ */ i.jsxs(
|
|
291
345
|
"label",
|
|
292
346
|
{
|
|
293
|
-
htmlFor:
|
|
294
|
-
className:
|
|
347
|
+
htmlFor: P,
|
|
348
|
+
className: d(
|
|
295
349
|
"proton-Input__label",
|
|
296
350
|
j && "proton-Input__label--filled"
|
|
297
351
|
),
|
|
298
352
|
children: [
|
|
299
|
-
|
|
300
|
-
b && /* @__PURE__ */
|
|
353
|
+
m,
|
|
354
|
+
b && /* @__PURE__ */ i.jsx("span", { "aria-hidden": "true", children: " *" })
|
|
301
355
|
]
|
|
302
356
|
}
|
|
303
357
|
),
|
|
304
|
-
|
|
358
|
+
l && /* @__PURE__ */ i.jsx(
|
|
305
359
|
"div",
|
|
306
360
|
{
|
|
307
361
|
ref: h,
|
|
308
|
-
className:
|
|
362
|
+
className: d(
|
|
309
363
|
"proton-Input__descriptor",
|
|
310
364
|
"proton-Input__suffix"
|
|
311
365
|
),
|
|
312
|
-
children:
|
|
366
|
+
children: l
|
|
313
367
|
}
|
|
314
368
|
)
|
|
315
369
|
]
|
|
316
370
|
}
|
|
317
371
|
),
|
|
318
|
-
o ? /* @__PURE__ */
|
|
372
|
+
o ? /* @__PURE__ */ i.jsx(
|
|
319
373
|
"div",
|
|
320
374
|
{
|
|
321
375
|
role: "alert",
|
|
322
|
-
className:
|
|
323
|
-
id:
|
|
376
|
+
className: d("proton-Input__error", "proton-Input__text"),
|
|
377
|
+
id: S,
|
|
324
378
|
children: o
|
|
325
379
|
}
|
|
326
|
-
) :
|
|
380
|
+
) : r && T === "bottom" ? /* @__PURE__ */ i.jsx(
|
|
327
381
|
"div",
|
|
328
382
|
{
|
|
329
|
-
id:
|
|
383
|
+
id: w,
|
|
330
384
|
className: "proton-Input__text",
|
|
331
385
|
"aria-live": "polite",
|
|
332
|
-
children:
|
|
386
|
+
children: r
|
|
333
387
|
}
|
|
334
388
|
) : null
|
|
335
389
|
] });
|
|
336
390
|
}
|
|
337
391
|
);
|
|
338
|
-
|
|
392
|
+
Q.displayName = "ProtonUIInput";
|
|
339
393
|
export {
|
|
340
|
-
|
|
394
|
+
Q as Input
|
|
341
395
|
};
|
|
342
396
|
//# sourceMappingURL=Input.es.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Input.es.js","sources":["../../../../src/components/Input/BaseInput/Input.tsx"],"sourcesContent":["\"use client\";\n\nimport React, { forwardRef, useEffect, useRef } from \"react\";\n\nimport { useTheme } from \"../../ThemeProvider\";\nimport { csx } from \"../../../utils\";\nimport \"./Input.css\";\nimport { copyTextToClipboard } from \"../../../utils/copy\";\n\nexport interface BaseInputProps {\n /**\n * onChange handler for the input\n */\n onChange?: (value: string) => void;\n\n /** Whether the input is disabled. */\n isDisabled?: boolean;\n\n /** Description text shown above the input. */\n description?: React.ReactNode | string;\n\n /**\n * The position of the description text.\n * @default \"top\"\n */\n descriptionPosition?: \"top\" | \"bottom\";\n\n /** Error state that changes the input's visual style and displays an error message. */\n error?: React.ReactNode | string;\n\n /**\n * Label for the input element.\n * @note When a label is provided, the input will have extra padding, and the label will float above the text input when focused or filled.\n */\n label?: string;\n\n /** Test ID for the component. */\n \"data-testid\"?: string;\n\n /** Content to display before the input. Typically used for icons. */\n prefix?: React.ReactNode;\n\n /** Content to display after the input. Typically used for icons. */\n suffix?: React.ReactNode;\n\n /**\n * Should the browser's autocomplete be enabled?\n * @external https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/autocomplete\n */\n autoComplete?: boolean;\n\n /**\n * Should the input be autofocused?\n * @external https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/autofocus\n */\n autoFocus?: boolean;\n\n /**\n * The name attribute of the input element.\n * @external https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/name\n */\n name: string;\n\n /**\n * The placeholder text to display when the input is empty.\n * @note label takes precedence over placeholder, if both are provided.\n * @external https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/placeholder\n */\n placeholder?: string;\n\n /**\n * The type attribute of the input element.\n * @external https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/type\n * @default \"text\"\n */\n type?: string;\n\n /**\n * The value of the input.\n * @external https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#value\n */\n value?: string;\n\n /**\n * Whether the input is required.\n * @default false\n */\n isRequired?: boolean;\n\n /**\n * Whether the input is read-only.\n * @default false\n */\n isReadOnly?: boolean;\n\n /**\n * Called when the input is submitted (e.g. by pressing Enter).\n */\n onSubmit?: React.FormEventHandler<HTMLInputElement>;\n\n /**\n * Called when the input is cleared (e.g. by pressing Escape).\n */\n onClear?: () => void;\n}\n\n/**\n * A controlled and customizable input component with support for labels, prefixes, suffixes, and error states.\n *\n * API:\n * - {@link BaseInputProps}\n */\nexport const Input = forwardRef<HTMLInputElement, BaseInputProps>(\n (\n {\n prefix,\n suffix,\n description,\n descriptionPosition = \"top\",\n isDisabled,\n error,\n onChange,\n label,\n name,\n placeholder,\n type = \"text\",\n value,\n autoFocus,\n autoComplete,\n isRequired = false,\n isReadOnly = false,\n onSubmit,\n onClear,\n \"data-testid\": testId,\n },\n forwardedRef: React.RefObject<HTMLInputElement>\n ) => {\n const inputRef = useRef<HTMLInputElement>(null);\n const prefixRef = useRef<HTMLDivElement>(null);\n const suffixRef = useRef<HTMLDivElement>(null);\n const containerRef = useRef<HTMLDivElement>(null);\n const { className } = useTheme();\n const ref = forwardedRef || inputRef;\n\n // Control dynamic prefix and suffix widths using ResizeObserver\n useEffect(() => {\n if (!containerRef.current) return;\n\n // #region agent log\n let callbackCount = 0;\n let lastUpdateTime = Date.now();\n const previousValues = {\n containerWidth: 0,\n prefixWidth: 0,\n suffixWidth: 0,\n };\n // #endregion\n\n const updateSizes = (entries?: ResizeObserverEntry[]) => {\n // #region agent log\n callbackCount++;\n const now = Date.now();\n const timeSinceLastUpdate = now - lastUpdateTime;\n lastUpdateTime = now;\n const triggeredBy =\n entries?.map((e) => e.target.className || \"unknown\").join(\",\") ||\n \"initial\";\n fetch(\n \"http://127.0.0.1:7243/ingest/f16ad2de-908b-4cb9-a792-256436a5e324\",\n {\n method: \"POST\",\n headers: { \"Content-Type\": \"application/json\" },\n body: JSON.stringify({\n location: \"Input.tsx:149\",\n message: \"ResizeObserver callback invoked\",\n data: { callbackCount, timeSinceLastUpdate, triggeredBy },\n timestamp: Date.now(),\n sessionId: \"debug-session\",\n runId: \"run1\",\n hypothesisId: \"A\",\n }),\n }\n ).catch(() => {});\n // #endregion\n\n if (containerRef.current) {\n const containerWidth = containerRef.current.offsetWidth || 200;\n // #region agent log\n const containerWidthChanged =\n containerWidth !== previousValues.containerWidth;\n fetch(\n \"http://127.0.0.1:7243/ingest/f16ad2de-908b-4cb9-a792-256436a5e324\",\n {\n method: \"POST\",\n headers: { \"Content-Type\": \"application/json\" },\n body: JSON.stringify({\n location: \"Input.tsx:152\",\n message: \"Reading container width\",\n data: {\n containerWidth,\n previousValue: previousValues.containerWidth,\n changed: containerWidthChanged,\n },\n timestamp: Date.now(),\n sessionId: \"debug-session\",\n runId: \"run1\",\n hypothesisId: \"C\",\n }),\n }\n ).catch(() => {});\n // #endregion\n containerRef.current.style.setProperty(\n \"--container-width\",\n `${containerWidth}px`\n );\n // #region agent log\n previousValues.containerWidth = containerWidth;\n fetch(\n \"http://127.0.0.1:7243/ingest/f16ad2de-908b-4cb9-a792-256436a5e324\",\n {\n method: \"POST\",\n headers: { \"Content-Type\": \"application/json\" },\n body: JSON.stringify({\n location: \"Input.tsx:157\",\n message: \"Set container-width CSS property\",\n data: { containerWidth, changed: containerWidthChanged },\n timestamp: Date.now(),\n sessionId: \"debug-session\",\n runId: \"run1\",\n hypothesisId: \"A\",\n }),\n }\n ).catch(() => {});\n // #endregion\n }\n\n if (prefixRef.current) {\n const prefixWidth = prefixRef.current.offsetWidth || 32;\n // #region agent log\n const prefixWidthChanged = prefixWidth !== previousValues.prefixWidth;\n fetch(\n \"http://127.0.0.1:7243/ingest/f16ad2de-908b-4cb9-a792-256436a5e324\",\n {\n method: \"POST\",\n headers: { \"Content-Type\": \"application/json\" },\n body: JSON.stringify({\n location: \"Input.tsx:163\",\n message: \"Reading prefix width\",\n data: {\n prefixWidth,\n previousValue: previousValues.prefixWidth,\n changed: prefixWidthChanged,\n },\n timestamp: Date.now(),\n sessionId: \"debug-session\",\n runId: \"run1\",\n hypothesisId: \"C\",\n }),\n }\n ).catch(() => {});\n // #endregion\n containerRef.current?.style.setProperty(\n \"--prefix-width\",\n `${prefixWidth}px`\n );\n // #region agent log\n previousValues.prefixWidth = prefixWidth;\n fetch(\n \"http://127.0.0.1:7243/ingest/f16ad2de-908b-4cb9-a792-256436a5e324\",\n {\n method: \"POST\",\n headers: { \"Content-Type\": \"application/json\" },\n body: JSON.stringify({\n location: \"Input.tsx:168\",\n message: \"Set prefix-width CSS property\",\n data: { prefixWidth, changed: prefixWidthChanged },\n timestamp: Date.now(),\n sessionId: \"debug-session\",\n runId: \"run1\",\n hypothesisId: \"A\",\n }),\n }\n ).catch(() => {});\n // #endregion\n }\n\n if (suffixRef.current) {\n const suffixWidth = suffixRef.current.offsetWidth || 32;\n // #region agent log\n const suffixWidthChanged = suffixWidth !== previousValues.suffixWidth;\n fetch(\n \"http://127.0.0.1:7243/ingest/f16ad2de-908b-4cb9-a792-256436a5e324\",\n {\n method: \"POST\",\n headers: { \"Content-Type\": \"application/json\" },\n body: JSON.stringify({\n location: \"Input.tsx:174\",\n message: \"Reading suffix width\",\n data: {\n suffixWidth,\n previousValue: previousValues.suffixWidth,\n changed: suffixWidthChanged,\n },\n timestamp: Date.now(),\n sessionId: \"debug-session\",\n runId: \"run1\",\n hypothesisId: \"C\",\n }),\n }\n ).catch(() => {});\n // #endregion\n containerRef.current?.style.setProperty(\n \"--suffix-width\",\n `${suffixWidth}px`\n );\n // #region agent log\n previousValues.suffixWidth = suffixWidth;\n fetch(\n \"http://127.0.0.1:7243/ingest/f16ad2de-908b-4cb9-a792-256436a5e324\",\n {\n method: \"POST\",\n headers: { \"Content-Type\": \"application/json\" },\n body: JSON.stringify({\n location: \"Input.tsx:179\",\n message: \"Set suffix-width CSS property\",\n data: { suffixWidth, changed: suffixWidthChanged },\n timestamp: Date.now(),\n sessionId: \"debug-session\",\n runId: \"run1\",\n hypothesisId: \"A\",\n }),\n }\n ).catch(() => {});\n // #endregion\n }\n\n // #region agent log\n if (timeSinceLastUpdate < 10) {\n fetch(\n \"http://127.0.0.1:7243/ingest/f16ad2de-908b-4cb9-a792-256436a5e324\",\n {\n method: \"POST\",\n headers: { \"Content-Type\": \"application/json\" },\n body: JSON.stringify({\n location: \"Input.tsx:185\",\n message: \"Rapid callback detected\",\n data: { callbackCount, timeSinceLastUpdate },\n timestamp: Date.now(),\n sessionId: \"debug-session\",\n runId: \"run1\",\n hypothesisId: \"E\",\n }),\n }\n ).catch(() => {});\n }\n // #endregion\n };\n\n updateSizes();\n\n const resizeObserver = new ResizeObserver(updateSizes);\n\n if (containerRef.current) {\n resizeObserver.observe(containerRef.current);\n }\n if (prefixRef.current) {\n resizeObserver.observe(prefixRef.current);\n }\n if (suffixRef.current) {\n resizeObserver.observe(suffixRef.current);\n }\n\n return () => {\n resizeObserver.disconnect();\n };\n }, [prefix, suffix]);\n\n const inputId = `${name}-input`;\n const errorId = `${name}-error`;\n const descriptionId = `${name}-description`;\n\n return (\n <div ref={containerRef} className=\"proton-Input__container\">\n {description && descriptionPosition === \"top\" && (\n <div\n id={descriptionId}\n className=\"proton-Input__text\"\n aria-live=\"polite\"\n >\n {description}\n </div>\n )}\n <div\n className={csx(\n \"proton-Input__container-inner\",\n prefix && \"proton-Input__has-prefix\",\n suffix && \"proton-Input__has-suffix\"\n )}\n >\n {prefix && (\n <div\n ref={prefixRef}\n className={csx(\n \"proton-Input__descriptor\",\n \"proton-Input__prefix\"\n )}\n >\n {prefix}\n </div>\n )}\n\n <input\n id={inputId}\n name={name}\n type={type}\n value={value}\n onChange={(e: React.ChangeEvent<HTMLInputElement>) => {\n onChange?.(e.target.value);\n }}\n onKeyDown={(e: React.KeyboardEvent<HTMLInputElement>) => {\n switch (e.key) {\n case \"Enter\":\n if (onSubmit) {\n e.preventDefault();\n onSubmit(e);\n }\n break;\n case \"Escape\":\n if (onClear) {\n e.preventDefault();\n onClear();\n }\n break;\n }\n }}\n onCopy={async () =>\n await copyTextToClipboard(inputRef.current?.value)\n }\n disabled={isDisabled}\n readOnly={isReadOnly}\n required={isRequired}\n autoFocus={autoFocus}\n autoComplete={autoComplete ? \"on\" : \"off\"}\n placeholder={label ? undefined : placeholder}\n aria-label={label || name}\n aria-invalid={Boolean(error)}\n aria-errormessage={typeof error === \"string\" ? error : errorId}\n aria-required={isRequired}\n aria-readonly={isReadOnly}\n aria-describedby={\n error ? errorId : description ? descriptionId : undefined\n }\n aria-disabled={isDisabled}\n data-testid={testId}\n ref={ref}\n className={csx(\n \"proton-Input\",\n error && \"proton-Input--error\",\n label && \"proton-Input__label-top\",\n className\n )}\n />\n\n <label\n htmlFor={inputId}\n className={csx(\n \"proton-Input__label\",\n value && \"proton-Input__label--filled\"\n )}\n >\n {label}\n {isRequired && <span aria-hidden=\"true\"> *</span>}\n </label>\n\n {suffix && (\n <div\n ref={suffixRef}\n className={csx(\n \"proton-Input__descriptor\",\n \"proton-Input__suffix\"\n )}\n >\n {suffix}\n </div>\n )}\n </div>\n\n {error ? (\n <div\n role=\"alert\"\n className={csx(\"proton-Input__error\", \"proton-Input__text\")}\n id={errorId}\n >\n {error}\n </div>\n ) : description && descriptionPosition === \"bottom\" ? (\n <div\n id={descriptionId}\n className=\"proton-Input__text\"\n aria-live=\"polite\"\n >\n {description}\n </div>\n ) : null}\n </div>\n );\n }\n);\n\nInput.displayName = \"ProtonUIInput\";\n"],"names":["Input","forwardRef","prefix","suffix","description","descriptionPosition","isDisabled","error","onChange","label","name","placeholder","type","value","autoFocus","autoComplete","isRequired","isReadOnly","onSubmit","onClear","testId","forwardedRef","inputRef","useRef","prefixRef","suffixRef","containerRef","className","useTheme","ref","useEffect","callbackCount","lastUpdateTime","previousValues","updateSizes","entries","now","timeSinceLastUpdate","triggeredBy","e","containerWidth","containerWidthChanged","prefixWidth","prefixWidthChanged","_a","suffixWidth","suffixWidthChanged","_b","resizeObserver","inputId","errorId","descriptionId","jsxs","jsx","csx","copyTextToClipboard"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Input.es.js","sources":["../../../../src/components/Input/BaseInput/Input.tsx"],"sourcesContent":["\"use client\";\n\nimport React, { forwardRef, useEffect, useRef } from \"react\";\n\nimport { useTheme } from \"../../ThemeProvider\";\nimport { csx } from \"../../../utils\";\nimport \"./Input.css\";\nimport { copyTextToClipboard } from \"../../../utils/copy\";\n\nexport interface BaseInputProps {\n /**\n * onChange handler for the input\n */\n onChange?: (value: string) => void;\n\n /** Whether the input is disabled. */\n isDisabled?: boolean;\n\n /** Description text shown above the input. */\n description?: React.ReactNode | string;\n\n /**\n * The position of the description text.\n * @default \"top\"\n */\n descriptionPosition?: \"top\" | \"bottom\";\n\n /** Error state that changes the input's visual style and displays an error message. */\n error?: React.ReactNode | string;\n\n /**\n * Label for the input element.\n * @note When a label is provided, the input will have extra padding, and the label will float above the text input when focused or filled.\n */\n label?: string;\n\n /** Test ID for the component. */\n \"data-testid\"?: string;\n\n /** Content to display before the input. Typically used for icons. */\n prefix?: React.ReactNode;\n\n /** Content to display after the input. Typically used for icons. */\n suffix?: React.ReactNode;\n\n /**\n * Should the browser's autocomplete be enabled?\n * @external https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/autocomplete\n */\n autoComplete?: boolean;\n\n /**\n * Should the input be autofocused?\n * @external https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/autofocus\n */\n autoFocus?: boolean;\n\n /**\n * The name attribute of the input element.\n * @external https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/name\n */\n name: string;\n\n /**\n * The placeholder text to display when the input is empty.\n * @note label takes precedence over placeholder, if both are provided.\n * @external https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/placeholder\n */\n placeholder?: string;\n\n /**\n * The type attribute of the input element.\n * @external https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/type\n * @default \"text\"\n */\n type?: string;\n\n /**\n * The value of the input.\n * @external https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#value\n */\n value?: string;\n\n /**\n * Whether the input is required.\n * @default false\n */\n isRequired?: boolean;\n\n /**\n * Whether the input is read-only.\n * @default false\n */\n isReadOnly?: boolean;\n\n /**\n * Called when the input is submitted (e.g. by pressing Enter).\n */\n onSubmit?: React.FormEventHandler<HTMLInputElement>;\n\n /**\n * Called when the input is cleared (e.g. by pressing Escape).\n */\n onClear?: () => void;\n}\n\n/**\n * A controlled and customizable input component with support for labels, prefixes, suffixes, and error states.\n *\n * API:\n * - {@link BaseInputProps}\n */\nexport const Input = forwardRef<HTMLInputElement, BaseInputProps>(\n (\n {\n prefix,\n suffix,\n description,\n descriptionPosition = \"top\",\n isDisabled,\n error,\n onChange,\n label,\n name,\n placeholder,\n type = \"text\",\n value,\n autoFocus,\n autoComplete,\n isRequired = false,\n isReadOnly = false,\n onSubmit,\n onClear,\n \"data-testid\": testId,\n },\n forwardedRef: React.RefObject<HTMLInputElement>\n ) => {\n const inputRef = useRef<HTMLInputElement>(null);\n const prefixRef = useRef<HTMLDivElement>(null);\n const suffixRef = useRef<HTMLDivElement>(null);\n const containerRef = useRef<HTMLDivElement>(null);\n const { className } = useTheme();\n const ref = forwardedRef || inputRef;\n\n // Control dynamic prefix and suffix widths using ResizeObserver\n useEffect(() => {\n if (!containerRef.current) return;\n\n // #region agent log\n let callbackCount = 0;\n let lastUpdateTime = Date.now();\n const previousValues = {\n containerWidth: 0,\n prefixWidth: 0,\n suffixWidth: 0,\n };\n // #endregion\n\n let rafId: number | null = null;\n\n const updateSizes = (entries?: ResizeObserverEntry[]) => {\n // #region agent log\n callbackCount++;\n const now = Date.now();\n const timeSinceLastUpdate = now - lastUpdateTime;\n lastUpdateTime = now;\n const triggeredBy =\n entries?.map((e) => e.target.className || \"unknown\").join(\",\") ||\n \"initial\";\n fetch(\n \"http://127.0.0.1:7243/ingest/f16ad2de-908b-4cb9-a792-256436a5e324\",\n {\n method: \"POST\",\n headers: { \"Content-Type\": \"application/json\" },\n body: JSON.stringify({\n location: \"Input.tsx:149\",\n message: \"ResizeObserver callback invoked\",\n data: { callbackCount, timeSinceLastUpdate, triggeredBy },\n timestamp: Date.now(),\n sessionId: \"debug-session\",\n runId: \"post-fix\",\n hypothesisId: \"A\",\n }),\n }\n ).catch(() => {});\n // #endregion\n\n // Cancel any pending animation frame\n if (rafId !== null) {\n cancelAnimationFrame(rafId);\n }\n\n // Batch DOM updates in requestAnimationFrame to avoid synchronous mutations\n rafId = requestAnimationFrame(() => {\n if (!containerRef.current) return;\n\n if (containerRef.current) {\n const containerWidth = containerRef.current.offsetWidth || 200;\n // #region agent log\n const containerWidthChanged =\n containerWidth !== previousValues.containerWidth;\n fetch(\n \"http://127.0.0.1:7243/ingest/f16ad2de-908b-4cb9-a792-256436a5e324\",\n {\n method: \"POST\",\n headers: { \"Content-Type\": \"application/json\" },\n body: JSON.stringify({\n location: \"Input.tsx:152\",\n message: \"Reading container width\",\n data: {\n containerWidth,\n previousValue: previousValues.containerWidth,\n changed: containerWidthChanged,\n },\n timestamp: Date.now(),\n sessionId: \"debug-session\",\n runId: \"post-fix\",\n hypothesisId: \"C\",\n }),\n }\n ).catch(() => {});\n // #endregion\n // Only set CSS property if value actually changed\n if (containerWidthChanged) {\n containerRef.current.style.setProperty(\n \"--container-width\",\n `${containerWidth}px`\n );\n // #region agent log\n previousValues.containerWidth = containerWidth;\n fetch(\n \"http://127.0.0.1:7243/ingest/f16ad2de-908b-4cb9-a792-256436a5e324\",\n {\n method: \"POST\",\n headers: { \"Content-Type\": \"application/json\" },\n body: JSON.stringify({\n location: \"Input.tsx:157\",\n message: \"Set container-width CSS property\",\n data: { containerWidth, changed: containerWidthChanged },\n timestamp: Date.now(),\n sessionId: \"debug-session\",\n runId: \"post-fix\",\n hypothesisId: \"A\",\n }),\n }\n ).catch(() => {});\n // #endregion\n } else {\n // #region agent log\n fetch(\n \"http://127.0.0.1:7243/ingest/f16ad2de-908b-4cb9-a792-256436a5e324\",\n {\n method: \"POST\",\n headers: { \"Content-Type\": \"application/json\" },\n body: JSON.stringify({\n location: \"Input.tsx:157\",\n message: \"Skipped setting container-width (unchanged)\",\n data: { containerWidth, changed: containerWidthChanged },\n timestamp: Date.now(),\n sessionId: \"debug-session\",\n runId: \"post-fix\",\n hypothesisId: \"C\",\n }),\n }\n ).catch(() => {});\n // #endregion\n }\n }\n\n if (prefixRef.current) {\n const prefixWidth = prefixRef.current.offsetWidth || 32;\n // #region agent log\n const prefixWidthChanged =\n prefixWidth !== previousValues.prefixWidth;\n fetch(\n \"http://127.0.0.1:7243/ingest/f16ad2de-908b-4cb9-a792-256436a5e324\",\n {\n method: \"POST\",\n headers: { \"Content-Type\": \"application/json\" },\n body: JSON.stringify({\n location: \"Input.tsx:163\",\n message: \"Reading prefix width\",\n data: {\n prefixWidth,\n previousValue: previousValues.prefixWidth,\n changed: prefixWidthChanged,\n },\n timestamp: Date.now(),\n sessionId: \"debug-session\",\n runId: \"post-fix\",\n hypothesisId: \"C\",\n }),\n }\n ).catch(() => {});\n // #endregion\n // Only set CSS property if value actually changed\n if (prefixWidthChanged) {\n containerRef.current?.style.setProperty(\n \"--prefix-width\",\n `${prefixWidth}px`\n );\n // #region agent log\n previousValues.prefixWidth = prefixWidth;\n fetch(\n \"http://127.0.0.1:7243/ingest/f16ad2de-908b-4cb9-a792-256436a5e324\",\n {\n method: \"POST\",\n headers: { \"Content-Type\": \"application/json\" },\n body: JSON.stringify({\n location: \"Input.tsx:168\",\n message: \"Set prefix-width CSS property\",\n data: { prefixWidth, changed: prefixWidthChanged },\n timestamp: Date.now(),\n sessionId: \"debug-session\",\n runId: \"post-fix\",\n hypothesisId: \"A\",\n }),\n }\n ).catch(() => {});\n // #endregion\n } else {\n // #region agent log\n fetch(\n \"http://127.0.0.1:7243/ingest/f16ad2de-908b-4cb9-a792-256436a5e324\",\n {\n method: \"POST\",\n headers: { \"Content-Type\": \"application/json\" },\n body: JSON.stringify({\n location: \"Input.tsx:168\",\n message: \"Skipped setting prefix-width (unchanged)\",\n data: { prefixWidth, changed: prefixWidthChanged },\n timestamp: Date.now(),\n sessionId: \"debug-session\",\n runId: \"post-fix\",\n hypothesisId: \"C\",\n }),\n }\n ).catch(() => {});\n // #endregion\n }\n }\n\n if (suffixRef.current) {\n const suffixWidth = suffixRef.current.offsetWidth || 32;\n // #region agent log\n const suffixWidthChanged =\n suffixWidth !== previousValues.suffixWidth;\n fetch(\n \"http://127.0.0.1:7243/ingest/f16ad2de-908b-4cb9-a792-256436a5e324\",\n {\n method: \"POST\",\n headers: { \"Content-Type\": \"application/json\" },\n body: JSON.stringify({\n location: \"Input.tsx:174\",\n message: \"Reading suffix width\",\n data: {\n suffixWidth,\n previousValue: previousValues.suffixWidth,\n changed: suffixWidthChanged,\n },\n timestamp: Date.now(),\n sessionId: \"debug-session\",\n runId: \"post-fix\",\n hypothesisId: \"C\",\n }),\n }\n ).catch(() => {});\n // #endregion\n // Only set CSS property if value actually changed\n if (suffixWidthChanged) {\n containerRef.current?.style.setProperty(\n \"--suffix-width\",\n `${suffixWidth}px`\n );\n // #region agent log\n previousValues.suffixWidth = suffixWidth;\n fetch(\n \"http://127.0.0.1:7243/ingest/f16ad2de-908b-4cb9-a792-256436a5e324\",\n {\n method: \"POST\",\n headers: { \"Content-Type\": \"application/json\" },\n body: JSON.stringify({\n location: \"Input.tsx:179\",\n message: \"Set suffix-width CSS property\",\n data: { suffixWidth, changed: suffixWidthChanged },\n timestamp: Date.now(),\n sessionId: \"debug-session\",\n runId: \"post-fix\",\n hypothesisId: \"A\",\n }),\n }\n ).catch(() => {});\n // #endregion\n } else {\n // #region agent log\n fetch(\n \"http://127.0.0.1:7243/ingest/f16ad2de-908b-4cb9-a792-256436a5e324\",\n {\n method: \"POST\",\n headers: { \"Content-Type\": \"application/json\" },\n body: JSON.stringify({\n location: \"Input.tsx:179\",\n message: \"Skipped setting suffix-width (unchanged)\",\n data: { suffixWidth, changed: suffixWidthChanged },\n timestamp: Date.now(),\n sessionId: \"debug-session\",\n runId: \"post-fix\",\n hypothesisId: \"C\",\n }),\n }\n ).catch(() => {});\n // #endregion\n }\n }\n\n // #region agent log\n if (timeSinceLastUpdate < 10) {\n fetch(\n \"http://127.0.0.1:7243/ingest/f16ad2de-908b-4cb9-a792-256436a5e324\",\n {\n method: \"POST\",\n headers: { \"Content-Type\": \"application/json\" },\n body: JSON.stringify({\n location: \"Input.tsx:185\",\n message: \"Rapid callback detected\",\n data: { callbackCount, timeSinceLastUpdate },\n timestamp: Date.now(),\n sessionId: \"debug-session\",\n runId: \"post-fix\",\n hypothesisId: \"E\",\n }),\n }\n ).catch(() => {});\n }\n // #endregion\n });\n };\n\n updateSizes();\n\n const resizeObserver = new ResizeObserver(updateSizes);\n\n if (containerRef.current) {\n resizeObserver.observe(containerRef.current);\n }\n if (prefixRef.current) {\n resizeObserver.observe(prefixRef.current);\n }\n if (suffixRef.current) {\n resizeObserver.observe(suffixRef.current);\n }\n\n return () => {\n if (rafId !== null) {\n cancelAnimationFrame(rafId);\n }\n resizeObserver.disconnect();\n };\n }, [prefix, suffix]);\n\n const inputId = `${name}-input`;\n const errorId = `${name}-error`;\n const descriptionId = `${name}-description`;\n\n return (\n <div ref={containerRef} className=\"proton-Input__container\">\n {description && descriptionPosition === \"top\" && (\n <div\n id={descriptionId}\n className=\"proton-Input__text\"\n aria-live=\"polite\"\n >\n {description}\n </div>\n )}\n <div\n className={csx(\n \"proton-Input__container-inner\",\n prefix && \"proton-Input__has-prefix\",\n suffix && \"proton-Input__has-suffix\"\n )}\n >\n {prefix && (\n <div\n ref={prefixRef}\n className={csx(\n \"proton-Input__descriptor\",\n \"proton-Input__prefix\"\n )}\n >\n {prefix}\n </div>\n )}\n\n <input\n id={inputId}\n name={name}\n type={type}\n value={value}\n onChange={(e: React.ChangeEvent<HTMLInputElement>) => {\n onChange?.(e.target.value);\n }}\n onKeyDown={(e: React.KeyboardEvent<HTMLInputElement>) => {\n switch (e.key) {\n case \"Enter\":\n if (onSubmit) {\n e.preventDefault();\n onSubmit(e);\n }\n break;\n case \"Escape\":\n if (onClear) {\n e.preventDefault();\n onClear();\n }\n break;\n }\n }}\n onCopy={async () =>\n await copyTextToClipboard(inputRef.current?.value)\n }\n disabled={isDisabled}\n readOnly={isReadOnly}\n required={isRequired}\n autoFocus={autoFocus}\n autoComplete={autoComplete ? \"on\" : \"off\"}\n placeholder={label ? undefined : placeholder}\n aria-label={label || name}\n aria-invalid={Boolean(error)}\n aria-errormessage={typeof error === \"string\" ? error : errorId}\n aria-required={isRequired}\n aria-readonly={isReadOnly}\n aria-describedby={\n error ? errorId : description ? descriptionId : undefined\n }\n aria-disabled={isDisabled}\n data-testid={testId}\n ref={ref}\n className={csx(\n \"proton-Input\",\n error && \"proton-Input--error\",\n label && \"proton-Input__label-top\",\n className\n )}\n />\n\n <label\n htmlFor={inputId}\n className={csx(\n \"proton-Input__label\",\n value && \"proton-Input__label--filled\"\n )}\n >\n {label}\n {isRequired && <span aria-hidden=\"true\"> *</span>}\n </label>\n\n {suffix && (\n <div\n ref={suffixRef}\n className={csx(\n \"proton-Input__descriptor\",\n \"proton-Input__suffix\"\n )}\n >\n {suffix}\n </div>\n )}\n </div>\n\n {error ? (\n <div\n role=\"alert\"\n className={csx(\"proton-Input__error\", \"proton-Input__text\")}\n id={errorId}\n >\n {error}\n </div>\n ) : description && descriptionPosition === \"bottom\" ? (\n <div\n id={descriptionId}\n className=\"proton-Input__text\"\n aria-live=\"polite\"\n >\n {description}\n </div>\n ) : null}\n </div>\n );\n }\n);\n\nInput.displayName = \"ProtonUIInput\";\n"],"names":["Input","forwardRef","prefix","suffix","description","descriptionPosition","isDisabled","error","onChange","label","name","placeholder","type","value","autoFocus","autoComplete","isRequired","isReadOnly","onSubmit","onClear","testId","forwardedRef","inputRef","useRef","prefixRef","suffixRef","containerRef","className","useTheme","ref","useEffect","callbackCount","lastUpdateTime","previousValues","rafId","updateSizes","entries","now","timeSinceLastUpdate","triggeredBy","e","containerWidth","containerWidthChanged","prefixWidth","prefixWidthChanged","_a","suffixWidth","suffixWidthChanged","_b","resizeObserver","inputId","errorId","descriptionId","jsxs","jsx","csx","copyTextToClipboard"],"mappings":"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"}
|
package/dist/style.css
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
.proton-Button{--proton-button-edge-padding:1.05em;--proton-button__background-color:var(--proton-color__primary);--proton-button__text-color:var(--proton-color__white);color:var(--proton-button__text-color);border-radius:var(--proton-control__border-radius);padding:.45em var(--proton-button-edge-padding);letter-spacing:.05em;cursor:pointer;box-sizing:border-box;background-color:var(--proton-button__background-color);border:0;align-items:center;transition:filter .2s,background-color .2s,outline .2s;display:inline-flex;position:relative}.proton-Button__icon-decorator{justify-content:center;align-items:center;padding-right:.3em;line-height:1;display:flex;position:relative}.proton-Button__icon-decorator--fullWidth{position:absolute}.proton-Button__text{box-sizing:border-box;text-align:center;white-space:nowrap;text-overflow:ellipsis;margin:auto;line-height:normal;overflow:hidden}.proton-Button:hover{filter:brightness(1.16);cursor:pointer}.proton-Button--primary{--proton-button__background-color:var(--proton-color__primary);--proton-button__text-color:var(--proton-color__white)}.proton-Button--secondary{--proton-button__background-color:var(--proton-color__gray-light);--proton-button__text-color:var(--proton-control__text-color)}.proton-ui__theme--dark .proton-Button--secondary{--proton-button__background-color:var(--proton-control__background-color-light)}.proton-Button--danger{--proton-button__background-color:var(--proton-color__danger-medium)}.proton-Button--success{--proton-button__background-color:var(--proton-color__success-medium)}.proton-Button--translucent{--proton-button__background-color:var(--proton-control__background-color-light);--proton-button__text-color:var(--proton-control__text-color)}.proton-Button--disabled,.proton-Button--disabled:hover{opacity:.5;filter:none;cursor:not-allowed}.proton-Button:focus{outline:2px solid var(--proton-color__primary)}.proton-Button:focus-visible{outline:2px solid var(--proton-color__primary)}.proton-Button:active{filter:brightness(1.3);transition:filter .1s ease-out}.proton-Button--fullWidth{width:100%}.proton-Button--small{padding:.2rem .6rem;font-size:.875rem}.proton-Button--medium{padding:.4rem 1rem;font-size:1rem}.proton-Button--large{padding:.6rem 1.6rem;font-size:1.2rem}.proton-Button--xlarge{padding:1rem 2rem .8rem;font-size:1.3rem}.proton-Button--2xlarge{padding:1rem 2.6rem;font-size:1.6rem}.proton-Button--fullWidth .proton-Button__text{transform:translate(calc(var(--proton-button-text-shift)))}.proton-ScreenOverlay__background{-webkit-backdrop-filter:blur(24px)brightness(75%);backdrop-filter:blur(24px)brightness(75%);background-color:#000c;justify-content:center;align-items:center;width:100%;height:100%;display:flex;position:fixed;top:0;left:0}.proton-ScreenOverlay__z-index{z-index:10000}.proton-ScreenOverlay__image{object-fit:cover;width:100vw;height:100vh;position:absolute}.proton-ScreenOverlay__blur{-webkit-backdrop-filter:blur(24px)brightness(75%);backdrop-filter:blur(24px)brightness(75%);filter:brightness(46%);position:absolute;top:0;bottom:0;left:0;right:0}@keyframes fadeInBackground{0%{-webkit-backdrop-filter:blur(1px);backdrop-filter:blur(1px);background:#0000001a}to{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#000c}}@keyframes fadeOutBackground{0%{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#000c}to{-webkit-backdrop-filter:blur();backdrop-filter:blur();background:0 0}}.proton-ScreenOverlay__fade-in{animation:.2s ease-in-out forwards fadeInBackground}.proton-ScreenOverlay__fade-out{animation:.2s ease-in-out forwards fadeOutBackground}.proton-ActionMenu__wrapper{z-index:10;width:100%;max-height:100vh;position:fixed;bottom:0;left:0}.proton-ActionMenu__background-wrapper{opacity:0;transition:opacity .3s cubic-bezier(.34,1.56,.64,1);overflow-y:scroll}.proton-ActionMenu__card{background:var(--proton-control__background-color);color:var(--proton-control__text-color);z-index:1;border-radius:.875rem .875rem 0 0;flex-direction:column;height:0;transition:height .3s cubic-bezier(.34,1.56,.64,1);display:flex;position:relative;overflow:hidden;box-shadow:0 0 4px #0000001a,0 0 20px #00000026}.proton-ActionMenu__cancel-button{margin:0 .75rem 1rem}.proton-ActionMenu__content{padding:.75rem .75rem 0}.proton-ActionMenu__menu>[data-radix-popper-content-wrapper]{width:100%!important;position:absolute!important;top:0!important;transform:none!important}.proton-ActionMenu__list{flex-direction:column;margin-bottom:.625rem;display:flex}.proton-ActionMenu__item{color:inherit;cursor:pointer;justify-content:space-between;align-items:center;padding:.75rem .5rem .75rem .75rem;transition:filter .2s,background-color .2s,color .2s;display:flex}.proton-ActionMenu__item:hover,.proton-ActionMenu__item:focus{background-color:var(--proton-control__hover-color);border:none;outline:none}.proton-ActionMenu__item[aria-checked=true]:hover,.proton-ActionMenu__item[aria-checked=true]:focus{filter:brightness(1.15)}.proton-ActionMenu__item[aria-checked=true]{background-color:var(--proton-control__interactive-color);color:var(--proton-color__primary)}.proton-ui__theme--dark .proton-ActionMenu__item[aria-checked=true]{background-color:var(--proton-color__primary);color:var(--proton-control__text-color)}.proton-ActionMenu__item[aria-disabled=true],.proton-ActionMenu__list[aria-disabled=true],.proton-ActionMenu__item[aria-disabled=true]:hover{opacity:.5;cursor:not-allowed;background-color:#0000}.proton-ActionMenu__list[aria-disabled=true] .proton-ActionMenu__item{pointer-events:none}.proton-ActionMenu__title{text-align:center;width:100%;font-weight:600}.proton-ActionMenu__back-button{cursor:pointer;z-index:1;align-items:center;width:25%;height:100%;padding-left:.35rem;display:flex;position:absolute;left:0}.proton-ActionMenu__back-button:hover,.proton-ActionMenu__cancel-button:focus{background-color:var(--proton-control__hover-color);outline:none}.proton-ActionMenu__back-button:focus-visible{background-color:var(--proton-control__hover-color);outline:none}.proton-ActionMenu__cancel-button:focus-visible{background-color:var(--proton-control__hover-color);outline:none}.proton-ActionMenu__back-button-container{align-items:center;height:3rem;display:flex;position:relative}.proton-ActionMenu__description{color:var(--proton-control__text-color);opacity:.7;font-size:.875rem}.proton-ActionMenu__item-label{font-weight:500}.proton-ui__theme--dark .proton-ActionMenu__cancel-button button{--proton-button__background-color:var(--proton-control__background-color-light)}.proton-Badge{letter-spacing:.2em;text-align:center;text-transform:uppercase;white-space:nowrap;height:1.6rem;color:#666;background-color:#f2f2f2;border-radius:10rem;padding-left:1rem;padding-right:calc(1rem - .2em);font-size:1rem;font-weight:500;line-height:1.65rem;display:inline-block}.proton-ui__theme--dark .proton-Badge:not([class*=proton-Badge--]),.proton-ui__theme--dark .proton-Badge--secondary{background-color:var(--proton-control__background-color-light);color:var(--proton-control__text-color)}.proton-Badge--primary{background-color:var(--proton-color__primary);color:var(--proton-color__white)}.proton-Badge--success{background-color:var(--proton-color__success-super-light);color:var(--proton-color__success-dark)}.proton-Badge--warning{background-color:var(--proton-color__warning-super-light);color:var(--proton-color__warning-dark)}.proton-Badge--danger{background-color:var(--proton-color__danger-super-light);color:var(--proton-color__danger-dark)}.proton-Badge--transparent{color:#666;background-color:#0000}.proton-Banner{background-color:var(--banner-bg);-webkit-backdrop-filter:var(--banner-blur);backdrop-filter:var(--banner-blur);--tw-backdrop-blur:var(--banner-blur);--banner-bg:var(--proton-control__background-color-light);--banner-title:var(--proton-color__gray-dark);--banner-content:var(--proton-color__gray-medium);--banner-icon:var(--proton-color__gray-medium-light);--banner-blur:none;margin:0}:where(.proton-ui__theme--dark) .proton-Banner{--banner-bg:var(--proton-control__background-color-light);--banner-blur:blur(15px);--banner-title:var(--proton-control__text-color);--banner-content:var(--proton-control__text-color);--banner-icon:var(--proton-control__text-color)}.proton-Banner--warning{--banner-bg:var(--proton-color__warning-super-light);--banner-title:var(--proton-color__warning-dark);--banner-content:var(--proton-color__warning-medium);--banner-icon:var(--proton-color__warning-light)}.proton-Banner--success{--banner-bg:var(--proton-color__success-super-light);--banner-title:var(--proton-color__success-dark);--banner-content:var(--proton-color__success-medium);--banner-icon:var(--proton-color__success-light)}.proton-Banner--danger{--banner-bg:var(--proton-color__danger-super-light);--banner-title:var(--proton-color__danger-dark);--banner-content:var(--proton-color__danger-medium);--banner-icon:var(--proton-color__danger-light)}.proton-Banner--rounded{border-radius:.375rem}.proton-Banner__wrapper{align-items:flex-start;padding:2rem;display:flex}.proton-Banner__wrapper--compact{padding:1rem}.proton-Banner__content-wrapper{min-width:0;color:var(--banner-content);flex:1}.proton-Banner__container{padding:0 .625rem}.proton-Banner__title{letter-spacing:.01rem;color:var(--banner-title);line-height:1.2rem}.proton-Banner__content{color:var(--banner-content);margin:.375rem 0 0}.proton-Banner__icon{fill:var(--banner-icon);height:20px}.proton-Banner__actions{gap:.5rem;margin:.375rem 0 0;display:flex}@media (min-width:768px){.proton-Banner__container{grid-gap:.5rem;grid-template-columns:1fr auto;display:grid}.proton-Banner__title,.proton-Banner__content{grid-column:1;margin:auto 0}.proton-Banner__container:not(:has(.proton-Banner__content)){grid-gap:0px;grid-template-rows:1fr}.proton-Banner__container>div:last-child{grid-area:1/2/span 2;max-height:32px;margin:auto 0}.proton-Banner__actions{margin:0 0 0 .75rem}.proton-Banner__wrapper:not(:has(.proton-Banner__content)){align-items:center}}.proton-ButtonGroup{border:1px solid var(--proton-color__gray-light);border-radius:.25rem;font-weight:400;display:flex;overflow:hidden}.proton-ButtonGroup__option{background-color:var(--proton-color__gray-super-light);cursor:pointer;border-left:1px solid var(--proton-color__gray-light);color:var(--proton-color__gray-dark);text-align:center;border-radius:0;flex:1;padding:.5em 1em}.proton-ButtonGroup__option:first-child{border-left:0}.proton-ButtonGroup__option--selected{background-color:var(--proton-color__white);color:var(--proton-color__primary);z-index:2;cursor:default;border-radius:inherit;box-shadow:0 0 .375rem #00000026}.proton-ButtonGroup__option--selected+.proton-ButtonGroup__option{border-left:1px solid #0000}.proton-MenuTrigger__menu-header{text-transform:uppercase;color:var(--proton-control__text-color);background-color:var(--proton-control__background-color-light);letter-spacing:.1em;padding:.3125rem 1rem .25rem;font-size:.8em;font-weight:700}.proton-MenuTrigger__button{cursor:pointer;color:var(--proton-control__text-color);background:0 0;border:none;border-radius:.25rem;justify-content:center;align-items:center;padding:.25rem;transition:background-color .2s ease-in-out;display:flex}.proton-MenuTrigger__button:disabled{cursor:not-allowed;opacity:.5}.proton-ui__theme--dark .proton-MenuTrigger__button:disabled:hover,.proton-MenuTrigger__button:disabled:hover{background:0 0}.proton-MenuTrigger__button:focus{outline:2px solid var(--proton-color__primary)}.proton-MenuTrigger__button:hover{background-color:var(--proton-control__hover-color)}.proton-MenuTrigger__menu-item .proton-Menu__item,.proton-MenuTrigger__menu-item{color:var(--proton-control__text-color);grid-template:"label kbd""desc kbd"/1fr auto;align-items:center;gap:.1em .5em;padding:.75em 1em;display:grid}.proton-MenuTrigger__menu-item .proton-Menu__item[data-has-submenu=true],.proton-MenuTrigger__menu-item[data-has-submenu=true]{grid-template-columns:unset;grid-template-areas:unset;justify-content:space-between;align-items:center;display:flex}.proton-MenuTrigger__label{grid-area:label}.proton-MenuTrigger__description{opacity:.7;grid-area:desc;font-size:.8em;line-height:1.1}.proton-MenuTrigger__chevron{padding-left:.5rem}.proton-Menu{--menu-bg-color:var(--proton-control__background-color);--menu-item-bg-color:var(--proton-control__background-color);letter-spacing:.05em;border-radius:var(--proton-control__border-radius);background:var(--menu-bg-color);border:1px solid var(--proton-control__border-color);min-width:100px;max-height:420px;color:var(--proton-control__text-color);box-shadow:0 0 3px var(--proton-control__shadow-color);margin:8px 0 0;padding:0;list-style:none;overflow:auto}.proton-Menu__item{background:var(--menu-item-bg-color);cursor:pointer;outline:none;justify-content:space-between;align-items:center;padding:8px 24px 8px 16px;transition:background-color .2s,opacity .2s,color .2s;display:flex}.proton-Menu__item[aria-checked=true]{--menu-item-bg-color:var(--proton-color__primary-light);color:var(--proton-color__primary);font-weight:600}.proton-Menu__item[aria-checked=true][data-highlighted=""]{--menu-item-bg-color:var(--proton-color__primary-light);opacity:.75}.proton-Menu__item[aria-selected=true]{--menu-item-bg-color:var(--proton-color__primary-light);color:var(--proton-color__primary);font-weight:600}.proton-Menu__item[aria-selected=true][data-highlighted=""]{--menu-item-bg-color:var(--proton-color__primary-light);opacity:.75}.proton-Menu__item[data-state=checked]{--menu-item-bg-color:var(--proton-color__primary-light);color:var(--proton-color__primary);font-weight:600}.proton-Menu__item[data-state=checked][data-highlighted=""]{--menu-item-bg-color:var(--proton-color__primary-light);opacity:.75}.proton-Menu__item[data-highlighted=""]{--menu-item-bg-color:var(--proton-control__hover-color)}.proton-Menu__item:hover{--menu-item-bg-color:var(--proton-control__hover-color);box-shadow:none}.proton-Menu__item[aria-disabled=true],.proton-Menu__item[data-disabled=true]{opacity:.5;cursor:not-allowed}.proton-ButtonWithSelect{align-items:stretch;display:flex;position:relative}.proton-ButtonWithSelect button:focus{outline:none}.proton-ButtonWithSelect__button{flex:var(--flex);align-items:stretch;display:flex}.proton-ButtonWithSelect__button button,.proton-ButtonWithSelect__button a{border-top-right-radius:0;border-bottom-right-radius:0;align-items:center;display:flex;position:relative;overflow:hidden}.proton-ButtonWithSelect__button button:after,.proton-ButtonWithSelect__button a:after{content:"";background-color:#00000026;width:1px;position:absolute;top:.3em;bottom:.3em;right:0}.proton-ButtonWithSelect__trigger{flex:0 0 var(--trigger-width);min-width:var(--trigger-width);max-width:var(--trigger-width)}.proton-ButtonWithSelect__trigger .proton-Button{border-top-left-radius:0;border-bottom-left-radius:0;width:100%;height:100%;padding:0}.proton-ButtonWithSelect__trigger-content{flex-direction:column;align-items:center;display:flex}.proton-Table{border-collapse:collapse;color:var(--proton-control__text-color);width:100%;font-weight:300}.proton-Table__caption{display:none}.proton-Table__header{cursor:default;letter-spacing:.1em;text-transform:uppercase;text-align:left;outline:none;padding:.4375rem .625rem;font-size:1rem;font-weight:500;line-height:1rem}.proton-Table__header--center{text-align:center}.proton-Table__header--right{text-align:right}.proton-Table__headerSortIcon{padding:0 .125rem}.proton-Table__row{cursor:default;outline:none}.proton-Table__rowGroup--header{border-bottom:1px solid #ccc}.proton-Table__row--showLines{border-top:1px solid #ccc}.proton-Table--clickable{cursor:pointer}.proton-Table__cell{vertical-align:middle;outline:none;padding:.4375rem .625rem}.proton-Table__cell--center{text-align:center}.proton-Table__cell--right{text-align:right}.proton-Elevation{border-radius:var(--proton-control__border-radius);background-color:var(--proton-control__background-color-light);-webkit-backdrop-filter:blur(15px);backdrop-filter:blur(15px);--tw-backdrop-blur:blur(15px);width:100%;height:100%;transition:background-color .2s ease-in-out,-webkit-backdrop-filter .2s ease-in-out,backdrop-filter .2s ease-in-out}@keyframes shimmer{0%{background-position:-300px 0}to{background-position:800px 0}}.proton-Tombstone{background-position:-300px 0;background-repeat:no-repeat;background-size:300px 100%;animation:1.5s linear infinite shimmer}.proton-ui__theme--light .proton-Tombstone{background-color:#d1d1d1;background-image:linear-gradient(-90deg,#d1d1d1,#b8b8b8,#d1d1d1)}.proton-ui__theme--dark .proton-Tombstone{background-color:#3c3c3c;background-image:linear-gradient(-90deg,#363636,#292727,#353535)}.proton-Tombstone--custom{background-image:linear-gradient(-90deg,var(--tombstone-custom-primary)0%,var(--tombstone-custom-secondary)50%,var(--tombstone-custom-primary)100%);background-color:var(--tombstone-custom-background)}.proton-DataTable{width:100%}.proton-DataTable__header-content{align-items:center;gap:.5rem;display:flex}.proton-DataTable__message-cell{position:absolute;left:0;right:0}.proton-DataTable__empty-cell{text-align:center;padding:3rem 1.5rem}.proton-DataTable__sort-button{cursor:pointer;border-radius:var(--proton-control__border-radius);border:none;max-height:.8rem;padding-bottom:1px;transition:background-color .15s ease-in-out,opacity .15s ease-in-out,transform .15s ease-in-out;display:inline-flex}.proton-DataTable__sort-button:hover{background-color:var(--proton-control__hover-color)}.proton-DataTable__sort-button[aria-label*=ascending]{align-items:flex-end;transform:rotateX(180deg)}.proton-Dialog{background-color:var(--proton-control__background-color);border-radius:var(--proton-control__border-radius);box-shadow:0 0 20px 0 var(--proton-control__shadow-color),0 0 4px 0 var(--proton-control__shadow-color);color:var(--proton-control__text-color);outline:none;padding:.65rem .85rem;font-weight:300}.proton-ui__theme--dark .proton-Dialog{background-color:var(--proton-control__background-color-light)}.proton-Dialog__header{color:var(--proton-control__title-color);margin-bottom:.3rem}.proton-Input{max-width:var(--container-width,100%);border-radius:var(--proton-control__border-radius);box-sizing:border-box;outline:1px solid var(--proton-control__border-color);background:var(--proton-control__background-color);width:100%;height:100%;color:var(--proton-control__text-color);border:none;flex:1;padding-left:.75rem;font-size:1.125rem;font-weight:400;transition:outline .1s ease-in-out,background-color .1s ease-in-out,color .1s ease-in-out,opacity .1s ease-in-out}.proton-ui__theme--dark .proton-Input{background-color:var(--proton-control__background-color-light)}.proton-Input:disabled{opacity:.6;cursor:not-allowed}.proton-Input:not(.proton-Input--error):focus{outline:2px solid var(--proton-color__primary)}.proton-Input:not(.proton-Input--error):focus-visible{outline:2px solid var(--proton-color__primary)}.proton-Input.proton-Input--error{outline:2px solid var(--proton-color__danger-medium)}.proton-Input__container{width:100%;height:100%}.proton-Input__container-inner{width:100%;height:100%;position:relative}.proton-Input__descriptor{z-index:1;justify-content:center;height:100%;position:absolute;top:50%;transform:translateY(-50%)}.proton-Input__prefix,.proton-Input__suffix{justify-content:center;align-items:center;min-width:32px;display:flex}.proton-Input__prefix{opacity:.5;cursor:text;left:0}.proton-Input__suffix{outline:none;right:0}.proton-Input__container-inner.proton-Input__has-prefix .proton-Input{padding-left:var(--prefix-width,32px)}.proton-Input__container-inner.proton-Input__has-suffix .proton-Input{padding-right:calc(.75rem + var(--suffix-width,44px))}.proton-Input__text{opacity:.55;color:var(--proton-control__text-color);padding:.25rem 0;font-size:.75rem;font-weight:500}.proton-Input__error{color:var(--proton-color__danger-medium);opacity:1}.proton-Input__label-top{padding-top:1.375rem;padding-bottom:.5rem}.proton-Input__label{opacity:.55;color:var(--proton-control__text-color);pointer-events:none;transition:all .3s cubic-bezier(.4,0,.2,1);position:absolute;top:50%;left:16px;transform:translateY(-50%)}.proton-Input__label--filled,.proton-Input[value]:not([value=""])+.proton-Input__label,.proton-Input:focus+.proton-Input__label{color:var(--proton-color__primary);opacity:1;font-size:.75rem;transform:translateY(-140%)}.proton-Input:focus+.proton-Input__label{color:var(--proton-color__primary);opacity:1}.proton-CheckboxInput__container{align-items:center;gap:8px;display:flex}.proton-CheckboxInput__input{-webkit-appearance:none;-moz-appearance:none;appearance:none;cursor:pointer;border:2px solid var(--proton-control__border-color);border-radius:var(--proton-control__border-radius);background-color:var(--proton-control__background-color);width:18px;height:18px;margin:0;transition:background-color .1s ease-in-out,border-color .1s ease-in-out,box-shadow .1s ease-in-out;position:relative}.proton-CheckboxInput__input:checked{background-color:var(--proton-color__primary);border-color:var(--proton-color__primary)}.proton-CheckboxInput__input:checked:after{content:"";border:solid var(--proton-color__white);border-width:0 2px 2px 0;width:5px;height:10px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)rotate(45deg)}.proton-CheckboxInput__input:indeterminate{background-color:var(--proton-color__primary);border-color:var(--proton-color__primary)}.proton-CheckboxInput__input:indeterminate:after{content:"";background-color:var(--proton-control__text-color);width:10px;height:2px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.proton-CheckboxInput__input:focus{box-shadow:0 0 0 2px var(--proton-color__primary);outline:none}.proton-CheckboxInput__input:focus-visible{box-shadow:0 0 0 2px var(--proton-color__primary);outline:none}.proton-CheckboxInput__input--error{border-color:var(--proton-color__danger-medium)}.proton-CheckboxInput__input--error:focus{box-shadow:0 0 0 2px var(--proton-color__danger-medium)}.proton-CheckboxInput__input--error:focus-visible{box-shadow:0 0 0 2px var(--proton-color__danger-medium)}.proton-CheckboxInput__input:disabled{opacity:.6;cursor:not-allowed}.proton-CheckboxInput__input:disabled:checked{background-color:var(--proton-control__border-color);border-color:var(--proton-control__border-color)}.proton-CheckboxInput__label{color:var(--proton-control__text-color);cursor:pointer;-webkit-user-select:none;user-select:none;font-weight:400}.proton-CheckboxInput--disabled .proton-CheckboxInput__label{opacity:.6;cursor:not-allowed}.proton-CheckboxInput__error{color:var(--proton-color__danger-medium);opacity:1;margin-top:4px}.proton-CopyInput-button{all:unset;cursor:pointer;color:var(--proton-control__text-color);text-transform:uppercase;letter-spacing:.2em;justify-content:center;align-items:center;width:100%;height:100%;padding:0 .875rem 0 1.4rem;font-size:.75rem;font-weight:600;line-height:1rem;transition:background-color .2s;display:flex}.proton-CopyInput-button svg{margin-bottom:.0625rem;transition:color .2s}.proton-CopyInput-button-text{margin:0 .5rem;transition:color .2s}.proton-CopyInput-button-text--copied,.proton-CopyInput-button--copied svg{color:var(--proton-color__primary)}.proton-Input:not(.proton-Input--error):focus{outline:1px solid var(--proton-control__border-color)}.proton-Input:not(.proton-Input--error):focus-visible{outline:1px solid var(--proton-control__border-color)}.proton-ui__theme--light .proton-CopyInput-button{border-left:1px solid var(--proton-control__border-color);align-items:center;height:100%;transition:background-color .2s;display:flex}.proton-CopyInput-button:hover{background-color:var(--proton-control__background-color-light)}.proton-Input[type=search]{border-radius:3.125rem}.proton-SearchInput__wrapper{width:100%}.proton-SearchInput__button{color:currentColor;cursor:pointer;opacity:1;background-color:#0000;border:none;transition:opacity .2s ease-in-out}.proton-SearchInput__button--hide{opacity:0}.proton-SearchInput__wrapper input[type=search]::-webkit-search-decoration{display:none}.proton-SearchInput__wrapper input[type=search]::-webkit-search-cancel-button{display:none}.proton-SearchInput__wrapper input[type=search]::-webkit-search-results-button{display:none}.proton-SearchInput__wrapper input[type=search]::-webkit-search-results-decoration{display:none}.proton-Modal{background-color:var(--proton-control__background-color);color:var(--proton-control__text-color);max-width:86vw;max-height:80vh;box-shadow:0 .0625rem .25rem -.0625rem var(--proton-control__shadow-color);opacity:1;border-radius:.5rem;padding:2rem;transition:opacity .2s ease-in-out;position:relative;overflow:visible}.proton-Modal__content{margin-top:.5rem}.proton-Modal--closing{opacity:0}@media (max-width:768px){.proton-Modal{border-radius:0;flex-direction:column;justify-content:center;align-items:center;width:100vw;max-width:100vw;height:100vh;max-height:100vh;padding:.25rem .5rem;display:flex}.proton-Modal>div{text-align:center;width:100%}}.proton-Modal__title{color:var(--proton-control__title-color);word-break:break-word;line-height:1.2}.proton-Modal__subtitle{color:var(--proton-control__text-color);line-height:1.5}.proton-Modal__body{word-break:break-word;margin:1rem 0;line-height:1.5}.proton-Modal__actions{justify-content:center;gap:1rem;margin-top:1rem;display:flex}.proton-Modal__close-button{cursor:pointer;color:var(--proton-control__text-color);background:0 0;border:none;border-radius:.25rem;padding:.5rem;font-size:2.2rem;font-weight:800;line-height:1;transition:opacity .15s;position:absolute;top:.375rem;right:.75rem}.proton-Modal__close-button:focus,.proton-Modal__close-button:hover{opacity:.8}.proton-ui__theme--dark .proton-Modal{background-color:var(--proton-control__background-color-light)}.proton-Popover{--slide:translateY(.8rem);transform-origin:var(--radix-popover-content-transform-origin);background-color:var(--proton-control__background-color);border-radius:var(--proton-control__border-radius);box-shadow:0 0 20px 0 var(--proton-control__shadow-color),0 0 4px 0 var(--proton-control__shadow-color);color:var(--proton-control__text-color);max-height:var(--radix-popover-content-available-height);outline:none;padding:.65rem .85rem;font-weight:300;animation:.2s cubic-bezier(.16,1,.3,1) popoverSlideAndFade}@keyframes popoverSlideAndFade{0%{opacity:0;transform:scale(.8)var(--slide)}to{opacity:1;transform:scale(1)translateY(0)}}.arrow{fill:var(--proton-control__background-color);width:.6rem;height:.4rem}.proton-Popover__constrained{width:var(--radix-popover-trigger-width)}.proton-Popover[data-side=top]{--slide:translateY(.8rem)}.proton-Popover[data-side=bottom]{--slide:translateY(-.8rem)}.proton-Popover[data-side=right]{--slide:translateX(-.8rem)}.proton-Popover[data-side=left]{--slide:translateX(.8rem)}.proton-Select{flex-direction:column;width:100%;margin:0;display:flex}.proton-Select__label{color:var(--proton-control__text-color);margin-bottom:.125rem}.proton-Select__trigger{color:var(--proton-control__text-color);font-size:inherit;border-radius:var(--proton-control__border-radius);flex:1;justify-content:space-between;align-items:center;width:100%;padding:.2rem .6rem .2rem 1rem;display:flex}.proton-Select__trigger--rounded{border-radius:3.125rem}button.proton-Select__trigger{letter-spacing:.05em;cursor:pointer;background:var(--proton-control__background-color);outline:1px solid var(--proton-control__border-color);border:none;font-weight:400;transition:outline .2s ease-in-out;position:relative}button.proton-Select__trigger:focus{outline:solid var(--proton-color__primary)2px;border:none}button.proton-Select__trigger:focus-visible{outline:solid var(--proton-color__primary)2px;border:none}.proton-Select__popover{padding-left:.25rem}.proton-Select__trigger_icon{color:var(--proton-control__text-color);width:.75em;height:.75em;margin-left:.8em;transition:transform .2s;position:relative}.proton-Select__trigger_icon svg{width:100%;height:100%;position:absolute;top:50%;left:0;transform:translateY(-50%)}.proton-Select__trigger_icon--flipped{transform:rotateX(180deg)}.proton-Select:hover{cursor:pointer}.proton-Select__trigger--disabled,.proton-Select__trigger--disabled:hover{opacity:.5;filter:none;cursor:not-allowed}.proton-Select__value{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.proton-Switch{flex-flow:column;row-gap:5px;display:flex}.proton-Switch__label{text-transform:uppercase;letter-spacing:.1em;color:var(--proton-control__text-color);font-size:.7em;font-weight:600}.proton-Switch__description{color:var(--proton-control__text-color);align-self:center;font-size:.9em}.proton-Switch__wrapper{column-gap:12px;display:flex}.proton-Switch__toggle{background-color:var(--proton-color__gray-light);cursor:pointer;border-radius:26px;flex-shrink:0;width:50px;height:26px;position:relative}.proton-Switch__slider{background-color:#fff;border-radius:22px;width:22px;height:22px;transition:left .2s;position:absolute;top:2px;left:2px}.proton-Switch--on .proton-Switch__toggle{background-color:var(--proton-color__primary)}.proton-Switch--on .proton-Switch__slider{left:26px}.proton-Switch--disabled{opacity:.4}.proton-Switch--disabled .proton-Switch__toggle{cursor:not-allowed}.proton-TextEllipsis{vertical-align:middle;color:var(--proton-control__text-color,inherit);font-family:inherit;font-size:inherit;line-height:inherit;width:100%;height:100%;display:inline-block;position:relative}.proton-TextEllipsis--single-line{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.proton-TextEllipsis--multi-line{text-overflow:ellipsis;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.proton-TextEmphasis{color:var(--proton-control__title-color);background-image:linear-gradient(0deg,#0000 0,#0000 15%,#ff713480 15%,#ff713480 35%,#0000 35%,#0000);padding:0 .05rem;font-style:normal;font-weight:700}.proton-TextEmphasis a{color:inherit;transition:color .15s}.proton-TextEmphasis a:hover{color:var(--proton-color__primary)}.proton-TextEmphasis--tooltip{background-image:linear-gradient(0deg,#0000 0,#0000 15%,#ff713480 25%,#ff713480 87%,#0000 80%,#0000);background-position:bottom;background-repeat:no-repeat;background-size:100% 35%;font-style:italic;font-weight:400;transition:background-size .3s,border-radius .3s}.proton-TextEmphasis--tooltip:hover{background-size:100% 100%;border-radius:.125rem}.proton-TextEmphasis--tooltip:not(:hover){transition-delay:.2s}.proton__Tooltip{background-color:var(--proton-control__background-color);color:var(--proton-control__text-color)}[data-radix-popper-content-wrapper]{z-index:10000!important}.proton__Tooltip-trigger{display:inherit}.proton__Tooltip-arrow{fill:var(--proton-control__background-color)}.proton__Tooltip[data-state=delayed-open],.proton__Tooltip[data-state=instant-open]{animation:.2s slide}.proton__Tooltip[data-state=closed]{animation:.2s reverse slide}@keyframes slide{0%{opacity:0;transform:var(--origin)}to{opacity:1;transform:translate(0)}}.proton-Waveform{--waveform-bar-color-dark:#ffffffe6;--waveform-bar-color-light:#000000b3;--waveform-disabled-color-dark:#fff3;--waveform-disabled-color-light:#0003;--waveform-animation-curve:cubic-bezier(.34,1.56,.64,1);--waveform-animation-duration:.4s;--waveform-bar-delay-multiplier:.7ms;--waveform-timestamp-padding:.25rem;--waveform-timestamp-font-size:.75rem;--waveform-timestamp-border-radius:.125rem;--waveform-hover-line-width:2px;flex-direction:row;align-items:center;width:100%;height:100%;display:flex;position:relative}.proton-Waveform__container{z-index:0;flex:1;align-items:center;width:100%;height:100%;display:flex;position:relative}.proton-Waveform__container[data-disabled=true]{cursor:not-allowed}.proton-Waveform__timestamp{pointer-events:none;border-radius:var(--waveform-timestamp-border-radius);padding:0 var(--waveform-timestamp-padding);font-size:var(--waveform-timestamp-font-size);z-index:1;background-color:#0009;position:absolute}.proton-ui__theme--light .proton-Waveform__timestamp{color:#000c;background-color:#ffffffe6;box-shadow:0 2px 2px #0000004d}.proton-Waveform__timestamp--left{left:1px}.proton-Waveform__timestamp--right{right:3px}.proton-Waveform__hover-line{width:var(--waveform-hover-line-width);background-color:#ffffff80;position:absolute;top:0;bottom:0;transform:translate(-50%)}.proton-ui__theme--light .proton-Waveform__hover-line{background-color:#00000080}.proton-Waveform__bar-wrapper{flex-direction:column;justify-content:center;align-items:center;height:100%;display:flex;position:relative}.proton-Waveform__bar{background-color:var(--waveform-bar-color-dark);transform-origin:50%;width:100%;height:0;transition:height var(--waveform-animation-duration)var(--waveform-animation-curve);position:relative}.proton-Waveform__bar.proton-Waveform__bar--visible{height:var(--target-height);transition-delay:calc(var(--index)*var(--waveform-bar-delay-multiplier))}.proton-Waveform__bar.proton-Waveform__bar--upper{transform-origin:bottom}.proton-Waveform__bar.proton-Waveform__bar--lower{transform-origin:top}.proton-ui__theme--light .proton-Waveform__bar{background-color:var(--waveform-bar-color-light)}.proton-Waveform__bar.proton-Waveform__bar--disabled{background-color:var(--waveform-disabled-color-dark)}.proton-ui__theme--light .proton-Waveform__bar.proton-Waveform__bar--disabled{background-color:var(--waveform-disabled-color-light)}.proton-Waveform__bar.proton-Waveform__bar--disabled.proton-Waveform__bar--played{background-color:var(--waveform-disabled-color-dark)}.proton-ui__theme--light .proton-Waveform__bar.proton-Waveform__bar--disabled.proton-Waveform__bar--played{background-color:var(--waveform-disabled-color-light)}.proton-Waveform__bar.proton-Waveform__bar--played{background-color:var(--proton-color__primary)}.proton-Waveform__bar--hover{height:var(--hover-height);z-index:10;background-color:color-mix(in srgb,var(--proton-color__primary)50%,transparent);mix-blend-mode:darken;width:100%;position:absolute;top:50%;transform:translateY(-50%)}.proton-ui__theme--light .proton-Waveform__bar--hover{background-color:color-mix(in srgb,var(--proton-color__primary)50%,white);mix-blend-mode:lighten}.proton-Waveform__bar-unavailable{pointer-events:none;text-align:center;z-index:10;color:#fff;background-color:#000000b3;border-radius:4px;padding:3px 6px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.proton-ui__theme--light .proton-Waveform__bar-unavailable{color:#000;background-color:#fff;box-shadow:0 5px 5px #0000004d}.proton-Waveform__active-region{pointer-events:none;z-index:1;border:1.5px solid #ffffffb3;border-radius:4px;position:absolute;top:0;bottom:0}.proton-ui__theme--light .proton-Waveform__active-region{border-color:#0000004d}
|
|
1
|
+
.proton-Button{--proton-button-edge-padding:1.05em;--proton-button__background-color:var(--proton-color__primary);--proton-button__text-color:var(--proton-color__white);color:var(--proton-button__text-color);border-radius:var(--proton-control__border-radius);padding:.45em var(--proton-button-edge-padding);letter-spacing:.05em;cursor:pointer;box-sizing:border-box;background-color:var(--proton-button__background-color);border:0;align-items:center;transition:filter .2s,background-color .2s,outline .2s;display:inline-flex;position:relative}.proton-Button__icon-decorator{justify-content:center;align-items:center;padding-right:.3em;line-height:1;display:flex;position:relative}.proton-Button__icon-decorator--fullWidth{position:absolute}.proton-Button__text{box-sizing:border-box;text-align:center;white-space:nowrap;text-overflow:ellipsis;margin:auto;line-height:normal;overflow:hidden}.proton-Button:hover{filter:brightness(1.16);cursor:pointer}.proton-Button--primary{--proton-button__background-color:var(--proton-color__primary);--proton-button__text-color:var(--proton-color__white)}.proton-Button--secondary{--proton-button__background-color:var(--proton-color__gray-light);--proton-button__text-color:var(--proton-control__text-color)}.proton-ui__theme--dark .proton-Button--secondary{--proton-button__background-color:var(--proton-control__background-color-light)}.proton-Button--danger{--proton-button__background-color:var(--proton-color__danger-medium)}.proton-Button--success{--proton-button__background-color:var(--proton-color__success-medium)}.proton-Button--translucent{--proton-button__background-color:var(--proton-control__background-color-light);--proton-button__text-color:var(--proton-control__text-color)}.proton-Button--disabled,.proton-Button--disabled:hover{opacity:.5;filter:none;cursor:not-allowed}.proton-Button:focus{outline:2px solid var(--proton-color__primary)}.proton-Button:focus-visible{outline:2px solid var(--proton-color__primary)}.proton-Button:active{filter:brightness(1.3);transition:filter .1s ease-out}.proton-Button--fullWidth{width:100%}.proton-Button--small{padding:.2rem .6rem;font-size:.875rem}.proton-Button--medium{padding:.4rem 1rem;font-size:1rem}.proton-Button--large{padding:.6rem 1.6rem;font-size:1.2rem}.proton-Button--xlarge{padding:1rem 2rem .8rem;font-size:1.3rem}.proton-Button--2xlarge{padding:1rem 2.6rem;font-size:1.6rem}.proton-Button--fullWidth .proton-Button__text{transform:translate(calc(var(--proton-button-text-shift)))}.proton-ScreenOverlay__background{-webkit-backdrop-filter:blur(24px)brightness(75%);backdrop-filter:blur(24px)brightness(75%);background-color:#000c;justify-content:center;align-items:center;width:100%;height:100%;display:flex;position:fixed;top:0;left:0}.proton-ScreenOverlay__z-index{z-index:10000}.proton-ScreenOverlay__image{object-fit:cover;width:100vw;height:100vh;position:absolute}.proton-ScreenOverlay__blur{-webkit-backdrop-filter:blur(24px)brightness(75%);backdrop-filter:blur(24px)brightness(75%);filter:brightness(46%);position:absolute;top:0;bottom:0;left:0;right:0}@keyframes fadeInBackground{0%{-webkit-backdrop-filter:blur(1px);backdrop-filter:blur(1px);background:#0000001a}to{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#000c}}@keyframes fadeOutBackground{0%{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#000c}to{-webkit-backdrop-filter:blur();backdrop-filter:blur();background:0 0}}.proton-ScreenOverlay__fade-in{animation:.2s ease-in-out forwards fadeInBackground}.proton-ScreenOverlay__fade-out{animation:.2s ease-in-out forwards fadeOutBackground}.proton-ActionMenu__wrapper{z-index:10;width:100%;max-height:100vh;position:fixed;bottom:0;left:0}.proton-ActionMenu__background-wrapper{opacity:0;transition:opacity .3s cubic-bezier(.34,1.56,.64,1);overflow-y:scroll}.proton-ActionMenu__card{background:var(--proton-control__background-color);color:var(--proton-control__text-color);z-index:1;border-radius:.875rem .875rem 0 0;flex-direction:column;height:0;transition:height .3s cubic-bezier(.34,1.56,.64,1);display:flex;position:relative;overflow:hidden;box-shadow:0 0 4px #0000001a,0 0 20px #00000026}.proton-ActionMenu__cancel-button{margin:0 .75rem 1rem}.proton-ActionMenu__content{padding:.75rem .75rem 0}.proton-ActionMenu__menu>[data-radix-popper-content-wrapper]{width:100%!important;position:absolute!important;top:0!important;transform:none!important}.proton-ActionMenu__list{flex-direction:column;margin-bottom:.625rem;display:flex}.proton-ActionMenu__item{color:inherit;cursor:pointer;justify-content:space-between;align-items:center;padding:.75rem .5rem .75rem .75rem;transition:filter .2s,background-color .2s,color .2s;display:flex}.proton-ActionMenu__item:hover,.proton-ActionMenu__item:focus{background-color:var(--proton-control__hover-color);border:none;outline:none}.proton-ActionMenu__item[aria-checked=true]:hover,.proton-ActionMenu__item[aria-checked=true]:focus{filter:brightness(1.15)}.proton-ActionMenu__item[aria-checked=true]{background-color:var(--proton-control__interactive-color);color:var(--proton-color__primary)}.proton-ui__theme--dark .proton-ActionMenu__item[aria-checked=true]{background-color:var(--proton-color__primary);color:var(--proton-control__text-color)}.proton-ActionMenu__item[aria-disabled=true],.proton-ActionMenu__list[aria-disabled=true],.proton-ActionMenu__item[aria-disabled=true]:hover{opacity:.5;cursor:not-allowed;background-color:#0000}.proton-ActionMenu__list[aria-disabled=true] .proton-ActionMenu__item{pointer-events:none}.proton-ActionMenu__title{text-align:center;width:100%;font-weight:600}.proton-ActionMenu__back-button{cursor:pointer;z-index:1;align-items:center;width:25%;height:100%;padding-left:.35rem;display:flex;position:absolute;left:0}.proton-ActionMenu__back-button:hover,.proton-ActionMenu__cancel-button:focus{background-color:var(--proton-control__hover-color);outline:none}.proton-ActionMenu__back-button:focus-visible{background-color:var(--proton-control__hover-color);outline:none}.proton-ActionMenu__cancel-button:focus-visible{background-color:var(--proton-control__hover-color);outline:none}.proton-ActionMenu__back-button-container{align-items:center;height:3rem;display:flex;position:relative}.proton-ActionMenu__description{color:var(--proton-control__text-color);opacity:.7;font-size:.875rem}.proton-ActionMenu__item-label{font-weight:500}.proton-ui__theme--dark .proton-ActionMenu__cancel-button button{--proton-button__background-color:var(--proton-control__background-color-light)}.proton-Badge{letter-spacing:.2em;text-align:center;text-transform:uppercase;white-space:nowrap;height:1.6rem;color:#666;background-color:#f2f2f2;border-radius:10rem;padding-left:1rem;padding-right:calc(1rem - .2em);font-size:1rem;font-weight:500;line-height:1.65rem;display:inline-block}.proton-ui__theme--dark .proton-Badge:not([class*=proton-Badge--]),.proton-ui__theme--dark .proton-Badge--secondary{background-color:var(--proton-control__background-color-light);color:var(--proton-control__text-color)}.proton-Badge--primary{background-color:var(--proton-color__primary);color:var(--proton-color__white)}.proton-Badge--success{background-color:var(--proton-color__success-super-light);color:var(--proton-color__success-dark)}.proton-Badge--warning{background-color:var(--proton-color__warning-super-light);color:var(--proton-color__warning-dark)}.proton-Badge--danger{background-color:var(--proton-color__danger-super-light);color:var(--proton-color__danger-dark)}.proton-Badge--transparent{color:#666;background-color:#0000}.proton-Banner{background-color:var(--banner-bg);-webkit-backdrop-filter:var(--banner-blur);backdrop-filter:var(--banner-blur);--tw-backdrop-blur:var(--banner-blur);--banner-bg:var(--proton-control__background-color-light);--banner-title:var(--proton-color__gray-dark);--banner-content:var(--proton-color__gray-medium);--banner-icon:var(--proton-color__gray-medium-light);--banner-blur:none;margin:0}:where(.proton-ui__theme--dark) .proton-Banner{--banner-bg:var(--proton-control__background-color-light);--banner-blur:blur(15px);--banner-title:var(--proton-control__text-color);--banner-content:var(--proton-control__text-color);--banner-icon:var(--proton-control__text-color)}.proton-Banner--warning{--banner-bg:var(--proton-color__warning-super-light);--banner-title:var(--proton-color__warning-dark);--banner-content:var(--proton-color__warning-medium);--banner-icon:var(--proton-color__warning-light)}.proton-Banner--success{--banner-bg:var(--proton-color__success-super-light);--banner-title:var(--proton-color__success-dark);--banner-content:var(--proton-color__success-medium);--banner-icon:var(--proton-color__success-light)}.proton-Banner--danger{--banner-bg:var(--proton-color__danger-super-light);--banner-title:var(--proton-color__danger-dark);--banner-content:var(--proton-color__danger-medium);--banner-icon:var(--proton-color__danger-light)}.proton-Banner--rounded{border-radius:.375rem}.proton-Banner__wrapper{align-items:flex-start;padding:2rem;display:flex}.proton-Banner__wrapper--compact{padding:1rem}.proton-Banner__content-wrapper{min-width:0;color:var(--banner-content);flex:1}.proton-Banner__container{padding:0 .625rem}.proton-Banner__title{letter-spacing:.01rem;color:var(--banner-title);line-height:1.2rem}.proton-Banner__content{color:var(--banner-content);margin:.375rem 0 0}.proton-Banner__icon{fill:var(--banner-icon);height:20px}.proton-Banner__actions{gap:.5rem;margin:.375rem 0 0;display:flex}@media (min-width:768px){.proton-Banner__container{grid-gap:.5rem;grid-template-columns:1fr auto;display:grid}.proton-Banner__title,.proton-Banner__content{grid-column:1;margin:auto 0}.proton-Banner__container:not(:has(.proton-Banner__content)){grid-gap:0px;grid-template-rows:1fr}.proton-Banner__container>div:last-child{grid-area:1/2/span 2;max-height:32px;margin:auto 0}.proton-Banner__actions{margin:0 0 0 .75rem}.proton-Banner__wrapper:not(:has(.proton-Banner__content)){align-items:center}}.proton-ButtonGroup{border:1px solid var(--proton-color__gray-light);border-radius:.25rem;font-weight:400;display:flex;overflow:hidden}.proton-ButtonGroup__option{background-color:var(--proton-color__gray-super-light);cursor:pointer;border-left:1px solid var(--proton-color__gray-light);color:var(--proton-color__gray-dark);text-align:center;border-radius:0;flex:1;padding:.5em 1em}.proton-ButtonGroup__option:first-child{border-left:0}.proton-ButtonGroup__option--selected{background-color:var(--proton-color__white);color:var(--proton-color__primary);z-index:2;cursor:default;border-radius:inherit;box-shadow:0 0 .375rem #00000026}.proton-ButtonGroup__option--selected+.proton-ButtonGroup__option{border-left:1px solid #0000}.proton-MenuTrigger__menu-header{text-transform:uppercase;color:var(--proton-control__text-color);background-color:var(--proton-control__background-color-light);letter-spacing:.1em;padding:.3125rem 1rem .25rem;font-size:.8em;font-weight:700}.proton-MenuTrigger__button{cursor:pointer;color:var(--proton-control__text-color);background:0 0;border:none;border-radius:.25rem;justify-content:center;align-items:center;padding:.25rem;transition:background-color .2s ease-in-out;display:flex}.proton-MenuTrigger__button:disabled{cursor:not-allowed;opacity:.5}.proton-ui__theme--dark .proton-MenuTrigger__button:disabled:hover,.proton-MenuTrigger__button:disabled:hover{background:0 0}.proton-MenuTrigger__button:focus{outline:2px solid var(--proton-color__primary)}.proton-MenuTrigger__button:hover{background-color:var(--proton-control__hover-color)}.proton-MenuTrigger__menu-item .proton-Menu__item,.proton-MenuTrigger__menu-item{color:var(--proton-control__text-color);grid-template:"label kbd""desc kbd"/1fr auto;align-items:center;gap:.1em .5em;padding:.75em 1em;display:grid}.proton-MenuTrigger__menu-item .proton-Menu__item[data-has-submenu=true],.proton-MenuTrigger__menu-item[data-has-submenu=true]{grid-template-columns:unset;grid-template-areas:unset;justify-content:space-between;align-items:center;display:flex}.proton-MenuTrigger__label{grid-area:label}.proton-MenuTrigger__description{opacity:.7;grid-area:desc;font-size:.8em;line-height:1.1}.proton-MenuTrigger__chevron{padding-left:.5rem}.proton-Menu{--menu-bg-color:var(--proton-control__background-color);--menu-item-bg-color:var(--proton-control__background-color);letter-spacing:.05em;border-radius:var(--proton-control__border-radius);background:var(--menu-bg-color);border:1px solid var(--proton-control__border-color);min-width:100px;max-height:420px;color:var(--proton-control__text-color);box-shadow:0 0 3px var(--proton-control__shadow-color);margin:8px 0 0;padding:0;list-style:none;overflow:auto}.proton-Menu__item{background:var(--menu-item-bg-color);cursor:pointer;outline:none;justify-content:space-between;align-items:center;padding:8px 24px 8px 16px;transition:background-color .2s,opacity .2s,color .2s;display:flex}.proton-Menu__item[aria-checked=true]{--menu-item-bg-color:var(--proton-color__primary-light);color:var(--proton-color__primary);font-weight:600}.proton-Menu__item[aria-checked=true][data-highlighted=""]{--menu-item-bg-color:var(--proton-color__primary-light);opacity:.75}.proton-Menu__item[aria-selected=true]{--menu-item-bg-color:var(--proton-color__primary-light);color:var(--proton-color__primary);font-weight:600}.proton-Menu__item[aria-selected=true][data-highlighted=""]{--menu-item-bg-color:var(--proton-color__primary-light);opacity:.75}.proton-Menu__item[data-state=checked]{--menu-item-bg-color:var(--proton-color__primary-light);color:var(--proton-color__primary);font-weight:600}.proton-Menu__item[data-state=checked][data-highlighted=""]{--menu-item-bg-color:var(--proton-color__primary-light);opacity:.75}.proton-Menu__item[data-highlighted=""]{--menu-item-bg-color:var(--proton-control__hover-color)}.proton-Menu__item:hover{--menu-item-bg-color:var(--proton-control__hover-color);box-shadow:none}.proton-Menu__item[aria-disabled=true],.proton-Menu__item[data-disabled=true]{opacity:.5;cursor:not-allowed}.proton-ButtonWithSelect{align-items:stretch;display:flex;position:relative}.proton-ButtonWithSelect button:focus{outline:none}.proton-ButtonWithSelect__button{flex:var(--flex);align-items:stretch;display:flex}.proton-ButtonWithSelect__button button,.proton-ButtonWithSelect__button a{border-top-right-radius:0;border-bottom-right-radius:0;align-items:center;display:flex;position:relative;overflow:hidden}.proton-ButtonWithSelect__button button:after,.proton-ButtonWithSelect__button a:after{content:"";background-color:#00000026;width:1px;position:absolute;top:.3em;bottom:.3em;right:0}.proton-ButtonWithSelect__trigger{flex:0 0 var(--trigger-width);min-width:var(--trigger-width);max-width:var(--trigger-width)}.proton-ButtonWithSelect__trigger .proton-Button{border-top-left-radius:0;border-bottom-left-radius:0;width:100%;height:100%;padding:0}.proton-ButtonWithSelect__trigger-content{flex-direction:column;align-items:center;display:flex}.proton-Table{border-collapse:collapse;color:var(--proton-control__text-color);width:100%;font-weight:300}.proton-Table__caption{display:none}.proton-Table__header{cursor:default;letter-spacing:.1em;text-transform:uppercase;text-align:left;outline:none;padding:.4375rem .625rem;font-size:1rem;font-weight:500;line-height:1rem}.proton-Table__header--center{text-align:center}.proton-Table__header--right{text-align:right}.proton-Table__headerSortIcon{padding:0 .125rem}.proton-Table__row{cursor:default;outline:none}.proton-Table__rowGroup--header{border-bottom:1px solid #ccc}.proton-Table__row--showLines{border-top:1px solid #ccc}.proton-Table--clickable{cursor:pointer}.proton-Table__cell{vertical-align:middle;outline:none;padding:.4375rem .625rem}.proton-Table__cell--center{text-align:center}.proton-Table__cell--right{text-align:right}.proton-Elevation{border-radius:var(--proton-control__border-radius);background-color:var(--proton-control__background-color-light);-webkit-backdrop-filter:blur(15px);backdrop-filter:blur(15px);--tw-backdrop-blur:blur(15px);width:100%;height:100%;transition:background-color .2s ease-in-out,-webkit-backdrop-filter .2s ease-in-out,backdrop-filter .2s ease-in-out}@keyframes shimmer{0%{background-position:-300px 0}to{background-position:800px 0}}.proton-Tombstone{background-position:-300px 0;background-repeat:no-repeat;background-size:300px 100%;animation:1.5s linear infinite shimmer}.proton-ui__theme--light .proton-Tombstone{background-color:#d1d1d1;background-image:linear-gradient(-90deg,#d1d1d1,#b8b8b8,#d1d1d1)}.proton-ui__theme--dark .proton-Tombstone{background-color:#3c3c3c;background-image:linear-gradient(-90deg,#363636,#292727,#353535)}.proton-Tombstone--custom{background-image:linear-gradient(-90deg,var(--tombstone-custom-primary)0%,var(--tombstone-custom-secondary)50%,var(--tombstone-custom-primary)100%);background-color:var(--tombstone-custom-background)}.proton-DataTable{width:100%}.proton-DataTable__header-content{align-items:center;gap:.5rem;display:flex}.proton-DataTable__message-cell{position:absolute;left:0;right:0}.proton-DataTable__empty-cell{text-align:center;padding:3rem 1.5rem}.proton-DataTable__sort-button{cursor:pointer;border-radius:var(--proton-control__border-radius);border:none;max-height:.8rem;padding-bottom:1px;transition:background-color .15s ease-in-out,opacity .15s ease-in-out,transform .15s ease-in-out;display:inline-flex}.proton-DataTable__sort-button:hover{background-color:var(--proton-control__hover-color)}.proton-DataTable__sort-button[aria-label*=ascending]{align-items:flex-end;transform:rotateX(180deg)}.proton-Dialog{background-color:var(--proton-control__background-color);border-radius:var(--proton-control__border-radius);box-shadow:0 0 20px 0 var(--proton-control__shadow-color),0 0 4px 0 var(--proton-control__shadow-color);color:var(--proton-control__text-color);outline:none;padding:.65rem .85rem;font-weight:300}.proton-ui__theme--dark .proton-Dialog{background-color:var(--proton-control__background-color-light)}.proton-Dialog__header{color:var(--proton-control__title-color);margin-bottom:.3rem}.proton-Input{max-width:var(--container-width,100%);border-radius:var(--proton-control__border-radius);box-sizing:border-box;outline:1px solid var(--proton-control__border-color);background:var(--proton-control__background-color);width:100%;height:100%;color:var(--proton-control__text-color);border:none;flex:1;padding-left:.75rem;font-weight:400;transition:outline .1s ease-in-out,background-color .1s ease-in-out,color .1s ease-in-out,opacity .1s ease-in-out}.proton-ui__theme--dark .proton-Input{background-color:var(--proton-control__background-color-light)}.proton-Input:disabled{opacity:.6;cursor:not-allowed}.proton-Input:not(.proton-Input--error):focus{outline:2px solid var(--proton-color__primary)}.proton-Input:not(.proton-Input--error):focus-visible{outline:2px solid var(--proton-color__primary)}.proton-Input.proton-Input--error{outline:2px solid var(--proton-color__danger-medium)}.proton-Input__container{width:100%;height:100%}.proton-Input__container-inner{width:100%;height:100%;position:relative}.proton-Input__descriptor{z-index:1;justify-content:center;height:100%;position:absolute;top:50%;transform:translateY(-50%)}.proton-Input__prefix,.proton-Input__suffix{justify-content:center;align-items:center;min-width:32px;display:flex}.proton-Input__prefix{opacity:.5;cursor:text;left:0}.proton-Input__suffix{outline:none;right:0}.proton-Input__container-inner.proton-Input__has-prefix .proton-Input{padding-left:var(--prefix-width,32px)}.proton-Input__container-inner.proton-Input__has-suffix .proton-Input{padding-right:calc(.75rem + var(--suffix-width,44px))}.proton-Input__text{opacity:.55;color:var(--proton-control__text-color);padding:.25rem 0;font-size:.75rem;font-weight:500}.proton-Input__error{color:var(--proton-color__danger-medium);opacity:1}.proton-Input__label-top{padding-top:1.375rem;padding-bottom:.5rem}.proton-Input__label{opacity:.55;color:var(--proton-control__text-color);pointer-events:none;transition:all .3s cubic-bezier(.4,0,.2,1);position:absolute;top:50%;left:16px;transform:translateY(-50%)}.proton-Input__label--filled,.proton-Input[value]:not([value=""])+.proton-Input__label,.proton-Input:focus+.proton-Input__label{color:var(--proton-color__primary);opacity:1;font-size:.75rem;transform:translateY(-140%)}.proton-Input:focus+.proton-Input__label{color:var(--proton-color__primary);opacity:1}.proton-CheckboxInput__container{align-items:center;gap:8px;display:flex}.proton-CheckboxInput__input{-webkit-appearance:none;-moz-appearance:none;appearance:none;cursor:pointer;border:2px solid var(--proton-control__border-color);border-radius:var(--proton-control__border-radius);background-color:var(--proton-control__background-color);width:18px;height:18px;transition:background-color .1s ease-in-out,border-color .1s ease-in-out,box-shadow .1s ease-in-out;position:relative;margin:0!important}.proton-CheckboxInput__input:checked{background-color:var(--proton-color__primary);border-color:var(--proton-color__primary)}.proton-CheckboxInput__input:checked:after{content:"";border:solid var(--proton-color__white);border-width:0 2px 2px 0;width:5px;height:10px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)rotate(45deg)}.proton-CheckboxInput__input:indeterminate{background-color:var(--proton-color__primary);border-color:var(--proton-color__primary)}.proton-CheckboxInput__input:indeterminate:after{content:"";background-color:var(--proton-control__text-color);width:10px;height:2px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.proton-CheckboxInput__input:focus{box-shadow:0 0 0 2px var(--proton-color__primary);outline:none}.proton-CheckboxInput__input:focus-visible{box-shadow:0 0 0 2px var(--proton-color__primary);outline:none}.proton-CheckboxInput__input--error{border-color:var(--proton-color__danger-medium)}.proton-CheckboxInput__input--error:focus{box-shadow:0 0 0 2px var(--proton-color__danger-medium)}.proton-CheckboxInput__input--error:focus-visible{box-shadow:0 0 0 2px var(--proton-color__danger-medium)}.proton-CheckboxInput__input:disabled{opacity:.6;cursor:not-allowed}.proton-CheckboxInput__input:disabled:checked{background-color:var(--proton-control__border-color);border-color:var(--proton-control__border-color)}.proton-CheckboxInput__label{color:var(--proton-control__text-color);cursor:pointer;-webkit-user-select:none;user-select:none;font-weight:400}.proton-CheckboxInput--disabled .proton-CheckboxInput__label{opacity:.6;cursor:not-allowed}.proton-CheckboxInput__error{color:var(--proton-color__danger-medium);opacity:1;margin-top:4px}.proton-CopyInput-button{all:unset;cursor:pointer;color:var(--proton-control__text-color);text-transform:uppercase;letter-spacing:.2em;justify-content:center;align-items:center;width:100%;height:100%;padding:0 .875rem 0 1.4rem;font-size:.75rem;font-weight:600;line-height:1rem;transition:background-color .2s;display:flex}.proton-CopyInput-button svg{margin-bottom:.0625rem;transition:color .2s}.proton-CopyInput-button-text{margin:0 .5rem;transition:color .2s}.proton-CopyInput-button-text--copied,.proton-CopyInput-button--copied svg{color:var(--proton-color__primary)}.proton-Input:not(.proton-Input--error):focus{outline:1px solid var(--proton-control__border-color)}.proton-Input:not(.proton-Input--error):focus-visible{outline:1px solid var(--proton-control__border-color)}.proton-ui__theme--light .proton-CopyInput-button{border-left:1px solid var(--proton-control__border-color);align-items:center;height:100%;transition:background-color .2s;display:flex}.proton-CopyInput-button:hover{background-color:var(--proton-control__background-color-light)}.proton-Input[type=search]{border-radius:3.125rem}.proton-SearchInput__wrapper{width:100%}.proton-SearchInput__button{color:currentColor;cursor:pointer;opacity:1;background-color:#0000;border:none;transition:opacity .2s ease-in-out}.proton-SearchInput__button--hide{opacity:0}.proton-SearchInput__wrapper input[type=search]::-webkit-search-decoration{display:none}.proton-SearchInput__wrapper input[type=search]::-webkit-search-cancel-button{display:none}.proton-SearchInput__wrapper input[type=search]::-webkit-search-results-button{display:none}.proton-SearchInput__wrapper input[type=search]::-webkit-search-results-decoration{display:none}.proton-Modal{background-color:var(--proton-control__background-color);color:var(--proton-control__text-color);max-width:86vw;max-height:80vh;box-shadow:0 .0625rem .25rem -.0625rem var(--proton-control__shadow-color);opacity:1;border-radius:.5rem;padding:2rem;transition:opacity .2s ease-in-out;position:relative;overflow:visible}.proton-Modal__content{margin-top:.5rem}.proton-Modal--closing{opacity:0}@media (max-width:768px){.proton-Modal{border-radius:0;flex-direction:column;justify-content:center;align-items:center;width:100vw;max-width:100vw;height:100vh;max-height:100vh;padding:.25rem .5rem;display:flex}.proton-Modal>div{text-align:center;width:100%}}.proton-Modal__title{color:var(--proton-control__title-color);word-break:break-word;line-height:1.2}.proton-Modal__subtitle{color:var(--proton-control__text-color);line-height:1.5}.proton-Modal__body{word-break:break-word;margin:1rem 0;line-height:1.5}.proton-Modal__actions{justify-content:center;gap:1rem;margin-top:1rem;display:flex}.proton-Modal__close-button{cursor:pointer;color:var(--proton-control__text-color);background:0 0;border:none;border-radius:.25rem;padding:.5rem;font-size:2.2rem;font-weight:800;line-height:1;transition:opacity .15s;position:absolute;top:.375rem;right:.75rem}.proton-Modal__close-button:focus,.proton-Modal__close-button:hover{opacity:.8}.proton-ui__theme--dark .proton-Modal{background-color:var(--proton-control__background-color-light)}.proton-Popover{--slide:translateY(.8rem);transform-origin:var(--radix-popover-content-transform-origin);background-color:var(--proton-control__background-color);border-radius:var(--proton-control__border-radius);box-shadow:0 0 20px 0 var(--proton-control__shadow-color),0 0 4px 0 var(--proton-control__shadow-color);color:var(--proton-control__text-color);max-height:var(--radix-popover-content-available-height);outline:none;padding:.65rem .85rem;font-weight:300;animation:.2s cubic-bezier(.16,1,.3,1) popoverSlideAndFade}@keyframes popoverSlideAndFade{0%{opacity:0;transform:scale(.8)var(--slide)}to{opacity:1;transform:scale(1)translateY(0)}}.arrow{fill:var(--proton-control__background-color);width:.6rem;height:.4rem}.proton-Popover__constrained{width:var(--radix-popover-trigger-width)}.proton-Popover[data-side=top]{--slide:translateY(.8rem)}.proton-Popover[data-side=bottom]{--slide:translateY(-.8rem)}.proton-Popover[data-side=right]{--slide:translateX(-.8rem)}.proton-Popover[data-side=left]{--slide:translateX(.8rem)}.proton-Select{flex-direction:column;width:100%;margin:0;display:flex}.proton-Select__label{color:var(--proton-control__text-color);margin-bottom:.125rem}.proton-Select__trigger{color:var(--proton-control__text-color);font-size:inherit;border-radius:var(--proton-control__border-radius);flex:1;justify-content:space-between;align-items:center;width:100%;padding:.2rem .6rem .2rem 1rem;display:flex}.proton-Select__trigger--rounded{border-radius:3.125rem}button.proton-Select__trigger{letter-spacing:.05em;cursor:pointer;background:var(--proton-control__background-color);outline:1px solid var(--proton-control__border-color);border:none;font-weight:400;transition:outline .2s ease-in-out;position:relative}button.proton-Select__trigger:focus{outline:solid var(--proton-color__primary)2px;border:none}button.proton-Select__trigger:focus-visible{outline:solid var(--proton-color__primary)2px;border:none}.proton-Select__popover{padding-left:.25rem}.proton-Select__trigger_icon{color:var(--proton-control__text-color);width:.75em;height:.75em;margin-left:.8em;transition:transform .2s;position:relative}.proton-Select__trigger_icon svg{width:100%;height:100%;position:absolute;top:50%;left:0;transform:translateY(-50%)}.proton-Select__trigger_icon--flipped{transform:rotateX(180deg)}.proton-Select:hover{cursor:pointer}.proton-Select__trigger--disabled,.proton-Select__trigger--disabled:hover{opacity:.5;filter:none;cursor:not-allowed}.proton-Select__value{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.proton-Switch{flex-flow:column;row-gap:5px;display:flex}.proton-Switch__label{text-transform:uppercase;letter-spacing:.1em;color:var(--proton-control__text-color);font-size:.7em;font-weight:600}.proton-Switch__description{color:var(--proton-control__text-color);align-self:center;font-size:.9em}.proton-Switch__wrapper{column-gap:12px;display:flex}.proton-Switch__toggle{background-color:var(--proton-color__gray-light);cursor:pointer;border-radius:26px;flex-shrink:0;width:50px;height:26px;position:relative}.proton-Switch__slider{background-color:#fff;border-radius:22px;width:22px;height:22px;transition:left .2s;position:absolute;top:2px;left:2px}.proton-Switch--on .proton-Switch__toggle{background-color:var(--proton-color__primary)}.proton-Switch--on .proton-Switch__slider{left:26px}.proton-Switch--disabled{opacity:.4}.proton-Switch--disabled .proton-Switch__toggle{cursor:not-allowed}.proton-TextEllipsis{vertical-align:middle;color:var(--proton-control__text-color,inherit);font-family:inherit;font-size:inherit;line-height:inherit;width:100%;height:100%;display:inline-block;position:relative}.proton-TextEllipsis--single-line{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.proton-TextEllipsis--multi-line{text-overflow:ellipsis;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.proton-TextEmphasis{color:var(--proton-control__title-color);background-image:linear-gradient(0deg,#0000 0,#0000 15%,#ff713480 15%,#ff713480 35%,#0000 35%,#0000);padding:0 .05rem;font-style:normal;font-weight:700}.proton-TextEmphasis a{color:inherit;transition:color .15s}.proton-TextEmphasis a:hover{color:var(--proton-color__primary)}.proton-TextEmphasis--tooltip{background-image:linear-gradient(0deg,#0000 0,#0000 15%,#ff713480 25%,#ff713480 87%,#0000 80%,#0000);background-position:bottom;background-repeat:no-repeat;background-size:100% 35%;font-style:italic;font-weight:400;transition:background-size .3s,border-radius .3s}.proton-TextEmphasis--tooltip:hover{background-size:100% 100%;border-radius:.125rem}.proton-TextEmphasis--tooltip:not(:hover){transition-delay:.2s}.proton__Tooltip{background-color:var(--proton-control__background-color);color:var(--proton-control__text-color)}[data-radix-popper-content-wrapper]{z-index:10000!important}.proton__Tooltip-trigger{display:inherit}.proton__Tooltip-arrow{fill:var(--proton-control__background-color)}.proton__Tooltip[data-state=delayed-open],.proton__Tooltip[data-state=instant-open]{animation:.2s slide}.proton__Tooltip[data-state=closed]{animation:.2s reverse slide}@keyframes slide{0%{opacity:0;transform:var(--origin)}to{opacity:1;transform:translate(0)}}.proton-Waveform{--waveform-bar-color-dark:#ffffffe6;--waveform-bar-color-light:#000000b3;--waveform-disabled-color-dark:#fff3;--waveform-disabled-color-light:#0003;--waveform-animation-curve:cubic-bezier(.34,1.56,.64,1);--waveform-animation-duration:.4s;--waveform-bar-delay-multiplier:.7ms;--waveform-timestamp-padding:.25rem;--waveform-timestamp-font-size:.75rem;--waveform-timestamp-border-radius:.125rem;--waveform-hover-line-width:2px;flex-direction:row;align-items:center;width:100%;height:100%;display:flex;position:relative}.proton-Waveform__container{z-index:0;flex:1;align-items:center;width:100%;height:100%;display:flex;position:relative}.proton-Waveform__container[data-disabled=true]{cursor:not-allowed}.proton-Waveform__timestamp{pointer-events:none;border-radius:var(--waveform-timestamp-border-radius);padding:0 var(--waveform-timestamp-padding);font-size:var(--waveform-timestamp-font-size);z-index:1;background-color:#0009;position:absolute}.proton-ui__theme--light .proton-Waveform__timestamp{color:#000c;background-color:#ffffffe6;box-shadow:0 2px 2px #0000004d}.proton-Waveform__timestamp--left{left:1px}.proton-Waveform__timestamp--right{right:3px}.proton-Waveform__hover-line{width:var(--waveform-hover-line-width);background-color:#ffffff80;position:absolute;top:0;bottom:0;transform:translate(-50%)}.proton-ui__theme--light .proton-Waveform__hover-line{background-color:#00000080}.proton-Waveform__bar-wrapper{flex-direction:column;justify-content:center;align-items:center;height:100%;display:flex;position:relative}.proton-Waveform__bar{background-color:var(--waveform-bar-color-dark);transform-origin:50%;width:100%;height:0;transition:height var(--waveform-animation-duration)var(--waveform-animation-curve);position:relative}.proton-Waveform__bar.proton-Waveform__bar--visible{height:var(--target-height);transition-delay:calc(var(--index)*var(--waveform-bar-delay-multiplier))}.proton-Waveform__bar.proton-Waveform__bar--upper{transform-origin:bottom}.proton-Waveform__bar.proton-Waveform__bar--lower{transform-origin:top}.proton-ui__theme--light .proton-Waveform__bar{background-color:var(--waveform-bar-color-light)}.proton-Waveform__bar.proton-Waveform__bar--disabled{background-color:var(--waveform-disabled-color-dark)}.proton-ui__theme--light .proton-Waveform__bar.proton-Waveform__bar--disabled{background-color:var(--waveform-disabled-color-light)}.proton-Waveform__bar.proton-Waveform__bar--disabled.proton-Waveform__bar--played{background-color:var(--waveform-disabled-color-dark)}.proton-ui__theme--light .proton-Waveform__bar.proton-Waveform__bar--disabled.proton-Waveform__bar--played{background-color:var(--waveform-disabled-color-light)}.proton-Waveform__bar.proton-Waveform__bar--played{background-color:var(--proton-color__primary)}.proton-Waveform__bar--hover{height:var(--hover-height);z-index:10;background-color:color-mix(in srgb,var(--proton-color__primary)50%,transparent);mix-blend-mode:darken;width:100%;position:absolute;top:50%;transform:translateY(-50%)}.proton-ui__theme--light .proton-Waveform__bar--hover{background-color:color-mix(in srgb,var(--proton-color__primary)50%,white);mix-blend-mode:lighten}.proton-Waveform__bar-unavailable{pointer-events:none;text-align:center;z-index:10;color:#fff;background-color:#000000b3;border-radius:4px;padding:3px 6px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.proton-ui__theme--light .proton-Waveform__bar-unavailable{color:#000;background-color:#fff;box-shadow:0 5px 5px #0000004d}.proton-Waveform__active-region{pointer-events:none;z-index:1;border:1.5px solid #ffffffb3;border-radius:4px;position:absolute;top:0;bottom:0}.proton-ui__theme--light .proton-Waveform__active-region{border-color:#0000004d}
|