diff --git a/site/biome.json b/site/biome.json index 9a71b3a3b8..76d68260d1 100644 --- a/site/biome.json +++ b/site/biome.json @@ -6,7 +6,8 @@ "rules": { "a11y": { "noSvgWithoutTitle": { "level": "off" }, - "useButtonType": { "level": "off" } + "useButtonType": { "level": "off" }, + "useSemanticElements": { "level": "off" } }, "style": { "noNonNullAssertion": { "level": "off" }, diff --git a/site/package.json b/site/package.json index e2af681e8b..e383b440c6 100644 --- a/site/package.json +++ b/site/package.json @@ -101,7 +101,7 @@ "yup": "1.4.0" }, "devDependencies": { - "@biomejs/biome": "1.8.3", + "@biomejs/biome": "1.9.3", "@chromatic-com/storybook": "1.9.0", "@octokit/types": "12.3.0", "@playwright/test": "1.47.2", diff --git a/site/pnpm-lock.yaml b/site/pnpm-lock.yaml index 231272a5d1..2f2a673639 100644 --- a/site/pnpm-lock.yaml +++ b/site/pnpm-lock.yaml @@ -212,8 +212,8 @@ importers: version: 1.4.0 devDependencies: '@biomejs/biome': - specifier: 1.8.3 - version: 1.8.3 + specifier: 1.9.3 + version: 1.9.3 '@chromatic-com/storybook': specifier: 1.9.0 version: 1.9.0(react@18.3.1) @@ -396,7 +396,7 @@ importers: version: 5.4.6(@types/node@20.16.10) vite-plugin-checker: specifier: 0.7.2 - version: 0.7.2(@biomejs/biome@1.8.3)(eslint@8.52.0)(optionator@0.9.3)(typescript@5.5.4)(vite@5.4.6(@types/node@20.16.10)) + version: 0.7.2(@biomejs/biome@1.9.3)(eslint@8.52.0)(optionator@0.9.3)(typescript@5.5.4)(vite@5.4.6(@types/node@20.16.10)) vite-plugin-turbosnap: specifier: 1.0.3 version: 1.0.3 @@ -1215,55 +1215,55 @@ packages: '@bcoe/v8-coverage@0.2.3': resolution: {integrity: sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==} - '@biomejs/biome@1.8.3': - resolution: {integrity: sha512-/uUV3MV+vyAczO+vKrPdOW0Iaet7UnJMU4bNMinggGJTAnBPjCoLEYcyYtYHNnUNYlv4xZMH6hVIQCAozq8d5w==} + '@biomejs/biome@1.9.3': + resolution: {integrity: sha512-POjAPz0APAmX33WOQFGQrwLvlu7WLV4CFJMlB12b6ZSg+2q6fYu9kZwLCOA+x83zXfcPd1RpuWOKJW0GbBwLIQ==} engines: {node: '>=14.21.3'} hasBin: true - '@biomejs/cli-darwin-arm64@1.8.3': - resolution: {integrity: sha512-9DYOjclFpKrH/m1Oz75SSExR8VKvNSSsLnVIqdnKexj6NwmiMlKk94Wa1kZEdv6MCOHGHgyyoV57Cw8WzL5n3A==} + '@biomejs/cli-darwin-arm64@1.9.3': + resolution: {integrity: sha512-QZzD2XrjJDUyIZK+aR2i5DDxCJfdwiYbUKu9GzkCUJpL78uSelAHAPy7m0GuPMVtF/Uo+OKv97W3P9nuWZangQ==} engines: {node: '>=14.21.3'} cpu: [arm64] os: [darwin] - '@biomejs/cli-darwin-x64@1.8.3': - resolution: {integrity: sha512-UeW44L/AtbmOF7KXLCoM+9PSgPo0IDcyEUfIoOXYeANaNXXf9mLUwV1GeF2OWjyic5zj6CnAJ9uzk2LT3v/wAw==} + '@biomejs/cli-darwin-x64@1.9.3': + resolution: {integrity: sha512-vSCoIBJE0BN3SWDFuAY/tRavpUtNoqiceJ5PrU3xDfsLcm/U6N93JSM0M9OAiC/X7mPPfejtr6Yc9vSgWlEgVw==} engines: {node: '>=14.21.3'} cpu: [x64] os: [darwin] - '@biomejs/cli-linux-arm64-musl@1.8.3': - resolution: {integrity: sha512-9yjUfOFN7wrYsXt/T/gEWfvVxKlnh3yBpnScw98IF+oOeCYb5/b/+K7YNqKROV2i1DlMjg9g/EcN9wvj+NkMuQ==} + '@biomejs/cli-linux-arm64-musl@1.9.3': + resolution: {integrity: sha512-VBzyhaqqqwP3bAkkBrhVq50i3Uj9+RWuj+pYmXrMDgjS5+SKYGE56BwNw4l8hR3SmYbLSbEo15GcV043CDSk+Q==} engines: {node: '>=14.21.3'} cpu: [arm64] os: [linux] - '@biomejs/cli-linux-arm64@1.8.3': - resolution: {integrity: sha512-fed2ji8s+I/m8upWpTJGanqiJ0rnlHOK3DdxsyVLZQ8ClY6qLuPc9uehCREBifRJLl/iJyQpHIRufLDeotsPtw==} + '@biomejs/cli-linux-arm64@1.9.3': + resolution: {integrity: sha512-vJkAimD2+sVviNTbaWOGqEBy31cW0ZB52KtpVIbkuma7PlfII3tsLhFa+cwbRAcRBkobBBhqZ06hXoZAN8NODQ==} engines: {node: '>=14.21.3'} cpu: [arm64] os: [linux] - '@biomejs/cli-linux-x64-musl@1.8.3': - resolution: {integrity: sha512-UHrGJX7PrKMKzPGoEsooKC9jXJMa28TUSMjcIlbDnIO4EAavCoVmNQaIuUSH0Ls2mpGMwUIf+aZJv657zfWWjA==} + '@biomejs/cli-linux-x64-musl@1.9.3': + resolution: {integrity: sha512-TJmnOG2+NOGM72mlczEsNki9UT+XAsMFAOo8J0me/N47EJ/vkLXxf481evfHLlxMejTY6IN8SdRSiPVLv6AHlA==} engines: {node: '>=14.21.3'} cpu: [x64] os: [linux] - '@biomejs/cli-linux-x64@1.8.3': - resolution: {integrity: sha512-I8G2QmuE1teISyT8ie1HXsjFRz9L1m5n83U1O6m30Kw+kPMPSKjag6QGUn+sXT8V+XWIZxFFBoTDEDZW2KPDDw==} + '@biomejs/cli-linux-x64@1.9.3': + resolution: {integrity: sha512-x220V4c+romd26Mu1ptU+EudMXVS4xmzKxPVb9mgnfYlN4Yx9vD5NZraSx/onJnd3Gh/y8iPUdU5CDZJKg9COA==} engines: {node: '>=14.21.3'} cpu: [x64] os: [linux] - '@biomejs/cli-win32-arm64@1.8.3': - resolution: {integrity: sha512-J+Hu9WvrBevfy06eU1Na0lpc7uR9tibm9maHynLIoAjLZpQU3IW+OKHUtyL8p6/3pT2Ju5t5emReeIS2SAxhkQ==} + '@biomejs/cli-win32-arm64@1.9.3': + resolution: {integrity: sha512-lg/yZis2HdQGsycUvHWSzo9kOvnGgvtrYRgoCEwPBwwAL8/6crOp3+f47tPwI/LI1dZrhSji7PNsGKGHbwyAhw==} engines: {node: '>=14.21.3'} cpu: [arm64] os: [win32] - '@biomejs/cli-win32-x64@1.8.3': - resolution: {integrity: sha512-/PJ59vA1pnQeKahemaQf4Nyj7IKUvGQSc3Ze1uIGi+Wvr1xF7rGobSrAAG01T/gUDG21vkDsZYM03NAmPiVkqg==} + '@biomejs/cli-win32-x64@1.9.3': + resolution: {integrity: sha512-cQMy2zanBkVLpmmxXdK6YePzmZx0s5Z7KEnwmrW54rcXK3myCNbQa09SwGZ8i/8sLw0H9F3X7K4rxVNGU8/D4Q==} engines: {node: '>=14.21.3'} cpu: [x64] os: [win32] @@ -8157,39 +8157,39 @@ snapshots: '@bcoe/v8-coverage@0.2.3': {} - '@biomejs/biome@1.8.3': + '@biomejs/biome@1.9.3': optionalDependencies: - '@biomejs/cli-darwin-arm64': 1.8.3 - '@biomejs/cli-darwin-x64': 1.8.3 - '@biomejs/cli-linux-arm64': 1.8.3 - '@biomejs/cli-linux-arm64-musl': 1.8.3 - '@biomejs/cli-linux-x64': 1.8.3 - '@biomejs/cli-linux-x64-musl': 1.8.3 - '@biomejs/cli-win32-arm64': 1.8.3 - '@biomejs/cli-win32-x64': 1.8.3 + '@biomejs/cli-darwin-arm64': 1.9.3 + '@biomejs/cli-darwin-x64': 1.9.3 + '@biomejs/cli-linux-arm64': 1.9.3 + '@biomejs/cli-linux-arm64-musl': 1.9.3 + '@biomejs/cli-linux-x64': 1.9.3 + '@biomejs/cli-linux-x64-musl': 1.9.3 + '@biomejs/cli-win32-arm64': 1.9.3 + '@biomejs/cli-win32-x64': 1.9.3 - '@biomejs/cli-darwin-arm64@1.8.3': + '@biomejs/cli-darwin-arm64@1.9.3': optional: true - '@biomejs/cli-darwin-x64@1.8.3': + '@biomejs/cli-darwin-x64@1.9.3': optional: true - '@biomejs/cli-linux-arm64-musl@1.8.3': + '@biomejs/cli-linux-arm64-musl@1.9.3': optional: true - '@biomejs/cli-linux-arm64@1.8.3': + '@biomejs/cli-linux-arm64@1.9.3': optional: true - '@biomejs/cli-linux-x64-musl@1.8.3': + '@biomejs/cli-linux-x64-musl@1.9.3': optional: true - '@biomejs/cli-linux-x64@1.8.3': + '@biomejs/cli-linux-x64@1.9.3': optional: true - '@biomejs/cli-win32-arm64@1.8.3': + '@biomejs/cli-win32-arm64@1.9.3': optional: true - '@biomejs/cli-win32-x64@1.8.3': + '@biomejs/cli-win32-x64@1.9.3': optional: true '@bundled-es-modules/cookie@2.0.0': @@ -14817,7 +14817,7 @@ snapshots: unist-util-stringify-position: 4.0.0 vfile-message: 4.0.2 - vite-plugin-checker@0.7.2(@biomejs/biome@1.8.3)(eslint@8.52.0)(optionator@0.9.3)(typescript@5.5.4)(vite@5.4.6(@types/node@20.16.10)): + vite-plugin-checker@0.7.2(@biomejs/biome@1.9.3)(eslint@8.52.0)(optionator@0.9.3)(typescript@5.5.4)(vite@5.4.6(@types/node@20.16.10)): dependencies: '@babel/code-frame': 7.24.7 ansi-escapes: 4.3.2 @@ -14835,7 +14835,7 @@ snapshots: vscode-languageserver-textdocument: 1.0.12 vscode-uri: 3.0.8 optionalDependencies: - '@biomejs/biome': 1.8.3 + '@biomejs/biome': 1.9.3 eslint: 8.52.0 optionator: 0.9.3 typescript: 5.5.4 diff --git a/site/src/modules/resources/ResourceCard.tsx b/site/src/modules/resources/ResourceCard.tsx index 731f73cdd9..ceeaccf3d2 100644 --- a/site/src/modules/resources/ResourceCard.tsx +++ b/site/src/modules/resources/ResourceCard.tsx @@ -87,7 +87,7 @@ export const ResourceCard: FC = ({ resource, agentRow }) => { const mLength = resource.daily_cost > 0 ? (resource.metadata?.length ?? 0) + 1 - : resource.metadata?.length ?? 0; + : (resource.metadata?.length ?? 0); const gridWidth = mLength === 1 ? 1 : 4; diff --git a/site/src/pages/CreateTemplatePage/VariableInput.tsx b/site/src/pages/CreateTemplatePage/VariableInput.tsx index 52e991f79f..f2038957df 100644 --- a/site/src/pages/CreateTemplatePage/VariableInput.tsx +++ b/site/src/pages/CreateTemplatePage/VariableInput.tsx @@ -95,7 +95,7 @@ const VariableField: FC = ({ placeholder={variable.sensitive ? "" : variable.default_value} required={variable.required} defaultValue={ - variable.sensitive ? "" : defaultValue ?? variable.default_value + variable.sensitive ? "" : (defaultValue ?? variable.default_value) } onChange={(event) => { onChange(event.target.value); diff --git a/site/src/pages/TemplatePage/TemplateVersionsPage/VersionRow.tsx b/site/src/pages/TemplatePage/TemplateVersionsPage/VersionRow.tsx index 00625d9c6a..f2cf6bd695 100644 --- a/site/src/pages/TemplatePage/TemplateVersionsPage/VersionRow.tsx +++ b/site/src/pages/TemplatePage/TemplateVersionsPage/VersionRow.tsx @@ -106,34 +106,30 @@ export const VersionRow: FC = ({ )} - {showActions && ( - <> - {jobStatus === "failed" ? ( - - ) : ( - - )} - + {showActions && jobStatus === "failed" ? ( + + ) : ( + )} diff --git a/site/src/pages/TemplateSettingsPage/TemplatePermissionsPage/UserOrGroupAutocomplete.tsx b/site/src/pages/TemplateSettingsPage/TemplatePermissionsPage/UserOrGroupAutocomplete.tsx index ee153de211..07c0c58969 100644 --- a/site/src/pages/TemplateSettingsPage/TemplatePermissionsPage/UserOrGroupAutocomplete.tsx +++ b/site/src/pages/TemplateSettingsPage/TemplatePermissionsPage/UserOrGroupAutocomplete.tsx @@ -74,7 +74,7 @@ export const UserOrGroupAutocomplete: FC = ({ }} onClose={() => { setAutoComplete({ - value: isGroup(value) ? value.display_name : value?.email ?? "", + value: isGroup(value) ? value.display_name : (value?.email ?? ""), open: false, }); }} diff --git a/site/src/pages/TemplateSettingsPage/TemplateSchedulePage/TemplateScheduleForm.tsx b/site/src/pages/TemplateSettingsPage/TemplateSchedulePage/TemplateScheduleForm.tsx index d0d781ffd1..c9841c4fe1 100644 --- a/site/src/pages/TemplateSettingsPage/TemplateSchedulePage/TemplateScheduleForm.tsx +++ b/site/src/pages/TemplateSettingsPage/TemplateSchedulePage/TemplateScheduleForm.tsx @@ -467,122 +467,118 @@ export const TemplateScheduleForm: FC = ({ {allowAdvancedScheduling && ( - <> - - - - - } - label={Enable Dormancy Threshold} - /> + + + + + } + label={Enable Dormancy Threshold} + /> - - ), - })} - label="Time until dormant" - valueMs={form.values.time_til_dormant_ms ?? 0} - onChange={(v) => form.setFieldValue("time_til_dormant_ms", v)} - disabled={ - isSubmitting || !form.values.inactivity_cleanup_enabled - } - /> - - - - - } - label={ - - Enable Dormancy Auto-Deletion - - When enabled, Coder will permanently delete dormant - workspaces after a period of time.{" "} - - Once a workspace is deleted it cannot be recovered. - - - - } - /> - - ), - })} - label="Time until deletion" - valueMs={form.values.time_til_dormant_autodelete_ms ?? 0} - onChange={(v) => - form.setFieldValue("time_til_dormant_autodelete_ms", v) - } - disabled={ - isSubmitting || - !form.values.dormant_autodeletion_cleanup_enabled - } - /> - + ), + })} + label="Time until dormant" + valueMs={form.values.time_til_dormant_ms ?? 0} + onChange={(v) => form.setFieldValue("time_til_dormant_ms", v)} + disabled={ + isSubmitting || !form.values.inactivity_cleanup_enabled + } + /> + - - + + } + label={ + + Enable Dormancy Auto-Deletion + + When enabled, Coder will permanently delete dormant + workspaces after a period of time.{" "} + + Once a workspace is deleted it cannot be recovered. + + + + } + /> + - } - label={ - - Enable Failure Cleanup - - When enabled, Coder will attempt to stop workspaces that - are in a failed state after a period of time. - - - } - /> - - ), - })} - label="Time until cleanup" - valueMs={form.values.failure_ttl_ms ?? 0} - onChange={(v) => form.setFieldValue("failure_ttl_ms", v)} - disabled={ - isSubmitting || !form.values.failure_cleanup_enabled - } - /> - - - - + ), + })} + label="Time until deletion" + valueMs={form.values.time_til_dormant_autodelete_ms ?? 0} + onChange={(v) => + form.setFieldValue("time_til_dormant_autodelete_ms", v) + } + disabled={ + isSubmitting || + !form.values.dormant_autodeletion_cleanup_enabled + } + /> + + + + + } + label={ + + Enable Failure Cleanup + + When enabled, Coder will attempt to stop workspaces that + are in a failed state after a period of time. + + + } + /> + + ), + })} + label="Time until cleanup" + valueMs={form.values.failure_ttl_ms ?? 0} + onChange={(v) => form.setFieldValue("failure_ttl_ms", v)} + disabled={isSubmitting || !form.values.failure_cleanup_enabled} + /> + + + )} {showScheduleDialog && ( = ({ filter={filter} error={error} options={ - <> - - + } optionsSkeleton={} /> diff --git a/site/src/pages/UserSettingsPage/ExternalAuthPage/ExternalAuthPageView.tsx b/site/src/pages/UserSettingsPage/ExternalAuthPage/ExternalAuthPageView.tsx index 26a7777cf4..b0f6fbf581 100644 --- a/site/src/pages/UserSettingsPage/ExternalAuthPage/ExternalAuthPageView.tsx +++ b/site/src/pages/UserSettingsPage/ExternalAuthPage/ExternalAuthPageView.tsx @@ -149,7 +149,7 @@ const ExternalAuthRow: FC = ({ const authenticated = externalAuth ? externalAuth.authenticated - : link?.authenticated ?? false; + : (link?.authenticated ?? false); let avatar = app.display_icon ? ( diff --git a/site/src/pages/UsersPage/UsersPageView.tsx b/site/src/pages/UsersPage/UsersPageView.tsx index 9de54cc7e3..e8ccd60bb0 100644 --- a/site/src/pages/UsersPage/UsersPageView.tsx +++ b/site/src/pages/UsersPage/UsersPageView.tsx @@ -74,16 +74,14 @@ export const UsersPageView: FC = ({ - {canCreateUser && ( - - )} - + canCreateUser && ( + + ) } > Users diff --git a/site/src/pages/WorkspacePage/ResourcesSidebar.tsx b/site/src/pages/WorkspacePage/ResourcesSidebar.tsx index b03e687d7b..06ff737624 100644 --- a/site/src/pages/WorkspacePage/ResourcesSidebar.tsx +++ b/site/src/pages/WorkspacePage/ResourcesSidebar.tsx @@ -70,7 +70,6 @@ export const ResourcesSidebar: FC = ({ css={{ width: "100%", height: "100%", objectFit: "contain" }} src={getResourceIconPath(r.type)} alt="" - role="presentation" />