tmex-cli 0.1.4 → 0.1.6

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.
Files changed (27) hide show
  1. package/dist/runtime/server.js +421 -14
  2. package/package.json +3 -2
  3. package/resources/fe-dist/assets/DevicePage-Beg8tuEN.css +32 -0
  4. package/resources/fe-dist/assets/DevicePage-DXr7cn5f.js +31 -0
  5. package/resources/fe-dist/assets/DevicePage-DXr7cn5f.js.map +1 -0
  6. package/resources/fe-dist/assets/DevicesPage-DClS6lhB.js +17 -0
  7. package/resources/fe-dist/assets/DevicesPage-DClS6lhB.js.map +1 -0
  8. package/resources/fe-dist/assets/SettingsPage-DZPiSKLS.js +17 -0
  9. package/resources/fe-dist/assets/SettingsPage-DZPiSKLS.js.map +1 -0
  10. package/resources/fe-dist/assets/index-DLLCJhRn.css +1 -0
  11. package/resources/fe-dist/assets/index-uap7lu9-.js +200 -0
  12. package/resources/fe-dist/assets/index-uap7lu9-.js.map +1 -0
  13. package/resources/fe-dist/assets/select-DOLHUgAj.js +12 -0
  14. package/resources/fe-dist/assets/select-DOLHUgAj.js.map +1 -0
  15. package/resources/fe-dist/assets/switch-DbiHVHFg.js +12 -0
  16. package/resources/fe-dist/assets/switch-DbiHVHFg.js.map +1 -0
  17. package/resources/fe-dist/assets/tmex-DcyZpuP8.png +0 -0
  18. package/resources/fe-dist/assets/useValueChanged-DoNZeDee.js +2 -0
  19. package/resources/fe-dist/assets/useValueChanged-DoNZeDee.js.map +1 -0
  20. package/resources/fe-dist/index.html +10 -3
  21. package/resources/fe-dist/logo.png +0 -0
  22. package/resources/gateway-drizzle/0000_busy_starjammers.sql +1 -2
  23. package/resources/gateway-drizzle/meta/0000_snapshot.json +0 -4
  24. package/resources/gateway-drizzle/meta/0001_snapshot.json +0 -4
  25. package/resources/fe-dist/assets/index-D7lUHQCR.css +0 -32
  26. package/resources/fe-dist/assets/index-DNlxXBdI.js +0 -333
  27. package/resources/fe-dist/assets/index-DNlxXBdI.js.map +0 -1
