diff --git a/build/workflow/scripts/wasm-uitest-run.sh b/build/workflow/scripts/wasm-uitest-run.sh index 12707bfab..9dddf8922 100644 --- a/build/workflow/scripts/wasm-uitest-run.sh +++ b/build/workflow/scripts/wasm-uitest-run.sh @@ -15,8 +15,8 @@ fi cd $BUILD_SOURCESDIRECTORY/build/$SAMPLEAPP_ARTIFACT_NAME -npm i chromedriver@86.0.0 -npm i puppeteer@5.3.1 +npm i chromedriver@102.0.0 +npm i puppeteer@14.1.0 # install dotnet serve / Remove as needed dotnet tool uninstall dotnet-serve -g || true @@ -27,7 +27,7 @@ export PATH="$PATH:$BUILD_SOURCESDIRECTORY/build/tools" export BASE_ARTIFACTS_PATH=$BUILD_ARTIFACTSTAGINGDIRECTORY/wasm/$XAML_FLAVOR_BUILD/$UITEST_TEST_MODE_NAME export UNO_UITEST_TARGETURI=http://localhost:5000 export UNO_UITEST_DRIVERPATH_CHROME=$BUILD_SOURCESDIRECTORY/build/$SAMPLEAPP_ARTIFACT_NAME/node_modules/chromedriver/lib/chromedriver -export UNO_UITEST_CHROME_BINARY_PATH=$BUILD_SOURCESDIRECTORY/build/$SAMPLEAPP_ARTIFACT_NAME/node_modules/puppeteer/.local-chromium/linux-800071/chrome-linux/chrome +export UNO_UITEST_CHROME_BINARY_PATH=$BUILD_SOURCESDIRECTORY/build/$SAMPLEAPP_ARTIFACT_NAME/node_modules/puppeteer/.local-chromium/linux-991974/chrome-linux/chrome export UNO_UITEST_SCREENSHOT_PATH=$BASE_ARTIFACTS_PATH/screenshots export UNO_UITEST_PLATFORM=Browser export UNO_UITEST_CHROME_CONTAINER_MODE=true diff --git a/build/workflow/stage-uitests-android.yml b/build/workflow/stage-uitests-android.yml index f79c18f7e..fe6e02ae6 100644 --- a/build/workflow/stage-uitests-android.yml +++ b/build/workflow/stage-uitests-android.yml @@ -120,7 +120,7 @@ - task: DownloadBuildArtifacts@0 displayName: 'Download UITest Binaries' inputs: - artifactName: toolkit-uitest-binaries + artifactName: toolkit-uitest-binaries-$(XAML_FLAVOR_BUILD) downloadPath: '$(build.sourcesdirectory)/build' - template: templates/dotnet-workload-install-mac.yml diff --git a/build/workflow/stage-uitests-build.yml b/build/workflow/stage-uitests-build.yml index acd2d00e0..0a24aa5f7 100644 --- a/build/workflow/stage-uitests-build.yml +++ b/build/workflow/stage-uitests-build.yml @@ -2,6 +2,14 @@ jobs: - job: Toolkit_UITests_Build displayName: 'Build Toolkit UI Tests' + strategy: + maxParallel: 2 + matrix: + UWP: + XAML_FLAVOR_BUILD: UWP + WinUI: + XAML_FLAVOR_BUILD: WinUI + variables: CI_Build: true @@ -18,7 +26,7 @@ jobs: displayName: 'Build UI Tests' inputs: solution: src/Uno.Toolkit.UITest/Uno.Toolkit.UITest.csproj - msbuildArguments: /r /m /p:Configuration=Release /detailedsummary /m /bl:$(build.artifactstagingdirectory)\build.binlog + msbuildArguments: /r /m /p:Configuration=Release /p:FrameworkLineage=$(XAML_FLAVOR_BUILD) /detailedsummary /m /bl:$(build.artifactstagingdirectory)\build.binlog - task: CopyFiles@2 displayName: 'Publish UITest binaries' @@ -34,5 +42,5 @@ jobs: retryCountOnTaskFailure: 3 inputs: PathtoPublish: $(build.artifactstagingdirectory) - ArtifactName: toolkit-uitest-binaries + ArtifactName: toolkit-uitest-binaries-$(XAML_FLAVOR_BUILD) ArtifactType: Container diff --git a/build/workflow/stage-uitests-ios.yml b/build/workflow/stage-uitests-ios.yml index 6ce71ace2..9bbea03ac 100644 --- a/build/workflow/stage-uitests-ios.yml +++ b/build/workflow/stage-uitests-ios.yml @@ -125,7 +125,7 @@ - task: DownloadBuildArtifacts@0 displayName: 'Download UITest Binaries' inputs: - artifactName: toolkit-uitest-binaries + artifactName: toolkit-uitest-binaries-$(XAML_FLAVOR_BUILD) downloadPath: '$(build.sourcesdirectory)/build' - template: templates/dotnet-workload-install-mac.yml diff --git a/build/workflow/stage-uitests-wasm.yml b/build/workflow/stage-uitests-wasm.yml index 01f3090aa..1b387410d 100644 --- a/build/workflow/stage-uitests-wasm.yml +++ b/build/workflow/stage-uitests-wasm.yml @@ -104,7 +104,7 @@ - task: DownloadBuildArtifacts@0 displayName: 'Download UITest Binaries' inputs: - artifactName: toolkit-uitest-binaries + artifactName: toolkit-uitest-binaries-$(XAML_FLAVOR_BUILD) downloadPath: '$(build.sourcesdirectory)/build' - task: UseDotNet@2 diff --git a/build/workflow/templates/dotnet-workload-install-mac.yml b/build/workflow/templates/dotnet-workload-install-mac.yml index 72063c251..12d5a24f9 100644 --- a/build/workflow/templates/dotnet-workload-install-mac.yml +++ b/build/workflow/templates/dotnet-workload-install-mac.yml @@ -1,7 +1,7 @@ parameters: - DotNetVersion: '7.0.102' - UnoCheck_Version: '1.11.0-dev.2' - UnoCheck_Manifest: 'https://raw.githubusercontent.com/unoplatform/uno.check/146b0b4b23d866bef455494a12ad7ffd2f6f2d20/manifests/uno.ui.manifest.json' + DotNetVersion: '7.0.302' + UnoCheck_Version: '1.13.0' + UnoCheck_Manifest: 'https://raw.githubusercontent.com/unoplatform/uno.check/c3b289d7bb16a2a2df7f7f7f848d76fe1e74036d/manifests/uno.ui.manifest.json' Dotnet_Root: '/usr/local/share/dotnet/' Dotnet_Tools: '~/.dotnet/tools' diff --git a/build/workflow/templates/dotnet-workload-install-windows.yml b/build/workflow/templates/dotnet-workload-install-windows.yml index dd50d9eda..b010ccdea 100644 --- a/build/workflow/templates/dotnet-workload-install-windows.yml +++ b/build/workflow/templates/dotnet-workload-install-windows.yml @@ -1,7 +1,7 @@ parameters: - DotNetVersion: '7.0.102' - UnoCheck_Version: '1.11.0-dev.2' - UnoCheck_Manifest: 'https://raw.githubusercontent.com/unoplatform/uno.check/146b0b4b23d866bef455494a12ad7ffd2f6f2d20/manifests/uno.ui.manifest.json' + DotNetVersion: '7.0.302' + UnoCheck_Version: '1.13.0' + UnoCheck_Manifest: 'https://raw.githubusercontent.com/unoplatform/uno.check/c3b289d7bb16a2a2df7f7f7f848d76fe1e74036d/manifests/uno.ui.manifest.json' steps: diff --git a/doc/assets/shadows-colors.png b/doc/assets/shadows-colors.png new file mode 100644 index 000000000..f2aa84327 Binary files /dev/null and b/doc/assets/shadows-colors.png differ diff --git a/doc/assets/shadows-neumorphism.png b/doc/assets/shadows-neumorphism.png new file mode 100644 index 000000000..47a73f28d Binary files /dev/null and b/doc/assets/shadows-neumorphism.png differ diff --git a/doc/controls-styles.md b/doc/controls-styles.md index cd7be73d8..7ec41af3f 100644 --- a/doc/controls-styles.md +++ b/doc/controls-styles.md @@ -10,8 +10,9 @@ The `Uno.Toolkit.UI` library adds the following controls: - [`DrawerControl`](controls/DrawerControl.md): A container to display additional content, in a hidden pane that can be revealed using a swipe gesture, like a drawer. - [`DrawerFlyoutPresenter`](controls/DrawerFlyoutPresenter.md): A specialized `ContentPresenter` to be used in the template of a `FlyoutPresenter` to enable gesture support. - [`LoadingView`](controls/LoadingView.md): A control that indicates that the UI is waiting on a task to complete. -- [`TabBar` and `TabBarItem`](controls/TabBarAndTabBarItem.md): A list of selectable items that can be used to facilitate lateral navigation within an application. - [`NavigationBar`](controls/NavigationBar.md): A custom control that helps implement navigation logic for your application. +- [`ShadowContainer`](controls/ShadowContainer.md): A content control allowing you to add multiple shadows to your content. +- [`TabBar` and `TabBarItem`](controls/TabBarAndTabBarItem.md): A list of selectable items that can be used to facilitate lateral navigation within an application. ## Helpers The `Uno.Toolkit.UI` library adds the following helper classes: diff --git a/doc/controls/ShadowContainer.md b/doc/controls/ShadowContainer.md new file mode 100644 index 000000000..d47447e87 --- /dev/null +++ b/doc/controls/ShadowContainer.md @@ -0,0 +1,288 @@ +--- +uid: Toolkit.Controls.ShadowContainer +--- + +## Summary +The `ShadowContainer` provides the possibility to add many-colored shadows to its content. + +## Remarks +For now, the control simply adapts its corner radius to the content's corner radius. More complicated shapes, such as text or pictures with alpha, are not supported. + +### XAML +```xml +xmlns:utu="using:Uno.Toolkit.UI" +... + + + + + + + + + + + + +``` + +### Inheritance +Object → DependencyObject → UIElement → FrameworkElement → Control → ContentControl > ShadowContainer + +### Properties +| Property | Type | Description | +| -------- | ---------------- | ----------- | +Shadows | ShadowCollection | The collection of shadows that will be displayed under your control. A `ShadowCollection` can be stored in a resource dictionary to have a consistent style throughout your app. The `ShadowCollection` implements `INotifyCollectionChanged`. + +## Shadow + +Dependency object representing a single shadow. + +### Shadow Properties +| Property | Type | Description | +| -------- | ---- | ----------- | +IsInner | bool | True if this shadow is an inner shadow (similar to `inset` of `box-shadow` in CSS). +OffsetX | double | The X offset of the shadow. +OffsetY | double | The Y offset of the shadow. +Color | Color | The color of the shadow. It will be multiplied by the `Opacity` property before rendering. +Opacity | double | The opacity of the shadow. +BlurRadius | double | The radius of the blur that will be applied to the shadow **[0..100]**. +Spread | double | The spread will inflate or deflate (if negative) the control shadow size **before** applying the blur. + +## Usage + +```xml +xmlns:utu="using:Uno.Toolkit.UI" +... + + + #7a67f8 + #f85977 + + + + + + + + + + + + + + + + + + + + + + + + +