@shipfox/client-runners 22.0.0 → 22.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,2 +1,2 @@
1
1
  $ shipfox-swc
2
- Successfully compiled: 24 files with swc (357.78ms)
2
+ Successfully compiled: 24 files with swc (174.61ms)
package/CHANGELOG.md CHANGED
@@ -1,5 +1,22 @@
1
1
  # @shipfox/client-runners
2
2
 
3
+ ## 22.0.2
4
+
5
+ ### Patch Changes
6
+
7
+ - Updated dependencies [87d9bd8]
8
+ - @shipfox/react-ui@2.1.1
9
+ - @shipfox/client-shell@22.0.2
10
+ - @shipfox/client-ui@22.0.2
11
+
12
+ ## 22.0.1
13
+
14
+ ### Patch Changes
15
+
16
+ - e92517f: Reorganizes workspace settings into a compact sidebar rail with section panels and relocates Events settings into the new workspace layout.
17
+ - Updated dependencies [e92517f]
18
+ - @shipfox/client-shell@22.0.1
19
+
3
20
  ## 22.0.0
4
21
 
5
22
  ### Patch Changes
@@ -1 +1 @@
1
- {"version":3,"file":"manual-registration-tokens-settings-section.d.ts","sourceRoot":"","sources":["../../src/components/manual-registration-tokens-settings-section.tsx"],"names":[],"mappings":"AA0BA,wBAAgB,gDAAgD,CAAC,EAC/D,WAAW,GACZ,EAAE;IACD,WAAW,EAAE,MAAM,CAAC;CACrB,+BAsFA"}
1
+ {"version":3,"file":"manual-registration-tokens-settings-section.d.ts","sourceRoot":"","sources":["../../src/components/manual-registration-tokens-settings-section.tsx"],"names":[],"mappings":"AA0BA,wBAAgB,gDAAgD,CAAC,EAC/D,WAAW,GACZ,EAAE;IACD,WAAW,EAAE,MAAM,CAAC;CACrB,+BAqFA"}
@@ -38,7 +38,7 @@ export function WorkspaceManualRegistrationTokensSettingsSection({ workspaceId }
38
38
  /*#__PURE__*/ _jsx(Text, {
39
39
  size: "sm",
40
40
  className: "text-foreground-neutral-muted",
41
- children: "Register individual runner agents that run jobs directly in this workspace. Tokens are reusable until revoked."
41
+ children: "Tokens are reusable until they expire or are revoked."
42
42
  })
43
43
  ]