@@ -0,0 +1,12 @@
1
+ import{c as N,r as s,o as de,ac as se,v as ie,w as re,b6 as ce,a5 as oe,q as le,s as ue,Z as fe,x as L,j as f,bm as he,bn as pe,C as me,b7 as ke,h as ve}from"./index-uap7lu9-.js";import{l as be,m as ge,u as q,i as xe,j as ye,k as Ce,n as we}from"./useValueChanged-DoNZeDee.js";/**
2
+ * @license lucide-react v0.564.0 - ISC
3
+ *
4
+ * This source code is licensed under the ISC license.
5
+ * See the LICENSE file in the root directory of this source tree.
6
+ */const ze=[["path",{d:"M21 12a9 9 0 1 1-6.219-8.56",key:"13zald"}]],Ke=N("loader-circle",ze);/**
7
+ * @license lucide-react v0.564.0 - ISC
8
+ *
9
+ * This source code is licensed under the ISC license.
10
+ * See the LICENSE file in the root directory of this source tree.
11
+ */const Pe=[["path",{d:"M14.536 21.686a.5.5 0 0 0 .937-.024l6.5-19a.496.496 0 0 0-.635-.635l-19 6.5a.5.5 0 0 0-.024.937l7.93 3.18a2 2 0 0 1 1.112 1.11z",key:"1ffxy3"}],["path",{d:"m21.854 2.147-10.94 10.939",key:"12cjpa"}]],Ve=N("send",Pe),S=s.createContext(void 0);function Ee(){const e=s.useContext(S);if(e===void 0)throw new Error(de(63));return e}let F=(function(e){return e.checked="data-checked",e.unchecked="data-unchecked",e.disabled="data-disabled",e.readonly="data-readonly",e.required="data-required",e.valid="data-valid",e.invalid="data-invalid",e.touched="data-touched",e.dirty="data-dirty",e.filled="data-filled",e.focused="data-focused",e})({});const T={...be,checked(e){return e?{[F.checked]:""}:{[F.unchecked]:""}}},Ie=s.forwardRef(function(i,o){const{checked:w,className:_,defaultChecked:k,id:v,inputRef:b,name:g,nativeButton:x=!1,onCheckedChange:O,readOnly:h=!1,required:l=!1,disabled:H=!1,render:Me,uncheckedValue:z,value:y,...J}=i,{clearErrors:U}=ge(),{state:P,setTouched:Y,setDirty:Z,validityData:$,setFilled:C,setFocused:E,shouldValidateOnChange:G,validationMode:Q,disabled:W,name:X,validation:n}=q(),{labelId:D}=xe(),d=W||H,r=X??g,p=se(O),c=s.useRef(null),I=ie(c,b,n.inputRef),m=s.useRef(null),R=re(),M=ye({id:v,implicit:!1,controlRef:m}),j=x?void 0:M,[t,B]=ce({controlled:w,default:!!k,name:"Switch",state:"checked"});Ce({id:R,commit:n.commit,value:t,controlRef:m,name:r,getValue:()=>t}),oe(()=>{c.current&&C(c.current.checked)},[c,C]),we(t,()=>{U(r),Z(t!==$.initialValue),C(t),G()?n.commit(t):n.commit(t,!0)});const{getButtonProps:A,buttonRef:ee}=le({disabled:d,native:x}),ae={id:x?M:R,role:"switch","aria-checked":t,"aria-readonly":h||void 0,"aria-required":l||void 0,"aria-labelledby":D,onFocus(){d||E(!0)},onBlur(){const a=c.current;!a||d||(Y(!0),E(!1),Q==="onBlur"&&n.commit(a.checked))},onClick(a){var u;h||d||(a.preventDefault(),(u=c.current)==null||u.dispatchEvent(new PointerEvent("click",{bubbles:!0,shiftKey:a.shiftKey,ctrlKey:a.ctrlKey,altKey:a.altKey,metaKey:a.metaKey})))}},te=s.useMemo(()=>ue({checked:t,disabled:d,id:j,name:r,required:l,style:r?he:pe,tabIndex:-1,type:"checkbox","aria-hidden":!0,ref:I,onChange(a){if(a.nativeEvent.defaultPrevented)return;const u=a.target.checked,V=me(ke,a.nativeEvent);p==null||p(u,V),!V.isCanceled&&B(u)},onFocus(){var a;(a=m.current)==null||a.focus()}},n.getInputValidationProps,y!==void 0?{value:y}:fe),[t,d,I,j,r,p,l,B,n,y]),K=s.useMemo(()=>({...P,checked:t,disabled:d,readOnly:h,required:l}),[P,t,d,h,l]),ne=L("span",i,{state:K,ref:[o,m,ee],props:[ae,n.getValidationProps,J,A],stateAttributesMapping:T});return f.jsxs(S.Provider,{value:K,children:[ne,!t&&r&&z!==void 0&&f.jsx("input",{type:"hidden",name:r,value:z}),f.jsx("input",{...te})]})}),Re=s.forwardRef(function(i,o){const{render:w,className:_,...k}=i,{state:v}=q(),b=Ee(),g={...v,...b};return L("span",i,{state:g,ref:o,stateAttributesMapping:T,props:k})});function Fe({className:e,size:i="default",...o}){return f.jsx(Ie,{"data-slot":"switch","data-size":i,className:ve("data-checked:bg-primary data-unchecked:bg-input focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive dark:aria-invalid:border-destructive/50 dark:data-unchecked:bg-input/80 shrink-0 rounded-full border border-transparent focus-visible:ring-3 aria-invalid:ring-3 data-[size=default]:h-[18.4px] data-[size=default]:w-[32px] data-[size=sm]:h-[14px] data-[size=sm]:w-[24px] peer group/switch relative inline-flex items-center transition-all outline-none after:absolute after:-inset-x-3 after:-inset-y-2 data-disabled:cursor-not-allowed data-disabled:opacity-50",e),...o,children:f.jsx(Re,{"data-slot":"switch-thumb",className:"bg-background dark:data-unchecked:bg-foreground dark:data-checked:bg-primary-foreground rounded-full group-data-[size=default]/switch:size-4 group-data-[size=sm]/switch:size-3 group-data-[size=default]/switch:data-checked:translate-x-[calc(100%-2px)] group-data-[size=sm]/switch:data-checked:translate-x-[calc(100%-2px)] group-data-[size=default]/switch:data-unchecked:translate-x-0 group-data-[size=sm]/switch:data-unchecked:translate-x-0 pointer-events-none block ring-0 transition-transform"})})}export{Ke as L,Fe as S,Ve as a};
12
+ //# sourceMappingURL=switch-DbiHVHFg.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"switch-DbiHVHFg.js","sources":["../../../../node_modules/.bun/lucide-react@0.564.0+b1ab299f0a400331/node_modules/lucide-react/dist/esm/icons/loader-circle.js","../../../../node_modules/.bun/lucide-react@0.564.0+b1ab299f0a400331/node_modules/lucide-react/dist/esm/icons/send.js","../../../../node_modules/.bun/@base-ui+react@1.2.0+ca9c98c9db1b76d1/node_modules/@base-ui/react/esm/switch/root/SwitchRootContext.js","../../../../node_modules/.bun/@base-ui+react@1.2.0+ca9c98c9db1b76d1/node_modules/@base-ui/react/esm/switch/root/SwitchRootDataAttributes.js","../../../../node_modules/.bun/@base-ui+react@1.2.0+ca9c98c9db1b76d1/node_modules/@base-ui/react/esm/switch/stateAttributesMapping.js","../../../../node_modules/.bun/@base-ui+react@1.2.0+ca9c98c9db1b76d1/node_modules/@base-ui/react/esm/switch/root/SwitchRoot.js","../../../../node_modules/.bun/@base-ui+react@1.2.0+ca9c98c9db1b76d1/node_modules/@base-ui/react/esm/switch/thumb/SwitchThumb.js","../../src/components/ui/switch.tsx"],"sourcesContent":["/**\n * @license lucide-react v0.564.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst __iconNode = [[\"path\", { d: \"M21 12a9 9 0 1 1-6.219-8.56\", key: \"13zald\" }]];\nconst LoaderCircle = createLucideIcon(\"loader-circle\", __iconNode);\n\nexport { __iconNode, LoaderCircle as default };\n//# sourceMappingURL=loader-circle.js.map\n","/**\n * @license lucide-react v0.564.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst __iconNode = [\n [\n \"path\",\n {\n d: \"M14.536 21.686a.5.5 0 0 0 .937-.024l6.5-19a.496.496 0 0 0-.635-.635l-19 6.5a.5.5 0 0 0-.024.937l7.93 3.18a2 2 0 0 1 1.112 1.11z\",\n key: \"1ffxy3\"\n }\n ],\n [\"path\", { d: \"m21.854 2.147-10.94 10.939\", key: \"12cjpa\" }]\n];\nconst Send = createLucideIcon(\"send\", __iconNode);\n\nexport { __iconNode, Send as default };\n//# sourceMappingURL=send.js.map\n","'use client';\n\nimport _formatErrorMessage from \"@base-ui/utils/formatErrorMessage\";\nimport * as React from 'react';\nexport const SwitchRootContext = /*#__PURE__*/React.createContext(undefined);\nif (process.env.NODE_ENV !== \"production\") SwitchRootContext.displayName = \"SwitchRootContext\";\nexport function useSwitchRootContext() {\n const context = React.useContext(SwitchRootContext);\n if (context === undefined) {\n throw new Error(process.env.NODE_ENV !== \"production\" ? 'Base UI: SwitchRootContext is missing. Switch parts must be placed within <Switch.Root>.' : _formatErrorMessage(63));\n }\n return context;\n}","export let SwitchRootDataAttributes = /*#__PURE__*/function (SwitchRootDataAttributes) {\n /**\n * Present when the switch is checked.\n */\n SwitchRootDataAttributes[\"checked\"] = \"data-checked\";\n /**\n * Present when the switch is not checked.\n */\n SwitchRootDataAttributes[\"unchecked\"] = \"data-unchecked\";\n /**\n * Present when the switch is disabled.\n */\n SwitchRootDataAttributes[\"disabled\"] = \"data-disabled\";\n /**\n * Present when the switch is readonly.\n */\n SwitchRootDataAttributes[\"readonly\"] = \"data-readonly\";\n /**\n * Present when the switch is required.\n */\n SwitchRootDataAttributes[\"required\"] = \"data-required\";\n /**\n * Present when the switch is in valid state (when wrapped in Field.Root).\n */\n SwitchRootDataAttributes[\"valid\"] = \"data-valid\";\n /**\n * Present when the switch is in invalid state (when wrapped in Field.Root).\n */\n SwitchRootDataAttributes[\"invalid\"] = \"data-invalid\";\n /**\n * Present when the switch has been touched (when wrapped in Field.Root).\n */\n SwitchRootDataAttributes[\"touched\"] = \"data-touched\";\n /**\n * Present when the switch's value has changed (when wrapped in Field.Root).\n */\n SwitchRootDataAttributes[\"dirty\"] = \"data-dirty\";\n /**\n * Present when the switch is active (when wrapped in Field.Root).\n */\n SwitchRootDataAttributes[\"filled\"] = \"data-filled\";\n /**\n * Present when the switch is focused (when wrapped in Field.Root).\n */\n SwitchRootDataAttributes[\"focused\"] = \"data-focused\";\n return SwitchRootDataAttributes;\n}({});","import { fieldValidityMapping } from \"../field/utils/constants.js\";\nimport { SwitchRootDataAttributes } from \"./root/SwitchRootDataAttributes.js\";\nexport const stateAttributesMapping = {\n ...fieldValidityMapping,\n checked(value) {\n if (value) {\n return {\n [SwitchRootDataAttributes.checked]: ''\n };\n }\n return {\n [SwitchRootDataAttributes.unchecked]: ''\n };\n }\n};","'use client';\n\nimport * as React from 'react';\nimport { useControlled } from '@base-ui/utils/useControlled';\nimport { useStableCallback } from '@base-ui/utils/useStableCallback';\nimport { useMergedRefs } from '@base-ui/utils/useMergedRefs';\nimport { useIsoLayoutEffect } from '@base-ui/utils/useIsoLayoutEffect';\nimport { visuallyHidden, visuallyHiddenInput } from '@base-ui/utils/visuallyHidden';\nimport { EMPTY_OBJECT } from '@base-ui/utils/empty';\nimport { useRenderElement } from \"../../utils/useRenderElement.js\";\nimport { mergeProps } from \"../../merge-props/index.js\";\nimport { useBaseUiId } from \"../../utils/useBaseUiId.js\";\nimport { useButton } from \"../../use-button/index.js\";\nimport { SwitchRootContext } from \"./SwitchRootContext.js\";\nimport { stateAttributesMapping } from \"../stateAttributesMapping.js\";\nimport { useField } from \"../../field/useField.js\";\nimport { useFieldRootContext } from \"../../field/root/FieldRootContext.js\";\nimport { useFormContext } from \"../../form/FormContext.js\";\nimport { useLabelableContext } from \"../../labelable-provider/LabelableContext.js\";\nimport { useLabelableId } from \"../../labelable-provider/useLabelableId.js\";\nimport { createChangeEventDetails } from \"../../utils/createBaseUIEventDetails.js\";\nimport { REASONS } from \"../../utils/reasons.js\";\nimport { useValueChanged } from \"../../utils/useValueChanged.js\";\n\n/**\n * Represents the switch itself.\n * Renders a `<span>` element and a hidden `<input>` beside.\n *\n * Documentation: [Base UI Switch](https://base-ui.com/react/components/switch)\n */\nimport { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nexport const SwitchRoot = /*#__PURE__*/React.forwardRef(function SwitchRoot(componentProps, forwardedRef) {\n const {\n checked: checkedProp,\n className,\n defaultChecked,\n id: idProp,\n inputRef: externalInputRef,\n name: nameProp,\n nativeButton = false,\n onCheckedChange: onCheckedChangeProp,\n readOnly = false,\n required = false,\n disabled: disabledProp = false,\n render,\n uncheckedValue,\n value,\n ...elementProps\n } = componentProps;\n const {\n clearErrors\n } = useFormContext();\n const {\n state: fieldState,\n setTouched,\n setDirty,\n validityData,\n setFilled,\n setFocused,\n shouldValidateOnChange,\n validationMode,\n disabled: fieldDisabled,\n name: fieldName,\n validation\n } = useFieldRootContext();\n const {\n labelId\n } = useLabelableContext();\n const disabled = fieldDisabled || disabledProp;\n const name = fieldName ?? nameProp;\n const onCheckedChange = useStableCallback(onCheckedChangeProp);\n const inputRef = React.useRef(null);\n const handleInputRef = useMergedRefs(inputRef, externalInputRef, validation.inputRef);\n const switchRef = React.useRef(null);\n const id = useBaseUiId();\n const controlId = useLabelableId({\n id: idProp,\n implicit: false,\n controlRef: switchRef\n });\n const hiddenInputId = nativeButton ? undefined : controlId;\n const [checked, setCheckedState] = useControlled({\n controlled: checkedProp,\n default: Boolean(defaultChecked),\n name: 'Switch',\n state: 'checked'\n });\n useField({\n id,\n commit: validation.commit,\n value: checked,\n controlRef: switchRef,\n name,\n getValue: () => checked\n });\n useIsoLayoutEffect(() => {\n if (inputRef.current) {\n setFilled(inputRef.current.checked);\n }\n }, [inputRef, setFilled]);\n useValueChanged(checked, () => {\n clearErrors(name);\n setDirty(checked !== validityData.initialValue);\n setFilled(checked);\n if (shouldValidateOnChange()) {\n validation.commit(checked);\n } else {\n validation.commit(checked, true);\n }\n });\n const {\n getButtonProps,\n buttonRef\n } = useButton({\n disabled,\n native: nativeButton\n });\n const rootProps = {\n id: nativeButton ? controlId : id,\n role: 'switch',\n 'aria-checked': checked,\n 'aria-readonly': readOnly || undefined,\n 'aria-required': required || undefined,\n 'aria-labelledby': labelId,\n onFocus() {\n if (!disabled) {\n setFocused(true);\n }\n },\n onBlur() {\n const element = inputRef.current;\n if (!element || disabled) {\n return;\n }\n setTouched(true);\n setFocused(false);\n if (validationMode === 'onBlur') {\n validation.commit(element.checked);\n }\n },\n onClick(event) {\n if (readOnly || disabled) {\n return;\n }\n event.preventDefault();\n inputRef.current?.dispatchEvent(new PointerEvent('click', {\n bubbles: true,\n shiftKey: event.shiftKey,\n ctrlKey: event.ctrlKey,\n altKey: event.altKey,\n metaKey: event.metaKey\n }));\n }\n };\n const inputProps = React.useMemo(() => mergeProps({\n checked,\n disabled,\n id: hiddenInputId,\n name,\n required,\n style: name ? visuallyHiddenInput : visuallyHidden,\n tabIndex: -1,\n type: 'checkbox',\n 'aria-hidden': true,\n ref: handleInputRef,\n onChange(event) {\n // Workaround for https://github.com/facebook/react/issues/9023\n if (event.nativeEvent.defaultPrevented) {\n return;\n }\n const nextChecked = event.target.checked;\n const eventDetails = createChangeEventDetails(REASONS.none, event.nativeEvent);\n onCheckedChange?.(nextChecked, eventDetails);\n if (eventDetails.isCanceled) {\n return;\n }\n setCheckedState(nextChecked);\n },\n onFocus() {\n switchRef.current?.focus();\n }\n }, validation.getInputValidationProps,\n // React <19 sets an empty value if `undefined` is passed explicitly\n // To avoid this, we only set the value if it's defined\n value !== undefined ? {\n value\n } : EMPTY_OBJECT), [checked, disabled, handleInputRef, hiddenInputId, name, onCheckedChange, required, setCheckedState, validation, value]);\n const state = React.useMemo(() => ({\n ...fieldState,\n checked,\n disabled,\n readOnly,\n required\n }), [fieldState, checked, disabled, readOnly, required]);\n const element = useRenderElement('span', componentProps, {\n state,\n ref: [forwardedRef, switchRef, buttonRef],\n props: [rootProps, validation.getValidationProps, elementProps, getButtonProps],\n stateAttributesMapping\n });\n return /*#__PURE__*/_jsxs(SwitchRootContext.Provider, {\n value: state,\n children: [element, !checked && name && uncheckedValue !== undefined && /*#__PURE__*/_jsx(\"input\", {\n type: \"hidden\",\n name: name,\n value: uncheckedValue\n }), /*#__PURE__*/_jsx(\"input\", {\n ...inputProps\n })]\n });\n});\nif (process.env.NODE_ENV !== \"production\") SwitchRoot.displayName = \"SwitchRoot\";","'use client';\n\nimport * as React from 'react';\nimport { useSwitchRootContext } from \"../root/SwitchRootContext.js\";\nimport { useRenderElement } from \"../../utils/useRenderElement.js\";\nimport { useFieldRootContext } from \"../../field/root/FieldRootContext.js\";\nimport { stateAttributesMapping } from \"../stateAttributesMapping.js\";\n\n/**\n * The movable part of the switch that indicates whether the switch is on or off.\n * Renders a `<span>`.\n *\n * Documentation: [Base UI Switch](https://base-ui.com/react/components/switch)\n */\nexport const SwitchThumb = /*#__PURE__*/React.forwardRef(function SwitchThumb(componentProps, forwardedRef) {\n const {\n render,\n className,\n ...elementProps\n } = componentProps;\n const {\n state: fieldState\n } = useFieldRootContext();\n const state = useSwitchRootContext();\n const extendedState = {\n ...fieldState,\n ...state\n };\n return useRenderElement('span', componentProps, {\n state: extendedState,\n ref: forwardedRef,\n stateAttributesMapping,\n props: elementProps\n });\n});\nif (process.env.NODE_ENV !== \"production\") SwitchThumb.displayName = \"SwitchThumb\";","import { Switch as SwitchPrimitive } from \"@base-ui/react/switch\"\n\nimport { cn } from \"@/lib/utils\"\n\nfunction Switch({\n className,\n size = \"default\",\n ...props\n}: SwitchPrimitive.Root.Props & {\n size?: \"sm\" | \"default\"\n}) {\n return (\n <SwitchPrimitive.Root\n data-slot=\"switch\"\n data-size={size}\n className={cn(\n \"data-checked:bg-primary data-unchecked:bg-input focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive dark:aria-invalid:border-destructive/50 dark:data-unchecked:bg-input/80 shrink-0 rounded-full border border-transparent focus-visible:ring-3 aria-invalid:ring-3 data-[size=default]:h-[18.4px] data-[size=default]:w-[32px] data-[size=sm]:h-[14px] data-[size=sm]:w-[24px] peer group/switch relative inline-flex items-center transition-all outline-none after:absolute after:-inset-x-3 after:-inset-y-2 data-disabled:cursor-not-allowed data-disabled:opacity-50\",\n className\n )}\n {...props}\n >\n <SwitchPrimitive.Thumb\n data-slot=\"switch-thumb\"\n className=\"bg-background dark:data-unchecked:bg-foreground dark:data-checked:bg-primary-foreground rounded-full group-data-[size=default]/switch:size-4 group-data-[size=sm]/switch:size-3 group-data-[size=default]/switch:data-checked:translate-x-[calc(100%-2px)] group-data-[size=sm]/switch:data-checked:translate-x-[calc(100%-2px)] group-data-[size=default]/switch:data-unchecked:translate-x-0 group-data-[size=sm]/switch:data-unchecked:translate-x-0 pointer-events-none block ring-0 transition-transform\"\n />\n </SwitchPrimitive.Root>\n )\n}\n\nexport { Switch }\n"],"names":["__iconNode","LoaderCircle","createLucideIcon","Send","SwitchRootContext","React.createContext","useSwitchRootContext","context","React.useContext","_formatErrorMessage","SwitchRootDataAttributes","stateAttributesMapping","fieldValidityMapping","value","SwitchRoot","React.forwardRef","componentProps","forwardedRef","checkedProp","className","defaultChecked","idProp","externalInputRef","nameProp","nativeButton","onCheckedChangeProp","readOnly","required","disabledProp","render","uncheckedValue","elementProps","clearErrors","useFormContext","fieldState","setTouched","setDirty","validityData","setFilled","setFocused","shouldValidateOnChange","validationMode","fieldDisabled","fieldName","validation","useFieldRootContext","labelId","useLabelableContext","disabled","name","onCheckedChange","useStableCallback","inputRef","React.useRef","handleInputRef","useMergedRefs","switchRef","id","useBaseUiId","controlId","useLabelableId","hiddenInputId","checked","setCheckedState","useControlled","useField","useIsoLayoutEffect","useValueChanged","getButtonProps","buttonRef","useButton","rootProps","element","event","_a","inputProps","React.useMemo","mergeProps","visuallyHiddenInput","visuallyHidden","nextChecked","eventDetails","createChangeEventDetails","REASONS.none","EMPTY_OBJECT","state","useRenderElement","_jsxs","_jsx","SwitchThumb","extendedState","Switch","size","props","jsx","SwitchPrimitive.Root","cn","SwitchPrimitive.Thumb"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6]}
@@ -0,0 +1,2 @@
1
+ import{r as c,bD as i,o as j,Z as D,w as V,Y as I,ac as h,a5 as C,bE as z,aE as E,bF as P,bG as w,bH as k,j as n,bI as M,f as T,h as p,k as A,l as O,g as S,B as R,m as N,n as L}from"./index-uap7lu9-.js";let y=(function(e){return e.disabled="data-disabled",e.valid="data-valid",e.invalid="data-invalid",e.touched="data-touched",e.dirty="data-dirty",e.filled="data-filled",e.focused="data-focused",e})({});const _={badInput:!1,customError:!1,patternMismatch:!1,rangeOverflow:!1,rangeUnderflow:!1,stepMismatch:!1,tooLong:!1,tooShort:!1,typeMismatch:!1,valid:null,valueMissing:!1},Q={valid(e){return e===null?null:e?{[y.valid]:""}:{[y.invalid]:""}}},B=c.createContext({invalid:void 0,name:void 0,validityData:{state:_,errors:[],error:"",value:"",initialValue:null},setValidityData:i,disabled:void 0,touched:!1,setTouched:i,dirty:!1,setDirty:i,filled:!1,setFilled:i,focused:!1,setFocused:i,validate:()=>null,validationMode:"onSubmit",validationDebounceTime:0,shouldValidateOnChange:()=>!1,state:{disabled:!1,valid:null,touched:!1,dirty:!1,filled:!1,focused:!1},markedDirtyRef:{current:!1},validation:{getValidationProps:(e=D)=>e,getInputValidationProps:(e=D)=>e,inputRef:{current:null},commit:async()=>{}}});function F(e=!0){const t=c.useContext(B);if(t.setValidityData===i&&!e)throw new Error(j(28));return t}const U=c.createContext({formRef:{current:{fields:new Map}},errors:{},clearErrors:i,validationMode:"onSubmit",submitAttemptedRef:{current:!1}});function Y(){return c.useContext(U)}const H=c.createContext({controlId:void 0,registerControlId:i,labelId:void 0,setLabelId:i,messageIds:[],setMessageIds:i,getDescriptionProps:e=>e});function G(){return c.useContext(H)}function J(e,t){return{...e,state:{...e.state,valid:!t&&e.state.valid}}}function X(e={}){const{id:t,implicit:o=!1,controlRef:l}=e,{controlId:v,registerControlId:f}=G(),g=V(t),d=o?v:void 0,m=I(()=>Symbol("labelable-control")),x=c.useRef(!1),s=c.useRef(t!=null),u=h(()=>{!x.current||f===i||(x.current=!1,f(m.current,void 0))});return C(()=>{if(f===i)return;let a;if(o){const r=l==null?void 0:l.current;z(r)&&r.closest("label")!=null?a=t??null:a=d??g}else if(t!=null)s.current=!0,a=t;else if(s.current)a=g;else{u();return}if(a===void 0){u();return}x.current=!0,f(m.current,a)},[t,l,d,f,o,g,m,u]),c.useEffect(()=>u,[u]),v??g}function $(e){const{enabled:t=!0,value:o,id:l,name:v,controlRef:f,commit:g}=e,{formRef:d}=Y(),{invalid:m,markedDirtyRef:x,validityData:s,setValidityData:u}=F(),a=h(e.getValue);C(()=>{if(!t)return;let r=o;r===void 0&&(r=a()),s.initialValue===null&&r!==null&&u(b=>({...b,initialValue:r}))},[t,u,o,s.initialValue,a]),C(()=>{!t||!l||d.current.fields.set(l,{getValue:a,name:v,controlRef:f,validityData:J(s,m),validate(r=!0){let b=o;b===void 0&&(b=a()),x.current=!0,r?E.flushSync(()=>g(b)):g(b)}})},[g,f,t,d,a,l,m,x,v,s,o]),C(()=>{const r=d.current.fields;return()=>{l&&r.delete(l)}},[d,l])}function W(e){const{children:t,open:o,defaultOpen:l=!1,onOpenChange:v,onOpenChangeComplete:f,actionsRef:g,handle:d,triggerId:m,defaultTriggerId:x=null}=e,s=P(),u=!!s,a=I(()=>(d==null?void 0:d.store)??new w({open:l,openProp:o,activeTriggerId:x,triggerIdProp:m,modal:!0,disablePointerDismissal:!0,nested:u,role:"alertdialog"})).current;a.useControlledProp("openProp",o),a.useControlledProp("triggerIdProp",m),a.useSyncedValue("nested",u),a.useContextCallback("onOpenChange",v),a.useContextCallback("onOpenChangeComplete",f);const r=a.useState("payload");k({store:a,actionsRef:g,parentContext:s==null?void 0:s.store.context});const b=c.useMemo(()=>({store:a}),[a]);return n.jsx(M.Provider,{value:b,children:typeof t=="function"?t({payload:r}):t})}function ee({...e}){return n.jsx(W,{"data-slot":"alert-dialog",...e})}function Z({...e}){return n.jsx(N,{"data-slot":"alert-dialog-portal",...e})}function q({className:e,...t}){return n.jsx(L,{"data-slot":"alert-dialog-overlay",className:p("data-open:animate-in data-closed:animate-out data-closed:fade-out-0 data-open:fade-in-0 bg-black/10 duration-100 supports-backdrop-filter:backdrop-blur-xs fixed inset-0 isolate z-50",e),...t})}function te({className:e,size:t="default",...o}){return n.jsxs(Z,{children:[n.jsx(q,{}),n.jsx(T,{"data-slot":"alert-dialog-content","data-size":t,className:p("data-open:animate-in data-closed:animate-out data-closed:fade-out-0 data-open:fade-in-0 data-closed:zoom-out-95 data-open:zoom-in-95 bg-background ring-foreground/10 gap-4 rounded-xl p-4 ring-1 duration-100 data-[size=default]:max-w-xs data-[size=sm]:max-w-xs data-[size=default]:sm:max-w-sm group/alert-dialog-content fixed top-1/2 left-1/2 z-50 grid w-full -translate-x-1/2 -translate-y-1/2 outline-none",e),...o})]})}function ae({className:e,...t}){return n.jsx("div",{"data-slot":"alert-dialog-header",className:p("grid grid-rows-[auto_1fr] place-items-center gap-1.5 text-center has-data-[slot=alert-dialog-media]:grid-rows-[auto_auto_1fr] has-data-[slot=alert-dialog-media]:gap-x-4 sm:group-data-[size=default]/alert-dialog-content:place-items-start sm:group-data-[size=default]/alert-dialog-content:text-left sm:group-data-[size=default]/alert-dialog-content:has-data-[slot=alert-dialog-media]:grid-rows-[auto_1fr]",e),...t})}function oe({className:e,...t}){return n.jsx("div",{"data-slot":"alert-dialog-footer",className:p("bg-muted/50 -mx-4 -mb-4 rounded-b-xl border-t p-4 flex flex-col-reverse gap-2 group-data-[size=sm]/alert-dialog-content:grid group-data-[size=sm]/alert-dialog-content:grid-cols-2 sm:flex-row sm:justify-end",e),...t})}function le({className:e,...t}){return n.jsx("div",{"data-slot":"alert-dialog-media",className:p("bg-muted mb-2 inline-flex size-10 items-center justify-center rounded-md sm:group-data-[size=default]/alert-dialog-content:row-span-2 *:[svg:not([class*='size-'])]:size-6",e),...t})}function ne({className:e,...t}){return n.jsx(A,{"data-slot":"alert-dialog-title",className:p("text-base font-medium sm:group-data-[size=default]/alert-dialog-content:group-has-data-[slot=alert-dialog-media]/alert-dialog-content:col-start-2",e),...t})}function re({className:e,...t}){return n.jsx(O,{"data-slot":"alert-dialog-description",className:p("text-muted-foreground *:[a]:hover:text-foreground text-sm text-balance md:text-pretty *:[a]:underline *:[a]:underline-offset-3",e),...t})}function se({className:e,...t}){return n.jsx(R,{"data-slot":"alert-dialog-action",className:p(e),...t})}function ie({className:e,variant:t="outline",size:o="default",...l}){return n.jsx(S,{"data-slot":"alert-dialog-cancel",className:p(e),render:n.jsx(R,{variant:t,size:o}),...l})}function de(e,t){const o=c.useRef(e),l=h(t);C(()=>{o.current!==e&&l(o.current)},[e,l]),C(()=>{o.current=e},[e])}export{ee as A,te as a,ae as b,ne as c,re as d,oe as e,ie as f,se as g,le as h,G as i,X as j,$ as k,Q as l,Y as m,de as n,F as u};
2
+ //# sourceMappingURL=useValueChanged-DoNZeDee.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useValueChanged-DoNZeDee.js","sources":["../../../../node_modules/.bun/@base-ui+react@1.2.0+ca9c98c9db1b76d1/node_modules/@base-ui/react/esm/field/control/FieldControlDataAttributes.js","../../../../node_modules/.bun/@base-ui+react@1.2.0+ca9c98c9db1b76d1/node_modules/@base-ui/react/esm/field/utils/constants.js","../../../../node_modules/.bun/@base-ui+react@1.2.0+ca9c98c9db1b76d1/node_modules/@base-ui/react/esm/field/root/FieldRootContext.js","../../../../node_modules/.bun/@base-ui+react@1.2.0+ca9c98c9db1b76d1/node_modules/@base-ui/react/esm/form/FormContext.js","../../../../node_modules/.bun/@base-ui+react@1.2.0+ca9c98c9db1b76d1/node_modules/@base-ui/react/esm/labelable-provider/LabelableContext.js","../../../../node_modules/.bun/@base-ui+react@1.2.0+ca9c98c9db1b76d1/node_modules/@base-ui/react/esm/field/utils/getCombinedFieldValidityData.js","../../../../node_modules/.bun/@base-ui+react@1.2.0+ca9c98c9db1b76d1/node_modules/@base-ui/react/esm/labelable-provider/useLabelableId.js","../../../../node_modules/.bun/@base-ui+react@1.2.0+ca9c98c9db1b76d1/node_modules/@base-ui/react/esm/field/useField.js","../../../../node_modules/.bun/@base-ui+react@1.2.0+ca9c98c9db1b76d1/node_modules/@base-ui/react/esm/alert-dialog/root/AlertDialogRoot.js","../../src/components/ui/alert-dialog.tsx","../../../../node_modules/.bun/@base-ui+react@1.2.0+ca9c98c9db1b76d1/node_modules/@base-ui/react/esm/utils/useValueChanged.js"],"sourcesContent":["export let FieldControlDataAttributes = /*#__PURE__*/function (FieldControlDataAttributes) {\n /**\n * Present when the field is disabled.\n */\n FieldControlDataAttributes[\"disabled\"] = \"data-disabled\";\n /**\n * Present when the field is in valid state.\n */\n FieldControlDataAttributes[\"valid\"] = \"data-valid\";\n /**\n * Present when the field is in invalid state.\n */\n FieldControlDataAttributes[\"invalid\"] = \"data-invalid\";\n /**\n * Present when the field has been touched.\n */\n FieldControlDataAttributes[\"touched\"] = \"data-touched\";\n /**\n * Present when the field's value has changed.\n */\n FieldControlDataAttributes[\"dirty\"] = \"data-dirty\";\n /**\n * Present when the field is filled.\n */\n FieldControlDataAttributes[\"filled\"] = \"data-filled\";\n /**\n * Present when the field control is focused.\n */\n FieldControlDataAttributes[\"focused\"] = \"data-focused\";\n return FieldControlDataAttributes;\n}({});","import { FieldControlDataAttributes } from \"../control/FieldControlDataAttributes.js\";\nexport const DEFAULT_VALIDITY_STATE = {\n badInput: false,\n customError: false,\n patternMismatch: false,\n rangeOverflow: false,\n rangeUnderflow: false,\n stepMismatch: false,\n tooLong: false,\n tooShort: false,\n typeMismatch: false,\n valid: null,\n valueMissing: false\n};\nexport const fieldValidityMapping = {\n valid(value) {\n if (value === null) {\n return null;\n }\n if (value) {\n return {\n [FieldControlDataAttributes.valid]: ''\n };\n }\n return {\n [FieldControlDataAttributes.invalid]: ''\n };\n }\n};","'use client';\n\nimport _formatErrorMessage from \"@base-ui/utils/formatErrorMessage\";\nimport * as React from 'react';\nimport { NOOP } from \"../../utils/noop.js\";\nimport { DEFAULT_VALIDITY_STATE } from \"../utils/constants.js\";\nimport { EMPTY_OBJECT } from \"../../utils/constants.js\";\nexport const FieldRootContext = /*#__PURE__*/React.createContext({\n invalid: undefined,\n name: undefined,\n validityData: {\n state: DEFAULT_VALIDITY_STATE,\n errors: [],\n error: '',\n value: '',\n initialValue: null\n },\n setValidityData: NOOP,\n disabled: undefined,\n touched: false,\n setTouched: NOOP,\n dirty: false,\n setDirty: NOOP,\n filled: false,\n setFilled: NOOP,\n focused: false,\n setFocused: NOOP,\n validate: () => null,\n validationMode: 'onSubmit',\n validationDebounceTime: 0,\n shouldValidateOnChange: () => false,\n state: {\n disabled: false,\n valid: null,\n touched: false,\n dirty: false,\n filled: false,\n focused: false\n },\n markedDirtyRef: {\n current: false\n },\n validation: {\n getValidationProps: (props = EMPTY_OBJECT) => props,\n getInputValidationProps: (props = EMPTY_OBJECT) => props,\n inputRef: {\n current: null\n },\n commit: async () => {}\n }\n});\nif (process.env.NODE_ENV !== \"production\") FieldRootContext.displayName = \"FieldRootContext\";\nexport function useFieldRootContext(optional = true) {\n const context = React.useContext(FieldRootContext);\n if (context.setValidityData === NOOP && !optional) {\n throw new Error(process.env.NODE_ENV !== \"production\" ? 'Base UI: FieldRootContext is missing. Field parts must be placed within <Field.Root>.' : _formatErrorMessage(28));\n }\n return context;\n}","'use client';\n\nimport * as React from 'react';\nimport { NOOP } from \"../utils/noop.js\";\nexport const FormContext = /*#__PURE__*/React.createContext({\n formRef: {\n current: {\n fields: new Map()\n }\n },\n errors: {},\n clearErrors: NOOP,\n validationMode: 'onSubmit',\n submitAttemptedRef: {\n current: false\n }\n});\nif (process.env.NODE_ENV !== \"production\") FormContext.displayName = \"FormContext\";\nexport function useFormContext() {\n return React.useContext(FormContext);\n}","'use client';\n\nimport * as React from 'react';\nimport { NOOP } from \"../utils/noop.js\";\n/**\n * A context for providing [labelable elements](https://html.spec.whatwg.org/multipage/forms.html#category-label)\\\n * with an accessible name (label) and description.\n */\nexport const LabelableContext = /*#__PURE__*/React.createContext({\n controlId: undefined,\n registerControlId: NOOP,\n labelId: undefined,\n setLabelId: NOOP,\n messageIds: [],\n setMessageIds: NOOP,\n getDescriptionProps: externalProps => externalProps\n});\nif (process.env.NODE_ENV !== \"production\") LabelableContext.displayName = \"LabelableContext\";\nexport function useLabelableContext() {\n return React.useContext(LabelableContext);\n}","/**\n * Combines the field's client-side, stateful validity data with the external invalid state to\n * determine the field's true validity.\n */\nexport function getCombinedFieldValidityData(validityData, invalid) {\n return {\n ...validityData,\n state: {\n ...validityData.state,\n valid: !invalid && validityData.state.valid\n }\n };\n}","'use client';\n\nimport * as React from 'react';\nimport { useIsoLayoutEffect } from '@base-ui/utils/useIsoLayoutEffect';\nimport { useStableCallback } from '@base-ui/utils/useStableCallback';\nimport { useRefWithInit } from '@base-ui/utils/useRefWithInit';\nimport { isElement } from '@floating-ui/utils/dom';\nimport { NOOP } from \"../utils/noop.js\";\nimport { useBaseUiId } from \"../utils/useBaseUiId.js\";\nimport { useLabelableContext } from \"./LabelableContext.js\";\nexport function useLabelableId(params = {}) {\n const {\n id,\n implicit = false,\n controlRef\n } = params;\n const {\n controlId,\n registerControlId\n } = useLabelableContext();\n const defaultId = useBaseUiId(id);\n const controlIdForEffect = implicit ? controlId : undefined;\n const controlSourceRef = useRefWithInit(() => Symbol('labelable-control'));\n const hasRegisteredRef = React.useRef(false);\n const hadExplicitIdRef = React.useRef(id != null);\n const unregisterControlId = useStableCallback(() => {\n if (!hasRegisteredRef.current || registerControlId === NOOP) {\n return;\n }\n hasRegisteredRef.current = false;\n registerControlId(controlSourceRef.current, undefined);\n });\n useIsoLayoutEffect(() => {\n if (registerControlId === NOOP) {\n return undefined;\n }\n let nextId;\n if (implicit) {\n const elem = controlRef?.current;\n if (isElement(elem) && elem.closest('label') != null) {\n nextId = id ?? null;\n } else {\n nextId = controlIdForEffect ?? defaultId;\n }\n } else if (id != null) {\n hadExplicitIdRef.current = true;\n nextId = id;\n } else if (hadExplicitIdRef.current) {\n nextId = defaultId;\n } else {\n unregisterControlId();\n return undefined;\n }\n if (nextId === undefined) {\n unregisterControlId();\n return undefined;\n }\n hasRegisteredRef.current = true;\n registerControlId(controlSourceRef.current, nextId);\n return undefined;\n }, [id, controlRef, controlIdForEffect, registerControlId, implicit, defaultId, controlSourceRef, unregisterControlId]);\n React.useEffect(() => {\n return unregisterControlId;\n }, [unregisterControlId]);\n return controlId ?? defaultId;\n}","'use client';\n\nimport * as ReactDOM from 'react-dom';\nimport { useIsoLayoutEffect } from '@base-ui/utils/useIsoLayoutEffect';\nimport { useStableCallback } from '@base-ui/utils/useStableCallback';\nimport { getCombinedFieldValidityData } from \"./utils/getCombinedFieldValidityData.js\";\nimport { useFormContext } from \"../form/FormContext.js\";\nimport { useFieldRootContext } from \"./root/FieldRootContext.js\";\nexport function useField(params) {\n const {\n enabled = true,\n value,\n id,\n name,\n controlRef,\n commit\n } = params;\n const {\n formRef\n } = useFormContext();\n const {\n invalid,\n markedDirtyRef,\n validityData,\n setValidityData\n } = useFieldRootContext();\n const getValue = useStableCallback(params.getValue);\n useIsoLayoutEffect(() => {\n if (!enabled) {\n return;\n }\n let initialValue = value;\n if (initialValue === undefined) {\n initialValue = getValue();\n }\n if (validityData.initialValue === null && initialValue !== null) {\n setValidityData(prev => ({\n ...prev,\n initialValue\n }));\n }\n }, [enabled, setValidityData, value, validityData.initialValue, getValue]);\n useIsoLayoutEffect(() => {\n if (!enabled || !id) {\n return;\n }\n formRef.current.fields.set(id, {\n getValue,\n name,\n controlRef,\n validityData: getCombinedFieldValidityData(validityData, invalid),\n validate(flushSync = true) {\n let nextValue = value;\n if (nextValue === undefined) {\n nextValue = getValue();\n }\n markedDirtyRef.current = true;\n if (!flushSync) {\n commit(nextValue);\n } else {\n // Synchronously update the validity state so the submit event can be prevented.\n ReactDOM.flushSync(() => commit(nextValue));\n }\n }\n });\n }, [commit, controlRef, enabled, formRef, getValue, id, invalid, markedDirtyRef, name, validityData, value]);\n useIsoLayoutEffect(() => {\n const fields = formRef.current.fields;\n return () => {\n if (id) {\n fields.delete(id);\n }\n };\n }, [formRef, id]);\n}","'use client';\n\nimport * as React from 'react';\nimport { useRefWithInit } from '@base-ui/utils/useRefWithInit';\nimport { useDialogRoot } from \"../../dialog/root/useDialogRoot.js\";\nimport { DialogRootContext, useDialogRootContext } from \"../../dialog/root/DialogRootContext.js\";\nimport { DialogStore } from \"../../dialog/store/DialogStore.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n/**\n * Groups all parts of the alert dialog.\n * Doesn’t render its own HTML element.\n *\n * Documentation: [Base UI Alert Dialog](https://base-ui.com/react/components/alert-dialog)\n */\nexport function AlertDialogRoot(props) {\n const {\n children,\n open: openProp,\n defaultOpen = false,\n onOpenChange,\n onOpenChangeComplete,\n actionsRef,\n handle,\n triggerId: triggerIdProp,\n defaultTriggerId: defaultTriggerIdProp = null\n } = props;\n const parentDialogRootContext = useDialogRootContext();\n const nested = Boolean(parentDialogRootContext);\n const store = useRefWithInit(() => {\n return handle?.store ?? new DialogStore({\n open: defaultOpen,\n openProp,\n activeTriggerId: defaultTriggerIdProp,\n triggerIdProp,\n modal: true,\n disablePointerDismissal: true,\n nested,\n role: 'alertdialog'\n });\n }).current;\n store.useControlledProp('openProp', openProp);\n store.useControlledProp('triggerIdProp', triggerIdProp);\n store.useSyncedValue('nested', nested);\n store.useContextCallback('onOpenChange', onOpenChange);\n store.useContextCallback('onOpenChangeComplete', onOpenChangeComplete);\n const payload = store.useState('payload');\n useDialogRoot({\n store,\n actionsRef,\n parentContext: parentDialogRootContext?.store.context,\n onOpenChange,\n triggerIdProp\n });\n const contextValue = React.useMemo(() => ({\n store\n }), [store]);\n return /*#__PURE__*/_jsx(DialogRootContext.Provider, {\n value: contextValue,\n children: typeof children === 'function' ? children({\n payload\n }) : children\n });\n}","\"use client\"\n\nimport * as React from \"react\"\nimport { AlertDialog as AlertDialogPrimitive } from \"@base-ui/react/alert-dialog\"\n\nimport { cn } from \"@/lib/utils\"\nimport { Button } from \"@/components/ui/button\"\n\nfunction AlertDialog({ ...props }: AlertDialogPrimitive.Root.Props) {\n return <AlertDialogPrimitive.Root data-slot=\"alert-dialog\" {...props} />\n}\n\nfunction AlertDialogTrigger({ ...props }: AlertDialogPrimitive.Trigger.Props) {\n return (\n <AlertDialogPrimitive.Trigger data-slot=\"alert-dialog-trigger\" {...props} />\n )\n}\n\nfunction AlertDialogPortal({ ...props }: AlertDialogPrimitive.Portal.Props) {\n return (\n <AlertDialogPrimitive.Portal data-slot=\"alert-dialog-portal\" {...props} />\n )\n}\n\nfunction AlertDialogOverlay({\n className,\n ...props\n}: AlertDialogPrimitive.Backdrop.Props) {\n return (\n <AlertDialogPrimitive.Backdrop\n data-slot=\"alert-dialog-overlay\"\n className={cn(\n \"data-open:animate-in data-closed:animate-out data-closed:fade-out-0 data-open:fade-in-0 bg-black/10 duration-100 supports-backdrop-filter:backdrop-blur-xs fixed inset-0 isolate z-50\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction AlertDialogContent({\n className,\n size = \"default\",\n ...props\n}: AlertDialogPrimitive.Popup.Props & {\n size?: \"default\" | \"sm\"\n}) {\n return (\n <AlertDialogPortal>\n <AlertDialogOverlay />\n <AlertDialogPrimitive.Popup\n data-slot=\"alert-dialog-content\"\n data-size={size}\n className={cn(\n \"data-open:animate-in data-closed:animate-out data-closed:fade-out-0 data-open:fade-in-0 data-closed:zoom-out-95 data-open:zoom-in-95 bg-background ring-foreground/10 gap-4 rounded-xl p-4 ring-1 duration-100 data-[size=default]:max-w-xs data-[size=sm]:max-w-xs data-[size=default]:sm:max-w-sm group/alert-dialog-content fixed top-1/2 left-1/2 z-50 grid w-full -translate-x-1/2 -translate-y-1/2 outline-none\",\n className\n )}\n {...props}\n />\n </AlertDialogPortal>\n )\n}\n\nfunction AlertDialogHeader({\n className,\n ...props\n}: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"alert-dialog-header\"\n className={cn(\"grid grid-rows-[auto_1fr] place-items-center gap-1.5 text-center has-data-[slot=alert-dialog-media]:grid-rows-[auto_auto_1fr] has-data-[slot=alert-dialog-media]:gap-x-4 sm:group-data-[size=default]/alert-dialog-content:place-items-start sm:group-data-[size=default]/alert-dialog-content:text-left sm:group-data-[size=default]/alert-dialog-content:has-data-[slot=alert-dialog-media]:grid-rows-[auto_1fr]\", className)}\n {...props}\n />\n )\n}\n\nfunction AlertDialogFooter({\n className,\n ...props\n}: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"alert-dialog-footer\"\n className={cn(\n \"bg-muted/50 -mx-4 -mb-4 rounded-b-xl border-t p-4 flex flex-col-reverse gap-2 group-data-[size=sm]/alert-dialog-content:grid group-data-[size=sm]/alert-dialog-content:grid-cols-2 sm:flex-row sm:justify-end\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction AlertDialogMedia({\n className,\n ...props\n}: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"alert-dialog-media\"\n className={cn(\"bg-muted mb-2 inline-flex size-10 items-center justify-center rounded-md sm:group-data-[size=default]/alert-dialog-content:row-span-2 *:[svg:not([class*='size-'])]:size-6\", className)}\n {...props}\n />\n )\n}\n\nfunction AlertDialogTitle({\n className,\n ...props\n}: React.ComponentProps<typeof AlertDialogPrimitive.Title>) {\n return (\n <AlertDialogPrimitive.Title\n data-slot=\"alert-dialog-title\"\n className={cn(\"text-base font-medium sm:group-data-[size=default]/alert-dialog-content:group-has-data-[slot=alert-dialog-media]/alert-dialog-content:col-start-2\", className)}\n {...props}\n />\n )\n}\n\nfunction AlertDialogDescription({\n className,\n ...props\n}: React.ComponentProps<typeof AlertDialogPrimitive.Description>) {\n return (\n <AlertDialogPrimitive.Description\n data-slot=\"alert-dialog-description\"\n className={cn(\"text-muted-foreground *:[a]:hover:text-foreground text-sm text-balance md:text-pretty *:[a]:underline *:[a]:underline-offset-3\", className)}\n {...props}\n />\n )\n}\n\nfunction AlertDialogAction({\n className,\n ...props\n}: React.ComponentProps<typeof Button>) {\n return (\n <Button\n data-slot=\"alert-dialog-action\"\n className={cn(className)}\n {...props}\n />\n )\n}\n\nfunction AlertDialogCancel({\n className,\n variant = \"outline\",\n size = \"default\",\n ...props\n}: AlertDialogPrimitive.Close.Props &\n Pick<React.ComponentProps<typeof Button>, \"variant\" | \"size\">) {\n return (\n <AlertDialogPrimitive.Close\n data-slot=\"alert-dialog-cancel\"\n className={cn(className)}\n render={<Button variant={variant} size={size} />}\n {...props}\n />\n )\n}\n\nexport {\n AlertDialog,\n AlertDialogAction,\n AlertDialogCancel,\n AlertDialogContent,\n AlertDialogDescription,\n AlertDialogFooter,\n AlertDialogHeader,\n AlertDialogMedia,\n AlertDialogOverlay,\n AlertDialogPortal,\n AlertDialogTitle,\n AlertDialogTrigger,\n}\n","'use client';\n\nimport * as React from 'react';\nimport { useIsoLayoutEffect } from '@base-ui/utils/useIsoLayoutEffect';\nimport { useStableCallback } from '@base-ui/utils/useStableCallback';\nexport function useValueChanged(value, onChange) {\n const valueRef = React.useRef(value);\n const onChangeCallback = useStableCallback(onChange);\n useIsoLayoutEffect(() => {\n if (valueRef.current === value) {\n return;\n }\n onChangeCallback(valueRef.current);\n }, [value, onChangeCallback]);\n useIsoLayoutEffect(() => {\n valueRef.current = value;\n }, [value]);\n}"],"names":["FieldControlDataAttributes","DEFAULT_VALIDITY_STATE","fieldValidityMapping","value","FieldRootContext","NOOP","props","EMPTY_OBJECT","useFieldRootContext","optional","context","React.useContext","_formatErrorMessage","FormContext","useFormContext","LabelableContext","externalProps","useLabelableContext","getCombinedFieldValidityData","validityData","invalid","useLabelableId","params","id","implicit","controlRef","controlId","registerControlId","defaultId","useBaseUiId","controlIdForEffect","controlSourceRef","useRefWithInit","hasRegisteredRef","React.useRef","hadExplicitIdRef","unregisterControlId","useStableCallback","useIsoLayoutEffect","nextId","elem","isElement","React.useEffect","useField","enabled","name","commit","formRef","markedDirtyRef","setValidityData","getValue","initialValue","prev","flushSync","nextValue","ReactDOM.flushSync","fields","AlertDialogRoot","children","openProp","defaultOpen","onOpenChange","onOpenChangeComplete","actionsRef","handle","triggerIdProp","defaultTriggerIdProp","parentDialogRootContext","useDialogRootContext","nested","store","DialogStore","payload","useDialogRoot","contextValue","React.useMemo","_jsx","DialogRootContext","AlertDialog","AlertDialogPrimitive.Root","AlertDialogPortal","AlertDialogPrimitive.Portal","AlertDialogOverlay","className","jsx","AlertDialogPrimitive.Backdrop","cn","AlertDialogContent","size","AlertDialogPrimitive.Popup","AlertDialogHeader","AlertDialogFooter","AlertDialogMedia","AlertDialogTitle","AlertDialogPrimitive.Title","AlertDialogDescription","AlertDialogPrimitive.Description","AlertDialogAction","Button","AlertDialogCancel","variant","AlertDialogPrimitive.Close","useValueChanged","onChange","valueRef","onChangeCallback"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,10]}
@@ -2,11 +2,18 @@
2
2
  <html lang="zh-CN">
