From e789a753fd8e9f0e848ef3e3f0ab7993246ea799 Mon Sep 17 00:00:00 2001 From: labkey-susanh Date: Wed, 18 Feb 2026 16:50:17 -0800 Subject: [PATCH 01/24] Export Collapsible --- packages/components/releaseNotes/components.md | 4 ++++ packages/components/src/index.ts | 2 ++ 2 files changed, 6 insertions(+) diff --git a/packages/components/releaseNotes/components.md b/packages/components/releaseNotes/components.md index c444a2a08f..eefa45486e 100644 --- a/packages/components/releaseNotes/components.md +++ b/packages/components/releaseNotes/components.md @@ -1,6 +1,10 @@ # @labkey/components Components, models, actions, and utility functions for LabKey applications and pages +### version TBD +*Released*: TBD +- Export `Collapsible` + ### version 7.20.0 *Released*: 18 February 2026 - Multi value text choices: field type conversion diff --git a/packages/components/src/index.ts b/packages/components/src/index.ts index 65b3fab597..ef06174506 100644 --- a/packages/components/src/index.ts +++ b/packages/components/src/index.ts @@ -604,6 +604,7 @@ import { import { DesignerDetailTooltip } from './internal/components/domainproperties/DesignerDetailPanel'; import { DomainFieldLabel } from './internal/components/domainproperties/DomainFieldLabel'; import { DataTypeFoldersPanel } from './internal/components/domainproperties/DataTypeFoldersPanel'; +import { Collapsible } from './internal/components/domainproperties/Collapsible'; import { AssayDesignEmptyAlert } from './internal/components/assay/AssayDesignEmptyAlert'; import { @@ -1175,6 +1176,7 @@ export { ChoicesListItem, clearAssayDefinitionCache, clearSelected, + Collapsible, ColorIcon, ColorPickerInput, COLUMN_IN_FILTER_TYPE, From 5c9ad41c4451f38b111aad20acd363618a2d4f52 Mon Sep 17 00:00:00 2001 From: labkey-susanh Date: Wed, 18 Feb 2026 17:13:44 -0800 Subject: [PATCH 02/24] @labkey/components v7.20.1-deriveActions.0 --- packages/components/package-lock.json | 4 ++-- packages/components/package.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/components/package-lock.json b/packages/components/package-lock.json index bf2c0adf3a..65c3af1c58 100644 --- a/packages/components/package-lock.json +++ b/packages/components/package-lock.json @@ -1,12 +1,12 @@ { "name": "@labkey/components", - "version": "7.20.0", + "version": "7.20.1-deriveActions.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@labkey/components", - "version": "7.20.0", + "version": "7.20.1-deriveActions.0", "license": "SEE LICENSE IN LICENSE.txt", "dependencies": { "@hello-pangea/dnd": "18.0.1", diff --git a/packages/components/package.json b/packages/components/package.json index 53b3e1755a..5fde22445e 100644 --- a/packages/components/package.json +++ b/packages/components/package.json @@ -1,6 +1,6 @@ { "name": "@labkey/components", - "version": "7.20.0", + "version": "7.20.1-deriveActions.0", "description": "Components, models, actions, and utility functions for LabKey applications and pages", "sideEffects": false, "files": [ From e4239a1d4321b95dbad7e7fcf0d2fe46cbfe2f00 Mon Sep 17 00:00:00 2001 From: labkey-susanh Date: Thu, 19 Feb 2026 15:59:21 -0800 Subject: [PATCH 03/24] Add styling for disabled expansion icon --- packages/components/src/theme/domainproperties.scss | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/packages/components/src/theme/domainproperties.scss b/packages/components/src/theme/domainproperties.scss index f5c9d69cec..7dfe72d4ab 100644 --- a/packages/components/src/theme/domainproperties.scss +++ b/packages/components/src/theme/domainproperties.scss @@ -246,6 +246,13 @@ } } +.domain-field-expand-icon.disabled { + opacity: 0.5; + &:hover { + cursor: default; + } +} + .domain-field-delete-icon { color: $gray-no-highlight; From 5de91f27e0f32a7779e06fa7a6a4c9b03955fa08 Mon Sep 17 00:00:00 2001 From: labkey-susanh Date: Thu, 19 Feb 2026 16:07:00 -0800 Subject: [PATCH 04/24] @labkey/components v7.20.1-deriveActions.1 --- packages/components/package-lock.json | 4 ++-- packages/components/package.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/components/package-lock.json b/packages/components/package-lock.json index 65c3af1c58..16608d5dfe 100644 --- a/packages/components/package-lock.json +++ b/packages/components/package-lock.json @@ -1,12 +1,12 @@ { "name": "@labkey/components", - "version": "7.20.1-deriveActions.0", + "version": "7.20.1-deriveActions.1", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@labkey/components", - "version": "7.20.1-deriveActions.0", + "version": "7.20.1-deriveActions.1", "license": "SEE LICENSE IN LICENSE.txt", "dependencies": { "@hello-pangea/dnd": "18.0.1", diff --git a/packages/components/package.json b/packages/components/package.json index 5fde22445e..5ed15cd108 100644 --- a/packages/components/package.json +++ b/packages/components/package.json @@ -1,6 +1,6 @@ { "name": "@labkey/components", - "version": "7.20.1-deriveActions.0", + "version": "7.20.1-deriveActions.1", "description": "Components, models, actions, and utility functions for LabKey applications and pages", "sideEffects": false, "files": [ From 3068fadae2acec419a2451538561b9ea638a6ac1 Mon Sep 17 00:00:00 2001 From: labkey-susanh Date: Fri, 20 Feb 2026 08:02:59 -0800 Subject: [PATCH 05/24] disabled hover color update --- packages/components/src/theme/domainproperties.scss | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/components/src/theme/domainproperties.scss b/packages/components/src/theme/domainproperties.scss index 7dfe72d4ab..a3f12ba12d 100644 --- a/packages/components/src/theme/domainproperties.scss +++ b/packages/components/src/theme/domainproperties.scss @@ -249,6 +249,7 @@ .domain-field-expand-icon.disabled { opacity: 0.5; &:hover { + color: $gray-no-highlight; cursor: default; } } From ef5f0e6bb7f721d1d1f2b178bf6aa45e74b6a57f Mon Sep 17 00:00:00 2001 From: labkey-susanh Date: Mon, 23 Feb 2026 16:49:35 -0800 Subject: [PATCH 06/24] Back out change to export Collapsible. Not needed at the moment. --- packages/components/releaseNotes/components.md | 2 +- packages/components/src/index.ts | 2 -- 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/packages/components/releaseNotes/components.md b/packages/components/releaseNotes/components.md index 1c6112edce..afe80883a9 100644 --- a/packages/components/releaseNotes/components.md +++ b/packages/components/releaseNotes/components.md @@ -3,7 +3,7 @@ Components, models, actions, and utility functions for LabKey applications and p ### version TBD *Released*: TBD -- Export `Collapsible` +- ### version 7.20.1 *Released*: 20 February 2026 diff --git a/packages/components/src/index.ts b/packages/components/src/index.ts index ef06174506..65b3fab597 100644 --- a/packages/components/src/index.ts +++ b/packages/components/src/index.ts @@ -604,7 +604,6 @@ import { import { DesignerDetailTooltip } from './internal/components/domainproperties/DesignerDetailPanel'; import { DomainFieldLabel } from './internal/components/domainproperties/DomainFieldLabel'; import { DataTypeFoldersPanel } from './internal/components/domainproperties/DataTypeFoldersPanel'; -import { Collapsible } from './internal/components/domainproperties/Collapsible'; import { AssayDesignEmptyAlert } from './internal/components/assay/AssayDesignEmptyAlert'; import { @@ -1176,7 +1175,6 @@ export { ChoicesListItem, clearAssayDefinitionCache, clearSelected, - Collapsible, ColorIcon, ColorPickerInput, COLUMN_IN_FILTER_TYPE, From bd5d75f2e9ca3ba4e241529682b4cd165def523f Mon Sep 17 00:00:00 2001 From: labkey-susanh Date: Mon, 23 Feb 2026 17:02:10 -0800 Subject: [PATCH 07/24] @labkey/components v7.20.2-deriveActions.2 --- packages/components/package-lock.json | 4 ++-- packages/components/package.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/components/package-lock.json b/packages/components/package-lock.json index 28b3db759c..d8b64baf38 100644 --- a/packages/components/package-lock.json +++ b/packages/components/package-lock.json @@ -1,12 +1,12 @@ { "name": "@labkey/components", - "version": "7.20.2-deriveActions.1", + "version": "7.20.2-deriveActions.2", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@labkey/components", - "version": "7.20.2-deriveActions.1", + "version": "7.20.2-deriveActions.2", "license": "SEE LICENSE IN LICENSE.txt", "dependencies": { "@hello-pangea/dnd": "18.0.1", diff --git a/packages/components/package.json b/packages/components/package.json index 84d8eb4f97..e4f9c1fed2 100644 --- a/packages/components/package.json +++ b/packages/components/package.json @@ -1,6 +1,6 @@ { "name": "@labkey/components", - "version": "7.20.2-deriveActions.1", + "version": "7.20.2-deriveActions.2", "description": "Components, models, actions, and utility functions for LabKey applications and pages", "sideEffects": false, "files": [ From 2b8eefe86c3f2a8995c3cf14953be807182fb8ff Mon Sep 17 00:00:00 2001 From: labkey-susanh Date: Mon, 2 Mar 2026 13:25:29 -0800 Subject: [PATCH 08/24] package update after merge from develop --- packages/components/package-lock.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/components/package-lock.json b/packages/components/package-lock.json index abf3ee1b12..8b4bbfbe61 100644 --- a/packages/components/package-lock.json +++ b/packages/components/package-lock.json @@ -1,12 +1,12 @@ { "name": "@labkey/components", - "version": "7.21.0", + "version": "7.21.1-deriveActions.2", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@labkey/components", - "version": "7.21.0", + "version": "7.21.1-deriveActions.2", "license": "SEE LICENSE IN LICENSE.txt", "dependencies": { "@hello-pangea/dnd": "18.0.1", From 88c000e927c513bfaa8e74ae5f091f3af557e946 Mon Sep 17 00:00:00 2001 From: labkey-susanh Date: Mon, 2 Mar 2026 13:26:05 -0800 Subject: [PATCH 09/24] remove unused parameter doc --- packages/components/src/internal/components/entities/actions.ts | 1 - 1 file changed, 1 deletion(-) diff --git a/packages/components/src/internal/components/entities/actions.ts b/packages/components/src/internal/components/entities/actions.ts index 1c521d9b51..9baf3c6257 100644 --- a/packages/components/src/internal/components/entities/actions.ts +++ b/packages/components/src/internal/components/entities/actions.ts @@ -620,7 +620,6 @@ export async function getFolderConfigurableEntityTypeOptions( * @param targetQueryName the name of the listing schema query that represents the initial target for creation. * @param allowParents are parents of this entity type allowed or not * @param isItemSamples use the selectionKey from inventory.items table to query sample parents - * @param combineParentTypes */ export function getEntityTypeData( model: EntityIdCreationModel, From d38e05a23cd05bfc54065d683c74012eb53bfb8b Mon Sep 17 00:00:00 2001 From: labkey-susanh Date: Mon, 2 Mar 2026 13:26:11 -0800 Subject: [PATCH 10/24] lint --- packages/components/src/internal/app/constants.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/components/src/internal/app/constants.ts b/packages/components/src/internal/app/constants.ts index 3260c60813..e43e2125dc 100644 --- a/packages/components/src/internal/app/constants.ts +++ b/packages/components/src/internal/app/constants.ts @@ -198,6 +198,6 @@ export const FREEZER_MANAGER_APP_PROPERTIES: AppProperties = { export const APPLICATION_PROPERTIES = { [FREEZER_MANAGER_PRODUCT_ID]: FREEZER_MANAGER_APP_PROPERTIES, [SAMPLE_MANAGER_PRODUCT_ID]: SAMPLE_MANAGER_APP_PROPERTIES, - [LIMS_PRODUCT_ID] : LIMS_APP_PROPERTIES, + [LIMS_PRODUCT_ID]: LIMS_APP_PROPERTIES, [BIOLOGICS_PRODUCT_ID]: BIOLOGICS_APP_PROPERTIES -} +}; From 45ff50ac7def17e0747f34d74f41659672da2706 Mon Sep 17 00:00:00 2001 From: labkey-susanh Date: Tue, 3 Mar 2026 11:06:42 -0800 Subject: [PATCH 11/24] Update `isAllSamplesSchema` to account for move of `JobInputSamples` to `workflow` schema --- packages/components/releaseNotes/components.md | 2 +- .../src/internal/components/samples/utils.tsx | 10 ++++++---- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/packages/components/releaseNotes/components.md b/packages/components/releaseNotes/components.md index db53f5cfca..4cbd4ece66 100644 --- a/packages/components/releaseNotes/components.md +++ b/packages/components/releaseNotes/components.md @@ -3,7 +3,7 @@ Components, models, actions, and utility functions for LabKey applications and p ### version TBD *Released*: TBD -- +- Update `isAllSamplesSchema` to account for move of `JobInputSamples` to `workflow` schema ### version 7.21.0 *Released*: 26 February 2026 diff --git a/packages/components/src/internal/components/samples/utils.tsx b/packages/components/src/internal/components/samples/utils.tsx index 0a9557aa5a..a3cb94de43 100644 --- a/packages/components/src/internal/components/samples/utils.tsx +++ b/packages/components/src/internal/components/samples/utils.tsx @@ -276,11 +276,13 @@ export function isAllSamplesSchema(schemaQuery: SchemaQuery): boolean { return true; if (lcSchemaName === SCHEMAS.SAMPLE_MANAGEMENT.SCHEMA) { - return ( - lcQueryName === SCHEMAS.SAMPLE_MANAGEMENT.SOURCE_SAMPLES.queryName.toLowerCase() || - lcQueryName === SCHEMAS.WORKFLOW.JOB_INPUT_SAMPLES.queryName.toLowerCase() - ); + return lcQueryName === SCHEMAS.SAMPLE_MANAGEMENT.SOURCE_SAMPLES.queryName.toLowerCase(); } + if ( + lcSchemaName === SCHEMAS.WORKFLOW.SCHEMA && + lcQueryName === SCHEMAS.WORKFLOW.JOB_INPUT_SAMPLES.queryName.toLowerCase() + ) + return true; return false; } From 2cdf8deada6ef6a50f7bcca28ae078360409183c Mon Sep 17 00:00:00 2001 From: labkey-susanh Date: Tue, 3 Mar 2026 14:51:05 -0800 Subject: [PATCH 12/24] @labkey/components v7.21.1-deriveActions.3 --- packages/components/package-lock.json | 4 ++-- packages/components/package.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/components/package-lock.json b/packages/components/package-lock.json index 8b4bbfbe61..664c7e21e4 100644 --- a/packages/components/package-lock.json +++ b/packages/components/package-lock.json @@ -1,12 +1,12 @@ { "name": "@labkey/components", - "version": "7.21.1-deriveActions.2", + "version": "7.21.1-deriveActions.3", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@labkey/components", - "version": "7.21.1-deriveActions.2", + "version": "7.21.1-deriveActions.3", "license": "SEE LICENSE IN LICENSE.txt", "dependencies": { "@hello-pangea/dnd": "18.0.1", diff --git a/packages/components/package.json b/packages/components/package.json index 8662d1afa8..417371cf16 100644 --- a/packages/components/package.json +++ b/packages/components/package.json @@ -1,6 +1,6 @@ { "name": "@labkey/components", - "version": "7.21.1-deriveActions.2", + "version": "7.21.1-deriveActions.3", "description": "Components, models, actions, and utility functions for LabKey applications and pages", "sideEffects": false, "files": [ From 2c240b394c67ff634eda2b0db0a8f65a150c4907 Mon Sep 17 00:00:00 2001 From: labkey-susanh Date: Wed, 4 Mar 2026 11:28:48 -0800 Subject: [PATCH 13/24] @labkey/api v1.48.1-deriveActions.1 --- packages/components/package-lock.json | 8 ++++---- packages/components/package.json | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/packages/components/package-lock.json b/packages/components/package-lock.json index 664c7e21e4..fac7132c8e 100644 --- a/packages/components/package-lock.json +++ b/packages/components/package-lock.json @@ -10,7 +10,7 @@ "license": "SEE LICENSE IN LICENSE.txt", "dependencies": { "@hello-pangea/dnd": "18.0.1", - "@labkey/api": "1.48.0", + "@labkey/api": "1.48.1-deriveActions.1", "@testing-library/dom": "~10.4.1", "@testing-library/jest-dom": "~6.9.1", "@testing-library/react": "~16.3.2", @@ -3748,9 +3748,9 @@ } }, "node_modules/@labkey/api": { - "version": "1.48.0", - "resolved": "https://labkey.jfrog.io/artifactory/api/npm/libs-client/@labkey/api/-/@labkey/api-1.48.0.tgz", - "integrity": "sha512-FBRts8F//kScqVR2Y1xB8tPSMy8me6uWEbnY7kltQDO6qQSVZcHX/DgV9zW115n5rngKhDfBv+3Dr/dz0VMS8A==", + "version": "1.48.1-deriveActions.1", + "resolved": "https://labkey.jfrog.io/artifactory/api/npm/libs-client/@labkey/api/-/@labkey/api-1.48.1-deriveActions.1.tgz", + "integrity": "sha512-AQkiLjHHNVKN7e1XyOHeV3nbdbA98vJ67jYDSkJw1Tp2/R877Lq6QCY2x80Fs4Xgr6b2R5yENk3t8P7NHebbnw==", "license": "Apache-2.0" }, "node_modules/@labkey/build": { diff --git a/packages/components/package.json b/packages/components/package.json index 417371cf16..34b05a808b 100644 --- a/packages/components/package.json +++ b/packages/components/package.json @@ -50,7 +50,7 @@ "homepage": "https://github.com/LabKey/labkey-ui-components#readme", "dependencies": { "@hello-pangea/dnd": "18.0.1", - "@labkey/api": "1.48.0", + "@labkey/api": "1.48.1-deriveActions.1", "@testing-library/dom": "~10.4.1", "@testing-library/jest-dom": "~6.9.1", "@testing-library/react": "~16.3.2", From da028d0940e9be3c588a5b35e514c7a32374d515 Mon Sep 17 00:00:00 2001 From: labkey-susanh Date: Wed, 4 Mar 2026 11:30:06 -0800 Subject: [PATCH 14/24] @labkey/components v7.21.1-deriveActions.4 --- packages/components/package-lock.json | 4 ++-- packages/components/package.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/components/package-lock.json b/packages/components/package-lock.json index fac7132c8e..c5ce4deedb 100644 --- a/packages/components/package-lock.json +++ b/packages/components/package-lock.json @@ -1,12 +1,12 @@ { "name": "@labkey/components", - "version": "7.21.1-deriveActions.3", + "version": "7.21.1-deriveActions.4", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@labkey/components", - "version": "7.21.1-deriveActions.3", + "version": "7.21.1-deriveActions.4", "license": "SEE LICENSE IN LICENSE.txt", "dependencies": { "@hello-pangea/dnd": "18.0.1", diff --git a/packages/components/package.json b/packages/components/package.json index 34b05a808b..b215611e79 100644 --- a/packages/components/package.json +++ b/packages/components/package.json @@ -1,6 +1,6 @@ { "name": "@labkey/components", - "version": "7.21.1-deriveActions.3", + "version": "7.21.1-deriveActions.4", "description": "Components, models, actions, and utility functions for LabKey applications and pages", "sideEffects": false, "files": [ From f0f15f581978675510805d86ba4c74fbfda758fa Mon Sep 17 00:00:00 2001 From: labkey-susanh Date: Wed, 4 Mar 2026 12:43:47 -0800 Subject: [PATCH 15/24] Revert use of new @labkey/api version --- packages/components/package-lock.json | 12 ++++++------ packages/components/package.json | 4 ++-- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/packages/components/package-lock.json b/packages/components/package-lock.json index c5ce4deedb..a6a201a587 100644 --- a/packages/components/package-lock.json +++ b/packages/components/package-lock.json @@ -1,16 +1,16 @@ { "name": "@labkey/components", - "version": "7.21.1-deriveActions.4", + "version": "7.21.1-deriveActions.5", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@labkey/components", - "version": "7.21.1-deriveActions.4", + "version": "7.21.1-deriveActions.5", "license": "SEE LICENSE IN LICENSE.txt", "dependencies": { "@hello-pangea/dnd": "18.0.1", - "@labkey/api": "1.48.1-deriveActions.1", + "@labkey/api": "1.48.0", "@testing-library/dom": "~10.4.1", "@testing-library/jest-dom": "~6.9.1", "@testing-library/react": "~16.3.2", @@ -3748,9 +3748,9 @@ } }, "node_modules/@labkey/api": { - "version": "1.48.1-deriveActions.1", - "resolved": "https://labkey.jfrog.io/artifactory/api/npm/libs-client/@labkey/api/-/@labkey/api-1.48.1-deriveActions.1.tgz", - "integrity": "sha512-AQkiLjHHNVKN7e1XyOHeV3nbdbA98vJ67jYDSkJw1Tp2/R877Lq6QCY2x80Fs4Xgr6b2R5yENk3t8P7NHebbnw==", + "version": "1.48.0", + "resolved": "https://labkey.jfrog.io/artifactory/api/npm/libs-client/@labkey/api/-/@labkey/api-1.48.0.tgz", + "integrity": "sha512-FBRts8F//kScqVR2Y1xB8tPSMy8me6uWEbnY7kltQDO6qQSVZcHX/DgV9zW115n5rngKhDfBv+3Dr/dz0VMS8A==", "license": "Apache-2.0" }, "node_modules/@labkey/build": { diff --git a/packages/components/package.json b/packages/components/package.json index b215611e79..a75f035c45 100644 --- a/packages/components/package.json +++ b/packages/components/package.json @@ -1,6 +1,6 @@ { "name": "@labkey/components", - "version": "7.21.1-deriveActions.4", + "version": "7.21.1-deriveActions.5", "description": "Components, models, actions, and utility functions for LabKey applications and pages", "sideEffects": false, "files": [ @@ -50,7 +50,7 @@ "homepage": "https://github.com/LabKey/labkey-ui-components#readme", "dependencies": { "@hello-pangea/dnd": "18.0.1", - "@labkey/api": "1.48.1-deriveActions.1", + "@labkey/api": "1.48.0", "@testing-library/dom": "~10.4.1", "@testing-library/jest-dom": "~6.9.1", "@testing-library/react": "~16.3.2", From 107823e74686b751ef43fadb89ab320b8a003f2c Mon Sep 17 00:00:00 2001 From: labkey-susanh Date: Thu, 5 Mar 2026 10:55:23 -0800 Subject: [PATCH 16/24] @labkey/components v7.22.1-deriveActions.5 --- packages/components/package-lock.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/components/package-lock.json b/packages/components/package-lock.json index a6a201a587..d81c2fe7ee 100644 --- a/packages/components/package-lock.json +++ b/packages/components/package-lock.json @@ -1,12 +1,12 @@ { "name": "@labkey/components", - "version": "7.21.1-deriveActions.5", + "version": "7.22.1-deriveActions.5", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@labkey/components", - "version": "7.21.1-deriveActions.5", + "version": "7.22.1-deriveActions.5", "license": "SEE LICENSE IN LICENSE.txt", "dependencies": { "@hello-pangea/dnd": "18.0.1", From ea9cac7c04e27e4c7e5d33769ecf4b5600a3e0fe Mon Sep 17 00:00:00 2001 From: labkey-susanh Date: Thu, 5 Mar 2026 14:50:28 -0800 Subject: [PATCH 17/24] Add placement prop for DisableableButton --- packages/components/releaseNotes/components.md | 1 + .../internal/components/buttons/DisableableButton.tsx | 11 ++++++----- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/packages/components/releaseNotes/components.md b/packages/components/releaseNotes/components.md index a23cb7e0da..96d6c62584 100644 --- a/packages/components/releaseNotes/components.md +++ b/packages/components/releaseNotes/components.md @@ -4,6 +4,7 @@ Components, models, actions, and utility functions for LabKey applications and p ### version TBD *Released*: TBD - Update `isAllSamplesSchema` to account for move of `JobInputSamples` to `workflow` schema +- Add placement prop for `DisableableButton` ### version 7.22.0 *Released*: 4 March 2026 diff --git a/packages/components/src/internal/components/buttons/DisableableButton.tsx b/packages/components/src/internal/components/buttons/DisableableButton.tsx index 83c5b54ecd..ed5d99642c 100644 --- a/packages/components/src/internal/components/buttons/DisableableButton.tsx +++ b/packages/components/src/internal/components/buttons/DisableableButton.tsx @@ -1,4 +1,4 @@ -import React, { memo, FC, useMemo, PropsWithChildren } from 'react'; +import React, { FC, memo, PropsWithChildren, useMemo } from 'react'; import { createPortal } from 'react-dom'; @@ -10,11 +10,12 @@ interface Props extends PropsWithChildren { className?: string; disabledMsg?: string; onClick?: () => void; + placement?: 'top' | 'bottom' | 'left' | 'right'; title?: string; } export const DisableableButton: FC = memo(props => { - const { bsStyle = 'default', children, className = '', disabledMsg, onClick, title } = props; + const { bsStyle = 'default', children, className = '', disabledMsg, onClick, placement="bottom", title } = props; const { onMouseEnter, onMouseLeave, portalEl, show, targetRef } = useOverlayTriggerState( 'disabled-button-overlay', disabledMsg !== undefined, @@ -22,11 +23,11 @@ export const DisableableButton: FC = memo(props => { ); const popover = useMemo( () => ( - + {disabledMsg} ), - [disabledMsg, targetRef, title] + [disabledMsg, placement, targetRef, title] ); // Note: we use onPointerEnter/Leave so events propagate when the button is disabled @@ -37,8 +38,8 @@ export const DisableableButton: FC = memo(props => { onClick={onClick} onPointerEnter={onMouseEnter} onPointerLeave={onMouseLeave} - type="button" ref={targetRef} + type="button" > {children} {show && createPortal(popover, portalEl)} From 73f4612262dd05b8782a8982d98048781125e2be Mon Sep 17 00:00:00 2001 From: labkey-susanh Date: Thu, 5 Mar 2026 16:07:09 -0800 Subject: [PATCH 18/24] @labkey/components v7.22.1-deriveActions.6 --- packages/components/package-lock.json | 4 ++-- packages/components/package.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/components/package-lock.json b/packages/components/package-lock.json index d81c2fe7ee..e8f9b3b191 100644 --- a/packages/components/package-lock.json +++ b/packages/components/package-lock.json @@ -1,12 +1,12 @@ { "name": "@labkey/components", - "version": "7.22.1-deriveActions.5", + "version": "7.22.1-deriveActions.6", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@labkey/components", - "version": "7.22.1-deriveActions.5", + "version": "7.22.1-deriveActions.6", "license": "SEE LICENSE IN LICENSE.txt", "dependencies": { "@hello-pangea/dnd": "18.0.1", diff --git a/packages/components/package.json b/packages/components/package.json index d075c3eb1e..6a17e28e35 100644 --- a/packages/components/package.json +++ b/packages/components/package.json @@ -1,6 +1,6 @@ { "name": "@labkey/components", - "version": "7.22.1-deriveActions.5", + "version": "7.22.1-deriveActions.6", "description": "Components, models, actions, and utility functions for LabKey applications and pages", "sideEffects": false, "files": [ From 4a5412d403c344cb896ab26f6472577f970a9ca6 Mon Sep 17 00:00:00 2001 From: labkey-susanh Date: Fri, 6 Mar 2026 13:02:45 -0800 Subject: [PATCH 19/24] Remove unused class --- packages/components/src/theme/domainproperties.scss | 8 -------- 1 file changed, 8 deletions(-) diff --git a/packages/components/src/theme/domainproperties.scss b/packages/components/src/theme/domainproperties.scss index a3f12ba12d..f5c9d69cec 100644 --- a/packages/components/src/theme/domainproperties.scss +++ b/packages/components/src/theme/domainproperties.scss @@ -246,14 +246,6 @@ } } -.domain-field-expand-icon.disabled { - opacity: 0.5; - &:hover { - color: $gray-no-highlight; - cursor: default; - } -} - .domain-field-delete-icon { color: $gray-no-highlight; From e0b2b265d5068be8a5736f1edb7b754f8335f583 Mon Sep 17 00:00:00 2001 From: labkey-susanh Date: Thu, 12 Mar 2026 08:41:26 -0700 Subject: [PATCH 20/24] Little bit of linting --- .../src/internal/components/buttons/DisableableButton.tsx | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/components/src/internal/components/buttons/DisableableButton.tsx b/packages/components/src/internal/components/buttons/DisableableButton.tsx index ed5d99642c..8e96b0794e 100644 --- a/packages/components/src/internal/components/buttons/DisableableButton.tsx +++ b/packages/components/src/internal/components/buttons/DisableableButton.tsx @@ -10,12 +10,12 @@ interface Props extends PropsWithChildren { className?: string; disabledMsg?: string; onClick?: () => void; - placement?: 'top' | 'bottom' | 'left' | 'right'; + placement?: 'bottom' | 'left' | 'right' | 'top'; title?: string; } export const DisableableButton: FC = memo(props => { - const { bsStyle = 'default', children, className = '', disabledMsg, onClick, placement="bottom", title } = props; + const { bsStyle = 'default', children, className = '', disabledMsg, onClick, placement = 'bottom', title } = props; const { onMouseEnter, onMouseLeave, portalEl, show, targetRef } = useOverlayTriggerState( 'disabled-button-overlay', disabledMsg !== undefined, @@ -23,7 +23,7 @@ export const DisableableButton: FC = memo(props => { ); const popover = useMemo( () => ( - + {disabledMsg} ), From 50e17cacd5dddedba717870ce1ee3e10a002b29b Mon Sep 17 00:00:00 2001 From: labkey-susanh Date: Thu, 12 Mar 2026 14:15:06 -0700 Subject: [PATCH 21/24] add `fitlerArrayToString` method in QueryModel utils --- packages/components/releaseNotes/components.md | 1 + packages/components/src/index.ts | 2 ++ packages/components/src/public/QueryModel/utils.ts | 7 +++++++ 3 files changed, 10 insertions(+) diff --git a/packages/components/releaseNotes/components.md b/packages/components/releaseNotes/components.md index cb21121348..4a976cb086 100644 --- a/packages/components/releaseNotes/components.md +++ b/packages/components/releaseNotes/components.md @@ -5,6 +5,7 @@ Components, models, actions, and utility functions for LabKey applications and p *Released*: TBD - Update `isAllSamplesSchema` to account for move of `JobInputSamples` to `workflow` schema - Add placement prop for `DisableableButton` +- add `fitlerArrayToString` method in QueryModel utils ### version 7.23.1 *Released*: 11 March 2026 diff --git a/packages/components/src/index.ts b/packages/components/src/index.ts index 30edb6a55d..6555d407f7 100644 --- a/packages/components/src/index.ts +++ b/packages/components/src/index.ts @@ -541,6 +541,7 @@ import { createOrderedSnapshotSelectionKey, createSnapshotSelectionKey, createSnapshotSelectionKeyStr, + filterArrayToString, runDetailsColumnsForQueryModel, } from './public/QueryModel/utils'; import { CONFIRM_MESSAGE, useRouteLeave } from './internal/util/RouteLeave'; @@ -1299,6 +1300,7 @@ export { FileInput, FileTree, FilterAction, + filterArrayToString, FilterCriteriaRenderer, FilterStatus, FIND_BY_IDS_QUERY_PARAM, diff --git a/packages/components/src/public/QueryModel/utils.ts b/packages/components/src/public/QueryModel/utils.ts index 8c7465d46b..3d41a235d9 100644 --- a/packages/components/src/public/QueryModel/utils.ts +++ b/packages/components/src/public/QueryModel/utils.ts @@ -40,6 +40,13 @@ export function filterArraysEqual(a: Filter.IFilter[], b: Filter.IFilter[]): boo return aStr === bStr; } +export function filterArrayToString(filterArray: Filter.IFilter[]): string { + if (!filterArray) { + return ''; + } + return filterArray.map(filterToString).sort().join(';'); +} + export function sortsEqual(a: QuerySort, b: QuerySort): boolean { return a.toRequestString() === b.toRequestString(); } From 5134b581f2f8b3099ff6542c8fded492226f920b Mon Sep 17 00:00:00 2001 From: labkey-susanh Date: Thu, 12 Mar 2026 14:19:28 -0700 Subject: [PATCH 22/24] @labkey/components v7.23.2-deriveActions.8 --- packages/components/package-lock.json | 4 ++-- packages/components/package.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/components/package-lock.json b/packages/components/package-lock.json index 0855946730..f3bb098a57 100644 --- a/packages/components/package-lock.json +++ b/packages/components/package-lock.json @@ -1,12 +1,12 @@ { "name": "@labkey/components", - "version": "7.23.2-deriveActions.7", + "version": "7.23.2-deriveActions.8", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@labkey/components", - "version": "7.23.2-deriveActions.7", + "version": "7.23.2-deriveActions.8", "license": "SEE LICENSE IN LICENSE.txt", "dependencies": { "@hello-pangea/dnd": "18.0.1", diff --git a/packages/components/package.json b/packages/components/package.json index 9c64524ef0..f0b438e116 100644 --- a/packages/components/package.json +++ b/packages/components/package.json @@ -1,6 +1,6 @@ { "name": "@labkey/components", - "version": "7.23.2-deriveActions.7", + "version": "7.23.2-deriveActions.8", "description": "Components, models, actions, and utility functions for LabKey applications and pages", "sideEffects": false, "files": [ From 6663b73bb90128a74abc0d65e2af07d148394503 Mon Sep 17 00:00:00 2001 From: labkey-susanh Date: Thu, 12 Mar 2026 16:48:19 -0700 Subject: [PATCH 23/24] add `pronoun` utility method for the it/they or it/them text choices --- .../components/releaseNotes/components.md | 1 + packages/components/src/index.ts | 2 ++ .../components/entities/EntityMoveModal.tsx | 8 ++--- .../components/forms/BulkUpdateForm.tsx | 7 ++--- .../src/internal/util/utils.test.ts | 29 +++++++++++++------ .../components/src/internal/util/utils.ts | 6 +++- 6 files changed, 35 insertions(+), 18 deletions(-) diff --git a/packages/components/releaseNotes/components.md b/packages/components/releaseNotes/components.md index 4a976cb086..da41829db8 100644 --- a/packages/components/releaseNotes/components.md +++ b/packages/components/releaseNotes/components.md @@ -6,6 +6,7 @@ Components, models, actions, and utility functions for LabKey applications and p - Update `isAllSamplesSchema` to account for move of `JobInputSamples` to `workflow` schema - Add placement prop for `DisableableButton` - add `fitlerArrayToString` method in QueryModel utils +- add `pronoun` utility method for the it/they or it/them text choices ### version 7.23.1 *Released*: 11 March 2026 diff --git a/packages/components/src/index.ts b/packages/components/src/index.ts index 6555d407f7..085da4c6f3 100644 --- a/packages/components/src/index.ts +++ b/packages/components/src/index.ts @@ -69,6 +69,7 @@ import { makeCommaSeparatedString, parseCsvString, parseScientificInt, + pronoun, quoteValueWithDelimiters, setIsTestEnv, uncapitalizeFirstChar, @@ -1594,6 +1595,7 @@ export { ProductMenuModel, ProductNavigationMenu, Progress, + pronoun, pushParameters, QUERY_UPDATE_AUDIT_QUERY, QueryColumn, diff --git a/packages/components/src/internal/components/entities/EntityMoveModal.tsx b/packages/components/src/internal/components/entities/EntityMoveModal.tsx index a7261a24f9..772ad7f4fe 100644 --- a/packages/components/src/internal/components/entities/EntityMoveModal.tsx +++ b/packages/components/src/internal/components/entities/EntityMoveModal.tsx @@ -6,7 +6,7 @@ import { LoadingSpinner } from '../base/LoadingSpinner'; import { Alert } from '../base/Alert'; import { Container } from '../base/models/Container'; import { useNotificationsContext } from '../notifications/NotificationsContext'; -import { capitalizeFirstChar, makeCommaSeparatedString } from '../../util/utils'; +import { capitalizeFirstChar, makeCommaSeparatedString, pronoun } from '../../util/utils'; import { HelpLink, MOVE_SAMPLES_TOPIC } from '../../util/helpLinks'; import { isLoading, LoadingState } from '../../../public/LoadingState'; import { AppURL } from '../../url/AppURL'; @@ -241,12 +241,12 @@ export const getMoveConfirmationProperties = ( text = `${text} ${noun} will be moved.`; } else { const cannotMoveNoun = numCannotMove === 1 ? nounSingular : nounPlural; - const pronoun = numCannotMove === 1 ? 'it' : 'they'; + const _pronoun = pronoun(numCannotMove, 'they'); const verb = numCannotMove === 1 ? 'has' : 'have'; const parts = []; if (numNotPermitted > 0) parts.push('you lack the proper permissions'); - if (numNotAllowed > 0) parts.push(`${pronoun} ${verb} a status or related data that prevents moving`); - if (numMissing > 0) parts.push(`${pronoun} may have been deleted`); + if (numNotAllowed > 0) parts.push(`${_pronoun} ${verb} a status or related data that prevents moving`); + if (numMissing > 0) parts.push(`${_pronoun} may have been deleted`); const error = makeCommaSeparatedString(parts, ', or ', '.'); if (numCanMove === 0) { diff --git a/packages/components/src/internal/components/forms/BulkUpdateForm.tsx b/packages/components/src/internal/components/forms/BulkUpdateForm.tsx index bf9598466b..9b63c052a6 100644 --- a/packages/components/src/internal/components/forms/BulkUpdateForm.tsx +++ b/packages/components/src/internal/components/forms/BulkUpdateForm.tsx @@ -15,6 +15,7 @@ import { getCommonDataValues, getUpdatedData, makeCommaSeparatedString, + pronoun, } from '../../util/utils'; import { ComponentsAPIWrapper } from '../../APIWrapper'; @@ -66,8 +67,7 @@ export const SelectionWarning: FC = props => { } if (missingCount > 0) { - const pronoun = missingCount > 1 ? 'they' : 'it'; - messages.push(`Cannot edit ${missingCount} of the selected ${nounPlural}, ${pronoun} may have been deleted.`); + messages.push(`Cannot edit ${missingCount} of the selected ${nounPlural}, ${pronoun(missingCount, 'they')} may have been deleted.`); } if (messages.length === 0) return null; @@ -102,12 +102,11 @@ export function errorMessage( if (missingCount + notPermittedCount !== selectedCount) return undefined; const noun = selectedCount > 1 ? nounPlural : nounSingular; - const pronoun = selectedCount > 1 ? 'they' : 'it'; const parts = []; if (notPermittedCount > 0) parts.push(`you do not have the required permissions`); - if (missingCount > 0) parts.push(`${pronoun} may have been deleted`); + if (missingCount > 0) parts.push(`${pronoun(selectedCount, 'they')} may have been deleted`); return `Cannot edit selected ${noun}, ${makeCommaSeparatedString(parts, ', or ', '.')}`; } diff --git a/packages/components/src/internal/util/utils.test.ts b/packages/components/src/internal/util/utils.test.ts index ec4d3963e8..eee7937227 100644 --- a/packages/components/src/internal/util/utils.test.ts +++ b/packages/components/src/internal/util/utils.test.ts @@ -50,6 +50,7 @@ import { makeCommaSeparatedString, parseCsvString, parseScientificInt, + pronoun, quoteValueWithDelimiters, styleStringToObj, toLowerSafe, @@ -58,24 +59,22 @@ import { withTransformedKeys, } from './utils'; -const emptyList = List(); - describe('toLowerSafe', () => { test('strings', () => { - expect(toLowerSafe(List(['TEST ', ' Test', 'TeSt', 'test']))).toEqual( - List(['test ', ' test', 'test', 'test']) + expect(toLowerSafe(['TEST ', ' Test', 'TeSt', 'test'])).toEqual( + ['test ', ' test', 'test', 'test'] ); }); test('numbers', () => { - expect(toLowerSafe(List([1, 2, 3]))).toEqual(emptyList); - expect(toLowerSafe(List([1.0]))).toEqual(emptyList); - expect(toLowerSafe(List([1.0, 2]))).toEqual(emptyList); + expect(toLowerSafe([1, 2, 3])).toEqual([]); + expect(toLowerSafe([1.0])).toEqual([]); + expect(toLowerSafe([1.0, 2])).toEqual([]); }); test('strings and numbers', () => { - expect(toLowerSafe(List([1, 2, 'TEST ', ' Test', 3.0, 4.4, 'TeSt', 'test']))).toEqual( - List(['test ', ' test', 'test', 'test']) + expect(toLowerSafe([1, 2, 'TEST ', ' Test', 3.0, 4.4, 'TeSt', 'test'])).toEqual( + ['test ', ' test', 'test', 'test'] ); }); }); @@ -96,6 +95,18 @@ describe('camelCaseToTitleCase', () => { }); }); +describe('pronoun', () => { + test('singular', () => { + expect(pronoun(1)).toBe('it'); + expect(pronoun(1, 'some')).toBe('it'); + }); + test('plural', () => { + expect(pronoun(2)).toBe('them'); + expect(pronoun(2, 'some')).toBe('some'); + expect(pronoun(undefined)).toBe('them'); + }); +}); + describe('capitalizeFirstChar', () => { test('capitalizeFirstChar', () => { const testStrings = { diff --git a/packages/components/src/internal/util/utils.ts b/packages/components/src/internal/util/utils.ts index f1efe6d3fd..3b29cef301 100644 --- a/packages/components/src/internal/util/utils.ts +++ b/packages/components/src/internal/util/utils.ts @@ -90,7 +90,7 @@ export function withTransformedKeys(obj: Record, keyTransformFn: (v } /** - * Returns a copy of List and ensures that in copy all values are lower case strings. + * Returns a copy of string[] and ensures that in copy all values are lower case strings. * @param a */ export function toLowerSafe(a: string[]): string[] { @@ -107,6 +107,10 @@ export function camelCaseToTitleCase(text: string): string { return saferText.charAt(0).toUpperCase() + saferText.slice(1); } +export function pronoun(count, plural = 'them'): string { + return count === 1 ? 'it' : plural; +} + export function not(predicate: (...args: any[]) => boolean): (...args: any[]) => boolean { return function () { return !predicate.apply(this, arguments); From 0b8c92781193f97a10833c4e155d6fa4eed09214 Mon Sep 17 00:00:00 2001 From: labkey-susanh Date: Thu, 12 Mar 2026 18:41:08 -0700 Subject: [PATCH 24/24] @labkey/components v7.23.2-deriveActions.9 --- packages/components/package-lock.json | 4 ++-- packages/components/package.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/components/package-lock.json b/packages/components/package-lock.json index f3bb098a57..e30b2f282d 100644 --- a/packages/components/package-lock.json +++ b/packages/components/package-lock.json @@ -1,12 +1,12 @@ { "name": "@labkey/components", - "version": "7.23.2-deriveActions.8", + "version": "7.23.2-deriveActions.9", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@labkey/components", - "version": "7.23.2-deriveActions.8", + "version": "7.23.2-deriveActions.9", "license": "SEE LICENSE IN LICENSE.txt", "dependencies": { "@hello-pangea/dnd": "18.0.1", diff --git a/packages/components/package.json b/packages/components/package.json index f0b438e116..f31c290ddf 100644 --- a/packages/components/package.json +++ b/packages/components/package.json @@ -1,6 +1,6 @@ { "name": "@labkey/components", - "version": "7.23.2-deriveActions.8", + "version": "7.23.2-deriveActions.9", "description": "Components, models, actions, and utility functions for LabKey applications and pages", "sideEffects": false, "files": [