All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
2.0.0-beta.11 - 2023-08-16
- Adds the setting to hide a design function from the mechanic UI app. This allows to iterate multiple functions and simply hide earlier versions, instead of moving everything to other locations. If a user sets
hideFunction
in their functions settings to true, they won't appear but will still be tracked for updates in HMR mode. It defaults to false.
- Fixes bug that crushed mechanic on PC.
- Improved log formatting in create script.
2.0.0-beta.10 - 2023-02-10
- Adds public
preload
,preloadFont
andmemo
utility functions to mechanic core to provide an opt-in performance optimization.
- Fixed extra logged lines when creating DFs through CLI.
- Better localStorage management that detects input changes.
- Serve command now prioritizes argument option for port to use instead of config file. Similar as how dev command works.
- CLI takes new project or function name argument into account when using template or example option.
- Holding down shift allows increases the step of the numeric input by 10
- Adds the setting to debounce re-rendering after changing the input values. By default inputs are debounced by 100ms. If a user sets
debounceInputs
in their functions settings to false they can opt-out of the debouncing. The period can be passed in the settings asdebounceDelay
and defaults to 100ms.
2.0.0-beta.9 - 2022-08-12
- NPM package version shield on README
- Docs version shield on README
- PRs welcome shield on README
- Added gif image header on README
- Create CLI doesn't try on it's own to use yarn if possible, it asks if try to use npm or yarn
- Static folder gets uploaded again
- Corrects wrong name for "slider" property of number input in their definition
- Adds missing "multiple" property of image input in their definition
- Tweaks size of thumbnails in image input
- Resets cursor style on disabled image inputs
2.0.0-beta.8 - 2022-06-20
- New SVG.js image template
- New D3 image template
- Design function iframe also takes basename to load resources, which fixes embedding Mechanic iframe into site.
2.0.0-beta.7 - 2022-05-16
- Build command had a import missing
2.0.0-beta.6 - 2022-05-08
- Adds cli and config file options to define static folder (
staticPath
) and custom app components (appCompsPath
)
- App breaking when no custom app components are defined
- Error log when no static folder is included in project
2.0.0-beta.5 - 2022-05-04
- Support to import custom
SideBar
component inapp/
folder that replaces sidebar in Mechanic UI. - New design function export
ExtraUi
, expected to be a React component that's added to the bottom section of sidebar, on top of default toggles and buttons. - Support for SVG and PNG exports for SVG based engines like
engine-react
andengine-svg
. - New
hideFeedback
design function setting. When true, Mechanic's feedback button is hidden. Defaults to false. - New
hideNavigation
design function setting. When true, the navigation input that lets users select a design function is hidden. Defaults to false. - New
hidePresets
design function setting. When true, preset selection input is hidden. Defaults to false. - New
hideScaleToFit
design function setting. When true, Scale to Fit toggle is hidden. Defaults to false. - New
initialScaleToFit
design function setting. When false, Scale to Fit will be off initially. Defaults to true. - New
hideAutoRefresh
design function setting. When true, Auto Refresh toggle is hidden. Defaults to false. - New
initialAutoRefresh
design function setting. When false, Auto Refresh will be off initially. Defaults to true. - New
hideGenerate
design function setting. When true, Generate button is hidden. Defaults to false. - New
showMultipleExports
design function setting. When false, single export button is shown. When true, two separate export buttons are shown: one for PNG export and another for SVG export. Defaults to false. - New
ignoreStyles
design function setting. When true, CSS in iframe is injected into design function's SVG output. Defaults to false. - Support to serve
static/
folder for all design functions. _isPreview
value is passed to design function handler ininputs
argument.
- Changed filename from
[name][timestamp].[ext]
to[filename]-[timestamp].[ext]
for better readability
2.0.0-beta.4 - 2022-04-14
- Adds
immer
as dependency. - Updated width of number value display to
ch
units in slider so it does not overflow
2.0.0-beta.3 - 2022-03-24
- Preview / Randomize button was renamed to Generate and styled as a single button with undo / redo
- Update script checks that dependency file exist before requiring.
2.0.0-beta.2 - 2022-03-18
- Error capturing during df render
- Typos in input validation
2.0.0-beta.1 - 2022-03-17
- Captured instance when animation only calls done and never frame.
2.0.0-beta.0 - 2022-03-16
- Custom inputs as components can be defined and imported into a mechanic project
- Custom inputs as interaction observers can be defined and imported into a mechanic project
- Random seed history, with undo and redo options and local storage persistency
- State can be set in mechanic instances and passed to the next instance through
state
andsetState
values - Title in app shows open design function's name
- Not found page renders link to home
- Not found page is centered
- Loading and running errors are now shown in app as a modal instead of as an alert
- Uses
immer
to manage input values in app - Generated script from function loader is now written in ESM
- Updated PostCSS dependencies:
postcss-loader
andpostcss-preset-env
- Generalized and streamlined input validation, and added basic inputs definitions and behaviors
- Renamed original width and height values passed from
_widthOriginal
and_heightOriginal
to just_width
and_height
- Feedback tag gets lifted in UI
- Added array case to local storage input values serialization
- Allows nested URLs in app that redirect to first level of URL (to main design functions)
1.2.0 - 2022-02-14
- Added styles (& fonts) to SVG frames for animated exports, so they export correctly.
- Added favicon to mechanic app and loading page.
- Added support to export images and video from HTML elements from React engine (credits to @caroillemann)
- Extra input values are passed to design function handler (
_widthOriginal
,_heightOriginal
and_ratio
) (credits to @caroillemann)
- Included fonts in example functions
1.1.0 - 2021-09-29
- New business card generator example
- New instagram story generator example
- Changed
usesRandom
setting name topersistRandomOnExport
at it's default value totrue
. - Updated all templates and examples to follow
persistRandomOnExport
behavior instead ofusesRandom
. - Code base for
react-image
template
1.0.0 - 2021-09-14
Beta release
0.6.5 - 2021-09-14
- Changed base of poster generator example to feel a bit more broad
0.6.4 - 2021-09-14
- Fixed anchor into App that link to feedback form.
- Default preset is named "Custom" now
- Preset value changes to "Custom" after value of input is changed away from current preset
- Changed colors in ui-components to be consistent with colors in docs
0.6.3 - 2021-09-10
- Replaced nullish coalescing operator used in node scripts to support 12.20 onwards
0.6.2 - 2021-09-09
- Tweaked CLI language
- Fixed bug when running on Windows
- Fixed p5-video template creation bug
0.6.1 - 2021-09-08
- Fixed bug in
create-mechanic
.
0.6.0 - 2021-09-08
- Renamed creation CLI package to
create-mechanic
. Creation command is nownpm init mechanic
.@mechanic-design/create
gets deprecated.
0.5.1 - 2021-09-07
- CLI commands now look for available port if one specified is used.
0.5.0 - 2021-09-06
- Renamed design function's
params
export toinputs
. From now on it's inputs everywhere. This is not backwards compatible and is an API change.
- Correctly enabled HMR to use while running
npm run dev
in Mechanic projects. - Improved visual consistency and fixed minor bugs in ui components
- Animation export from SVG assets
- Fixed color input bugs (closing and z-index issues)
- Fixed inconsistencies on hover and active states across all inputs and buttons
- App can be injected a different public path to be serve from a subfolder
0.4.1 - 2021-08-24
- Renamed packages and scope. Now all packages live under
@mechanic-design
.
0.4.0 - 2021-08-24
- Create CLI project templates and examples
- Improved project creation CLI experience.
- Changed single bundle for design functions approach to one isolated bundle per design function.
- Improved other commands experience.
- Updated engines argument pass to single object with named fields.
0.3.0 - 2021-08-02
- Support for new param added of type
"image"
.
0.2.11 - 2021-07-27
- UI components and app now use named exports for CSS Modules.
0.2.10 - 2021-07-21
- Added extra information log for "options" field in param validation.
0.2.9 - 2021-07-21
- Support for
"editable"
property in params. It disables the input in case of non editable result.
ParamInput
component doesn't receive singlevalue
prop, butvalues
prop with the whole object of values.
0.2.8 - 2021-07-15
- Improved path usage through normalization
- Fixed Windows bug when requiring modules without POSIX format.
0.2.7 - 2021-07-13
First logged release