Skip to content

Latest commit

 

History

History
403 lines (304 loc) · 13 KB

CHANGELOG.md

File metadata and controls

403 lines (304 loc) · 13 KB

5.1.0

New nodes

  • BadgeNode ('badge'): Material 3 Badge as a dot, label or count (BadgeType), optionally anchored to another node through childID. BadgeProperties mirrors Flutter's backgroundColor, textColor, textStyle, smallSize, largeSize, padding, isLabelVisible and Badge.count's maxCount, plus BadgeAlignment and an offsetX/ offsetY offset (Flutter's default Offset(4, -4)).
  • ChipNode ('chip'): Material 3 Chip, ActionChip, ChoiceChip, FilterChip and InputChip (ChipType). ChipProperties covers the label and its style, an icon or image avatar, the delete icon and its color, selection with showCheckmark/checkmarkColor, colors, border, corner radius, elevation, paddings (Material 3 defaults: 8 px padding, 8 px horizontal label padding), tooltip and autofocus. Choice and filter chips expose a selected property variable.
  • SegmentedButtonNode ('segmentedButton'): Material 3 SegmentedButton<String> built from ButtonSegmentModels, with selected, multiSelectionEnabled, emptySelectionAllowed, showSelectedIcon, selectedIcon, direction, border, foreground and background colors for both states and a stadium-shaped default corner radius. The selection is exposed as the selected property variable.
  • All three are registered with NodeJsonConverter.

JSON

  • These nodes first appeared on the unreleased migrate-json-serializable branch. JSON written with it still loads: keys are unchanged where a field was renamed to its Flutter name (dotSize holds BadgeProperties.smallSize, labelStyle holds BadgeProperties.textStyle, selectedSegments holds SegmentedButtonProperties.selected, selectedColor/unselectedColor hold selectedBackgroundColor/backgroundColor), and field access uses the same keys.
  • As with every other node, fields that equal their defaults are omitted.

5.0.0

Breaking changes

  • Require Dart 3.13.
  • Replace the forked codelessly_json_annotation and codelessly_json_serializable with the standard json_annotation and json_serializable. Custom nodes should import package:json_annotation/json_annotation.dart. DateTimeConverter is now exported by this package.
  • Upgrade to equatable 3, which removes EquatableMixin; models mix in Equatable instead.
  • Remove the unused blend and value constructor parameters of LoadingIndicatorNode, ProgressBarNode and DividerNode, which were silently discarded.
  • Remove the unused automaticChevron parameter of ExpansionTileProperties.copyWith.

JSON

  • Serialized JSON is unchanged: fields that equal their defaults are still omitted, now by a small build step in tool/json_defaults_builder. Golden tests pin the output against 4.4.0.
  • Cloud database query whereFilters/orderByFilters are omitted when empty; they read back as empty lists.

Flutter parity

  • Mirror new Flutter values: TextAlignHorizontalEnum.start/end, ButtonTypeEnum.filled/filledTonal, FABLocation.endContained, TextInputTypeEnum.webSearch/twitter, AutovalidateModeC.onUnfocus/onUserInteractionIfError, SliderTrackShapeEnum.gapped, SliderValueIndicatorShape.drop/ roundedRectangle and CShapeBorder.roundedSuperellipse.
  • Add Flutter parameters that were missing:
    • AppBarProperties.foregroundColor, scrolledUnderElevation
    • TabBarProperties.tabAlignment (new TabAlignmentC), dividerHeight
    • RadioProperties.side, innerRadius, backgroundColor
    • SliderProperties.showValueIndicator (new ShowValueIndicatorC), secondaryTrackValue, secondaryActiveTrackColor, padding
    • ListTileProperties.minTileHeight, titleAlignment (new ListTileTitleAlignmentC)
    • MaterialLoadingIndicatorProperties.strokeAlign, trackGap
    • ExpansionTileProperties.showTrailingIcon, shape, collapsedShape, cornerRadius
    • TextMixin.softWrap, textScaleFactor
    • MultiSourceIconModel.fill, weight, grade, opticalSize (the Material Symbols variable-font axes)
    • PageViewProperties.allowImplicitScrolling
  • Document the Flutter replacements for deprecated cacheExtent (scrollCacheExtent) and Radio.groupValue (RadioGroup).
  • New nodes use Material 3 defaults: switches use Material 3, buttons are stadium-shaped with 24 px horizontal padding, FABs are rounded rectangles (radius 16) with Material 3 elevations, a 56 px extended height and 8 px icon spacing, list and expansion tiles use 16/24 px content padding, tab indicators size to the label, and navigation bars use elevation 3 (M3) and 8 (M2).
  • Designs saved before 5.0.0 keep their look: a missing key still reads as the old default, and re-saving them writes the same JSON. The new JsonLegacyDefault annotation supports this for non-literal defaults.

Fixes

  • Register PlaceholderNode with NodeJsonConverter; layouts containing one failed to deserialize.
  • ListTileNode.empty/fromProperties and ExpansionTileNode.empty no longer leave late fields uninitialized.
  • FloatingActionButtonNode.empty and EmbeddedVideoNode.empty use their own sizes.
  • copyWith keeps Divider thickness, Dropdown enabled/dense/ expanded/autoFocus/enableFeedback, FAB location, M2 navigation bar notch settings.
  • Remove the contentPadding parameter of InputDecorationModel.copyWith, which was ignored; a text field's content padding is its node padding.
  • Equality includes previously ignored fields of ExpansionTile, grid delegates, Dropdown, Divider, FAB, ListTile, TabBar, icons, web views, submit actions, Vimeo videos, condition groups and visual density.
  • TypedValue.toEdgeInsetsModel converts numbers and lists again.
  • Add field access for TextFieldProperties and the navigation bar properties.

4.4.0

  • Add CornerRadius typedValue.
  • Fix icon props deserialization for backwards compatibility.

4.3.0

  • Create new Placeholders node.
  • Add enable and disable node feature.
  • Add new BlendModes support.
  • Enable RenderedLayoutModel for buttons and dropdowns.
  • Fix dropdown onChanged callback value.

4.2.1

  • Fix lint issues.

4.2.0

  • Add NodeBox.fromCenter method.
  • Use TextProp instead of StartEndProp.

4.1.0

  • Fix AppBar constraints.
  • Add Brightness property for Codelessly emulator support.

4.0.0

  • Update codelessly_json_serializable to v4.9.0.
  • Require Dart SDK v3.5 or higher.

3.0.0

  • Owner field & admin Role migration.
  • Create where query API.
  • Add new VariableType.image.
  • Add Date decoder.

2.1.0

  • New TextInputField features! This is the first batch of improvements to the TextInput component and includes the following:
    • Added Autofill Hints support.
    • Added Text Input Validator.
    • Added Text Input Formatter.
    • Added Submit Keyboard Action selector.

2.0.2

  • Update external components with reactions.
  • Add click and long click reactions to rectangle node.

2.0.0

  • Update Checkbox shrinkwrap and padding sizing.
  • Change default Stroke cap to none.
  • Optimize node sorting algorithm.

1.8.0

  • Custom Layout IDs support! Now you can give your CloudUIs a name which makes identifying them much easier.

1.7.0

  • Teams v1 support.

1.6.0

  • Initial CloudUI support for Layout Groups.
    • Display different layouts for different screen sizes.

1.5.0

  • Fix text node not allowing actions.

1.4.0

  • New StyleSheets support! Define common color and text styles.
  • Update GridView childAlignment property. Minor refactor.
  • Improve Edge Pins.
    • Fix edge pins not being saved.
    • Clamp edge pins to positive values in wrapping parent layouts.

1.3.0

  • Remove Montserrat font.

1.2.0

  • Implement isTrue and isFalse operators for conditions.
  • Refactor operator filtering to use index if available.

1.1.0

  • New AutoComplete support for Variables.
  • Fix disable automatic padding from Frames with strokes.

1.0.0

  • Official v1 release!
  • Update triggers types.
  • Fix integer functions crashing with NaN and infinite values.

0.8.0

  • Codelessly Data support. Save and write data to Codelessly Cloud.
  • New GridView widget.
  • Codelessly Data Query Filters support. Sort and filter data.
  • Variable improvements.
    • Include 'set' and 'replace' operations for list operations.
    • Add new ${value} predefined variable to expose internal node data. TextFields only for now.
    • Track internal value with new NodeProvider InheritedWidget per-widget.
  • TextField improvements.
    • Add support for actions on prefix and suffix icons on text fields.
    • Fix set operation on map not showing input field.
    • Implement proper TextFieldModel minimum size computation.
    • Add support for TextInputType.numberWithOptions.
  • JSON improvements.
    • Fix json variable controller highlighting.
    • Fix json syntax highlighting for storage operations.
    • Fix focus nodes for json variable input fields.
  • List improvements.
    • Add insertAll option for list operations
    • Refactor insert list operation to use json input field.
  • Add copy-paste and shortcuts support for actions.
  • Add support for non-blocking actions.
  • Implement option to enable/disable action.
  • Add firebase queries support for grid view.
  • Add support for number operations.

0.7.5

  • Fix drag and drop insert to the edge of Accordion, Expansion Tile, ListView, and PageView.

0.7.3

  • Migrate Variables and Conditions to use permissions model.
  • TextField Improvements
    • Fix shrink-wrapping conflict with expands property.
    • Fix text field model not calculating text field height properly for shrink-wrapping.
    • Allow min lines and max lines input fields to clear.
    • Fix shrink-wrap height calculation being affected by isDense property.

0.7.1

  • Implement safe area for canvases.
  • Fix scroll physics and always scrollable option.

0.7.0

  • New Dialogs feature! 100% customizable dialogs with customizable close button, background, and padding.
    • New show dialog action.
    • New show dialog settings panel.
  • Fix Edge Pins not syncing with server.
  • Fix PageView triggers not executing.

0.6.0

  • Embedded Canvases V1.
    • Embed canvases into layouts.
  • Local Storage V1.
    • Store and persist data locally.
  • Optimize JSON data to reduce data usage and storage by 80%.

0.5.2

  • Remove dependency on Flutter.

0.5.1

  • New shrink-wrap support for Buttons. Buttons can now resize based on the content inside them.
  • New shrink-wrapping support for Slider, Switch, and Radio Button components.
  • Fix ListView and PageView reverse scroll direction not enabled.
  • Add resolvedConstraint override.

0.5.0

  • Load APIs V1.
  • Fix ExpansionTiles layout and functionality issues.
  • Fix reactions not being modified.

0.4.1

  • Add hover and splash color to dropdown node.
  • Miscellaneous fixes.

0.4.0

  • New SetMapVariableAction support for map variables.
  • Support more conditions.
    • isEmpty, isNotEmpty, contains
    • isOdd, isEven, isNull
  • Add remove for list type variable.
  • Remove deprecations and update formatting and documentation.

0.3.0

  • Scrolling V1. Enable scrolling for Columns, Frames, and Canvases.
  • Create list operations and index for List SetVariableAction.

0.2.0

  • New simplified variables system. Variables passed into the CodelesslyWidget can now be referenced by name in the Codelessly Editor.
CodelesslyWidget(
  data: {
    'title': 'My Title',
    'productData': { // JSON Data
      'nested': {
        'json': {
          'path': 'Hey there!',
        }
      }
    }
  }
)

// Now you can access the variable directly in the Codelessly Editor.
${title} - 'My Title'

// Or, using the `data` object.
${data.title} - 'My Title'
${data.productData.nested.json.path} - 'Hey there!'
  • Add >=, <=, and == null operators.
  • Add data and variable support for dropdown component.
  • Add Material 3 Switch UI component.
  • Add Rounded Circular Progress Indicator component.
  • Improve InkWell behavior. Show Inkwell effect on top of other widgets.
  • Prototype implementation of custom widget embedding feature.

0.1.0

  • Optimize SDK size by 90% by switching to SVG icons.
  • Enable variables copy and paste.
  • Enable conditions copy and paste.
  • Fix canvas fill condition not working when there's only 1 fill.

0.0.8

  • Text field and code-gen improvements.
  • Add showCounter for input decoration.
  • Fix text field counter text not working properly.
  • Fix text field with incorrect sizing in codegen.

0.0.7

  • Add support for Tabs.
  • Add TextField support for variables.
  • Add FAB support for variables.

0.0.6

  • Update type support to support null values.

0.0.5

  • Add improved Variables type support.

0.0.4

  • Add Variables and Conditions support.

0.0.3

  • Update SDK constraints.
  • Update ReadMe.

0.0.2

  • Upgrade to Flutter 3.10 and Dart 3.
  • Add support for Listview and Pageview.
  • Add support for API call action.
  • Remove ScrollLinkableMixin.
  • Add method to compare two font weights.
  • Add method to generate a random ID.
  • Update example.md.
  • Update documentation.

0.0.1

  • Initial Release.