From 96ec4ab1cd8ccaf85b80f2f61c23cefc8f101179 Mon Sep 17 00:00:00 2001 From: connoratrug Date: Mon, 20 Jan 2025 13:46:04 +0100 Subject: [PATCH 01/16] feat(tailwind-components): add form legend component --- apps/metadata-utils/src/types.ts | 7 +++ apps/tailwind-components/assets/css/main.css | 3 ++ .../components/form/Legend.vue | 54 +++++++++++++++++++ .../pages/Legend.story.vue | 51 ++++++++++++++++++ apps/tailwind-components/tailwind.config.js | 6 +++ apps/yarn.lock | 31 ++--------- 6 files changed, 124 insertions(+), 28 deletions(-) create mode 100644 apps/tailwind-components/components/form/Legend.vue create mode 100644 apps/tailwind-components/pages/Legend.story.vue diff --git a/apps/metadata-utils/src/types.ts b/apps/metadata-utils/src/types.ts index c31dd39a4f..111f907ccc 100644 --- a/apps/metadata-utils/src/types.ts +++ b/apps/metadata-utils/src/types.ts @@ -91,6 +91,13 @@ export interface IFieldError { message: string; } +export interface IFormLegendSection { + label: string; + domId: string; + isActive?: boolean; + errorCount?: number; +} + export type columnId = string; export type columnValue = string | number | boolean | columnValueObject; diff --git a/apps/tailwind-components/assets/css/main.css b/apps/tailwind-components/assets/css/main.css index 9479aff2c5..2f8f52a7e5 100644 --- a/apps/tailwind-components/assets/css/main.css +++ b/apps/tailwind-components/assets/css/main.css @@ -38,6 +38,7 @@ --color-orange-500: #E1B53E; --color-red-200: #FCECEF; --color-red-500: #E14F62; + --color-red-700: #AE2A3F; --color-gradient1: #0062C6; --color-gradient2: #0072E4; @@ -79,6 +80,7 @@ --background-color-input: var(--color-white); --background-color-input-checked: var(--color-yellow-500); --background-color-table: var(--color-white); + --background-color-notification: var(--color-red-700); --text-color-button-primary: var(--color-white); @@ -129,6 +131,7 @@ --text-color-table-column-header: var(--color-gray-600); --text-color-form-header: var(--color-blue-800); --text-color-input-description: var(--color-blue-800); + --text-color-legend-error-count: var(--color-white); --text-color-invalid: var(--color-red-500); --text-color-valid: var(--color-green-800); diff --git a/apps/tailwind-components/components/form/Legend.vue b/apps/tailwind-components/components/form/Legend.vue new file mode 100644 index 0000000000..48713458c9 --- /dev/null +++ b/apps/tailwind-components/components/form/Legend.vue @@ -0,0 +1,54 @@ + + + diff --git a/apps/tailwind-components/pages/Legend.story.vue b/apps/tailwind-components/pages/Legend.story.vue new file mode 100644 index 0000000000..6ebcc5e644 --- /dev/null +++ b/apps/tailwind-components/pages/Legend.story.vue @@ -0,0 +1,51 @@ + + + diff --git a/apps/tailwind-components/tailwind.config.js b/apps/tailwind-components/tailwind.config.js index 53519f3e7e..d0c18cb5b0 100644 --- a/apps/tailwind-components/tailwind.config.js +++ b/apps/tailwind-components/tailwind.config.js @@ -80,6 +80,7 @@ module.exports = { }, red: { 500: "#E14F62", + 700: "#AE2A3F", }, }, extend: { @@ -154,6 +155,7 @@ module.exports = { "invalid": "var(--background-color-invalid)", "input": "var(--background-color-input)", "table": "var(--background-color-table)", + "notification": "var(--background-color-notification)", }), textColor: ({ theme }) => ({ "button-primary": "var(--text-color-button-primary)", @@ -206,6 +208,7 @@ module.exports = { "valid": "var(--text-color-valid)", "disabled": "var(--text-color-disabled)", "required": "var(--text-color-required)", + "legend-error-count": "var(--text-color-legend-error-count)", }), borderColor: ({ theme }) => ({ "button-primary": "var(--border-color-button-primary)", @@ -232,10 +235,13 @@ module.exports = { }), stroke: ({ theme }) => ({ "input": "var(--border-color-input)", + "notification-text": "var(--text-color-legend-error-count)", }), fill: ({ theme }) => ({ "input": "var(--background-color-input)", "input-checked": "var(--background-color-input-checked)", + "notification": "var(--background-color-notification)", + "notification-text": "var(--text-color-legend-error-count)", }), borderRadius: { "3px": "var(--border-radius-3px)", diff --git a/apps/yarn.lock b/apps/yarn.lock index 68f2ca94a9..a38c41b9fc 100644 --- a/apps/yarn.lock +++ b/apps/yarn.lock @@ -12404,7 +12404,7 @@ string-env-interpolation@1.0.1: resolved "https://registry.yarnpkg.com/string-env-interpolation/-/string-env-interpolation-1.0.1.tgz#ad4397ae4ac53fe6c91d1402ad6f6a52862c7152" integrity sha512-78lwMoCcn0nNu8LszbP1UA7g55OeE4v7rCeWnM5B453rnNr4aq+5it3FEYtZrSEiMvHZOZ9Jlqb0OD0M2VInqg== -"string-width-cjs@npm:string-width@^4.2.0": +"string-width-cjs@npm:string-width@^4.2.0", string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: version "4.2.3" resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== @@ -12421,15 +12421,6 @@ string-width@^2.0.0, string-width@^2.1.0, string-width@^2.1.1: is-fullwidth-code-point "^2.0.0" strip-ansi "^4.0.0" -string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: - version "4.2.3" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" - integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== - dependencies: - emoji-regex "^8.0.0" - is-fullwidth-code-point "^3.0.0" - strip-ansi "^6.0.1" - string-width@^5.0.1, string-width@^5.1.2: version "5.1.2" resolved "https://registry.yarnpkg.com/string-width/-/string-width-5.1.2.tgz#14f8daec6d81e7221d2a357e668cab73bdbca794" @@ -12453,7 +12444,7 @@ string_decoder@~1.1.1: dependencies: safe-buffer "~5.1.0" -"strip-ansi-cjs@npm:strip-ansi@^6.0.1": +"strip-ansi-cjs@npm:strip-ansi@^6.0.1", strip-ansi@^6.0.0, strip-ansi@^6.0.1: version "6.0.1" resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== @@ -12474,13 +12465,6 @@ strip-ansi@^4.0.0: dependencies: ansi-regex "^3.0.0" -strip-ansi@^6.0.0, strip-ansi@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" - integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== - dependencies: - ansi-regex "^5.0.1" - strip-ansi@^7.0.1: version "7.1.0" resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-7.1.0.tgz#d5b6568ca689d8561370b0707685d22434faff45" @@ -14263,7 +14247,7 @@ wordwrap@^1.0.0, wordwrap@~1.0.0: resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb" integrity sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q== -"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0": +"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0", wrap-ansi@^7.0.0: version "7.0.0" resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== @@ -14280,15 +14264,6 @@ wrap-ansi@^3.0.1: string-width "^2.1.1" strip-ansi "^4.0.0" -wrap-ansi@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" - integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== - dependencies: - ansi-styles "^4.0.0" - string-width "^4.1.0" - strip-ansi "^6.0.0" - wrap-ansi@^8.1.0: version "8.1.0" resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-8.1.0.tgz#56dc22368ee570face1b49819975d9b9a5ead214" From 04056509c29db9ca34e8de4963110c3235c28c5a Mon Sep 17 00:00:00 2001 From: connoratrug Date: Mon, 20 Jan 2025 15:32:38 +0100 Subject: [PATCH 02/16] add legend to form story --- .../components/form/Legend.vue | 8 +- apps/tailwind-components/pages/Form.story.vue | 76 ++++++++++++++++--- .../tests/components/form/renderForm.spec.ts | 24 +++++- 3 files changed, 89 insertions(+), 19 deletions(-) diff --git a/apps/tailwind-components/components/form/Legend.vue b/apps/tailwind-components/components/form/Legend.vue index 48713458c9..6ecc6d03cf 100644 --- a/apps/tailwind-components/components/form/Legend.vue +++ b/apps/tailwind-components/components/form/Legend.vue @@ -1,6 +1,6 @@