3
3
  <head>
4
4
  <meta charset="UTF-8" />
5
- <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" />
5
+ <meta
6
+ name="viewport"
7
+ content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no, viewport-fit=cover"
8
+ />
9
+ <meta name="apple-mobile-web-app-capable" content="yes" />
10
+ <meta name="apple-mobile-web-app-status-bar-style" content="black-translucent" />
11
+ <link rel="manifest" href="/api/manifest.webmanifest" />
12
+ <link rel="apple-touch-icon" href="/assets/tmex-DcyZpuP8.png" />
6
13
  <meta name="description" content="tmex - Web 接入多设备 tmux 的终端控制平台" />
7
14
  <title>tmex</title>
8
- <script type="module" crossorigin src="/assets/index-DNlxXBdI.js"></script>
9
- <link rel="stylesheet" crossorigin href="/assets/index-D7lUHQCR.css">
15
+ <script type="module" crossorigin src="/assets/index-uap7lu9-.js"></script>
16
+ <link rel="stylesheet" crossorigin href="/assets/index-DLLCJhRn.css">
10
17
  </head>
11
18
  <body>
12
19
  <div id="root"></div>
Binary file
@@ -34,8 +34,7 @@ CREATE TABLE `site_settings` (
34
34
  `ssh_reconnect_delay_seconds` integer NOT NULL,
35
35
  `language` text DEFAULT 'en_US' NOT NULL,
36
36
  `updated_at` text NOT NULL,
37
- CONSTRAINT "site_settings_singleton_check" CHECK("site_settings"."id" = 1),
38
- CONSTRAINT "site_settings_language_check" CHECK("site_settings"."language" in ('en_US', 'zh_CN'))
37
+ CONSTRAINT "site_settings_singleton_check" CHECK("site_settings"."id" = 1)
39
38
  );
