diff --git a/.circleci/config.yml b/.circleci/config.yml index daa4828c4..38e85a0b8 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -151,6 +151,7 @@ jobs: - run: name: Check git diff to see if builds should skip e2e command: | + circleci-agent step halt if [ -f packages/bits/package-cached ] && [ "$USE_CACHE" == "true" ]; then echo "This package was restored from cache so we're skipping e2e tests" circleci-agent step halt @@ -637,9 +638,9 @@ jobs: working_directory: ~/nova environment: SOURCE_BRANCH: main - CREATE_RELEASE_BRANCH: "false" - RELEASE_BRANCH: release/v17.0.x - INCREMENT_TYPE: patch + CREATE_RELEASE_BRANCH: "true" + RELEASE_BRANCH: release/v19.0.x + INCREMENT_TYPE: major steps: - add_ssh_keys - checkout: diff --git a/.npmrc b/.npmrc index e9aa7233d..aacd104a5 100644 --- a/.npmrc +++ b/.npmrc @@ -1 +1,2 @@ max-old-space-size=16384 +registry=https://registry.npmjs.org/ \ No newline at end of file diff --git a/docs/CHANGELOG.md b/docs/CHANGELOG.md index 0e28be90b..674b484df 100644 --- a/docs/CHANGELOG.md +++ b/docs/CHANGELOG.md @@ -1,18 +1,25 @@ # Changelog +## [19.0.0] 📅 2025-09-30 +### Added +- `@nova-ui/bits` | Added colorpicker +- `@nova-ui/bits` | Added nui-tab heading is accessible with keyboard + +## [17.0.1] 📅 2025-07-31 +### Added +- `@nova-ui/dashboards` | Added ability to globaly disable refreshers + ## [17.0.0] 📅 2025-04-20 ### Angular upgrade 17 ## [16.0.9] 📅 2025-04-02 ### Fixes -- - `@nova-ui/dashboards` | Fix kpi scale for values - `@nova-ui/dashboards` | Fix editor preview component - `@nova-ui/dashboards` | Fix search addon listening chagnes ## [16.0.8] 📅 2025-04-02 ### Fixes -- - `@nova-ui/dashboards` | Fix selection config - `@nova-ui/dashboards` | Added ability to listen preview component through the cloner diff --git a/package.json b/package.json index 0a2cee928..2623b6b0b 100644 --- a/package.json +++ b/package.json @@ -24,11 +24,11 @@ "@angular/platform-browser": "19.2.7", "@angular/platform-browser-dynamic": "19.2.7", "@angular/router": "19.2.7", - "@schematics/angular": "19.2.8", "@axe-core/webdriverjs": "4.10.1", "@compodoc/compodoc": "1.1.26", "@percy/cli": "1.30.2", "@percy/protractor": "2.0.1", + "@schematics/angular": "19.2.8", "@stackblitz/sdk": "1.11.0", "@stylistic/eslint-plugin-ts": "3.1.0", "@types/jasmine": "5.1.4", diff --git a/packages/bits/demo/src/components/app/app-routing.module.ts b/packages/bits/demo/src/components/app/app-routing.module.ts index f169cd115..a06b6c72c 100644 --- a/packages/bits/demo/src/components/app/app-routing.module.ts +++ b/packages/bits/demo/src/components/app/app-routing.module.ts @@ -62,6 +62,10 @@ const appRoutes: Routes = [ path: "chips", loadChildren: async () => import("../demo/chips/chips.module"), }, + { + path: "color-picker", + loadChildren: async () => import("../demo/color-picker/color-picker.module"), + }, { path: "combobox", loadChildren: async () => import("../demo/combobox/combobox.module"), diff --git a/packages/bits/demo/src/components/demo/color-picker/color-picker-basic/color-picker-basic.example.component.html b/packages/bits/demo/src/components/demo/color-picker/color-picker-basic/color-picker-basic.example.component.html new file mode 100644 index 000000000..1dd8d0ae5 --- /dev/null +++ b/packages/bits/demo/src/components/demo/color-picker/color-picker-basic/color-picker-basic.example.component.html @@ -0,0 +1,9 @@ +
+ +You selected: {{ myForm.get('backgroundColor')?.value }}
\ No newline at end of file diff --git a/packages/bits/demo/src/components/demo/color-picker/color-picker-basic/color-picker-basic.example.component.ts b/packages/bits/demo/src/components/demo/color-picker/color-picker-basic/color-picker-basic.example.component.ts new file mode 100644 index 000000000..1495b144a --- /dev/null +++ b/packages/bits/demo/src/components/demo/color-picker/color-picker-basic/color-picker-basic.example.component.ts @@ -0,0 +1,61 @@ +// © 2022 SolarWinds Worldwide, LLC. All rights reserved. +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to +// deal in the Software without restriction, including without limitation the +// rights to use, copy, modify, merge, publish, distribute, sublicense, and/or +// sell copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +import { Component } from "@angular/core"; +import { + FormBuilder, + FormControl, + FormGroup, +} from "@angular/forms"; + +const CHART_PALETTE_CS1: string[] = [ + "var(--nui-color-bg-secondary)", + "var(--nui-color-chart-one)", + "var(--nui-color-chart-two)", + "var(--nui-color-chart-three)", + "var(--nui-color-chart-four)", + "var(--nui-color-chart-five)", + "var(--nui-color-chart-six)", + "var(--nui-color-chart-seven)", + "var(--nui-color-chart-eight)", + "var(--nui-color-chart-nine)", + "var(--nui-color-chart-ten)", +]; + +@Component({ + selector: "nui-color-picker-basic-example", + templateUrl: "./color-picker-basic.example.component.html", + styles: [], + standalone: false, +}) +export class ColorPickerBasicExampleComponent { + public myForm: FormGroup<{ backgroundColor: FormControlNuiColorPickerModule
+
+ <nui-color-picker> is a basic color picker input component.
+ Use the colors or colorPalette input to control the
+ colors which will be displayed. Use the cols input to control the
+ number of columns in the palette.
+
IPaletteColorInterface IPaletteColor will provide additional information about color name in tooltip
Usage with color select will provide name of all colors in palete
+You selected: {{ myForm.get('backgroundColor')?.value }}
\ No newline at end of file diff --git a/packages/bits/demo/src/components/demo/color-picker/color-picker-palette/color-picker-palette.example.component.ts b/packages/bits/demo/src/components/demo/color-picker/color-picker-palette/color-picker-palette.example.component.ts new file mode 100644 index 000000000..ff4245887 --- /dev/null +++ b/packages/bits/demo/src/components/demo/color-picker/color-picker-palette/color-picker-palette.example.component.ts @@ -0,0 +1,51 @@ +// © 2022 SolarWinds Worldwide, LLC. All rights reserved. +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to +// deal in the Software without restriction, including without limitation the +// rights to use, copy, modify, merge, publish, distribute, sublicense, and/or +// sell copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +import { Component } from "@angular/core"; +import { + FormBuilder, + FormControl, + FormGroup, +} from "@angular/forms"; +import { HTML_COLORS, IPaletteColor } from "../../../../../../src/constants/color-picker.constants"; + + +@Component({ + selector: "nui-color-picker-palette-example", + templateUrl: "./color-picker-palette.example.component.html", + styles: [], + standalone: false, +}) +export class ColorPickerPaletteExampleComponent { + public myForm: FormGroup<{ backgroundColor: FormControlYou selected: {{ myForm.get('backgroundColor')?.value.label}} -> {{ myForm.get('backgroundColor')?.value.color}}
\ No newline at end of file diff --git a/packages/bits/demo/src/components/demo/color-picker/color-picker-select/color-picker-select.example.component.ts b/packages/bits/demo/src/components/demo/color-picker/color-picker-select/color-picker-select.example.component.ts new file mode 100644 index 000000000..7ed2ee0f0 --- /dev/null +++ b/packages/bits/demo/src/components/demo/color-picker/color-picker-select/color-picker-select.example.component.ts @@ -0,0 +1,51 @@ +// © 2022 SolarWinds Worldwide, LLC. All rights reserved. +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to +// deal in the Software without restriction, including without limitation the +// rights to use, copy, modify, merge, publish, distribute, sublicense, and/or +// sell copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +import { Component } from "@angular/core"; +import { + FormBuilder, + FormControl, + FormGroup, +} from "@angular/forms"; +import { HTML_COLORS, IPaletteColor } from "../../../../../../src/constants/color-picker.constants"; + + +@Component({ + selector: "nui-color-picker-select-example", + templateUrl: "./color-picker-select.example.component.html", + styles: [], + standalone: false, +}) +export class ColorPickerSelectExampleComponent { + public myForm: FormGroup<{ backgroundColor: FormControl