Kompose wrappers for material-components-web

Overview

Dokka docs Version maven-central

Kompose Material Design Components (KMDC)

A set of kotlin wrappers over [email protected] library providing Jetbrains Compose DSL for building beautiful WEB UIs. The API surface is identical to JS version, except for few places where slight adjustments are made to make it more fluid for compose.

Progress

Here's a tracker list of currently completed material-components-web modules (13/43):

  • mdc-animation
  • mdc-auto-init
  • mdc-banner
  • mdc-base
  • mdc-button
  • mdc-card
  • mdc-checkbox
  • mdc-chips
  • mdc-circular-progress
  • mdc-data-table
  • mdc-density
  • mdc-dialog
  • mdc-dom
  • mdc-drawer
  • mdc-elevation
  • mdc-fab
  • mdc-feature-targeting
  • mdc-floating-label
  • mdc-form-field
  • mdc-icon-button
  • mdc-image-list
  • mdc-layout-grid
  • mdc-line-ripple
  • mdc-linear-progress
  • mdc-list
  • mdc-menu-surface
  • mdc-menu
  • mdc-notched-outline
  • mdc-progress-indicator
  • mdc-radio
  • mdc-ripple
  • mdc-rtl
  • mdc-segmented-button
  • mdc-select
  • mdc-shape
  • mdc-slider
  • mdc-snackbar
  • mdc-switch
  • mdc-tab-bar
  • mdc-tab-indicator
  • mdc-tab-scroller
  • mdc-tab
  • mdc-textfield
  • mdc-tooltip
  • mdc-top-app-bar
  • mdc-touch-target
  • mdc-typography

Developer Setup

  • Install JDK 11+
  • Run ./gradlew assemble to build js binaries
  • Use ./sandbox/ to render components in browser (needs to be linked separately in IDEA)