44
44
  }),
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/components/manual-registration-tokens-settings-section.tsx"],"sourcesContent":["import {QueryLoadError} from '@shipfox/client-ui';\nimport {Button} from '@shipfox/react-ui/button';\nimport {Icon} from '@shipfox/react-ui/icon';\nimport {\n Modal,\n ModalBody,\n ModalContent,\n ModalHeader,\n ModalTitle,\n ModalTrigger,\n} from '@shipfox/react-ui/modal';\nimport {Panel} from '@shipfox/react-ui/panel';\nimport {Header, Text} from '@shipfox/react-ui/typography';\nimport {useState} from 'react';\nimport type {CreatedManualRegistrationToken} from '#core/token.js';\nimport {useManualRegistrationTokensQuery} from '#hooks/api/manual-registration-tokens.js';\nimport {\n CreatedManualRegistrationTokenPanel,\n CreateManualRegistrationTokenForm,\n} from './create-manual-registration-token-form.js';\nimport {\n EmptyManualRegistrationTokens,\n ManualRegistrationTokenList,\n ManualRegistrationTokenTableSkeleton,\n} from './manual-registration-token-list.js';\n\nexport function WorkspaceManualRegistrationTokensSettingsSection({\n workspaceId,\n}: {\n workspaceId: string;\n}) {\n const tokensQuery = useManualRegistrationTokensQuery(workspaceId);\n const [isModalOpen, setIsModalOpen] = useState(false);\n const [createdToken, setCreatedToken] = useState<CreatedManualRegistrationToken | null>(null);\n const tokens = tokensQuery.data ?? [];\n\n function handleOpenChange(nextOpen: boolean) {\n setIsModalOpen(nextOpen);\n if (!nextOpen) {\n setCreatedToken(null);\n }\n }\n\n return (\n <div className=\"flex min-w-0 flex-col gap-region\">\n <section className=\"flex flex-col gap-group\">\n <div className=\"flex items-center justify-between gap-group max-[640px]:items-start\">\n <div className=\"flex flex-col gap-tight\">\n <Header variant=\"h3\">Runner registration tokens</Header>\n <Text size=\"sm\" className=\"text-foreground-neutral-muted\">\n Register individual runner agents that run jobs directly in this workspace. Tokens are\n reusable until revoked.\n </Text>\n </div>\n <div className=\"flex items-center gap-cluster\">\n {tokensQuery.isFetching && !tokensQuery.isPending ? (\n <Icon\n name=\"loader4Line\"\n className=\"mt-[2px] size-18 text-foreground-neutral-muted\"\n aria-label=\"Refreshing tokens\"\n />\n ) : null}\n <Modal open={isModalOpen} onOpenChange={handleOpenChange}>\n <ModalTrigger asChild>\n <Button>Create token</Button>\n </ModalTrigger>\n <ModalContent aria-describedby={undefined}>\n <ModalTitle className=\"sr-only\">Create manual registration token</ModalTitle>\n <ModalHeader>\n <Text\n size=\"lg\"\n aria-hidden=\"true\"\n className=\"overflow-ellipsis overflow-hidden whitespace-nowrap\"\n >\n Create manual registration token\n </Text>\n </ModalHeader>\n {createdToken ? (\n <ModalBody className=\"gap-group\">\n <CreatedManualRegistrationTokenPanel token={createdToken} />\n </ModalBody>\n ) : (\n <CreateManualRegistrationTokenForm\n workspaceId={workspaceId}\n onCreated={setCreatedToken}\n />\n )}\n </ModalContent>\n </Modal>\n </div>\n </div>\n\n {tokensQuery.isPending ? <ManualRegistrationTokenTableSkeleton /> : null}\n\n {tokensQuery.isError && tokensQuery.data === undefined ? (\n <Panel>\n <QueryLoadError\n query={tokensQuery}\n subject=\"manual registration tokens\"\n variant=\"panel\"\n />\n </Panel>\n ) : null}\n\n {tokensQuery.data !== undefined && tokens.length === 0 ? (\n <Panel>\n <EmptyManualRegistrationTokens />\n </Panel>\n ) : null}\n\n {tokens.length > 0 ? (\n <ManualRegistrationTokenList workspaceId={workspaceId} tokens={tokens} />\n ) : null}\n </section>\n </div>\n );\n}\n"],"names":["QueryLoadError","Button","Icon","Modal","ModalBody","ModalContent","ModalHeader","ModalTitle","ModalTrigger","Panel","Header","Text","useState","useManualRegistrationTokensQuery","CreatedManualRegistrationTokenPanel","CreateManualRegistrationTokenForm","EmptyManualRegistrationTokens","ManualRegistrationTokenList","ManualRegistrationTokenTableSkeleton","WorkspaceManualRegistrationTokensSettingsSection","workspaceId","tokensQuery","isModalOpen","setIsModalOpen","createdToken","setCreatedToken","tokens","data","handleOpenChange","nextOpen","div","className","section","variant","size","isFetching","isPending","name","aria-label","open","onOpenChange","asChild","aria-describedby","undefined","aria-hidden","token","onCreated","isError","query","subject","length"],"mappings":";AAAA,SAAQA,cAAc,QAAO,qBAAqB;AAClD,SAAQC,MAAM,QAAO,2BAA2B;AAChD,SAAQC,IAAI,QAAO,yBAAyB;AAC5C,SACEC,KAAK,EACLC,SAAS,EACTC,YAAY,EACZC,WAAW,EACXC,UAAU,EACVC,YAAY,QACP,0BAA0B;AACjC,SAAQC,KAAK,QAAO,0BAA0B;AAC9C,SAAQC,MAAM,EAAEC,IAAI,QAAO,+BAA+B;AAC1D,SAAQC,QAAQ,QAAO,QAAQ;AAE/B,SAAQC,gCAAgC,QAAO,2CAA2C;AAC1F,SACEC,mCAAmC,EACnCC,iCAAiC,QAC5B,6CAA6C;AACpD,SACEC,6BAA6B,EAC7BC,2BAA2B,EAC3BC,oCAAoC,QAC/B,sCAAsC;AAE7C,OAAO,SAASC,iDAAiD,EAC/DC,WAAW,EAGZ;IACC,MAAMC,cAAcR,iCAAiCO;IACrD,MAAM,CAACE,aAAaC,eAAe,GAAGX,SAAS;IAC/C,MAAM,CAACY,cAAcC,gBAAgB,GAAGb,SAAgD;IACxF,MAAMc,SAASL,YAAYM,IAAI,IAAI,EAAE;IAErC,SAASC,iBAAiBC,QAAiB;QACzCN,eAAeM;QACf,IAAI,CAACA,UAAU;YACbJ,gBAAgB;QAClB;IACF;IAEA,qBACE,KAACK;QAAIC,WAAU;kBACb,cAAA,MAACC;YAAQD,WAAU;;8BACjB,MAACD;oBAAIC,WAAU;;sCACb,MAACD;4BAAIC,WAAU;;8CACb,KAACrB;oCAAOuB,SAAQ;8CAAK;;8CACrB,KAACtB;oCAAKuB,MAAK;oCAAKH,WAAU;8CAAgC;;;;sCAK5D,MAACD;4BAAIC,WAAU;;gCACZV,YAAYc,UAAU,IAAI,CAACd,YAAYe,SAAS,iBAC/C,KAAClC;oCACCmC,MAAK;oCACLN,WAAU;oCACVO,cAAW;qCAEX;8CACJ,MAACnC;oCAAMoC,MAAMjB;oCAAakB,cAAcZ;;sDACtC,KAACpB;4CAAaiC,OAAO;sDACnB,cAAA,KAACxC;0DAAO;;;sDAEV,MAACI;4CAAaqC,oBAAkBC;;8DAC9B,KAACpC;oDAAWwB,WAAU;8DAAU;;8DAChC,KAACzB;8DACC,cAAA,KAACK;wDACCuB,MAAK;wDACLU,eAAY;wDACZb,WAAU;kEACX;;;gDAIFP,6BACC,KAACpB;oDAAU2B,WAAU;8DACnB,cAAA,KAACjB;wDAAoC+B,OAAOrB;;mEAG9C,KAACT;oDACCK,aAAaA;oDACb0B,WAAWrB;;;;;;;;;;gBAQtBJ,YAAYe,SAAS,iBAAG,KAAClB,4CAA0C;gBAEnEG,YAAY0B,OAAO,IAAI1B,YAAYM,IAAI,KAAKgB,0BAC3C,KAAClC;8BACC,cAAA,KAACT;wBACCgD,OAAO3B;wBACP4B,SAAQ;wBACRhB,SAAQ;;qBAGV;gBAEHZ,YAAYM,IAAI,KAAKgB,aAAajB,OAAOwB,MAAM,KAAK,kBACnD,KAACzC;8BACC,cAAA,KAACO;qBAED;gBAEHU,OAAOwB,MAAM,GAAG,kBACf,KAACjC;oBAA4BG,aAAaA;oBAAaM,QAAQA;qBAC7D;;;;AAIZ"}
1
+ {"version":3,"sources":["../../src/components/manual-registration-tokens-settings-section.tsx"],"sourcesContent":["import {QueryLoadError} from '@shipfox/client-ui';\nimport {Button} from '@shipfox/react-ui/button';\nimport {Icon} from '@shipfox/react-ui/icon';\nimport {\n Modal,\n ModalBody,\n ModalContent,\n ModalHeader,\n ModalTitle,\n ModalTrigger,\n} from '@shipfox/react-ui/modal';\nimport {Panel} from '@shipfox/react-ui/panel';\nimport {Header, Text} from '@shipfox/react-ui/typography';\nimport {useState} from 'react';\nimport type {CreatedManualRegistrationToken} from '#core/token.js';\nimport {useManualRegistrationTokensQuery} from '#hooks/api/manual-registration-tokens.js';\nimport {\n CreatedManualRegistrationTokenPanel,\n CreateManualRegistrationTokenForm,\n} from './create-manual-registration-token-form.js';\nimport {\n EmptyManualRegistrationTokens,\n ManualRegistrationTokenList,\n ManualRegistrationTokenTableSkeleton,\n} from './manual-registration-token-list.js';\n\nexport function WorkspaceManualRegistrationTokensSettingsSection({\n workspaceId,\n}: {\n workspaceId: string;\n}) {\n const tokensQuery = useManualRegistrationTokensQuery(workspaceId);\n const [isModalOpen, setIsModalOpen] = useState(false);\n const [createdToken, setCreatedToken] = useState<CreatedManualRegistrationToken | null>(null);\n const tokens = tokensQuery.data ?? [];\n\n function handleOpenChange(nextOpen: boolean) {\n setIsModalOpen(nextOpen);\n if (!nextOpen) {\n setCreatedToken(null);\n }\n }\n\n return (\n <div className=\"flex min-w-0 flex-col gap-region\">\n <section className=\"flex flex-col gap-group\">\n <div className=\"flex items-center justify-between gap-group max-[640px]:items-start\">\n <div className=\"flex flex-col gap-tight\">\n <Header variant=\"h3\">Runner registration tokens</Header>\n <Text size=\"sm\" className=\"text-foreground-neutral-muted\">\n Tokens are reusable until they expire or are revoked.\n </Text>\n </div>\n <div className=\"flex items-center gap-cluster\">\n {tokensQuery.isFetching && !tokensQuery.isPending ? (\n <Icon\n name=\"loader4Line\"\n className=\"mt-[2px] size-18 text-foreground-neutral-muted\"\n aria-label=\"Refreshing tokens\"\n />\n ) : null}\n <Modal open={isModalOpen} onOpenChange={handleOpenChange}>\n <ModalTrigger asChild>\n <Button>Create token</Button>\n </ModalTrigger>\n <ModalContent aria-describedby={undefined}>\n <ModalTitle className=\"sr-only\">Create manual registration token</ModalTitle>\n <ModalHeader>\n <Text\n size=\"lg\"\n aria-hidden=\"true\"\n className=\"overflow-ellipsis overflow-hidden whitespace-nowrap\"\n >\n Create manual registration token\n </Text>\n </ModalHeader>\n {createdToken ? (\n <ModalBody className=\"gap-group\">\n <CreatedManualRegistrationTokenPanel token={createdToken} />\n </ModalBody>\n ) : (\n <CreateManualRegistrationTokenForm\n workspaceId={workspaceId}\n onCreated={setCreatedToken}\n />\n )}\n </ModalContent>\n </Modal>\n </div>\n </div>\n\n {tokensQuery.isPending ? <ManualRegistrationTokenTableSkeleton /> : null}\n\n {tokensQuery.isError && tokensQuery.data === undefined ? (\n <Panel>\n <QueryLoadError\n query={tokensQuery}\n subject=\"manual registration tokens\"\n variant=\"panel\"\n />\n </Panel>\n ) : null}\n\n {tokensQuery.data !== undefined && tokens.length === 0 ? (\n <Panel>\n <EmptyManualRegistrationTokens />\n </Panel>\n ) : null}\n\n {tokens.length > 0 ? (\n <ManualRegistrationTokenList workspaceId={workspaceId} tokens={tokens} />\n ) : null}\n </section>\n </div>\n );\n}\n"],"names":["QueryLoadError","Button","Icon","Modal","ModalBody","ModalContent","ModalHeader","ModalTitle","ModalTrigger","Panel","Header","Text","useState","useManualRegistrationTokensQuery","CreatedManualRegistrationTokenPanel","CreateManualRegistrationTokenForm","EmptyManualRegistrationTokens","ManualRegistrationTokenList","ManualRegistrationTokenTableSkeleton","WorkspaceManualRegistrationTokensSettingsSection","workspaceId","tokensQuery","isModalOpen","setIsModalOpen","createdToken","setCreatedToken","tokens","data","handleOpenChange","nextOpen","div","className","section","variant","size","isFetching","isPending","name","aria-label","open","onOpenChange","asChild","aria-describedby","undefined","aria-hidden","token","onCreated","isError","query","subject","length"],"mappings":";AAAA,SAAQA,cAAc,QAAO,qBAAqB;AAClD,SAAQC,MAAM,QAAO,2BAA2B;AAChD,SAAQC,IAAI,QAAO,yBAAyB;AAC5C,SACEC,KAAK,EACLC,SAAS,EACTC,YAAY,EACZC,WAAW,EACXC,UAAU,EACVC,YAAY,QACP,0BAA0B;AACjC,SAAQC,KAAK,QAAO,0BAA0B;AAC9C,SAAQC,MAAM,EAAEC,IAAI,QAAO,+BAA+B;AAC1D,SAAQC,QAAQ,QAAO,QAAQ;AAE/B,SAAQC,gCAAgC,QAAO,2CAA2C;AAC1F,SACEC,mCAAmC,EACnCC,iCAAiC,QAC5B,6CAA6C;AACpD,SACEC,6BAA6B,EAC7BC,2BAA2B,EAC3BC,oCAAoC,QAC/B,sCAAsC;AAE7C,OAAO,SAASC,iDAAiD,EAC/DC,WAAW,EAGZ;IACC,MAAMC,cAAcR,iCAAiCO;IACrD,MAAM,CAACE,aAAaC,eAAe,GAAGX,SAAS;IAC/C,MAAM,CAACY,cAAcC,gBAAgB,GAAGb,SAAgD;IACxF,MAAMc,SAASL,YAAYM,IAAI,IAAI,EAAE;IAErC,SAASC,iBAAiBC,QAAiB;QACzCN,eAAeM;QACf,IAAI,CAACA,UAAU;YACbJ,gBAAgB;QAClB;IACF;IAEA,qBACE,KAACK;QAAIC,WAAU;kBACb,cAAA,MAACC;YAAQD,WAAU;;8BACjB,MAACD;oBAAIC,WAAU;;sCACb,MAACD;4BAAIC,WAAU;;8CACb,KAACrB;oCAAOuB,SAAQ;8CAAK;;8CACrB,KAACtB;oCAAKuB,MAAK;oCAAKH,WAAU;8CAAgC;;;;sCAI5D,MAACD;4BAAIC,WAAU;;gCACZV,YAAYc,UAAU,IAAI,CAACd,YAAYe,SAAS,iBAC/C,KAAClC;oCACCmC,MAAK;oCACLN,WAAU;oCACVO,cAAW;qCAEX;8CACJ,MAACnC;oCAAMoC,MAAMjB;oCAAakB,cAAcZ;;sDACtC,KAACpB;4CAAaiC,OAAO;sDACnB,cAAA,KAACxC;0DAAO;;;sDAEV,MAACI;4CAAaqC,oBAAkBC;;8DAC9B,KAACpC;oDAAWwB,WAAU;8DAAU;;8DAChC,KAACzB;8DACC,cAAA,KAACK;wDACCuB,MAAK;wDACLU,eAAY;wDACZb,WAAU;kEACX;;;gDAIFP,6BACC,KAACpB;oDAAU2B,WAAU;8DACnB,cAAA,KAACjB;wDAAoC+B,OAAOrB;;mEAG9C,KAACT;oDACCK,aAAaA;oDACb0B,WAAWrB;;;;;;;;;;gBAQtBJ,YAAYe,SAAS,iBAAG,KAAClB,4CAA0C;gBAEnEG,YAAY0B,OAAO,IAAI1B,YAAYM,IAAI,KAAKgB,0BAC3C,KAAClC;8BACC,cAAA,KAACT;wBACCgD,OAAO3B;wBACP4B,SAAQ;wBACRhB,SAAQ;;qBAGV;gBAEHZ,YAAYM,IAAI,KAAKgB,aAAajB,OAAOwB,MAAM,KAAK,kBACnD,KAACzC;8BACC,cAAA,KAACO;qBAED;gBAEHU,OAAOwB,MAAM,GAAG,kBACf,KAACjC;oBAA4BG,aAAaA;oBAAaM,QAAQA;qBAC7D;;;;AAIZ"}
@@ -1 +1 @@
1
- {"version":3,"file":"provisioner-tokens-settings-section.d.ts","sourceRoot":"","sources":["../../src/components/provisioner-tokens-settings-section.tsx"],"names":[],"mappings":"AA8BA,wBAAgB,yCAAyC,CAAC,EAAC,WAAW,EAAC,EAAE;IAAC,WAAW,EAAE,MAAM,CAAA;CAAC,+BA8F7F"}
1
+ {"version":3,"file":"provisioner-tokens-settings-section.d.ts","sourceRoot":"","sources":["../../src/components/provisioner-tokens-settings-section.tsx"],"names":[],"mappings":"AA8BA,wBAAgB,yCAAyC,CAAC,EAAC,WAAW,EAAC,EAAE;IAAC,WAAW,EAAE,MAAM,CAAA;CAAC,+BA0F7F"}
@@ -33,19 +33,12 @@ export function WorkspaceProvisionerTokensSettingsSection({ workspaceId }) {
33
33
  /*#__PURE__*/ _jsxs("div", {
34
34
  className: "flex items-center justify-between gap-group max-[640px]:items-start",
35
35
  children: [
36
- /*#__PURE__*/ _jsxs("div", {
36
+ /*#__PURE__*/ _jsx("div", {
37
37
  className: "flex flex-col gap-tight",
38
- children: [
39
- /*#__PURE__*/ _jsx(Header, {
40
- variant: "h3",
41
- children: "Runner provisioner registration tokens"
42
- }),
43
- /*#__PURE__*/ _jsx(Text, {
44
- size: "sm",
45
- className: "text-foreground-neutral-muted",
46
- children: "Register runner provisioners that connect to this workspace and create runners dynamically based on demand."
47
- })
48
- ]
38
+ children: /*#__PURE__*/ _jsx(Header, {
39
+ variant: "h3",
40
+ children: "Runner provisioner registration tokens"
41
+ })
49
42
  }),
50
43
  /*#__PURE__*/ _jsxs("div", {
51
44
  className: "flex items-center gap-cluster",
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/components/provisioner-tokens-settings-section.tsx"],"sourcesContent":["import {QueryLoadError} from '@shipfox/client-ui';\nimport {Button} from '@shipfox/react-ui/button';\nimport {Icon} from '@shipfox/react-ui/icon';\nimport {\n Modal,\n ModalBody,\n ModalContent,\n ModalHeader,\n ModalTitle,\n ModalTrigger,\n} from '@shipfox/react-ui/modal';\nimport {Panel} from '@shipfox/react-ui/panel';\nimport {RelativeTimeProvider} from '@shipfox/react-ui/relative-time';\nimport {Header, Text} from '@shipfox/react-ui/typography';\nimport {useMemo, useState} from 'react';\nimport type {CreatedProvisionerToken} from '#core/token.js';\nimport {\n useActiveProvisionersQuery,\n useProvisionerTokensQuery,\n} from '#hooks/api/provisioner-tokens.js';\nimport {\n CreatedProvisionerTokenPanel,\n CreateProvisionerTokenForm,\n} from './create-provisioner-token-form.js';\nimport {\n EmptyProvisionerTokens,\n ProvisionerTokenList,\n ProvisionerTokenTableSkeleton,\n} from './provisioner-token-list.js';\n\nexport function WorkspaceProvisionerTokensSettingsSection({workspaceId}: {workspaceId: string}) {\n const tokensQuery = useProvisionerTokensQuery(workspaceId);\n const activeProvisionersQuery = useActiveProvisionersQuery(workspaceId);\n const [isModalOpen, setIsModalOpen] = useState(false);\n const [createdToken, setCreatedToken] = useState<CreatedProvisionerToken | null>(null);\n const tokens = tokensQuery.data ?? [];\n const activeIds = useMemo(\n () => new Set(activeProvisionersQuery.data?.map((provisioner) => provisioner.id)),\n [activeProvisionersQuery.data],\n );\n\n function handleOpenChange(nextOpen: boolean) {\n setIsModalOpen(nextOpen);\n if (!nextOpen) {\n setCreatedToken(null);\n }\n }\n\n return (\n <div className=\"flex min-w-0 flex-col gap-region\">\n <section className=\"flex flex-col gap-group\">\n <div className=\"flex items-center justify-between gap-group max-[640px]:items-start\">\n <div className=\"flex flex-col gap-tight\">\n <Header variant=\"h3\">Runner provisioner registration tokens</Header>\n <Text size=\"sm\" className=\"text-foreground-neutral-muted\">\n Register runner provisioners that connect to this workspace and create runners\n dynamically based on demand.\n </Text>\n </div>\n <div className=\"flex items-center gap-cluster\">\n {(tokensQuery.isFetching && !tokensQuery.isPending) ||\n (activeProvisionersQuery.isFetching && !activeProvisionersQuery.isPending) ? (\n <Icon\n name=\"loader4Line\"\n className=\"mt-[2px] size-18 text-foreground-neutral-muted\"\n aria-label=\"Refreshing provisioner tokens\"\n />\n ) : null}\n <Modal open={isModalOpen} onOpenChange={handleOpenChange}>\n <ModalTrigger asChild>\n <Button>Create token</Button>\n </ModalTrigger>\n <ModalContent aria-describedby={undefined}>\n <ModalTitle className=\"sr-only\">Create provisioner registration token</ModalTitle>\n <ModalHeader>\n <Text\n size=\"lg\"\n aria-hidden=\"true\"\n className=\"overflow-ellipsis overflow-hidden whitespace-nowrap\"\n >\n Create provisioner registration token\n </Text>\n </ModalHeader>\n {createdToken ? (\n <ModalBody className=\"gap-group\">\n <CreatedProvisionerTokenPanel token={createdToken} />\n </ModalBody>\n ) : (\n <CreateProvisionerTokenForm\n workspaceId={workspaceId}\n onCreated={setCreatedToken}\n />\n )}\n </ModalContent>\n </Modal>\n </div>\n </div>\n\n {tokensQuery.isPending ? <ProvisionerTokenTableSkeleton /> : null}\n\n {tokensQuery.isError && tokensQuery.data === undefined ? (\n <Panel>\n <QueryLoadError\n query={tokensQuery}\n subject=\"provisioner registration tokens\"\n variant=\"panel\"\n />\n </Panel>\n ) : null}\n\n {tokensQuery.data !== undefined && tokens.length === 0 ? (\n <Panel>\n <EmptyProvisionerTokens />\n </Panel>\n ) : null}\n\n {tokens.length > 0 ? (\n <RelativeTimeProvider>\n <ProvisionerTokenList workspaceId={workspaceId} tokens={tokens} activeIds={activeIds} />\n </RelativeTimeProvider>\n ) : null}\n </section>\n </div>\n );\n}\n"],"names":["QueryLoadError","Button","Icon","Modal","ModalBody","ModalContent","ModalHeader","ModalTitle","ModalTrigger","Panel","RelativeTimeProvider","Header","Text","useMemo","useState","useActiveProvisionersQuery","useProvisionerTokensQuery","CreatedProvisionerTokenPanel","CreateProvisionerTokenForm","EmptyProvisionerTokens","ProvisionerTokenList","ProvisionerTokenTableSkeleton","WorkspaceProvisionerTokensSettingsSection","workspaceId","tokensQuery","activeProvisionersQuery","isModalOpen","setIsModalOpen","createdToken","setCreatedToken","tokens","data","activeIds","Set","map","provisioner","id","handleOpenChange","nextOpen","div","className","section","variant","size","isFetching","isPending","name","aria-label","open","onOpenChange","asChild","aria-describedby","undefined","aria-hidden","token","onCreated","isError","query","subject","length"],"mappings":";AAAA,SAAQA,cAAc,QAAO,qBAAqB;AAClD,SAAQC,MAAM,QAAO,2BAA2B;AAChD,SAAQC,IAAI,QAAO,yBAAyB;AAC5C,SACEC,KAAK,EACLC,SAAS,EACTC,YAAY,EACZC,WAAW,EACXC,UAAU,EACVC,YAAY,QACP,0BAA0B;AACjC,SAAQC,KAAK,QAAO,0BAA0B;AAC9C,SAAQC,oBAAoB,QAAO,kCAAkC;AACrE,SAAQC,MAAM,EAAEC,IAAI,QAAO,+BAA+B;AAC1D,SAAQC,OAAO,EAAEC,QAAQ,QAAO,QAAQ;AAExC,SACEC,0BAA0B,EAC1BC,yBAAyB,QACpB,mCAAmC;AAC1C,SACEC,4BAA4B,EAC5BC,0BAA0B,QACrB,qCAAqC;AAC5C,SACEC,sBAAsB,EACtBC,oBAAoB,EACpBC,6BAA6B,QACxB,8BAA8B;AAErC,OAAO,SAASC,0CAA0C,EAACC,WAAW,EAAwB;IAC5F,MAAMC,cAAcR,0BAA0BO;IAC9C,MAAME,0BAA0BV,2BAA2BQ;IAC3D,MAAM,CAACG,aAAaC,eAAe,GAAGb,SAAS;IAC/C,MAAM,CAACc,cAAcC,gBAAgB,GAAGf,SAAyC;IACjF,MAAMgB,SAASN,YAAYO,IAAI,IAAI,EAAE;IACrC,MAAMC,YAAYnB,QAChB,IAAM,IAAIoB,IAAIR,wBAAwBM,IAAI,EAAEG,IAAI,CAACC,cAAgBA,YAAYC,EAAE,IAC/E;QAACX,wBAAwBM,IAAI;KAAC;IAGhC,SAASM,iBAAiBC,QAAiB;QACzCX,eAAeW;QACf,IAAI,CAACA,UAAU;YACbT,gBAAgB;QAClB;IACF;IAEA,qBACE,KAACU;QAAIC,WAAU;kBACb,cAAA,MAACC;YAAQD,WAAU;;8BACjB,MAACD;oBAAIC,WAAU;;sCACb,MAACD;4BAAIC,WAAU;;8CACb,KAAC7B;oCAAO+B,SAAQ;8CAAK;;8CACrB,KAAC9B;oCAAK+B,MAAK;oCAAKH,WAAU;8CAAgC;;;;sCAK5D,MAACD;4BAAIC,WAAU;;gCACXhB,YAAYoB,UAAU,IAAI,CAACpB,YAAYqB,SAAS,IACjDpB,wBAAwBmB,UAAU,IAAI,CAACnB,wBAAwBoB,SAAS,iBACvE,KAAC3C;oCACC4C,MAAK;oCACLN,WAAU;oCACVO,cAAW;qCAEX;8CACJ,MAAC5C;oCAAM6C,MAAMtB;oCAAauB,cAAcZ;;sDACtC,KAAC7B;4CAAa0C,OAAO;sDACnB,cAAA,KAACjD;0DAAO;;;sDAEV,MAACI;4CAAa8C,oBAAkBC;;8DAC9B,KAAC7C;oDAAWiC,WAAU;8DAAU;;8DAChC,KAAClC;8DACC,cAAA,KAACM;wDACC+B,MAAK;wDACLU,eAAY;wDACZb,WAAU;kEACX;;;gDAIFZ,6BACC,KAACxB;oDAAUoC,WAAU;8DACnB,cAAA,KAACvB;wDAA6BqC,OAAO1B;;mEAGvC,KAACV;oDACCK,aAAaA;oDACbgC,WAAW1B;;;;;;;;;;gBAQtBL,YAAYqB,SAAS,iBAAG,KAACxB,qCAAmC;gBAE5DG,YAAYgC,OAAO,IAAIhC,YAAYO,IAAI,KAAKqB,0BAC3C,KAAC3C;8BACC,cAAA,KAACT;wBACCyD,OAAOjC;wBACPkC,SAAQ;wBACRhB,SAAQ;;qBAGV;gBAEHlB,YAAYO,IAAI,KAAKqB,aAAatB,OAAO6B,MAAM,KAAK,kBACnD,KAAClD;8BACC,cAAA,KAACU;qBAED;gBAEHW,OAAO6B,MAAM,GAAG,kBACf,KAACjD;8BACC,cAAA,KAACU;wBAAqBG,aAAaA;wBAAaO,QAAQA;wBAAQE,WAAWA;;qBAE3E;;;;AAIZ"}
1
+ {"version":3,"sources":["../../src/components/provisioner-tokens-settings-section.tsx"],"sourcesContent":["import {QueryLoadError} from '@shipfox/client-ui';\nimport {Button} from '@shipfox/react-ui/button';\nimport {Icon} from '@shipfox/react-ui/icon';\nimport {\n Modal,\n ModalBody,\n ModalContent,\n ModalHeader,\n ModalTitle,\n ModalTrigger,\n} from '@shipfox/react-ui/modal';\nimport {Panel} from '@shipfox/react-ui/panel';\nimport {RelativeTimeProvider} from '@shipfox/react-ui/relative-time';\nimport {Header, Text} from '@shipfox/react-ui/typography';\nimport {useMemo, useState} from 'react';\nimport type {CreatedProvisionerToken} from '#core/token.js';\nimport {\n useActiveProvisionersQuery,\n useProvisionerTokensQuery,\n} from '#hooks/api/provisioner-tokens.js';\nimport {\n CreatedProvisionerTokenPanel,\n CreateProvisionerTokenForm,\n} from './create-provisioner-token-form.js';\nimport {\n EmptyProvisionerTokens,\n ProvisionerTokenList,\n ProvisionerTokenTableSkeleton,\n} from './provisioner-token-list.js';\n\nexport function WorkspaceProvisionerTokensSettingsSection({workspaceId}: {workspaceId: string}) {\n const tokensQuery = useProvisionerTokensQuery(workspaceId);\n const activeProvisionersQuery = useActiveProvisionersQuery(workspaceId);\n const [isModalOpen, setIsModalOpen] = useState(false);\n const [createdToken, setCreatedToken] = useState<CreatedProvisionerToken | null>(null);\n const tokens = tokensQuery.data ?? [];\n const activeIds = useMemo(\n () => new Set(activeProvisionersQuery.data?.map((provisioner) => provisioner.id)),\n [activeProvisionersQuery.data],\n );\n\n function handleOpenChange(nextOpen: boolean) {\n setIsModalOpen(nextOpen);\n if (!nextOpen) {\n setCreatedToken(null);\n }\n }\n\n return (\n <div className=\"flex min-w-0 flex-col gap-region\">\n <section className=\"flex flex-col gap-group\">\n <div className=\"flex items-center justify-between gap-group max-[640px]:items-start\">\n <div className=\"flex flex-col gap-tight\">\n <Header variant=\"h3\">Runner provisioner registration tokens</Header>\n </div>\n <div className=\"flex items-center gap-cluster\">\n {(tokensQuery.isFetching && !tokensQuery.isPending) ||\n (activeProvisionersQuery.isFetching && !activeProvisionersQuery.isPending) ? (\n <Icon\n name=\"loader4Line\"\n className=\"mt-[2px] size-18 text-foreground-neutral-muted\"\n aria-label=\"Refreshing provisioner tokens\"\n />\n ) : null}\n <Modal open={isModalOpen} onOpenChange={handleOpenChange}>\n <ModalTrigger asChild>\n <Button>Create token</Button>\n </ModalTrigger>\n <ModalContent aria-describedby={undefined}>\n <ModalTitle className=\"sr-only\">Create provisioner registration token</ModalTitle>\n <ModalHeader>\n <Text\n size=\"lg\"\n aria-hidden=\"true\"\n className=\"overflow-ellipsis overflow-hidden whitespace-nowrap\"\n >\n Create provisioner registration token\n </Text>\n </ModalHeader>\n {createdToken ? (\n <ModalBody className=\"gap-group\">\n <CreatedProvisionerTokenPanel token={createdToken} />\n </ModalBody>\n ) : (\n <CreateProvisionerTokenForm\n workspaceId={workspaceId}\n onCreated={setCreatedToken}\n />\n )}\n </ModalContent>\n </Modal>\n </div>\n </div>\n\n {tokensQuery.isPending ? <ProvisionerTokenTableSkeleton /> : null}\n\n {tokensQuery.isError && tokensQuery.data === undefined ? (\n <Panel>\n <QueryLoadError\n query={tokensQuery}\n subject=\"provisioner registration tokens\"\n variant=\"panel\"\n />\n </Panel>\n ) : null}\n\n {tokensQuery.data !== undefined && tokens.length === 0 ? (\n <Panel>\n <EmptyProvisionerTokens />\n </Panel>\n ) : null}\n\n {tokens.length > 0 ? (\n <RelativeTimeProvider>\n <ProvisionerTokenList workspaceId={workspaceId} tokens={tokens} activeIds={activeIds} />\n </RelativeTimeProvider>\n ) : null}\n </section>\n </div>\n );\n}\n"],"names":["QueryLoadError","Button","Icon","Modal","ModalBody","ModalContent","ModalHeader","ModalTitle","ModalTrigger","Panel","RelativeTimeProvider","Header","Text","useMemo","useState","useActiveProvisionersQuery","useProvisionerTokensQuery","CreatedProvisionerTokenPanel","CreateProvisionerTokenForm","EmptyProvisionerTokens","ProvisionerTokenList","ProvisionerTokenTableSkeleton","WorkspaceProvisionerTokensSettingsSection","workspaceId","tokensQuery","activeProvisionersQuery","isModalOpen","setIsModalOpen","createdToken","setCreatedToken","tokens","data","activeIds","Set","map","provisioner","id","handleOpenChange","nextOpen","div","className","section","variant","isFetching","isPending","name","aria-label","open","onOpenChange","asChild","aria-describedby","undefined","size","aria-hidden","token","onCreated","isError","query","subject","length"],"mappings":";AAAA,SAAQA,cAAc,QAAO,qBAAqB;AAClD,SAAQC,MAAM,QAAO,2BAA2B;AAChD,SAAQC,IAAI,QAAO,yBAAyB;AAC5C,SACEC,KAAK,EACLC,SAAS,EACTC,YAAY,EACZC,WAAW,EACXC,UAAU,EACVC,YAAY,QACP,0BAA0B;AACjC,SAAQC,KAAK,QAAO,0BAA0B;AAC9C,SAAQC,oBAAoB,QAAO,kCAAkC;AACrE,SAAQC,MAAM,EAAEC,IAAI,QAAO,+BAA+B;AAC1D,SAAQC,OAAO,EAAEC,QAAQ,QAAO,QAAQ;AAExC,SACEC,0BAA0B,EAC1BC,yBAAyB,QACpB,mCAAmC;AAC1C,SACEC,4BAA4B,EAC5BC,0BAA0B,QACrB,qCAAqC;AAC5C,SACEC,sBAAsB,EACtBC,oBAAoB,EACpBC,6BAA6B,QACxB,8BAA8B;AAErC,OAAO,SAASC,0CAA0C,EAACC,WAAW,EAAwB;IAC5F,MAAMC,cAAcR,0BAA0BO;IAC9C,MAAME,0BAA0BV,2BAA2BQ;IAC3D,MAAM,CAACG,aAAaC,eAAe,GAAGb,SAAS;IAC/C,MAAM,CAACc,cAAcC,gBAAgB,GAAGf,SAAyC;IACjF,MAAMgB,SAASN,YAAYO,IAAI,IAAI,EAAE;IACrC,MAAMC,YAAYnB,QAChB,IAAM,IAAIoB,IAAIR,wBAAwBM,IAAI,EAAEG,IAAI,CAACC,cAAgBA,YAAYC,EAAE,IAC/E;QAACX,wBAAwBM,IAAI;KAAC;IAGhC,SAASM,iBAAiBC,QAAiB;QACzCX,eAAeW;QACf,IAAI,CAACA,UAAU;YACbT,gBAAgB;QAClB;IACF;IAEA,qBACE,KAACU;QAAIC,WAAU;kBACb,cAAA,MAACC;YAAQD,WAAU;;8BACjB,MAACD;oBAAIC,WAAU;;sCACb,KAACD;4BAAIC,WAAU;sCACb,cAAA,KAAC7B;gCAAO+B,SAAQ;0CAAK;;;sCAEvB,MAACH;4BAAIC,WAAU;;gCACXhB,YAAYmB,UAAU,IAAI,CAACnB,YAAYoB,SAAS,IACjDnB,wBAAwBkB,UAAU,IAAI,CAAClB,wBAAwBmB,SAAS,iBACvE,KAAC1C;oCACC2C,MAAK;oCACLL,WAAU;oCACVM,cAAW;qCAEX;8CACJ,MAAC3C;oCAAM4C,MAAMrB;oCAAasB,cAAcX;;sDACtC,KAAC7B;4CAAayC,OAAO;sDACnB,cAAA,KAAChD;0DAAO;;;sDAEV,MAACI;4CAAa6C,oBAAkBC;;8DAC9B,KAAC5C;oDAAWiC,WAAU;8DAAU;;8DAChC,KAAClC;8DACC,cAAA,KAACM;wDACCwC,MAAK;wDACLC,eAAY;wDACZb,WAAU;kEACX;;;gDAIFZ,6BACC,KAACxB;oDAAUoC,WAAU;8DACnB,cAAA,KAACvB;wDAA6BqC,OAAO1B;;mEAGvC,KAACV;oDACCK,aAAaA;oDACbgC,WAAW1B;;;;;;;;;;gBAQtBL,YAAYoB,SAAS,iBAAG,KAACvB,qCAAmC;gBAE5DG,YAAYgC,OAAO,IAAIhC,YAAYO,IAAI,KAAKoB,0BAC3C,KAAC1C;8BACC,cAAA,KAACT;wBACCyD,OAAOjC;wBACPkC,SAAQ;wBACRhB,SAAQ;;qBAGV;gBAEHlB,YAAYO,IAAI,KAAKoB,aAAarB,OAAO6B,MAAM,KAAK,kBACnD,KAAClD;8BACC,cAAA,KAACU;qBAED;gBAEHW,OAAO6B,MAAM,GAAG,kBACf,KAACjD;8BACC,cAAA,KAACU;wBAAqBG,aAAaA;wBAAaO,QAAQA;wBAAQE,WAAWA;;qBAE3E;;;;AAIZ"}
@@ -1,13 +1,26 @@
1
- import { jsx as _jsx } from "react/jsx-runtime";
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { defineRoute, useActiveWorkspace } from '@shipfox/client-shell/runtime';
3
+ import { Header } from '@shipfox/react-ui/typography';
3
4
  import { WorkspaceProvisionerTokensSettingsSection } from '#index.js';
4
5
  export default defineRoute({
5
6
  staticData: {
6
7
  frame: 'content'
7
8
  },
8
- component: ()=>/*#__PURE__*/ _jsx(WorkspaceProvisionerTokensSettingsSection, {
9
- workspaceId: useActiveWorkspace().id
10
- })
9
+ component: ()=>{
10
+ const workspace = useActiveWorkspace();
11
+ return /*#__PURE__*/ _jsxs("div", {
12
+ className: "flex min-w-0 flex-col gap-section",
13
+ children: [
14
+ /*#__PURE__*/ _jsx(Header, {
15
+ variant: "h1",
16
+ children: "Runner provisioners"
17
+ }),
18
+ /*#__PURE__*/ _jsx(WorkspaceProvisionerTokensSettingsSection, {
19
+ workspaceId: workspace.id
20
+ })
21
+ ]
22
+ });
23
+ }
11
24
  });
12
25
 
13
26
  //# sourceMappingURL=provisioners-settings.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/routes/provisioners-settings.tsx"],"sourcesContent":["import {defineRoute, useActiveWorkspace} from '@shipfox/client-shell/runtime';\nimport {WorkspaceProvisionerTokensSettingsSection} from '#index.js';\n\nexport default defineRoute({\n staticData: {frame: 'content'},\n component: () => (\n <WorkspaceProvisionerTokensSettingsSection workspaceId={useActiveWorkspace().id} />\n ),\n});\n"],"names":["defineRoute","useActiveWorkspace","WorkspaceProvisionerTokensSettingsSection","staticData","frame","component","workspaceId","id"],"mappings":";AAAA,SAAQA,WAAW,EAAEC,kBAAkB,QAAO,gCAAgC;AAC9E,SAAQC,yCAAyC,QAAO,YAAY;AAEpE,eAAeF,YAAY;IACzBG,YAAY;QAACC,OAAO;IAAS;IAC7BC,WAAW,kBACT,KAACH;YAA0CI,aAAaL,qBAAqBM,EAAE;;AAEnF,GAAG"}
1
+ {"version":3,"sources":["../../src/routes/provisioners-settings.tsx"],"sourcesContent":["import {defineRoute, useActiveWorkspace} from '@shipfox/client-shell/runtime';\nimport {Header} from '@shipfox/react-ui/typography';\nimport {WorkspaceProvisionerTokensSettingsSection} from '#index.js';\n\nexport default defineRoute({\n staticData: {frame: 'content'},\n component: () => {\n const workspace = useActiveWorkspace();\n return (\n <div className=\"flex min-w-0 flex-col gap-section\">\n <Header variant=\"h1\">Runner provisioners</Header>\n <WorkspaceProvisionerTokensSettingsSection workspaceId={workspace.id} />\n </div>\n );\n },\n});\n"],"names":["defineRoute","useActiveWorkspace","Header","WorkspaceProvisionerTokensSettingsSection","staticData","frame","component","workspace","div","className","variant","workspaceId","id"],"mappings":";AAAA,SAAQA,WAAW,EAAEC,kBAAkB,QAAO,gCAAgC;AAC9E,SAAQC,MAAM,QAAO,+BAA+B;AACpD,SAAQC,yCAAyC,QAAO,YAAY;AAEpE,eAAeH,YAAY;IACzBI,YAAY;QAACC,OAAO;IAAS;IAC7BC,WAAW;QACT,MAAMC,YAAYN;QAClB,qBACE,MAACO;YAAIC,WAAU;;8BACb,KAACP;oBAAOQ,SAAQ;8BAAK;;8BACrB,KAACP;oBAA0CQ,aAAaJ,UAAUK,EAAE;;;;IAG1E;AACF,GAAG"}
@@ -1,13 +1,26 @@
1
- import { jsx as _jsx } from "react/jsx-runtime";
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { defineRoute, useActiveWorkspace } from '@shipfox/client-shell/runtime';
3
+ import { Header } from '@shipfox/react-ui/typography';
3
4
  import { WorkspaceManualRegistrationTokensSettingsSection } from '#index.js';
4
5
  export default defineRoute({
5
6
  staticData: {
6
7
  frame: 'content'
7
8
  },
8
- component: ()=>/*#__PURE__*/ _jsx(WorkspaceManualRegistrationTokensSettingsSection, {
9
- workspaceId: useActiveWorkspace().id
10
- })
9
+ component: ()=>{
10
+ const workspace = useActiveWorkspace();
11
+ return /*#__PURE__*/ _jsxs("div", {
12
+ className: "flex min-w-0 flex-col gap-section",
13
+ children: [
14
+ /*#__PURE__*/ _jsx(Header, {
15
+ variant: "h1",
16
+ children: "Runners"
17
+ }),
18
+ /*#__PURE__*/ _jsx(WorkspaceManualRegistrationTokensSettingsSection, {
19
+ workspaceId: workspace.id
20
+ })
21
+ ]
22
+ });
23
+ }
11
24
  });
12
25
 
13
26
  //# sourceMappingURL=runners-settings.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/routes/runners-settings.tsx"],"sourcesContent":["import {defineRoute, useActiveWorkspace} from '@shipfox/client-shell/runtime';\nimport {WorkspaceManualRegistrationTokensSettingsSection} from '#index.js';\n\nexport default defineRoute({\n staticData: {frame: 'content'},\n component: () => (\n <WorkspaceManualRegistrationTokensSettingsSection workspaceId={useActiveWorkspace().id} />\n ),\n});\n"],"names":["defineRoute","useActiveWorkspace","WorkspaceManualRegistrationTokensSettingsSection","staticData","frame","component","workspaceId","id"],"mappings":";AAAA,SAAQA,WAAW,EAAEC,kBAAkB,QAAO,gCAAgC;AAC9E,SAAQC,gDAAgD,QAAO,YAAY;AAE3E,eAAeF,YAAY;IACzBG,YAAY;QAACC,OAAO;IAAS;IAC7BC,WAAW,kBACT,KAACH;YAAiDI,aAAaL,qBAAqBM,EAAE;;AAE1F,GAAG"}
1
+ {"version":3,"sources":["../../src/routes/runners-settings.tsx"],"sourcesContent":["import {defineRoute, useActiveWorkspace} from '@shipfox/client-shell/runtime';\nimport {Header} from '@shipfox/react-ui/typography';\nimport {WorkspaceManualRegistrationTokensSettingsSection} from '#index.js';\n\nexport default defineRoute({\n staticData: {frame: 'content'},\n component: () => {\n const workspace = useActiveWorkspace();\n return (\n <div className=\"flex min-w-0 flex-col gap-section\">\n <Header variant=\"h1\">Runners</Header>\n <WorkspaceManualRegistrationTokensSettingsSection workspaceId={workspace.id} />\n </div>\n );\n },\n});\n"],"names":["defineRoute","useActiveWorkspace","Header","WorkspaceManualRegistrationTokensSettingsSection","staticData","frame","component","workspace","div","className","variant","workspaceId","id"],"mappings":";AAAA,SAAQA,WAAW,EAAEC,kBAAkB,QAAO,gCAAgC;AAC9E,SAAQC,MAAM,QAAO,+BAA+B;AACpD,SAAQC,gDAAgD,QAAO,YAAY;AAE3E,eAAeH,YAAY;IACzBI,YAAY;QAACC,OAAO;IAAS;IAC7BC,WAAW;QACT,MAAMC,YAAYN;QAClB,qBACE,MAACO;YAAIC,WAAU;;8BACb,KAACP;oBAAOQ,SAAQ;8BAAK;;8BACrB,KAACP;oBAAiDQ,aAAaJ,UAAUK,EAAE;;;;IAGjF;AACF,GAAG"}