40
39
  --> statement-breakpoint
41
40
  CREATE TABLE `telegram_bot_chats` (
@@ -245,10 +245,6 @@
245
245
  "site_settings_singleton_check": {
246
246
  "name": "site_settings_singleton_check",
247
247
  "value": "\"site_settings\".\"id\" = 1"
248
- },
249
- "site_settings_language_check": {
250
- "name": "site_settings_language_check",
251
- "value": "\"site_settings\".\"language\" in ('en_US', 'zh_CN')"
252
248
  }
253
249
  }
254
250
  },
@@ -261,10 +261,6 @@
261
261
  "site_settings_singleton_check": {
262
262
  "name": "site_settings_singleton_check",
263
263
  "value": "\"site_settings\".\"id\" = 1"
264
- },
265
- "site_settings_language_check": {
266
- "name": "site_settings_language_check",
267
- "value": "\"site_settings\".\"language\" in ('en_US', 'zh_CN')"
268
264
  }
269
265
  }
270
266
  },
@@ -1,32 +0,0 @@
1
- /**
2
- * Copyright (c) 2014 The xterm.js authors. All rights reserved.
3
- * Copyright (c) 2012-2013, Christopher Jeffrey (MIT License)
4
- * https://github.com/chjj/term.js
5
- * @license MIT
6
- *
7
- * Permission is hereby granted, free of charge, to any person obtaining a copy
8
- * of this software and associated documentation files (the "Software"), to deal
9
- * in the Software without restriction, including without limitation the rights
10
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
11
- * copies of the Software, and to permit persons to whom the Software is
12
- * furnished to do so, subject to the following conditions:
13
- *
14
- * The above copyright notice and this permission notice shall be included in
15
- * all copies or substantial portions of the Software.
16
- *
17
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
18
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
19
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
20
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
21
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
22
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
23
- * THE SOFTWARE.
24
- *
25
- * Originally forked from (with the author's permission):
26
- * Fabrice Bellard's javascript vt100 for jslinux:
27
- * http://bellard.org/jslinux/
28
- * Copyright (c) 2011 Fabrice Bellard
29
- * The original design remains. The terminal itself
30
- * has been extended to include xterm CSI codes, among
31
- * other features.
32
- */.xterm{cursor:text;position:relative;user-select:none;-ms-user-select:none;-webkit-user-select:none}.xterm.focus,.xterm:focus{outline:none}.xterm .xterm-helpers{position:absolute;top:0;z-index:5}.xterm .xterm-helper-textarea{padding:0;border:0;margin:0;position:absolute;opacity:0;left:-9999em;top:0;width:0;height:0;z-index:-5;white-space:nowrap;overflow:hidden;resize:none}.xterm .composition-view{background:#000;color:#fff;display:none;position:absolute;white-space:nowrap;z-index:1}.xterm .composition-view.active{display:block}.xterm .xterm-viewport{background-color:#000;overflow-y:scroll;cursor:default;position:absolute;right:0;left:0;top:0;bottom:0}.xterm .xterm-screen{position:relative}.xterm .xterm-screen canvas{position:absolute;left:0;top:0}.xterm .xterm-scroll-area{visibility:hidden}.xterm-char-measure-element{display:inline-block;visibility:hidden;position:absolute;top:0;left:-9999em;line-height:normal}.xterm.enable-mouse-events{cursor:default}.xterm.xterm-cursor-pointer,.xterm .xterm-cursor-pointer{cursor:pointer}.xterm.column-select.focus{cursor:crosshair}.xterm .xterm-accessibility,.xterm .xterm-message{position:absolute;left:0;top:0;bottom:0;right:0;z-index:10;color:transparent;pointer-events:none}.xterm .live-region{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}.xterm-dim{opacity:1!important}.xterm-underline-1{text-decoration:underline}.xterm-underline-2{text-decoration:double underline}.xterm-underline-3{text-decoration:wavy underline}.xterm-underline-4{text-decoration:dotted underline}.xterm-underline-5{text-decoration:dashed underline}.xterm-overline{text-decoration:overline}.xterm-overline.xterm-underline-1{text-decoration:overline underline}.xterm-overline.xterm-underline-2{text-decoration:overline double underline}.xterm-overline.xterm-underline-3{text-decoration:overline wavy underline}.xterm-overline.xterm-underline-4{text-decoration:overline dotted underline}.xterm-overline.xterm-underline-5{text-decoration:overline dashed underline}.xterm-strikethrough{text-decoration:line-through}.xterm-screen .xterm-decoration-container .xterm-decoration{z-index:6;position:absolute}.xterm-screen .xterm-decoration-container .xterm-decoration.xterm-decoration-top-layer{z-index:7}.xterm-decoration-overview-ruler{z-index:8;position:absolute;top:0;right:0;pointer-events:none}.xterm-decoration-top{z-index:2;position:relative}/*! tailwindcss v4.1.18 | MIT License | https://tailwindcss.com */@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-space-y-reverse:0;--tw-border-style:solid;--tw-font-weight:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial;--tw-duration:initial;--tw-ease:initial}}}@layer theme{:root,:host{--font-sans:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--font-mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--color-red-400:oklch(70.4% .191 22.216);--color-red-900:oklch(39.6% .141 25.723);--color-red-950:oklch(25.8% .092 26.042);--color-yellow-400:oklch(85.2% .199 91.936);--color-yellow-900:oklch(42.1% .095 57.708);--color-yellow-950:oklch(28.6% .066 53.813);--color-green-400:oklch(79.2% .209 151.711);--color-green-900:oklch(39.3% .095 152.535);--color-green-950:oklch(26.6% .065 152.934);--color-black:#000;--color-white:#fff;--spacing:.25rem;--container-lg:32rem;--container-4xl:56rem;--container-5xl:64rem;--text-xs:.75rem;--text-xs--line-height:calc(1/.75);--text-sm:.875rem;--text-sm--line-height:calc(1.25/.875);--text-base:1rem;--text-base--line-height: 1.5 ;--text-lg:1.125rem;--text-lg--line-height:calc(1.75/1.125);--text-2xl:1.5rem;--text-2xl--line-height:calc(2/1.5);--text-4xl:2.25rem;--text-4xl--line-height:calc(2.5/2.25);--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--radius-md:.375rem;--radius-lg:.5rem;--ease-in-out:cubic-bezier(.4,0,.2,1);--animate-spin:spin 1s linear infinite;--animate-pulse:pulse 2s cubic-bezier(.4,0,.6,1)infinite;--blur-sm:8px;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4,0,.2,1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;-moz-tab-size:4;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){-webkit-appearance:button;-moz-appearance:button;appearance:button}::file-selector-button{-webkit-appearance:button;-moz-appearance:button;appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.pointer-events-none{pointer-events:none}.collapse{visibility:collapse}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.inset-0{inset:calc(var(--spacing)*0)}.top-0{top:calc(var(--spacing)*0)}.top-1\/2,.top-\[50\%\]{top:50%}.right-0{right:calc(var(--spacing)*0)}.right-2\.5{right:calc(var(--spacing)*2.5)}.bottom-0{bottom:calc(var(--spacing)*0)}.left-0{left:calc(var(--spacing)*0)}.left-\[50\%\]{left:50%}.z-50{z-index:50}.z-\[99\]{z-index:99}.z-\[100\]{z-index:100}.z-\[120\]{z-index:120}.col-span-2{grid-column:span 2/span 2}.container{width:100%}@media(min-width:40rem){.container{max-width:40rem}}@media(min-width:48rem){.container{max-width:48rem}}@media(min-width:64rem){.container{max-width:64rem}}@media(min-width:80rem){.container{max-width:80rem}}@media(min-width:96rem){.container{max-width:96rem}}.mx-2{margin-inline:calc(var(--spacing)*2)}.mx-auto{margin-inline:auto}.mt-0\.5{margin-top:calc(var(--spacing)*.5)}.mt-1{margin-top:calc(var(--spacing)*1)}.mr-1{margin-right:calc(var(--spacing)*1)}.mr-1\.5{margin-right:calc(var(--spacing)*1.5)}.mr-2{margin-right:calc(var(--spacing)*2)}.mb-0\.5{margin-bottom:calc(var(--spacing)*.5)}.mb-1{margin-bottom:calc(var(--spacing)*1)}.mb-1\.5{margin-bottom:calc(var(--spacing)*1.5)}.mb-2{margin-bottom:calc(var(--spacing)*2)}.mb-4{margin-bottom:calc(var(--spacing)*4)}.mb-6{margin-bottom:calc(var(--spacing)*6)}.-ml-1{margin-left:calc(var(--spacing)*-1)}.ml-1{margin-left:calc(var(--spacing)*1)}.ml-1\.5{margin-left:calc(var(--spacing)*1.5)}.ml-2{margin-left:calc(var(--spacing)*2)}.ml-3{margin-left:calc(var(--spacing)*3)}.ml-4{margin-left:calc(var(--spacing)*4)}.block{display:block}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline-flex{display:inline-flex}.h-1{height:calc(var(--spacing)*1)}.h-1\.5{height:calc(var(--spacing)*1.5)}.h-2{height:calc(var(--spacing)*2)}.h-3{height:calc(var(--spacing)*3)}.h-3\.5{height:calc(var(--spacing)*3.5)}.h-4{height:calc(var(--spacing)*4)}.h-5{height:calc(var(--spacing)*5)}.h-6{height:calc(var(--spacing)*6)}.h-7{height:calc(var(--spacing)*7)}.h-8{height:calc(var(--spacing)*8)}.h-9{height:calc(var(--spacing)*9)}.h-10{height:calc(var(--spacing)*10)}.h-11{height:calc(var(--spacing)*11)}.h-24{height:calc(var(--spacing)*24)}.h-full{height:100%}.max-h-\[90vh\]{max-height:90vh}.min-h-0{min-height:calc(var(--spacing)*0)}.min-h-\[80px\]{min-height:80px}.w-1{width:calc(var(--spacing)*1)}.w-1\.5{width:calc(var(--spacing)*1.5)}.w-2{width:calc(var(--spacing)*2)}.w-3{width:calc(var(--spacing)*3)}.w-3\.5{width:calc(var(--spacing)*3.5)}.w-4{width:calc(var(--spacing)*4)}.w-5{width:calc(var(--spacing)*5)}.w-6{width:calc(var(--spacing)*6)}.w-7{width:calc(var(--spacing)*7)}.w-8{width:calc(var(--spacing)*8)}.w-14{width:calc(var(--spacing)*14)}.w-64{width:calc(var(--spacing)*64)}.w-full{width:100%}.w-screen{width:100vw}.max-w-4xl{max-width:var(--container-4xl)}.max-w-5xl{max-width:var(--container-5xl)}.max-w-lg{max-width:var(--container-lg)}.min-w-0{min-width:calc(var(--spacing)*0)}.min-w-\[1\.25rem\]{min-width:1.25rem}.flex-1{flex:1}.flex-shrink-0{flex-shrink:0}.-translate-x-full{--tw-translate-x:-100%;translate:var(--tw-translate-x)var(--tw-translate-y)}.translate-x-0{--tw-translate-x:calc(var(--spacing)*0);translate:var(--tw-translate-x)var(--tw-translate-y)}.translate-x-\[-50\%\]{--tw-translate-x:-50%;translate:var(--tw-translate-x)var(--tw-translate-y)}.-translate-y-1\/2{--tw-translate-y: -50% ;translate:var(--tw-translate-x)var(--tw-translate-y)}.translate-y-\[-50\%\]{--tw-translate-y:-50%;translate:var(--tw-translate-x)var(--tw-translate-y)}.transform{transform:var(--tw-rotate-x,)var(--tw-rotate-y,)var(--tw-rotate-z,)var(--tw-skew-x,)var(--tw-skew-y,)}.animate-pulse{animation:var(--animate-pulse)}.animate-spin{animation:var(--animate-spin)}.cursor-pointer{cursor:pointer}.resize{resize:both}.resize-y{resize:vertical}.appearance-none{-webkit-appearance:none;-moz-appearance:none;appearance:none}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.items-end{align-items:flex-end}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.justify-start{justify-content:flex-start}.gap-1{gap:calc(var(--spacing)*1)}.gap-1\.5{gap:calc(var(--spacing)*1.5)}.gap-2{gap:calc(var(--spacing)*2)}.gap-3{gap:calc(var(--spacing)*3)}.gap-4{gap:calc(var(--spacing)*4)}:where(.space-y-1>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*1)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*1)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-2>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*2)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*2)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-3>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*3)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*3)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-4>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*4)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*4)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-6>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*6)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*6)*calc(1 - var(--tw-space-y-reverse)))}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-y-auto{overflow-y:auto}.overscroll-none{overscroll-behavior:none}.rounded{border-radius:.25rem}.rounded-full{border-radius:3.40282e38px}.rounded-lg{border-radius:var(--radius-lg)}.rounded-md{border-radius:var(--radius-md)}.border{border-style:var(--tw-border-style);border-width:1px}.border-2{border-style:var(--tw-border-style);border-width:2px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-r{border-right-style:var(--tw-border-style);border-right-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-l{border-left-style:var(--tw-border-style);border-left-width:1px}.border-l-2{border-left-style:var(--tw-border-style);border-left-width:2px}.border-\[var\(--color-accent\)\]{border-color:var(--color-accent)}.border-\[var\(--color-border\)\]{border-color:var(--color-border)}.border-\[var\(--color-danger\)\]{border-color:var(--color-danger)}.border-\[var\(--color-success\)\]{border-color:var(--color-success)}.border-green-900\/50{border-color:#0d542b80}@supports (color:color-mix(in lab,red,red)){.border-green-900\/50{border-color:color-mix(in oklab,var(--color-green-900)50%,transparent)}}.border-red-900\/50{border-color:#82181a80}@supports (color:color-mix(in lab,red,red)){.border-red-900\/50{border-color:color-mix(in oklab,var(--color-red-900)50%,transparent)}}.border-yellow-900\/50{border-color:#733e0a80}@supports (color:color-mix(in lab,red,red)){.border-yellow-900\/50{border-color:color-mix(in oklab,var(--color-yellow-900)50%,transparent)}}.border-t-transparent{border-top-color:#0000}.bg-\[rgba\(88\,166\,255\,0\.3\)\]{background-color:#58a6ff4d}.bg-\[rgba\(88\,166\,255\,0\.9\)\]{background-color:#58a6ffe6}.bg-\[rgba\(88\,166\,255\,0\.15\)\]{background-color:#58a6ff26}.bg-\[var\(--color-accent\)\]{background-color:var(--color-accent)}.bg-\[var\(--color-bg\)\],.bg-\[var\(--color-bg\)\]\/80{background-color:var(--color-bg)}@supports (color:color-mix(in lab,red,red)){.bg-\[var\(--color-bg\)\]\/80{background-color:color-mix(in oklab,var(--color-bg)80%,transparent)}}.bg-\[var\(--color-bg-secondary\)\]{background-color:var(--color-bg-secondary)}.bg-\[var\(--color-bg-tertiary\)\]{background-color:var(--color-bg-tertiary)}.bg-\[var\(--color-danger\)\]{background-color:var(--color-danger)}.bg-\[var\(--color-success\)\]{background-color:var(--color-success)}.bg-black\/50{background-color:#00000080}@supports (color:color-mix(in lab,red,red)){.bg-black\/50{background-color:color-mix(in oklab,var(--color-black)50%,transparent)}}.bg-green-950\/30{background-color:#032e154d}@supports (color:color-mix(in lab,red,red)){.bg-green-950\/30{background-color:color-mix(in oklab,var(--color-green-950)30%,transparent)}}.bg-red-950\/30{background-color:#4608094d}@supports (color:color-mix(in lab,red,red)){.bg-red-950\/30{background-color:color-mix(in oklab,var(--color-red-950)30%,transparent)}}.bg-yellow-950\/30{background-color:#4320044d}@supports (color:color-mix(in lab,red,red)){.bg-yellow-950\/30{background-color:color-mix(in oklab,var(--color-yellow-950)30%,transparent)}}.p-0\.5{padding:calc(var(--spacing)*.5)}.p-1{padding:calc(var(--spacing)*1)}.p-1\.5{padding:calc(var(--spacing)*1.5)}.p-2{padding:calc(var(--spacing)*2)}.p-3{padding:calc(var(--spacing)*3)}.p-4{padding:calc(var(--spacing)*4)}.p-6{padding:calc(var(--spacing)*6)}.px-2{padding-inline:calc(var(--spacing)*2)}.px-3{padding-inline:calc(var(--spacing)*3)}.px-4{padding-inline:calc(var(--spacing)*4)}.px-6{padding-inline:calc(var(--spacing)*6)}.py-1{padding-block:calc(var(--spacing)*1)}.py-1\.5{padding-block:calc(var(--spacing)*1.5)}.py-2{padding-block:calc(var(--spacing)*2)}.py-8{padding-block:calc(var(--spacing)*8)}.py-12{padding-block:calc(var(--spacing)*12)}.pt-2{padding-top:calc(var(--spacing)*2)}.pt-4{padding-top:calc(var(--spacing)*4)}.pt-11{padding-top:calc(var(--spacing)*11)}.pr-8{padding-right:calc(var(--spacing)*8)}.pb-2{padding-bottom:calc(var(--spacing)*2)}.pb-4{padding-bottom:calc(var(--spacing)*4)}.pl-2{padding-left:calc(var(--spacing)*2)}.text-center{text-align:center}.text-left{text-align:left}.font-mono{font-family:var(--font-mono)}.text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.text-4xl{font-size:var(--text-4xl);line-height:var(--tw-leading,var(--text-4xl--line-height))}.text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.text-\[var\(--color-accent\)\]{color:var(--color-accent)}.text-\[var\(--color-bg\)\]{color:var(--color-bg)}.text-\[var\(--color-text\)\]{color:var(--color-text)}.text-\[var\(--color-text-muted\)\]{color:var(--color-text-muted)}.text-\[var\(--color-text-secondary\)\]{color:var(--color-text-secondary)}.text-green-400{color:var(--color-green-400)}.text-red-400{color:var(--color-red-400)}.text-white{color:var(--color-white)}.text-yellow-400{color:var(--color-yellow-400)}.opacity-90{opacity:.9}.shadow-lg{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a),0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-sm{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a),0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.backdrop-blur-sm{--tw-backdrop-blur:blur(var(--blur-sm));-webkit-backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,)}.transition-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-transform{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.duration-150{--tw-duration:.15s;transition-duration:.15s}.duration-200{--tw-duration:.2s;transition-duration:.2s}.ease-in-out{--tw-ease:var(--ease-in-out);transition-timing-function:var(--ease-in-out)}.select-none{-webkit-user-select:none;user-select:none}.placeholder\:text-\[var\(--color-text-muted\)\]::placeholder{color:var(--color-text-muted)}@media(hover:hover){.hover\:bg-\[rgba\(88\,166\,255\,0\.2\)\]:hover{background-color:#58a6ff33}.hover\:bg-\[var\(--color-accent-hover\)\]:hover{background-color:var(--color-accent-hover)}.hover\:bg-\[var\(--color-bg\)\]:hover,.hover\:bg-\[var\(--color-bg\)\]\/20:hover{background-color:var(--color-bg)}@supports (color:color-mix(in lab,red,red)){.hover\:bg-\[var\(--color-bg\)\]\/20:hover{background-color:color-mix(in oklab,var(--color-bg)20%,transparent)}}.hover\:bg-\[var\(--color-bg\)\]\/40:hover{background-color:var(--color-bg)}@supports (color:color-mix(in lab,red,red)){.hover\:bg-\[var\(--color-bg\)\]\/40:hover{background-color:color-mix(in oklab,var(--color-bg)40%,transparent)}}.hover\:bg-\[var\(--color-bg-tertiary\)\]:hover{background-color:var(--color-bg-tertiary)}.hover\:bg-\[var\(--color-border\)\]:hover{background-color:var(--color-border)}.hover\:text-\[var\(--color-accent-hover\)\]:hover{color:var(--color-accent-hover)}.hover\:text-\[var\(--color-danger\)\]:hover{color:var(--color-danger)}.hover\:text-\[var\(--color-text\)\]:hover{color:var(--color-text)}.hover\:text-\[var\(--color-text-secondary\)\]:hover{color:var(--color-text-secondary)}.hover\:underline:hover{text-decoration-line:underline}.hover\:opacity-90:hover{opacity:.9}}.focus-visible\:ring-1:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(1px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus-visible\:ring-2:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(2px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus-visible\:ring-\[var\(--color-accent\)\]:focus-visible{--tw-ring-color:var(--color-accent)}.focus-visible\:ring-offset-2:focus-visible{--tw-ring-offset-width:2px;--tw-ring-offset-shadow:var(--tw-ring-inset,)0 0 0 var(--tw-ring-offset-width)var(--tw-ring-offset-color)}.focus-visible\:outline-none:focus-visible{--tw-outline-style:none;outline-style:none}.disabled\:pointer-events-none:disabled{pointer-events:none}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-50:disabled{opacity:.5}@media(min-width:40rem){.sm\:inline{display:inline}}@media(min-width:48rem){.md\:col-span-2{grid-column:span 2/span 2}.md\:col-span-3{grid-column:span 3/span 3}.md\:col-span-4{grid-column:span 4/span 4}.md\:col-span-7{grid-column:span 7/span 7}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.md\:grid-cols-12{grid-template-columns:repeat(12,minmax(0,1fr))}}@media(min-width:64rem){.lg\:col-span-2{grid-column:span 2/span 2}.lg\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}}}:root{--color-bg:#0d1117;--color-bg-secondary:#161b22;--color-bg-tertiary:#21262d;--color-border:#30363d;--color-text:#c9d1d9;--color-text-secondary:#8b949e;--color-text-muted:#6e7681;--color-accent:#58a6ff;--color-accent-hover:#79c0ff;--color-accent-rgb:88,166,255;--color-success:#238636;--color-warning:#d29922;--color-danger:#da3633;--color-bell:#f85149;--tmex-viewport-height:100dvh}*{box-sizing:border-box}html,body,#root{height:100%;margin:0;padding:0}body{color:var(--color-text);background-color:var(--color-bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Noto Sans,Helvetica,Arial,sans-serif;font-size:14px;line-height:1.5}body.tmex-terminal-mobile-gesture-guard{touch-action:pan-x pan-y;overscroll-behavior:none;-webkit-overflow-scrolling:auto;overscroll-behavior-y:none;height:100%;overflow:hidden}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--color-bg-secondary)}::-webkit-scrollbar-thumb{background:var(--color-border);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--color-text-muted)}.xterm{padding:0;width:100%!important;height:100%!important}body.tmex-terminal-mobile-gesture-guard .xterm .xterm-viewport{-webkit-overflow-scrolling:touch;overscroll-behavior:contain;touch-action:pan-y;scrollbar-width:none}body.tmex-terminal-mobile-gesture-guard .xterm .xterm-viewport::-webkit-scrollbar{width:0;height:0}@media(max-width:768px){body{font-size:16px}.sidebar{z-index:100;transition:transform .2s;position:fixed;top:0;bottom:0;left:0;transform:translate(-100%)}.sidebar.open{transform:translate(0)}.sidebar-overlay{z-index:99;opacity:0;pointer-events:none;background:#00000080;border:0;padding:0;transition:opacity .2s;display:block;position:fixed;top:0;right:0;bottom:0;left:0}.sidebar-overlay.open{opacity:1;pointer-events:auto}}.terminal-shortcuts-strip{background:var(--color-bg-secondary);border-bottom:1px solid var(--color-border);z-index:10;flex-shrink:0;padding:6px 8px;position:relative}.terminal-shortcuts-strip .shortcut-row{scrollbar-width:thin;-webkit-overflow-scrolling:touch;flex-wrap:nowrap;align-items:center;gap:6px;display:flex;overflow:auto hidden}.terminal-shortcuts-strip .shortcut-row button{-webkit-user-select:none;user-select:none;touch-action:manipulation;flex-shrink:0;min-height:28px}.editor-mode-input{background:var(--color-bg-secondary);border-top:1px solid var(--color-border);flex-shrink:0;padding:8px 12px;position:relative}.editor-mode-input textarea{background:var(--color-bg);border:1px solid var(--color-border);width:100%;min-height:60px;max-height:200px;color:var(--color-text);resize:vertical;border-radius:6px;outline:none;padding:8px 12px;font-family:SF Mono,Monaco,Inconsolata,Fira Code,monospace;font-size:14px}.editor-mode-input textarea:focus{border-color:var(--color-accent)}.editor-mode-input .actions{flex-wrap:wrap;justify-content:flex-end;gap:8px;margin-top:8px;display:flex}.editor-mode-input .send-row{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:8px;width:100%;display:flex}.editor-mode-input .send-with-enter-toggle{color:var(--color-text-secondary);align-items:center;gap:8px;margin-right:4px;font-size:13px;display:flex}.editor-mode-input .send-with-enter-toggle input{accent-color:var(--color-accent)}@media(max-width:768px){.editor-mode-input{padding-bottom:calc(8px + env(safe-area-inset-bottom))}.editor-mode-input .actions{-webkit-overflow-scrolling:touch;max-height:40vh;overflow-y:auto}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes fade-out{0%{opacity:1}to{opacity:0}}@keyframes zoom-in{0%{opacity:0;transform:translate(-50%,-50%)scale(.95)}to{opacity:1;transform:translate(-50%,-50%)scale(1)}}@keyframes zoom-out{0%{opacity:1;transform:translate(-50%,-50%)scale(1)}to{opacity:0;transform:translate(-50%,-50%)scale(.95)}}[data-state=open].animate-in{animation:.2s ease-out fade-in}[data-state=closed].animate-out{animation:.2s ease-in fade-out}[data-state=open].data-[state=open]:zoom-in-95{animation:.2s ease-out zoom-in}[data-state=closed].data-[state=closed]:zoom-out-95{animation:.2s ease-in zoom-out}.sidebar-active-high-contrast{background-color:var(--color-accent)!important;color:#fff!important}.sidebar-active-high-contrast svg{color:#fff!important}button:focus-visible,a:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}button:disabled,[aria-disabled=true]{opacity:.5;cursor:not-allowed}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-backdrop-blur{syntax:"*";inherits:false}@property --tw-backdrop-brightness{syntax:"*";inherits:false}@property --tw-backdrop-contrast{syntax:"*";inherits:false}@property --tw-backdrop-grayscale{syntax:"*";inherits:false}@property --tw-backdrop-hue-rotate{syntax:"*";inherits:false}@property --tw-backdrop-invert{syntax:"*";inherits:false}@property --tw-backdrop-opacity{syntax:"*";inherits:false}@property --tw-backdrop-saturate{syntax:"*";inherits:false}@property --tw-backdrop-sepia{syntax:"*";inherits:false}@property --tw-duration{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse{50%{opacity:.5}}