Comments
  • MDCMenu can be closed by user, without changing state

    MDCMenu can be closed by user, without changing state

    The MDCMenu can be opened/closed by setting MDCMenuOpts.open. However, when the menu is open the user can close it by clicking off the menu, which makes the menu's actual state inconsistent with the internal program state. This behavior can be observed in the sandbox - Anchored Dropdown example: Click in the textfield to show the menu. Then click off the menu to close it. Now clicking in the textfield again will not show the menu because the internal menuOpen state variable value does not change and so the MenuAnchored function doesn't recompose.

    The desired behavior would be either to not have the menu close and fire an event that the user clicked off the menu, or allow the menu to close and fire an event to signal that the menu has closed. This would allow the internal state variable to be modified and cause a recomposition in the first case, or to reset the state variable in the second case to keep it synchronized with the menu's actual state.

    bug 
    opened by gsteckman 10
  • Add yarn lock file and Gradle verification tasks

    Add yarn lock file and Gradle verification tasks

    As I started to work on this (more to come), I wanted to stabilize builds and avoid unpleasant surprises by npm package "updates". Please check if that's OK.

    opened by OliverO2 10
  • Generate DOM element IDs with lower collision risk

    Generate DOM element IDs with lower collision risk

    There is code generating DOM element IDs, which looks like this:

      val localId = remember { Random.nextInt(9999) }
      val radioId = remember { "mdc-radio__native-control__$localId" }
    

    The above approach bears some collision risk. This could be avoided and simplified by using a central ID supply function like this:

    private val nextDomElementId = 0
    fun uniqueDomElementId() = nextDomElementId++
    

    and then use it like this:

      val localId = remember { uniqueDomElementId() }
      val radioId = remember { "mdc-radio__native-control__$localId" }
    

    This would be collision-free almost forever (until an overflow occurs).

    enhancement 
    opened by OliverO2 7
  • Add support for material-icons

    Add support for material-icons

    • Based on the npm https://github.com/marella/material-icons
    • All material icons as of 1.10.4 in an enum - ie: pie_chart -> PieChart("pie_chart") in MDCIconOpts.MDCIconType
    • Numbers written out using Proper Case 1MP -> OneMp
    • Output is a Span with the right class (Filled, Outlined, TwoTone, etc)
    • As elsewhere in KMDC, styling has to be applied externally

    Closes #33

    opened by pocharlebois 6
  • MDCTextField attr classes are not applied to the outermost element

    MDCTextField attr classes are not applied to the outermost element

    Setting a grid cell span directly on a text field like this does not work: MDCTextField(value, attrs = { classes("mdc-layout-grid__cell--span-2") })

    A workaround is to enclose it in a Div, and apply classes there.

    The text field is a composite and all attributes go to its internal text input element, which is often, but not always what's intended. Ideally the component's user should not have to reason about the component's internal structure. Ideally, the component should know which attributes to apply on which of its elements. If that's not feasible, options might be to

    • provide an extra classes parameter which addresses the outermost element, or
    • provide separate attr parameters for the outermost and the input element.
    opened by OliverO2 6
  • #39 contributing guidelines

    #39 contributing guidelines

    Closes #39

    • Code of Conduct
    • Contributing Guidelines
      • Styleguide
      • Issue guide
      • PR guide
      • Development env setup
      • Using Sandbox
    • Tips and Tricks documentation for wrapping MDC modules
    opened by mpetuska 4
  • Build failure when using components

    Build failure when using components

    After adding the kmdc dependency to my project, I'm getting the following error when running ./gradlew assemble:

    > Task :compileKotlinJs FAILED
    e: java.lang.IllegalStateException: No file for dev.petuska.kmdc.typography/MDCH1|-7610114650855466055[0] (@ dev.petuska.kmdc.typography/MDCH1|-7610114650855466055[0]) in module <dev.petuska:kmdc-typography>[ModuleDescriptorImpl@251dd060]
            at org.jetbrains.kotlin.backend.common.serialization.BasicIrModuleDeserializer.deserializeIrSymbol(BasicIrModuleDeserializer.kt:95)
            at org.jetbrains.kotlin.backend.common.serialization.IrModuleDeserializer.declareIrSymbol(IrModuleDeserializer.kt:74)
            at org.jetbrains.kotlin.backend.common.serialization.KotlinIrLinker.findDeserializedDeclarationForSymbol(KotlinIrLinker.kt:125)
            at org.jetbrains.kotlin.backend.common.serialization.KotlinIrLinker.getDeclaration(KotlinIrLinker.kt:167)
            at org.jetbrains.kotlin.ir.util.ExternalDependenciesGeneratorKt.getDeclaration(ExternalDependenciesGenerator.kt:57)
            at org.jetbrains.kotlin.ir.util.ExternalDependenciesGenerator.generateUnboundSymbolsAsDependencies(ExternalDependenciesGenerator.kt:44)
            at org.jetbrains.kotlin.psi2ir.generators.ModuleGenerator.generateUnboundSymbolsAsDependencies(ModuleGenerator.kt:52)
            at org.jetbrains.kotlin.psi2ir.Psi2IrTranslator.generateModuleFragment(Psi2IrTranslator.kt:92)
            at org.jetbrains.kotlin.psi2ir.Psi2IrTranslator.generateModuleFragment$default(Psi2IrTranslator.kt:75)
            at org.jetbrains.kotlin.ir.backend.js.KlibKt.generateModuleFragmentWithPlugins(klib.kt:595)
            at org.jetbrains.kotlin.ir.backend.js.KlibKt.generateIrForKlibSerialization(klib.kt:184)
            at org.jetbrains.kotlin.ir.backend.js.KlibKt.generateKLib(klib.kt:219)
            at org.jetbrains.kotlin.ir.backend.js.KlibKt.generateKLib$default(klib.kt:201)
            at org.jetbrains.kotlin.cli.js.K2JsIrCompiler.doExecute(K2JsIrCompiler.kt:269)
            at org.jetbrains.kotlin.cli.js.K2JSCompiler.doExecute(K2JSCompiler.java:178)
            at org.jetbrains.kotlin.cli.js.K2JSCompiler.doExecute(K2JSCompiler.java:71)
            at org.jetbrains.kotlin.cli.common.CLICompiler.execImpl(CLICompiler.kt:91)
            at org.jetbrains.kotlin.cli.common.CLICompiler.execImpl(CLICompiler.kt:43)
            at org.jetbrains.kotlin.cli.common.CLITool.exec(CLITool.kt:93)
            at org.jetbrains.kotlin.incremental.IncrementalJsCompilerRunner.runCompiler(IncrementalJsCompilerRunner.kt:200)
            at org.jetbrains.kotlin.incremental.IncrementalJsCompilerRunner.runCompiler(IncrementalJsCompilerRunner.kt:77)
            at org.jetbrains.kotlin.incremental.IncrementalCompilerRunner.compileIncrementally(IncrementalCompilerRunner.kt:367)
            at org.jetbrains.kotlin.incremental.IncrementalCompilerRunner.compileIncrementally$default(IncrementalCompilerRunner.kt:309)
            at org.jetbrains.kotlin.incremental.IncrementalCompilerRunner.compileImpl$rebuild(IncrementalCompilerRunner.kt:115)
            at org.jetbrains.kotlin.incremental.IncrementalCompilerRunner.compileImpl(IncrementalCompilerRunner.kt:167)
            at org.jetbrains.kotlin.incremental.IncrementalCompilerRunner.compile(IncrementalCompilerRunner.kt:77)
            at org.jetbrains.kotlin.incremental.IncrementalCompilerRunner.compile$default(IncrementalCompilerRunner.kt:68)
            at org.jetbrains.kotlin.daemon.CompileServiceImplBase.execJsIncrementalCompiler(CompileServiceImpl.kt:565)
            at org.jetbrains.kotlin.daemon.CompileServiceImplBase.access$execJsIncrementalCompiler(CompileServiceImpl.kt:101)
            at org.jetbrains.kotlin.daemon.CompileServiceImpl.compile(CompileServiceImpl.kt:1807)
            at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
            at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
            at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
            at java.base/java.lang.reflect.Method.invoke(Method.java:566)
            at java.rmi/sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:359)
            at java.rmi/sun.rmi.transport.Transport$1.run(Transport.java:200)
            at java.rmi/sun.rmi.transport.Transport$1.run(Transport.java:197)
            at java.base/java.security.AccessController.doPrivileged(Native Method)
            at java.rmi/sun.rmi.transport.Transport.serviceCall(Transport.java:196)
            at java.rmi/sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:562)
            at java.rmi/sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:796)
            at java.rmi/sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.lambda$run$0(TCPTransport.java:677)
            at java.base/java.security.AccessController.doPrivileged(Native Method)
            at java.rmi/sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:676)
            at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
            at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
            at java.base/java.lang.Thread.run(Thread.java:829)
    

    I've created a minimal reproducible example at https://github.com/veyndan/kmdc-issue-0. When commenting out MDCH1("Hello World") I don't get the compilation error.

    Thanks in advance for any help! I'm looking forward to trying out the library 😄

    opened by veyndan 3
  • Bump com.gradle.enterprise from 3.8.1 to 3.10

    Bump com.gradle.enterprise from 3.8.1 to 3.10

    Bumps com.gradle.enterprise from 3.8.1 to 3.10.

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 3
  • Bump actions/checkout from 2 to 3

    Bump actions/checkout from 2 to 3

    Bumps actions/checkout from 2 to 3.

    Release notes

    Sourced from actions/checkout's releases.

    v3.0.0

    • Update default runtime to node16

    v2.4.0

    • Convert SSH URLs like org-<ORG_ID>@github.com: to https://github.com/ - pr

    v2.3.5

    Update dependencies

    v2.3.4

    v2.3.3

    v2.3.2

    Add Third Party License Information to Dist Files

    v2.3.1

    Fix default branch resolution for .wiki and when using SSH

    v2.3.0

    Fallback to the default branch

    v2.2.0

    Fetch all history for all tags and branches when fetch-depth=0

    v2.1.1

    Changes to support GHES (here and here)

    v2.1.0

    Changelog

    Sourced from actions/checkout's changelog.

    Changelog

    v2.3.1

    v2.3.0

    v2.2.0

    v2.1.1

    • Changes to support GHES (here and here)

    v2.1.0

    v2.0.0

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.

    Dependabot will merge this PR once it's up-to-date and CI passes on it, as requested by @mpetuska.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies github_actions 
    opened by dependabot[bot] 3
  • Fix text field notch and floating label, switch to controlled mode

    Fix text field notch and floating label, switch to controlled mode

    Fixes the behavior of value changes between empty and non-empty: Makes floating labels dance and notches open.

    Previous behavior was:

    With several text fields sharing a common mutable state, the following happens: Changing from empty to non-empty works in the focused field. The notch opens, the label moves up. It does not work when non-focused fields receive their update: The notch remains closed, the floating label remains at the empty position, overwriting the updated text.

    Included is a sample to check the behavior of multiple synchronized fields.

    opened by OliverO2 3
  • Bump com.gradle.enterprise from 3.10.3 to 3.11.3

    Bump com.gradle.enterprise from 3.10.3 to 3.11.3

    Bumps com.gradle.enterprise from 3.10.3 to 3.11.3.

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies java 
    opened by dependabot[bot] 1
  • Bump com.gradle.enterprise from 3.10.3 to 3.11.4

    Bump com.gradle.enterprise from 3.10.3 to 3.11.4

    Bumps com.gradle.enterprise from 3.10.3 to 3.11.4.

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies java 
    opened by dependabot[bot] 0
  • Bump actions/cache from 3.0.5 to 3.0.11

    Bump actions/cache from 3.0.5 to 3.0.11

    Bumps actions/cache from 3.0.5 to 3.0.11.

    Release notes

    Sourced from actions/cache's releases.

    v3.0.11

    What's Changed

    New Contributors

    Full Changelog: https://github.com/actions/cache/compare/v3...v3.0.11

    v3.0.10

    • Fix a bug with sorting inputs.
    • Update definition for restore-keys in README.md

    v3.0.9

    • Enhanced the warning message for cache unavailability in case of GHES.

    v3.0.8

    What's Changed

    • Fix zstd not working for windows on gnu tar in issues.
    • Allow users to provide a custom timeout as input for aborting cache segment download using the environment variable SEGMENT_DOWNLOAD_TIMEOUT_MIN. Default is 60 minutes.

    v3.0.7

    What's Changed

    • Fix for the download stuck problem has been added in actions/cache for users who were intermittently facing the issue. As part of this fix, new timeout has been introduced in the download step to stop the download if it doesn't complete within an hour and run the rest of the workflow without erroring out.

    v3.0.6

    What's Changed

    • Add example for clojure lein project dependencies by @​shivamarora1 in PR actions/cache#835
    • Update toolkit's cache npm module to latest. Bump cache version to v3.0.6 by @​pdotl in PR actions/cache#887
    • Fix issue #809 where cache save/restore was failing for Amazon Linux 2 runners due to older tar version
    • Fix issue #833 where cache save was not working for caching github workspace directory

    New Contributors

    Full Changelog: https://github.com/actions/cache/compare/v3...v3.0.6

    Changelog

    Sourced from actions/cache's changelog.

    3.0.5

    • Removed error handling by consuming actions/cache 3.0 toolkit, Now cache server error handling will be done by toolkit. (PR)

    3.0.6

    • Fixed #809 - zstd -d: no such file or directory error
    • Fixed #833 - cache doesn't work with github workspace directory

    3.0.7

    • Fixed #810 - download stuck issue. A new timeout is introduced in the download process to abort the download if it gets stuck and doesn't finish within an hour.

    3.0.8

    • Fix zstd not working for windows on gnu tar in issues #888 and #891.
    • Allowing users to provide a custom timeout as input for aborting download of a cache segment using an environment variable SEGMENT_DOWNLOAD_TIMEOUT_MINS. Default is 60 minutes.

    3.0.9

    • Enhanced the warning message for cache unavailablity in case of GHES.

    3.0.10

    • Fix a bug with sorting inputs.
    • Update definition for restore-keys in README.md

    3.0.11

    • Update toolkit version to 3.0.5 to include @actions/core@^1.10.0
    • Update @actions/cache to use updated saveState and setOutput functions from @actions/core@^1.10.0
    Commits
    • 9b0c1fc Merge pull request #956 from actions/pdotl-version-bump
    • 18103f6 Fix licensed status error
    • 3e383cd Update RELEASES
    • 43428ea toolkit versioon update and version bump for cache
    • 1c73980 3.0.11
    • a3f5edc Merge pull request #950 from rentziass/rentziass/update-actions-core
    • 831ee69 Update licenses
    • b9c8bfe Update @​actions/core to 1.10.0
    • 0f20846 Merge pull request #946 from actions/Phantsure-patch-2
    • 862fc14 Update README.md
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies github_actions 
    opened by dependabot[bot] 0
  • Bump de.fayard.refreshVersions from 0.40.2 to 0.51.0

    Bump de.fayard.refreshVersions from 0.40.2 to 0.51.0

    Bumps de.fayard.refreshVersions from 0.40.2 to 0.51.0.

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies java 
    opened by dependabot[bot] 0
  • Bump crazy-max/ghaction-github-pages from 3.0.0 to 3.1.0

    Bump crazy-max/ghaction-github-pages from 3.0.0 to 3.1.0

    Bumps crazy-max/ghaction-github-pages from 3.0.0 to 3.1.0.

    Release notes

    Sourced from crazy-max/ghaction-github-pages's releases.

    v3.1.0

    • Bump @​actions/core from 1.6.0 to 1.10.0 (#177 #178)

    Full Changelog: https://github.com/crazy-max/ghaction-github-pages/compare/v3.0.0...v3.1.0

    Commits
    • c0d7ff0 ci: workflow to cleanup branches for testing
    • 053b675 Merge pull request #178 from crazy-max/dependabot/npm_and_yarn/actions/core-1...
    • a1e6816 Update generated content
    • 0ae3ef5 Bump @​actions/core from 1.9.1 to 1.10.0
    • 0296cd1 Bump @​actions/core from 1.6.0 to 1.9.1 (#177)
    • 1e41069 Fix git.io link
    • d6c9164 Bump official actions to latest major
    • 2823dae Bump actions to latest major
    • 3dd7a2e Update CHANGELOG
    • See full diff in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies github_actions 
    opened by dependabot[bot] 0
  • [kmdc-select] throws

    [kmdc-select] throws "Uncaught TypeError: Cannot read properties of undefined (reading 'length')"

    In the following code button click triggers recomposition of Menu element

    val items = remember { mutableStateListOf("item1") }
    MDCSelect {
        Anchor("Items")
        Menu { items.forEach { SelectItem(it) } }
    }
    MDCButton("Add item") {
        onClick { items.add("item${items.size + 1}") }
    }
    

    and clicking on newly created item throws errors:

    Uncaught TypeError: Cannot read properties of undefined (reading 'length')
        at MDCSelectFoundation.layout (foundation.ts?cd83:213:45)
        at MDCSelectFoundation.handleChange (foundation.ts?cd83:264:10)
        at MDCSelectFoundation.setSelectedIndex (foundation.ts?cd83:146:12)
        at MDCSelectFoundation.handleMenuItemAction (foundation.ts?cd83:274:10)
        at HTMLDivElement.handleMenuItemAction (component.ts?327b:148:23)
        at MDCComponent.emit (component.ts?327b:116:15)
        at Object.notifySelected (component.ts?327b:341:14)
        at MDCMenuFoundation.handleItemAction (foundation.ts?cd83:98:18)
        at HTMLDivElement.handleItemAction (component.ts?327b:85:23)
        at MDCComponent.emit (component.ts?327b:116:15)
    Uncaught TypeError: Cannot read properties of undefined (reading 'length')
        at MDCSelectFoundation.layout (foundation.ts?cd83:213:45)
        at MDCSelectFoundation.handleFocus (foundation.ts?cd83:282:10)
        at HTMLDivElement.handleFocus (component.ts?327b:135:23)
        at Object.restoreFocus (component.ts?327b:182:32)
        at eval (foundation.ts?cd83:651:22)
    

    This errors is thrown even if i'm triggering recomposition of MDCSelect too

    bug 
    opened by prykhodev 1
Releases(0.0.5)
  • 0.0.5(Jul 15, 2022)

    Verified Versions

    • [JDK]: 11+
    • [Kotlin]: 1.7.10
    • [Compose]: 1.2.0-alpha01-dev745
    • [MDC]: ^14.0.0

    Added

    Changed

    • Kotlin and Compose version bumps

    Removed


    What's Changed

    • kotlin 1.7 by @mpetuska in https://github.com/mpetuska/kmdc/pull/138
    • Bump actions/cache from 3.0.2 to 3.0.5 by @dependabot in https://github.com/mpetuska/kmdc/pull/140
    • Bump crazy-max/ghaction-github-pages from 2.6.0 to 3.0.0 by @dependabot in https://github.com/mpetuska/kmdc/pull/133
    • Bump com.gradle.enterprise from 3.10.1 to 3.10.3 by @dependabot in https://github.com/mpetuska/kmdc/pull/139
    • Bump de.fayard.refreshVersions from 0.40.1 to 0.40.2 by @dependabot in https://github.com/mpetuska/kmdc/pull/134

    Full Changelog: https://github.com/mpetuska/kmdc/compare/0.0.4...0.0.5

    Source code(tar.gz)
    Source code(zip)
  • 0.0.4(May 27, 2022)

    Verified Versions

    • [JDK]: 11+
    • [Kotlin]: 1.6.21
    • [Compose]: 1.2.0-alpha01-dev679
    • [MDC]: ^14.0.0

    Added

    • [x] mdc-chips
    • [x] mdc-banner
    • [x] mdc-fab
    • [x] mdc-image-list
    • [x] mdc-touch-target
    • [x] mdc-elevation
    • [x] mdc-line-ripple
    • [x] mdc-floating-label
    • [x] mdc-notched-outline
    • Proper @DslMarker usage to prevent leaking scopes

    Changed

    • Standardised event handlers
    • Reworked MDCSelect to be more lightweight and customisable
    • Introduced new CompositionLocal based MDC component management making it accessible from anywhere down the component hierarchy
    • Reworked sandbox with new katalog tooling for more streamlined experience and reduced boilerplate
    • Rewritten all existing samples to be fully interactive
    • Optimised MDC component state management for most of the components
    • opts based property builder was replaced with top-level properties

    Removed

    • initialiseMDC and MDCInitEffect which were relying on storing the MDC component on the native HTML element

    What's Changed

    • Update Readme by @Foso in https://github.com/mpetuska/kmdc/pull/110
    • #8 mdc-chips by @mpetuska in https://github.com/mpetuska/kmdc/pull/111
    • 7 wrap mdc banner by @mpetuska in https://github.com/mpetuska/kmdc/pull/112
    • #13 mdc-fab by @mpetuska in https://github.com/mpetuska/kmdc/pull/113
    • #15 mdc-image-list by @mpetuska in https://github.com/mpetuska/kmdc/pull/114
    • #31 mdc-touch-target by @mpetuska in https://github.com/mpetuska/kmdc/pull/115
    • #16 mdc-line-ripple by @mpetuska in https://github.com/mpetuska/kmdc/pull/117
    • #12 mdc-elevation by @mpetuska in https://github.com/mpetuska/kmdc/pull/118
    • Katalog tooling by @mpetuska in https://github.com/mpetuska/kmdc/pull/119
    • Bump actions/setup-java from 2 to 3 by @dependabot in https://github.com/mpetuska/kmdc/pull/122
    • Bump actions/upload-artifact from 2 to 3 by @dependabot in https://github.com/mpetuska/kmdc/pull/123
    • Bump actions/checkout from 2 to 3 by @dependabot in https://github.com/mpetuska/kmdc/pull/124
    • Bump actions/cache from 2.1.7 to 3.0.2 by @dependabot in https://github.com/mpetuska/kmdc/pull/126
    • Bump github/codeql-action from 1 to 2 by @dependabot in https://github.com/mpetuska/kmdc/pull/125
    • mdc-floating-label, Closes #14 by @mpetuska in https://github.com/mpetuska/kmdc/pull/127
    • mdc-notched-outline by @mpetuska in https://github.com/mpetuska/kmdc/pull/128
    • MDCTextField label cropping by @mpetuska in https://github.com/mpetuska/kmdc/pull/129
    • 0.1.0 Module Review by @mpetuska in https://github.com/mpetuska/kmdc/pull/130

    Full Changelog: https://github.com/mpetuska/kmdc/compare/0.0.3...0.0.4

    Source code(tar.gz)
    Source code(zip)
  • 0.0.3(Apr 27, 2022)

    Build Versions

    • JDK: 11+
    • Kotlin: 1.6.21
    • Compose: 1.2.0-alpha01-dev675

    Added

    • [x] mdc-switch
    • [x] mdc-slider
    • [x] mdc-select
    • [x] mdc-dialog
    • [x] mdc-circular-progress
    • [x] mdc-data-table
    • [x] mdc-tab-indicator
    • [x] mdc-tab-bar
    • [x] mdc-tab-indicator
    • [x] mdc-tab-scroller
    • [x] mdc-tab

    Changed

    Removed

    PRs

    • TIPS_N_TRICKS slight corrections [ci skip] by @OliverO2 in https://github.com/mpetuska/kmdc/pull/56
    • #25 mdc-switch by @mpetuska in https://github.com/mpetuska/kmdc/pull/61
    • #23 mdc-slider by @mpetuska in https://github.com/mpetuska/kmdc/pull/64
    • Introduce collision-free DOM IDs (fix #65) by @OliverO2 in https://github.com/mpetuska/kmdc/pull/66
    • Create CODEOWNERS by @mpetuska in https://github.com/mpetuska/kmdc/pull/69
    • kmdc-menu and kmdc-menu-surface by @pocharlebois in https://github.com/mpetuska/kmdc/pull/67
    • Add support for MDCMenuSurface closed, closing, and opened events. by @gsteckman in https://github.com/mpetuska/kmdc/pull/72
    • #68 MDCTextFieldIcons by @mpetuska in https://github.com/mpetuska/kmdc/pull/73
    • refreshVersions by @mpetuska in https://github.com/mpetuska/kmdc/pull/74
    • Refresh versions by @mpetuska in https://github.com/mpetuska/kmdc/pull/75
    • Bump crazy-max/ghaction-github-pages from 2.5.0 to 2.6.0 by @dependabot in https://github.com/mpetuska/kmdc/pull/77
    • Fix ripple visual effect. by @gsteckman in https://github.com/mpetuska/kmdc/pull/79
    • kmdc-select (#22) by @Kiryushin-Andrey in https://github.com/mpetuska/kmdc/pull/80
    • kmdc-dialog (#11) by @Kiryushin-Andrey in https://github.com/mpetuska/kmdc/pull/81
    • Bump de.fayard.refreshVersions from 0.30.2 to 0.40.0 by @dependabot in https://github.com/mpetuska/kmdc/pull/78
    • mdc-circular-progress by @mpetuska in https://github.com/mpetuska/kmdc/pull/84
    • Apply mdc-line-ripple only for Filled select type. by @gsteckman in https://github.com/mpetuska/kmdc/pull/86
    • #10 mdc-data-table baseline by @mpetuska in https://github.com/mpetuska/kmdc/pull/87
    • Closes #58 mdc-tooltip action styling by @mpetuska in https://github.com/mpetuska/kmdc/pull/89
    • Closes #63 mdc-slider tick placement by @mpetuska in https://github.com/mpetuska/kmdc/pull/90
    • Recreate MDCSelect when changing the items list to fix behavior. by @gsteckman in https://github.com/mpetuska/kmdc/pull/91
    • Bump com.gradle.enterprise from 3.8.1 to 3.10 by @dependabot in https://github.com/mpetuska/kmdc/pull/101
    • Bump actions/setup-java from 2 to 3 by @dependabot in https://github.com/mpetuska/kmdc/pull/100
    • Bump actions/upload-artifact from 2 to 3 by @dependabot in https://github.com/mpetuska/kmdc/pull/97
    • Bump actions/download-artifact from 2 to 3 by @dependabot in https://github.com/mpetuska/kmdc/pull/98
    • Bump actions/checkout from 2 to 3 by @dependabot in https://github.com/mpetuska/kmdc/pull/92
    • Bump actions/cache from 2.1.7 to 3.0.2 by @dependabot in https://github.com/mpetuska/kmdc/pull/99
    • #27 mdc-tab-indicator by @mpetuska in https://github.com/mpetuska/kmdc/pull/103
    • Bump github/codeql-action from 1 to 2 by @dependabot in https://github.com/mpetuska/kmdc/pull/102
    • kmdc-tab-bar module by @mpetuska in https://github.com/mpetuska/kmdc/pull/104

    New Contributors

    • @gsteckman made their first contribution in https://github.com/mpetuska/kmdc/pull/72
    • @Kiryushin-Andrey made their first contribution in https://github.com/mpetuska/kmdc/pull/80

    Full Changelog: https://github.com/mpetuska/kmdc/compare/0.0.2...0.0.3

    Source code(tar.gz)
    Source code(zip)
  • 0.0.2(Dec 28, 2021)

    Versions

    • JDK: 11+
    • Kotlin: 1.6.10
    • Compose: 1.0.1

    Changes

    • Upgraded Kotlin and Compose versions
    • Fixed teardown hooks on some components
    • Revisited old components to make all of them controlled for consistency
    • Reworked sandbox
    • MDCTypography extended to support custom attributes
    • Contributing guidelines and code of conduct
    • New dev.petuska:kmdcx shortcut artefact for KMDC extension and companion modules

    New modules wrapped

    • [x] mdc-radio
    • [x] mdc-tooltip
    • [x] mdc-segmented-button
    • [x] mdc-snackbar
    • [x] material-icons

    What's Changed

    • Bump actions/cache from 2.1.6 to 2.1.7 by @dependabot in https://github.com/mpetuska/kmdc/pull/5
    • Fix component initialization and teardown by @OliverO2 in https://github.com/mpetuska/kmdc/pull/36
    • Add yarn lock file and Gradle verification tasks by @OliverO2 in https://github.com/mpetuska/kmdc/pull/35
    • Fix text field notch and floating label, switch to controlled mode by @OliverO2 in https://github.com/mpetuska/kmdc/pull/38
    • Jetbrains compose 1.0.0 by @rocketraman in https://github.com/mpetuska/kmdc/pull/41
    • Add support for material-icons by @pocharlebois in https://github.com/mpetuska/kmdc/pull/40
    • kmdc-icons: allow to use span or i tag for material icons by @pocharlebois in https://github.com/mpetuska/kmdc/pull/42
    • #20 radio button by @Foso in https://github.com/mpetuska/kmdc/pull/43
    • Version bumps and sandbox rework by @mpetuska in https://github.com/mpetuska/kmdc/pull/47
    • #39 contributing guidelines by @mpetuska in https://github.com/mpetuska/kmdc/pull/48
    • #30 Wrap mdc-tooltip package by @mpetuska in https://github.com/mpetuska/kmdc/pull/49
    • Split out kmdc and kmdcx module groups by @mpetuska in https://github.com/mpetuska/kmdc/pull/53
    • Wrap mdc-segmented-button by @mpetuska in https://github.com/mpetuska/kmdc/pull/55

    New Contributors

    • @dependabot made their first contribution in https://github.com/mpetuska/kmdc/pull/5
    • @OliverO2 made their first contribution in https://github.com/mpetuska/kmdc/pull/36
    • @rocketraman made their first contribution in https://github.com/mpetuska/kmdc/pull/41
    • @pocharlebois made their first contribution in https://github.com/mpetuska/kmdc/pull/40
    • @Foso made their first contribution in https://github.com/mpetuska/kmdc/pull/43

    Full Changelog: https://github.com/mpetuska/kmdc/compare/0.0.1...0.0.2

    Source code(tar.gz)
    Source code(zip)
  • 0.0.1(Nov 22, 2021)

    Versions

    • JDK: 11+
    • Kotlin: 1.5.31
    • Compose: 1.0.0-rc1

    Changes

    New modules wrapped

    • [x] mdc-button
    • [x] mdc-card
    • [x] mdc-checkbox
    • [x] mdc-drawer
    • [x] mdc-form-field
    • [x] mdc-icon-button
    • [x] mdc-layout-grid
    • [x] mdc-linear-progress
    • [x] mdc-list
    • [x] mdc-ripple
    • [x] mdc-textfield
    • [x] mdc-top-app-bar
    • [x] mdc-typography

    Full Changelog: https://github.com/mpetuska/kmdc/commits/0.0.1

    Source code(tar.gz)
    Source code(zip)
Owner
Martynas Petuška
Lead Engineer / Fullstack Developer
Martynas Petuška
Simple compose components

Jetpack-compose-sandbox Simple compose components Very simple compose components (In the MainActivitity, uncomment which compose you want to check out

null 0 Nov 19, 2021
Android Jetpack is a set of components, tools and guidance to make great Android apps.

Android Jetpack is a set of components, tools and guidance to make great Android apps. They bring together the existing Support Library and Architecture Components and arrange them into four categories.

Atik Faysal 0 Dec 8, 2021
This repo contains components built with Jetpack Compose for the Microsoft Surface Duo.

Surface Duo Jetpack Compose SDK This repo contains components built with Jetpack Compose for the Microsoft Surface Duo and other large screen and fold

Microsoft 53 Dec 9, 2022
A Collection of major Jetpack compose UI components which are commonly used.🎉🔝👌

SSComposeCookBook A Collection of major Jetpack compose UI components which are commonly used. Introduction Jetpack Compose is a modern toolkit for bu

Simform Solutions 370 Dec 28, 2022
JetStrap - Ready-Made Jetpack Compose Components

JetStrap Ready-Made Jetpack Compose Components Installation implementation "com.

Hyeonseo Yang 0 Jan 6, 2022
Android App made by Jetpack Compose Components with Kotlin, MVVM Pattern, Multi Module, Navigation, Hilt, Coroutines, Retrofit and cached data by Room

Android App made by Jetpack Compose Components with Kotlin, MVVM Pattern, Multi Module, Navigation, Hilt, Coroutines, Retrofit and cached data by Room

Yogi Dewansyah 13 Aug 31, 2022
Android App made by Jetpack Compose Components with Kotlin, MVVM Pattern, Multi Module, Navigation, Hilt, Coroutines, Retrofit and cached data by Room

Mobile Banking Android App made by Jetpack Compose Components with Kotlin, MVVM Pattern, Multi Module, Navigation, Hilt, Coroutines, Retrofit and cach

Yogi Dewansyah 13 Aug 31, 2022
Carol 12 Sep 25, 2022
Pinocchio is a group of libraries for various common UI components. It could contain Composable, View, and everything related to UI.

Pinocchio Pinocchio is a group of libraries for various common UI components. It could contain Composable, View, and everything related to UI. All UI

NAVER Z 24 Nov 30, 2022
Decathlon Design System UI components for Compose applications

Vitamin Compose Decathlon Design System libraries for android applications Website Compose Decathlon Design System is based on Material Design compose

Decathlon 168 Dec 22, 2022
This is a Compose for Web port of CompoSnake

Compose-Snake-Web This is a Compose for Web port of CompoSnake. I used the code from there and modified it, to make it work in web. You can try it HER

Jens Klingenberg 13 Apr 30, 2022
Highly experimental routing feature for Compose Web

RoutingCompose Highly experimental routing feature for Compose Web Install This package is uploaded to GitHub Packages. repositories { maven {

Philip Wedemann 86 Dec 20, 2022
Resume of Louis CAD, made with Jetpack Compose. Supports the Web, Desktop, and Android.

ResumeComposition What This project is the source code of the resume/CV of Louis CAD. The latest PDF export is available here, it is ready to print. H

Louis CAD 22 Aug 14, 2022
A simple web app that shows holiday in Estonia

EstoHoli A simple android application that shows holiday in Estonia Built With Android Studio, Kotlin & XML Dependencies RXjava Gson Okhttp BootstrapA

ThankGod Richard 1 Nov 7, 2022
Exercising Compose for Desktop and Compose for Web (Canvas)

Compose Counting Grid A simple application to check Compose for Desktop and Compose for Web (Canvas) drawing speeds when drawing grids (or tables) wit

null 6 Nov 11, 2022
📊 A web tool to visualise and compare your android benchmark results

benchart A web tool to visualise and compare your android benchmark result ✨ Demo Screen.Recording.2022-11-26.at.2.36.55.PM.mov ✍️ Author ?? theapache

theapache64 65 Dec 20, 2022
A simple 'Slide to Unlock' Material widget for Android, written in Jetpack Compose

SlideTodo A simple 'Slide to Unlock' Material widget for Android, written in Jetpack Compose you can find source code here Getting Started allprojects

Nthily 7 Aug 8, 2022
A library that enables reuse of Material themes defined in XML for theming in Jetpack Compose.

MDC-Android Compose Theme Adapter A library that enables reuse of Material Components for Android XML themes for theming in Jetpack Compose. The basis

Material Components 409 Dec 24, 2022
Material Motion for Jetpack Compose

Material Motion for Jetpack Compose Jetpack Compose library for implementing motion system in Material Components for Android. ?? Core A library which

Sungyong An (SOUP) 368 Jan 5, 2023