@nethesis/phone-island 0.8.44 → 0.8.45
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/SettingsView/AudioView.js +1 -1
- package/dist/components/SettingsView/AudioView.js.map +1 -1
- package/dist/components/SettingsView/MichrophoneView.js +1 -1
- package/dist/components/SettingsView/MichrophoneView.js.map +1 -1
- package/dist/components/SettingsView/SettingsHeader.js +1 -1
- package/dist/components/SettingsView/SettingsHeader.js.map +1 -1
- package/dist/components/SettingsView/ThemeView.js +1 -1
- package/dist/components/SettingsView/ThemeView.js.map +1 -1
- package/dist/components/SettingsView/index.js +1 -1
- package/dist/components/SettingsView/index.js.map +1 -1
- package/dist/index.css +1 -1
- package/package.json +1 -1
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react");require("../../node_modules/react-redux/es/index.js");var t=require("../../node_modules/@fortawesome/react-fontawesome/index.es.js"),i=require("../../node_modules/@fortawesome/free-solid-svg-icons/index.mjs.js"),n=require("../../node_modules/i18next/dist/esm/i18next.js"),r=require("../../utils/customHooks/useEventListener.js"),o=require("../../utils/genericFunctions/eventDispatch.js"),u=require("../../utils/genericFunctions/localStorage.js"),a=require("./SettingsHeader.js"),c=require("../../node_modules/react-redux/es/hooks/useSelector.js");function s(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react");require("../../node_modules/react-redux/es/index.js");var t=require("../../node_modules/@fortawesome/react-fontawesome/index.es.js"),i=require("../../node_modules/@fortawesome/free-solid-svg-icons/index.mjs.js"),n=require("../../node_modules/i18next/dist/esm/i18next.js"),r=require("../../utils/customHooks/useEventListener.js"),o=require("../../utils/genericFunctions/eventDispatch.js"),u=require("../../utils/genericFunctions/localStorage.js"),a=require("./SettingsHeader.js"),c=require("../../node_modules/react-redux/es/hooks/useSelector.js");function s(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var l=s(e);exports.default=function(){var s=c.useSelector((function(e){return e.player.remoteAudio})),d=e.useState(u.getJSONItem("phone-island-audio-output-device").deviceId||null),p=d[0],f=d[1],v=function(e){f(e),null==s||s.current.setSinkId(e).then((function(){console.info("Audio output device switch success!"),u.setJSONItem("phone-island-audio-output-device",{deviceId:e}),o.eventDispatch("phone-island-call-audio-output-switched",{})})).catch((function(e){console.error("Audio output device switch error:",e)}))};r.useEventListener("phone-island-call-audio-output-switch",(function(e){v(e.deviceId)}));var m=e.useState([]),g=m[0],x=m[1];e.useEffect((function(){var e=function(){navigator.mediaDevices.enumerateDevices().then((function(e){x(e)})).catch((function(e){console.error("error",e)}))};return e(),navigator.mediaDevices.addEventListener("devicechange",e),function(){navigator.mediaDevices.removeEventListener("devicechange",e)}}),[p]);var h=e.useState(null),E=h[0],j=h[1];return l.default.createElement("div",{className:"pi-flex pi-flex-col pi-w-full"},l.default.createElement(a.SettingsHeader,{title:n.t("Settings.Speakers"),tooltipPrefix:"audio"}),l.default.createElement("div",{className:"pi-flex pi-flex-col pi-mt-2 pi-space-y-1"},g.filter((function(e){return"audioinput"===(null==e?void 0:e.kind)})).map((function(e,n){return l.default.createElement("div",{key:n,className:"pi-flex pi-items-center pi-justify-between pi-py-3 pi-px-4 pi-rounded-md hover:pi-bg-gray-100 dark:hover:pi-bg-gray-600 pi-text-gray-700 dark:pi-text-gray-200",onClick:function(){return v(null==e?void 0:e.deviceId)},onMouseEnter:function(){return j(null==e?void 0:e.deviceId)},onMouseLeave:function(){return j(null)}},l.default.createElement("div",{className:"pi-flex pi-items-center"},l.default.createElement(t.FontAwesomeIcon,{icon:i.faVolumeHigh,className:"pi-mr-2"}),l.default.createElement("span",null,(null==e?void 0:e.label)||"Input device ".concat(n+1))),l.default.createElement("div",{className:"pi-flex pi-items-center"},p===(null==e?void 0:e.deviceId)&&l.default.createElement(t.FontAwesomeIcon,{icon:i.faCheck,className:"".concat(E===(null==e?void 0:e.deviceId)?"pi-text-gray-500 dark:pi-text-gray-200":"pi-text-green-600 dark:pi-text-green-400")})))}))))};
|
|
2
2
|
//# sourceMappingURL=AudioView.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AudioView.js","sources":["../../../src/components/SettingsView/AudioView.tsx"],"sourcesContent":["// Copyright (C) 2025 Nethesis S.r.l.\n// SPDX-License-Identifier: AGPL-3.0-or-later\n\nimport React, { useState, useEffect } from 'react'\nimport { useSelector } from 'react-redux'\nimport { RootState } from '../../store'\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\nimport { faCheck, faVolumeHigh } from '@fortawesome/free-solid-svg-icons'\nimport { t } from 'i18next'\nimport { eventDispatch, getJSONItem, setJSONItem, useEventListener } from '../../utils'\nimport { SettingsHeader } from './SettingsHeader'\n\nconst AudioView = () => {\n const remoteAudioElement: any = useSelector((state: RootState) => state.player.remoteAudio)\n\n const [selectedAudioOutput, setSelectedAudioOutput] = useState<string | null>(\n getJSONItem('phone-island-audio-output-device').deviceId || null,\n )\n const handleClickAudioOutput = (audioOutputDevice: string) => {\n setSelectedAudioOutput(audioOutputDevice)\n\n remoteAudioElement?.current\n .setSinkId(audioOutputDevice)\n .then(function () {\n console.info('Audio output device switch success!')\n // set device to localstorage\n setJSONItem('phone-island-audio-output-device', { deviceId: audioOutputDevice })\n\n // dispatch event\n eventDispatch('phone-island-call-audio-output-switched', {})\n })\n .catch(function (err) {\n console.error('Audio output device switch error:', err)\n })\n }\n useEventListener('phone-island-call-audio-output-switch', (data: DeviceInputOutputTypes) => {\n handleClickAudioOutput(data.deviceId)\n })\n\n const [actualDevice, setActualDevice]: any = useState([])\n\n useEffect(() => {\n const checkInputOutputDevices = () => {\n navigator.mediaDevices\n .enumerateDevices()\n .then((deviceInfos) => {\n setActualDevice(deviceInfos)\n })\n .catch((error) => {\n console.error('error', error)\n })\n }\n\n checkInputOutputDevices()\n\n navigator.mediaDevices.addEventListener('devicechange', checkInputOutputDevices)\n\n return () => {\n navigator.mediaDevices.removeEventListener('devicechange', checkInputOutputDevices)\n }\n }, [selectedAudioOutput])\n\n const [hoveredDevice, setHoveredDevice] = useState<string | null>(null)\n\n return (\n <div className='pi-flex pi-flex-col pi-w-full'>\n {/* Title */}\n <SettingsHeader title={t('Settings.Speakers')} tooltipPrefix='audio' />\n\n {/*
|
|
1
|
+
{"version":3,"file":"AudioView.js","sources":["../../../src/components/SettingsView/AudioView.tsx"],"sourcesContent":["// Copyright (C) 2025 Nethesis S.r.l.\n// SPDX-License-Identifier: AGPL-3.0-or-later\n\nimport React, { useState, useEffect } from 'react'\nimport { useSelector } from 'react-redux'\nimport { RootState } from '../../store'\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\nimport { faCheck, faVolumeHigh } from '@fortawesome/free-solid-svg-icons'\nimport { t } from 'i18next'\nimport { eventDispatch, getJSONItem, setJSONItem, useEventListener } from '../../utils'\nimport { SettingsHeader } from './SettingsHeader'\n\nconst AudioView = () => {\n const remoteAudioElement: any = useSelector((state: RootState) => state.player.remoteAudio)\n\n const [selectedAudioOutput, setSelectedAudioOutput] = useState<string | null>(\n getJSONItem('phone-island-audio-output-device').deviceId || null,\n )\n const handleClickAudioOutput = (audioOutputDevice: string) => {\n setSelectedAudioOutput(audioOutputDevice)\n\n remoteAudioElement?.current\n .setSinkId(audioOutputDevice)\n .then(function () {\n console.info('Audio output device switch success!')\n // set device to localstorage\n setJSONItem('phone-island-audio-output-device', { deviceId: audioOutputDevice })\n\n // dispatch event\n eventDispatch('phone-island-call-audio-output-switched', {})\n })\n .catch(function (err) {\n console.error('Audio output device switch error:', err)\n })\n }\n useEventListener('phone-island-call-audio-output-switch', (data: DeviceInputOutputTypes) => {\n handleClickAudioOutput(data.deviceId)\n })\n\n const [actualDevice, setActualDevice]: any = useState([])\n\n useEffect(() => {\n const checkInputOutputDevices = () => {\n navigator.mediaDevices\n .enumerateDevices()\n .then((deviceInfos) => {\n setActualDevice(deviceInfos)\n })\n .catch((error) => {\n console.error('error', error)\n })\n }\n\n checkInputOutputDevices()\n\n navigator.mediaDevices.addEventListener('devicechange', checkInputOutputDevices)\n\n return () => {\n navigator.mediaDevices.removeEventListener('devicechange', checkInputOutputDevices)\n }\n }, [selectedAudioOutput])\n\n const [hoveredDevice, setHoveredDevice] = useState<string | null>(null)\n\n return (\n <div className='pi-flex pi-flex-col pi-w-full'>\n {/* Title */}\n <SettingsHeader title={t('Settings.Speakers')} tooltipPrefix='audio' />\n\n {/* Microphone List */}\n <div className='pi-flex pi-flex-col pi-mt-2 pi-space-y-1'>\n {actualDevice\n .filter((device) => device?.kind === 'audioinput')\n .map((audioDevice, index) => (\n <div\n key={index}\n className='pi-flex pi-items-center pi-justify-between pi-py-3 pi-px-4 pi-rounded-md hover:pi-bg-gray-100 dark:hover:pi-bg-gray-600 pi-text-gray-700 dark:pi-text-gray-200'\n onClick={() => handleClickAudioOutput(audioDevice?.deviceId)}\n onMouseEnter={() => setHoveredDevice(audioDevice?.deviceId)}\n onMouseLeave={() => setHoveredDevice(null)}\n >\n <div className='pi-flex pi-items-center'>\n <FontAwesomeIcon icon={faVolumeHigh} className='pi-mr-2' />\n <span>{audioDevice?.label || `Input device ${index + 1}`}</span>\n </div>\n <div className='pi-flex pi-items-center'>\n {selectedAudioOutput === audioDevice?.deviceId && (\n <FontAwesomeIcon\n icon={faCheck}\n className={`${\n hoveredDevice === audioDevice?.deviceId\n ? 'pi-text-gray-500 dark:pi-text-gray-200'\n : 'pi-text-green-600 dark:pi-text-green-400'\n }`}\n />\n )}\n </div>\n </div>\n ))}\n </div>\n </div>\n )\n}\n\ninterface DeviceInputOutputTypes {\n deviceId: string\n}\n\nexport default AudioView\n"],"names":["remoteAudioElement","useSelector","state","player","remoteAudio","_a","useState","getJSONItem","deviceId","selectedAudioOutput","setSelectedAudioOutput","handleClickAudioOutput","audioOutputDevice","current","setSinkId","then","console","info","setJSONItem","eventDispatch","catch","err","error","useEventListener","data","_b","actualDevice","setActualDevice","useEffect","checkInputOutputDevices","navigator","mediaDevices","enumerateDevices","deviceInfos","addEventListener","removeEventListener","_c","hoveredDevice","setHoveredDevice","React","createElement","className","SettingsHeader","title","t","tooltipPrefix","filter","device","kind","map","audioDevice","index","key","onClick","onMouseEnter","onMouseLeave","FontAwesomeIcon","icon","faVolumeHigh","label","faCheck","concat"],"mappings":"iuBAYkB,WAChB,IAAMA,EAA0BC,eAAY,SAACC,GAAqB,OAAAA,EAAMC,OAAOC,WAAb,IAE5DC,EAAgDC,EAAAA,SACpDC,EAAAA,YAAY,oCAAoCC,UAAY,MADvDC,OAAqBC,OAGtBC,EAAyB,SAACC,GAC9BF,EAAuBE,GAEvBZ,SAAAA,EAAoBa,QACjBC,UAAUF,GACVG,MAAK,WACJC,QAAQC,KAAK,uCAEbC,EAAAA,YAAY,mCAAoC,CAAEV,SAAUI,IAG5DO,gBAAc,0CAA2C,CAAA,EAC3D,IACCC,OAAM,SAAUC,GACfL,QAAQM,MAAM,oCAAqCD,EACrD,GACJ,EACAE,mBAAiB,yCAAyC,SAACC,GACzDb,EAAuBa,EAAKhB,SAC9B,IAEM,IAAAiB,EAAuCnB,EAAAA,SAAS,IAA/CoB,EAAYD,EAAA,GAAEE,EAAeF,EAAA,GAEpCG,EAAAA,WAAU,WACR,IAAMC,EAA0B,WAC9BC,UAAUC,aACPC,mBACAjB,MAAK,SAACkB,GACLN,EAAgBM,EAClB,IACCb,OAAM,SAACE,GACNN,QAAQM,MAAM,QAASA,EACzB,GACJ,EAMA,OAJAO,IAEAC,UAAUC,aAAaG,iBAAiB,eAAgBL,GAEjD,WACLC,UAAUC,aAAaI,oBAAoB,eAAgBN,EAC7D,CACF,GAAG,CAACpB,IAEE,IAAA2B,EAAoC9B,EAAAA,SAAwB,MAA3D+B,EAAaD,EAAA,GAAEE,EAAgBF,EAAA,GAEtC,OACEG,EAAA,QAAAC,cAAA,MAAA,CAAKC,UAAU,iCAEbF,UAAAC,cAACE,EAAcA,eAAA,CAACC,MAAOC,EAACA,EAAC,qBAAsBC,cAAc,UAG7DN,EAAA,QAAAC,cAAA,MAAA,CAAKC,UAAU,4CACZf,EACEoB,QAAO,SAACC,GAAW,MAAiB,gBAAjBA,aAAM,EAANA,EAAQC,KAAqB,IAChDC,KAAI,SAACC,EAAaC,GAAU,OAC3BZ,EACE,QAAAC,cAAA,MAAA,CAAAY,IAAKD,EACLV,UAAU,iKACVY,QAAS,WAAM,OAAA1C,EAAuBuC,aAAA,EAAAA,EAAa1C,WACnD8C,aAAc,WAAM,OAAAhB,EAAiBY,aAAW,EAAXA,EAAa1C,WAClD+C,aAAc,WAAM,OAAAjB,EAAiB,QAErCC,EAAAA,QAAKC,cAAA,MAAA,CAAAC,UAAU,2BACbF,EAAC,QAAAC,cAAAgB,mBAAgBC,KAAMC,eAAcjB,UAAU,YAC/CF,EAAA,QAAAC,cAAA,OAAA,MAAOU,eAAAA,EAAaS,QAAS,uBAAgBR,EAAQ,KAEvDZ,EAAA,QAAAC,cAAA,MAAA,CAAKC,UAAU,2BACZhC,KAAwByC,eAAAA,EAAa1C,WACpC+B,EAAAA,QAAAC,cAACgB,EAAAA,gBAAe,CACdC,KAAMG,EAAOA,QACbnB,UAAW,GACToB,OAAAxB,KAAkBa,aAAW,EAAXA,EAAa1C,UAC3B,yCACA,+CAMf,KAIX"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react");require("../../node_modules/react-redux/es/index.js");var t=require("../../node_modules/@fortawesome/react-fontawesome/index.es.js"),i=require("../../node_modules/@fortawesome/free-solid-svg-icons/index.mjs.js"),n=require("../../node_modules/i18next/dist/esm/i18next.js"),r=require("../../utils/customHooks/useEventListener.js"),
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react");require("../../node_modules/react-redux/es/index.js");var t=require("../../node_modules/@fortawesome/react-fontawesome/index.es.js"),i=require("../../node_modules/@fortawesome/free-solid-svg-icons/index.mjs.js"),n=require("../../node_modules/i18next/dist/esm/i18next.js"),r=require("../../utils/customHooks/useEventListener.js"),c=require("../../utils/genericFunctions/eventDispatch.js"),o=require("../../utils/genericFunctions/localStorage.js"),a=require("./SettingsHeader.js"),u=require("../../node_modules/react-redux/es/hooks/useSelector.js");function s(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var d=s(e);exports.default=function(){var s=u.useSelector((function(e){return e.webrtc})).sipcall,l=e.useState(o.getJSONItem("phone-island-audio-input-device").deviceId||null),p=l[0],v=l[1],f=e.useState([]),m=f[0],h=f[1],x=function(e){v(e),s.webrtcStuff.myStream?null==s||s.replaceTracks({tracks:[{type:"audio",mid:"0",capture:{deviceId:{exact:e}}}],success:function(){console.info("Audio input device switch success!"),o.setJSONItem("phone-island-audio-input-device",{deviceId:e}),c.eventDispatch("phone-island-call-audio-input-switched",{})},error:function(e){console.error("Audio input device switch error:",e)}}):(o.setJSONItem("phone-island-audio-input-device",{deviceId:e}),c.eventDispatch("phone-island-call-audio-input-switched",{}))};r.useEventListener("phone-island-call-audio-input-switch",(function(e){x(e.deviceId)})),e.useEffect((function(){var e=function(){navigator.mediaDevices.enumerateDevices().then((function(e){h(e)})).catch((function(e){console.error("Error fetching devices:",e)}))};return e(),navigator.mediaDevices.addEventListener("devicechange",e),function(){navigator.mediaDevices.removeEventListener("devicechange",e)}}),[p]);var g=e.useState(null),y=g[0],E=g[1];return d.default.createElement("div",{className:"pi-flex pi-flex-col pi-w-full"},d.default.createElement(a.SettingsHeader,{title:n.t("Settings.Microphones"),tooltipPrefix:"microphone"}),d.default.createElement("div",{className:"pi-flex pi-flex-col pi-mt-2 pi-space-y-1"},m.filter((function(e){return"audioinput"===(null==e?void 0:e.kind)})).map((function(e,n){return d.default.createElement("div",{key:n,className:"pi-flex pi-items-center pi-justify-between pi-py-3 pi-px-4 pi-rounded-md hover:pi-bg-gray-100 dark:hover:pi-bg-gray-600 pi-text-gray-700 dark:pi-text-gray-200 hover:pi-text-gray-700 dark:hover:pi-text-gray-200",onClick:function(){return x(null==e?void 0:e.deviceId)},onMouseEnter:function(){return E(null==e?void 0:e.deviceId)},onMouseLeave:function(){return E(null)}},d.default.createElement("div",{className:"pi-flex pi-items-center"},d.default.createElement(t.FontAwesomeIcon,{icon:i.faMicrophone,className:" pi-mr-2"}),d.default.createElement("span",null,(null==e?void 0:e.label)||"Input device ".concat(n+1))),d.default.createElement("div",{className:"pi-flex pi-items-center"},p===(null==e?void 0:e.deviceId)&&d.default.createElement(t.FontAwesomeIcon,{icon:i.faCheck,className:"".concat(y===(null==e?void 0:e.deviceId)?"pi-text-gray-500 dark:pi-text-gray-200":"pi-text-green-600 dark:pi-text-green-400")})))}))))};
|
|
2
2
|
//# sourceMappingURL=MichrophoneView.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MichrophoneView.js","sources":["../../../src/components/SettingsView/MichrophoneView.tsx"],"sourcesContent":["// Copyright (C) 2024 Nethesis S.r.l.\n// SPDX-License-Identifier: AGPL-3.0-or-later\n\nimport React, { useState, useEffect } from 'react'\nimport { useSelector } from 'react-redux'\nimport { RootState } from '../../store'\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\nimport { faCheck, faMicrophone } from '@fortawesome/free-solid-svg-icons'\nimport { t } from 'i18next'\nimport { eventDispatch, getJSONItem, setJSONItem, useEventListener } from '../../utils'\nimport { SettingsHeader } from './SettingsHeader'\n\nconst MicrophoneView = () => {\n const { sipcall }: any = useSelector((state: RootState) => state.webrtc)\n\n const [selectedAudioInput, setSelectedAudioInput] = useState<string | null>(\n getJSONItem('phone-island-audio-input-device').deviceId || null,\n )\n const [actualDevices, setActualDevices]: any = useState([])\n\n const handleClickAudioInput = (audioInputDevice: string) => {\n setSelectedAudioInput(audioInputDevice)\n\n if (sipcall.webrtcStuff.myStream) {\n sipcall?.replaceTracks({\n tracks: [\n {\n type: 'audio',\n mid: '0',\n capture: { deviceId: { exact: audioInputDevice } },\n },\n ],\n success: function () {\n console.info('Audio input device switch success!')\n setJSONItem('phone-island-audio-input-device', { deviceId: audioInputDevice })\n eventDispatch('phone-island-call-audio-input-switched', {})\n },\n error: function (err) {\n console.error('Audio input device switch error:', err)\n },\n })\n } else {\n setJSONItem('phone-island-audio-input-device', { deviceId: audioInputDevice })\n eventDispatch('phone-island-call-audio-input-switched', {})\n }\n }\n\n useEventListener('phone-island-call-audio-input-switch', (data: DeviceInputOutputTypes) => {\n handleClickAudioInput(data.deviceId)\n })\n\n useEffect(() => {\n const checkInputOutputDevices = () => {\n navigator.mediaDevices\n .enumerateDevices()\n .then((deviceInfos) => {\n setActualDevices(deviceInfos)\n })\n .catch((error) => {\n console.error('Error fetching devices:', error)\n })\n }\n\n checkInputOutputDevices()\n\n navigator.mediaDevices.addEventListener('devicechange', checkInputOutputDevices)\n\n return () => {\n navigator.mediaDevices.removeEventListener('devicechange', checkInputOutputDevices)\n }\n }, [selectedAudioInput])\n\n const [hoveredDevice, setHoveredDevice] = useState<string | null>(null)\n\n return (\n <div className='pi-flex pi-flex-col pi-w-full'>\n {/* Title */}\n <SettingsHeader title={t('Settings.Microphones')} tooltipPrefix='microphone' />\n
|
|
1
|
+
{"version":3,"file":"MichrophoneView.js","sources":["../../../src/components/SettingsView/MichrophoneView.tsx"],"sourcesContent":["// Copyright (C) 2024 Nethesis S.r.l.\n// SPDX-License-Identifier: AGPL-3.0-or-later\n\nimport React, { useState, useEffect } from 'react'\nimport { useSelector } from 'react-redux'\nimport { RootState } from '../../store'\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\nimport { faCheck, faMicrophone } from '@fortawesome/free-solid-svg-icons'\nimport { t } from 'i18next'\nimport { eventDispatch, getJSONItem, setJSONItem, useEventListener } from '../../utils'\nimport { SettingsHeader } from './SettingsHeader'\n\nconst MicrophoneView = () => {\n const { sipcall }: any = useSelector((state: RootState) => state.webrtc)\n\n const [selectedAudioInput, setSelectedAudioInput] = useState<string | null>(\n getJSONItem('phone-island-audio-input-device').deviceId || null,\n )\n const [actualDevices, setActualDevices]: any = useState([])\n\n const handleClickAudioInput = (audioInputDevice: string) => {\n setSelectedAudioInput(audioInputDevice)\n\n if (sipcall.webrtcStuff.myStream) {\n sipcall?.replaceTracks({\n tracks: [\n {\n type: 'audio',\n mid: '0',\n capture: { deviceId: { exact: audioInputDevice } },\n },\n ],\n success: function () {\n console.info('Audio input device switch success!')\n setJSONItem('phone-island-audio-input-device', { deviceId: audioInputDevice })\n eventDispatch('phone-island-call-audio-input-switched', {})\n },\n error: function (err) {\n console.error('Audio input device switch error:', err)\n },\n })\n } else {\n setJSONItem('phone-island-audio-input-device', { deviceId: audioInputDevice })\n eventDispatch('phone-island-call-audio-input-switched', {})\n }\n }\n\n useEventListener('phone-island-call-audio-input-switch', (data: DeviceInputOutputTypes) => {\n handleClickAudioInput(data.deviceId)\n })\n\n useEffect(() => {\n const checkInputOutputDevices = () => {\n navigator.mediaDevices\n .enumerateDevices()\n .then((deviceInfos) => {\n setActualDevices(deviceInfos)\n })\n .catch((error) => {\n console.error('Error fetching devices:', error)\n })\n }\n\n checkInputOutputDevices()\n\n navigator.mediaDevices.addEventListener('devicechange', checkInputOutputDevices)\n\n return () => {\n navigator.mediaDevices.removeEventListener('devicechange', checkInputOutputDevices)\n }\n }, [selectedAudioInput])\n\n const [hoveredDevice, setHoveredDevice] = useState<string | null>(null)\n\n return (\n <div className='pi-flex pi-flex-col pi-w-full'>\n {/* Title */}\n <SettingsHeader title={t('Settings.Microphones')} tooltipPrefix='microphone' />\n \n {/* Microphone List */}\n <div className='pi-flex pi-flex-col pi-mt-2 pi-space-y-1'>\n {actualDevices\n .filter((device) => device?.kind === 'audioinput')\n .map((audioDevice, index) => (\n <div\n key={index}\n className='pi-flex pi-items-center pi-justify-between pi-py-3 pi-px-4 pi-rounded-md hover:pi-bg-gray-100 dark:hover:pi-bg-gray-600 pi-text-gray-700 dark:pi-text-gray-200 hover:pi-text-gray-700 dark:hover:pi-text-gray-200'\n onClick={() => handleClickAudioInput(audioDevice?.deviceId)}\n onMouseEnter={() => setHoveredDevice(audioDevice?.deviceId)}\n onMouseLeave={() => setHoveredDevice(null)}\n >\n <div className='pi-flex pi-items-center'>\n <FontAwesomeIcon icon={faMicrophone} className=' pi-mr-2' />\n <span>{audioDevice?.label || `Input device ${index + 1}`}</span>\n </div>\n <div className='pi-flex pi-items-center'>\n {selectedAudioInput === audioDevice?.deviceId && (\n <FontAwesomeIcon\n icon={faCheck}\n className={`${\n hoveredDevice === audioDevice?.deviceId\n ? 'pi-text-gray-500 dark:pi-text-gray-200'\n : 'pi-text-green-600 dark:pi-text-green-400'\n }`}\n />\n )}\n </div>\n </div>\n ))}\n </div>\n </div>\n )\n}\n\ninterface DeviceInputOutputTypes {\n deviceId: string\n}\n\nexport default MicrophoneView\n"],"names":["sipcall","useSelector","state","webrtc","_a","useState","getJSONItem","deviceId","selectedAudioInput","setSelectedAudioInput","_b","actualDevices","setActualDevices","handleClickAudioInput","audioInputDevice","webrtcStuff","myStream","replaceTracks","tracks","type","mid","capture","exact","success","console","info","setJSONItem","eventDispatch","error","err","useEventListener","data","useEffect","checkInputOutputDevices","navigator","mediaDevices","enumerateDevices","then","deviceInfos","catch","addEventListener","removeEventListener","_c","hoveredDevice","setHoveredDevice","React","createElement","className","SettingsHeader","title","t","tooltipPrefix","filter","device","kind","map","audioDevice","index","key","onClick","onMouseEnter","onMouseLeave","FontAwesomeIcon","icon","faMicrophone","label","faCheck","concat"],"mappings":"iuBAYuB,WACb,IAAAA,EAAiBC,eAAY,SAACC,GAAqB,OAAAA,EAAMC,kBAE3DC,EAA8CC,EAAAA,SAClDC,EAAAA,YAAY,mCAAmCC,UAAY,MADtDC,OAAoBC,OAGrBC,EAAyCL,EAAAA,SAAS,IAAjDM,EAAaD,EAAA,GAAEE,EAAgBF,EAAA,GAEhCG,EAAwB,SAACC,GAC7BL,EAAsBK,GAElBd,EAAQe,YAAYC,SACtBhB,SAAAA,EAASiB,cAAc,CACrBC,OAAQ,CACN,CACEC,KAAM,QACNC,IAAK,IACLC,QAAS,CAAEd,SAAU,CAAEe,MAAOR,MAGlCS,QAAS,WACPC,QAAQC,KAAK,sCACbC,EAAAA,YAAY,kCAAmC,CAAEnB,SAAUO,IAC3Da,gBAAc,yCAA0C,CAAA,EACzD,EACDC,MAAO,SAAUC,GACfL,QAAQI,MAAM,mCAAoCC,EACnD,KAGHH,EAAAA,YAAY,kCAAmC,CAAEnB,SAAUO,IAC3Da,gBAAc,yCAA0C,CAAA,GAE5D,EAEAG,mBAAiB,wCAAwC,SAACC,GACxDlB,EAAsBkB,EAAKxB,SAC7B,IAEAyB,EAAAA,WAAU,WACR,IAAMC,EAA0B,WAC9BC,UAAUC,aACPC,mBACAC,MAAK,SAACC,GACL1B,EAAiB0B,EACnB,IACCC,OAAM,SAACX,GACNJ,QAAQI,MAAM,0BAA2BA,EAC3C,GACJ,EAMA,OAJAK,IAEAC,UAAUC,aAAaK,iBAAiB,eAAgBP,GAEjD,WACLC,UAAUC,aAAaM,oBAAoB,eAAgBR,EAC7D,CACF,GAAG,CAACzB,IAEE,IAAAkC,EAAoCrC,EAAAA,SAAwB,MAA3DsC,EAAaD,EAAA,GAAEE,EAAgBF,EAAA,GAEtC,OACEG,EAAA,QAAAC,cAAA,MAAA,CAAKC,UAAU,iCAEbF,UAAAC,cAACE,EAAcA,eAAA,CAACC,MAAOC,EAACA,EAAC,wBAAyBC,cAAc,eAGhEN,EAAA,QAAAC,cAAA,MAAA,CAAKC,UAAU,4CACZpC,EACEyC,QAAO,SAACC,GAAW,MAAiB,gBAAjBA,aAAM,EAANA,EAAQC,KAAqB,IAChDC,KAAI,SAACC,EAAaC,GAAU,OAC3BZ,EACE,QAAAC,cAAA,MAAA,CAAAY,IAAKD,EACLV,UAAU,oNACVY,QAAS,WAAM,OAAA9C,EAAsB2C,aAAA,EAAAA,EAAajD,WAClDqD,aAAc,WAAM,OAAAhB,EAAiBY,aAAW,EAAXA,EAAajD,WAClDsD,aAAc,WAAM,OAAAjB,EAAiB,QAErCC,EAAAA,QAAKC,cAAA,MAAA,CAAAC,UAAU,2BACbF,EAAC,QAAAC,cAAAgB,mBAAgBC,KAAMC,eAAcjB,UAAU,aAC/CF,EAAA,QAAAC,cAAA,OAAA,MAAOU,eAAAA,EAAaS,QAAS,uBAAgBR,EAAQ,KAEvDZ,EAAA,QAAAC,cAAA,MAAA,CAAKC,UAAU,2BACZvC,KAAuBgD,eAAAA,EAAajD,WACnCsC,EAAAA,QAAAC,cAACgB,EAAAA,gBAAe,CACdC,KAAMG,EAAOA,QACbnB,UAAW,GACToB,OAAAxB,KAAkBa,aAAW,EAAXA,EAAajD,UAC3B,yCACA,+CAMf,KAIX"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react");require("../../node_modules/react-redux/es/index.js");var t=require("../../node_modules/@fortawesome/react-fontawesome/index.es.js"),
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react");require("../../node_modules/react-redux/es/index.js");var t=require("../../node_modules/@fortawesome/react-fontawesome/index.es.js"),a=require("../../node_modules/@fortawesome/free-solid-svg-icons/index.mjs.js"),o=require("../Button.js"),i=require("../../node_modules/react-tooltip/dist/react-tooltip.min.mjs.js"),n=require("../../node_modules/i18next/dist/esm/i18next.js"),r=require("../../node_modules/react-redux/es/hooks/useDispatch.js");function s(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var l=s(e);exports.SettingsHeader=function(e){var s=e.title,c=e.tooltipPrefix,d=r.useDispatch();return l.default.createElement(l.default.Fragment,null,l.default.createElement("div",{className:"pi-flex pi-items-center pi-justify-between"},l.default.createElement("div",{className:"pi-flex pi-items-center pi-gap-2"},l.default.createElement(o.Button,{onClick:function(){return d.island.setSettingsView("main")},variant:"transparentSettings","data-tooltip-id":"tooltip-back-".concat(c,"-settings"),"data-tooltip-content":n.t("Common.Back")||""},l.default.createElement(t.FontAwesomeIcon,{icon:a.faAngleLeft,size:"lg"})),l.default.createElement("h1",{className:"pi-text-lg pi-font-medium pi-text-gray-900 dark:pi-text-gray-50"},s)),l.default.createElement(o.Button,{onClick:function(){return d.island.setIslandView("call")},variant:"transparentSettings","data-tooltip-id":"tooltip-close-".concat(c,"-settings"),"data-tooltip-content":n.t("Common.Close")||""},l.default.createElement(t.FontAwesomeIcon,{icon:a.faXmark,size:"lg"}))),l.default.createElement("div",{className:"pi-border-t pi-border-gray-300 dark:pi-border-gray-600 pi-mt-1"}),l.default.createElement(i.Tooltip,{className:"pi-z-20",id:"tooltip-back-".concat(c,"-settings"),place:"bottom"}),l.default.createElement(i.Tooltip,{className:"pi-z-20",id:"tooltip-close-".concat(c,"-settings"),place:"bottom"}))};
|
|
2
2
|
//# sourceMappingURL=SettingsHeader.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SettingsHeader.js","sources":["../../../src/components/SettingsView/SettingsHeader.tsx"],"sourcesContent":["import React from 'react'\nimport { useDispatch } from 'react-redux'\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\nimport { faAngleLeft, faXmark } from '@fortawesome/free-solid-svg-icons'\nimport { Button } from '../Button'\nimport { Dispatch } from '../../store'\nimport { Tooltip } from 'react-tooltip'\nimport { t } from 'i18next'\n\ninterface SettingsHeaderProps {\n title: string\n tooltipPrefix: string\n}\n\nexport const SettingsHeader: React.FC<SettingsHeaderProps> = ({ title, tooltipPrefix }) => {\n const dispatch = useDispatch<Dispatch>()\n\n return (\n <>\n <div className='pi-flex pi-items-center pi-justify-between'>\n <div className='pi-flex pi-items-center pi-gap-2'>\n <Button\n onClick={() => dispatch.island.setSettingsView('main')}\n variant='transparentSettings'\n data-tooltip-id={`tooltip-back-${tooltipPrefix}-settings`}\n data-tooltip-content={t('Common.Back') || ''}\n >\n <FontAwesomeIcon icon={faAngleLeft} size='lg' />\n </Button>\n <h1 className='pi-text-lg pi-font-medium pi-text-gray-900 dark:pi-text-gray-50'>\n {title}\n </h1>\n </div>\n <Button\n onClick={() => dispatch.island.setIslandView('call')}\n variant='transparentSettings'\n data-tooltip-id={`tooltip-close-${tooltipPrefix}-settings`}\n data-tooltip-content={t('Common.Close') || ''}\n >\n <FontAwesomeIcon icon={faXmark} size='lg' />\n </Button>\n </div>\n <Tooltip className='pi-z-20' id={`tooltip-back-${tooltipPrefix}-settings`} place='bottom' />\n <Tooltip className='pi-z-20' id={`tooltip-close-${tooltipPrefix}-settings`} place='bottom' />\n </>\n )\n}\n"],"names":["_a","title","tooltipPrefix","dispatch","useDispatch","React","createElement","Fragment","className","Button","onClick","island","setSettingsView","variant","concat","t","FontAwesomeIcon","icon","faAngleLeft","size","setIslandView","faXmark","Tooltip","id","place"],"mappings":"+nBAc6D,SAACA,OAAEC,EAAKD,EAAAC,MAAEC,EAAaF,EAAAE,cAC5EC,EAAWC,EAAAA,cAEjB,OACEC,UAAAC,cAAAD,EAAA,QAAAE,SAAA,KACEF,EAAAA,QAAKC,cAAA,MAAA,CAAAE,UAAU,8CACbH,EAAAA,QAAKC,cAAA,MAAA,CAAAE,UAAU,oCACbH,EAAAA,QAAAC,cAACG,SAAM,CACLC,QAAS,WAAM,OAAAP,EAASQ,OAAOC,gBAAgB,OAAO,EACtDC,QAAQ,sBAAqB,kBACZ,gBAAgBC,OAAAZ,EAAwB,aAAA,uBACnCa,EAAAA,EAAE,gBAAkB,IAE1CV,UAACC,cAAAU,EAAAA,gBAAgB,CAAAC,KAAMC,EAAAA,YAAaC,KAAK,QAE3Cd,EAAA,QAAAC,cAAA,KAAA,CAAIE,UAAU,mEACXP,IAGLI,EAAAA,QAAAC,cAACG,SAAM,CACLC,QAAS,WAAM,OAAAP,EAASQ,OAAOS,cAAc,OAAO,EACpDP,QAAQ,sBAAqB,kBACZ,iBAAiBC,OAAAZ,EAAwB,aAAA,uBACpCa,EAAAA,EAAE,iBAAmB,IAE3CV,UAACC,cAAAU,EAAAA,gBAAgB,CAAAC,KAAMI,EAAAA,QAASF,KAAK,
|
|
1
|
+
{"version":3,"file":"SettingsHeader.js","sources":["../../../src/components/SettingsView/SettingsHeader.tsx"],"sourcesContent":["import React from 'react'\nimport { useDispatch } from 'react-redux'\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\nimport { faAngleLeft, faXmark } from '@fortawesome/free-solid-svg-icons'\nimport { Button } from '../Button'\nimport { Dispatch } from '../../store'\nimport { Tooltip } from 'react-tooltip'\nimport { t } from 'i18next'\n\ninterface SettingsHeaderProps {\n title: string\n tooltipPrefix: string\n}\n\nexport const SettingsHeader: React.FC<SettingsHeaderProps> = ({ title, tooltipPrefix }) => {\n const dispatch = useDispatch<Dispatch>()\n\n return (\n <>\n <div className='pi-flex pi-items-center pi-justify-between'>\n <div className='pi-flex pi-items-center pi-gap-2'>\n <Button\n onClick={() => dispatch.island.setSettingsView('main')}\n variant='transparentSettings'\n data-tooltip-id={`tooltip-back-${tooltipPrefix}-settings`}\n data-tooltip-content={t('Common.Back') || ''}\n >\n <FontAwesomeIcon icon={faAngleLeft} size='lg' />\n </Button>\n <h1 className='pi-text-lg pi-font-medium pi-text-gray-900 dark:pi-text-gray-50'>\n {title}\n </h1>\n </div>\n <Button\n onClick={() => dispatch.island.setIslandView('call')}\n variant='transparentSettings'\n data-tooltip-id={`tooltip-close-${tooltipPrefix}-settings`}\n data-tooltip-content={t('Common.Close') || ''}\n >\n <FontAwesomeIcon icon={faXmark} size='lg' />\n </Button>\n </div>\n {/* Divider */}\n <div className='pi-border-t pi-border-gray-300 dark:pi-border-gray-600 pi-mt-1' />\n <Tooltip className='pi-z-20' id={`tooltip-back-${tooltipPrefix}-settings`} place='bottom' />\n <Tooltip className='pi-z-20' id={`tooltip-close-${tooltipPrefix}-settings`} place='bottom' />\n </>\n )\n}\n"],"names":["_a","title","tooltipPrefix","dispatch","useDispatch","React","createElement","Fragment","className","Button","onClick","island","setSettingsView","variant","concat","t","FontAwesomeIcon","icon","faAngleLeft","size","setIslandView","faXmark","Tooltip","id","place"],"mappings":"+nBAc6D,SAACA,OAAEC,EAAKD,EAAAC,MAAEC,EAAaF,EAAAE,cAC5EC,EAAWC,EAAAA,cAEjB,OACEC,UAAAC,cAAAD,EAAA,QAAAE,SAAA,KACEF,EAAAA,QAAKC,cAAA,MAAA,CAAAE,UAAU,8CACbH,EAAAA,QAAKC,cAAA,MAAA,CAAAE,UAAU,oCACbH,EAAAA,QAAAC,cAACG,SAAM,CACLC,QAAS,WAAM,OAAAP,EAASQ,OAAOC,gBAAgB,OAAO,EACtDC,QAAQ,sBAAqB,kBACZ,gBAAgBC,OAAAZ,EAAwB,aAAA,uBACnCa,EAAAA,EAAE,gBAAkB,IAE1CV,UAACC,cAAAU,EAAAA,gBAAgB,CAAAC,KAAMC,EAAAA,YAAaC,KAAK,QAE3Cd,EAAA,QAAAC,cAAA,KAAA,CAAIE,UAAU,mEACXP,IAGLI,EAAAA,QAAAC,cAACG,SAAM,CACLC,QAAS,WAAM,OAAAP,EAASQ,OAAOS,cAAc,OAAO,EACpDP,QAAQ,sBAAqB,kBACZ,iBAAiBC,OAAAZ,EAAwB,aAAA,uBACpCa,EAAAA,EAAE,iBAAmB,IAE3CV,UAACC,cAAAU,EAAAA,gBAAgB,CAAAC,KAAMI,EAAAA,QAASF,KAAK,SAIzCd,EAAAA,QAAKC,cAAA,MAAA,CAAAE,UAAU,mEACfH,EAAAA,QAAAC,cAACgB,EAAAA,QAAO,CAACd,UAAU,UAAUe,GAAI,gBAAAT,OAAgBZ,EAAwB,aAAEsB,MAAM,WACjFnB,EAAA,QAAAC,cAACgB,EAAOA,QAAC,CAAAd,UAAU,UAAUe,GAAI,iBAAAT,OAAiBZ,EAAa,aAAasB,MAAM,WAGxF"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react");require("../../node_modules/react-redux/es/index.js");var t=require("../../node_modules/@fortawesome/react-fontawesome/index.es.js"),r=require("../../node_modules/@fortawesome/free-solid-svg-icons/index.mjs.js"),i=require("../../node_modules/i18next/dist/esm/i18next.js"),a=require("../../utils/genericFunctions/eventDispatch.js"),n=require("./SettingsHeader.js"),o=require("../../node_modules/react-redux/es/hooks/useSelector.js");function s(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var l=s(e);exports.default=function(){var s=o.useSelector((function(e){return e.darkTheme})).theme,
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react");require("../../node_modules/react-redux/es/index.js");var t=require("../../node_modules/@fortawesome/react-fontawesome/index.es.js"),r=require("../../node_modules/@fortawesome/free-solid-svg-icons/index.mjs.js"),i=require("../../node_modules/i18next/dist/esm/i18next.js"),a=require("../../utils/genericFunctions/eventDispatch.js"),n=require("./SettingsHeader.js"),o=require("../../node_modules/react-redux/es/hooks/useSelector.js");function s(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var l=s(e);exports.default=function(){var s=o.useSelector((function(e){return e.darkTheme})).theme,u=e.useState(null),c=u[0],d=u[1];return l.default.createElement("div",{className:"pi-flex pi-flex-col pi-w-full"},l.default.createElement(n.SettingsHeader,{title:i.t("Settings.Theme"),tooltipPrefix:"theme"}),l.default.createElement("div",{className:"pi-flex pi-flex-col pi-mt-2 pi-space-y-1"},[{id:"dark",icon:r.faMoon,label:"Settings.Dark"},{id:"light",icon:r.faSun,label:"Settings.Light"}].map((function(e){var n=e.id,o=e.icon,u=e.label;return l.default.createElement("div",{key:n,className:"pi-flex pi-items-center pi-justify-between pi-py-3 pi-px-4 pi-rounded-md hover:pi-bg-gray-100 dark:hover:pi-bg-gray-600 pi-text-gray-700 dark:pi-text-gray-200",onClick:function(){return e=n,void a.eventDispatch("phone-island-theme-change",{selectedTheme:e});var e},onMouseEnter:function(){return d(n)},onMouseLeave:function(){return d(null)},"data-stop-propagation":!0},l.default.createElement(t.FontAwesomeIcon,{size:"lg",icon:o,className:"pi-mr-3 dark:pi-text-gray-100 pi-text-gray-600"}),l.default.createElement("div",{className:"".concat(o===r.faMoon?"pi-ml-[0.2rem]":""," pi-flex-grow")},i.t(u)),s===n&&l.default.createElement(t.FontAwesomeIcon,{size:"lg",icon:r.faCheck,className:"".concat(c===n?"pi-text-gray-500 dark:pi-text-gray-200":"pi-text-green-600 dark:pi-text-green-400")}))}))))};
|
|
2
2
|
//# sourceMappingURL=ThemeView.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ThemeView.js","sources":["../../../src/components/SettingsView/ThemeView.tsx"],"sourcesContent":["// Copyright (C) 2025 Nethesis S.r.l.\n// SPDX-License-Identifier: AGPL-3.0-or-later\n\nimport React, { useState } from 'react'\nimport { useSelector } from 'react-redux'\nimport { RootState } from '../../store'\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\nimport { faCheck, faMoon, faSun } from '@fortawesome/free-solid-svg-icons'\nimport { t } from 'i18next'\nimport { eventDispatch } from '../../utils'\nimport { SettingsHeader } from './SettingsHeader'\n\nconst ThemeView = () => {\n const handleSelectTheme = (clickedTheme: string) => {\n eventDispatch('phone-island-theme-change', { selectedTheme: clickedTheme })\n }\n\n const { theme } = useSelector((state: RootState) => state.darkTheme)\n const [hoveredDevice, setHoveredDevice] = useState<string | null>(null)\n\n return (\n <div className='pi-flex pi-flex-col pi-w-full'>\n {/* Title */}\n <SettingsHeader title={t('Settings.Theme')} tooltipPrefix='theme' />\n
|
|
1
|
+
{"version":3,"file":"ThemeView.js","sources":["../../../src/components/SettingsView/ThemeView.tsx"],"sourcesContent":["// Copyright (C) 2025 Nethesis S.r.l.\n// SPDX-License-Identifier: AGPL-3.0-or-later\n\nimport React, { useState } from 'react'\nimport { useSelector } from 'react-redux'\nimport { RootState } from '../../store'\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\nimport { faCheck, faMoon, faSun } from '@fortawesome/free-solid-svg-icons'\nimport { t } from 'i18next'\nimport { eventDispatch } from '../../utils'\nimport { SettingsHeader } from './SettingsHeader'\n\nconst ThemeView = () => {\n const handleSelectTheme = (clickedTheme: string) => {\n eventDispatch('phone-island-theme-change', { selectedTheme: clickedTheme })\n }\n\n const { theme } = useSelector((state: RootState) => state.darkTheme)\n const [hoveredDevice, setHoveredDevice] = useState<string | null>(null)\n\n return (\n <div className='pi-flex pi-flex-col pi-w-full'>\n {/* Title */}\n <SettingsHeader title={t('Settings.Theme')} tooltipPrefix='theme' />\n {/* Microphone List */}\n <div className='pi-flex pi-flex-col pi-mt-2 pi-space-y-1'>\n {[\n { id: 'dark', icon: faMoon, label: 'Settings.Dark' },\n { id: 'light', icon: faSun, label: 'Settings.Light' },\n ].map(({ id, icon, label }) => (\n <div\n key={id}\n className='pi-flex pi-items-center pi-justify-between pi-py-3 pi-px-4 pi-rounded-md hover:pi-bg-gray-100 dark:hover:pi-bg-gray-600 pi-text-gray-700 dark:pi-text-gray-200'\n onClick={() => handleSelectTheme(id)}\n onMouseEnter={() => setHoveredDevice(id)}\n onMouseLeave={() => setHoveredDevice(null)}\n data-stop-propagation={true}\n >\n <FontAwesomeIcon\n size='lg'\n icon={icon}\n className='pi-mr-3 dark:pi-text-gray-100 pi-text-gray-600'\n />\n <div className={`${icon === faMoon ? 'pi-ml-[0.2rem]' : ''} pi-flex-grow`}>\n {t(label)}\n </div>\n {theme === id && (\n <FontAwesomeIcon\n size='lg'\n icon={faCheck}\n className={`${\n hoveredDevice === id\n ? 'pi-text-gray-500 dark:pi-text-gray-200'\n : 'pi-text-green-600 dark:pi-text-green-400'\n }`}\n />\n )}\n </div>\n ))}\n </div>\n </div>\n )\n}\n\nexport default ThemeView\n"],"names":["theme","useSelector","state","darkTheme","_a","useState","hoveredDevice","setHoveredDevice","React","createElement","className","SettingsHeader","title","t","tooltipPrefix","id","icon","faMoon","label","faSun","map","key","onClick","clickedTheme","eventDispatch","selectedTheme","onMouseEnter","onMouseLeave","FontAwesomeIcon","size","concat","faCheck"],"mappings":"8mBAYkB,WAChB,IAIQA,EAAUC,eAAY,SAACC,GAAqB,OAAAA,EAAMC,mBACpDC,EAAoCC,EAAAA,SAAwB,MAA3DC,EAAaF,EAAA,GAAEG,EAAgBH,EAAA,GAEtC,OACEI,EAAA,QAAAC,cAAA,MAAA,CAAKC,UAAU,iCAEbF,UAAAC,cAACE,EAAcA,eAAA,CAACC,MAAOC,EAACA,EAAC,kBAAmBC,cAAc,UAE1DN,EAAAA,QAAKC,cAAA,MAAA,CAAAC,UAAU,4CACZ,CACC,CAAEK,GAAI,OAAQC,KAAMC,EAAAA,OAAQC,MAAO,iBACnC,CAAEH,GAAI,QAASC,KAAMG,EAAAA,MAAOD,MAAO,mBACnCE,KAAI,SAAChB,GAAE,IAAAW,OAAIC,EAAIZ,EAAAY,KAAEE,EAAKd,EAAAc,MAAO,OAC7BV,EACE,QAAAC,cAAA,MAAA,CAAAY,IAAKN,EACLL,UAAU,iKACVY,QAAS,WAAM,OApBEC,EAoBgBR,OAnBzCS,EAAAA,cAAc,4BAA6B,CAAEC,cAAeF,IADpC,IAACA,GAqBjBG,aAAc,WAAM,OAAAnB,EAAiBQ,EAAG,EACxCY,aAAc,WAAM,OAAApB,EAAiB,KAAjB,2BACG,GAEvBC,UAAAC,cAACmB,EAAeA,gBAAA,CACdC,KAAK,KACLb,KAAMA,EACNN,UAAU,mDAEZF,EAAK,QAAAC,cAAA,MAAA,CAAAC,UAAW,GAAGoB,OAAAd,IAASC,EAAAA,OAAS,iBAAmB,GAAiB,kBACtEJ,EAAAA,EAAEK,IAEJlB,IAAUe,GACTP,EAAAA,sBAACoB,EAAAA,gBAAe,CACdC,KAAK,KACLb,KAAMe,EAAOA,QACbrB,UAAW,GACToB,OAAAxB,IAAkBS,EACd,yCACA,8CAKb,KAIT"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react");require("../../node_modules/react-redux/es/index.js");var t=require("../../node_modules/@fortawesome/react-fontawesome/index.es.js"),i=require("../../node_modules/@fortawesome/free-solid-svg-icons/index.mjs.js"),a=require("../../node_modules/i18next/dist/esm/i18next.js"),r=require("../Button.js"),n=require("./MichrophoneView.js"),l=require("./AudioView.js"),o=require("./ThemeView.js"),s=require("../../node_modules/react-tooltip/dist/react-tooltip.min.mjs.js"),u=require("../../node_modules/react-redux/es/hooks/useSelector.js"),c=require("../../node_modules/react-redux/es/hooks/useDispatch.js");function d(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var m=d(e);exports.SettingsView=function(){var e=u.useSelector((function(e){return e.island})).settingsView,d=c.useDispatch(),p=function(e){var a=e.icon,r=e.label,n=e.onClick,l=e.marginLeft;return m.default.createElement("button",{onClick:n,className:"pi-flex pi-items-center pi-justify-between pi-px-4 pi-py-3 dark:hover:pi-text-gray-50 hover:pi-text-gray-900 dark:pi-text-gray-50 pi-text-gray-700 hover:pi-bg-gray-200 dark:hover:pi-bg-gray-700 dark:pi-bg-gray-950 pi-bg-gray-50 pi-rounded-md"},m.default.createElement("div",{className:"pi-flex pi-items-center pi-gap-3"},m.default.createElement(t.FontAwesomeIcon,{icon:a,className:"dark:pi-text-gray-100 pi-text-gray-600"}),m.default.createElement("span",{className:"".concat("audio"===l?"":"microphone"===l?"pi-ml-[0.4rem]":"pi-ml-[0.2rem]")},r)),m.default.createElement(t.FontAwesomeIcon,{icon:i.faChevronRight,className:"dark:pi-text-gray-100 pi-text-gray-600"}))},f=m.default.createElement("div",{className:"pi-flex pi-flex-col pi-w-full"},m.default.createElement("div",{className:"pi-flex pi-items-center pi-justify-between"},m.default.createElement("h1",{className:"pi-text-lg pi-font-medium pi-text-gray-900 dark:pi-text-gray-50"},a.t("Settings.Settings")),m.default.createElement(r.Button,{onClick:function(){return d.island.setIslandView("call")},variant:"transparentSettings","data-tooltip-id":"tooltip-close-settings","data-tooltip-content":a.t("Common.Close")||""},m.default.createElement(t.FontAwesomeIcon,{icon:i.faXmark,size:"lg"}))),m.default.createElement("div",{className:"pi-border-t pi-border-gray-300 dark:pi-border-gray-600 pi-mt-
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react");require("../../node_modules/react-redux/es/index.js");var t=require("../../node_modules/@fortawesome/react-fontawesome/index.es.js"),i=require("../../node_modules/@fortawesome/free-solid-svg-icons/index.mjs.js"),a=require("../../node_modules/i18next/dist/esm/i18next.js"),r=require("../Button.js"),n=require("./MichrophoneView.js"),l=require("./AudioView.js"),o=require("./ThemeView.js"),s=require("../../node_modules/react-tooltip/dist/react-tooltip.min.mjs.js"),u=require("../../node_modules/react-redux/es/hooks/useSelector.js"),c=require("../../node_modules/react-redux/es/hooks/useDispatch.js");function d(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var m=d(e);exports.SettingsView=function(){var e=u.useSelector((function(e){return e.island})).settingsView,d=c.useDispatch(),p=function(e){var a=e.icon,r=e.label,n=e.onClick,l=e.marginLeft;return m.default.createElement("button",{onClick:n,className:"pi-flex pi-items-center pi-justify-between pi-px-4 pi-py-3 dark:hover:pi-text-gray-50 hover:pi-text-gray-900 dark:pi-text-gray-50 pi-text-gray-700 hover:pi-bg-gray-200 dark:hover:pi-bg-gray-700 dark:pi-bg-gray-950 pi-bg-gray-50 pi-rounded-md"},m.default.createElement("div",{className:"pi-flex pi-items-center pi-gap-3"},m.default.createElement(t.FontAwesomeIcon,{icon:a,className:"dark:pi-text-gray-100 pi-text-gray-600"}),m.default.createElement("span",{className:"".concat("audio"===l?"":"microphone"===l?"pi-ml-[0.4rem]":"pi-ml-[0.2rem]")},r)),m.default.createElement(t.FontAwesomeIcon,{icon:i.faChevronRight,className:"dark:pi-text-gray-100 pi-text-gray-600"}))},f=m.default.createElement("div",{className:"pi-flex pi-flex-col pi-w-full"},m.default.createElement("div",{className:"pi-flex pi-items-center pi-justify-between"},m.default.createElement("h1",{className:"pi-text-lg pi-font-medium pi-text-gray-900 dark:pi-text-gray-50"},a.t("Settings.Settings")),m.default.createElement(r.Button,{onClick:function(){return d.island.setIslandView("call")},variant:"transparentSettings","data-tooltip-id":"tooltip-close-settings","data-tooltip-content":a.t("Common.Close")||""},m.default.createElement(t.FontAwesomeIcon,{icon:i.faXmark,size:"lg"}))),m.default.createElement("div",{className:"pi-border-t pi-border-gray-300 dark:pi-border-gray-600 pi-mt-1"}),m.default.createElement("div",{className:"pi-flex pi-flex-col pi-mt-2"},m.default.createElement(p,{icon:i.faMicrophone,label:a.t("Settings.Microphones"),onClick:function(){return d.island.setSettingsView("microphone")},marginLeft:"microphone"}),m.default.createElement(p,{icon:i.faVolumeHigh,label:a.t("Settings.Speakers"),onClick:function(){return d.island.setSettingsView("audioInput")},marginLeft:"audio"}),m.default.createElement(p,{icon:i.faPalette,label:a.t("Settings.Theme"),onClick:function(){return d.island.setSettingsView("theme")},marginLeft:"theme"})));return m.default.createElement(m.default.Fragment,null,function(){switch(e){case"main":default:return f;case"microphone":return m.default.createElement(n.default,null);case"audioInput":return m.default.createElement(l.default,null);case"theme":return m.default.createElement(o.default,null)}}(),m.default.createElement(s.Tooltip,{className:"pi-z-20",id:"tooltip-close-settings",place:"bottom"}))};
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../src/components/SettingsView/index.tsx"],"sourcesContent":["// Copyright (C) 2024 Nethesis S.r.l.\n// SPDX-License-Identifier: AGPL-3.0-or-later\n\nimport React, { type FC } from 'react'\nimport { useSelector, useDispatch } from 'react-redux'\nimport { RootState, Dispatch } from '../../store'\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\nimport {\n faChevronRight,\n faMicrophone,\n faPalette,\n faVolumeHigh,\n faXmark,\n} from '@fortawesome/free-solid-svg-icons'\nimport { t } from 'i18next'\nimport { Button } from '../Button'\nimport MichrophoneView from './MichrophoneView'\nimport AudioView from './AudioView'\nimport ThemeView from './ThemeView'\nimport { Tooltip } from 'react-tooltip'\n\nexport const SettingsView: FC<SettingsViewProps> = () => {\n const { settingsView } = useSelector((state: RootState) => state.island)\n const dispatch = useDispatch<Dispatch>()\n\n const SettingsMenuItem = ({ icon, label, onClick, marginLeft }) => (\n <button\n onClick={onClick}\n className='pi-flex pi-items-center pi-justify-between pi-px-4 pi-py-3 dark:hover:pi-text-gray-50 hover:pi-text-gray-900 dark:pi-text-gray-50 pi-text-gray-700 hover:pi-bg-gray-200 dark:hover:pi-bg-gray-700 dark:pi-bg-gray-950 pi-bg-gray-50 pi-rounded-md'\n >\n <div className='pi-flex pi-items-center pi-gap-3'>\n <FontAwesomeIcon icon={icon} className='dark:pi-text-gray-100 pi-text-gray-600' />\n <span\n className={`${\n marginLeft === 'audio'\n ? ''\n : marginLeft === 'microphone'\n ? 'pi-ml-[0.4rem]'\n : 'pi-ml-[0.2rem]'\n }`}\n >\n {label}\n </span>\n </div>\n <FontAwesomeIcon icon={faChevronRight} className='dark:pi-text-gray-100 pi-text-gray-600' />\n </button>\n )\n\n // main settings view\n const MainSettings = (\n <div className='pi-flex pi-flex-col pi-w-full'>\n {/* Header */}\n <div className='pi-flex pi-items-center pi-justify-between'>\n <h1 className='pi-text-lg pi-font-medium pi-text-gray-900 dark:pi-text-gray-50'>\n {t('Settings.Settings')}\n </h1>\n <Button\n onClick={() => dispatch.island.setIslandView('call')}\n variant='transparentSettings'\n data-tooltip-id='tooltip-close-settings'\n data-tooltip-content={t('Common.Close') || ''}\n >\n <FontAwesomeIcon icon={faXmark} size='lg' />\n </Button>\n </div>\n\n {/* Divider */}\n <div className='pi-border-t pi-border-gray-300 dark:pi-border-gray-600 pi-mt-
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../src/components/SettingsView/index.tsx"],"sourcesContent":["// Copyright (C) 2024 Nethesis S.r.l.\n// SPDX-License-Identifier: AGPL-3.0-or-later\n\nimport React, { type FC } from 'react'\nimport { useSelector, useDispatch } from 'react-redux'\nimport { RootState, Dispatch } from '../../store'\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\nimport {\n faChevronRight,\n faMicrophone,\n faPalette,\n faVolumeHigh,\n faXmark,\n} from '@fortawesome/free-solid-svg-icons'\nimport { t } from 'i18next'\nimport { Button } from '../Button'\nimport MichrophoneView from './MichrophoneView'\nimport AudioView from './AudioView'\nimport ThemeView from './ThemeView'\nimport { Tooltip } from 'react-tooltip'\n\nexport const SettingsView: FC<SettingsViewProps> = () => {\n const { settingsView } = useSelector((state: RootState) => state.island)\n const dispatch = useDispatch<Dispatch>()\n\n const SettingsMenuItem = ({ icon, label, onClick, marginLeft }) => (\n <button\n onClick={onClick}\n className='pi-flex pi-items-center pi-justify-between pi-px-4 pi-py-3 dark:hover:pi-text-gray-50 hover:pi-text-gray-900 dark:pi-text-gray-50 pi-text-gray-700 hover:pi-bg-gray-200 dark:hover:pi-bg-gray-700 dark:pi-bg-gray-950 pi-bg-gray-50 pi-rounded-md'\n >\n <div className='pi-flex pi-items-center pi-gap-3'>\n <FontAwesomeIcon icon={icon} className='dark:pi-text-gray-100 pi-text-gray-600' />\n <span\n className={`${\n marginLeft === 'audio'\n ? ''\n : marginLeft === 'microphone'\n ? 'pi-ml-[0.4rem]'\n : 'pi-ml-[0.2rem]'\n }`}\n >\n {label}\n </span>\n </div>\n <FontAwesomeIcon icon={faChevronRight} className='dark:pi-text-gray-100 pi-text-gray-600' />\n </button>\n )\n\n // main settings view\n const MainSettings = (\n <div className='pi-flex pi-flex-col pi-w-full'>\n {/* Header */}\n <div className='pi-flex pi-items-center pi-justify-between'>\n <h1 className='pi-text-lg pi-font-medium pi-text-gray-900 dark:pi-text-gray-50'>\n {t('Settings.Settings')}\n </h1>\n <Button\n onClick={() => dispatch.island.setIslandView('call')}\n variant='transparentSettings'\n data-tooltip-id='tooltip-close-settings'\n data-tooltip-content={t('Common.Close') || ''}\n >\n <FontAwesomeIcon icon={faXmark} size='lg' />\n </Button>\n </div>\n\n {/* Divider */}\n <div className='pi-border-t pi-border-gray-300 dark:pi-border-gray-600 pi-mt-1' />\n\n {/* Menu Items */}\n <div className='pi-flex pi-flex-col pi-mt-2'>\n <SettingsMenuItem\n icon={faMicrophone}\n label={t('Settings.Microphones')}\n onClick={() => dispatch.island.setSettingsView('microphone')}\n marginLeft='microphone'\n />\n <SettingsMenuItem\n icon={faVolumeHigh}\n label={t('Settings.Speakers')}\n onClick={() => dispatch.island.setSettingsView('audioInput')}\n marginLeft='audio'\n />\n <SettingsMenuItem\n icon={faPalette}\n label={t('Settings.Theme')}\n onClick={() => dispatch.island.setSettingsView('theme')}\n marginLeft='theme'\n />\n </div>\n </div>\n )\n\n return (\n <>\n {(() => {\n switch (settingsView) {\n case 'main':\n return MainSettings\n case 'microphone':\n return <MichrophoneView />\n case 'audioInput':\n return <AudioView />\n case 'theme':\n return <ThemeView />\n default:\n return MainSettings\n }\n })()}\n <Tooltip className='pi-z-20' id='tooltip-close-settings' place='bottom' />\n </>\n )\n}\n\nexport interface SettingsViewProps {}\n"],"names":["settingsView","useSelector","state","island","dispatch","useDispatch","SettingsMenuItem","_a","icon","label","onClick","marginLeft","React","className","createElement","FontAwesomeIcon","concat","faChevronRight","MainSettings","t","Button","setIslandView","variant","faXmark","size","faMicrophone","setSettingsView","faVolumeHigh","faPalette","Fragment","MichrophoneView","AudioView","ThemeView","Tooltip","id","place"],"mappings":"2xBAqBmD,WACzC,IAAAA,EAAiBC,eAAY,SAACC,GAAqB,OAAAA,EAAMC,uBAC3DC,EAAWC,EAAAA,cAEXC,EAAmB,SAACC,OAAEC,EAAID,EAAAC,KAAEC,EAAKF,EAAAE,MAAEC,EAAOH,EAAAG,QAAEC,EAAUJ,EAAAI,WAAO,OACjEC,EAAAA,gCACEF,QAASA,EACTG,UAAU,qPAEVD,EAAAA,QAAKE,cAAA,MAAA,CAAAD,UAAU,oCACbD,EAAC,QAAAE,cAAAC,mBAAgBP,KAAMA,EAAMK,UAAU,2CACvCD,EAAA,QAAAE,cAAA,OAAA,CACED,UAAW,GACTG,OAAe,UAAfL,EACI,GACe,eAAfA,EACA,iBACA,mBAGLF,IAGLG,UAACE,cAAAC,EAAAA,gBAAgB,CAAAP,KAAMS,EAAAA,eAAgBJ,UAAU,2CAnBc,EAwB7DK,EACJN,EAAAA,QAAKE,cAAA,MAAA,CAAAD,UAAU,iCAEbD,EAAAA,QAAKE,cAAA,MAAA,CAAAD,UAAU,8CACbD,UAAIE,cAAA,KAAA,CAAAD,UAAU,mEACXM,EAAAA,EAAE,sBAELP,UAAAE,cAACM,EAAAA,OAAM,CACLV,QAAS,WAAM,OAAAN,EAASD,OAAOkB,cAAc,SAC7CC,QAAQ,sBACQ,kBAAA,yBACM,uBAAAH,EAACA,EAAC,iBAAmB,IAE3CP,UAACE,cAAAC,EAAAA,gBAAgB,CAAAP,KAAMe,EAAAA,QAASC,KAAK,SAKzCZ,EAAAA,QAAKE,cAAA,MAAA,CAAAD,UAAU,mEAGfD,EAAAA,QAAKE,cAAA,MAAA,CAAAD,UAAU,+BACbD,UAAAE,cAACR,EAAgB,CACfE,KAAMiB,EAAAA,aACNhB,MAAOU,IAAE,wBACTT,QAAS,WAAM,OAAAN,EAASD,OAAOuB,gBAAgB,aAAa,EAC5Df,WAAW,eAEbC,UAAAE,cAACR,EAAgB,CACfE,KAAMmB,EAAAA,aACNlB,MAAOU,IAAE,qBACTT,QAAS,WAAM,OAAAN,EAASD,OAAOuB,gBAAgB,aAAa,EAC5Df,WAAW,UAEbC,UAAAE,cAACR,EAAgB,CACfE,KAAMoB,YACNnB,MAAOU,EAACA,EAAC,kBACTT,QAAS,WAAM,OAAAN,EAASD,OAAOuB,gBAAgB,UAC/Cf,WAAW,YAMnB,OACEC,UAAAE,cAAAF,EAAA,QAAAiB,SAAA,KACG,WACC,OAAQ7B,GACN,IAAK,OAQL,QACE,OAAOkB,EAPT,IAAK,aACH,OAAON,UAAAE,cAACgB,EAAe,QAAA,MACzB,IAAK,aACH,OAAOlB,UAAAE,cAACiB,EAAS,QAAA,MACnB,IAAK,QACH,OAAOnB,UAAAE,cAACkB,EAAS,QAAA,MAItB,CAbA,GAcDpB,EAAAA,QAAAE,cAACmB,UAAQ,CAAApB,UAAU,UAAUqB,GAAG,yBAAyBC,MAAM,WAGrE"}
|
package/dist/index.css
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
*,::backdrop,:after,:before{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:#3b82f680;--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }@supports (-moz-appearance:none){*{scrollbar-color:auto;scrollbar-width:auto}}.pi-pointer-events-none{pointer-events:none}.pi-pointer-events-auto{pointer-events:auto}.pi-fixed{position:fixed}.pi-absolute{position:absolute}.pi-relative{position:relative}.pi-inset-0{inset:0}.pi-bottom-6{bottom:1.5rem}.pi-left-0{left:0}.pi-right-0{right:0}.pi-right-6{right:1.5rem}.pi-right-\[-1\.28rem\]{right:-1.28rem}.pi-right-\[1\.5rem\]{right:1.5rem}.pi-right-\[4\.5rem\]{right:4.5rem}.pi-top-0{top:0}.pi-top-\[8\%\]{top:8%}.-pi-z-10{z-index:-10}.pi-z-1000{z-index:1000}.pi-z-20{z-index:20}.pi-z-30{z-index:30}.pi-z-50{z-index:50}.pi-col-span-2{grid-column:span 2/span 2}.pi-col-start-auto{grid-column-start:auto}.pi-mx-auto{margin-left:auto;margin-right:auto}.-pi-mr-10{margin-right:-2.5rem}.-pi-mt-10{margin-top:-2.5rem}.pi-mb-3{margin-bottom:.75rem}.pi-mb-4{margin-bottom:1rem}.pi-mb-6{margin-bottom:1.5rem}.pi-ml-11{margin-left:2.75rem}.pi-ml-16{margin-left:4rem}.pi-ml-4{margin-left:1rem}.pi-ml-6{margin-left:1.5rem}.pi-ml-8{margin-left:2rem}.pi-ml-\[-0\.15rem\]{margin-left:-.15rem}.pi-ml-\[-7\.05rem\]{margin-left:-7.05rem}.pi-ml-\[0\.2rem\]{margin-left:.2rem}.pi-ml-\[0\.4rem\]{margin-left:.4rem}.pi-ml-\[1\.49rem\]{margin-left:1.49rem}.pi-ml-\[1\.4rem\]{margin-left:1.4rem}.pi-ml-\[2\.2rem\]{margin-left:2.2rem}.pi-ml-\[4\.7rem\]{margin-left:4.7rem}.pi-mr-1{margin-right:.25rem}.pi-mr-2{margin-right:.5rem}.pi-mr-3{margin-right:.75rem}.pi-mr-4{margin-right:1rem}.pi-mr-\[0\.27rem\]{margin-right:.27rem}.pi-mr-\[0\.28rem\]{margin-right:.28rem}.pi-mr-\[0\.42rem\]{margin-right:.42rem}.pi-mr-\[0\.4rem\]{margin-right:.4rem}.pi-mr-\[0\.57rem\]{margin-right:.57rem}.pi-mt-1{margin-top:.25rem}.pi-mt-2{margin-top:.5rem}.pi-mt-4{margin-top:1rem}.pi-mt-7{margin-top:1.75rem}.pi-mt-8{margin-top:2rem}.pi-mt-\[-0\.25rem\]{margin-top:-.25rem}.pi-mt-\[-0\.5rem\]{margin-top:-.5rem}.pi-mt-\[-12\.5rem\]{margin-top:-12.5rem}.pi-mt-\[-8\.5rem\]{margin-top:-8.5rem}.pi-mt-\[3rem\]{margin-top:3rem}.pi-block{display:block}.pi-inline-block{display:inline-block}.pi-flex{display:flex}.pi-inline-flex{display:inline-flex}.pi-grid{display:grid}.pi-hidden{display:none}.pi-h-1{height:.25rem}.pi-h-10{height:2.5rem}.pi-h-12{height:3rem}.pi-h-3{height:.75rem}.pi-h-4{height:1rem}.pi-h-5{height:1.25rem}.pi-h-6{height:1.5rem}.pi-h-8{height:2rem}.pi-h-9{height:2.25rem}.pi-h-\[1\.1rem\]{height:1.1rem}.pi-h-fit{height:fit-content}.pi-h-full{height:100%}.pi-max-h-\[13\.125rem\]{max-height:13.125rem}.pi-max-h-\[9\.125rem\]{max-height:9.125rem}.pi-min-h-full{min-height:100%}.pi-w-0\.5{width:.125rem}.pi-w-10{width:2.5rem}.pi-w-12{width:3rem}.pi-w-16{width:4rem}.pi-w-2{width:.5rem}.pi-w-3{width:.75rem}.pi-w-4{width:1rem}.pi-w-44{width:11rem}.pi-w-5{width:1.25rem}.pi-w-56{width:14rem}.pi-w-6{width:1.5rem}.pi-w-8{width:2rem}.pi-w-9{width:2.25rem}.pi-w-\[98rem\]{width:98rem}.pi-w-fit{width:fit-content}.pi-w-full{width:100%}.pi-min-w-12{min-width:3rem}.pi-min-w-\[120px\]{min-width:120px}.pi-min-w-full{min-width:100%}.pi-max-w-16{max-width:4rem}.pi-max-w-40{max-width:10rem}.pi-max-w-\[100rem\]{max-width:100rem}.pi-flex-1{flex:1 1 0%}.pi-flex-none{flex:none}.pi-flex-shrink-0,.pi-shrink-0{flex-shrink:0}.pi-flex-grow{flex-grow:1}.pi-flex-grow-0{flex-grow:0}.pi-origin-top-right{transform-origin:top right}.pi--translate-y-\[57\%\]{--tw-translate-y:-57%}.pi--rotate-45,.pi--translate-y-\[57\%\]{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.pi--rotate-45{--tw-rotate:-45deg}.pi-rotate-135{--tw-rotate:135deg}.pi-rotate-135,.pi-rotate-45{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.pi-rotate-45{--tw-rotate:45deg}.pi-rotate-90{--tw-rotate:90deg}.pi-rotate-90,.pi-rotate-\[135deg\]{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.pi-rotate-\[135deg\]{--tw-rotate:135deg}.pi-transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@keyframes pi-ping{75%,to{opacity:0;transform:scale(2)}}.pi-animate-ping{animation:pi-ping 1s cubic-bezier(0,0,.2,1) infinite}@keyframes pi-scroll{0%{transform:translateX(0)}to{transform:translateX(-100%)}}.pi-animate-scroll-text{animation:pi-scroll 10s linear infinite}.pi-cursor-auto{cursor:auto}.pi-cursor-pointer{cursor:pointer}.pi-auto-cols-max{grid-auto-columns:max-content}.pi-grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.pi-grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.pi-grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.pi-grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.pi-flex-col{flex-direction:column}.pi-place-items-center{place-items:center}.pi-content-center{align-content:center}.pi-items-center{align-items:center}.pi-justify-start{justify-content:flex-start}.pi-justify-end{justify-content:flex-end}.pi-justify-center{justify-content:center}.pi-justify-between{justify-content:space-between}.pi-justify-items-end{justify-items:end}.pi-justify-items-center{justify-items:center}.pi-gap-1{gap:.25rem}.pi-gap-2{gap:.5rem}.pi-gap-3{gap:.75rem}.pi-gap-3\.5{gap:.875rem}.pi-gap-4{gap:1rem}.pi-gap-5{gap:1.25rem}.pi-gap-6{gap:1.5rem}.pi-gap-7{gap:1.75rem}.pi-gap-y-5{row-gap:1.25rem}.pi-gap-y-6{row-gap:1.5rem}.pi-space-x-2>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-left:calc(.5rem*(1 - var(--tw-space-x-reverse)));margin-right:calc(.5rem*var(--tw-space-x-reverse))}.pi-space-y-1>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(.25rem*var(--tw-space-y-reverse));margin-top:calc(.25rem*(1 - var(--tw-space-y-reverse)))}.pi-space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(.5rem*var(--tw-space-y-reverse));margin-top:calc(.5rem*(1 - var(--tw-space-y-reverse)))}.pi-overflow-auto{overflow:auto}.pi-overflow-hidden{overflow:hidden}.pi-overflow-y-auto{overflow-y:auto}.pi-overflow-x-hidden{overflow-x:hidden}.pi-truncate{overflow:hidden;white-space:nowrap}.pi-text-ellipsis,.pi-truncate{text-overflow:ellipsis}.pi-whitespace-nowrap{white-space:nowrap}.pi-rounded{border-radius:.25rem}.pi-rounded-2xl{border-radius:1rem}.pi-rounded-3xl{border-radius:1.5rem}.pi-rounded-full{border-radius:9999px}.pi-rounded-lg{border-radius:.5rem}.pi-rounded-md{border-radius:.375rem}.pi-rounded-sm{border-radius:.125rem}.pi-rounded-xl{border-radius:.75rem}.pi-border{border-width:1px}.pi-border-2{border-width:2px}.pi-border-4{border-width:4px}.pi-border-l-4{border-left-width:4px}.pi-border-t{border-top-width:1px}.pi-border-emerald-500{--tw-border-opacity:1;border-color:rgb(16 185 129/var(--tw-border-opacity,1))}.pi-border-gray-300{--tw-border-opacity:1;border-color:rgb(209 213 219/var(--tw-border-opacity,1))}.pi-border-gray-400{--tw-border-opacity:1;border-color:rgb(156 163 175/var(--tw-border-opacity,1))}.pi-border-gray-700{--tw-border-opacity:1;border-color:rgb(55 65 81/var(--tw-border-opacity,1))}.pi-border-green-600{--tw-border-opacity:1;border-color:rgb(22 163 74/var(--tw-border-opacity,1))}.pi-border-orange-600{--tw-border-opacity:1;border-color:rgb(234 88 12/var(--tw-border-opacity,1))}.pi-border-red-600{--tw-border-opacity:1;border-color:rgb(220 38 38/var(--tw-border-opacity,1))}.pi-border-transparent{border-color:#0000}.pi-border-white{--tw-border-opacity:1;border-color:rgb(255 255 255/var(--tw-border-opacity,1))}.pi-bg-emerald-100{--tw-bg-opacity:1;background-color:rgb(209 250 229/var(--tw-bg-opacity,1))}.pi-bg-emerald-700{--tw-bg-opacity:1;background-color:rgb(4 120 87/var(--tw-bg-opacity,1))}.pi-bg-gray-200{--tw-bg-opacity:1;background-color:rgb(229 231 235/var(--tw-bg-opacity,1))}.pi-bg-gray-300{--tw-bg-opacity:1;background-color:rgb(209 213 219/var(--tw-bg-opacity,1))}.pi-bg-gray-50{--tw-bg-opacity:1;background-color:rgb(249 250 251/var(--tw-bg-opacity,1))}.pi-bg-gray-500{--tw-bg-opacity:1;background-color:rgb(107 114 128/var(--tw-bg-opacity,1))}.pi-bg-gray-600{--tw-bg-opacity:1;background-color:rgb(75 85 99/var(--tw-bg-opacity,1))}.pi-bg-gray-700{--tw-bg-opacity:1;background-color:rgb(55 65 81/var(--tw-bg-opacity,1))}.pi-bg-gray-800{--tw-bg-opacity:1;background-color:rgb(31 41 55/var(--tw-bg-opacity,1))}.pi-bg-gray-950{--tw-bg-opacity:1;background-color:rgb(3 7 18/var(--tw-bg-opacity,1))}.pi-bg-green-200{--tw-bg-opacity:1;background-color:rgb(187 247 208/var(--tw-bg-opacity,1))}.pi-bg-green-400{--tw-bg-opacity:1;background-color:rgb(74 222 128/var(--tw-bg-opacity,1))}.pi-bg-green-500{--tw-bg-opacity:1;background-color:rgb(34 197 94/var(--tw-bg-opacity,1))}.pi-bg-green-700{--tw-bg-opacity:1;background-color:rgb(21 128 61/var(--tw-bg-opacity,1))}.pi-bg-red-400{--tw-bg-opacity:1;background-color:rgb(248 113 113/var(--tw-bg-opacity,1))}.pi-bg-red-500{--tw-bg-opacity:1;background-color:rgb(239 68 68/var(--tw-bg-opacity,1))}.pi-bg-red-700{--tw-bg-opacity:1;background-color:rgb(185 28 28/var(--tw-bg-opacity,1))}.pi-bg-rose-200{--tw-bg-opacity:1;background-color:rgb(254 205 211/var(--tw-bg-opacity,1))}.pi-bg-transparent{background-color:initial}.pi-bg-white{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity,1))}.pi-bg-opacity-\[0\.99\]{--tw-bg-opacity:0.99}.pi-bg-gradient-to-b{background-image:linear-gradient(to bottom,var(--tw-gradient-stops))}.pi-bg-gradient-to-r{background-image:linear-gradient(to right,var(--tw-gradient-stops))}.pi-from-gray-100{--tw-gradient-from:#f3f4f6 var(--tw-gradient-from-position);--tw-gradient-to:#f3f4f600 var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.pi-from-transparent{--tw-gradient-from:#0000 var(--tw-gradient-from-position);--tw-gradient-to:#0000 var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.pi-to-gray-50{--tw-gradient-to:#f9fafb var(--tw-gradient-to-position)}.pi-to-gray-700{--tw-gradient-to:#374151 var(--tw-gradient-to-position)}.pi-to-transparent{--tw-gradient-to:#0000 var(--tw-gradient-to-position)}.pi-bg-cover{background-size:cover}.pi-p-4{padding:1rem}.pi-p-6{padding:1.5rem}.pi-px-0\.5{padding-left:.125rem;padding-right:.125rem}.pi-px-2{padding-left:.5rem;padding-right:.5rem}.pi-px-3{padding-left:.75rem;padding-right:.75rem}.pi-px-4{padding-left:1rem;padding-right:1rem}.pi-px-6{padding-left:1.5rem;padding-right:1.5rem}.pi-py-1{padding-bottom:.25rem;padding-top:.25rem}.pi-py-2{padding-bottom:.5rem;padding-top:.5rem}.pi-py-3{padding-bottom:.75rem;padding-top:.75rem}.pi-py-4{padding-bottom:1rem;padding-top:1rem}.pi-py-6{padding-bottom:1.5rem;padding-top:1.5rem}.pi-pb-9{padding-bottom:2.25rem}.pi-pr-4{padding-right:1rem}.pi-pt-2{padding-top:.5rem}.pi-pt-3{padding-top:.75rem}.pi-pt-4{padding-top:1rem}.pi-pt-7{padding-top:1.75rem}.pi-pt-9{padding-top:2.25rem}.pi-text-center{text-align:center}.pi-text-2xl{font-size:1.5rem;line-height:2rem}.pi-text-4xl{font-size:2.25rem;line-height:2.5rem}.pi-text-base{font-size:1rem;line-height:1.5rem}.pi-text-lg{font-size:1.125rem;line-height:1.75rem}.pi-text-sm{font-size:.875rem;line-height:1.25rem}.pi-text-xl{font-size:1.25rem;line-height:1.75rem}.pi-text-xs{font-size:.75rem;line-height:1rem}.pi-font-bold{font-weight:700}.pi-font-light{font-weight:300}.pi-font-medium{font-weight:500}.pi-font-normal{font-weight:400}.pi-font-semibold{font-weight:600}.pi-leading-4{line-height:1rem}.pi-leading-5{line-height:1.25rem}.pi-tracking-wide{letter-spacing:.025em}.pi-text-emerald-600{--tw-text-opacity:1;color:rgb(5 150 105/var(--tw-text-opacity,1))}.pi-text-emerald-700{--tw-text-opacity:1;color:rgb(4 120 87/var(--tw-text-opacity,1))}.pi-text-gray-100{--tw-text-opacity:1;color:rgb(243 244 246/var(--tw-text-opacity,1))}.pi-text-gray-400{--tw-text-opacity:1;color:rgb(156 163 175/var(--tw-text-opacity,1))}.pi-text-gray-50{--tw-text-opacity:1;color:rgb(249 250 251/var(--tw-text-opacity,1))}.pi-text-gray-500{--tw-text-opacity:1;color:rgb(107 114 128/var(--tw-text-opacity,1))}.pi-text-gray-600{--tw-text-opacity:1;color:rgb(75 85 99/var(--tw-text-opacity,1))}.pi-text-gray-700{--tw-text-opacity:1;color:rgb(55 65 81/var(--tw-text-opacity,1))}.pi-text-gray-800{--tw-text-opacity:1;color:rgb(31 41 55/var(--tw-text-opacity,1))}.pi-text-gray-900{--tw-text-opacity:1;color:rgb(17 24 39/var(--tw-text-opacity,1))}.pi-text-gray-950{--tw-text-opacity:1;color:rgb(3 7 18/var(--tw-text-opacity,1))}.pi-text-green-500{--tw-text-opacity:1;color:rgb(34 197 94/var(--tw-text-opacity,1))}.pi-text-green-600{--tw-text-opacity:1;color:rgb(22 163 74/var(--tw-text-opacity,1))}.pi-text-green-700{--tw-text-opacity:1;color:rgb(21 128 61/var(--tw-text-opacity,1))}.pi-text-red-500{--tw-text-opacity:1;color:rgb(239 68 68/var(--tw-text-opacity,1))}.pi-text-red-700{--tw-text-opacity:1;color:rgb(185 28 28/var(--tw-text-opacity,1))}.pi-text-rose-700{--tw-text-opacity:1;color:rgb(190 18 60/var(--tw-text-opacity,1))}.pi-text-white{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.pi-placeholder-gray-800::placeholder{--tw-placeholder-opacity:1;color:rgb(31 41 55/var(--tw-placeholder-opacity,1))}.pi-opacity-60{opacity:.6}.pi-opacity-75{opacity:.75}.pi-shadow{--tw-shadow:0 1px 3px 0 #0000001a,0 1px 2px -1px #0000001a;--tw-shadow-colored:0 1px 3px 0 var(--tw-shadow-color),0 1px 2px -1px var(--tw-shadow-color)}.pi-shadow,.pi-shadow-lg{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.pi-shadow-lg{--tw-shadow:0 10px 15px -3px #0000001a,0 4px 6px -4px #0000001a;--tw-shadow-colored:0 10px 15px -3px var(--tw-shadow-color),0 4px 6px -4px var(--tw-shadow-color)}.pi-shadow-md{--tw-shadow:0 4px 6px -1px #0000001a,0 2px 4px -2px #0000001a;--tw-shadow-colored:0 4px 6px -1px var(--tw-shadow-color),0 2px 4px -2px var(--tw-shadow-color)}.pi-shadow-md,.pi-shadow-sm{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.pi-shadow-sm{--tw-shadow:0 1px 2px 0 #0000000d;--tw-shadow-colored:0 1px 2px 0 var(--tw-shadow-color)}.pi-outline-none{outline:2px solid #0000;outline-offset:2px}.pi-ring-1{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.pi-ring-black{--tw-ring-opacity:1;--tw-ring-color:rgb(0 0 0/var(--tw-ring-opacity,1))}.pi-ring-opacity-5{--tw-ring-opacity:0.05}.pi-transition{transition-duration:.15s;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1)}.pi-transition-colors{transition-duration:.15s;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1)}.pi-transition-shadow{transition-duration:.15s;transition-property:box-shadow;transition-timing-function:cubic-bezier(.4,0,.2,1)}.pi-duration-200{transition-duration:.2s}.pi-scrollbar-thin::-webkit-scrollbar-track{background-color:var(--scrollbar-track);border-radius:var(--scrollbar-track-radius)}.pi-scrollbar-thin::-webkit-scrollbar-track:hover{background-color:var(--scrollbar-track-hover,var(--scrollbar-track))}.pi-scrollbar-thin::-webkit-scrollbar-track:active{background-color:var(--scrollbar-track-active,var(--scrollbar-track-hover,var(--scrollbar-track)))}.pi-scrollbar-thin::-webkit-scrollbar-thumb{background-color:var(--scrollbar-thumb);border-radius:var(--scrollbar-thumb-radius)}.pi-scrollbar-thin::-webkit-scrollbar-thumb:hover{background-color:var(--scrollbar-thumb-hover,var(--scrollbar-thumb))}.pi-scrollbar-thin::-webkit-scrollbar-thumb:active{background-color:var(--scrollbar-thumb-active,var(--scrollbar-thumb-hover,var(--scrollbar-thumb)))}.pi-scrollbar-thin::-webkit-scrollbar-corner{background-color:var(--scrollbar-corner);border-radius:var(--scrollbar-corner-radius)}.pi-scrollbar-thin::-webkit-scrollbar-corner:hover{background-color:var(--scrollbar-corner-hover,var(--scrollbar-corner))}.pi-scrollbar-thin::-webkit-scrollbar-corner:active{background-color:var(--scrollbar-corner-active,var(--scrollbar-corner-hover,var(--scrollbar-corner)))}@supports (-moz-appearance:none){.pi-scrollbar-thin{scrollbar-color:var(--scrollbar-thumb,initial) var(--scrollbar-track,initial);scrollbar-width:thin}}.pi-scrollbar-thin::-webkit-scrollbar{display:block;height:8px;width:8px}.pi-scrollbar-track-gray-200{--scrollbar-track:#e5e7eb!important}.pi-scrollbar-thumb-gray-400{--scrollbar-thumb:#9ca3af!important}.pi-scrollbar-track-rounded-full{--scrollbar-track-radius:9999px}.pi-scrollbar-thumb-rounded-full{--scrollbar-thumb-radius:9999px}.hover\:pi-scale-110:hover{--tw-scale-x:1.1;--tw-scale-y:1.1;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.hover\:pi-bg-gray-100:hover{--tw-bg-opacity:1;background-color:rgb(243 244 246/var(--tw-bg-opacity,1))}.hover\:pi-bg-gray-200:hover{--tw-bg-opacity:1;background-color:rgb(229 231 235/var(--tw-bg-opacity,1))}.hover\:pi-bg-gray-300:hover{--tw-bg-opacity:1;background-color:rgb(209 213 219/var(--tw-bg-opacity,1))}.hover\:pi-bg-gray-500:hover{--tw-bg-opacity:1;background-color:rgb(107 114 128/var(--tw-bg-opacity,1))}.hover\:pi-bg-green-600:hover{--tw-bg-opacity:1;background-color:rgb(22 163 74/var(--tw-bg-opacity,1))}.hover\:pi-bg-red-700:hover{--tw-bg-opacity:1;background-color:rgb(185 28 28/var(--tw-bg-opacity,1))}.hover\:pi-text-emerald-800:hover{--tw-text-opacity:1;color:rgb(6 95 70/var(--tw-text-opacity,1))}.hover\:pi-text-gray-50:hover{--tw-text-opacity:1;color:rgb(249 250 251/var(--tw-text-opacity,1))}.hover\:pi-text-gray-700:hover{--tw-text-opacity:1;color:rgb(55 65 81/var(--tw-text-opacity,1))}.hover\:pi-text-gray-900:hover{--tw-text-opacity:1;color:rgb(17 24 39/var(--tw-text-opacity,1))}.hover\:pi-shadow-2xl:hover{--tw-shadow:0 25px 50px -12px #00000040;--tw-shadow-colored:0 25px 50px -12px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.focus\:pi-z-20:focus{z-index:20}.focus\:pi-border-emerald-500:focus{--tw-border-opacity:1;border-color:rgb(16 185 129/var(--tw-border-opacity,1))}.focus\:pi-outline-0:focus{outline-width:0}.focus\:pi-ring-0:focus{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(var(--tw-ring-offset-width)) var(--tw-ring-color)}.focus\:pi-ring-0:focus,.focus\:pi-ring-2:focus{box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.focus\:pi-ring-2:focus{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color)}.focus\:pi-ring-emerald-500:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(16 185 129/var(--tw-ring-opacity,1))}.focus\:pi-ring-gray-400:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(156 163 175/var(--tw-ring-opacity,1))}.focus\:pi-ring-green-500:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(34 197 94/var(--tw-ring-opacity,1))}.focus\:pi-ring-offset-2:focus{--tw-ring-offset-width:2px}.focus\:pi-ring-offset-gray-200:focus{--tw-ring-offset-color:#e5e7eb}.focus\:pi-ring-offset-white:focus{--tw-ring-offset-color:#fff}.active\:pi-border-emerald-500:active{--tw-border-opacity:1;border-color:rgb(16 185 129/var(--tw-border-opacity,1))}.enabled\:hover\:pi-border-gray-500:hover:enabled{--tw-border-opacity:1;border-color:rgb(107 114 128/var(--tw-border-opacity,1))}.enabled\:hover\:pi-bg-gray-200\/70:hover:enabled{background-color:#e5e7ebb3}.enabled\:hover\:pi-bg-gray-500:hover:enabled{--tw-bg-opacity:1;background-color:rgb(107 114 128/var(--tw-bg-opacity,1))}.enabled\:hover\:pi-bg-gray-600:hover:enabled{--tw-bg-opacity:1;background-color:rgb(75 85 99/var(--tw-bg-opacity,1))}.disabled\:pi-opacity-75:disabled{opacity:.75}@media (min-width:768px){.md\:pi-grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}}.dark\:pi-border-emerald-200:where(.pi-dark,.pi-dark *){--tw-border-opacity:1;border-color:rgb(167 243 208/var(--tw-border-opacity,1))}.dark\:pi-border-gray-600:where(.pi-dark,.pi-dark *){--tw-border-opacity:1;border-color:rgb(75 85 99/var(--tw-border-opacity,1))}.dark\:pi-bg-emerald-500:where(.pi-dark,.pi-dark *){--tw-bg-opacity:1;background-color:rgb(16 185 129/var(--tw-bg-opacity,1))}.dark\:pi-bg-emerald-600:where(.pi-dark,.pi-dark *){--tw-bg-opacity:1;background-color:rgb(5 150 105/var(--tw-bg-opacity,1))}.dark\:pi-bg-gray-300:where(.pi-dark,.pi-dark *){--tw-bg-opacity:1;background-color:rgb(209 213 219/var(--tw-bg-opacity,1))}.dark\:pi-bg-gray-50:where(.pi-dark,.pi-dark *){--tw-bg-opacity:1;background-color:rgb(249 250 251/var(--tw-bg-opacity,1))}.dark\:pi-bg-gray-700:where(.pi-dark,.pi-dark *){--tw-bg-opacity:1;background-color:rgb(55 65 81/var(--tw-bg-opacity,1))}.dark\:pi-bg-gray-950:where(.pi-dark,.pi-dark *){--tw-bg-opacity:1;background-color:rgb(3 7 18/var(--tw-bg-opacity,1))}.dark\:pi-bg-green-500:where(.pi-dark,.pi-dark *){--tw-bg-opacity:1;background-color:rgb(34 197 94/var(--tw-bg-opacity,1))}.dark\:pi-bg-green-900:where(.pi-dark,.pi-dark *){--tw-bg-opacity:1;background-color:rgb(20 83 45/var(--tw-bg-opacity,1))}.dark\:pi-bg-red-500:where(.pi-dark,.pi-dark *){--tw-bg-opacity:1;background-color:rgb(239 68 68/var(--tw-bg-opacity,1))}.dark\:pi-bg-rose-900:where(.pi-dark,.pi-dark *){--tw-bg-opacity:1;background-color:rgb(136 19 55/var(--tw-bg-opacity,1))}.dark\:pi-bg-opacity-\[0\.99\]:where(.pi-dark,.pi-dark *){--tw-bg-opacity:0.99}.dark\:pi-from-black:where(.pi-dark,.pi-dark *){--tw-gradient-from:#000 var(--tw-gradient-from-position);--tw-gradient-to:#0000 var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.dark\:pi-to-gray-950:where(.pi-dark,.pi-dark *){--tw-gradient-to:#030712 var(--tw-gradient-to-position)}.dark\:pi-text-gray-100:where(.pi-dark,.pi-dark *){--tw-text-opacity:1;color:rgb(243 244 246/var(--tw-text-opacity,1))}.dark\:pi-text-gray-200:where(.pi-dark,.pi-dark *){--tw-text-opacity:1;color:rgb(229 231 235/var(--tw-text-opacity,1))}.dark\:pi-text-gray-300:where(.pi-dark,.pi-dark *){--tw-text-opacity:1;color:rgb(209 213 219/var(--tw-text-opacity,1))}.dark\:pi-text-gray-50:where(.pi-dark,.pi-dark *){--tw-text-opacity:1;color:rgb(249 250 251/var(--tw-text-opacity,1))}.dark\:pi-text-gray-950:where(.pi-dark,.pi-dark *){--tw-text-opacity:1;color:rgb(3 7 18/var(--tw-text-opacity,1))}.dark\:pi-text-green-200:where(.pi-dark,.pi-dark *){--tw-text-opacity:1;color:rgb(187 247 208/var(--tw-text-opacity,1))}.dark\:pi-text-green-400:where(.pi-dark,.pi-dark *){--tw-text-opacity:1;color:rgb(74 222 128/var(--tw-text-opacity,1))}.dark\:pi-text-red-700:where(.pi-dark,.pi-dark *){--tw-text-opacity:1;color:rgb(185 28 28/var(--tw-text-opacity,1))}.dark\:pi-text-rose-200:where(.pi-dark,.pi-dark *){--tw-text-opacity:1;color:rgb(254 205 211/var(--tw-text-opacity,1))}.dark\:pi-text-white:where(.pi-dark,.pi-dark *){--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.dark\:pi-placeholder-gray-200:where(.pi-dark,.pi-dark *)::placeholder{--tw-placeholder-opacity:1;color:rgb(229 231 235/var(--tw-placeholder-opacity,1))}.dark\:pi-scrollbar-track-gray-900:where(.pi-dark,.pi-dark *){--scrollbar-track:#111827!important}.dark\:hover\:pi-bg-gray-50:hover:where(.pi-dark,.pi-dark *){--tw-bg-opacity:1;background-color:rgb(249 250 251/var(--tw-bg-opacity,1))}.dark\:hover\:pi-bg-gray-600:hover:where(.pi-dark,.pi-dark *){--tw-bg-opacity:1;background-color:rgb(75 85 99/var(--tw-bg-opacity,1))}.dark\:hover\:pi-bg-gray-700:hover:where(.pi-dark,.pi-dark *){--tw-bg-opacity:1;background-color:rgb(55 65 81/var(--tw-bg-opacity,1))}.dark\:hover\:pi-bg-green-300:hover:where(.pi-dark,.pi-dark *){--tw-bg-opacity:1;background-color:rgb(134 239 172/var(--tw-bg-opacity,1))}.dark\:hover\:pi-bg-red-300:hover:where(.pi-dark,.pi-dark *){--tw-bg-opacity:1;background-color:rgb(252 165 165/var(--tw-bg-opacity,1))}.dark\:hover\:pi-text-gray-200:hover:where(.pi-dark,.pi-dark *){--tw-text-opacity:1;color:rgb(229 231 235/var(--tw-text-opacity,1))}.dark\:hover\:pi-text-gray-50:hover:where(.pi-dark,.pi-dark *){--tw-text-opacity:1;color:rgb(249 250 251/var(--tw-text-opacity,1))}.dark\:focus\:pi-border-emerald-200:focus:where(.pi-dark,.pi-dark *){--tw-border-opacity:1;border-color:rgb(167 243 208/var(--tw-border-opacity,1))}.dark\:focus\:pi-ring-emerald-300:focus:where(.pi-dark,.pi-dark *){--tw-ring-opacity:1;--tw-ring-color:rgb(110 231 183/var(--tw-ring-opacity,1))}.dark\:focus\:pi-ring-gray-500:focus:where(.pi-dark,.pi-dark *){--tw-ring-opacity:1;--tw-ring-color:rgb(107 114 128/var(--tw-ring-opacity,1))}.dark\:focus\:pi-ring-offset-black:focus:where(.pi-dark,.pi-dark *){--tw-ring-offset-color:#000}.dark\:active\:pi-border-emerald-200:active:where(.pi-dark,.pi-dark *){--tw-border-opacity:1;border-color:rgb(167 243 208/var(--tw-border-opacity,1))}.dark\:active\:focus\:pi-border-emerald-200:focus:active:where(.pi-dark,.pi-dark *){--tw-border-opacity:1;border-color:rgb(167 243 208/var(--tw-border-opacity,1))}.dark\:enabled\:hover\:pi-bg-gray-600:hover:enabled:where(.pi-dark,.pi-dark *){--tw-bg-opacity:1;background-color:rgb(75 85 99/var(--tw-bg-opacity,1))}.dark\:enabled\:hover\:pi-bg-gray-600\/30:hover:enabled:where(.pi-dark,.pi-dark *){background-color:#4b55634d}
|
|
1
|
+
*,::backdrop,:after,:before{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:#3b82f680;--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }@supports (-moz-appearance:none){*{scrollbar-color:auto;scrollbar-width:auto}}.pi-pointer-events-none{pointer-events:none}.pi-pointer-events-auto{pointer-events:auto}.pi-fixed{position:fixed}.pi-absolute{position:absolute}.pi-relative{position:relative}.pi-inset-0{inset:0}.pi-bottom-6{bottom:1.5rem}.pi-left-0{left:0}.pi-right-0{right:0}.pi-right-6{right:1.5rem}.pi-right-\[-1\.28rem\]{right:-1.28rem}.pi-right-\[1\.5rem\]{right:1.5rem}.pi-right-\[4\.5rem\]{right:4.5rem}.pi-top-0{top:0}.pi-top-\[8\%\]{top:8%}.-pi-z-10{z-index:-10}.pi-z-1000{z-index:1000}.pi-z-20{z-index:20}.pi-z-30{z-index:30}.pi-z-50{z-index:50}.pi-col-span-2{grid-column:span 2/span 2}.pi-col-start-auto{grid-column-start:auto}.pi-mx-auto{margin-left:auto;margin-right:auto}.-pi-mr-10{margin-right:-2.5rem}.-pi-mt-10{margin-top:-2.5rem}.pi-mb-3{margin-bottom:.75rem}.pi-mb-4{margin-bottom:1rem}.pi-mb-6{margin-bottom:1.5rem}.pi-ml-11{margin-left:2.75rem}.pi-ml-16{margin-left:4rem}.pi-ml-4{margin-left:1rem}.pi-ml-6{margin-left:1.5rem}.pi-ml-8{margin-left:2rem}.pi-ml-\[-0\.15rem\]{margin-left:-.15rem}.pi-ml-\[-7\.05rem\]{margin-left:-7.05rem}.pi-ml-\[0\.2rem\]{margin-left:.2rem}.pi-ml-\[0\.4rem\]{margin-left:.4rem}.pi-ml-\[1\.49rem\]{margin-left:1.49rem}.pi-ml-\[1\.4rem\]{margin-left:1.4rem}.pi-ml-\[2\.2rem\]{margin-left:2.2rem}.pi-ml-\[4\.7rem\]{margin-left:4.7rem}.pi-mr-1{margin-right:.25rem}.pi-mr-2{margin-right:.5rem}.pi-mr-3{margin-right:.75rem}.pi-mr-4{margin-right:1rem}.pi-mr-\[0\.27rem\]{margin-right:.27rem}.pi-mr-\[0\.28rem\]{margin-right:.28rem}.pi-mr-\[0\.42rem\]{margin-right:.42rem}.pi-mr-\[0\.4rem\]{margin-right:.4rem}.pi-mr-\[0\.57rem\]{margin-right:.57rem}.pi-mt-1{margin-top:.25rem}.pi-mt-2{margin-top:.5rem}.pi-mt-4{margin-top:1rem}.pi-mt-7{margin-top:1.75rem}.pi-mt-8{margin-top:2rem}.pi-mt-\[-0\.25rem\]{margin-top:-.25rem}.pi-mt-\[-12\.5rem\]{margin-top:-12.5rem}.pi-mt-\[-8\.5rem\]{margin-top:-8.5rem}.pi-mt-\[3rem\]{margin-top:3rem}.pi-block{display:block}.pi-inline-block{display:inline-block}.pi-flex{display:flex}.pi-inline-flex{display:inline-flex}.pi-grid{display:grid}.pi-hidden{display:none}.pi-h-1{height:.25rem}.pi-h-10{height:2.5rem}.pi-h-12{height:3rem}.pi-h-3{height:.75rem}.pi-h-4{height:1rem}.pi-h-5{height:1.25rem}.pi-h-6{height:1.5rem}.pi-h-8{height:2rem}.pi-h-9{height:2.25rem}.pi-h-\[1\.1rem\]{height:1.1rem}.pi-h-fit{height:fit-content}.pi-h-full{height:100%}.pi-max-h-\[13\.125rem\]{max-height:13.125rem}.pi-max-h-\[9\.125rem\]{max-height:9.125rem}.pi-min-h-full{min-height:100%}.pi-w-0\.5{width:.125rem}.pi-w-10{width:2.5rem}.pi-w-12{width:3rem}.pi-w-16{width:4rem}.pi-w-2{width:.5rem}.pi-w-3{width:.75rem}.pi-w-4{width:1rem}.pi-w-44{width:11rem}.pi-w-5{width:1.25rem}.pi-w-56{width:14rem}.pi-w-6{width:1.5rem}.pi-w-8{width:2rem}.pi-w-9{width:2.25rem}.pi-w-\[98rem\]{width:98rem}.pi-w-fit{width:fit-content}.pi-w-full{width:100%}.pi-min-w-12{min-width:3rem}.pi-min-w-\[120px\]{min-width:120px}.pi-min-w-full{min-width:100%}.pi-max-w-16{max-width:4rem}.pi-max-w-40{max-width:10rem}.pi-max-w-\[100rem\]{max-width:100rem}.pi-flex-1{flex:1 1 0%}.pi-flex-none{flex:none}.pi-flex-shrink-0,.pi-shrink-0{flex-shrink:0}.pi-flex-grow{flex-grow:1}.pi-flex-grow-0{flex-grow:0}.pi-origin-top-right{transform-origin:top right}.pi--translate-y-\[57\%\]{--tw-translate-y:-57%}.pi--rotate-45,.pi--translate-y-\[57\%\]{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.pi--rotate-45{--tw-rotate:-45deg}.pi-rotate-135{--tw-rotate:135deg}.pi-rotate-135,.pi-rotate-45{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.pi-rotate-45{--tw-rotate:45deg}.pi-rotate-90{--tw-rotate:90deg}.pi-rotate-90,.pi-rotate-\[135deg\]{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.pi-rotate-\[135deg\]{--tw-rotate:135deg}.pi-transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@keyframes pi-ping{75%,to{opacity:0;transform:scale(2)}}.pi-animate-ping{animation:pi-ping 1s cubic-bezier(0,0,.2,1) infinite}@keyframes pi-scroll{0%{transform:translateX(0)}to{transform:translateX(-100%)}}.pi-animate-scroll-text{animation:pi-scroll 10s linear infinite}.pi-cursor-auto{cursor:auto}.pi-cursor-pointer{cursor:pointer}.pi-auto-cols-max{grid-auto-columns:max-content}.pi-grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.pi-grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.pi-grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.pi-grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.pi-flex-col{flex-direction:column}.pi-place-items-center{place-items:center}.pi-content-center{align-content:center}.pi-items-center{align-items:center}.pi-justify-start{justify-content:flex-start}.pi-justify-end{justify-content:flex-end}.pi-justify-center{justify-content:center}.pi-justify-between{justify-content:space-between}.pi-justify-items-end{justify-items:end}.pi-justify-items-center{justify-items:center}.pi-gap-1{gap:.25rem}.pi-gap-2{gap:.5rem}.pi-gap-3{gap:.75rem}.pi-gap-3\.5{gap:.875rem}.pi-gap-4{gap:1rem}.pi-gap-5{gap:1.25rem}.pi-gap-6{gap:1.5rem}.pi-gap-7{gap:1.75rem}.pi-gap-y-5{row-gap:1.25rem}.pi-gap-y-6{row-gap:1.5rem}.pi-space-x-2>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-left:calc(.5rem*(1 - var(--tw-space-x-reverse)));margin-right:calc(.5rem*var(--tw-space-x-reverse))}.pi-space-y-1>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(.25rem*var(--tw-space-y-reverse));margin-top:calc(.25rem*(1 - var(--tw-space-y-reverse)))}.pi-space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(.5rem*var(--tw-space-y-reverse));margin-top:calc(.5rem*(1 - var(--tw-space-y-reverse)))}.pi-overflow-auto{overflow:auto}.pi-overflow-hidden{overflow:hidden}.pi-overflow-y-auto{overflow-y:auto}.pi-overflow-x-hidden{overflow-x:hidden}.pi-truncate{overflow:hidden;white-space:nowrap}.pi-text-ellipsis,.pi-truncate{text-overflow:ellipsis}.pi-whitespace-nowrap{white-space:nowrap}.pi-rounded{border-radius:.25rem}.pi-rounded-2xl{border-radius:1rem}.pi-rounded-3xl{border-radius:1.5rem}.pi-rounded-full{border-radius:9999px}.pi-rounded-lg{border-radius:.5rem}.pi-rounded-md{border-radius:.375rem}.pi-rounded-sm{border-radius:.125rem}.pi-rounded-xl{border-radius:.75rem}.pi-border{border-width:1px}.pi-border-2{border-width:2px}.pi-border-4{border-width:4px}.pi-border-l-4{border-left-width:4px}.pi-border-t{border-top-width:1px}.pi-border-emerald-500{--tw-border-opacity:1;border-color:rgb(16 185 129/var(--tw-border-opacity,1))}.pi-border-gray-300{--tw-border-opacity:1;border-color:rgb(209 213 219/var(--tw-border-opacity,1))}.pi-border-gray-400{--tw-border-opacity:1;border-color:rgb(156 163 175/var(--tw-border-opacity,1))}.pi-border-gray-700{--tw-border-opacity:1;border-color:rgb(55 65 81/var(--tw-border-opacity,1))}.pi-border-green-600{--tw-border-opacity:1;border-color:rgb(22 163 74/var(--tw-border-opacity,1))}.pi-border-orange-600{--tw-border-opacity:1;border-color:rgb(234 88 12/var(--tw-border-opacity,1))}.pi-border-red-600{--tw-border-opacity:1;border-color:rgb(220 38 38/var(--tw-border-opacity,1))}.pi-border-transparent{border-color:#0000}.pi-border-white{--tw-border-opacity:1;border-color:rgb(255 255 255/var(--tw-border-opacity,1))}.pi-bg-emerald-100{--tw-bg-opacity:1;background-color:rgb(209 250 229/var(--tw-bg-opacity,1))}.pi-bg-emerald-700{--tw-bg-opacity:1;background-color:rgb(4 120 87/var(--tw-bg-opacity,1))}.pi-bg-gray-200{--tw-bg-opacity:1;background-color:rgb(229 231 235/var(--tw-bg-opacity,1))}.pi-bg-gray-300{--tw-bg-opacity:1;background-color:rgb(209 213 219/var(--tw-bg-opacity,1))}.pi-bg-gray-50{--tw-bg-opacity:1;background-color:rgb(249 250 251/var(--tw-bg-opacity,1))}.pi-bg-gray-500{--tw-bg-opacity:1;background-color:rgb(107 114 128/var(--tw-bg-opacity,1))}.pi-bg-gray-600{--tw-bg-opacity:1;background-color:rgb(75 85 99/var(--tw-bg-opacity,1))}.pi-bg-gray-700{--tw-bg-opacity:1;background-color:rgb(55 65 81/var(--tw-bg-opacity,1))}.pi-bg-gray-800{--tw-bg-opacity:1;background-color:rgb(31 41 55/var(--tw-bg-opacity,1))}.pi-bg-gray-950{--tw-bg-opacity:1;background-color:rgb(3 7 18/var(--tw-bg-opacity,1))}.pi-bg-green-200{--tw-bg-opacity:1;background-color:rgb(187 247 208/var(--tw-bg-opacity,1))}.pi-bg-green-400{--tw-bg-opacity:1;background-color:rgb(74 222 128/var(--tw-bg-opacity,1))}.pi-bg-green-500{--tw-bg-opacity:1;background-color:rgb(34 197 94/var(--tw-bg-opacity,1))}.pi-bg-green-700{--tw-bg-opacity:1;background-color:rgb(21 128 61/var(--tw-bg-opacity,1))}.pi-bg-red-400{--tw-bg-opacity:1;background-color:rgb(248 113 113/var(--tw-bg-opacity,1))}.pi-bg-red-500{--tw-bg-opacity:1;background-color:rgb(239 68 68/var(--tw-bg-opacity,1))}.pi-bg-red-700{--tw-bg-opacity:1;background-color:rgb(185 28 28/var(--tw-bg-opacity,1))}.pi-bg-rose-200{--tw-bg-opacity:1;background-color:rgb(254 205 211/var(--tw-bg-opacity,1))}.pi-bg-transparent{background-color:initial}.pi-bg-white{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity,1))}.pi-bg-opacity-\[0\.99\]{--tw-bg-opacity:0.99}.pi-bg-gradient-to-b{background-image:linear-gradient(to bottom,var(--tw-gradient-stops))}.pi-bg-gradient-to-r{background-image:linear-gradient(to right,var(--tw-gradient-stops))}.pi-from-gray-100{--tw-gradient-from:#f3f4f6 var(--tw-gradient-from-position);--tw-gradient-to:#f3f4f600 var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.pi-from-transparent{--tw-gradient-from:#0000 var(--tw-gradient-from-position);--tw-gradient-to:#0000 var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.pi-to-gray-50{--tw-gradient-to:#f9fafb var(--tw-gradient-to-position)}.pi-to-gray-700{--tw-gradient-to:#374151 var(--tw-gradient-to-position)}.pi-to-transparent{--tw-gradient-to:#0000 var(--tw-gradient-to-position)}.pi-bg-cover{background-size:cover}.pi-p-4{padding:1rem}.pi-p-6{padding:1.5rem}.pi-px-0\.5{padding-left:.125rem;padding-right:.125rem}.pi-px-2{padding-left:.5rem;padding-right:.5rem}.pi-px-3{padding-left:.75rem;padding-right:.75rem}.pi-px-4{padding-left:1rem;padding-right:1rem}.pi-px-6{padding-left:1.5rem;padding-right:1.5rem}.pi-py-1{padding-bottom:.25rem;padding-top:.25rem}.pi-py-2{padding-bottom:.5rem;padding-top:.5rem}.pi-py-3{padding-bottom:.75rem;padding-top:.75rem}.pi-py-4{padding-bottom:1rem;padding-top:1rem}.pi-py-6{padding-bottom:1.5rem;padding-top:1.5rem}.pi-pb-9{padding-bottom:2.25rem}.pi-pr-4{padding-right:1rem}.pi-pt-2{padding-top:.5rem}.pi-pt-3{padding-top:.75rem}.pi-pt-4{padding-top:1rem}.pi-pt-7{padding-top:1.75rem}.pi-pt-9{padding-top:2.25rem}.pi-text-center{text-align:center}.pi-text-2xl{font-size:1.5rem;line-height:2rem}.pi-text-4xl{font-size:2.25rem;line-height:2.5rem}.pi-text-base{font-size:1rem;line-height:1.5rem}.pi-text-lg{font-size:1.125rem;line-height:1.75rem}.pi-text-sm{font-size:.875rem;line-height:1.25rem}.pi-text-xl{font-size:1.25rem;line-height:1.75rem}.pi-text-xs{font-size:.75rem;line-height:1rem}.pi-font-bold{font-weight:700}.pi-font-light{font-weight:300}.pi-font-medium{font-weight:500}.pi-font-normal{font-weight:400}.pi-font-semibold{font-weight:600}.pi-leading-4{line-height:1rem}.pi-leading-5{line-height:1.25rem}.pi-tracking-wide{letter-spacing:.025em}.pi-text-emerald-600{--tw-text-opacity:1;color:rgb(5 150 105/var(--tw-text-opacity,1))}.pi-text-emerald-700{--tw-text-opacity:1;color:rgb(4 120 87/var(--tw-text-opacity,1))}.pi-text-gray-100{--tw-text-opacity:1;color:rgb(243 244 246/var(--tw-text-opacity,1))}.pi-text-gray-400{--tw-text-opacity:1;color:rgb(156 163 175/var(--tw-text-opacity,1))}.pi-text-gray-50{--tw-text-opacity:1;color:rgb(249 250 251/var(--tw-text-opacity,1))}.pi-text-gray-500{--tw-text-opacity:1;color:rgb(107 114 128/var(--tw-text-opacity,1))}.pi-text-gray-600{--tw-text-opacity:1;color:rgb(75 85 99/var(--tw-text-opacity,1))}.pi-text-gray-700{--tw-text-opacity:1;color:rgb(55 65 81/var(--tw-text-opacity,1))}.pi-text-gray-800{--tw-text-opacity:1;color:rgb(31 41 55/var(--tw-text-opacity,1))}.pi-text-gray-900{--tw-text-opacity:1;color:rgb(17 24 39/var(--tw-text-opacity,1))}.pi-text-gray-950{--tw-text-opacity:1;color:rgb(3 7 18/var(--tw-text-opacity,1))}.pi-text-green-500{--tw-text-opacity:1;color:rgb(34 197 94/var(--tw-text-opacity,1))}.pi-text-green-600{--tw-text-opacity:1;color:rgb(22 163 74/var(--tw-text-opacity,1))}.pi-text-green-700{--tw-text-opacity:1;color:rgb(21 128 61/var(--tw-text-opacity,1))}.pi-text-red-500{--tw-text-opacity:1;color:rgb(239 68 68/var(--tw-text-opacity,1))}.pi-text-red-700{--tw-text-opacity:1;color:rgb(185 28 28/var(--tw-text-opacity,1))}.pi-text-rose-700{--tw-text-opacity:1;color:rgb(190 18 60/var(--tw-text-opacity,1))}.pi-text-white{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.pi-placeholder-gray-800::placeholder{--tw-placeholder-opacity:1;color:rgb(31 41 55/var(--tw-placeholder-opacity,1))}.pi-opacity-60{opacity:.6}.pi-opacity-75{opacity:.75}.pi-shadow{--tw-shadow:0 1px 3px 0 #0000001a,0 1px 2px -1px #0000001a;--tw-shadow-colored:0 1px 3px 0 var(--tw-shadow-color),0 1px 2px -1px var(--tw-shadow-color)}.pi-shadow,.pi-shadow-lg{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.pi-shadow-lg{--tw-shadow:0 10px 15px -3px #0000001a,0 4px 6px -4px #0000001a;--tw-shadow-colored:0 10px 15px -3px var(--tw-shadow-color),0 4px 6px -4px var(--tw-shadow-color)}.pi-shadow-md{--tw-shadow:0 4px 6px -1px #0000001a,0 2px 4px -2px #0000001a;--tw-shadow-colored:0 4px 6px -1px var(--tw-shadow-color),0 2px 4px -2px var(--tw-shadow-color)}.pi-shadow-md,.pi-shadow-sm{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.pi-shadow-sm{--tw-shadow:0 1px 2px 0 #0000000d;--tw-shadow-colored:0 1px 2px 0 var(--tw-shadow-color)}.pi-outline-none{outline:2px solid #0000;outline-offset:2px}.pi-ring-1{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.pi-ring-black{--tw-ring-opacity:1;--tw-ring-color:rgb(0 0 0/var(--tw-ring-opacity,1))}.pi-ring-opacity-5{--tw-ring-opacity:0.05}.pi-transition{transition-duration:.15s;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1)}.pi-transition-colors{transition-duration:.15s;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1)}.pi-transition-shadow{transition-duration:.15s;transition-property:box-shadow;transition-timing-function:cubic-bezier(.4,0,.2,1)}.pi-duration-200{transition-duration:.2s}.pi-scrollbar-thin::-webkit-scrollbar-track{background-color:var(--scrollbar-track);border-radius:var(--scrollbar-track-radius)}.pi-scrollbar-thin::-webkit-scrollbar-track:hover{background-color:var(--scrollbar-track-hover,var(--scrollbar-track))}.pi-scrollbar-thin::-webkit-scrollbar-track:active{background-color:var(--scrollbar-track-active,var(--scrollbar-track-hover,var(--scrollbar-track)))}.pi-scrollbar-thin::-webkit-scrollbar-thumb{background-color:var(--scrollbar-thumb);border-radius:var(--scrollbar-thumb-radius)}.pi-scrollbar-thin::-webkit-scrollbar-thumb:hover{background-color:var(--scrollbar-thumb-hover,var(--scrollbar-thumb))}.pi-scrollbar-thin::-webkit-scrollbar-thumb:active{background-color:var(--scrollbar-thumb-active,var(--scrollbar-thumb-hover,var(--scrollbar-thumb)))}.pi-scrollbar-thin::-webkit-scrollbar-corner{background-color:var(--scrollbar-corner);border-radius:var(--scrollbar-corner-radius)}.pi-scrollbar-thin::-webkit-scrollbar-corner:hover{background-color:var(--scrollbar-corner-hover,var(--scrollbar-corner))}.pi-scrollbar-thin::-webkit-scrollbar-corner:active{background-color:var(--scrollbar-corner-active,var(--scrollbar-corner-hover,var(--scrollbar-corner)))}@supports (-moz-appearance:none){.pi-scrollbar-thin{scrollbar-color:var(--scrollbar-thumb,initial) var(--scrollbar-track,initial);scrollbar-width:thin}}.pi-scrollbar-thin::-webkit-scrollbar{display:block;height:8px;width:8px}.pi-scrollbar-track-gray-200{--scrollbar-track:#e5e7eb!important}.pi-scrollbar-thumb-gray-400{--scrollbar-thumb:#9ca3af!important}.pi-scrollbar-track-rounded-full{--scrollbar-track-radius:9999px}.pi-scrollbar-thumb-rounded-full{--scrollbar-thumb-radius:9999px}.hover\:pi-scale-110:hover{--tw-scale-x:1.1;--tw-scale-y:1.1;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.hover\:pi-bg-gray-100:hover{--tw-bg-opacity:1;background-color:rgb(243 244 246/var(--tw-bg-opacity,1))}.hover\:pi-bg-gray-200:hover{--tw-bg-opacity:1;background-color:rgb(229 231 235/var(--tw-bg-opacity,1))}.hover\:pi-bg-gray-300:hover{--tw-bg-opacity:1;background-color:rgb(209 213 219/var(--tw-bg-opacity,1))}.hover\:pi-bg-gray-500:hover{--tw-bg-opacity:1;background-color:rgb(107 114 128/var(--tw-bg-opacity,1))}.hover\:pi-bg-green-600:hover{--tw-bg-opacity:1;background-color:rgb(22 163 74/var(--tw-bg-opacity,1))}.hover\:pi-bg-red-700:hover{--tw-bg-opacity:1;background-color:rgb(185 28 28/var(--tw-bg-opacity,1))}.hover\:pi-text-emerald-800:hover{--tw-text-opacity:1;color:rgb(6 95 70/var(--tw-text-opacity,1))}.hover\:pi-text-gray-50:hover{--tw-text-opacity:1;color:rgb(249 250 251/var(--tw-text-opacity,1))}.hover\:pi-text-gray-700:hover{--tw-text-opacity:1;color:rgb(55 65 81/var(--tw-text-opacity,1))}.hover\:pi-text-gray-900:hover{--tw-text-opacity:1;color:rgb(17 24 39/var(--tw-text-opacity,1))}.hover\:pi-shadow-2xl:hover{--tw-shadow:0 25px 50px -12px #00000040;--tw-shadow-colored:0 25px 50px -12px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.focus\:pi-z-20:focus{z-index:20}.focus\:pi-border-emerald-500:focus{--tw-border-opacity:1;border-color:rgb(16 185 129/var(--tw-border-opacity,1))}.focus\:pi-outline-0:focus{outline-width:0}.focus\:pi-ring-0:focus{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(var(--tw-ring-offset-width)) var(--tw-ring-color)}.focus\:pi-ring-0:focus,.focus\:pi-ring-2:focus{box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.focus\:pi-ring-2:focus{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color)}.focus\:pi-ring-emerald-500:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(16 185 129/var(--tw-ring-opacity,1))}.focus\:pi-ring-gray-400:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(156 163 175/var(--tw-ring-opacity,1))}.focus\:pi-ring-green-500:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(34 197 94/var(--tw-ring-opacity,1))}.focus\:pi-ring-offset-2:focus{--tw-ring-offset-width:2px}.focus\:pi-ring-offset-gray-200:focus{--tw-ring-offset-color:#e5e7eb}.focus\:pi-ring-offset-white:focus{--tw-ring-offset-color:#fff}.active\:pi-border-emerald-500:active{--tw-border-opacity:1;border-color:rgb(16 185 129/var(--tw-border-opacity,1))}.enabled\:hover\:pi-border-gray-500:hover:enabled{--tw-border-opacity:1;border-color:rgb(107 114 128/var(--tw-border-opacity,1))}.enabled\:hover\:pi-bg-gray-200\/70:hover:enabled{background-color:#e5e7ebb3}.enabled\:hover\:pi-bg-gray-500:hover:enabled{--tw-bg-opacity:1;background-color:rgb(107 114 128/var(--tw-bg-opacity,1))}.enabled\:hover\:pi-bg-gray-600:hover:enabled{--tw-bg-opacity:1;background-color:rgb(75 85 99/var(--tw-bg-opacity,1))}.disabled\:pi-opacity-75:disabled{opacity:.75}@media (min-width:768px){.md\:pi-grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}}.dark\:pi-border-emerald-200:where(.pi-dark,.pi-dark *){--tw-border-opacity:1;border-color:rgb(167 243 208/var(--tw-border-opacity,1))}.dark\:pi-border-gray-600:where(.pi-dark,.pi-dark *){--tw-border-opacity:1;border-color:rgb(75 85 99/var(--tw-border-opacity,1))}.dark\:pi-bg-emerald-500:where(.pi-dark,.pi-dark *){--tw-bg-opacity:1;background-color:rgb(16 185 129/var(--tw-bg-opacity,1))}.dark\:pi-bg-emerald-600:where(.pi-dark,.pi-dark *){--tw-bg-opacity:1;background-color:rgb(5 150 105/var(--tw-bg-opacity,1))}.dark\:pi-bg-gray-300:where(.pi-dark,.pi-dark *){--tw-bg-opacity:1;background-color:rgb(209 213 219/var(--tw-bg-opacity,1))}.dark\:pi-bg-gray-50:where(.pi-dark,.pi-dark *){--tw-bg-opacity:1;background-color:rgb(249 250 251/var(--tw-bg-opacity,1))}.dark\:pi-bg-gray-700:where(.pi-dark,.pi-dark *){--tw-bg-opacity:1;background-color:rgb(55 65 81/var(--tw-bg-opacity,1))}.dark\:pi-bg-gray-950:where(.pi-dark,.pi-dark *){--tw-bg-opacity:1;background-color:rgb(3 7 18/var(--tw-bg-opacity,1))}.dark\:pi-bg-green-500:where(.pi-dark,.pi-dark *){--tw-bg-opacity:1;background-color:rgb(34 197 94/var(--tw-bg-opacity,1))}.dark\:pi-bg-green-900:where(.pi-dark,.pi-dark *){--tw-bg-opacity:1;background-color:rgb(20 83 45/var(--tw-bg-opacity,1))}.dark\:pi-bg-red-500:where(.pi-dark,.pi-dark *){--tw-bg-opacity:1;background-color:rgb(239 68 68/var(--tw-bg-opacity,1))}.dark\:pi-bg-rose-900:where(.pi-dark,.pi-dark *){--tw-bg-opacity:1;background-color:rgb(136 19 55/var(--tw-bg-opacity,1))}.dark\:pi-bg-opacity-\[0\.99\]:where(.pi-dark,.pi-dark *){--tw-bg-opacity:0.99}.dark\:pi-from-black:where(.pi-dark,.pi-dark *){--tw-gradient-from:#000 var(--tw-gradient-from-position);--tw-gradient-to:#0000 var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.dark\:pi-to-gray-950:where(.pi-dark,.pi-dark *){--tw-gradient-to:#030712 var(--tw-gradient-to-position)}.dark\:pi-text-gray-100:where(.pi-dark,.pi-dark *){--tw-text-opacity:1;color:rgb(243 244 246/var(--tw-text-opacity,1))}.dark\:pi-text-gray-200:where(.pi-dark,.pi-dark *){--tw-text-opacity:1;color:rgb(229 231 235/var(--tw-text-opacity,1))}.dark\:pi-text-gray-300:where(.pi-dark,.pi-dark *){--tw-text-opacity:1;color:rgb(209 213 219/var(--tw-text-opacity,1))}.dark\:pi-text-gray-50:where(.pi-dark,.pi-dark *){--tw-text-opacity:1;color:rgb(249 250 251/var(--tw-text-opacity,1))}.dark\:pi-text-gray-950:where(.pi-dark,.pi-dark *){--tw-text-opacity:1;color:rgb(3 7 18/var(--tw-text-opacity,1))}.dark\:pi-text-green-200:where(.pi-dark,.pi-dark *){--tw-text-opacity:1;color:rgb(187 247 208/var(--tw-text-opacity,1))}.dark\:pi-text-green-400:where(.pi-dark,.pi-dark *){--tw-text-opacity:1;color:rgb(74 222 128/var(--tw-text-opacity,1))}.dark\:pi-text-red-700:where(.pi-dark,.pi-dark *){--tw-text-opacity:1;color:rgb(185 28 28/var(--tw-text-opacity,1))}.dark\:pi-text-rose-200:where(.pi-dark,.pi-dark *){--tw-text-opacity:1;color:rgb(254 205 211/var(--tw-text-opacity,1))}.dark\:pi-text-white:where(.pi-dark,.pi-dark *){--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.dark\:pi-placeholder-gray-200:where(.pi-dark,.pi-dark *)::placeholder{--tw-placeholder-opacity:1;color:rgb(229 231 235/var(--tw-placeholder-opacity,1))}.dark\:pi-scrollbar-track-gray-900:where(.pi-dark,.pi-dark *){--scrollbar-track:#111827!important}.dark\:hover\:pi-bg-gray-50:hover:where(.pi-dark,.pi-dark *){--tw-bg-opacity:1;background-color:rgb(249 250 251/var(--tw-bg-opacity,1))}.dark\:hover\:pi-bg-gray-600:hover:where(.pi-dark,.pi-dark *){--tw-bg-opacity:1;background-color:rgb(75 85 99/var(--tw-bg-opacity,1))}.dark\:hover\:pi-bg-gray-700:hover:where(.pi-dark,.pi-dark *){--tw-bg-opacity:1;background-color:rgb(55 65 81/var(--tw-bg-opacity,1))}.dark\:hover\:pi-bg-green-300:hover:where(.pi-dark,.pi-dark *){--tw-bg-opacity:1;background-color:rgb(134 239 172/var(--tw-bg-opacity,1))}.dark\:hover\:pi-bg-red-300:hover:where(.pi-dark,.pi-dark *){--tw-bg-opacity:1;background-color:rgb(252 165 165/var(--tw-bg-opacity,1))}.dark\:hover\:pi-text-gray-200:hover:where(.pi-dark,.pi-dark *){--tw-text-opacity:1;color:rgb(229 231 235/var(--tw-text-opacity,1))}.dark\:hover\:pi-text-gray-50:hover:where(.pi-dark,.pi-dark *){--tw-text-opacity:1;color:rgb(249 250 251/var(--tw-text-opacity,1))}.dark\:focus\:pi-border-emerald-200:focus:where(.pi-dark,.pi-dark *){--tw-border-opacity:1;border-color:rgb(167 243 208/var(--tw-border-opacity,1))}.dark\:focus\:pi-ring-emerald-300:focus:where(.pi-dark,.pi-dark *){--tw-ring-opacity:1;--tw-ring-color:rgb(110 231 183/var(--tw-ring-opacity,1))}.dark\:focus\:pi-ring-gray-500:focus:where(.pi-dark,.pi-dark *){--tw-ring-opacity:1;--tw-ring-color:rgb(107 114 128/var(--tw-ring-opacity,1))}.dark\:focus\:pi-ring-offset-black:focus:where(.pi-dark,.pi-dark *){--tw-ring-offset-color:#000}.dark\:active\:pi-border-emerald-200:active:where(.pi-dark,.pi-dark *){--tw-border-opacity:1;border-color:rgb(167 243 208/var(--tw-border-opacity,1))}.dark\:active\:focus\:pi-border-emerald-200:focus:active:where(.pi-dark,.pi-dark *){--tw-border-opacity:1;border-color:rgb(167 243 208/var(--tw-border-opacity,1))}.dark\:enabled\:hover\:pi-bg-gray-600:hover:enabled:where(.pi-dark,.pi-dark *){--tw-bg-opacity:1;background-color:rgb(75 85 99/var(--tw-bg-opacity,1))}.dark\:enabled\:hover\:pi-bg-gray-600\/30:hover:enabled:where(.pi-dark,.pi-dark *){background-color:#4b55634d}
|