niku 2.2.0 niku: ^2.2.0 copied to clipboard
Property builder for styling Widget with SwiftUI like pattern
[2.2.0] - 2022/03/18 #
Improvement:
- Reduce Time Complexity of hooks from
UseQueryMacro
from O(n(2i + p)) to O(n) where n is property, p is parent total callstack, and i is total invocation. By passing widget self as reference instead of immutable copied then diffing, and apply The following hooks benefits in performance improvement:- useQuery
- useSize
- useDarkMode
- useThemeSelector
- useScreen
Feature:
- New parent proxy available for all widget:
- expanded
- flex
- fullSize
- fullWidth, wFull, w100
- fullHeight, hFull, h100
- fractionSize, sizePercent
- fractionWidth, fractionW, fw, wFactor, widthPercent, wPercent
- fractionHeight, fractionH, hw, hFactor, heightPercent, hPercent
- boxConstraints
- nikuConstraints
- maxSize
- minSize
- maxWidth, maxW, wMax
- minWidth, minW, wMin
- maxHeight, maxH, hMax
- minHeight, minH, hMin
- width, w
- height, h
- useGesture
- New parent proxy available for AxisLayourProxy
- alignTopLeft
- alignTopCenter
- alignTopRight
- alignCenterLeft
- alignCenter
- alignCenterRight
- alignBottomLeft
- alignBottomCenter
- alignBottomRight
- New widget:
NikuRadio
,NikuRadioListTile
,NikuDismissible
- New hook:
useTransition
,useTransitions
- Add property:
splash
,wFactor
,hFactor
toNiku
- New utility widget
NikuAnimated
,NikuAnimateds
- New proxy:
ListTile
withdismiss
forNikuDismissible
Change:
- Move part of
AxisProxy
toNikuBuildMacro
- Refactor, and organize examples
Bug fixes:
obscureCharacter
not working inNikuTextFormField
[2.2.0-experimental.1] - 2022/03/17 #
Improvement:
- Reduce Time Complexity of hooks from
UseQueryMacro
from O(n(2i + p)) to O(n) where n is property, p is parent total callstack, and i is total invocation. By passing widget self as reference instead of immutable copied then diffing, and apply The following hooks benefits in performance improvement:- useQuery
- useSize
- useDarkMode
- useThemeSelector
- useScreen
Feature:
- New parent proxy available for all widget:
- expanded
- flex
- fullSize
- fullWidth, wFull, w100
- fullHeight, hFull, h100
- fractionSize, sizePercent
- fractionWidth, fractionW, fw, wFactor, widthPercent, wPercent
- fractionHeight, fractionH, hw, hFactor, heightPercent, hPercent
- boxConstraints
- nikuConstraints
- maxSize
- minSize
- maxWidth, maxW, wMax
- minWidth, minW, wMin
- maxHeight, maxH, hMax
- minHeight, minH, hMin
- width, w
- height, h
- useGesture
- New parent proxy available for AxisLayourProxy
- alignTopLeft
- alignTopCenter
- alignTopRight
- alignCenterLeft
- alignCenter
- alignCenterRight
- alignBottomLeft
- alignBottomCenter
- alignBottomRight
Change:
- Move part of
AxisProxy
toNikuBuildMacro
- Refactor, and organize examples
Bug fixes:
obscureCharacter
not working inNikuTextFormField
[2.2.0-experimental.0] - 2022/03/14 #
Feature:
- New widget:
NikuRadio
,NikuRadioListTile
,NikuDismissible
- New hook:
useTransition
,useTransitions
- Add property:
splash
,wFactor
,hFactor
toNiku
- New utility widget
NikuAnimated
,NikuAnimateds
- New proxy:
ListTile
withdismiss
forNikuDismissible
[2.1.1] - 2022/03/10 #
Bug fix:
- Unmatch filename with capital case
- Remove
print
fromPaddingMacro
[2.1.0] - 2022/02/28 #
Breaking Change:
flexible
is nowflex
- Deprecated required value of
TextFormField
in favor ofhint
.- To migrate, please add factory
.hint
or add it asnamed parameter
- To migrate, please add factory
Feature:
- Add mandatory shortcut to
AxisLayoutProxy
- Add
useThemeSelector
for declarativeuseDarkMode
- Support all factory method for
NikuGridView
- Add
NikuListView
- Add
AxisLayoutMacro
- Add
.center
,.w100
,safeArea
toAxisLayoutMacro
- Add
of
alias forapply
Change:
AxisLayoutMacro
is nowAxisLayoutProxy
borderWidth
is nowbaseBorderWidth
to follow the same convention withborder
,borderColor
, andborderStyle
on proxy- Remove function allocation from
_init
ofMapTextStyleMacro
- Add
center
toNikuColumn
, andNikuRow
- Replace
childrenWithGap
with$internalComposeGap
inGapMacro
- Add
gap
property to AxisLayout - gap can now be applied
childrenWithGap
now only composed on build
Bug fix:
useDarkMode
anduseThemeSelector
not switching context between- Fix
'owner!._debugCurrentBuildTarget == this': is not true.
when usinguseDarkMode
[2.1.0-experimental.4] - 2022/02/28 #
Breaking Change:
flexible
is nowflex
Feature:
- Add mandatory shortcut to
AxisLayoutProxy
Change:
AxisLayoutMacro
is nowAxisLayoutProxy
[2.1.0-experimental.3] - 2022/02/27 #
Feature:
- Add
useThemeSelector
for declarativeuseDarkMode
Bug fix:
useDarkMode
anduseThemeSelector
not switching context between
[2.1.0-experimental.2] - 2022/02/27 #
Breaking Change:
- Deprecated required value of
TextFormField
in favor ofhint
.- To migrate, please add factory
.hint
or add it asnamed parameter
- To migrate, please add factory
Change:
borderWidth
is nowbaseBorderWidth
to follow the same convention withborder
,borderColor
, andborderStyle
on proxy
Bug fix:
- Fix
'owner!._debugCurrentBuildTarget == this': is not true.
when usinguseDarkMode
[2.1.0-experimental.1] - 2022/02/23 #
Feature:
- Support all factory method for
NikuGridView
- Add
NikuListView
- Add
AxisLayoutMacro
- Add
.center
,.w100
,safeArea
toAxisLayoutMacro
- Add
of
alias forapply
Change:
- Remove function allocation from
_init
ofMapTextStyleMacro
- Add
center
toNikuColumn
, andNikuRow
- Replace
childrenWithGap
with$internalComposeGap
inGapMacro
- Add
gap
property to AxisLayout - gap can now be applied
childrenWithGap
now only composed on build
Bug fix:
- Remove
print
fromPaddingMacro
[2.1.0-experimental.0] - 2022/02/23 #
Feature:
- Text Style Proxy, Button Proxy, TextFormField Proxy
- Add
ConstraintsMacro
toNikuInputDecoration
- Add
useTextStyle
toDropdownButton
- Add State Utility Hooks to
NikuButton
- Add
color
setter toNikuButtonStyle
Change:
border
is nowbaseBorder
, andallBorder
is nowborder
- margin property now uses
Padding
instead ofContainer
because that's how native Flutter doing it. Yes, margin is actually padding in Flutter.
[2.0.0] - 2022/02/21 #
Base on 2.0.0-rc.8
Simply an entire rewrite, read more at version 2 introduction
[2.0.0-compat.0] - 2022/02/21 #
Base on 2.0.0-rc.8
A compatibility version for working with both v1 and v2 for gradually migrating from v1.
To gradually migrate from v1, simply replace all:
// From
import 'package:niku/niku.dart';
// into
import 'package:niku/v1/niku.dart';
You can easily use IDE like VS Code to find and replace all package:niku/
with package:niku/v1/
then it should work just fine, gradually migrate from v1.
[2.0.0-rc.8] - 2022/02/20 #
Bux Fix:
- Add
copied
to NikuImage, NikuSlider, NikuRangeSlider. - Apply parent builder to
copied
method
[2.0.0-rc.7] - 2022/02/20 #
Feature:
- New
use
onNikuWidget
to apply multiple styles at once - Add
useBorder
,useRoundedBorder
- Add
apply
toNikuIcon
- Add
WidthHeightMacro
Change:
- Add
Full Macro
conventions - Use Parent Builder stack instead of direct setter to support apply parent styling
Bux Fix:
- Fix wrong spelling of
actionPb
- Use
Full Macro
onAlert
- n.showDialog now accepts any widget
[2.0.0-rc.6] - 2022/02/19 #
Change:
- showNikuDialog now accepts any widget
[2.0.0-rc.5] - 2022/02/17 #
Bug Fix:
- Add default
.rounded
toNikuButton
- Fix gap inserted to last children
- Fix Column with gap required at least 1 children
[2.0.0-rc.4] - 2022/02/14 #
Breaking Change:
- Remove
NikuImage.file
factory to support web platform.
[2.0.0-rc.3] - 2022/02/14 #
Breaking Change:
- Remove cached network image due to not supporting all platform yet.
[2.0.0-rc.2] - 2022/02/13 #
Feature:
- Add
.quarterTurns
,bgBlur
,clipRect
,clipOval
toNiku
Change:
- Remove default styling from
NikuText
to match default Flutter Text, eg. TextBasis.
Bug fixes:
AxisMacro
not assigning wrong field name
[2.0.0-rc.1] - 2022/02/13 #
Breaking Change:
- Migrate
.useScreen
touseSize
- Migrate
.useQuery
to.useScreen
- Migrate
.useEvents
touseGesture
- Remove
TransformSelectableText
Feature:
- Add
.useQuery
to handleMediaQueryData
- Add
useBorder
,useNikuBorder
,useBorderColor
,useBorderWidth
hook - Add
.useDarkMode
to handle element styling on Dark Theme - Add
n.Image.cache
to useCacheNetworkImage
Bug fixes:
- Correct
focusedErrorBorder
setter name
[2.0.0-experimental.4] - 2022/01/31 #
Breaking Change:
- Remove
asNiku
on Widget (still working for object) - Migrate
.useOn
touseEvents
Feature:
- Add
.focusColor
,.splashColor
,highlightColor
,hoverColor
toNikuCheckboxListTile
- Add
.adaptive
toNikuAlert
- Add
.adaptive
toSwitch
- Add
.adaptive
toNikuTextFormField
- Add
NikuShowDialog
to handle adaptive dialog - New
NikuQuery
widget
Bug fixes:
.on
property inNiku
doesn't passing dependencies to concilation process
[2.0.0-experimental.3] - 2022/01/29 #
Feature:
- Add
useQuery
anduseScreen
property, read more about it here
Bug fixes:
.on
property inNiku
doesn't passing dependencies to concilation process
[2.0.0-experimental.2] - 2022/01/25 #
Feature:
- Game Changing,
NikuOn
,.on
and.freezed
property, read more about it here NikuDropdownButton
widget forDropdownButton
Bug fixes:
- Change from Nullish cascade equality to nullish check to override
useStyle
's style
Breaking Change:
- Migrate
.useStyle
to.useTextStyle()
onNikuText
. - Migrate
.useStyle
to.useButtonStyle()
onNikuButton
. - Change
.useStyle
to.useButtonStyle()
onNikuButton
. - Migrate
.useBuilder
,useParent
touseChild
onNiku
. - Migrate from
.value
to.widget
on every Niku component. - Migrate from
style
totextStyle
on every Niku component.
[2.0.0-experimental.1] - 2021/12/16 #
- Namespace
- Selectable Text
[2.0.0-experimental.0] - 2021/12/16 #
Heaven and Earth, batch 1. @see #17
[1.1.3] - 2021/9/30 #
Thanks to y-pakron for fixing the bug!
This release fix the expanded
method to be flexible on NikuCore
where I overlook.
Without this PR, we are going to have time confusion of why flexing doesn't work!
Bug fixes:
- Apply
flex
parameter toexpanded
onNikuCore
[1.1.2] - 2021/7/20 #
Thanks to dmitrijkiltau for contribution!
This release add the nullable onTap
on NikuButton
, also adding the example for that.
Bug fixes:
- Nullable onTap on
NikuButton
[1.1.1] - 2021/7/11 #
Big thanks to y-pakorn for this release! He contribute to Niku for a several PR now, in fact, this entire release is happend because of his contribution which solved bug caused by my clumsiness, tee hee~
Feature:
- Add
mainAxisSize
toNikuColumn
andNikuRow
Bug fixes:
- Fixes
.fullWidth()
which cause full height. - Makes error text optional on
NikuTextField
.
[1.1.0] - 2021/6/2 #
Feature:
- selectable text
[1.0.5] - 2021/4/24 #
Bug fix:
- builder return Widget instead of Niku.
[1.0.4] - 2021/4/24 #
Bug fix:
- log
[1.0.3] - 2021/4/24 #
Bug fix:
- builder return void.
[1.0.2] - 2021/4/24 #
Feature:
- add
.scrollbar
to base. - add
.style
,.theme
to text.
[1.0.1] - 2021/4/7 #
Breaking Change:
- Remove
.text
from NikuText.
Change:
- Adding final to constructor parameter.
Bug fix:
- Fix key not setting for several widget.
- Fix
animated
andanimatedBuilder
not working.
[1.0.0] - 2021/4/7 #
Bug fix:
this.
access property.
[1.0.0-alpha.4] - 2021/4/1 #
Feature:
- Add
NikuWrap
- Add
form
toNikuBase
. - Add
focusedError
toTextField
border input.
Bug fix:
apply
using unexpected share property.apply
onNikuTextField
withoutAlignVertical
cause build to failed.
[1.0.0-alpha.3] - 2021/3/31 #
Feature:
- Add
cursor
to IconButton. - Add the following property to
IconButton
:size
,minSize
,minimumSize
maxSize
,maximumSize
minWidth
,minimumWidth
minHeight
,minimumHeight
maxWidth
,maximumWidth
maxHeight
,maximumHeight
- Boolean method on
NikuTextField
now has default value oftrue
.
Breaking Change:
- Rename
border
tob
andsetBorder
toborder
. - Change
obscureTextFormField
toobscureText
on NikuTextField. - Add
asPassword
on NikuTextField. - Remove
disabledSmartDashes
anddisabledSmartQuotes
. enableSmartQuotes
andenableSmartDashes
now accept option boolean default as true.- Change from
inputDecorationEnable
toenableInputDecoration
. - Change from
...textFormField
to...text
in NikuTextField.
Bug fix:
- Fix Visual Density in NikuButton.
- Setting multiple border variant not working
[1.0.0-alpha.2] - 2021/3/28 #
Breaking Change:
- Swap arguments of animated
Change:
- Remove Nested instance from base property
- Add default value of
true
toabsortPointer
andignorePointer
[1.0.0-alpha.1] - 2021/3/25 #
Bug Fix:
- add Key
[1.0.0-alpha.0] - 2021/3/24 #
Feature:
- Remove
.build()
and.style()
- Niku Internal is now mutating property instead of stacking
- Add
.asNiku
on component instead of using Niku Component - Match
NikuButton
to idiomatic Dart - Add
TextStyle
to TextButton - Every Niku Component now support margin property
Breaking Change:
- Every Niku Component now extend
NikuCore
which extendsStatelessWidget
- Variant method
NikuButton
is removed.icon
toNikuButton.icon
.text
toNikuButton.text
.elevated
toNikuButton.elevated
.elevatedIcon
toNikuButton.elevatedIcon
.outlined
toNikuButton.outlined
.outlinedIcon
toNikuButton.outlinedIcon
Change:
- Remove usage of
this.
except for constructor - Every margin property is moved to
NikuCore
- Build is now using
internalBuild
- Remove container if margin is not presented
Bug fix:
- Foreground on text change background instead
- Fix margin not mistakenly setting on padding instead
[0.5.5] - 2021/3/15 #
Feature:
- Add
animatedBuilder
,animated
forAnimationBuilder
- Add
animatedContainer
forAnimatedContainer
- Add
semantics
forSemantics
Changed:
- Move use of
Container
toDecoratedBox
- The property which affected this changed including:
- boxDecoration
- border
- shadows
- The property which affected this changed including:
- Move use of
Container
toSizedBox
- The property which affected this changed including:
- fullSize
- fullWidth
- fullHeight
- The property which affected this changed including:
[0.5.4] - 2021/3/11 #
Bug fixes:
- Wrong size on
widthPercent
,heightPercent
andsizePercent
- Unable to use
NikuRow
without specifyingcrossAxisAlignment
- Add optional
onTap
to.inkwell
[0.5.3] - 2021/3/11 #
Bug fixes:
- Wrong size on
widthPercent
,heightPercent
andsizePercent
[0.5.2] - 2021/3/11 #
Feature:
- Add
builder
on Niku for composing custom widget. - Add
widthPercent
,heightPercent
andsizePercent
Changed:
bg
andbackgroundColor
ofNiku
are now usingColoredBox
instead ofContainer
Niku
now don't required any constructor Widget
[0.5.1] - 2021/3/7 #
Bug fixes:
- Fix apply overriding written value
[0.5.0] - 2021/3/6 #
Breaking Change:
- Deprecated:
- FlatButton
- RaisedButton
- ElevatedButton
- Move
button.dart
tooldButton.dart
- Move
NikuButton
tobutton.dart
- Importing
package:niku/niku.dart
won't importoldButton.dart
- Only support Flutter 2.0.0 or newer
Feature:
- Add
NikuButton
for new building new universal Button including- TextButton
- TextButton.icon
- ElevatedButton
- ElevatedButton.icon
- OutlinedButton
- OutlinedButton.icon
Documentation
- Add code highlight to widget example usage
[0.4.0] - 2021/3/4 #
Feature:
- Add support for Sound Null Safety of Flutter 2
- Only support Flutter 2.0.0 or newer
Refactor:
- Constructor to use
this
as parameter - Remove
overflow
from stack as it's deprecated
Documentation:
- Fix Null Coalesce
- Fix
borderColor
,borderStyle
from crashing on outlineButton
[0.3.2] - 2021/2/25 #
Documentation:
- Fix Null Coalesce
- Fix
borderColor
,borderStyle
from crashing on outlineButton
[0.3.1] - 2021/2/25 #
Documentation:
- Fix wrong spelling of
disabled
on outlineButton - Fix
setBorder
ofoutlineButton
from crashing
[0.3.0] - 2021/2/22 #
Feature:
- Add support for:
- NikuStack
- Niku extension for
IconButton
- Niku extension for
- NikuStack
- Add more property to Base Widget
- Backdrop filter
- Positioned
- singleChildScrollView / scrollable
- flexible / flex
- Add group import
- Add extension Widget
- Add
.niku()
extension for widget
- Add
Documentation:
-
Add property documentation
-
Correcting wrong spelling
-
Bug fixes:
- Fixes border not rendering children
- Mark children constructor in Row as required
[0.2.0] - 2021/2/21 #
Feature:
- Add support for:
- NikuIconButton
- Niku extension for
IconButton
- Niku extension for
- NikuIconButton
- Add new property to
Niku (base)
:on
- Event listenermaterial
- Add [Material] to WidgetinkWell
- Add [InkWell] to Widgetborder
- Decorate with border using [Border]
- Add group for
flatButton
,raisedButton
,outlineButton
andflatButton
aspackage:niku/widget/button
Documentation:
-
Restructure documentation
-
Bug fixes:
- Wrong spelling of documentation in several place
- Prevent
toolbarOptions
from crashing if not specified all by adding default value
[0.1.2] - 2021/2/21 #
Bug fixes:
- Fix require padding for
NikuFlatButton
,NikuOutlineButton
andNikuRaisedButton
[0.1.1] - 2021/2/21 #
Bug fixes:
README.md
image not showing banner.
[0.1.0] - 2021/2/21 #
Initialize project
Add support for
- Niku
- Niku base for styling widget
- NikuText
- Niku extension for
Text
- Niku extension for
- Column
- Niku extension for
Row
- Niku extension for
- Row
- Niku extension for
Column
- Niku extension for
- NikuTextField
- Niku extension for
TextFormField
- Niku extension for
- NikuFlatButton
- Niku extension for
FlatButton
- Niku extension for
- NikuRaisedButton
- Niku extension for
RaisedButton
- Niku extension for
- NikuOutlineButton
- Niku extension for
OutlineButton
- Niku extension for