$ show mike-north/ember-cli-materialize
ember-cli-materialize is an Ember.js addon that provides Materialize CSS components as Ember components. It allows developers to use Materialize UI elements (buttons, cards, modals, forms, etc.) in Ember applications by wrapping them in Ember-friendly components. The addon imports Materialize CSS and fonts, provides a comprehensive set of UI components, and handles the integration between Ember's runloop and Materialize's JavaScript plugins. It follows Ember CLI addon conventions with components, templates, styles, initializers, and services organized in standard directories.
The LLM identified 4 files worth highlighting for reuse:
Implements a Materialize select dropdown component with proper lifecycle management. Handles content parsing, validation state synchronization, and action forwarding. Demonstrates excellent Ember addon patterns for integrating with third-party JS libraries through setup/teardown methods and computed properties. Could be extracted to work with any select-like component with minimal changes.
Implements a date picker using pickadate with proper setup and teardown of the jQuery plugin. Includes custom date formatting for display values and clean separation of concerns. Shows good resource management practices for jQuery plugins in Ember components. Could be adapted for other date picker libraries with minimal changes to the initialization/teardown logic.
Implements a flexible loader component supporting determinate, indeterminate, and circular modes. Uses computed properties for dynamic styling based on mode and percentage values. Demonstrates good encapsulation of presentation logic with clean separation between component state and DOM styling. Could be used in any Ember project needing loading indicators with minimal adaptation.
Helper function that handles both old (mdi-) and new (material-icons) Materialize icon formats. Solves a real-world compatibility issue during library version transitions with a simple, focused solution. Zero dependencies beyond Ember utilities and highly reusable across projects. Demonstrates thoughtful handling of evolving frontend library APIs.