Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
61 commits
Select commit Hold shift + click to select a range
57c1515
updated to the newest material-ui v4.12
Linschlager Jan 11, 2022
cf26cda
Uncommented refresh flag
Linschlager Jan 11, 2022
ee5bb60
Fixed docs
Linschlager Jan 11, 2022
6aea914
Re-enabled cache delete
Linschlager Jan 22, 2022
9dad4d2
Merge pull request #1 from Linschlager/updated-mui
Linschlager Jan 22, 2022
665de16
wip
Linschlager Jan 22, 2022
149ea50
Wip
Linschlager Jan 22, 2022
3783417
grr
Linschlager Jan 22, 2022
48fe028
Work in progress
Linschlager Jan 23, 2022
161d8d8
work in progress
Linschlager Jan 24, 2022
5cc4732
Switched app projects from .NET Core 3.1 to .NET 6, switched sln to V…
ArtemyB Sep 16, 2022
0a6af06
First working version of MUI v5 bindings (at least no compile-time er…
ArtemyB Sep 20, 2022
0af83d2
[Feliz.MaterialUI]: Theme "type" prop changed to "mode" (according to…
ArtemyB Sep 20, 2022
feeb16f
Updated theming API - basic scenarios seems working.
ArtemyB Sep 21, 2022
b405fea
Added @mui/icons-material icons bindings (project Feliz.MaterialUI.Ic…
ArtemyB Sep 22, 2022
4a79eee
Updated NPM-packages, added femto package versions instructions to Fe…
ArtemyB Sep 22, 2022
3c2fdac
Added build project (./build/build.fsproj) as a replacement for "buil…
ArtemyB Sep 22, 2022
a759c6c
Build-project refactorings
ArtemyB Sep 22, 2022
817a594
Some refactorings of ApiParser
ArtemyB Sep 23, 2022
2f1cf0b
Added a more advanced doc props type signature translation. Parsing i…
ArtemyB Sep 24, 2022
f4c0142
[DocTypeSignatureParser] Added "node" type signature handling with "N…
ArtemyB Sep 24, 2022
9173a09
Added "any" ("Any" in AST) case parsing and translation.
ArtemyB Sep 25, 2022
031d1a1
Added "integer" ("Integer" in AST) case parsing and translation.
ArtemyB Sep 25, 2022
9879412
Applied new doc parsing and translation to ApiParser. There may still…
ArtemyB Sep 25, 2022
ab62c8d
MUI X DatePickers-related updates.
ArtemyB Sep 25, 2022
9cff1ca
Fixes in build-proj, added paket.template files (but haven't used/tes…
ArtemyB Sep 26, 2022
b28f971
Updated components CSS classes-based styling.
ArtemyB Sep 26, 2022
3ca30a5
Icons naming switched to camel-case. Alpha-release preparation: updat…
ArtemyB Sep 26, 2022
ffbf9f2
Some API generator fixes (mostly for Grid):
ArtemyB Sep 26, 2022
16cc971
Fixed file name typo: "builld.cmd" -> "build.cmd"
ArtemyB Sep 26, 2022
8f42aea
Fixed Docs App errors after Grid API changes
ArtemyB Sep 26, 2022
74c8db5
DatePickers models moved to Feliz.MaterialUI (to simplify packing).
ArtemyB Sep 26, 2022
4cf08fe
Libs "Version" corrected to "VersionPrefix" - for proper Nuget-packag…
ArtemyB Sep 26, 2022
b75d4b0
Small changes in build-project
ArtemyB Sep 27, 2022
52ec5a3
Small fixes
ArtemyB Sep 29, 2022
b98661d
Added project with raw bindings to material-ui-popup-state (bindings,…
ArtemyB Oct 1, 2022
074bbff
Added special translation case for "componentsProps": when both props…
ArtemyB Oct 1, 2022
ce065cd
Added components imports generation (raw "import" declarations, caste…
ArtemyB Oct 2, 2022
7452272
A couple of style helpers + small fixes/refactorings.
ArtemyB Oct 3, 2022
45c1fcf
Docs updates and fixes, renamings in generator's DocTypeSignatureParser.
ArtemyB Oct 7, 2022
45250a0
CopyWebpackPlugin usage fix
ArtemyB Oct 7, 2022
db40f4a
Docs fix
ArtemyB Oct 7, 2022
f827e7b
Docs fix one more
ArtemyB Oct 7, 2022
cd2c84f
Readme small updates
ArtemyB Oct 8, 2022
09e2ad4
Configured repositoryUrl for packages, added "github" source to nuget…
ArtemyB Oct 8, 2022
212bfa1
Doc article corrections, small fixes in docs-app (includes source cod…
ArtemyB Oct 8, 2022
4db2d8d
Corrected ThemeProvider and Grid2 imports. Corrected GlobalStyles com…
ArtemyB Oct 30, 2022
c2be3fb
A couple of fixes to make the code compile with Fable 4.0.0-theta-014.
ArtemyB Oct 31, 2022
0b8f960
Run generator with recent changes, Feliz.MaterialUI v5.10.0-alpha.4 r…
ArtemyB Oct 31, 2022
7c60017
Feliz.MaterialUI v5.10.0-alpha.5: fix `CreateFilterOptionsOptions` de…
ArtemyB Feb 15, 2023
f40a691
Add `anchorPosition` prop (of `Popover` and `Menu`) overload with `fl…
ArtemyB Feb 15, 2023
2a13f14
Bump Feliz.MaterialUI version to 5.10.0-alpha.6, update Release Notes.
ArtemyB Feb 15, 2023
3880145
feat: actualize bindings (sync with MUI docs) and bump package versions
ArtemyB Feb 16, 2023
d81f619
feat!: update to Feliz 2+ and Fable.React 9+, bump package versions
ArtemyB Feb 16, 2023
0ef27a2
fix: relax Feliz and Fable.React version constraints
ArtemyB Feb 21, 2023
37cc319
build: adjust femto NPM-package constraints, bump package versions
ArtemyB Mar 1, 2023
dabf5eb
build: add `MSBuild.StructuredLogger` explicit dependency to resolve …
ArtemyB Mar 1, 2023
10e8a0f
fix!: actualize `Autocomplete`'s `renderOption` binding
ArtemyB Jun 21, 2023
3f6a200
fix: fix issue link in RELEASE_NOTES.md
ArtemyB Jun 22, 2023
c6588b1
fix(Generator.MaterialUI): API fixes
ArtemyB Oct 27, 2023
d0d1e03
fix: resolve issue with compilation by Fable >= v4.8.0 related to the…
ArtemyB Aug 14, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
12 changes: 9 additions & 3 deletions .config/dotnet-tools.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,22 +3,28 @@
"isRoot": true,
"tools": {
"paket": {
"version": "5.257.0",
"version": "7.1.5",
"commands": [
"paket"
]
},
"femto": {
"version": "0.9.0",
"version": "0.15.0",
"commands": [
"femto"
]
},
"fake-cli": {
"version": "5.20.3",
"version": "5.23.0",
"commands": [
"fake"
]
},
"fable": {
"version": "4.19.3",
"commands": [
"fable"
]
}
}
}
2 changes: 1 addition & 1 deletion .editorconfig
Original file line number Diff line number Diff line change
Expand Up @@ -4,4 +4,4 @@ root = true
insert_final_newline = true
trim_trailing_whitespace = true
indent_style = space
indent_size = 2
indent_size = 4
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -369,3 +369,6 @@ MigrationBackup/
# End of https://www.gitignore.io/api/visualstudio,visualstudiocode

.ionide/

*.fs.js
*.fs.js.map
1,051 changes: 557 additions & 494 deletions .paket/Paket.Restore.targets

Large diffs are not rendered by default.

130 changes: 0 additions & 130 deletions .paket/paket.targets

This file was deleted.

48 changes: 46 additions & 2 deletions Feliz.MaterialUI.sln
Original file line number Diff line number Diff line change
@@ -1,20 +1,27 @@

Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 16
VisualStudioVersion = 16.0.29215.179
# Visual Studio Version 17
VisualStudioVersion = 17.3.32901.215
MinimumVisualStudioVersion = 10.0.40219.1
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = ".paket", ".paket", "{774FADFC-D51A-4300-90AF-DF5D02E1A352}"
ProjectSection(SolutionItems) = preProject
paket.dependencies = paket.dependencies
paket.lock = paket.lock
EndProjectSection
EndProject
Project("{6EC3EE1D-3C4E-46DD-8F32-0CC8E7565705}") = "Feliz.MaterialUI", "src\Feliz.MaterialUI\Feliz.MaterialUI.fsproj", "{339444DE-137A-4962-A713-1AAF4CC6441A}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{67DBBEA5-56DD-4279-A7C4-11C2A8A4E66B}"
ProjectSection(SolutionItems) = preProject
.editorconfig = .editorconfig
.gitignore = .gitignore
appveyor.yml = appveyor.yml
build.cmd = build.cmd
build.fsx = build.fsx
build.sh = build.sh
NuGet.Config = NuGet.Config
README.md = README.md
RELEASE_NOTES.md = RELEASE_NOTES.md
EndProjectSection
EndProject
Project("{6EC3EE1D-3C4E-46DD-8F32-0CC8E7565705}") = "Feliz.Generator", "src\Feliz.Generator\Feliz.Generator.fsproj", "{0B5B4FA9-7E54-439F-B3E1-F4A7D9EB0BCA}"
Expand All @@ -27,12 +34,29 @@ Project("{6EC3EE1D-3C4E-46DD-8F32-0CC8E7565705}") = "App", "docs-app\src\App.fsp
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Docs", "Docs", "{B2C7FAE4-D267-4914-8385-5BA5A99B75DF}"
ProjectSection(SolutionItems) = preProject
docs-app\.editorconfig = docs-app\.editorconfig
docs-app\.npmrc = docs-app\.npmrc
docs-app\sass\main.sass = docs-app\sass\main.sass
docs-app\package.json = docs-app\package.json
docs-app\pnpm-lock.yaml = docs-app\pnpm-lock.yaml
docs-app\publish.js = docs-app\publish.js
docs-app\README.md = docs-app\README.md
docs-app\webpack.config.js = docs-app\webpack.config.js
docs-app\webpack.tests.js = docs-app\webpack.tests.js
EndProjectSection
EndProject
Project("{6EC3EE1D-3C4E-46DD-8F32-0CC8E7565705}") = "Tests", "docs-app\tests\Tests.fsproj", "{F78149D0-4474-4BA7-A83F-AB1064549585}"
EndProject
Project("{6EC3EE1D-3C4E-46DD-8F32-0CC8E7565705}") = "Feliz.MaterialUI.Icons", "src\Feliz.MaterialUI.Icons\Feliz.MaterialUI.Icons.fsproj", "{C984F7B8-15EC-49AB-81BC-30409C96DB3A}"
EndProject
Project("{6EC3EE1D-3C4E-46DD-8F32-0CC8E7565705}") = "build", "build\build.fsproj", "{8A93CD87-66A4-4AC2-ABD1-95A80FE75844}"
EndProject
Project("{6EC3EE1D-3C4E-46DD-8F32-0CC8E7565705}") = "Feliz.MuiX.DatePickers", "src\Feliz.MuiX.DatePickers\Feliz.MuiX.DatePickers.fsproj", "{72709572-F76F-423E-B4E7-50CA61958593}"
EndProject
Project("{6EC3EE1D-3C4E-46DD-8F32-0CC8E7565705}") = "Feliz.MuiX.DatePickersPro", "src\Feliz.MuiX.DatePickersPro\Feliz.MuiX.DatePickersPro.fsproj", "{F25A0212-58B0-4A03-885A-B1F7A1B286D8}"
EndProject
Project("{6EC3EE1D-3C4E-46DD-8F32-0CC8E7565705}") = "Feliz.MaterialUI.PopupState", "src\Feliz.MaterialUI.PopupState\Feliz.MaterialUI.PopupState.fsproj", "{68EECE8B-0219-40A9-A1DB-7B409724FCE5}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Expand Down Expand Up @@ -63,6 +87,26 @@ Global
{F78149D0-4474-4BA7-A83F-AB1064549585}.Debug|Any CPU.Build.0 = Debug|Any CPU
{F78149D0-4474-4BA7-A83F-AB1064549585}.Release|Any CPU.ActiveCfg = Release|Any CPU
{F78149D0-4474-4BA7-A83F-AB1064549585}.Release|Any CPU.Build.0 = Release|Any CPU
{C984F7B8-15EC-49AB-81BC-30409C96DB3A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{C984F7B8-15EC-49AB-81BC-30409C96DB3A}.Debug|Any CPU.Build.0 = Debug|Any CPU
{C984F7B8-15EC-49AB-81BC-30409C96DB3A}.Release|Any CPU.ActiveCfg = Release|Any CPU
{C984F7B8-15EC-49AB-81BC-30409C96DB3A}.Release|Any CPU.Build.0 = Release|Any CPU
{8A93CD87-66A4-4AC2-ABD1-95A80FE75844}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{8A93CD87-66A4-4AC2-ABD1-95A80FE75844}.Debug|Any CPU.Build.0 = Debug|Any CPU
{8A93CD87-66A4-4AC2-ABD1-95A80FE75844}.Release|Any CPU.ActiveCfg = Release|Any CPU
{8A93CD87-66A4-4AC2-ABD1-95A80FE75844}.Release|Any CPU.Build.0 = Release|Any CPU
{72709572-F76F-423E-B4E7-50CA61958593}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{72709572-F76F-423E-B4E7-50CA61958593}.Debug|Any CPU.Build.0 = Debug|Any CPU
{72709572-F76F-423E-B4E7-50CA61958593}.Release|Any CPU.ActiveCfg = Release|Any CPU
{72709572-F76F-423E-B4E7-50CA61958593}.Release|Any CPU.Build.0 = Release|Any CPU
{F25A0212-58B0-4A03-885A-B1F7A1B286D8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{F25A0212-58B0-4A03-885A-B1F7A1B286D8}.Debug|Any CPU.Build.0 = Debug|Any CPU
{F25A0212-58B0-4A03-885A-B1F7A1B286D8}.Release|Any CPU.ActiveCfg = Release|Any CPU
{F25A0212-58B0-4A03-885A-B1F7A1B286D8}.Release|Any CPU.Build.0 = Release|Any CPU
{68EECE8B-0219-40A9-A1DB-7B409724FCE5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{68EECE8B-0219-40A9-A1DB-7B409724FCE5}.Debug|Any CPU.Build.0 = Debug|Any CPU
{68EECE8B-0219-40A9-A1DB-7B409724FCE5}.Release|Any CPU.ActiveCfg = Release|Any CPU
{68EECE8B-0219-40A9-A1DB-7B409724FCE5}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
Expand Down
1 change: 1 addition & 0 deletions NuGet.Config
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
<packageSources>
<clear />
<add key="NuGet.org" value="https://api.nuget.org/v3/index.json" />
<add key="github" value="https://nuget.pkg.github.com/ArtemyB/index.json" />
</packageSources>
<disabledPackageSources>
<clear />
Expand Down
21 changes: 14 additions & 7 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,29 +1,36 @@
# Feliz.MaterialUI

[Feliz](https://github.com/Zaid-Ajaj/Feliz)-style Fable bindings for [Material-UI](https://material-ui.com/).
[Feliz](https://github.com/Zaid-Ajaj/Feliz)-style Fable bindings for [MUI (aka Material-UI)](https://mui.com).

Documentation
--------------

https://shmew.github.io/Feliz.MaterialUI/
https://artemyb.github.io/Feliz.MaterialUI/

Contributing
------------

This project uses `fake`, `paket`, and `femto` as .NET Core 3 local tools. Therefore, run `dotnet tool restore` to restore the necessary CLI tools before doing anything else.
This project uses `fable`, `paket` and `femto` as .NET local tools. Therefore, `dotnet tool restore` is needed to work with the project. However `build.cmd` and `build.sh` scripts already include this step.

To run targets using Fake: `dotnet fake build -t TargetName`
To run build targets using cmd or Powershell:
```cmd
build.cmd TargetName
```
or using bash:
```bash
build.sh TargetName
```

### Regular maintenance

1. Run the `RegularMaintenance` target, which will update all packages as well as the Femto metadata in `Feliz.MaterialUI.fsproj`, and regenerate the bindings based on the live MUI docs
1. Run the `RegularMaintenance` target, which will update all packages as well as the Femto metadata in `Feliz.MaterialUI.fsproj`, `Feliz.MaterialUI.Icons.fsproj`, `Feliz.MuiX.DatePickers.fsproj` and `Feliz.MuiX.DatePickersPro.fsproj`, and regenerate the bindings based on the live MUI docs.
2. Check all changes to Feliz.MaterialUI and adjust the generator’s API parser as needed. Remember to check all doc comment updates too, since changes there may indicate that something must be changed elsewhere. Run the `RegenerateFromCache` target (or run the generator project in VS) to re-generate based on the recently downloaded HTML pages.
3. Update the version number in `Feliz.MaterialUI.fsproj`
3. Update the version number in `Feliz.MaterialUI.fsproj`, `Feliz.MaterialUI.Icons.fsproj`, `Feliz.MuiX.DatePickers.fsproj` and `Feliz.MuiX.DatePickersPro.fsproj`.
4. Update `RELEASE_NOTES.md`
5. Update relevant docs/samples (typically in `docs-app/public/pages`, potentially also by adding menu items in `App.fs`)
6. Run the `CiBuild` target to check that everything compiles
7. Run the `Docs:Run` target to verify that the docs are still working
8. Commit and tag the commit (this is what triggers deployment from AppVeyor). For consistency, the tag should be identical to the version (e.g. `1.2.3`).
9. Push the changes and the tag to the repo. If AppVeyor build succeeds, the package is automatically published to NuGet.
10. Publish the docs by running the `Docs:Publish` target
10. Publish the docs by running the `Docs:Publish` target.

41 changes: 41 additions & 0 deletions RELEASE_NOTES.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,46 @@
Changelog
=========
### 5.11.0-beta.4 (2024-08-14)
* Fix issue of compilation by Fable >= 4.8.0 ([issue #7](https://github.com/ArtemyB/Feliz.MaterialUI/issues/7)).

### 5.11.0-beta.3 (2023-06-21)
* Fix [issue #5](https://github.com/ArtemyB/Feliz.MaterialUI/issues/5).

### 5.11.0-beta.2 (2023-03-01)
* Update to Feliz >= 2 (and Fable.React >= 9).
* Update `react` NPM-package to v18, add `use-sync-external-store` NPM-package (required by `Feliz.UseElmish v2+`).
* Regenerate bindings for MUI v5.11.

### 5.10.0-alpha.6 (2023-02-15)
* Add `anchorPosition` prop (of `Popover` and `Menu`) overload with `float` parameters.

### 5.10.0-alpha.5 (2023-02-15)
* Fix `CreateFilterOptionsOptions` type definition (used for `Autocomplete` MUI component) to address recent FCS updates that makes the old definition incompilable (e.g. by Fable v4.0.0-theta-018).

### 5.10.0-alpha.4 (2022-10-31)

* Fixed Grid v2 component import.
* Corrected ThemeProvider component import (to import it from "@mui/material" instead of from "@mui/material/styles").
* Removed StylesProvider component (for being obsolete in MUI 5).
* Couple of minor code fixes to make the library compile with Fable 4.0.0-theta-014.

### 5.10.0-alpha.3 (2022-10-03)

* Fixed `componentsProps` prop bindings.
* Added `MuiComponents` module, containing raw imports for all the components (typed as `ReactElementType`).
* Added `style.innerSlot` helper, corrected return type of `style.muiBreakpoints` helper.

### 5.10.0-alpha.0 (2022-09-26)

* Updated for MUI v5 with corresponding API design changes (to reflect JS/TS MUI v5 API better).
* Added separate packages for icons (@mui/icons-material), MUI-X DatePickers Community and Pro (@mui/x-date-pickers and @mui/x-date-pickers-pro).
* Added new doc type signatures parsing and translation mechanism based on FParsec.

### 1.3.0 (2022-01-22)

* Updated for @material-ui/core 4.12 and @material-ui/lab 4.0.0-alpha.60
* Added special cases for `imageList`'s broken documentation
* Fixed markdown to docs to look for the correct markdown

### 1.2.6 (2021-02-09)

Expand Down
4 changes: 4 additions & 0 deletions build.cmd
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
echo Restoring dotnet tools...
dotnet tool restore

dotnet run --project ./build/build.fsproj -- -t %*
7 changes: 2 additions & 5 deletions build.fsx
Original file line number Diff line number Diff line change
@@ -1,10 +1,7 @@
#if FAKE
#r "paket: groupref FakeBuild //"
#load ".fake/build.fsx/intellisense.fsx"

#if !FAKE
#r "netstandard"
#r "Facades/netstandard" // https://github.com/ionide/ionide-vscode-fsharp/issues/839#issuecomment-396296095
#endif
#load ".fake/build.fsx/intellisense.fsx"

open System
open System.Text.Json
Expand Down
9 changes: 9 additions & 0 deletions build.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
#!/usr/bin/env bash

set -eu
set -o pipefail

echo "Restoring dotnet tools..."
dotnet tool restore

FAKE_DETAILED_ERRORS=true dotnet run --project ./build/build.fsproj -- -t "$@"
Loading