@opalkelly/frontpanel-react-components 0.1.2 → 0.2.0
Sign up to get free protection for your applications and to get access to all the features.
- package/dist/cjs/index.js +1 -1
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/types/components/FrontPanel/FrontPanel.props.d.ts +0 -1
- package/dist/cjs/types/components/FrontPanelSelectEntry/FrontPanelSelectEntry.d.ts +0 -1
- package/dist/cjs/types/contexts/FrontPanelContext.d.ts +2 -2
- package/dist/cjs/types/primitives/Application/Application.props.d.ts +0 -1
- package/dist/cjs/types/primitives/Label/Label.props.d.ts +0 -1
- package/dist/cjs/types/primitives/SelectEntry/SelectEntry.d.ts +0 -1
- package/dist/cjs/types/primitives/Toggle/Toggle.props.d.ts +0 -1
- package/dist/esm/index.js +1 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/types/components/FrontPanel/FrontPanel.props.d.ts +0 -1
- package/dist/esm/types/components/FrontPanelSelectEntry/FrontPanelSelectEntry.d.ts +0 -1
- package/dist/esm/types/contexts/FrontPanelContext.d.ts +2 -2
- package/dist/esm/types/primitives/Application/Application.props.d.ts +0 -1
- package/dist/esm/types/primitives/Label/Label.props.d.ts +0 -1
- package/dist/esm/types/primitives/SelectEntry/SelectEntry.d.ts +0 -1
- package/dist/esm/types/primitives/Toggle/Toggle.props.d.ts +0 -1
- package/dist/index.d.ts +2 -3
- package/package.json +5 -3
- package/src/components/FrontPanel/FrontPanel.tsx +1 -7
- package/src/components/FrontPanelIndicator/FrontPanelIndicator.tsx +8 -7
- package/src/components/FrontPanelNumberDisplay/FrontPanelNumberDisplay.tsx +9 -8
- package/src/components/FrontPanelNumberEntry/FrontPanelNumberEntry.tsx +53 -48
- package/src/components/FrontPanelPushButton/FrontPanelPushButton.tsx +16 -11
- package/src/components/FrontPanelRangeSlider/FrontPanelRangeSlider.tsx +20 -15
- package/src/components/FrontPanelSelectEntry/FrontPanelSelectEntryRoot.tsx +57 -51
- package/src/components/FrontPanelToggleSwitch/FrontPanelToggleSwitch.tsx +20 -18
- package/src/components/FrontPanelTriggerButton/FrontPanelTriggerButton.tsx +15 -6
- package/src/contexts/FrontPanelContext.ts +3 -6
package/dist/cjs/index.js
CHANGED
@@ -1,2 +1,2 @@
|
|
1
|
-
"use strict";var e=require("react"),n=require("@opalkelly/frontpanel-alloy-core"),r=require("@radix-ui/react-tooltip"),t=require("classnames"),a=require("@radix-ui/react-slider"),i=require("@radix-ui/react-select"),o=require("@radix-ui/react-scroll-area");function l(e){var n=Object.create(null);return e&&Object.keys(e).forEach((function(r){if("default"!==r){var t=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(n,r,t.get?t:{enumerable:!0,get:function(){return e[r]}})}})),n.default=e,Object.freeze(n)}var s,c,d=l(e),f=l(r),u=l(a),p=l(i),g=l(o);exports.NumeralSystem=void 0,(s=exports.NumeralSystem||(exports.NumeralSystem={}))[s.Binary=2]="Binary",s[s.Octal=8]="Octal",s[s.Decimal=10]="Decimal",s[s.Hexadecimal=16]="Hexadecimal",exports.ToggleState=void 0,(c=exports.ToggleState||(exports.ToggleState={}))[c.Off=0]="Off",c[c.On=1]="On";class m{get DigitCount(){return this._DigitCount}get NumeralSystem(){return this._NumeralSystem}get DigitChars(){return this._DigitChars}constructor(e,n){this._DigitCount=e,this._NumeralSystem=n,this._DigitChars=m.GetDigitChars(n)}GetDigitFromValue(e){let n=e%this._NumeralSystem;return n<0&&(n+=this._NumeralSystem),n.toString(this._NumeralSystem)}static GetDigitChars(e){let n;switch(e){case exports.NumeralSystem.Binary:n=m.BINARY_DIGITVALUES;break;case exports.NumeralSystem.Octal:n=m.OCTAL_DIGITVALUES;break;case exports.NumeralSystem.Decimal:n=m.DECIMAL_DIGITVALUES;break;case exports.NumeralSystem.Hexadecimal:n=m.HEXADECIMAL_DIGITVALUES;break;default:n=[]}return n}static ComputeDigitCountFromBits(e,n){const r=(1n<<BigInt(e))-1n;return this.ComputeDigitCountFromValue(r,n)}static ComputeDigitCountFromValue(e,n){const r=BigInt(n);let t,a=e;for(t=0n;t<m.MAX_DIGITS&&0n!==a;t++)a/=r;return t>0n?t:1n}}function h(e){let n=0;if(e>0n){let r=e;for(;r>0n;)r>>=1n,n++}else 0n===e&&(n=1);return n}m.MAX_DIGITS=1024,m.BINARY_DIGITVALUES=["0","1"],m.OCTAL_DIGITVALUES=["0","1","2","3","4","5","6","7"],m.DECIMAL_DIGITVALUES=[...m.OCTAL_DIGITVALUES,"8","9"],m.HEXADECIMAL_DIGITVALUES=[...m.DECIMAL_DIGITVALUES,"A","B","C","D","E","F"];const y=e.createContext({device:window.FrontPanel,workQueue:new n.WorkQueue}),x=r=>{const{device:t=window.FrontPanel,workQueue:a=new n.WorkQueue,eventSource:i=new n.FrontPanelPeriodicUpdateTimer(t,10)}=r;return e.createElement(y.Provider,{value:{device:t,workQueue:a,eventSource:i}},r.children)};function b(e,n){void 0===n&&(n={});var r=n.insertAt;if(e&&"undefined"!=typeof document){var t=document.head||document.getElementsByTagName("head")[0],a=document.createElement("style");a.type="text/css","top"===r&&t.firstChild?t.insertBefore(a,t.firstChild):t.appendChild(a),a.styleSheet?a.styleSheet.cssText=e:a.appendChild(document.createTextNode(e))}}x.displayName="FrontPanel";b("");const S=d.forwardRef(((e,n)=>d.createElement(f.Provider,null,e.children)));S.displayName="Application";b('/**\r\n * Copyright (c) 2024 Opal Kelly Incorporated\r\n *\r\n * This source code is licensed under the FrontPanel license.\r\n * See the LICENSE file found in the root directory of this project.\r\n */\r\n\r\n@font-face {\r\n font-family: "Inter";\r\n src: url("./fonts/Inter-VariableFont_slnt\\,wght.ttf") format("truetype");\r\n}\r\n');b('/**\r\n * Copyright (c) 2024 Opal Kelly Incorporated\r\n *\r\n * This source code is licensed under the FrontPanel license.\r\n * See the LICENSE file found in the root directory of this project.\r\n */\r\n\r\n.okButton {\r\n /* Layout */\r\n display: inline-flex;\r\n padding: var(--button-padding, 6px 12px);\r\n justify-content: center;\r\n align-items: center;\r\n gap: 8px;\r\n\r\n /* Style */\r\n border-width: 0px;\r\n border-radius: 4px;\r\n background: var(--brand-12, #44bd84);\r\n\r\n /* Typography */\r\n color: var(--Base-White, #fff);\r\n text-align: center;\r\n font-family: Inter, "Nunito Sans", sans-serif, ui-sans-serif;\r\n font-size: var(--button-font-size, 12px);\r\n font-style: normal;\r\n font-weight: 600;\r\n line-height: var(--button-line-height, 12px); /* 100% */\r\n\r\n /* State Pressed */\r\n &:is(:active) {\r\n background: #329466;\r\n }\r\n\r\n /* State Disabled */\r\n &:is(:disabled) {\r\n background: var(--Gray-2, #d0d7df);\r\n }\r\n\r\n /* Size 1 */\r\n &:where(.ok-r-size-1) {\r\n --button-padding: 6px 12px;\r\n --button-font-size: 12px;\r\n --button-line-height: 12px;\r\n }\r\n\r\n /* Sizes 2*/\r\n &:where(.ok-r-size-2) {\r\n --button-padding: 10px 18px;\r\n --button-font-size: 14px;\r\n --button-line-height: 14px;\r\n }\r\n\r\n /* Sizes 3*/\r\n &:where(.ok-r-size-3) {\r\n --button-padding: 18px 22px;\r\n --button-font-size: 20px;\r\n --button-line-height: 20px;\r\n }\r\n}\r\n');b('/**\r\n * Copyright (c) 2024 Opal Kelly Incorporated\r\n *\r\n * This source code is licensed under the FrontPanel license.\r\n * See the LICENSE file found in the root directory of this project.\r\n */\r\n\r\n.okTooltipContent {\r\n /* Layout */\r\n display: flex;\r\n padding: 10px;\r\n align-items: flex-end;\r\n\r\n /* Style */\r\n border-radius: 4px;\r\n background: var(--Dark, #343434);\r\n\r\n /* Drop shadow - tiny */\r\n box-shadow: 0px 1px 4px 0px rgba(0, 0, 0, 0.24);\r\n\r\n user-select: none;\r\n animation-duration: 200ms;\r\n animation-timing-function: cubic-bezier(0.16, 1, 0.3, 1);\r\n will-change: transform, opacity;\r\n}\r\n\r\n.okTooltipContent[data-state="delayed-open"][data-side="top"] {\r\n animation-name: slideDownAndFade;\r\n}\r\n.okTooltipContent[data-state="delayed-open"][data-side="right"] {\r\n animation-name: slideLeftAndFade;\r\n}\r\n.okTooltipContent[data-state="delayed-open"][data-side="bottom"] {\r\n animation-name: slideUpAndFade;\r\n}\r\n.okTooltipContent[data-state="delayed-open"][data-side="left"] {\r\n animation-name: slideRightAndFade;\r\n}\r\n\r\n.okTooltipText {\r\n /* Typography */\r\n color: var(--Light, #fff);\r\n text-align: center;\r\n font-family: Inter, "Nunito Sans", sans-serif, ui-sans-serif;\r\n font-size: 12px;\r\n font-style: normal;\r\n font-weight: 400;\r\n line-height: 12px; /* 100% */\r\n}\r\n\r\n@keyframes slideUpAndFade {\r\n from {\r\n opacity: 0;\r\n transform: translateY(2px);\r\n }\r\n to {\r\n opacity: 1;\r\n transform: translateY(0);\r\n }\r\n}\r\n\r\n@keyframes slideRightAndFade {\r\n from {\r\n opacity: 0;\r\n transform: translateX(-2px);\r\n }\r\n to {\r\n opacity: 1;\r\n transform: translateX(0);\r\n }\r\n}\r\n\r\n@keyframes slideDownAndFade {\r\n from {\r\n opacity: 0;\r\n transform: translateY(-2px);\r\n }\r\n to {\r\n opacity: 1;\r\n transform: translateY(0);\r\n }\r\n}\r\n\r\n@keyframes slideLeftAndFade {\r\n from {\r\n opacity: 0;\r\n transform: translateX(2px);\r\n }\r\n to {\r\n opacity: 1;\r\n transform: translateX(0);\r\n }\r\n}\r\n');const w=e.forwardRef(((n,r)=>{const{children:a,className:i,open:o,defaultOpen:l,onOpenChange:s,delayDuration:c,disableHoverableContent:d,content:u,container:p,forceMount:g,...m}=n,h={open:o,defaultOpen:l,onOpenChange:s,delayDuration:c,disableHoverableContent:d};return e.createElement(f.Root,{...h},e.createElement(f.Trigger,{asChild:!0},a),e.createElement(f.Portal,{container:p,forceMount:g},e.createElement(f.Content,{sideOffset:4,collisionPadding:10,...m,ref:r,className:t("okTooltipContent",i)},e.createElement("p",{className:"okTooltipText"},u))))}));function E(n){return function(r){return null!=r.tooltip?e.createElement(w,{content:r.tooltip},n):n}}w.displayName="Tooltip";const k=e.forwardRef(((n,r)=>{const{className:a,label:i,size:o=1,onButtonUp:l,onButtonDown:s,onButtonClick:c,...d}=n,f=E(e.createElement("button",{"data-disabled":d.disabled||void 0,...d,ref:r,className:t("okButton",a,"ok-r-size-"+o),onMouseDown:s,onMouseUp:l,onClick:c},i));return e.createElement(f,{...n})}));k.displayName="Button";var v;b('/**\r\n * Copyright (c) 2024 Opal Kelly Incorporated\r\n *\r\n * This source code is licensed under the FrontPanel license.\r\n * See the LICENSE file found in the root directory of this project.\r\n */\r\n\r\n.okIndicator {\r\n /* Layout */\r\n display: inline-flex;\r\n padding: var(--indicator-padding, 6px 12px);\r\n justify-content: flex-start;\r\n align-items: baseline;\r\n gap: 4px;\r\n\r\n /* Style */\r\n border-radius: 4px;\r\n border: 1px solid var(--Gray-2, #d0d7df);\r\n background: var(--Light, #fff);\r\n\r\n /* Indicator Icon Style */\r\n svg.okIndicatorIcon {\r\n width: var(--indicator-icon-width, 9px);\r\n height: var(--indicator-icon-height, 9px);\r\n }\r\n\r\n /* Label Style */\r\n .okIndicatorLabel {\r\n /* Typography */\r\n color: var(--Dark, #343434);\r\n text-align: center;\r\n /* TODO: Determine how to get Inter font */\r\n font-family: Inter, "Nunito Sans", sans-serif, ui-sans-serif;\r\n font-size: var(--indicator-font-size, 12px);\r\n font-style: normal;\r\n font-weight: 500;\r\n line-height: var(--indicator-line-height, 12px); /* 100% */\r\n }\r\n\r\n /* Size 1 */\r\n &:where(.ok-r-size-1) {\r\n --indicator-padding: 6px 12px;\r\n --indicator-font-size: 12px;\r\n --indicator-line-height: 12px;\r\n --indicator-icon-width: 9px;\r\n --indicator-icon-height: 9px;\r\n }\r\n\r\n /* Sizes 2 */\r\n &:where(.ok-r-size-2) {\r\n --indicator-padding: 10px 18px;\r\n --indicator-font-size: 14px;\r\n --indicator-line-height: 14px;\r\n --indicator-icon-width: 10px;\r\n --indicator-icon-height: 10px;\r\n }\r\n\r\n /* Sizes 3 */\r\n &:where(.ok-r-size-3) {\r\n --indicator-padding: 18px 22px;\r\n --indicator-font-size: 20px;\r\n --indicator-line-height: 20px;\r\n --indicator-icon-width: 15px;\r\n --indicator-icon-height: 15px;\r\n }\r\n}\r\n'),function(e){e[e.Up=0]="Up",e[e.Down=1]="Down"}(v||(v={}));const I=d.forwardRef(((e,n)=>{const{direction:r=v.Down,color:t="#343434",...a}=e;return d.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:"12",height:"8",viewBox:"0 0 12 8",fill:"none",...a,ref:n},((e,n)=>{let r;return e===v.Up||v.Down,r=d.createElement("path",{d:"M6.75593 7.12713C6.35716 7.58759 5.64284 7.58759 5.24407 7.12713L2.23682 3.65465C1.67594 3.00701 2.136 2 2.99275 2L9.00725 2C9.864 2 10.3241 3.00701 9.76318 3.65465L6.75593 7.12713Z",fill:n}),r})(r,t))}));var N;I.displayName="ChevronIcon",function(e){e[e.Up=0]="Up",e[e.Down=1]="Down"}(N||(N={}));const C=d.forwardRef(((e,n)=>{const{direction:r=N.Down,color:t="#343434",...a}=e;return d.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:"10",height:"4",viewBox:"0 0 10 4",fill:"none",...a,ref:n},((e,n)=>{let r;switch(e){case N.Up:r=d.createElement("path",{d:"M5 5.1656e-07L10 4L0 4L5 5.1656e-07Z",fill:n});break;case N.Down:r=d.createElement("path",{d:"M5 4L0 0L10 8.88334e-07L5 4Z",fill:n});break;default:r=d.createElement("path",{d:"M5 5.1656e-07L10 4L0 4L5 5.1656e-07Z",fill:n})}return r})(r,t))}));C.displayName="IndicatorArrowIcon";const T=d.forwardRef(((e,n)=>{const{color:r="#343434",...t}=e;return d.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:"10",height:"1",viewBox:"0 0 10 1",fill:"none",...t,ref:n},d.createElement("path",{d:"M8.74228e-08 -8.74228e-07L10 -9.53674e-07L10 1L0 0.999999L8.74228e-08 -8.74228e-07Z",fill:r}))}));T.displayName="IndicatorBarIcon";const z=d.forwardRef(((e,n)=>{const{state:r,color:t="#D0D7DF",colorOnState:a="#44BD84",colorOffState:i="#D0D7DF"}=e;return d.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:"10",height:"10",viewBox:"0 0 10 10",fill:"none",...e,ref:n},((e,n,r,t)=>{let a;switch(e){case exports.ToggleState.On:a=d.createElement("path",{d:"M5 10C7.76142 10 10 7.76142 10 5C10 2.23858 7.76142 0 5 0C2.23858 0 0 2.23858 0 5C0 7.76142 2.23858 10 5 10Z",fill:r});break;case exports.ToggleState.Off:a=d.createElement("path",{d:"M5 10C7.76142 10 10 7.76142 10 5C10 2.23858 7.76142 0 5 0C2.23858 0 0 2.23858 0 5C0 7.76142 2.23858 10 5 10Z",fill:t});break;default:a=d.createElement("path",{d:"M5 10C7.76142 10 10 7.76142 10 5C10 2.23858 7.76142 0 5 0C2.23858 0 0 2.23858 0 5C0 7.76142 2.23858 10 5 10Z",fill:n})}return a})(r,t,a,i))}));z.displayName="IndicatorStateIcon";const D=d.forwardRef(((e,n)=>{const{state:r,color:t="#343434",colorOnState:a="#44BD84",...i}=e;return d.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:"14",height:"14",viewBox:"0 0 14 14",fill:"none",...i,ref:n},((e,n,r)=>{let t;switch(e){case exports.ToggleState.On:t=d.createElement(d.Fragment,null,d.createElement("circle",{cx:"7",cy:"7",r:"6",stroke:n,strokeWidth:"2"}),d.createElement("circle",{cx:"7",cy:"7",r:"3",fill:r}));break;case exports.ToggleState.Off:default:t=d.createElement("circle",{cx:"7",cy:"7",r:"6",stroke:n,strokeWidth:"2"})}return t})(r,t,a))}));D.displayName="RadioToggleStateIcon";const L=d.forwardRef(((e,n)=>{const{state:r,color:t="white",colorOnState:a="white",colorOffState:i="white",...o}=e;return d.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:"8",height:"8",viewBox:"0 0 8 8",fill:"none",...o,ref:n},((e,n,r,t)=>{let a;switch(e){case exports.ToggleState.On:a=d.createElement("circle",{cx:"4",cy:"4",r:"3.75",fill:r});break;case exports.ToggleState.Off:a=d.createElement("circle",{cx:"4",cy:"4",r:"3.75",fill:t});break;default:a=d.createElement("circle",{cx:"4",cy:"4",r:"3.75",fill:n})}return a})(r,t,a,i))}));L.displayName="SwitchToggleStateIcon";const R=e.forwardRef(((n,r)=>{const{className:a,label:i,size:o=1,state:l,...s}=n,c=E(e.createElement("span",{...s,ref:r,className:t("okIndicator",a,"ok-r-size-"+o)},e.createElement(z,{className:"okIndicatorIcon",state:l?exports.ToggleState.On:exports.ToggleState.Off}),e.createElement("span",{className:t("okIndicatorLabel")},i)));return e.createElement(c,{...n})}));R.displayName="Indicator";b('/**\r\n * Copyright (c) 2024 Opal Kelly Incorporated\r\n *\r\n * This source code is licensed under the FrontPanel license.\r\n * See the LICENSE file found in the root directory of this project.\r\n */\r\n\r\n.okLabel {\r\n /* Layout */\r\n display: inline-flex;\r\n flex-direction: column;\r\n align-items: flex-start;\r\n gap: 4px;\r\n\r\n /* Text Style */\r\n .okLabelText {\r\n /* Typography */\r\n color: var(--Dark, #343434);\r\n font-family: Inter, "Nunito Sans", sans-serif, ui-sans-serif;\r\n font-size: 12px;\r\n font-style: normal;\r\n font-weight: 400;\r\n line-height: 12px; /* 100% */\r\n }\r\n\r\n /* Label Position Left Top*/\r\n &:where(.ok-pos-left-top) {\r\n flex-direction: column;\r\n align-items: flex-start;\r\n }\r\n\r\n /* Label Position Left Bottom*/\r\n &:where(.ok-pos-left-bottom) {\r\n flex-direction: column-reverse;\r\n align-items: flex-start;\r\n }\r\n\r\n /* Label Position Right Top*/\r\n &:where(.ok-pos-right-top) {\r\n flex-direction: column;\r\n align-items: flex-end;\r\n }\r\n\r\n /* Label Position Right Bottom*/\r\n &:where(.ok-pos-right-bottom) {\r\n flex-direction: column-reverse;\r\n align-items: flex-end;\r\n }\r\n}\r\n');const O=e.forwardRef(((n,r)=>{const{className:a,text:i,horizontalPosition:o="left",verticalPosition:l="top",children:s,...c}=n;return e.createElement("div",{...c,ref:r,className:t("okLabel",a,"ok-pos-"+o+"-"+l)},e.createElement("span",{className:t("okLabelText")},i),s)}));O.displayName="Label";b("/**\r\n * Copyright (c) 2024 Opal Kelly Incorporated\r\n *\r\n * This source code is licensed under the FrontPanel license.\r\n * See the LICENSE file found in the root directory of this project.\r\n */\r\n\r\n.okNumberDisplay {\r\n /* Layout */\r\n display: flex;\r\n padding: var(--number-display-padding, 6px 12px);\r\n justify-content: flex-end;\r\n align-items: center;\r\n gap: 4px;\r\n\r\n /* Style */\r\n border-radius: 4px;\r\n border: 1px solid var(--Gray-2, #d0d7df);\r\n background: #f5f5f5;\r\n\r\n /* Content Style */\r\n .okNumberDisplayContent {\r\n display: flex;\r\n padding: var(--spacing-0, 0px);\r\n align-items: center;\r\n justify-content: flex-end;\r\n gap: 8px;\r\n flex: 1 0 0;\r\n }\r\n\r\n /* Text Style */\r\n .okNumberDisplayText {\r\n /* Typography */\r\n color: var(--Dark, #343434);\r\n text-align: center;\r\n font-family: Monaco;\r\n font-size: var(--number-display-font-size, 12px);\r\n font-style: normal;\r\n font-weight: 400;\r\n line-height: var(--number-display-line-height, 12px); /* 100% */\r\n }\r\n\r\n /* Size 1 */\r\n &:where(.ok-r-size-1) {\r\n --number-display-padding: 6px 6px;\r\n --number-display-font-size: 12px;\r\n --number-display-line-height: 12px;\r\n }\r\n\r\n /* Sizes 2 */\r\n &:where(.ok-r-size-2) {\r\n --number-display-padding: 6px 10px;\r\n --number-display-font-size: 14px;\r\n --number-display-line-height: 14px;\r\n }\r\n\r\n /* Sizes 3 */\r\n &:where(.ok-r-size-3) {\r\n --number-display-padding: 6px 18px;\r\n --number-display-font-size: 20px;\r\n --number-display-line-height: 20px;\r\n }\r\n}\r\n");const A=e.forwardRef(((n,r)=>{const{className:a,label:i,size:o=1,numeralSystem:l=exports.NumeralSystem.Decimal,decimalScale:s=0,maximumValue:c,minimumValue:d,value:f}=n,u=e.useMemo((()=>{const e=m.ComputeDigitCountFromValue(c,l),n=m.ComputeDigitCountFromValue(d,l);return e>n?e:n}),[c,d,l]),p=e.useMemo((()=>e.createElement("span",{className:t("okNumberDisplayText","ok-r-size-"+o)},"-")),[o]),g=E(e.createElement("div",{ref:r,className:t("okNumberDisplay",a,"ok-r-size-"+o)},e.createElement("div",{className:"okNumberDisplayContent"},f<0n&&p,e.createElement("span",{className:"okNumberDisplayText"},function(e,n,r,t){let a;if(null!=e){const i=e>=0n?e:-e,o=Number(n),l=i.toString(r).padStart(o,"0");if(r===exports.NumeralSystem.Decimal&&t>0){const e=o-t;if(e>0)a=l.slice(0,e)+"."+l.slice(e);else{const n="0.";a=n.padEnd(n.length-e,"0")+l}}else a=l}else a="Error";return a}(f,u,l,s)))));if(null!=i)return e.createElement(O,{...i},e.createElement("div",{style:{width:"100%"}},e.createElement(g,{...n})));e.createElement(g,{...n})}));A.displayName="NumberDisplay";b('/**\r\n * Copyright (c) 2024 Opal Kelly Incorporated\r\n *\r\n * This source code is licensed under the FrontPanel license.\r\n * See the LICENSE file found in the root directory of this project.\r\n */\r\n\r\n.okNumberEntry {\r\n /* Layout */\r\n display: flex;\r\n padding: var(--number-entry-padding, 6px);\r\n justify-content: flex-end;\r\n align-items: center;\r\n\r\n /* Style */\r\n border-radius: 4px;\r\n border: 1px solid var(--brand-12, #44bd84);\r\n background: var(--Light, #fff);\r\n\r\n /* Content Style */\r\n .okNumberEntryContent {\r\n display: flex;\r\n height: auto; /*32px;*/\r\n justify-content: flex-end;\r\n align-items: center;\r\n gap: var(--spacing-0, 0px);\r\n align-self: stretch;\r\n }\r\n\r\n /* Text Style */\r\n .okNumberEntryText {\r\n /* Typography */\r\n color: var(--Dark, #343434);\r\n text-align: center;\r\n font-family: Monaco;\r\n font-size: var(--number-entry-font-size, 12px);\r\n font-style: normal;\r\n font-weight: 400;\r\n line-height: var(--number-entry-line-height, 12px); /* 100% */\r\n letter-spacing: 1.26px;\r\n }\r\n\r\n /* Size 1 */\r\n &:where(.ok-r-size-1) {\r\n --number-entry-padding: 1px 6px;\r\n --number-entry-font-size: 12px;\r\n --number-entry-line-height: 12px;\r\n }\r\n\r\n /* Sizes 2 */\r\n &:where(.ok-r-size-2) {\r\n --number-entry-padding: 1px 10px;\r\n --number-entry-font-size: 14px;\r\n --number-entry-line-height: 14px;\r\n }\r\n\r\n /* Sizes 3 */\r\n &:where(.ok-r-size-3) {\r\n --number-entry-padding: 1px 18px;\r\n --number-entry-font-size: 20px;\r\n --number-entry-line-height: 20px;\r\n }\r\n}\r\n\r\n.okNumberEntry[data-disabled="true"] {\r\n border: 1px solid var(--Gray-2, #d0d7df);\r\n opacity: 0.5;\r\n background: var(--Gray-3, #e7ebef);\r\n\r\n pointer-events: none;\r\n}\r\n');b('/**\r\n * Copyright (c) 2024 Opal Kelly Incorporated\r\n *\r\n * This source code is licensed under the FrontPanel license.\r\n * See the LICENSE file found in the root directory of this project.\r\n */\r\n\r\n.okDigitEntry {\r\n /* Layout */\r\n display: inline-flex;\r\n flex-direction: column;\r\n justify-content: center;\r\n align-items: center;\r\n gap: 1px;\r\n\r\n /* Content Style */\r\n .okDigitEntryContent {\r\n /* Layout */\r\n display: flex;\r\n padding: var(--spacing-xxs, 2px);\r\n flex-direction: column;\r\n justify-content: center;\r\n align-items: center;\r\n\r\n /* Style */\r\n border-radius: 1px;\r\n\r\n /* Typography */\r\n color: var(--Dark, #343434);\r\n text-align: center;\r\n font-family: Monaco;\r\n font-size: var(--digit-font-size, 12px);\r\n font-style: normal;\r\n font-weight: 400;\r\n line-height: var(--digit-line-height, 12px); /* 200% */\r\n letter-spacing: 1.26px;\r\n text-transform: uppercase;\r\n }\r\n\r\n /* Increment Indicator Style */\r\n .okDigitEntryIncrementIndicator {\r\n visibility: hidden;\r\n }\r\n\r\n /* Decrement Indicator Style */\r\n .okDigitEntryDecrementIndicator {\r\n visibility: hidden;\r\n }\r\n\r\n /* Size 1 */\r\n &:where(.ok-r-size-1) {\r\n --digit-font-size: 12px;\r\n --digit-line-height: 12px;\r\n }\r\n\r\n /* Sizes 2 */\r\n &:where(.ok-r-size-2) {\r\n --digit-font-size: 14px;\r\n --digit-line-height: 14px;\r\n }\r\n\r\n /* Sizes 3 */\r\n &:where(.ok-r-size-3) {\r\n --digit-font-size: 20px;\r\n --digit-line-height: 20px;\r\n }\r\n}\r\n\r\ndiv.okDigitEntry:focus {\r\n /* Layout */\r\n display: inline-flex;\r\n flex-direction: column;\r\n justify-content: center;\r\n align-items: center;\r\n gap: 1px;\r\n\r\n /* Style */\r\n outline: none;\r\n overscroll-behavior: none;\r\n\r\n /* Content Style */\r\n .okDigitEntryContent {\r\n /* Layout */\r\n display: flex;\r\n padding: var(--spacing-xxs, 2px);\r\n flex-direction: column;\r\n justify-content: center;\r\n align-items: center;\r\n\r\n /* Style */\r\n border-radius: 1px;\r\n background: var(--brand-12, #44bd84);\r\n\r\n /* Typography */\r\n color: var(--Light, #fff);\r\n text-align: center;\r\n font-family: Monaco;\r\n font-size: var(--digit-font-size, 12px);\r\n font-style: normal;\r\n font-weight: 400;\r\n line-height: var(--digit-line-height, 12px); /* 200% */\r\n letter-spacing: 1.26px;\r\n }\r\n\r\n .okDigitEntryIncrementIndicator {\r\n visibility: visible;\r\n }\r\n\r\n .okDigitEntryDecrementIndicator {\r\n visibility: visible;\r\n }\r\n\r\n .okDigitEntryIncrementIndicator[data-enabled="false"] {\r\n opacity: 0.25;\r\n }\r\n\r\n .okDigitEntryDecrementIndicator[data-enabled="false"] {\r\n opacity: 0.25;\r\n }\r\n}\r\n');const P=n=>{const r=e.useRef(null),{className:a,variant:i="standard",size:o=1,value:l,maximum:s,minimum:c,numeralSystem:d=exports.NumeralSystem.Decimal,onValueChanged:f}=n,u=e.useRef(l);u.current=n.value;const p=e.useRef(f);p.current=f;e.useEffect((()=>{const e=e=>{e.deltaY<0?(p.current?.(u.current+1,!1),e.stopPropagation(),e.preventDefault()):e.deltaY>0&&(p.current?.(u.current-1,!1),e.stopPropagation(),e.preventDefault())};return r.current?.addEventListener("wheel",e,{passive:!1}),()=>{r.current?.removeEventListener("wheel",e)}}),[r]);const g=null==s||l<s,m=null==c||l>c;return e.createElement("div",{className:t("okDigitEntry",a,"ok-r-size-"+o),ref:r,tabIndex:-1,onMouseEnter:e=>e.currentTarget.focus(),onMouseLeave:e=>e.currentTarget.blur(),onKeyDown:e=>{let n=!1;switch(e.key){case"ArrowUp":f?.(l+1,!1),n=!0;break;case"ArrowDown":f?.(l-1,!1),n=!0;break;case"ArrowRight":{const r=e.currentTarget.nextElementSibling;r?.focus(),n=!0}break;case"ArrowLeft":{const r=e.currentTarget.previousElementSibling;r?.focus(),n=!0}break;default:n=!1}if(n)e.stopPropagation(),e.preventDefault();else{const n=parseInt(e.key,d);if(!Number.isNaN(n)){f?.(n,!0);const r=e.currentTarget.nextElementSibling;r?.focus()}}}},e.createElement((()=>{let n;switch(i){case"standard":n=e.createElement(C,{className:t("okDigitEntryIncrementIndicator"),direction:N.Up,color:"#343434","data-enabled":g});break;case"compact":n=e.createElement(T,{className:t("okDigitEntryIncrementIndicator"),color:"#343434","data-enabled":g});break;default:n=null}return n}),null),e.createElement("div",{className:t("okDigitEntryContent","ok-r-size-"+o)},Math.abs(l).toString(Number(d))),e.createElement((()=>{let n;switch(i){case"standard":n=e.createElement(C,{className:t("okDigitEntryDecrementIndicator"),direction:N.Down,color:"#343434","data-enabled":m});break;case"compact":n=e.createElement(T,{className:t("okDigitEntryDecrementIndicator"),color:"#343434","data-enabled":m});break;default:n=null}return n}),null))};P.displayName="DigitEntry";const B=n=>{const{variant:r="standard",size:a=1,numeralSystem:i,decimalScale:o=0,digitStates:l,onDigitStatesChange:s}=n;return e.createElement(e.Fragment,null,(()=>{const n=l.map(((n,t)=>e.createElement(P,{key:"digit-"+n.id,variant:r,size:a,numeralSystem:i,value:n.value,maximum:n.maximum,minimum:n.minimum,onValueChanged:(e,n)=>{const r=[...l];r[t]={...l[t],value:e},s?.(r,n)}})));if(i===exports.NumeralSystem.Decimal&&o>0){const r=o-n.length;if(r<0)n.splice(o,0,e.createElement("span",{key:"digit-decimal-point",className:t("okNumberEntryText","ok-r-size-"+a)},"."));else{const i="0.",o=i.padEnd(i.length+r,"0");n.push(e.createElement("span",{key:"digit-decimal-prefix",className:t("okNumberEntryText","ok-r-size-"+a)},o))}}return n.reverse()})())};B.displayName="NumberEntryDigits";const V=e.forwardRef(((n,r)=>{const{label:t,tooltip:a,...i}=n,o=null!=t,l=null!=a;return o&&l?e.createElement(O,{...t},e.createElement(w,{content:a},e.createElement("div",{style:{width:"100%"}},e.createElement(F,{ref:r,...i})))):o?e.createElement(O,{...t},e.createElement("div",{style:{width:"100%"}},e.createElement(F,{ref:r,...i}))):l?e.createElement(w,{content:a},e.createElement("div",null,e.createElement(F,{ref:r,...i}))):e.createElement(F,{ref:r,...i})}));V.displayName="NumberEntry";const F=e.forwardRef(((n,r)=>{const{className:a,variant:i="standard",size:o=1,disabled:l=!1,numeralSystem:s=exports.NumeralSystem.Decimal,decimalScale:c=0,maximumValue:d,minimumValue:f,value:u,onValueChange:p}=n,g=e.useMemo((()=>{const e=m.ComputeDigitCountFromValue(d,s),n=m.ComputeDigitCountFromValue(f,s);return Number(e>n?e:n)}),[d,f,s]),h=BigInt(s),y=j(u,d,f,h,g);return e.createElement("div",{ref:r,className:t("okNumberEntry",a,"ok-r-size-"+o),"data-disabled":l||void 0},e.createElement("div",{className:"okNumberEntryContent"},u<0n&&(n=>e.createElement("span",{className:t("okNumberEntryText","ok-r-size-"+n)},"-"))(o),e.createElement(B,{variant:i,size:o,numeralSystem:s,decimalScale:c,digitStates:y,onDigitStatesChange:(e,n)=>{let r=M(e,h);r>=0n!=u>=0n&&0n!==r&&(r+=2n*-u),r<=d&&r>=f&&p?.(r)}})))}));F.displayName="NumberEntryImpl";const M=(e,n)=>{const r=e.length-1;let t=BigInt(e[r].value);for(let a=r-1;a>=0;a--)t=t*n+BigInt(e[a].value);return t},j=(e,n,r,t,a)=>{const i=[];let o=e,l=n-e,s=r-e;for(let e=0;e<a;e++){const n=Number(o%t),r=Math.floor(Number(l+BigInt(n))),a=Math.ceil(Number(s+BigInt(n)));i[e]={id:e,value:n,maximum:G(r,Number(t)),minimum:G(a,Number(t))},o/=t,l/=t,s/=t}return i},G=(e,n)=>{let r;return r=e>=0?e<n?e:void 0:e>-n?e:void 0,r};b('/**\r\n * Copyright (c) 2024 Opal Kelly Incorporated\r\n *\r\n * This source code is licensed under the FrontPanel license.\r\n * See the LICENSE file found in the root directory of this project.\r\n */\r\n\r\n.okRangeSlider {\r\n --range-slider-thumb-outline-size: 2px;\r\n --range-slider-thumb-border-size: 2px;\r\n --range-slider-thumb-size: 22px;\r\n --range-slider-track-size: 8px;\r\n\r\n /* Layout */\r\n display: flex;\r\n flex-direction: row;\r\n align-items: center;\r\n gap: 4px;\r\n align-self: stretch;\r\n width: 100%;\r\n height: fit-content;\r\n\r\n /* Typography */\r\n color: var(--Dark, #343434);\r\n text-align: right;\r\n font-family: Inter, "Nunito Sans", sans-serif, ui-sans-serif;\r\n font-size: 12px;\r\n font-style: normal;\r\n font-weight: 400;\r\n line-height: 12px; /* 100% */\r\n}\r\n\r\n/* State Disabled */\r\n.okRangeSlider[data-disabled="true"] {\r\n opacity: 0.5;\r\n}\r\n\r\n.okRangeSliderLabel {\r\n width: 100%;\r\n}\r\n\r\n.okRangeSliderRoot {\r\n /* Layout */\r\n position: relative;\r\n display: flex;\r\n align-items: center;\r\n width: 100%;\r\n height: var(--range-slider-thumb-size);\r\n min-width: 100px;\r\n\r\n /* Style */\r\n user-select: none;\r\n touch-action: none;\r\n}\r\n\r\n.okRangeSliderTrack {\r\n /* Layout */\r\n position: relative;\r\n flex-grow: 1;\r\n height: var(--range-slider-track-size);\r\n\r\n /* Style */\r\n background: var(--Gray-2, #d0d7df);\r\n border-radius: 9999px;\r\n}\r\n\r\n.okRangeSliderRange {\r\n /* Layout */\r\n position: absolute;\r\n height: 100%;\r\n\r\n /* Style */\r\n background-color: #44bd84;\r\n border-radius: inherit;\r\n}\r\n\r\n.okRangeSliderThumb {\r\n /* Layout */\r\n display: flex;\r\n flex-direction: column;\r\n align-items: center;\r\n width: calc(\r\n var(--range-slider-thumb-size) -\r\n (2 * (var(--range-slider-thumb-border-size) + var(--range-slider-thumb-outline-size)))\r\n );\r\n height: calc(\r\n var(--range-slider-thumb-size) -\r\n (2 * (var(--range-slider-thumb-border-size) + var(--range-slider-thumb-outline-size)))\r\n );\r\n\r\n /* Style */\r\n background: var(--Base-White, #fff);\r\n border: var(--range-slider-thumb-border-size) solid var(--brand-12, #44bd84);\r\n border-radius: var(--range-slider-thumb-size);\r\n}\r\n\r\n.okRangeSliderThumb:hover {\r\n background-color: #44bd84;\r\n}\r\n\r\n.okRangeSliderThumb:focus {\r\n outline: none;\r\n box-shadow: 0 0 0 var(--range-slider-thumb-outline-size) #d0d7df;\r\n}\r\n\r\n.okRangeSliderThumbLabel {\r\n /* Layout */\r\n position: absolute;\r\n bottom: -14px;\r\n}\r\n');const W=e.forwardRef(((n,r)=>{const{label:t,tooltip:a,...i}=n,o=null!=t,l=null!=a;return o&&l?e.createElement(O,{className:"okRangeSliderLabel",...t},e.createElement(w,{content:a},e.createElement("div",{style:{width:"100%"}},e.createElement(_,{ref:r,...i})))):o?e.createElement(O,{className:"okRangeSliderLabel",...t},e.createElement("div",{style:{width:"100%"}},e.createElement(_,{ref:r,...i}))):l?e.createElement(w,{content:a},e.createElement("div",{style:{width:"100%"}},e.createElement(_,{ref:r,...i}))):e.createElement(_,{ref:r,...i})}));W.displayName="RangeSlider";const _=e.forwardRef(((n,r)=>{const{className:a,tooltip:i,minimumValue:o=0,maximumValue:l=100,onValueChange:s,defaultValue:c=o,value:d,valueStep:f=1,showThumbLabel:p=!0,showTrackLabels:g=!0,disabled:m=!1}=n,h=d??c,[y,x]=e.useState([h]);e.useEffect((()=>{x([h])}),[h]);const b=e.useCallback((e=>{x([e]),s?.(e)}),[s]),S=()=>e.createElement(u.Track,{className:"okRangeSliderTrack"},e.createElement(u.Range,{className:"okRangeSliderRange"})),E=null!=i;return e.createElement("div",{className:t("okRangeSlider",a),"data-disabled":m||void 0},g?e.createElement("span",null,o):null,e.createElement(u.Root,{ref:r,min:o,max:l,step:f,value:y,onValueChange:e=>b(e[0]),orientation:"horizontal",className:"okRangeSliderRoot",disabled:m},E?e.createElement(w,{content:i},e.createElement(S,null)):e.createElement(S,null),e.createElement(u.Thumb,{className:"okRangeSliderThumb"},p?e.createElement("div",{className:"okRangeSliderThumbLabel"},y):null)),g?e.createElement("span",null,l):null)}));_.displayName="RangeSliderImpl";const U=e.createContext({label:{text:"",horizontalPosition:"right",verticalPosition:"top"},size:1,value:void 0}),K=n=>{const{label:r,children:t,size:a=1,tooltip:i,value:o,...l}=n;return e.createElement(p.Root,{value:o,...l},e.createElement(U.Provider,{value:e.useMemo((()=>({label:r,size:a,tooltip:i,value:o})),[r,a,i,o])},t))};K.displayName="SelectEntryRoot";b('/**\r\n * Copyright (c) 2024 Opal Kelly Incorporated\r\n *\r\n * This source code is licensed under the FrontPanel license.\r\n * See the LICENSE file found in the root directory of this project.\r\n */\r\n\r\n.okSelectEntryContent {\r\n /* Layout */\r\n width: var(--radix-select-trigger-width);\r\n max-height: var(--radix-select-content-available-height);\r\n display: flex;\r\n padding: 10px 18px;\r\n flex-direction: column;\r\n overflow: hidden;\r\n justify-content: center;\r\n align-items: stretch;\r\n\r\n /* Style */\r\n border-radius: 4px;\r\n border: 1px solid var(--Gray-2, #d0d7df);\r\n background: var(--Light, #fff);\r\n box-shadow: 0px 1px 4px 0px rgba(0, 0, 0, 0.24);\r\n\r\n .okSelectEntryContentInner {\r\n display: flex;\r\n flex-direction: column;\r\n gap: 10px;\r\n }\r\n\r\n /* ScrollArea Root Style */\r\n .okScrollArea {\r\n display: flex;\r\n flex-direction: column;\r\n overflow: hidden;\r\n width: 100%;\r\n height: 100%;\r\n }\r\n\r\n /* ScrollArea Viewport Style */\r\n .okScrollAreaViewport {\r\n display: flex;\r\n flex-direction: column;\r\n width: 100%;\r\n height: 100%;\r\n gap: 10px;\r\n\r\n /* Stop Chrome back/forward two-finger swipe */\r\n overscroll-behavior-x: contain;\r\n\r\n &:where(:focus-visible) + :where(.rt-ScrollAreaViewportFocusRing) {\r\n position: absolute;\r\n inset: 0;\r\n pointer-events: none;\r\n outline: 2px solid var(--focus-8);\r\n outline-offset: -2px;\r\n }\r\n }\r\n\r\n /* ScrollArea Scrollbar Style */\r\n .okScrollAreaScrollbar {\r\n display: flex;\r\n /* Ensures no selection */\r\n user-select: none;\r\n /* Disable browser handling of all panning and zooming gestures on touch devices */\r\n touch-action: none;\r\n\r\n &:where([data-orientation="vertical"]) {\r\n flex-direction: column;\r\n width: 4px;\r\n }\r\n &:where([data-orientation="horizontal"]) {\r\n flex-direction: row;\r\n height: 4px;\r\n }\r\n }\r\n\r\n /* ScrollArea Thumb Style */\r\n .okScrollAreaThumb {\r\n position: relative;\r\n\r\n &::before {\r\n content: "";\r\n position: absolute;\r\n top: 50%;\r\n left: 50%;\r\n transform: translate(-50%, -50%);\r\n width: 100%;\r\n height: 100%;\r\n min-width: var(--space-4);\r\n min-height: var(--space-4);\r\n }\r\n }\r\n}\r\n');const Q=e.forwardRef(((n,r)=>{const{className:a,children:i,container:o,...l}=n,{size:s}=e.useContext(U);return e.createElement(p.Portal,{container:o},e.createElement(p.Content,{sideOffset:4,...l,ref:r,className:t("okSelectEntryContent",a,"ok-r-size-"+s),position:"popper",align:"start"},e.createElement(g.Root,{type:"auto",className:"okScrollArea"},e.createElement(p.Viewport,{asChild:!0},e.createElement(g.Viewport,{className:"okScrollAreaViewport"},e.createElement("div",{className:"okSelectEntryContentInner"},i))),e.createElement(g.Scrollbar,{className:"okScrollAreaScrollbar",orientation:"vertical"},e.createElement(g.Thumb,{className:"okScrollAreaThumb"})))))}));Q.displayName="SelectEntryContent";b("/**\r\n * Copyright (c) 2024 Opal Kelly Incorporated\r\n *\r\n * This source code is licensed under the FrontPanel license.\r\n * See the LICENSE file found in the root directory of this project.\r\n */\r\n\r\n.okSelectEntryGroup {\r\n /* Layout */\r\n display: flex;\r\n padding: 0px;\r\n flex-direction: column;\r\n justify-content: center;\r\n align-items: flex-start;\r\n align-self: stretch;\r\n gap: 10px;\r\n}\r\n");const X=e.forwardRef(((n,r)=>e.createElement(p.Group,{...n,ref:r,className:t("okSelectEntryGroup",n.className)})));X.displayName="SelectEntryGroup";b('/**\r\n * Copyright (c) 2024 Opal Kelly Incorporated\r\n *\r\n * This source code is licensed under the FrontPanel license.\r\n * See the LICENSE file found in the root directory of this project.\r\n */\r\n\r\n.okSelectEntryItem {\r\n /* Layout */\r\n display: flex;\r\n align-items: center;\r\n gap: 4px;\r\n\r\n /* Style */\r\n color: var(--Dark, #343434);\r\n font-family: Inter, "Nunito Sans", sans-serif, ui-sans-serif;\r\n font-size: 14px;\r\n font-style: normal;\r\n font-weight: 400;\r\n line-height: 14px; /* 100% */\r\n\r\n /* Indicator Style */\r\n .okSelectEntryItemIndicator {\r\n width: 14px;\r\n height: 14px;\r\n }\r\n}\r\n\r\n.okSelectEntryItem[data-disabled] {\r\n opacity: 0.5;\r\n pointer-events: none;\r\n}\r\n.okSelectEntryItem[data-highlighted] {\r\n outline: none;\r\n}\r\n');const Y=e.forwardRef(((n,r)=>{const{className:a,children:i,...o}=n,{size:l,value:s}=e.useContext(U);return e.createElement(p.Item,{...o,ref:r,className:t("okSelectEntryItem",a,"ok-r-size-"+l)},e.createElement(D,{state:s===n.value?exports.ToggleState.On:exports.ToggleState.Off}),e.createElement(p.ItemText,null,i))}));Y.displayName="SelectEntryItem";b('/**\r\n * Copyright (c) 2024 Opal Kelly Incorporated\r\n *\r\n * This source code is licensed under the FrontPanel license.\r\n * See the LICENSE file found in the root directory of this project.\r\n */\r\n\r\n.okSelectEntryLabel {\r\n /* Typography */\r\n color: var(--Gray-1, #989da3);\r\n font-family: Inter, "Nunito Sans", sans-serif, ui-sans-serif;\r\n font-size: 10px;\r\n font-style: normal;\r\n font-weight: 300;\r\n line-height: 12px; /* 120% */\r\n}\r\n');const Z=e.forwardRef(((n,r)=>{const{className:a,...i}=n,{size:o}=e.useContext(U);return e.createElement(p.Label,{...i,ref:r,className:t("okSelectEntryLabel",a,"ok-r-size-"+o)})}));Z.displayName="SelectEntryLabel";b("/**\r\n * Copyright (c) 2024 Opal Kelly Incorporated\r\n *\r\n * This source code is licensed under the FrontPanel license.\r\n * See the LICENSE file found in the root directory of this project.\r\n */\r\n\r\n.okSelectEntrySeparator {\r\n height: 1px;\r\n\r\n background: #d0d7df;\r\n}\r\n");const q=e.forwardRef(((n,r)=>e.createElement(p.Separator,{...n,ref:r,className:t("okSelectEntrySeparator",n.className)})));q.displayName="SelectEntrySeparator";b('/**\r\n * Copyright (c) 2024 Opal Kelly Incorporated\r\n *\r\n * This source code is licensed under the FrontPanel license.\r\n * See the LICENSE file found in the root directory of this project.\r\n */\r\n\r\n.okSelectEntryTrigger {\r\n /* Layout */\r\n display: flex;\r\n padding: 0px 18px;\r\n justify-content: space-between;\r\n align-items: center;\r\n gap: 8px;\r\n\r\n /* Style */\r\n border-radius: 4px;\r\n border: 1px solid var(--Gray-2, #d0d7df);\r\n background: var(--Light, #fff);\r\n\r\n /* Typography */\r\n color: var(--Dark, #343434);\r\n font-family: Inter, "Nunito Sans", sans-serif, ui-sans-serif;\r\n font-size: 14px;\r\n font-style: normal;\r\n font-weight: 400;\r\n line-height: 14px; /* 100% */\r\n\r\n /* State Disabled */\r\n &:is(:disabled) {\r\n opacity: 0.5;\r\n background: var(--Gray-3, #e7ebef);\r\n }\r\n}\r\n\r\n.okSelectEntryTriggerInner {\r\n /* Layout */\r\n padding: 10px 0px;\r\n\r\n /* Style */\r\n overflow: hidden;\r\n text-overflow: ellipsis;\r\n white-space: nowrap;\r\n}\r\n\r\n/* State Disabled */\r\n.okSelectEntryTrigger[data-disabled="true"] {\r\n opacity: 0.5;\r\n}\r\n');const H=e.forwardRef(((n,r)=>{const{label:t,tooltip:a,...i}=e.useContext(U),o=null!=t,l=null!=a;return o&&l?e.createElement(O,{...t},e.createElement(w,{content:a},e.createElement(J,{ref:r,...n,style:{width:"100%"}}))):o?e.createElement(O,{...t},e.createElement(J,{ref:r,...i,style:{width:"100%"}})):l?e.createElement(w,{content:a},e.createElement("div",null,e.createElement(J,{ref:r,...i}))):e.createElement(J,{ref:r,...i})}));H.displayName="SelectEntryTrigger";const J=e.forwardRef(((n,r)=>{const{className:a,placeholder:i,...o}=n,{size:l}=e.useContext(U);return e.createElement(p.Trigger,{asChild:!0},e.createElement("button",{...o,ref:r,className:t("okSelectEntryTrigger",a,"ok-r-size-"+l)},e.createElement("span",{className:"okSelectEntryTriggerInner"},e.createElement(p.Value,{placeholder:i})),e.createElement(p.Icon,{asChild:!0},e.createElement(I,{direction:v.Down}))))}));J.displayName="SelectEntryTriggerImpl";const $=Object.assign({},{Root:K,Trigger:H,Content:Q,Item:Y,Group:X,Label:Z,Separator:q});b('/**\r\n * Copyright (c) 2024 Opal Kelly Incorporated\r\n *\r\n * This source code is licensed under the FrontPanel license.\r\n * See the LICENSE file found in the root directory of this project.\r\n */\r\n\r\n.okToggle {\r\n /* Layout */\r\n display: inline-flex;\r\n padding: var(--toggle-padding, 6px 12px);\r\n justify-content: center;\r\n align-items: center;\r\n gap: 4px;\r\n\r\n color: var(--base-white, #fff);\r\n\r\n /* Style */\r\n border-width: 0px;\r\n border-radius: 4px;\r\n background: var(--brand-12, #44bd84);\r\n\r\n /* Typography */\r\n color: var(--Base-White, #fff);\r\n text-align: center;\r\n font-family: Inter, "Nunito Sans", sans-serif, ui-sans-serif;\r\n font-size: var(--toggle-font-size, 12px);\r\n font-style: normal;\r\n font-weight: 600;\r\n line-height: 12px; /* 100% */\r\n\r\n /* Size 1 */\r\n &:where(.ok-r-size-1) {\r\n --toggle-padding: 6px 12px;\r\n --toggle-font-size: 12px;\r\n --toggle-line-height: 12px;\r\n }\r\n\r\n /* Size 2 */\r\n &:where(.ok-r-size-2) {\r\n --toggle-padding: 10px 18px;\r\n --toggle-font-size: 14px;\r\n --toggle-line-height: 14px;\r\n }\r\n\r\n /* Size 3 */\r\n &:where(.ok-r-size-3) {\r\n --toggle-padding: 18px 22px;\r\n --toggle-font-size: 20px;\r\n --toggle-line-height: 20px;\r\n }\r\n}\r\n\r\n/* State Disabled */\r\n.okToggle[data-disabled="true"] {\r\n background: var(--Gray-2, #d0d7df);\r\n}\r\n\r\n/* State On */\r\n.okToggle[data-state="on"]:not([data-disabled="true"]) {\r\n background: #329466;\r\n}\r\n\r\n/* State Off */\r\n.okToggle[data-state="off"]:not([data-disabled="true"]) {\r\n background: var(--brand-12, #44bd84);\r\n}\r\n');const ee=e.forwardRef(((n,r)=>{const{className:a,size:i=1,disabled:o=!1,tooltip:l,state:s,children:c,onToggleStateChanged:d,...f}=n,u=e.useMemo((()=>{switch(s){case exports.ToggleState.On:return"on";case exports.ToggleState.Off:return"off";default:return"indeterminate"}}),[s]),p=e.useCallback((()=>{const e=s===exports.ToggleState.On?exports.ToggleState.Off:exports.ToggleState.On;d?.(e)}),[s]);return e.createElement("button",{"data-disabled":o||void 0,ref:r,...f,className:t("okToggle",a,"ok-r-size-"+i),"data-state":u,onClick:p},c)}));ee.displayName="Toggle";b('/**\r\n * Copyright (c) 2024 Opal Kelly Incorporated\r\n *\r\n * This source code is licensed under the FrontPanel license.\r\n * See the LICENSE file found in the root directory of this project.\r\n */\r\n\r\n.okToggleSwitchRoot {\r\n /* Layout */\r\n display: inline-flex;\r\n justify-content: center;\r\n align-items: center;\r\n gap: 4px;\r\n\r\n /* Style */\r\n border-radius: 4px;\r\n\r\n /* Switch Style */\r\n .okToggleSwitch {\r\n /* Layout */\r\n display: flex;\r\n width: var(--toggle-switch-width, 16.5px);\r\n height: var(--toggle-switch-height, 9px);\r\n padding: var(--toggle-switch-padding, 0.75px);\r\n align-items: center;\r\n\r\n /* Style */\r\n border-width: 0px;\r\n border-radius: var(--toggle-switch-border-radius, 4.5px);\r\n background: var(--Gray-2, #d0d7df);\r\n\r\n /* Switch Icon Style */\r\n .okIndicatorIcon {\r\n width: var(--toggle-switch-icon-width, 9px);\r\n height: var(--toggle-switch-icon-height, 9px);\r\n }\r\n }\r\n\r\n /* Label Style */\r\n .okToggleSwitchLabel {\r\n /* Typography */\r\n color: var(--Dark, #343434);\r\n text-align: center;\r\n font-family: Inter, "Nunito Sans", sans-serif, ui-sans-serif;\r\n font-size: var(--toggle-switch-font-size, 12px);\r\n font-style: normal;\r\n font-weight: 500;\r\n line-height: var(--toggle-switch-line-height, 12px); /* 100% */\r\n }\r\n\r\n /* Size 1 */\r\n &:where(.ok-r-size-1) {\r\n --toggle-switch-width: 16.5px;\r\n --toggle-switch-height: 9px;\r\n\r\n --toggle-switch-padding: 0.75px;\r\n --toggle-switch-border-radius: 4.5px;\r\n\r\n --toggle-switch-font-size: 12px;\r\n --toggle-switch-line-height: 12px;\r\n\r\n --toggle-switch-icon-width: 7.5px;\r\n --toggle-switch-icon-height: 7.5px;\r\n }\r\n\r\n /* Sizes 2*/\r\n &:where(.ok-r-size-2) {\r\n --toggle-switch-width: 18.333px;\r\n --toggle-switch-height: 10px;\r\n\r\n --toggle-switch-padding: 0.883px;\r\n --toggle-switch-border-radius: 5px;\r\n\r\n --toggle-switch-font-size: 14px;\r\n --toggle-switch-line-height: 14px;\r\n\r\n --toggle-switch-icon-width: 8.33px;\r\n --toggle-switch-icon-height: 8.33px;\r\n }\r\n\r\n /* Sizes 3*/\r\n &:where(.ok-r-size-3) {\r\n --toggle-switch-width: 27.5px;\r\n --toggle-switch-height: 15px;\r\n\r\n --toggle-switch-padding: 1.25px;\r\n --toggle-switch-border-radius: 7.5px;\r\n\r\n --toggle-switch-font-size: 20px;\r\n --toggle-switch-line-height: 20px;\r\n\r\n --toggle-switch-icon-width: 12.5px;\r\n --toggle-switch-icon-height: 12.5px;\r\n }\r\n}\r\n\r\n/* State Disabled */\r\n.okToggleSwitchRoot[data-disabled="true"] {\r\n opacity: 0.5;\r\n}\r\n\r\n/* State On */\r\n.okToggleSwitch[data-state="on"] {\r\n justify-content: flex-end;\r\n}\r\n\r\n.okToggleSwitch[data-state="on"]:not([data-disabled="true"]) {\r\n background: var(--brand-12, #44bd84);\r\n}\r\n\r\n/* State Off */\r\n.okToggleSwitch[data-state="off"] {\r\n justify-content: flex-start;\r\n}\r\n\r\n.okToggleSwitch[data-state="off"]:not([data-disabled="true"]) {\r\n background: var(--Gray-2, #d0d7df);\r\n}\r\n');const ne=e.forwardRef(((n,r)=>{const{className:a,size:i=1,label:o,disabled:l=!1,state:s,...c}=n,d=E(e.createElement("span",{className:t("okToggleSwitchRoot",a,"ok-r-size-"+i),"data-disabled":l||void 0},e.createElement(ee,{className:t("okToggleSwitch"),ref:r,...c,size:i,disabled:l,state:s},e.createElement(L,{className:"okIndicatorIcon",state:s})),e.createElement("span",{className:t("okToggleSwitchLabel")},o)));return e.createElement(d,{...n})}));ne.displayName="ToggleSwitch";const re=e.forwardRef(((r,t)=>{const[a,i]=e.useState(r.minimumValue??0n),{device:o,workQueue:l}=e.useContext(y),{maximumValue:s,minimumValue:c,fpEndpoint:d,...f}=r,u=e.useMemo((()=>void 0!==c?function(e,n,r){let t;t=e<r?r:e>n?n:e;return t}(c,s,0n):0n),[c,s]),p=e.useMemo((()=>h(s)),[s]),g=(1n<<BigInt(p))-1n<<BigInt(d.bitOffset),m=e.useCallback((async e=>{await l.Post((async()=>{let r=await e.getWireInValue(d.epAddress),t=0xffffffffn&g,a=(BigInt(r)&t)>>BigInt(d.bitOffset);if(g>0xffffffffn){let i=32n-BigInt(d.bitOffset),o=g>>32n;for(let l=d.epAddress+1;l<=n.WIREIN_ADDRESS_RANGE.Maximum&&o>0n;l++)r=await e.getWireInValue(l),t=0xffffffffn&o,a|=(BigInt(r)&t)<<i,i+=32n,o>>=32n}i(a)}))}),[d,g]);e.useEffect((()=>{m(o)}),[o,m]);const x=e.useCallback((async e=>{await l.Post((async()=>{let r=0xffffffffn&g,t=Number(e<<BigInt(d.bitOffset)&r);if(await o.setWireInValue(d.epAddress,t,Number(r)),g>0xffffffffn){let a=32n-BigInt(d.bitOffset),i=g>>32n;for(let l=d.epAddress+1;l<=n.WIREIN_ADDRESS_RANGE.Maximum&&i>0n;l++)r=0xffffffffn&i,t=Number(e>>a&r),await o.setWireInValue(l,t,Number(r)),a+=32n,i>>=32n}await o.updateWireIns()})),m(o)}),[o,l,d,g,m]);return e.createElement(V,{...f,ref:t,maximumValue:s,minimumValue:u,value:a,onValueChange:x})}));re.displayName="FrontPanelNumberEntry";b("");const te=e.forwardRef(((r,t)=>{const[a,i]=e.useState(0n),{device:o,workQueue:l,eventSource:s}=e.useContext(y),{maximumValue:c,fpEndpoint:d,...f}=r,u=e.useMemo((()=>h(c)),[c]),p=(1n<<BigInt(u))-1n<<BigInt(d.bitOffset),g=e.useCallback((async e=>{await l.Post((async()=>{let r=await e.getWireOutValue(d.epAddress),t=0xffffffffn&p,a=(BigInt(r)&t)>>BigInt(d.bitOffset);if(p>0xffffffffn){let i=32n-BigInt(d.bitOffset),o=p>>32n;for(let l=d.epAddress+1;l<=n.WIREOUT_ADDRESS_RANGE.Maximum&&o>0n;l++)r=await e.getWireOutValue(l),t=0xffffffffn&o,a|=(BigInt(r)&t)<<i,i+=32n,o>>=32n}i(a)}))}),[d,p]);return e.useEffect((()=>{g(o);const e=s?.WireOutValuesChangedEvent.SubscribeAsync(g);return()=>{e?.Cancel()}}),[o,s,g]),e.createElement(A,{...f,ref:t,maximumValue:c,minimumValue:0n,value:a})}));te.displayName="FrontPanelNumberDisplay";const ae=e.forwardRef(((n,r)=>{const[t,a]=e.useState(!1),{device:i,workQueue:o,eventSource:l}=e.useContext(y),{fpEndpoint:s,...c}=n,d=1<<s.bitOffset,f=e.useCallback((async e=>{await o.Post((async()=>{const n=await e.getWireOutValue(s.epAddress);a((n&d)===d)}))}),[s,d]);return e.useEffect((()=>{f(i);const e=l?.WireOutValuesChangedEvent.SubscribeAsync(f);return()=>{e?.Cancel()}}),[i,l,f]),e.createElement(R,{...c,ref:r,state:t})}));ae.displayName="FrontPanelIndicator";const ie=e.forwardRef(((n,r)=>{const{device:t,workQueue:a}=e.useContext(y),{fpEndpoint:i,...o}=n,l=1<<i.bitOffset,s=e.useCallback((async()=>{await a.Post((async()=>{await t.setWireInValue(i.epAddress,0,l),await t.updateWireIns()}))}),[t,i,l,a]),c=e.useCallback((async()=>{await a.Post((async()=>{await t.setWireInValue(i.epAddress,4294967295,l),await t.updateWireIns()}))}),[t,i,l,a]);return e.createElement(k,{...o,ref:r,onButtonUp:s,onButtonDown:c})}));ie.displayName="FrontPanelPushButton";const oe=e.forwardRef(((n,r)=>{const[t,a]=e.useState(exports.ToggleState.Off),{device:i,workQueue:o}=e.useContext(y),{fpEndpoint:l,...s}=n,c=1<<l.bitOffset,d=e.useCallback((async e=>{await o.Post((async()=>{const n=(await e.getWireInValue(l.epAddress)&c)===c?exports.ToggleState.On:exports.ToggleState.Off;a(n)}))}),[l,c]),f=e.useCallback((async e=>{await o.Post((async()=>{const n=e===exports.ToggleState.On?4294967295:0;await i.setWireInValue(l.epAddress,n,c),await i.updateWireIns()})),d(i)}),[i,l,c,o]);return e.useEffect((()=>{d(i)}),[i,d]),e.createElement(ne,{ref:r,...s,state:t,onToggleStateChanged:f})}));oe.displayName="FrontPanelToggleSwitch";b("");const le=e.forwardRef(((n,r)=>{const{device:t,workQueue:a}=e.useContext(y),{fpEndpoint:i,...o}=n,l=e.useCallback((async()=>{await a.Post((async()=>{await t.activateTriggerIn(i.epAddress,i.bitOffset)}))}),[t,i]);return e.createElement(k,{...o,ref:r,onButtonDown:l})}));le.displayName="FrontPanelTriggerButton";const se=e.forwardRef(((n,r)=>{const[t,a]=e.useState(0n),{device:i,workQueue:o}=e.useContext(y),{fpEndpoint:l,maximumValue:s,...c}=n,d=e.useMemo((()=>h(BigInt(s))),[s]),f=(1n<<BigInt(d))-1n<<BigInt(l.bitOffset),u=e.useCallback((async e=>{await o.Post((async()=>{const n=await e.getWireInValue(l.epAddress),r=(BigInt(n)&f)>>BigInt(l.bitOffset);a(r)}))}),[l,f]),p=e.useCallback((e=>{o.Post((async()=>{await i.setWireInValue(l.epAddress,e<<l.bitOffset,Number(f)),await i.updateWireIns()}))}),[i,l,o,f]);return e.useEffect((()=>{u(i)}),[i,u]),e.createElement(W,{...c,ref:r,defaultValue:Number(t),maximumValue:s,onValueChange:p})}));se.displayName="FrontPanelRangeSlider";const ce=r=>{const[t,a]=e.useState(0n),{device:i,workQueue:o}=e.useContext(y),{fpEndpoint:l,maximumValue:s,...c}=r,d=e.useMemo((()=>h(s)),[s]),f=(1n<<BigInt(d))-1n<<BigInt(l.bitOffset),u=e.useCallback((async e=>{await o.Post((async()=>{let r=await e.getWireInValue(l.epAddress),t=0xffffffffn&f,i=(BigInt(r)&t)>>BigInt(l.bitOffset);if(f>0xffffffffn){let a=32n-BigInt(l.bitOffset),o=f>>32n;for(let s=l.epAddress+1;s<=n.WIREIN_ADDRESS_RANGE.Maximum&&o>0n;s++)r=await e.getWireInValue(s),t=0xffffffffn&o,i|=(BigInt(r)&t)<<a,a+=32n,o>>=32n}a(i)}))}),[l,f]),p=e.useCallback((e=>{const n=BigInt(e);o.Post((async()=>{let e=0xffffffffn&f,r=Number(n<<BigInt(l.bitOffset)&e);if(await i.setWireInValue(l.epAddress,r,Number(e)),f>0xffffffffn){let t=32n-BigInt(l.bitOffset),a=f>>32n;const o=32-l.epAddress;for(let s=1;s<o&&a>0n;s++)e=0xffffffffn&a,r=Number(n>>t&e),await i.setWireInValue(l.epAddress+s,r,Number(e)),t+=32n,a>>=32n}await i.updateWireIns()})),u(i)}),[i,l,o,u]);return e.useEffect((()=>{u(i)}),[i,u]),e.createElement($.Root,{...c,value:t.toString(),onValueChange:p})};ce.displayName="FrontPanelSelectEntryRoot";const de=Object.assign({},{Root:ce,Trigger:H,Content:Q,Item:Y,Group:X,Label:Z,Separator:q});exports.Application=S,exports.Button=k,exports.CalculateBitLength=h,exports.FrontPanel=x,exports.FrontPanelContext=y,exports.FrontPanelIndicator=ae,exports.FrontPanelNumberDisplay=te,exports.FrontPanelNumberEntry=re,exports.FrontPanelPushButton=ie,exports.FrontPanelRangeSlider=se,exports.FrontPanelSelectEntry=de,exports.FrontPanelSelectEntryRoot=ce,exports.FrontPanelToggleSwitch=oe,exports.FrontPanelTriggerButton=le,exports.Indicator=R,exports.Label=O,exports.NumberDisplay=A,exports.NumberEntry=V,exports.NumericDigits=m,exports.RangeSlider=W,exports.SelectEntry=$,exports.SelectEntryContent=Q,exports.SelectEntryGroup=X,exports.SelectEntryItem=Y,exports.SelectEntryLabel=Z,exports.SelectEntryRoot=K,exports.SelectEntrySeparator=q,exports.SelectEntryTrigger=H,exports.Toggle=ee,exports.ToggleSwitch=ne,exports.Tooltip=w;
|
1
|
+
"use strict";var e=require("react"),n=require("@radix-ui/react-tooltip"),r=require("classnames"),t=require("@radix-ui/react-slider"),o=require("@radix-ui/react-select"),i=require("@radix-ui/react-scroll-area");function a(e){var n=Object.create(null);return e&&Object.keys(e).forEach((function(r){if("default"!==r){var t=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(n,r,t.get?t:{enumerable:!0,get:function(){return e[r]}})}})),n.default=e,Object.freeze(n)}var l,s,c=a(e),u=a(n),d=a(t),f=a(o),p=a(i);exports.NumeralSystem=void 0,(l=exports.NumeralSystem||(exports.NumeralSystem={}))[l.Binary=2]="Binary",l[l.Octal=8]="Octal",l[l.Decimal=10]="Decimal",l[l.Hexadecimal=16]="Hexadecimal",exports.ToggleState=void 0,(s=exports.ToggleState||(exports.ToggleState={}))[s.Off=0]="Off",s[s.On=1]="On";class m{get DigitCount(){return this._DigitCount}get NumeralSystem(){return this._NumeralSystem}get DigitChars(){return this._DigitChars}constructor(e,n){this._DigitCount=e,this._NumeralSystem=n,this._DigitChars=m.GetDigitChars(n)}GetDigitFromValue(e){let n=e%this._NumeralSystem;return n<0&&(n+=this._NumeralSystem),n.toString(this._NumeralSystem)}static GetDigitChars(e){let n;switch(e){case exports.NumeralSystem.Binary:n=m.BINARY_DIGITVALUES;break;case exports.NumeralSystem.Octal:n=m.OCTAL_DIGITVALUES;break;case exports.NumeralSystem.Decimal:n=m.DECIMAL_DIGITVALUES;break;case exports.NumeralSystem.Hexadecimal:n=m.HEXADECIMAL_DIGITVALUES;break;default:n=[]}return n}static ComputeDigitCountFromBits(e,n){const r=(1n<<BigInt(e))-1n;return this.ComputeDigitCountFromValue(r,n)}static ComputeDigitCountFromValue(e,n){const r=BigInt(n);let t,o=e;for(t=0n;t<m.MAX_DIGITS&&0n!==o;t++)o/=r;return t>0n?t:1n}}function g(e){let n=0;if(e>0n){let r=e;for(;r>0n;)r>>=1n,n++}else 0n===e&&(n=1);return n}m.MAX_DIGITS=1024,m.BINARY_DIGITVALUES=["0","1"],m.OCTAL_DIGITVALUES=["0","1","2","3","4","5","6","7"],m.DECIMAL_DIGITVALUES=[...m.OCTAL_DIGITVALUES,"8","9"],m.HEXADECIMAL_DIGITVALUES=[...m.DECIMAL_DIGITVALUES,"A","B","C","D","E","F"];const h=e.createContext({}),y=n=>{const{device:r,workQueue:t,eventSource:o}=n;return e.createElement(h.Provider,{value:{device:r,workQueue:t,eventSource:o}},n.children)};function b(e,n){void 0===n&&(n={});var r=n.insertAt;if(e&&"undefined"!=typeof document){var t=document.head||document.getElementsByTagName("head")[0],o=document.createElement("style");o.type="text/css","top"===r&&t.firstChild?t.insertBefore(o,t.firstChild):t.appendChild(o),o.styleSheet?o.styleSheet.cssText=e:o.appendChild(document.createTextNode(e))}}y.displayName="FrontPanel";b("");const x=c.forwardRef(((e,n)=>c.createElement(u.Provider,null,e.children)));x.displayName="Application";b('/**\r\n * Copyright (c) 2024 Opal Kelly Incorporated\r\n *\r\n * This source code is licensed under the FrontPanel license.\r\n * See the LICENSE file found in the root directory of this project.\r\n */\r\n\r\n@font-face {\r\n font-family: "Inter";\r\n src: url("./fonts/Inter-VariableFont_slnt\\,wght.ttf") format("truetype");\r\n}\r\n');b('/**\r\n * Copyright (c) 2024 Opal Kelly Incorporated\r\n *\r\n * This source code is licensed under the FrontPanel license.\r\n * See the LICENSE file found in the root directory of this project.\r\n */\r\n\r\n.okButton {\r\n /* Layout */\r\n display: inline-flex;\r\n padding: var(--button-padding, 6px 12px);\r\n justify-content: center;\r\n align-items: center;\r\n gap: 8px;\r\n\r\n /* Style */\r\n border-width: 0px;\r\n border-radius: 4px;\r\n background: var(--brand-12, #44bd84);\r\n\r\n /* Typography */\r\n color: var(--Base-White, #fff);\r\n text-align: center;\r\n font-family: Inter, "Nunito Sans", sans-serif, ui-sans-serif;\r\n font-size: var(--button-font-size, 12px);\r\n font-style: normal;\r\n font-weight: 600;\r\n line-height: var(--button-line-height, 12px); /* 100% */\r\n\r\n /* State Pressed */\r\n &:is(:active) {\r\n background: #329466;\r\n }\r\n\r\n /* State Disabled */\r\n &:is(:disabled) {\r\n background: var(--Gray-2, #d0d7df);\r\n }\r\n\r\n /* Size 1 */\r\n &:where(.ok-r-size-1) {\r\n --button-padding: 6px 12px;\r\n --button-font-size: 12px;\r\n --button-line-height: 12px;\r\n }\r\n\r\n /* Sizes 2*/\r\n &:where(.ok-r-size-2) {\r\n --button-padding: 10px 18px;\r\n --button-font-size: 14px;\r\n --button-line-height: 14px;\r\n }\r\n\r\n /* Sizes 3*/\r\n &:where(.ok-r-size-3) {\r\n --button-padding: 18px 22px;\r\n --button-font-size: 20px;\r\n --button-line-height: 20px;\r\n }\r\n}\r\n');b('/**\r\n * Copyright (c) 2024 Opal Kelly Incorporated\r\n *\r\n * This source code is licensed under the FrontPanel license.\r\n * See the LICENSE file found in the root directory of this project.\r\n */\r\n\r\n.okTooltipContent {\r\n /* Layout */\r\n display: flex;\r\n padding: 10px;\r\n align-items: flex-end;\r\n\r\n /* Style */\r\n border-radius: 4px;\r\n background: var(--Dark, #343434);\r\n\r\n /* Drop shadow - tiny */\r\n box-shadow: 0px 1px 4px 0px rgba(0, 0, 0, 0.24);\r\n\r\n user-select: none;\r\n animation-duration: 200ms;\r\n animation-timing-function: cubic-bezier(0.16, 1, 0.3, 1);\r\n will-change: transform, opacity;\r\n}\r\n\r\n.okTooltipContent[data-state="delayed-open"][data-side="top"] {\r\n animation-name: slideDownAndFade;\r\n}\r\n.okTooltipContent[data-state="delayed-open"][data-side="right"] {\r\n animation-name: slideLeftAndFade;\r\n}\r\n.okTooltipContent[data-state="delayed-open"][data-side="bottom"] {\r\n animation-name: slideUpAndFade;\r\n}\r\n.okTooltipContent[data-state="delayed-open"][data-side="left"] {\r\n animation-name: slideRightAndFade;\r\n}\r\n\r\n.okTooltipText {\r\n /* Typography */\r\n color: var(--Light, #fff);\r\n text-align: center;\r\n font-family: Inter, "Nunito Sans", sans-serif, ui-sans-serif;\r\n font-size: 12px;\r\n font-style: normal;\r\n font-weight: 400;\r\n line-height: 12px; /* 100% */\r\n}\r\n\r\n@keyframes slideUpAndFade {\r\n from {\r\n opacity: 0;\r\n transform: translateY(2px);\r\n }\r\n to {\r\n opacity: 1;\r\n transform: translateY(0);\r\n }\r\n}\r\n\r\n@keyframes slideRightAndFade {\r\n from {\r\n opacity: 0;\r\n transform: translateX(-2px);\r\n }\r\n to {\r\n opacity: 1;\r\n transform: translateX(0);\r\n }\r\n}\r\n\r\n@keyframes slideDownAndFade {\r\n from {\r\n opacity: 0;\r\n transform: translateY(-2px);\r\n }\r\n to {\r\n opacity: 1;\r\n transform: translateY(0);\r\n }\r\n}\r\n\r\n@keyframes slideLeftAndFade {\r\n from {\r\n opacity: 0;\r\n transform: translateX(2px);\r\n }\r\n to {\r\n opacity: 1;\r\n transform: translateX(0);\r\n }\r\n}\r\n');const v=e.forwardRef(((n,t)=>{const{children:o,className:i,open:a,defaultOpen:l,onOpenChange:s,delayDuration:c,disableHoverableContent:d,content:f,container:p,forceMount:m,...g}=n,h={open:a,defaultOpen:l,onOpenChange:s,delayDuration:c,disableHoverableContent:d};return e.createElement(u.Root,{...h},e.createElement(u.Trigger,{asChild:!0},o),e.createElement(u.Portal,{container:p,forceMount:m},e.createElement(u.Content,{sideOffset:4,collisionPadding:10,...g,ref:t,className:r("okTooltipContent",i)},e.createElement("p",{className:"okTooltipText"},f))))}));function w(n){return function(r){return null!=r.tooltip?e.createElement(v,{content:r.tooltip},n):n}}v.displayName="Tooltip";const S=e.forwardRef(((n,t)=>{const{className:o,label:i,size:a=1,onButtonUp:l,onButtonDown:s,onButtonClick:c,...u}=n,d=w(e.createElement("button",{"data-disabled":u.disabled||void 0,...u,ref:t,className:r("okButton",o,"ok-r-size-"+a),onMouseDown:s,onMouseUp:l,onClick:c},i));return e.createElement(d,{...n})}));S.displayName="Button";var E;b('/**\r\n * Copyright (c) 2024 Opal Kelly Incorporated\r\n *\r\n * This source code is licensed under the FrontPanel license.\r\n * See the LICENSE file found in the root directory of this project.\r\n */\r\n\r\n.okIndicator {\r\n /* Layout */\r\n display: inline-flex;\r\n padding: var(--indicator-padding, 6px 12px);\r\n justify-content: flex-start;\r\n align-items: baseline;\r\n gap: 4px;\r\n\r\n /* Style */\r\n border-radius: 4px;\r\n border: 1px solid var(--Gray-2, #d0d7df);\r\n background: var(--Light, #fff);\r\n\r\n /* Indicator Icon Style */\r\n svg.okIndicatorIcon {\r\n width: var(--indicator-icon-width, 9px);\r\n height: var(--indicator-icon-height, 9px);\r\n }\r\n\r\n /* Label Style */\r\n .okIndicatorLabel {\r\n /* Typography */\r\n color: var(--Dark, #343434);\r\n text-align: center;\r\n /* TODO: Determine how to get Inter font */\r\n font-family: Inter, "Nunito Sans", sans-serif, ui-sans-serif;\r\n font-size: var(--indicator-font-size, 12px);\r\n font-style: normal;\r\n font-weight: 500;\r\n line-height: var(--indicator-line-height, 12px); /* 100% */\r\n }\r\n\r\n /* Size 1 */\r\n &:where(.ok-r-size-1) {\r\n --indicator-padding: 6px 12px;\r\n --indicator-font-size: 12px;\r\n --indicator-line-height: 12px;\r\n --indicator-icon-width: 9px;\r\n --indicator-icon-height: 9px;\r\n }\r\n\r\n /* Sizes 2 */\r\n &:where(.ok-r-size-2) {\r\n --indicator-padding: 10px 18px;\r\n --indicator-font-size: 14px;\r\n --indicator-line-height: 14px;\r\n --indicator-icon-width: 10px;\r\n --indicator-icon-height: 10px;\r\n }\r\n\r\n /* Sizes 3 */\r\n &:where(.ok-r-size-3) {\r\n --indicator-padding: 18px 22px;\r\n --indicator-font-size: 20px;\r\n --indicator-line-height: 20px;\r\n --indicator-icon-width: 15px;\r\n --indicator-icon-height: 15px;\r\n }\r\n}\r\n'),function(e){e[e.Up=0]="Up",e[e.Down=1]="Down"}(E||(E={}));const k=c.forwardRef(((e,n)=>{const{direction:r=E.Down,color:t="#343434",...o}=e;return c.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:"12",height:"8",viewBox:"0 0 12 8",fill:"none",...o,ref:n},((e,n)=>{let r;return e===E.Up||E.Down,r=c.createElement("path",{d:"M6.75593 7.12713C6.35716 7.58759 5.64284 7.58759 5.24407 7.12713L2.23682 3.65465C1.67594 3.00701 2.136 2 2.99275 2L9.00725 2C9.864 2 10.3241 3.00701 9.76318 3.65465L6.75593 7.12713Z",fill:n}),r})(r,t))}));var I;k.displayName="ChevronIcon",function(e){e[e.Up=0]="Up",e[e.Down=1]="Down"}(I||(I={}));const _=c.forwardRef(((e,n)=>{const{direction:r=I.Down,color:t="#343434",...o}=e;return c.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:"10",height:"4",viewBox:"0 0 10 4",fill:"none",...o,ref:n},((e,n)=>{let r;switch(e){case I.Up:r=c.createElement("path",{d:"M5 5.1656e-07L10 4L0 4L5 5.1656e-07Z",fill:n});break;case I.Down:r=c.createElement("path",{d:"M5 4L0 0L10 8.88334e-07L5 4Z",fill:n});break;default:r=c.createElement("path",{d:"M5 5.1656e-07L10 4L0 4L5 5.1656e-07Z",fill:n})}return r})(r,t))}));_.displayName="IndicatorArrowIcon";const C=c.forwardRef(((e,n)=>{const{color:r="#343434",...t}=e;return c.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:"10",height:"1",viewBox:"0 0 10 1",fill:"none",...t,ref:n},c.createElement("path",{d:"M8.74228e-08 -8.74228e-07L10 -9.53674e-07L10 1L0 0.999999L8.74228e-08 -8.74228e-07Z",fill:r}))}));C.displayName="IndicatorBarIcon";const N=c.forwardRef(((e,n)=>{const{state:r,color:t="#D0D7DF",colorOnState:o="#44BD84",colorOffState:i="#D0D7DF"}=e;return c.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:"10",height:"10",viewBox:"0 0 10 10",fill:"none",...e,ref:n},((e,n,r,t)=>{let o;switch(e){case exports.ToggleState.On:o=c.createElement("path",{d:"M5 10C7.76142 10 10 7.76142 10 5C10 2.23858 7.76142 0 5 0C2.23858 0 0 2.23858 0 5C0 7.76142 2.23858 10 5 10Z",fill:r});break;case exports.ToggleState.Off:o=c.createElement("path",{d:"M5 10C7.76142 10 10 7.76142 10 5C10 2.23858 7.76142 0 5 0C2.23858 0 0 2.23858 0 5C0 7.76142 2.23858 10 5 10Z",fill:t});break;default:o=c.createElement("path",{d:"M5 10C7.76142 10 10 7.76142 10 5C10 2.23858 7.76142 0 5 0C2.23858 0 0 2.23858 0 5C0 7.76142 2.23858 10 5 10Z",fill:n})}return o})(r,t,o,i))}));N.displayName="IndicatorStateIcon";const T=c.forwardRef(((e,n)=>{const{state:r,color:t="#343434",colorOnState:o="#44BD84",...i}=e;return c.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:"14",height:"14",viewBox:"0 0 14 14",fill:"none",...i,ref:n},((e,n,r)=>{let t;switch(e){case exports.ToggleState.On:t=c.createElement(c.Fragment,null,c.createElement("circle",{cx:"7",cy:"7",r:"6",stroke:n,strokeWidth:"2"}),c.createElement("circle",{cx:"7",cy:"7",r:"3",fill:r}));break;case exports.ToggleState.Off:default:t=c.createElement("circle",{cx:"7",cy:"7",r:"6",stroke:n,strokeWidth:"2"})}return t})(r,t,o))}));T.displayName="RadioToggleStateIcon";const O=c.forwardRef(((e,n)=>{const{state:r,color:t="white",colorOnState:o="white",colorOffState:i="white",...a}=e;return c.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:"8",height:"8",viewBox:"0 0 8 8",fill:"none",...a,ref:n},((e,n,r,t)=>{let o;switch(e){case exports.ToggleState.On:o=c.createElement("circle",{cx:"4",cy:"4",r:"3.75",fill:r});break;case exports.ToggleState.Off:o=c.createElement("circle",{cx:"4",cy:"4",r:"3.75",fill:t});break;default:o=c.createElement("circle",{cx:"4",cy:"4",r:"3.75",fill:n})}return o})(r,t,o,i))}));O.displayName="SwitchToggleStateIcon";const D=e.forwardRef(((n,t)=>{const{className:o,label:i,size:a=1,state:l,...s}=n,c=w(e.createElement("span",{...s,ref:t,className:r("okIndicator",o,"ok-r-size-"+a)},e.createElement(N,{className:"okIndicatorIcon",state:l?exports.ToggleState.On:exports.ToggleState.Off}),e.createElement("span",{className:r("okIndicatorLabel")},i)));return e.createElement(c,{...n})}));D.displayName="Indicator";b('/**\r\n * Copyright (c) 2024 Opal Kelly Incorporated\r\n *\r\n * This source code is licensed under the FrontPanel license.\r\n * See the LICENSE file found in the root directory of this project.\r\n */\r\n\r\n.okLabel {\r\n /* Layout */\r\n display: inline-flex;\r\n flex-direction: column;\r\n align-items: flex-start;\r\n gap: 4px;\r\n\r\n /* Text Style */\r\n .okLabelText {\r\n /* Typography */\r\n color: var(--Dark, #343434);\r\n font-family: Inter, "Nunito Sans", sans-serif, ui-sans-serif;\r\n font-size: 12px;\r\n font-style: normal;\r\n font-weight: 400;\r\n line-height: 12px; /* 100% */\r\n }\r\n\r\n /* Label Position Left Top*/\r\n &:where(.ok-pos-left-top) {\r\n flex-direction: column;\r\n align-items: flex-start;\r\n }\r\n\r\n /* Label Position Left Bottom*/\r\n &:where(.ok-pos-left-bottom) {\r\n flex-direction: column-reverse;\r\n align-items: flex-start;\r\n }\r\n\r\n /* Label Position Right Top*/\r\n &:where(.ok-pos-right-top) {\r\n flex-direction: column;\r\n align-items: flex-end;\r\n }\r\n\r\n /* Label Position Right Bottom*/\r\n &:where(.ok-pos-right-bottom) {\r\n flex-direction: column-reverse;\r\n align-items: flex-end;\r\n }\r\n}\r\n');const z=e.forwardRef(((n,t)=>{const{className:o,text:i,horizontalPosition:a="left",verticalPosition:l="top",children:s,...c}=n;return e.createElement("div",{...c,ref:t,className:r("okLabel",o,"ok-pos-"+a+"-"+l)},e.createElement("span",{className:r("okLabelText")},i),s)}));z.displayName="Label";b("/**\r\n * Copyright (c) 2024 Opal Kelly Incorporated\r\n *\r\n * This source code is licensed under the FrontPanel license.\r\n * See the LICENSE file found in the root directory of this project.\r\n */\r\n\r\n.okNumberDisplay {\r\n /* Layout */\r\n display: flex;\r\n padding: var(--number-display-padding, 6px 12px);\r\n justify-content: flex-end;\r\n align-items: center;\r\n gap: 4px;\r\n\r\n /* Style */\r\n border-radius: 4px;\r\n border: 1px solid var(--Gray-2, #d0d7df);\r\n background: #f5f5f5;\r\n\r\n /* Content Style */\r\n .okNumberDisplayContent {\r\n display: flex;\r\n padding: var(--spacing-0, 0px);\r\n align-items: center;\r\n justify-content: flex-end;\r\n gap: 8px;\r\n flex: 1 0 0;\r\n }\r\n\r\n /* Text Style */\r\n .okNumberDisplayText {\r\n /* Typography */\r\n color: var(--Dark, #343434);\r\n text-align: center;\r\n font-family: Monaco;\r\n font-size: var(--number-display-font-size, 12px);\r\n font-style: normal;\r\n font-weight: 400;\r\n line-height: var(--number-display-line-height, 12px); /* 100% */\r\n }\r\n\r\n /* Size 1 */\r\n &:where(.ok-r-size-1) {\r\n --number-display-padding: 6px 6px;\r\n --number-display-font-size: 12px;\r\n --number-display-line-height: 12px;\r\n }\r\n\r\n /* Sizes 2 */\r\n &:where(.ok-r-size-2) {\r\n --number-display-padding: 6px 10px;\r\n --number-display-font-size: 14px;\r\n --number-display-line-height: 14px;\r\n }\r\n\r\n /* Sizes 3 */\r\n &:where(.ok-r-size-3) {\r\n --number-display-padding: 6px 18px;\r\n --number-display-font-size: 20px;\r\n --number-display-line-height: 20px;\r\n }\r\n}\r\n");const P=e.forwardRef(((n,t)=>{const{className:o,label:i,size:a=1,numeralSystem:l=exports.NumeralSystem.Decimal,decimalScale:s=0,maximumValue:c,minimumValue:u,value:d}=n,f=e.useMemo((()=>{const e=m.ComputeDigitCountFromValue(c,l),n=m.ComputeDigitCountFromValue(u,l);return e>n?e:n}),[c,u,l]),p=e.useMemo((()=>e.createElement("span",{className:r("okNumberDisplayText","ok-r-size-"+a)},"-")),[a]),g=w(e.createElement("div",{ref:t,className:r("okNumberDisplay",o,"ok-r-size-"+a)},e.createElement("div",{className:"okNumberDisplayContent"},d<0n&&p,e.createElement("span",{className:"okNumberDisplayText"},function(e,n,r,t){let o;if(null!=e){const i=e>=0n?e:-e,a=Number(n),l=i.toString(r).padStart(a,"0");if(r===exports.NumeralSystem.Decimal&&t>0){const e=a-t;if(e>0)o=l.slice(0,e)+"."+l.slice(e);else{const n="0.";o=n.padEnd(n.length-e,"0")+l}}else o=l}else o="Error";return o}(d,f,l,s)))));if(null!=i)return e.createElement(z,{...i},e.createElement("div",{style:{width:"100%"}},e.createElement(g,{...n})));e.createElement(g,{...n})}));P.displayName="NumberDisplay";b('/**\r\n * Copyright (c) 2024 Opal Kelly Incorporated\r\n *\r\n * This source code is licensed under the FrontPanel license.\r\n * See the LICENSE file found in the root directory of this project.\r\n */\r\n\r\n.okNumberEntry {\r\n /* Layout */\r\n display: flex;\r\n padding: var(--number-entry-padding, 6px);\r\n justify-content: flex-end;\r\n align-items: center;\r\n\r\n /* Style */\r\n border-radius: 4px;\r\n border: 1px solid var(--brand-12, #44bd84);\r\n background: var(--Light, #fff);\r\n\r\n /* Content Style */\r\n .okNumberEntryContent {\r\n display: flex;\r\n height: auto; /*32px;*/\r\n justify-content: flex-end;\r\n align-items: center;\r\n gap: var(--spacing-0, 0px);\r\n align-self: stretch;\r\n }\r\n\r\n /* Text Style */\r\n .okNumberEntryText {\r\n /* Typography */\r\n color: var(--Dark, #343434);\r\n text-align: center;\r\n font-family: Monaco;\r\n font-size: var(--number-entry-font-size, 12px);\r\n font-style: normal;\r\n font-weight: 400;\r\n line-height: var(--number-entry-line-height, 12px); /* 100% */\r\n letter-spacing: 1.26px;\r\n }\r\n\r\n /* Size 1 */\r\n &:where(.ok-r-size-1) {\r\n --number-entry-padding: 1px 6px;\r\n --number-entry-font-size: 12px;\r\n --number-entry-line-height: 12px;\r\n }\r\n\r\n /* Sizes 2 */\r\n &:where(.ok-r-size-2) {\r\n --number-entry-padding: 1px 10px;\r\n --number-entry-font-size: 14px;\r\n --number-entry-line-height: 14px;\r\n }\r\n\r\n /* Sizes 3 */\r\n &:where(.ok-r-size-3) {\r\n --number-entry-padding: 1px 18px;\r\n --number-entry-font-size: 20px;\r\n --number-entry-line-height: 20px;\r\n }\r\n}\r\n\r\n.okNumberEntry[data-disabled="true"] {\r\n border: 1px solid var(--Gray-2, #d0d7df);\r\n opacity: 0.5;\r\n background: var(--Gray-3, #e7ebef);\r\n\r\n pointer-events: none;\r\n}\r\n');b('/**\r\n * Copyright (c) 2024 Opal Kelly Incorporated\r\n *\r\n * This source code is licensed under the FrontPanel license.\r\n * See the LICENSE file found in the root directory of this project.\r\n */\r\n\r\n.okDigitEntry {\r\n /* Layout */\r\n display: inline-flex;\r\n flex-direction: column;\r\n justify-content: center;\r\n align-items: center;\r\n gap: 1px;\r\n\r\n /* Content Style */\r\n .okDigitEntryContent {\r\n /* Layout */\r\n display: flex;\r\n padding: var(--spacing-xxs, 2px);\r\n flex-direction: column;\r\n justify-content: center;\r\n align-items: center;\r\n\r\n /* Style */\r\n border-radius: 1px;\r\n\r\n /* Typography */\r\n color: var(--Dark, #343434);\r\n text-align: center;\r\n font-family: Monaco;\r\n font-size: var(--digit-font-size, 12px);\r\n font-style: normal;\r\n font-weight: 400;\r\n line-height: var(--digit-line-height, 12px); /* 200% */\r\n letter-spacing: 1.26px;\r\n text-transform: uppercase;\r\n }\r\n\r\n /* Increment Indicator Style */\r\n .okDigitEntryIncrementIndicator {\r\n visibility: hidden;\r\n }\r\n\r\n /* Decrement Indicator Style */\r\n .okDigitEntryDecrementIndicator {\r\n visibility: hidden;\r\n }\r\n\r\n /* Size 1 */\r\n &:where(.ok-r-size-1) {\r\n --digit-font-size: 12px;\r\n --digit-line-height: 12px;\r\n }\r\n\r\n /* Sizes 2 */\r\n &:where(.ok-r-size-2) {\r\n --digit-font-size: 14px;\r\n --digit-line-height: 14px;\r\n }\r\n\r\n /* Sizes 3 */\r\n &:where(.ok-r-size-3) {\r\n --digit-font-size: 20px;\r\n --digit-line-height: 20px;\r\n }\r\n}\r\n\r\ndiv.okDigitEntry:focus {\r\n /* Layout */\r\n display: inline-flex;\r\n flex-direction: column;\r\n justify-content: center;\r\n align-items: center;\r\n gap: 1px;\r\n\r\n /* Style */\r\n outline: none;\r\n overscroll-behavior: none;\r\n\r\n /* Content Style */\r\n .okDigitEntryContent {\r\n /* Layout */\r\n display: flex;\r\n padding: var(--spacing-xxs, 2px);\r\n flex-direction: column;\r\n justify-content: center;\r\n align-items: center;\r\n\r\n /* Style */\r\n border-radius: 1px;\r\n background: var(--brand-12, #44bd84);\r\n\r\n /* Typography */\r\n color: var(--Light, #fff);\r\n text-align: center;\r\n font-family: Monaco;\r\n font-size: var(--digit-font-size, 12px);\r\n font-style: normal;\r\n font-weight: 400;\r\n line-height: var(--digit-line-height, 12px); /* 200% */\r\n letter-spacing: 1.26px;\r\n }\r\n\r\n .okDigitEntryIncrementIndicator {\r\n visibility: visible;\r\n }\r\n\r\n .okDigitEntryDecrementIndicator {\r\n visibility: visible;\r\n }\r\n\r\n .okDigitEntryIncrementIndicator[data-enabled="false"] {\r\n opacity: 0.25;\r\n }\r\n\r\n .okDigitEntryDecrementIndicator[data-enabled="false"] {\r\n opacity: 0.25;\r\n }\r\n}\r\n');const L=n=>{const t=e.useRef(null),{className:o,variant:i="standard",size:a=1,value:l,maximum:s,minimum:c,numeralSystem:u=exports.NumeralSystem.Decimal,onValueChanged:d}=n,f=e.useRef(l);f.current=n.value;const p=e.useRef(d);p.current=d;e.useEffect((()=>{const e=e=>{e.deltaY<0?(p.current?.(f.current+1,!1),e.stopPropagation(),e.preventDefault()):e.deltaY>0&&(p.current?.(f.current-1,!1),e.stopPropagation(),e.preventDefault())};return t.current?.addEventListener("wheel",e,{passive:!1}),()=>{t.current?.removeEventListener("wheel",e)}}),[t]);const m=null==s||l<s,g=null==c||l>c;return e.createElement("div",{className:r("okDigitEntry",o,"ok-r-size-"+a),ref:t,tabIndex:-1,onMouseEnter:e=>e.currentTarget.focus(),onMouseLeave:e=>e.currentTarget.blur(),onKeyDown:e=>{let n=!1;switch(e.key){case"ArrowUp":d?.(l+1,!1),n=!0;break;case"ArrowDown":d?.(l-1,!1),n=!0;break;case"ArrowRight":{const r=e.currentTarget.nextElementSibling;r?.focus(),n=!0}break;case"ArrowLeft":{const r=e.currentTarget.previousElementSibling;r?.focus(),n=!0}break;default:n=!1}if(n)e.stopPropagation(),e.preventDefault();else{const n=parseInt(e.key,u);if(!Number.isNaN(n)){d?.(n,!0);const r=e.currentTarget.nextElementSibling;r?.focus()}}}},e.createElement((()=>{let n;switch(i){case"standard":n=e.createElement(_,{className:r("okDigitEntryIncrementIndicator"),direction:I.Up,color:"#343434","data-enabled":m});break;case"compact":n=e.createElement(C,{className:r("okDigitEntryIncrementIndicator"),color:"#343434","data-enabled":m});break;default:n=null}return n}),null),e.createElement("div",{className:r("okDigitEntryContent","ok-r-size-"+a)},Math.abs(l).toString(Number(u))),e.createElement((()=>{let n;switch(i){case"standard":n=e.createElement(_,{className:r("okDigitEntryDecrementIndicator"),direction:I.Down,color:"#343434","data-enabled":g});break;case"compact":n=e.createElement(C,{className:r("okDigitEntryDecrementIndicator"),color:"#343434","data-enabled":g});break;default:n=null}return n}),null))};L.displayName="DigitEntry";const j=n=>{const{variant:t="standard",size:o=1,numeralSystem:i,decimalScale:a=0,digitStates:l,onDigitStatesChange:s}=n;return e.createElement(e.Fragment,null,(()=>{const n=l.map(((n,r)=>e.createElement(L,{key:"digit-"+n.id,variant:t,size:o,numeralSystem:i,value:n.value,maximum:n.maximum,minimum:n.minimum,onValueChanged:(e,n)=>{const t=[...l];t[r]={...l[r],value:e},s?.(t,n)}})));if(i===exports.NumeralSystem.Decimal&&a>0){const t=a-n.length;if(t<0)n.splice(a,0,e.createElement("span",{key:"digit-decimal-point",className:r("okNumberEntryText","ok-r-size-"+o)},"."));else{const i="0.",a=i.padEnd(i.length+t,"0");n.push(e.createElement("span",{key:"digit-decimal-prefix",className:r("okNumberEntryText","ok-r-size-"+o)},a))}}return n.reverse()})())};j.displayName="NumberEntryDigits";const R=e.forwardRef(((n,r)=>{const{label:t,tooltip:o,...i}=n,a=null!=t,l=null!=o;return a&&l?e.createElement(z,{...t},e.createElement(v,{content:o},e.createElement("div",{style:{width:"100%"}},e.createElement(A,{ref:r,...i})))):a?e.createElement(z,{...t},e.createElement("div",{style:{width:"100%"}},e.createElement(A,{ref:r,...i}))):l?e.createElement(v,{content:o},e.createElement("div",null,e.createElement(A,{ref:r,...i}))):e.createElement(A,{ref:r,...i})}));R.displayName="NumberEntry";const A=e.forwardRef(((n,t)=>{const{className:o,variant:i="standard",size:a=1,disabled:l=!1,numeralSystem:s=exports.NumeralSystem.Decimal,decimalScale:c=0,maximumValue:u,minimumValue:d,value:f,onValueChange:p}=n,g=e.useMemo((()=>{const e=m.ComputeDigitCountFromValue(u,s),n=m.ComputeDigitCountFromValue(d,s);return Number(e>n?e:n)}),[u,d,s]),h=BigInt(s),y=V(f,u,d,h,g);return e.createElement("div",{ref:t,className:r("okNumberEntry",o,"ok-r-size-"+a),"data-disabled":l||void 0},e.createElement("div",{className:"okNumberEntryContent"},f<0n&&(n=>e.createElement("span",{className:r("okNumberEntryText","ok-r-size-"+n)},"-"))(a),e.createElement(j,{variant:i,size:a,numeralSystem:s,decimalScale:c,digitStates:y,onDigitStatesChange:(e,n)=>{let r=B(e,h);r>=0n!=f>=0n&&0n!==r&&(r+=2n*-f),r<=u&&r>=d&&p?.(r)}})))}));A.displayName="NumberEntryImpl";const B=(e,n)=>{const r=e.length-1;let t=BigInt(e[r].value);for(let o=r-1;o>=0;o--)t=t*n+BigInt(e[o].value);return t},V=(e,n,r,t,o)=>{const i=[];let a=e,l=n-e,s=r-e;for(let e=0;e<o;e++){const n=Number(a%t),r=Math.floor(Number(l+BigInt(n))),o=Math.ceil(Number(s+BigInt(n)));i[e]={id:e,value:n,maximum:F(r,Number(t)),minimum:F(o,Number(t))},a/=t,l/=t,s/=t}return i},F=(e,n)=>{let r;return r=e>=0?e<n?e:void 0:e>-n?e:void 0,r};b('/**\r\n * Copyright (c) 2024 Opal Kelly Incorporated\r\n *\r\n * This source code is licensed under the FrontPanel license.\r\n * See the LICENSE file found in the root directory of this project.\r\n */\r\n\r\n.okRangeSlider {\r\n --range-slider-thumb-outline-size: 2px;\r\n --range-slider-thumb-border-size: 2px;\r\n --range-slider-thumb-size: 22px;\r\n --range-slider-track-size: 8px;\r\n\r\n /* Layout */\r\n display: flex;\r\n flex-direction: row;\r\n align-items: center;\r\n gap: 4px;\r\n align-self: stretch;\r\n width: 100%;\r\n height: fit-content;\r\n\r\n /* Typography */\r\n color: var(--Dark, #343434);\r\n text-align: right;\r\n font-family: Inter, "Nunito Sans", sans-serif, ui-sans-serif;\r\n font-size: 12px;\r\n font-style: normal;\r\n font-weight: 400;\r\n line-height: 12px; /* 100% */\r\n}\r\n\r\n/* State Disabled */\r\n.okRangeSlider[data-disabled="true"] {\r\n opacity: 0.5;\r\n}\r\n\r\n.okRangeSliderLabel {\r\n width: 100%;\r\n}\r\n\r\n.okRangeSliderRoot {\r\n /* Layout */\r\n position: relative;\r\n display: flex;\r\n align-items: center;\r\n width: 100%;\r\n height: var(--range-slider-thumb-size);\r\n min-width: 100px;\r\n\r\n /* Style */\r\n user-select: none;\r\n touch-action: none;\r\n}\r\n\r\n.okRangeSliderTrack {\r\n /* Layout */\r\n position: relative;\r\n flex-grow: 1;\r\n height: var(--range-slider-track-size);\r\n\r\n /* Style */\r\n background: var(--Gray-2, #d0d7df);\r\n border-radius: 9999px;\r\n}\r\n\r\n.okRangeSliderRange {\r\n /* Layout */\r\n position: absolute;\r\n height: 100%;\r\n\r\n /* Style */\r\n background-color: #44bd84;\r\n border-radius: inherit;\r\n}\r\n\r\n.okRangeSliderThumb {\r\n /* Layout */\r\n display: flex;\r\n flex-direction: column;\r\n align-items: center;\r\n width: calc(\r\n var(--range-slider-thumb-size) -\r\n (2 * (var(--range-slider-thumb-border-size) + var(--range-slider-thumb-outline-size)))\r\n );\r\n height: calc(\r\n var(--range-slider-thumb-size) -\r\n (2 * (var(--range-slider-thumb-border-size) + var(--range-slider-thumb-outline-size)))\r\n );\r\n\r\n /* Style */\r\n background: var(--Base-White, #fff);\r\n border: var(--range-slider-thumb-border-size) solid var(--brand-12, #44bd84);\r\n border-radius: var(--range-slider-thumb-size);\r\n}\r\n\r\n.okRangeSliderThumb:hover {\r\n background-color: #44bd84;\r\n}\r\n\r\n.okRangeSliderThumb:focus {\r\n outline: none;\r\n box-shadow: 0 0 0 var(--range-slider-thumb-outline-size) #d0d7df;\r\n}\r\n\r\n.okRangeSliderThumbLabel {\r\n /* Layout */\r\n position: absolute;\r\n bottom: -14px;\r\n}\r\n');const M=e.forwardRef(((n,r)=>{const{label:t,tooltip:o,...i}=n,a=null!=t,l=null!=o;return a&&l?e.createElement(z,{className:"okRangeSliderLabel",...t},e.createElement(v,{content:o},e.createElement("div",{style:{width:"100%"}},e.createElement(G,{ref:r,...i})))):a?e.createElement(z,{className:"okRangeSliderLabel",...t},e.createElement("div",{style:{width:"100%"}},e.createElement(G,{ref:r,...i}))):l?e.createElement(v,{content:o},e.createElement("div",{style:{width:"100%"}},e.createElement(G,{ref:r,...i}))):e.createElement(G,{ref:r,...i})}));M.displayName="RangeSlider";const G=e.forwardRef(((n,t)=>{const{className:o,tooltip:i,minimumValue:a=0,maximumValue:l=100,onValueChange:s,defaultValue:c=a,value:u,valueStep:f=1,showThumbLabel:p=!0,showTrackLabels:m=!0,disabled:g=!1}=n,h=u??c,[y,b]=e.useState([h]);e.useEffect((()=>{b([h])}),[h]);const x=e.useCallback((e=>{b([e]),s?.(e)}),[s]),w=()=>e.createElement(d.Track,{className:"okRangeSliderTrack"},e.createElement(d.Range,{className:"okRangeSliderRange"})),S=null!=i;return e.createElement("div",{className:r("okRangeSlider",o),"data-disabled":g||void 0},m?e.createElement("span",null,a):null,e.createElement(d.Root,{ref:t,min:a,max:l,step:f,value:y,onValueChange:e=>x(e[0]),orientation:"horizontal",className:"okRangeSliderRoot",disabled:g},S?e.createElement(v,{content:i},e.createElement(w,null)):e.createElement(w,null),e.createElement(d.Thumb,{className:"okRangeSliderThumb"},p?e.createElement("div",{className:"okRangeSliderThumbLabel"},y):null)),m?e.createElement("span",null,l):null)}));G.displayName="RangeSliderImpl";const W=e.createContext({label:{text:"",horizontalPosition:"right",verticalPosition:"top"},size:1,value:void 0}),U=n=>{const{label:r,children:t,size:o=1,tooltip:i,value:a,...l}=n;return e.createElement(f.Root,{value:a,...l},e.createElement(W.Provider,{value:e.useMemo((()=>({label:r,size:o,tooltip:i,value:a})),[r,o,i,a])},t))};U.displayName="SelectEntryRoot";b('/**\r\n * Copyright (c) 2024 Opal Kelly Incorporated\r\n *\r\n * This source code is licensed under the FrontPanel license.\r\n * See the LICENSE file found in the root directory of this project.\r\n */\r\n\r\n.okSelectEntryContent {\r\n /* Layout */\r\n width: var(--radix-select-trigger-width);\r\n max-height: var(--radix-select-content-available-height);\r\n display: flex;\r\n padding: 10px 18px;\r\n flex-direction: column;\r\n overflow: hidden;\r\n justify-content: center;\r\n align-items: stretch;\r\n\r\n /* Style */\r\n border-radius: 4px;\r\n border: 1px solid var(--Gray-2, #d0d7df);\r\n background: var(--Light, #fff);\r\n box-shadow: 0px 1px 4px 0px rgba(0, 0, 0, 0.24);\r\n\r\n .okSelectEntryContentInner {\r\n display: flex;\r\n flex-direction: column;\r\n gap: 10px;\r\n }\r\n\r\n /* ScrollArea Root Style */\r\n .okScrollArea {\r\n display: flex;\r\n flex-direction: column;\r\n overflow: hidden;\r\n width: 100%;\r\n height: 100%;\r\n }\r\n\r\n /* ScrollArea Viewport Style */\r\n .okScrollAreaViewport {\r\n display: flex;\r\n flex-direction: column;\r\n width: 100%;\r\n height: 100%;\r\n gap: 10px;\r\n\r\n /* Stop Chrome back/forward two-finger swipe */\r\n overscroll-behavior-x: contain;\r\n\r\n &:where(:focus-visible) + :where(.rt-ScrollAreaViewportFocusRing) {\r\n position: absolute;\r\n inset: 0;\r\n pointer-events: none;\r\n outline: 2px solid var(--focus-8);\r\n outline-offset: -2px;\r\n }\r\n }\r\n\r\n /* ScrollArea Scrollbar Style */\r\n .okScrollAreaScrollbar {\r\n display: flex;\r\n /* Ensures no selection */\r\n user-select: none;\r\n /* Disable browser handling of all panning and zooming gestures on touch devices */\r\n touch-action: none;\r\n\r\n &:where([data-orientation="vertical"]) {\r\n flex-direction: column;\r\n width: 4px;\r\n }\r\n &:where([data-orientation="horizontal"]) {\r\n flex-direction: row;\r\n height: 4px;\r\n }\r\n }\r\n\r\n /* ScrollArea Thumb Style */\r\n .okScrollAreaThumb {\r\n position: relative;\r\n\r\n &::before {\r\n content: "";\r\n position: absolute;\r\n top: 50%;\r\n left: 50%;\r\n transform: translate(-50%, -50%);\r\n width: 100%;\r\n height: 100%;\r\n min-width: var(--space-4);\r\n min-height: var(--space-4);\r\n }\r\n }\r\n}\r\n');const K=e.forwardRef(((n,t)=>{const{className:o,children:i,container:a,...l}=n,{size:s}=e.useContext(W);return e.createElement(f.Portal,{container:a},e.createElement(f.Content,{sideOffset:4,...l,ref:t,className:r("okSelectEntryContent",o,"ok-r-size-"+s),position:"popper",align:"start"},e.createElement(p.Root,{type:"auto",className:"okScrollArea"},e.createElement(f.Viewport,{asChild:!0},e.createElement(p.Viewport,{className:"okScrollAreaViewport"},e.createElement("div",{className:"okSelectEntryContentInner"},i))),e.createElement(p.Scrollbar,{className:"okScrollAreaScrollbar",orientation:"vertical"},e.createElement(p.Thumb,{className:"okScrollAreaThumb"})))))}));K.displayName="SelectEntryContent";b("/**\r\n * Copyright (c) 2024 Opal Kelly Incorporated\r\n *\r\n * This source code is licensed under the FrontPanel license.\r\n * See the LICENSE file found in the root directory of this project.\r\n */\r\n\r\n.okSelectEntryGroup {\r\n /* Layout */\r\n display: flex;\r\n padding: 0px;\r\n flex-direction: column;\r\n justify-content: center;\r\n align-items: flex-start;\r\n align-self: stretch;\r\n gap: 10px;\r\n}\r\n");const Q=e.forwardRef(((n,t)=>e.createElement(f.Group,{...n,ref:t,className:r("okSelectEntryGroup",n.className)})));Q.displayName="SelectEntryGroup";b('/**\r\n * Copyright (c) 2024 Opal Kelly Incorporated\r\n *\r\n * This source code is licensed under the FrontPanel license.\r\n * See the LICENSE file found in the root directory of this project.\r\n */\r\n\r\n.okSelectEntryItem {\r\n /* Layout */\r\n display: flex;\r\n align-items: center;\r\n gap: 4px;\r\n\r\n /* Style */\r\n color: var(--Dark, #343434);\r\n font-family: Inter, "Nunito Sans", sans-serif, ui-sans-serif;\r\n font-size: 14px;\r\n font-style: normal;\r\n font-weight: 400;\r\n line-height: 14px; /* 100% */\r\n\r\n /* Indicator Style */\r\n .okSelectEntryItemIndicator {\r\n width: 14px;\r\n height: 14px;\r\n }\r\n}\r\n\r\n.okSelectEntryItem[data-disabled] {\r\n opacity: 0.5;\r\n pointer-events: none;\r\n}\r\n.okSelectEntryItem[data-highlighted] {\r\n outline: none;\r\n}\r\n');const X=e.forwardRef(((n,t)=>{const{className:o,children:i,...a}=n,{size:l,value:s}=e.useContext(W);return e.createElement(f.Item,{...a,ref:t,className:r("okSelectEntryItem",o,"ok-r-size-"+l)},e.createElement(T,{state:s===n.value?exports.ToggleState.On:exports.ToggleState.Off}),e.createElement(f.ItemText,null,i))}));X.displayName="SelectEntryItem";b('/**\r\n * Copyright (c) 2024 Opal Kelly Incorporated\r\n *\r\n * This source code is licensed under the FrontPanel license.\r\n * See the LICENSE file found in the root directory of this project.\r\n */\r\n\r\n.okSelectEntryLabel {\r\n /* Typography */\r\n color: var(--Gray-1, #989da3);\r\n font-family: Inter, "Nunito Sans", sans-serif, ui-sans-serif;\r\n font-size: 10px;\r\n font-style: normal;\r\n font-weight: 300;\r\n line-height: 12px; /* 120% */\r\n}\r\n');const Y=e.forwardRef(((n,t)=>{const{className:o,...i}=n,{size:a}=e.useContext(W);return e.createElement(f.Label,{...i,ref:t,className:r("okSelectEntryLabel",o,"ok-r-size-"+a)})}));Y.displayName="SelectEntryLabel";b("/**\r\n * Copyright (c) 2024 Opal Kelly Incorporated\r\n *\r\n * This source code is licensed under the FrontPanel license.\r\n * See the LICENSE file found in the root directory of this project.\r\n */\r\n\r\n.okSelectEntrySeparator {\r\n height: 1px;\r\n\r\n background: #d0d7df;\r\n}\r\n");const Z=e.forwardRef(((n,t)=>e.createElement(f.Separator,{...n,ref:t,className:r("okSelectEntrySeparator",n.className)})));Z.displayName="SelectEntrySeparator";b('/**\r\n * Copyright (c) 2024 Opal Kelly Incorporated\r\n *\r\n * This source code is licensed under the FrontPanel license.\r\n * See the LICENSE file found in the root directory of this project.\r\n */\r\n\r\n.okSelectEntryTrigger {\r\n /* Layout */\r\n display: flex;\r\n padding: 0px 18px;\r\n justify-content: space-between;\r\n align-items: center;\r\n gap: 8px;\r\n\r\n /* Style */\r\n border-radius: 4px;\r\n border: 1px solid var(--Gray-2, #d0d7df);\r\n background: var(--Light, #fff);\r\n\r\n /* Typography */\r\n color: var(--Dark, #343434);\r\n font-family: Inter, "Nunito Sans", sans-serif, ui-sans-serif;\r\n font-size: 14px;\r\n font-style: normal;\r\n font-weight: 400;\r\n line-height: 14px; /* 100% */\r\n\r\n /* State Disabled */\r\n &:is(:disabled) {\r\n opacity: 0.5;\r\n background: var(--Gray-3, #e7ebef);\r\n }\r\n}\r\n\r\n.okSelectEntryTriggerInner {\r\n /* Layout */\r\n padding: 10px 0px;\r\n\r\n /* Style */\r\n overflow: hidden;\r\n text-overflow: ellipsis;\r\n white-space: nowrap;\r\n}\r\n\r\n/* State Disabled */\r\n.okSelectEntryTrigger[data-disabled="true"] {\r\n opacity: 0.5;\r\n}\r\n');const H=e.forwardRef(((n,r)=>{const{label:t,tooltip:o,...i}=e.useContext(W),a=null!=t,l=null!=o;return a&&l?e.createElement(z,{...t},e.createElement(v,{content:o},e.createElement(q,{ref:r,...n,style:{width:"100%"}}))):a?e.createElement(z,{...t},e.createElement(q,{ref:r,...i,style:{width:"100%"}})):l?e.createElement(v,{content:o},e.createElement("div",null,e.createElement(q,{ref:r,...i}))):e.createElement(q,{ref:r,...i})}));H.displayName="SelectEntryTrigger";const q=e.forwardRef(((n,t)=>{const{className:o,placeholder:i,...a}=n,{size:l}=e.useContext(W);return e.createElement(f.Trigger,{asChild:!0},e.createElement("button",{...a,ref:t,className:r("okSelectEntryTrigger",o,"ok-r-size-"+l)},e.createElement("span",{className:"okSelectEntryTriggerInner"},e.createElement(f.Value,{placeholder:i})),e.createElement(f.Icon,{asChild:!0},e.createElement(k,{direction:E.Down}))))}));q.displayName="SelectEntryTriggerImpl";const $=Object.assign({},{Root:U,Trigger:H,Content:K,Item:X,Group:Q,Label:Y,Separator:Z});b('/**\r\n * Copyright (c) 2024 Opal Kelly Incorporated\r\n *\r\n * This source code is licensed under the FrontPanel license.\r\n * See the LICENSE file found in the root directory of this project.\r\n */\r\n\r\n.okToggle {\r\n /* Layout */\r\n display: inline-flex;\r\n padding: var(--toggle-padding, 6px 12px);\r\n justify-content: center;\r\n align-items: center;\r\n gap: 4px;\r\n\r\n color: var(--base-white, #fff);\r\n\r\n /* Style */\r\n border-width: 0px;\r\n border-radius: 4px;\r\n background: var(--brand-12, #44bd84);\r\n\r\n /* Typography */\r\n color: var(--Base-White, #fff);\r\n text-align: center;\r\n font-family: Inter, "Nunito Sans", sans-serif, ui-sans-serif;\r\n font-size: var(--toggle-font-size, 12px);\r\n font-style: normal;\r\n font-weight: 600;\r\n line-height: 12px; /* 100% */\r\n\r\n /* Size 1 */\r\n &:where(.ok-r-size-1) {\r\n --toggle-padding: 6px 12px;\r\n --toggle-font-size: 12px;\r\n --toggle-line-height: 12px;\r\n }\r\n\r\n /* Size 2 */\r\n &:where(.ok-r-size-2) {\r\n --toggle-padding: 10px 18px;\r\n --toggle-font-size: 14px;\r\n --toggle-line-height: 14px;\r\n }\r\n\r\n /* Size 3 */\r\n &:where(.ok-r-size-3) {\r\n --toggle-padding: 18px 22px;\r\n --toggle-font-size: 20px;\r\n --toggle-line-height: 20px;\r\n }\r\n}\r\n\r\n/* State Disabled */\r\n.okToggle[data-disabled="true"] {\r\n background: var(--Gray-2, #d0d7df);\r\n}\r\n\r\n/* State On */\r\n.okToggle[data-state="on"]:not([data-disabled="true"]) {\r\n background: #329466;\r\n}\r\n\r\n/* State Off */\r\n.okToggle[data-state="off"]:not([data-disabled="true"]) {\r\n background: var(--brand-12, #44bd84);\r\n}\r\n');const J=e.forwardRef(((n,t)=>{const{className:o,size:i=1,disabled:a=!1,tooltip:l,state:s,children:c,onToggleStateChanged:u,...d}=n,f=e.useMemo((()=>{switch(s){case exports.ToggleState.On:return"on";case exports.ToggleState.Off:return"off";default:return"indeterminate"}}),[s]),p=e.useCallback((()=>{const e=s===exports.ToggleState.On?exports.ToggleState.Off:exports.ToggleState.On;u?.(e)}),[s]);return e.createElement("button",{"data-disabled":a||void 0,ref:t,...d,className:r("okToggle",o,"ok-r-size-"+i),"data-state":f,onClick:p},c)}));J.displayName="Toggle";b('/**\r\n * Copyright (c) 2024 Opal Kelly Incorporated\r\n *\r\n * This source code is licensed under the FrontPanel license.\r\n * See the LICENSE file found in the root directory of this project.\r\n */\r\n\r\n.okToggleSwitchRoot {\r\n /* Layout */\r\n display: inline-flex;\r\n justify-content: center;\r\n align-items: center;\r\n gap: 4px;\r\n\r\n /* Style */\r\n border-radius: 4px;\r\n\r\n /* Switch Style */\r\n .okToggleSwitch {\r\n /* Layout */\r\n display: flex;\r\n width: var(--toggle-switch-width, 16.5px);\r\n height: var(--toggle-switch-height, 9px);\r\n padding: var(--toggle-switch-padding, 0.75px);\r\n align-items: center;\r\n\r\n /* Style */\r\n border-width: 0px;\r\n border-radius: var(--toggle-switch-border-radius, 4.5px);\r\n background: var(--Gray-2, #d0d7df);\r\n\r\n /* Switch Icon Style */\r\n .okIndicatorIcon {\r\n width: var(--toggle-switch-icon-width, 9px);\r\n height: var(--toggle-switch-icon-height, 9px);\r\n }\r\n }\r\n\r\n /* Label Style */\r\n .okToggleSwitchLabel {\r\n /* Typography */\r\n color: var(--Dark, #343434);\r\n text-align: center;\r\n font-family: Inter, "Nunito Sans", sans-serif, ui-sans-serif;\r\n font-size: var(--toggle-switch-font-size, 12px);\r\n font-style: normal;\r\n font-weight: 500;\r\n line-height: var(--toggle-switch-line-height, 12px); /* 100% */\r\n }\r\n\r\n /* Size 1 */\r\n &:where(.ok-r-size-1) {\r\n --toggle-switch-width: 16.5px;\r\n --toggle-switch-height: 9px;\r\n\r\n --toggle-switch-padding: 0.75px;\r\n --toggle-switch-border-radius: 4.5px;\r\n\r\n --toggle-switch-font-size: 12px;\r\n --toggle-switch-line-height: 12px;\r\n\r\n --toggle-switch-icon-width: 7.5px;\r\n --toggle-switch-icon-height: 7.5px;\r\n }\r\n\r\n /* Sizes 2*/\r\n &:where(.ok-r-size-2) {\r\n --toggle-switch-width: 18.333px;\r\n --toggle-switch-height: 10px;\r\n\r\n --toggle-switch-padding: 0.883px;\r\n --toggle-switch-border-radius: 5px;\r\n\r\n --toggle-switch-font-size: 14px;\r\n --toggle-switch-line-height: 14px;\r\n\r\n --toggle-switch-icon-width: 8.33px;\r\n --toggle-switch-icon-height: 8.33px;\r\n }\r\n\r\n /* Sizes 3*/\r\n &:where(.ok-r-size-3) {\r\n --toggle-switch-width: 27.5px;\r\n --toggle-switch-height: 15px;\r\n\r\n --toggle-switch-padding: 1.25px;\r\n --toggle-switch-border-radius: 7.5px;\r\n\r\n --toggle-switch-font-size: 20px;\r\n --toggle-switch-line-height: 20px;\r\n\r\n --toggle-switch-icon-width: 12.5px;\r\n --toggle-switch-icon-height: 12.5px;\r\n }\r\n}\r\n\r\n/* State Disabled */\r\n.okToggleSwitchRoot[data-disabled="true"] {\r\n opacity: 0.5;\r\n}\r\n\r\n/* State On */\r\n.okToggleSwitch[data-state="on"] {\r\n justify-content: flex-end;\r\n}\r\n\r\n.okToggleSwitch[data-state="on"]:not([data-disabled="true"]) {\r\n background: var(--brand-12, #44bd84);\r\n}\r\n\r\n/* State Off */\r\n.okToggleSwitch[data-state="off"] {\r\n justify-content: flex-start;\r\n}\r\n\r\n.okToggleSwitch[data-state="off"]:not([data-disabled="true"]) {\r\n background: var(--Gray-2, #d0d7df);\r\n}\r\n');const ee=e.forwardRef(((n,t)=>{const{className:o,size:i=1,label:a,disabled:l=!1,state:s,...c}=n,u=w(e.createElement("span",{className:r("okToggleSwitchRoot",o,"ok-r-size-"+i),"data-disabled":l||void 0},e.createElement(J,{className:r("okToggleSwitch"),ref:t,...c,size:i,disabled:l,state:s},e.createElement(O,{className:"okIndicatorIcon",state:s})),e.createElement("span",{className:r("okToggleSwitchLabel")},a)));return e.createElement(u,{...n})}));function ne(e){if(e.__esModule)return e;var n=e.default;if("function"==typeof n){var r=function e(){return this instanceof e?Reflect.construct(n,arguments,this.constructor):n.apply(this,arguments)};r.prototype=n.prototype}else r={};return Object.defineProperty(r,"__esModule",{value:!0}),Object.keys(e).forEach((function(n){var t=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(r,n,t.get?t:{enumerable:!0,get:function(){return e[n]}})})),r}ee.displayName="ToggleSwitch";var re={};Object.defineProperty(re,"__esModule",{value:!0}),re.Subscription=void 0;var te=function(){function e(e){var n=this;this._cancel=e.cancel,this.name=e.sub.name;var r=e.sub.cancel;e.sub.cancel=function(){n._cancel=null,r()}}return Object.defineProperty(e.prototype,"live",{get:function(){return!!this._cancel},enumerable:!1,configurable:!0}),e.prototype.cancel=function(){return!!this._cancel&&(this._cancel(),this._cancel=null,!0)},e}();re.Subscription=te;var oe={},ie=function(e,n){return ie=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,n){e.__proto__=n}||function(e,n){for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])},ie(e,n)};function ae(e,n){if("function"!=typeof n&&null!==n)throw new TypeError("Class extends value "+String(n)+" is not a constructor or null");function r(){this.constructor=e}ie(e,n),e.prototype=null===n?Object.create(n):(r.prototype=n.prototype,new r)}var le=function(){return le=Object.assign||function(e){for(var n,r=1,t=arguments.length;r<t;r++)for(var o in n=arguments[r])Object.prototype.hasOwnProperty.call(n,o)&&(e[o]=n[o]);return e},le.apply(this,arguments)};function se(e,n){var r={};for(var t in e)Object.prototype.hasOwnProperty.call(e,t)&&n.indexOf(t)<0&&(r[t]=e[t]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var o=0;for(t=Object.getOwnPropertySymbols(e);o<t.length;o++)n.indexOf(t[o])<0&&Object.prototype.propertyIsEnumerable.call(e,t[o])&&(r[t[o]]=e[t[o]])}return r}function ce(e,n,r,t){var o,i=arguments.length,a=i<3?n:null===t?t=Object.getOwnPropertyDescriptor(n,r):t;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,n,r,t);else for(var l=e.length-1;l>=0;l--)(o=e[l])&&(a=(i<3?o(a):i>3?o(n,r,a):o(n,r))||a);return i>3&&a&&Object.defineProperty(n,r,a),a}function ue(e,n){return function(r,t){n(r,t,e)}}function de(e,n,r,t,o,i){function a(e){if(void 0!==e&&"function"!=typeof e)throw new TypeError("Function expected");return e}for(var l,s=t.kind,c="getter"===s?"get":"setter"===s?"set":"value",u=!n&&e?t.static?e:e.prototype:null,d=n||(u?Object.getOwnPropertyDescriptor(u,t.name):{}),f=!1,p=r.length-1;p>=0;p--){var m={};for(var g in t)m[g]="access"===g?{}:t[g];for(var g in t.access)m.access[g]=t.access[g];m.addInitializer=function(e){if(f)throw new TypeError("Cannot add initializers after decoration has completed");i.push(a(e||null))};var h=(0,r[p])("accessor"===s?{get:d.get,set:d.set}:d[c],m);if("accessor"===s){if(void 0===h)continue;if(null===h||"object"!=typeof h)throw new TypeError("Object expected");(l=a(h.get))&&(d.get=l),(l=a(h.set))&&(d.set=l),(l=a(h.init))&&o.unshift(l)}else(l=a(h))&&("field"===s?o.unshift(l):d[c]=l)}u&&Object.defineProperty(u,t.name,d),f=!0}function fe(e,n,r){for(var t=arguments.length>2,o=0;o<n.length;o++)r=t?n[o].call(e,r):n[o].call(e);return t?r:void 0}function pe(e){return"symbol"==typeof e?e:"".concat(e)}function me(e,n,r){return"symbol"==typeof n&&(n=n.description?"[".concat(n.description,"]"):""),Object.defineProperty(e,"name",{configurable:!0,value:r?"".concat(r," ",n):n})}function ge(e,n){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,n)}function he(e,n,r,t){return new(r||(r=Promise))((function(o,i){function a(e){try{s(t.next(e))}catch(e){i(e)}}function l(e){try{s(t.throw(e))}catch(e){i(e)}}function s(e){var n;e.done?o(e.value):(n=e.value,n instanceof r?n:new r((function(e){e(n)}))).then(a,l)}s((t=t.apply(e,n||[])).next())}))}function ye(e,n){var r,t,o,i={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]},a=Object.create(("function"==typeof Iterator?Iterator:Object).prototype);return a.next=l(0),a.throw=l(1),a.return=l(2),"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function l(l){return function(s){return function(l){if(r)throw new TypeError("Generator is already executing.");for(;a&&(a=0,l[0]&&(i=0)),i;)try{if(r=1,t&&(o=2&l[0]?t.return:l[0]?t.throw||((o=t.return)&&o.call(t),0):t.next)&&!(o=o.call(t,l[1])).done)return o;switch(t=0,o&&(l=[2&l[0],o.value]),l[0]){case 0:case 1:o=l;break;case 4:return i.label++,{value:l[1],done:!1};case 5:i.label++,t=l[1],l=[0];continue;case 7:l=i.ops.pop(),i.trys.pop();continue;default:if(!(o=i.trys,(o=o.length>0&&o[o.length-1])||6!==l[0]&&2!==l[0])){i=0;continue}if(3===l[0]&&(!o||l[1]>o[0]&&l[1]<o[3])){i.label=l[1];break}if(6===l[0]&&i.label<o[1]){i.label=o[1],o=l;break}if(o&&i.label<o[2]){i.label=o[2],i.ops.push(l);break}o[2]&&i.ops.pop(),i.trys.pop();continue}l=n.call(e,i)}catch(e){l=[6,e],t=0}finally{r=o=0}if(5&l[0])throw l[1];return{value:l[0]?l[1]:void 0,done:!0}}([l,s])}}}var be=Object.create?function(e,n,r,t){void 0===t&&(t=r);var o=Object.getOwnPropertyDescriptor(n,r);o&&!("get"in o?!n.__esModule:o.writable||o.configurable)||(o={enumerable:!0,get:function(){return n[r]}}),Object.defineProperty(e,t,o)}:function(e,n,r,t){void 0===t&&(t=r),e[t]=n[r]};function xe(e,n){for(var r in e)"default"===r||Object.prototype.hasOwnProperty.call(n,r)||be(n,e,r)}function ve(e){var n="function"==typeof Symbol&&Symbol.iterator,r=n&&e[n],t=0;if(r)return r.call(e);if(e&&"number"==typeof e.length)return{next:function(){return e&&t>=e.length&&(e=void 0),{value:e&&e[t++],done:!e}}};throw new TypeError(n?"Object is not iterable.":"Symbol.iterator is not defined.")}function we(e,n){var r="function"==typeof Symbol&&e[Symbol.iterator];if(!r)return e;var t,o,i=r.call(e),a=[];try{for(;(void 0===n||n-- >0)&&!(t=i.next()).done;)a.push(t.value)}catch(e){o={error:e}}finally{try{t&&!t.done&&(r=i.return)&&r.call(i)}finally{if(o)throw o.error}}return a}function Se(){for(var e=[],n=0;n<arguments.length;n++)e=e.concat(we(arguments[n]));return e}function Ee(){for(var e=0,n=0,r=arguments.length;n<r;n++)e+=arguments[n].length;var t=Array(e),o=0;for(n=0;n<r;n++)for(var i=arguments[n],a=0,l=i.length;a<l;a++,o++)t[o]=i[a];return t}function ke(e,n,r){if(r||2===arguments.length)for(var t,o=0,i=n.length;o<i;o++)!t&&o in n||(t||(t=Array.prototype.slice.call(n,0,o)),t[o]=n[o]);return e.concat(t||Array.prototype.slice.call(n))}function Ie(e){return this instanceof Ie?(this.v=e,this):new Ie(e)}function _e(e,n,r){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var t,o=r.apply(e,n||[]),i=[];return t=Object.create(("function"==typeof AsyncIterator?AsyncIterator:Object).prototype),a("next"),a("throw"),a("return",(function(e){return function(n){return Promise.resolve(n).then(e,c)}})),t[Symbol.asyncIterator]=function(){return this},t;function a(e,n){o[e]&&(t[e]=function(n){return new Promise((function(r,t){i.push([e,n,r,t])>1||l(e,n)}))},n&&(t[e]=n(t[e])))}function l(e,n){try{(r=o[e](n)).value instanceof Ie?Promise.resolve(r.value.v).then(s,c):u(i[0][2],r)}catch(e){u(i[0][3],e)}var r}function s(e){l("next",e)}function c(e){l("throw",e)}function u(e,n){e(n),i.shift(),i.length&&l(i[0][0],i[0][1])}}function Ce(e){var n,r;return n={},t("next"),t("throw",(function(e){throw e})),t("return"),n[Symbol.iterator]=function(){return this},n;function t(t,o){n[t]=e[t]?function(n){return(r=!r)?{value:Ie(e[t](n)),done:!1}:o?o(n):n}:o}}function Ne(e){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var n,r=e[Symbol.asyncIterator];return r?r.call(e):(e=ve(e),n={},t("next"),t("throw"),t("return"),n[Symbol.asyncIterator]=function(){return this},n);function t(r){n[r]=e[r]&&function(n){return new Promise((function(t,o){(function(e,n,r,t){Promise.resolve(t).then((function(n){e({value:n,done:r})}),n)})(t,o,(n=e[r](n)).done,n.value)}))}}}function Te(e,n){return Object.defineProperty?Object.defineProperty(e,"raw",{value:n}):e.raw=n,e}var Oe=Object.create?function(e,n){Object.defineProperty(e,"default",{enumerable:!0,value:n})}:function(e,n){e.default=n},De=function(e){return De=Object.getOwnPropertyNames||function(e){var n=[];for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(n[n.length]=r);return n},De(e)};function ze(e){if(e&&e.__esModule)return e;var n={};if(null!=e)for(var r=De(e),t=0;t<r.length;t++)"default"!==r[t]&&be(n,e,r[t]);return Oe(n,e),n}function Pe(e){return e&&e.__esModule?e:{default:e}}function Le(e,n,r,t){if("a"===r&&!t)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof n?e!==n||!t:!n.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?t:"a"===r?t.call(e):t?t.value:n.get(e)}function je(e,n,r,t,o){if("m"===t)throw new TypeError("Private method is not writable");if("a"===t&&!o)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof n?e!==n||!o:!n.has(e))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===t?o.call(e,r):o?o.value=r:n.set(e,r),r}function Re(e,n){if(null===n||"object"!=typeof n&&"function"!=typeof n)throw new TypeError("Cannot use 'in' operator on non-object");return"function"==typeof e?n===e:e.has(n)}function Ae(e,n,r){if(null!=n){if("object"!=typeof n&&"function"!=typeof n)throw new TypeError("Object expected.");var t,o;if(r){if(!Symbol.asyncDispose)throw new TypeError("Symbol.asyncDispose is not defined.");t=n[Symbol.asyncDispose]}if(void 0===t){if(!Symbol.dispose)throw new TypeError("Symbol.dispose is not defined.");t=n[Symbol.dispose],r&&(o=t)}if("function"!=typeof t)throw new TypeError("Object not disposable.");o&&(t=function(){try{o.call(this)}catch(e){return Promise.reject(e)}}),e.stack.push({value:n,dispose:t,async:r})}else r&&e.stack.push({async:!0});return n}var Be="function"==typeof SuppressedError?SuppressedError:function(e,n,r){var t=new Error(r);return t.name="SuppressedError",t.error=e,t.suppressed=n,t};function Ve(e){function n(n){e.error=e.hasError?new Be(n,e.error,"An error was suppressed during disposal."):n,e.hasError=!0}var r,t=0;return function o(){for(;r=e.stack.pop();)try{if(!r.async&&1===t)return t=0,e.stack.push(r),Promise.resolve().then(o);if(r.dispose){var i=r.dispose.call(r.value);if(r.async)return t|=2,Promise.resolve(i).then(o,(function(e){return n(e),o()}))}else t|=1}catch(e){n(e)}if(1===t)return e.hasError?Promise.reject(e.error):Promise.resolve();if(e.hasError)throw e.error}()}function Fe(e,n){return"string"==typeof e&&/^\.\.?\//.test(e)?e.replace(/\.(tsx)$|((?:\.d)?)((?:\.[^./]+?)?)\.([cm]?)ts$/i,(function(e,r,t,o,i){return r?n?".jsx":".js":!t||o&&i?t+o+"."+i.toLowerCase()+"js":e})):e}var Me={__extends:ae,__assign:le,__rest:se,__decorate:ce,__param:ue,__esDecorate:de,__runInitializers:fe,__propKey:pe,__setFunctionName:me,__metadata:ge,__awaiter:he,__generator:ye,__createBinding:be,__exportStar:xe,__values:ve,__read:we,__spread:Se,__spreadArrays:Ee,__spreadArray:ke,__await:Ie,__asyncGenerator:_e,__asyncDelegator:Ce,__asyncValues:Ne,__makeTemplateObject:Te,__importStar:ze,__importDefault:Pe,__classPrivateFieldGet:Le,__classPrivateFieldSet:je,__classPrivateFieldIn:Re,__addDisposableResource:Ae,__disposeResources:Ve,__rewriteRelativeImportExtension:Fe},Ge=ne(Object.freeze({__proto__:null,__addDisposableResource:Ae,get __assign(){return le},__asyncDelegator:Ce,__asyncGenerator:_e,__asyncValues:Ne,__await:Ie,__awaiter:he,__classPrivateFieldGet:Le,__classPrivateFieldIn:Re,__classPrivateFieldSet:je,__createBinding:be,__decorate:ce,__disposeResources:Ve,__esDecorate:de,__exportStar:xe,__extends:ae,__generator:ye,__importDefault:Pe,__importStar:ze,__makeTemplateObject:Te,__metadata:ge,__param:ue,__propKey:pe,__read:we,__rest:se,__rewriteRelativeImportExtension:Fe,__runInitializers:fe,__setFunctionName:me,__spread:Se,__spreadArray:ke,__spreadArrays:Ee,__values:ve,default:Me})),We={},Ue={},Ke={};Object.defineProperty(Ke,"__esModule",{value:!0}),Ke.Private=void 0;var Qe=function(){function e(){this.propMap=new WeakMap}return e.prototype.get=function(e){return this.propMap.get(e)},e.prototype.set=function(e,n){this.propMap.set(e,n)},e}();Ke.Private=Qe,function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.Private=void 0;var n=Ke;Object.defineProperty(e,"Private",{enumerable:!0,get:function(){return n.Private}})}(Ue),Object.defineProperty(We,"__esModule",{value:!0}),We.EventConsumer=void 0;var Xe=new Ue.Private,Ye=function(){function e(e){Xe.set(this,e)}return Object.defineProperty(e.prototype,"count",{get:function(){return Xe.get(this).count},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"maxSubs",{get:function(){return Xe.get(this).maxSubs},enumerable:!1,configurable:!0}),e.prototype.subscribe=function(e,n){return Xe.get(this).subscribe(e,n)},e.prototype.once=function(e,n){return Xe.get(this).once(e,n)},e.prototype.toPromise=function(e){return Xe.get(this).toPromise(e)},e.prototype.getStat=function(e){return Xe.get(this).getStat(e)},e}();We.EventConsumer=Ye,Object.defineProperty(oe,"__esModule",{value:!0}),oe.SubEvent=oe.EmitSchedule=void 0;var Ze,He=Ge,qe=re,$e=We;!function(e){e.sync="sync",e.async="async",e.next="next"}(Ze||(oe.EmitSchedule=Ze={}));var Je=function(){function e(e){if(this._subs=[],"object"!=typeof(null!=e?e:{}))throw new TypeError(en.errInvalidOptions);this.options=null!=e?e:{}}return Object.defineProperty(e.prototype,"lastEvent",{get:function(){return this._lastEvent},enumerable:!1,configurable:!0}),e.prototype.toConsumer=function(){return new $e.EventConsumer(this)},e.prototype.subscribe=function(e,n){if("object"!=typeof(null!=n?n:{}))throw new TypeError(en.errInvalidOptions);var r={event:this,cb:e=n&&"thisArg"in n?e.bind(n.thisArg):e,name:null==n?void 0:n.name,cancel:function(){"function"==typeof(null==n?void 0:n.onCancel)&&n.onCancel()}};if("function"==typeof this.options.onSubscribe){var t={event:r.event,name:r.name,data:r.data};this.options.onSubscribe(t),r.data=t.data}return this._subs.push(r),new qe.Subscription({cancel:this._createCancel(r),sub:r})},e.prototype.once=function(e,n){var r=this.subscribe((function(t){return r.cancel(),e.call(null==n?void 0:n.thisArg,t)}),n);return r},e.prototype.emit=function(e,n){var r,t=this;if("object"!=typeof(null!=n?n:{}))throw new TypeError(en.errInvalidOptions);var o=null!==(r=null==n?void 0:n.schedule)&&void 0!==r?r:Ze.sync,i="function"==typeof(null==n?void 0:n.onFinished)&&n.onFinished,a="function"==typeof(null==n?void 0:n.onError)&&n.onError,l=o===Ze.sync?en.callNow:en.callNext,s=o===Ze.async?en.callNext:en.callNow,c=function(n){t._lastEvent=e,i&&i(n)};return l((function(){var n=t._getRecipients();n.forEach((function(r,t){return s((function(){if(a)try{var o=r.cb&&r.cb(e);o&&"function"==typeof o.catch&&o.catch((function(e){return a(e,r.name)}))}catch(e){a(e,r.name)}else r.cb&&r.cb(e);t===n.length-1&&c(n.length)}))})),n.length||c(0)})),this},Object.defineProperty(e.prototype,"count",{get:function(){return this._subs.length},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"maxSubs",{get:function(){var e;return null!==(e=this.options.maxSubs)&&void 0!==e?e:0},enumerable:!1,configurable:!0}),e.prototype.getStat=function(e){var n,r={named:{},unnamed:0};this._subs.forEach((function(e){e.name?e.name in r.named?r.named[e.name]++:r.named[e.name]=1:r.unnamed++}));var t=null!==(n=e&&e.minUse)&&void 0!==n?n:0;if(t>1)for(var o in r.named)r.named[o]<t&&delete r.named[o];return r},e.prototype.cancelAll=function(){var e="function"==typeof this.options.onCancel&&this.options.onCancel,n=e?He.__spreadArray([],this._subs,!0):[],r=this._subs.length;return this._subs.forEach((function(e){e.cancel(),e.cb=void 0})),this._subs.length=0,e&&n.forEach((function(n){e({event:n.event,name:n.name,data:n.data})})),r},e.prototype.toPromise=function(e){var n=this;if("object"!=typeof(null!=e?e:{}))throw new TypeError(en.errInvalidOptions);var r,t=e||{},o=t.name,i=t.timeout,a=void 0===i?-1:i,l=!1;return new Promise((function(e,t){var i=n.subscribe((function(n){r&&clearTimeout(r),l=!0,i.cancel(),e(n)}),{name:o,onCancel:function(){l||(r&&clearTimeout(r),t(new Error(o?'Event "'.concat(o,'" cancelled.'):"Event cancelled.")))}});Number.isInteger(a)&&a>=0&&(r=setTimeout((function(){l=!0,i.cancel(),t(new Error(o?'Event "'.concat(o,'" timed out.'):"Event timed out."))}),a))}))},e.prototype._getRecipients=function(){var e=this.maxSubs>0?this.maxSubs:this._subs.length;return this._subs.slice(0,e)},e.prototype._createCancel=function(e){var n=this;return function(){n._cancelSub(e)}},e.prototype._cancelSub=function(e){if(this._subs.splice(this._subs.indexOf(e),1),e.cancel(),e.cb=void 0,"function"==typeof this.options.onCancel){var n={event:e.event,name:e.name,data:e.data};this.options.onCancel(n)}},e}();oe.SubEvent=Je;var en=function(){function e(){}return e.errInvalidOptions='Invalid "options" parameter.',e.callNext="undefined"==typeof process?setTimeout:process.nextTick,e.callNow=function(e){return e()},e}(),nn={};Object.defineProperty(nn,"__esModule",{value:!0}),nn.SubEventCount=void 0;var rn=Ge,tn=oe,on=function(e){function n(n){var r=e.call(this,n)||this;r.onCount=new tn.SubEvent;var t=n&&n.emitOptions;return r._notify=function(e){return r.onCount.emit(e,t)},r}return rn.__extends(n,e),n.prototype.cancelAll=function(){var n=this.count;return n&&(e.prototype.cancelAll.call(this),this._notify({newCount:0,prevCount:n})),n},n.prototype._createCancel=function(e){var n=this,r=this._subs;return this._notify({newCount:r.length,prevCount:r.length-1}),function(){n._cancelSub(e),n._notify({newCount:r.length,prevCount:r.length+1})}},n}(tn.SubEvent);nn.SubEventCount=on,function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.EventConsumer=e.SubEventCount=e.EmitSchedule=e.SubEvent=e.Subscription=void 0;var n=re;Object.defineProperty(e,"Subscription",{enumerable:!0,get:function(){return n.Subscription}});var r=oe;Object.defineProperty(e,"SubEvent",{enumerable:!0,get:function(){return r.SubEvent}}),Object.defineProperty(e,"EmitSchedule",{enumerable:!0,get:function(){return r.EmitSchedule}});var t=nn;Object.defineProperty(e,"SubEventCount",{enumerable:!0,get:function(){return t.SubEventCount}});var o=We;Object.defineProperty(e,"EventConsumer",{enumerable:!0,get:function(){return o.EventConsumer}})}({});const an=31,ln=63,sn=e.forwardRef(((n,r)=>{const[t,o]=e.useState(n.minimumValue??0n),{device:i,workQueue:a}=e.useContext(h),{maximumValue:l,minimumValue:s,fpEndpoint:c,disabled:u,...d}=n,f=e.useMemo((()=>void 0!==s?function(e,n,r){let t;t=e<r?r:e>n?n:e;return t}(s,l,0n):0n),[s,l]),p=e.useMemo((()=>g(l)),[l]),m=(1n<<BigInt(p))-1n<<BigInt(c.bitOffset),y=e.useCallback((e=>{if(null!=e&&null!=a){let n=e.getWireInValue(c.epAddress),r=0xffffffffn&m,t=(BigInt(n)&r)>>BigInt(c.bitOffset);if(m>0xffffffffn){let o=32n-BigInt(c.bitOffset),i=m>>32n;for(let a=c.epAddress+1;a<=an&&i>0n;a++)n=e.getWireInValue(a),r=0xffffffffn&i,t|=(BigInt(n)&r)<<o,o+=32n,i>>=32n}o(t)}else o(0n)}),[a,c,m]);e.useEffect((()=>{y(i)}),[i,y]);const b=e.useCallback((async e=>{null!=i&&null!=a&&await a.Post((async()=>{let n=0xffffffffn&m,r=Number(e<<BigInt(c.bitOffset)&n);if(i.setWireInValue(c.epAddress,r,Number(n)),m>0xffffffffn){let t=32n-BigInt(c.bitOffset),o=m>>32n;for(let a=c.epAddress+1;a<=an&&o>0n;a++)n=0xffffffffn&o,r=Number(e>>t&n),i.setWireInValue(a,r,Number(n)),t+=32n,o>>=32n}await i.updateWireIns()})),y(i)}),[i,a,c,m,y]);return e.createElement(R,{...d,ref:r,disabled:u||null===i,maximumValue:l,minimumValue:f,value:t,onValueChange:b})}));sn.displayName="FrontPanelNumberEntry";b("");const cn=e.forwardRef(((n,r)=>{const[t,o]=e.useState(0n),{device:i,workQueue:a,eventSource:l}=e.useContext(h),{maximumValue:s,fpEndpoint:c,...u}=n,d=e.useMemo((()=>g(s)),[s]),f=(1n<<BigInt(d))-1n<<BigInt(c.bitOffset),p=e.useCallback((e=>{if(null!=e&&null!=a){let n=e.getWireOutValue(c.epAddress),r=0xffffffffn&f,t=(BigInt(n)&r)>>BigInt(c.bitOffset);if(f>0xffffffffn){let o=32n-BigInt(c.bitOffset),i=f>>32n;for(let a=c.epAddress+1;a<=ln&&i>0n;a++)n=e.getWireOutValue(a),r=0xffffffffn&i,t|=(BigInt(n)&r)<<o,o+=32n,i>>=32n}o(t)}else o(0n)}),[a,c,f]);return e.useEffect((()=>{p(i);const e=l?.WireOutValuesChangedEvent.Subscribe(p);return()=>{e?.Cancel()}}),[i,l,p]),e.createElement(P,{...u,ref:r,maximumValue:s,minimumValue:0n,value:t})}));cn.displayName="FrontPanelNumberDisplay";const un=e.forwardRef(((n,r)=>{const[t,o]=e.useState(!1),{device:i,workQueue:a,eventSource:l}=e.useContext(h),{fpEndpoint:s,...c}=n,u=1<<s.bitOffset,d=e.useCallback((e=>{if(null!=e&&null!=a){const n=e.getWireOutValue(s.epAddress);o((n&u)===u)}else o(!1)}),[a,s,u]);return e.useEffect((()=>{d(i);const e=l?.WireOutValuesChangedEvent.Subscribe(d);return()=>{e?.Cancel()}}),[i,l,d]),e.createElement(D,{...c,ref:r,state:t})}));un.displayName="FrontPanelIndicator";const dn=e.forwardRef(((n,r)=>{const{device:t,workQueue:o}=e.useContext(h),{fpEndpoint:i,disabled:a,...l}=n,s=1<<i.bitOffset,c=e.useCallback((async()=>{null!=t&&null!=o&&await o.Post((async()=>{t.setWireInValue(i.epAddress,0,s),await t.updateWireIns()}))}),[t,o,i,s,o]),u=e.useCallback((async()=>{null!=t&&null!=o&&await o.Post((async()=>{t.setWireInValue(i.epAddress,4294967295,s),await t.updateWireIns()}))}),[t,o,i,s,o]);return e.createElement(S,{...l,ref:r,disabled:a||null==t,onButtonUp:c,onButtonDown:u})}));dn.displayName="FrontPanelPushButton";const fn=e.forwardRef(((n,r)=>{const[t,o]=e.useState(exports.ToggleState.Off),{device:i,workQueue:a}=e.useContext(h),{fpEndpoint:l,disabled:s,...c}=n,u=1<<l.bitOffset,d=e.useCallback((e=>{if(null!=e&&null!=a){const n=(e.getWireInValue(l.epAddress)&u)===u?exports.ToggleState.On:exports.ToggleState.Off;o(n)}else o(exports.ToggleState.Off)}),[a,l,u]),f=e.useCallback((async e=>{null!=i&&null!=a&&await a.Post((async()=>{const n=e===exports.ToggleState.On?4294967295:0;i.setWireInValue(l.epAddress,n,u),await i.updateWireIns()})),d(i)}),[i,a,l,u]);return e.useEffect((()=>{d(i)}),[i,d]),e.createElement(ee,{ref:r,...c,disabled:s||null==i,state:t,onToggleStateChanged:f})}));fn.displayName="FrontPanelToggleSwitch";b("");const pn=e.forwardRef(((n,r)=>{const{device:t,workQueue:o}=e.useContext(h),{fpEndpoint:i,disabled:a,...l}=n,s=e.useCallback((async()=>{null!=t&&null!=o&&await o.Post((async()=>{await t.activateTriggerIn(i.epAddress,i.bitOffset)}))}),[t,o,i]);return e.createElement(S,{...l,ref:r,disabled:a||null==t,onButtonDown:s})}));pn.displayName="FrontPanelTriggerButton";const mn=e.forwardRef(((n,r)=>{const[t,o]=e.useState(0n),{device:i,workQueue:a}=e.useContext(h),{fpEndpoint:l,maximumValue:s,disabled:c,...u}=n,d=e.useMemo((()=>g(BigInt(s))),[s]),f=(1n<<BigInt(d))-1n<<BigInt(l.bitOffset),p=e.useCallback((e=>{if(null!=e&&null!=a){const n=e.getWireInValue(l.epAddress),r=(BigInt(n)&f)>>BigInt(l.bitOffset);o(r)}else o(0n)}),[a,l,f]),m=e.useCallback((e=>{null!=i&&null!=a&&a.Post((async()=>{i.setWireInValue(l.epAddress,e<<l.bitOffset,Number(f)),await i.updateWireIns()}))}),[i,a,l,a,f]);return e.useEffect((()=>{p(i)}),[i,p]),e.createElement(M,{...u,ref:r,disabled:c||null==i,defaultValue:Number(t),maximumValue:s,onValueChange:m})}));mn.displayName="FrontPanelRangeSlider";const gn=n=>{const[r,t]=e.useState(0n),{device:o,workQueue:i}=e.useContext(h),{fpEndpoint:a,maximumValue:l,disabled:s,...c}=n,u=e.useMemo((()=>g(l)),[l]),d=(1n<<BigInt(u))-1n<<BigInt(a.bitOffset),f=e.useCallback((e=>{if(null!=e&&null!=i){let n=e.getWireInValue(a.epAddress),r=0xffffffffn&d,o=(BigInt(n)&r)>>BigInt(a.bitOffset);if(d>0xffffffffn){let t=32n-BigInt(a.bitOffset),i=d>>32n;for(let l=a.epAddress+1;l<=an&&i>0n;l++)n=e.getWireInValue(l),r=0xffffffffn&i,o|=(BigInt(n)&r)<<t,t+=32n,i>>=32n}t(o)}else t(0n)}),[i,a,d]),p=e.useCallback((e=>{if(null!=o&&null!=i){const n=BigInt(e);i.Post((async()=>{let e=0xffffffffn&d,r=Number(n<<BigInt(a.bitOffset)&e);if(o.setWireInValue(a.epAddress,r,Number(e)),d>0xffffffffn){let t=32n-BigInt(a.bitOffset),i=d>>32n;const l=32-a.epAddress;for(let s=1;s<l&&i>0n;s++)e=0xffffffffn&i,r=Number(n>>t&e),o.setWireInValue(a.epAddress+s,r,Number(e)),t+=32n,i>>=32n}await o.updateWireIns()}))}f(o)}),[o,i,a,f]);return e.useEffect((()=>{f(o)}),[o,f]),e.createElement($.Root,{...c,disabled:s||null==o,value:r.toString(),onValueChange:p})};gn.displayName="FrontPanelSelectEntryRoot";const hn=Object.assign({},{Root:gn,Trigger:H,Content:K,Item:X,Group:Q,Label:Y,Separator:Z});exports.Application=x,exports.Button=S,exports.CalculateBitLength=g,exports.FrontPanel=y,exports.FrontPanelContext=h,exports.FrontPanelIndicator=un,exports.FrontPanelNumberDisplay=cn,exports.FrontPanelNumberEntry=sn,exports.FrontPanelPushButton=dn,exports.FrontPanelRangeSlider=mn,exports.FrontPanelSelectEntry=hn,exports.FrontPanelSelectEntryRoot=gn,exports.FrontPanelToggleSwitch=fn,exports.FrontPanelTriggerButton=pn,exports.Indicator=D,exports.Label=z,exports.NumberDisplay=P,exports.NumberEntry=R,exports.NumericDigits=m,exports.RangeSlider=M,exports.SelectEntry=$,exports.SelectEntryContent=K,exports.SelectEntryGroup=Q,exports.SelectEntryItem=X,exports.SelectEntryLabel=Y,exports.SelectEntryRoot=U,exports.SelectEntrySeparator=Z,exports.SelectEntryTrigger=H,exports.Toggle=J,exports.ToggleSwitch=ee,exports.Tooltip=v;
|
2
2
|
//# sourceMappingURL=index.js.map
|