Skip to content

Commit

Permalink
feat: [MDS-412] Create LinearProgress and LinearLoader widgets (#60)
Browse files Browse the repository at this point in the history
  • Loading branch information
Kypsis committed Feb 27, 2023
1 parent f65192c commit 000de10
Show file tree
Hide file tree
Showing 31 changed files with 1,449 additions and 281 deletions.
70 changes: 70 additions & 0 deletions example/lib/src/storybook/stories/circular_loader.dart
Original file line number Diff line number Diff line change
@@ -0,0 +1,70 @@
import 'package:example/src/storybook/common/options.dart';
import 'package:flutter/material.dart';
import 'package:moon_design/moon_design.dart';
import 'package:storybook_flutter/storybook_flutter.dart';

class CircularLoaderStory extends Story {
CircularLoaderStory()
: super(
name: "Loader/CircularLoader",
builder: (context) {
final loaderSizesKnob = context.knobs.options(
label: "MoonCircularLoaderSize",
description: "CircularLoader size variants.",
initial: MoonCircularLoaderSize.md,
options: const [
Option(label: "x2s", value: MoonCircularLoaderSize.x2s),
Option(label: "xs", value: MoonCircularLoaderSize.xs),
Option(label: "sm", value: MoonCircularLoaderSize.sm),
Option(label: "md", value: MoonCircularLoaderSize.md),
Option(label: "lg", value: MoonCircularLoaderSize.lg),
],
);

final loaderColorKnob = context.knobs.options(
label: "color",
description: "MoonColors variants for CircularLoader color.",
initial: 1, // hit
options: colorOptions,
);

final color = colorTable(context)[loaderColorKnob];

final loaderBackgroundColorKnob = context.knobs.options(
label: "backgroundColor",
description: "MoonColors variants for CircularLoader background.",
initial: 39, // none
options: colorOptions,
);

final backgroundColor = colorTable(context)[loaderBackgroundColorKnob];

final loaderStrokeCapKnob = context.knobs.options(
label: "strokeCap",
description: "CircularLoader stroke cap.",
initial: StrokeCap.round,
options: const [
Option(label: "round", value: StrokeCap.round),
Option(label: "square", value: StrokeCap.square),
Option(label: "butt", value: StrokeCap.butt),
],
);

return Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: [
const SizedBox(height: 64),
MoonCircularLoader(
color: color,
backgroundColor: backgroundColor,
loaderSize: loaderSizesKnob,
strokeCap: loaderStrokeCapKnob,
),
const SizedBox(height: 64),
],
),
);
},
);
}
14 changes: 13 additions & 1 deletion example/lib/src/storybook/stories/circular_progress.dart
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ import 'package:storybook_flutter/storybook_flutter.dart';
class CircularProgressStory extends Story {
CircularProgressStory()
: super(
name: "CircularProgress",
name: "Progress/CircularProgress",
builder: (context) {
final circularProgressSizesKnob = context.knobs.options(
label: "MoonCircularProgressSize",
Expand Down Expand Up @@ -39,6 +39,17 @@ class CircularProgressStory extends Story {

final backgroundColor = colorTable(context)[circularProgressBackgroundColorKnob];

final circularProgressStrokeCapKnob = context.knobs.options(
label: "strokeCap",
description: "CircularProgress stroke cap.",
initial: StrokeCap.round,
options: const [
Option(label: "round", value: StrokeCap.round),
Option(label: "square", value: StrokeCap.square),
Option(label: "butt", value: StrokeCap.butt),
],
);

final circularProgressValueKnob = context.knobs.slider(
label: "value",
description: "CircularProgress value.",
Expand All @@ -55,6 +66,7 @@ class CircularProgressStory extends Story {
color: color,
backgroundColor: backgroundColor,
circularProgressSize: circularProgressSizesKnob,
strokeCap: circularProgressStrokeCapKnob,
),
const SizedBox(height: 64),
],
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,27 +3,27 @@ import 'package:flutter/material.dart';
import 'package:moon_design/moon_design.dart';
import 'package:storybook_flutter/storybook_flutter.dart';

class LoaderStory extends Story {
LoaderStory()
class LinearLoaderStory extends Story {
LinearLoaderStory()
: super(
name: "Loader",
name: "Loader/LinearLoader",
builder: (context) {
final loaderSizesKnob = context.knobs.options(
label: "MoonLoaderSize",
description: "Loader size variants.",
initial: MoonLoaderSize.md,
label: "MoonLinearLoaderSize",
description: "LinearLoader size variants.",
initial: MoonLinearLoaderSize.x4s,
options: const [
Option(label: "x2s", value: MoonLoaderSize.x2s),
Option(label: "xs", value: MoonLoaderSize.xs),
Option(label: "sm", value: MoonLoaderSize.sm),
Option(label: "md", value: MoonLoaderSize.md),
Option(label: "lg", value: MoonLoaderSize.lg),
Option(label: "x6s", value: MoonLinearLoaderSize.x6s),
Option(label: "x5s", value: MoonLinearLoaderSize.x5s),
Option(label: "x4s", value: MoonLinearLoaderSize.x4s),
Option(label: "x3s", value: MoonLinearLoaderSize.x3s),
Option(label: "x2s", value: MoonLinearLoaderSize.x2s),
],
);

final loaderColorKnob = context.knobs.options(
label: "color",
description: "MoonColors variants for Loader color.",
description: "MoonColors variants for LinearLoader color.",
initial: 1, // hit
options: colorOptions,
);
Expand All @@ -32,22 +32,30 @@ class LoaderStory extends Story {

final loaderBackgroundColorKnob = context.knobs.options(
label: "backgroundColor",
description: "MoonColors variants for Loader background.",
description: "MoonColors variants for LinearLoader background.",
initial: 39, // none
options: colorOptions,
);

final backgroundColor = colorTable(context)[loaderBackgroundColorKnob];

final borderRadiusValueKnob = context.knobs.sliderInt(
label: "bordeRadiusValue",
description: "LinearLoader border radius value.",
initial: 8,
max: 12,
);

return Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: [
const SizedBox(height: 64),
MoonLoader(
MoonLinearLoader(
loaderSize: loaderSizesKnob,
color: color,
backgroundColor: backgroundColor,
loaderSize: loaderSizesKnob,
borderRadiusValue: borderRadiusValueKnob.toDouble(),
),
const SizedBox(height: 64),
],
Expand Down
73 changes: 73 additions & 0 deletions example/lib/src/storybook/stories/linear_progress.dart
Original file line number Diff line number Diff line change
@@ -0,0 +1,73 @@
import 'package:example/src/storybook/common/options.dart';
import 'package:flutter/material.dart';
import 'package:moon_design/moon_design.dart';
import 'package:storybook_flutter/storybook_flutter.dart';

class LinearProgressStory extends Story {
LinearProgressStory()
: super(
name: "Progress/LinearProgress",
builder: (context) {
final loaderSizesKnob = context.knobs.options(
label: "MoonLinearProgressSize",
description: "LinearProgress size variants.",
initial: MoonLinearProgressSize.x4s,
options: const [
Option(label: "x6s", value: MoonLinearProgressSize.x6s),
Option(label: "x5s", value: MoonLinearProgressSize.x5s),
Option(label: "x4s", value: MoonLinearProgressSize.x4s),
Option(label: "x3s", value: MoonLinearProgressSize.x3s),
Option(label: "x2s", value: MoonLinearProgressSize.x2s),
],
);

final loaderColorKnob = context.knobs.options(
label: "color",
description: "MoonColors variants for LinearProgress color.",
initial: 0, // piccolo
options: colorOptions,
);

final color = colorTable(context)[loaderColorKnob];

final loaderBackgroundColorKnob = context.knobs.options(
label: "backgroundColor",
description: "MoonColors variants for LinearProgress background.",
initial: 6, // trunks
options: colorOptions,
);

final backgroundColor = colorTable(context)[loaderBackgroundColorKnob];

final borderRadiusValueKnob = context.knobs.sliderInt(
label: "bordeRadiusValue",
description: "LinearProgress border radius value.",
initial: 8,
max: 12,
);

final linearProgressValueKnob = context.knobs.slider(
label: "value",
description: "LinearProgress value.",
initial: 0.5,
);

return Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: [
const SizedBox(height: 64),
MoonLinearProgress(
value: linearProgressValueKnob,
loaderSize: loaderSizesKnob,
color: color,
backgroundColor: backgroundColor,
borderRadiusValue: borderRadiusValueKnob.toDouble(),
),
const SizedBox(height: 64),
],
),
);
},
);
}
9 changes: 6 additions & 3 deletions example/lib/src/storybook/storybook.dart
Original file line number Diff line number Diff line change
Expand Up @@ -2,13 +2,14 @@ import 'package:example/src/storybook/common/widgets/version.dart';
import 'package:example/src/storybook/stories/avatar.dart';
import 'package:example/src/storybook/stories/button.dart';
import 'package:example/src/storybook/stories/chip.dart';
import 'package:example/src/storybook/stories/circular_loader.dart';
import 'package:example/src/storybook/stories/circular_progress.dart';
import 'package:example/src/storybook/stories/icons.dart';
import 'package:example/src/storybook/stories/loader.dart';
import 'package:example/src/storybook/stories/linear_loader.dart';
import 'package:example/src/storybook/stories/linear_progress.dart';
import 'package:example/src/storybook/stories/tag.dart';
import 'package:example/src/storybook/stories/tooltip.dart';
import 'package:flutter/material.dart';

import 'package:moon_design/moon_design.dart';
import 'package:storybook_flutter/storybook_flutter.dart';

Expand Down Expand Up @@ -65,9 +66,11 @@ class StorybookPage extends StatelessWidget {
AvatarStory(),
ButtonStory(),
ChipStory(),
CircularLoaderStory(),
CircularProgressStory(),
IconsStory(),
LoaderStory(),
LinearLoaderStory(),
LinearProgressStory(),
TagStory(),
TooltipStory(),
],
Expand Down
24 changes: 16 additions & 8 deletions lib/moon_design.dart
Original file line number Diff line number Diff line change
Expand Up @@ -7,16 +7,20 @@ export 'package:moon_design/src/theme/button/button_sizes.dart';
export 'package:moon_design/src/theme/button/button_theme.dart';
export 'package:moon_design/src/theme/chip/chip_sizes.dart';
export 'package:moon_design/src/theme/chip/chip_theme.dart';
export 'package:moon_design/src/theme/circular_progress/circular_progress_sizes.dart';
export 'package:moon_design/src/theme/circular_progress/circular_progress_theme.dart';
export 'package:moon_design/src/theme/colors.dart';
export 'package:moon_design/src/theme/effects/controls_effects.dart';
export 'package:moon_design/src/theme/effects/effects.dart';
export 'package:moon_design/src/theme/effects/focus_effects.dart';
export 'package:moon_design/src/theme/effects/hover_effects.dart';
export 'package:moon_design/src/theme/loader/loader_sizes.dart';
export 'package:moon_design/src/theme/loader/loader_theme.dart';
export 'package:moon_design/src/theme/loaders/circular_loader_sizes.dart';
export 'package:moon_design/src/theme/loaders/circular_loader_theme.dart';
export 'package:moon_design/src/theme/loaders/linear_loader_sizes.dart';
export 'package:moon_design/src/theme/loaders/linear_loader_theme.dart';
export 'package:moon_design/src/theme/opacity.dart';
export 'package:moon_design/src/theme/progress/circular_progress_sizes.dart';
export 'package:moon_design/src/theme/progress/circular_progress_theme.dart';
export 'package:moon_design/src/theme/progress/linear_progress_sizes.dart';
export 'package:moon_design/src/theme/progress/linear_progress_theme.dart';
export 'package:moon_design/src/theme/shadows.dart';
export 'package:moon_design/src/theme/sizes.dart';
export 'package:moon_design/src/theme/theme.dart';
Expand All @@ -30,18 +34,22 @@ export 'package:moon_design/src/utils/measure_size.dart';
export 'package:moon_design/src/utils/widget_surveyor.dart';

export 'package:moon_design/src/widgets/avatar/avatar.dart';
export 'package:moon_design/src/widgets/base_control.dart';
export 'package:moon_design/src/widgets/buttons/button.dart';
export 'package:moon_design/src/widgets/buttons/ghost_button.dart';
export 'package:moon_design/src/widgets/buttons/primary_button.dart';
export 'package:moon_design/src/widgets/buttons/secondary_button.dart';
export 'package:moon_design/src/widgets/buttons/tertiary_button.dart';
export 'package:moon_design/src/widgets/chips/chip.dart';
export 'package:moon_design/src/widgets/chips/ghost_chip.dart';
export 'package:moon_design/src/widgets/circular_progress/circular_progress.dart';
export 'package:moon_design/src/widgets/common/base_control.dart';
export 'package:moon_design/src/widgets/common/icons.dart';
export 'package:moon_design/src/widgets/common/progress_indicators/circular_progress_indicator.dart';
export 'package:moon_design/src/widgets/common/progress_indicators/linear_progress_indicator.dart';
export 'package:moon_design/src/widgets/effects/focus_effect.dart';
export 'package:moon_design/src/widgets/effects/pulse_effect.dart';
export 'package:moon_design/src/widgets/icons.dart';
export 'package:moon_design/src/widgets/loader/loader.dart';
export 'package:moon_design/src/widgets/loader/circular_loader.dart';
export 'package:moon_design/src/widgets/loader/linear_loader.dart';
export 'package:moon_design/src/widgets/progress/circular_progress.dart';
export 'package:moon_design/src/widgets/progress/linear_progress.dart';
export 'package:moon_design/src/widgets/tag/tag.dart';
export 'package:moon_design/src/widgets/tooltip/tooltip.dart';
Loading

0 comments on commit 000de10

Please sign in to comment.