playbook_ui 10.25.1 → 10.26.0.pre.alpha.display1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (48) hide show
  1. checksums.yaml +4 -4
  2. data/app/pb_kits/playbook/data/menu.yml +1 -0
  3. data/app/pb_kits/playbook/index.js +2 -1
  4. data/app/pb_kits/playbook/pb_avatar/_avatar.tsx +3 -3
  5. data/app/pb_kits/playbook/pb_body/_body.tsx +8 -8
  6. data/app/pb_kits/playbook/pb_caption/{_caption.jsx → _caption.tsx} +7 -8
  7. data/app/pb_kits/playbook/pb_card/_card.jsx +3 -1
  8. data/app/pb_kits/playbook/pb_card/_card_mixin.scss +1 -0
  9. data/app/pb_kits/playbook/pb_dashboard/pbChartsDarkTheme.js +37 -0
  10. data/app/pb_kits/playbook/pb_dashboard/pbChartsLightTheme.js +37 -0
  11. data/app/pb_kits/playbook/pb_form_pill/_form_pill.jsx +1 -1
  12. data/app/pb_kits/playbook/pb_image/_image.tsx +1 -1
  13. data/app/pb_kits/playbook/pb_kit/dateTime.js +1 -2
  14. data/app/pb_kits/playbook/pb_pill/_pill.jsx +1 -1
  15. data/app/pb_kits/playbook/pb_title/{_title.jsx → _title.tsx} +10 -12
  16. data/app/pb_kits/playbook/pb_title/title.test.js +2 -2
  17. data/app/pb_kits/playbook/pb_treemap_chart/_treemap_chart.jsx +79 -0
  18. data/app/pb_kits/playbook/pb_treemap_chart/docs/_description.md +5 -0
  19. data/app/pb_kits/playbook/pb_treemap_chart/docs/_treemap_chart_colors.html.erb +37 -0
  20. data/app/pb_kits/playbook/pb_treemap_chart/docs/_treemap_chart_colors.jsx +48 -0
  21. data/app/pb_kits/playbook/pb_treemap_chart/docs/_treemap_chart_colors.md +2 -0
  22. data/app/pb_kits/playbook/pb_treemap_chart/docs/_treemap_chart_default.html.erb +37 -0
  23. data/app/pb_kits/playbook/pb_treemap_chart/docs/_treemap_chart_default.jsx +47 -0
  24. data/app/pb_kits/playbook/pb_treemap_chart/docs/_treemap_chart_default.md +3 -0
  25. data/app/pb_kits/playbook/pb_treemap_chart/docs/_treemap_chart_drillable.html.erb +79 -0
  26. data/app/pb_kits/playbook/pb_treemap_chart/docs/_treemap_chart_drillable.jsx +90 -0
  27. data/app/pb_kits/playbook/pb_treemap_chart/docs/_treemap_chart_drillable.md +1 -0
  28. data/app/pb_kits/playbook/pb_treemap_chart/docs/_treemap_chart_grouped_data.html.erb +54 -0
  29. data/app/pb_kits/playbook/pb_treemap_chart/docs/_treemap_chart_grouped_data.jsx +65 -0
  30. data/app/pb_kits/playbook/pb_treemap_chart/docs/_treemap_chart_grouped_data.md +3 -0
  31. data/app/pb_kits/playbook/pb_treemap_chart/docs/_treemap_chart_tooltip.html.erb +37 -0
  32. data/app/pb_kits/playbook/pb_treemap_chart/docs/_treemap_chart_tooltip.jsx +48 -0
  33. data/app/pb_kits/playbook/pb_treemap_chart/docs/_treemap_chart_tooltip.md +3 -0
  34. data/app/pb_kits/playbook/pb_treemap_chart/docs/example.yml +15 -0
  35. data/app/pb_kits/playbook/pb_treemap_chart/docs/index.js +5 -0
  36. data/app/pb_kits/playbook/pb_treemap_chart/treemap_chart.html.erb +1 -0
  37. data/app/pb_kits/playbook/pb_treemap_chart/treemap_chart.rb +43 -0
  38. data/app/pb_kits/playbook/playbook-doc.js +2 -0
  39. data/app/pb_kits/playbook/playbook-rails-react-bindings.js +2 -0
  40. data/app/pb_kits/playbook/plugins/pb_chart.js +34 -0
  41. data/app/pb_kits/playbook/tokens/_display.scss +13 -0
  42. data/app/pb_kits/playbook/tokens/_screen_sizes.scss +21 -5
  43. data/app/pb_kits/playbook/utilities/_display.scss +60 -2
  44. data/app/pb_kits/playbook/utilities/globalProps.ts +31 -16
  45. data/dist/reset.css +60 -1
  46. data/lib/playbook/display.rb +21 -7
  47. data/lib/playbook/version.rb +1 -1
  48. metadata +29 -7
@@ -0,0 +1,79 @@
1
+ <% data = [
2
+ {
3
+ name: "Evergreen",
4
+ id: "Evergreen",
5
+ color: "#0056CF",
6
+ }, {
7
+ name: "Pine",
8
+ id: "Pine",
9
+ parent: "Evergreen",
10
+ value: 300,
11
+ color: "#477BC4",
12
+ }, {
13
+ name: "Ponderosa Pine",
14
+ parent: "Pine",
15
+ value: 50,
16
+ }, {
17
+ name: "Scots Pine",
18
+ parent: "Pine",
19
+ value: 150,
20
+ }, {
21
+ name: "White Pine",
22
+ parent: "Pine",
23
+ value: 100,
24
+ }, {
25
+ name: "Douglas Fir",
26
+ parent: "Evergreen",
27
+ value: 150,
28
+ }, {
29
+ name: "Juniper",
30
+ parent: "Evergreen",
31
+ value: 80,
32
+ }, {
33
+ name: "Hemlock",
34
+ parent: "Evergreen",
35
+ value: 30,
36
+ }, {
37
+ name: "Deciduous",
38
+ id: "Deciduous",
39
+ color: "#F9BB00",
40
+ }, {
41
+ name: "Oak",
42
+ parent: "Deciduous",
43
+ value: 80,
44
+ }, {
45
+ name: "Maple",
46
+ id: "Maple",
47
+ parent: "Deciduous",
48
+ value: 180,
49
+ color: "#F7CE52",
50
+ }, {
51
+ name: "Red Maple",
52
+ parent: "Maple",
53
+ value: 80,
54
+ }, {
55
+ name: "Sugar Maple",
56
+ parent: "Maple",
57
+ value: 100,
58
+ }, {
59
+ name: "Beech",
60
+ parent: "Deciduous",
61
+ value: 50,
62
+ }, {
63
+ name: "Willow",
64
+ parent: "Deciduous",
65
+ value: 100,
66
+ }, {
67
+ name: "Juniper",
68
+ parent: "Deciduous",
69
+ value: 90,
70
+ },
71
+ ] %>
72
+
73
+ <%= pb_rails("treemap_chart", props: {
74
+ chart_data: data,
75
+ drillable: true,
76
+ grouped: true,
77
+ id: "treemap-drillable",
78
+ title: "Drillable Grouped Tree Species",
79
+ }) %>
@@ -0,0 +1,90 @@
1
+ import React from 'react'
2
+
3
+ import TreemapChart from '../_treemap_chart'
4
+
5
+ const chartData = [
6
+ {
7
+ name: "Evergreen",
8
+ id: "Evergreen",
9
+ color: "#0056CF",
10
+ }, {
11
+ name: "Pine",
12
+ id: "Pine",
13
+ parent: "Evergreen",
14
+ value: 300,
15
+ color: "#477BC4",
16
+ }, {
17
+ name: "Ponderosa Pine",
18
+ parent: "Pine",
19
+ value: 50,
20
+ }, {
21
+ name: "Scots Pine",
22
+ parent: "Pine",
23
+ value: 150,
24
+ }, {
25
+ name: "White Pine",
26
+ parent: "Pine",
27
+ value: 100,
28
+ }, {
29
+ name: "Douglas Fir",
30
+ parent: "Evergreen",
31
+ value: 150,
32
+ }, {
33
+ name: "Juniper",
34
+ parent: "Evergreen",
35
+ value: 80,
36
+ }, {
37
+ name: "Hemlock",
38
+ parent: "Evergreen",
39
+ value: 30,
40
+ }, {
41
+ name: "Deciduous",
42
+ id: "Deciduous",
43
+ color: "#F9BB00",
44
+ }, {
45
+ name: "Oak",
46
+ parent: "Deciduous",
47
+ value: 80,
48
+ }, {
49
+ name: "Maple",
50
+ id: "Maple",
51
+ parent: "Deciduous",
52
+ value: 180,
53
+ color: "#F7CE52",
54
+ }, {
55
+ name: "Red Maple",
56
+ parent: "Maple",
57
+ value: 80,
58
+ }, {
59
+ name: "Sugar Maple",
60
+ parent: "Maple",
61
+ value: 100,
62
+ }, {
63
+ name: "Beech",
64
+ parent: "Deciduous",
65
+ value: 50,
66
+ }, {
67
+ name: "Willow",
68
+ parent: "Deciduous",
69
+ value: 100,
70
+ }, {
71
+ name: "Juniper",
72
+ parent: "Deciduous",
73
+ value: 90,
74
+ },
75
+ ]
76
+
77
+ const TreemapChartDrillable = (props) => (
78
+ <div>
79
+ <TreemapChart
80
+ chartData={chartData}
81
+ drillable
82
+ grouped
83
+ id="treemap-drillable"
84
+ title="Drillable Grouped Tree Species"
85
+ {...props}
86
+ />
87
+ </div>
88
+ )
89
+
90
+ export default TreemapChartDrillable
@@ -0,0 +1 @@
1
+ Adding the `drillable` prop allows the tree to be traversed up and down by clicking into each box. Relationships are established through the `chartData`, detailed in the <a href="#treemap-grouped-data">Grouped Data section above</a>.
@@ -0,0 +1,54 @@
1
+ <% data = [
2
+ {
3
+ name: 'Meat',
4
+ id: 'Meat',
5
+ color: "#0056CF",
6
+ }, {
7
+ name: 'Pepperoni',
8
+ parent: 'Meat',
9
+ value: 250,
10
+ }, {
11
+ name: 'Meatball',
12
+ parent: 'Meat',
13
+ value: 400,
14
+ }, {
15
+ name: "Anchovy",
16
+ parent: 'Meat',
17
+ value: 40,
18
+ }, {
19
+ name: 'Vegetarian',
20
+ id: 'Vegetarian',
21
+ color: "#F9BB00",
22
+ }, {
23
+ name: 'Onions',
24
+ parent: 'Vegetarian',
25
+ value: 300,
26
+ }, {
27
+ name: 'Pineapple',
28
+ parent: 'Vegetarian',
29
+ value: 90,
30
+ }, {
31
+ name: "Peppers",
32
+ parent: 'Vegetarian',
33
+ value: 80,
34
+ }, {
35
+ name: "Specialty",
36
+ id: "Specialty",
37
+ color: "#9E64E9",
38
+ },{
39
+ name: "Buffalo Chicken",
40
+ parent: "Specialty",
41
+ value: 400,
42
+ }, {
43
+ name: "Supreme",
44
+ parent: "Specialty",
45
+ value: 150,
46
+ }
47
+ ] %>
48
+
49
+ <%= pb_rails("treemap_chart", props: {
50
+ chart_data: data,
51
+ grouped: true,
52
+ id: "treemap-grouped",
53
+ title: "Grouped Toppings",
54
+ }) %>
@@ -0,0 +1,65 @@
1
+ import React from 'react'
2
+
3
+ import TreemapChart from '../_treemap_chart'
4
+
5
+ const chartData = [
6
+ {
7
+ name: 'Meat',
8
+ id: 'Meat',
9
+ color: "#0056CF",
10
+ }, {
11
+ name: 'Pepperoni',
12
+ parent: 'Meat',
13
+ value: 250,
14
+ }, {
15
+ name: 'Meatball',
16
+ parent: 'Meat',
17
+ value: 400,
18
+ }, {
19
+ name: "Anchovy",
20
+ parent: 'Meat',
21
+ value: 40,
22
+ }, {
23
+ name: 'Vegetarian',
24
+ id: 'Vegetarian',
25
+ color: "#F9BB00",
26
+ }, {
27
+ name: 'Onions',
28
+ parent: 'Vegetarian',
29
+ value: 300,
30
+ }, {
31
+ name: 'Pineapple',
32
+ parent: 'Vegetarian',
33
+ value: 90,
34
+ }, {
35
+ name: "Peppers",
36
+ parent: 'Vegetarian',
37
+ value: 80,
38
+ }, {
39
+ name: "Specialty",
40
+ id: "Specialty",
41
+ color: "#9E64E9",
42
+ },{
43
+ name: "Buffalo Chicken",
44
+ parent: "Specialty",
45
+ value: 400,
46
+ }, {
47
+ name: "Supreme",
48
+ parent: "Specialty",
49
+ value: 150,
50
+ }
51
+ ]
52
+
53
+ const TreemapChartGroupedData = (props) => (
54
+ <div>
55
+ <TreemapChart
56
+ chartData={chartData}
57
+ grouped
58
+ id="treemap-grouped-data"
59
+ title="Grouped Toppings"
60
+ {...props}
61
+ />
62
+ </div>
63
+ )
64
+
65
+ export default TreemapChartGroupedData
@@ -0,0 +1,3 @@
1
+ Data can be grouped into distinct segments by specifying the relationship in the `chartData`. For a point to be a parent, it needs an `id` of type `string` included in its object. Any other data points may then reference that `id` as their `parent` value to establish the tree structure.
2
+
3
+ Parents can also be passed a custom color to be applied to all of its child points.
@@ -0,0 +1,37 @@
1
+ <% data = [
2
+ {
3
+ name: "Pepperoni",
4
+ parent: "Toppings",
5
+ value: 600,
6
+ }, {
7
+ name: "Cheese",
8
+ parent: "Toppings",
9
+ value: 510,
10
+ }, {
11
+ name: "Mushroom",
12
+ parent: "Toppings",
13
+ value: 330,
14
+ },{
15
+ name: "Onions",
16
+ parent: "Toppings",
17
+ value: 250,
18
+ }, {
19
+ name: "Olives",
20
+ parent: "Toppings",
21
+ value: 204,
22
+ }, {
23
+ name: "Pineapple",
24
+ parent: "Toppings",
25
+ value: 90,
26
+ }, {
27
+ name: "Pizza Toppings",
28
+ id: "Toppings",
29
+ },
30
+ ] %>
31
+
32
+ <%= pb_rails("treemap_chart", props: {
33
+ chart_data: data,
34
+ id: "treemap-tooltip",
35
+ title: "Favored Pizza Toppings",
36
+ tooltip_html: "<p>Custom tooltip for {point.name} <br/>with value: {point.value}</p>",
37
+ }) %>
@@ -0,0 +1,48 @@
1
+ import React from 'react'
2
+
3
+ import TreemapChart from '../_treemap_chart'
4
+
5
+ const chartData = [
6
+ {
7
+ name: "Pepperoni",
8
+ parent: "Toppings",
9
+ value: 600,
10
+ }, {
11
+ name: "Cheese",
12
+ parent: "Toppings",
13
+ value: 510,
14
+ }, {
15
+ name: "Mushroom",
16
+ parent: "Toppings",
17
+ value: 330,
18
+ },{
19
+ name: "Onions",
20
+ parent: "Toppings",
21
+ value: 250,
22
+ }, {
23
+ name: "Olives",
24
+ parent: "Toppings",
25
+ value: 204,
26
+ }, {
27
+ name: "Pineapple",
28
+ parent: "Toppings",
29
+ value: 90,
30
+ }, {
31
+ name: "Pizza Toppings",
32
+ id: "Toppings",
33
+ },
34
+ ]
35
+
36
+ const TreemapChartTooltip = (props) => (
37
+ <div>
38
+ <TreemapChart
39
+ chartData={chartData}
40
+ id="treemap-tooltip"
41
+ title="Favored Pizza Toppings"
42
+ tooltipHtml={"<p>Custom tooltip for {point.name} <br/>with value: {point.value}</p>"}
43
+ {...props}
44
+ />
45
+ </div>
46
+ )
47
+
48
+ export default TreemapChartTooltip
@@ -0,0 +1,3 @@
1
+ A custom tooltip format can be specified. The desired format can be passed as a `string` of custom HTML to the `tooltipHtml` prop.
2
+
3
+ `{point.name}` and `{point.value}` are useful values that can be referenced for each point in the graph.
@@ -0,0 +1,15 @@
1
+ examples:
2
+
3
+ rails:
4
+ - treemap_chart_default: Default
5
+ - treemap_chart_grouped_data: Grouped Data
6
+ - treemap_chart_drillable: Drillable
7
+ - treemap_chart_colors: Color Overrides
8
+ - treemap_chart_tooltip: Tooltip Customization
9
+
10
+ react:
11
+ - treemap_chart_default: Default
12
+ - treemap_chart_grouped_data: Grouped Data
13
+ - treemap_chart_drillable: Drillable
14
+ - treemap_chart_colors: Color Overrides
15
+ - treemap_chart_tooltip: Tooltip Customization
@@ -0,0 +1,5 @@
1
+ export { default as TreemapChartDefault } from './_treemap_chart_default.jsx'
2
+ export { default as TreemapChartGroupedData } from './_treemap_chart_grouped_data.jsx'
3
+ export { default as TreemapChartDrillable } from './_treemap_chart_drillable.jsx'
4
+ export { default as TreemapChartColors } from './_treemap_chart_colors.jsx'
5
+ export { default as TreemapChartTooltip } from './_treemap_chart_tooltip.jsx'
@@ -0,0 +1 @@
1
+ <%= react_component('TreemapChart', object.chart_options) %>
@@ -0,0 +1,43 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Playbook
4
+ module PbTreemapChart
5
+ class TreemapChart < Playbook::KitBase
6
+ prop :chart_data, type: Playbook::Props::Array,
7
+ default: []
8
+ prop :colors, type: Playbook::Props::Array,
9
+ default: []
10
+ prop :drillable, type: Playbook::Props::Boolean, default: false
11
+ prop :grouped, type: Playbook::Props::Boolean, default: false
12
+ prop :height
13
+ prop :title, default: ""
14
+ prop :tooltip_html, default: '<span style="font-weight: bold; color:{point.color};">&#9679; </span>
15
+ {point.name}: ' + '<b>{point.value}
16
+ </b>'
17
+
18
+ def chart_type
19
+ "treemap"
20
+ end
21
+
22
+ def chart_options
23
+ {
24
+ chartData: chart_data,
25
+ className: classname,
26
+ colors: colors,
27
+ dark: dark ? "dark" : "",
28
+ drillable: drillable,
29
+ grouped: grouped,
30
+ height: height,
31
+ id: id,
32
+ title: title,
33
+ tooltipHtml: tooltip_html,
34
+ type: chart_type,
35
+ }
36
+ end
37
+
38
+ def classname
39
+ generate_classname("pb_treemap_chart")
40
+ end
41
+ end
42
+ end
43
+ end
@@ -91,6 +91,7 @@ import * as Title from 'pb_title/docs'
91
91
  import * as TitleCount from 'pb_title_count/docs'
92
92
  import * as TitleDetail from 'pb_title_detail/docs'
93
93
  import * as Toggle from 'pb_toggle/docs'
94
+ import * as TreemapChart from 'pb_treemap_chart/docs'
94
95
  import * as Typeahead from 'pb_typeahead/docs'
95
96
  import * as User from 'pb_user/docs'
96
97
  import * as UserBadge from 'pb_user_badge/docs'
@@ -185,6 +186,7 @@ WebpackerReact.setup({
185
186
  ...TitleCount,
186
187
  ...TitleDetail,
187
188
  ...Toggle,
189
+ ...TreemapChart,
188
190
  ...Typeahead,
189
191
  ...User,
190
192
  ...UserBadge,
@@ -13,6 +13,7 @@ import Legend from './pb_legend/_legend'
13
13
  import LineGraph from './pb_line_graph/_line_graph'
14
14
  import Passphrase from './pb_passphrase/_passphrase'
15
15
  import RichTextEditor from './pb_rich_text_editor/_rich_text_editor'
16
+ import TreemapChart from './pb_treemap_chart/_treemap_chart'
16
17
  import Typeahead from './pb_typeahead/_typeahead'
17
18
 
18
19
  WebpackerReact.registerComponents({
@@ -26,6 +27,7 @@ WebpackerReact.registerComponents({
26
27
  LineGraph,
27
28
  Passphrase,
28
29
  RichTextEditor,
30
+ TreemapChart,
29
31
  Typeahead,
30
32
  })
31
33
 
@@ -7,6 +7,7 @@ import colors from '../tokens/exports/_colors.scss'
7
7
  import pie from 'highcharts/modules/variable-pie'
8
8
  import highchartsMore from 'highcharts/highcharts-more'
9
9
  import solidGauge from 'highcharts/modules/solid-gauge'
10
+ import treemap from 'highcharts/modules/treemap'
10
11
 
11
12
  pie(Highcharts)
12
13
 
@@ -63,6 +64,8 @@ class pbChart {
63
64
  this.setupPieChart(options)
64
65
  } else if (this.options.type == 'gauge') {
65
66
  this.setupGauge(options)
67
+ } else if (this.options.type == 'treemap') {
68
+ this.setupTreemap(options)
66
69
  } else {
67
70
  this.setupChart(options)
68
71
  }
@@ -191,6 +194,37 @@ class pbChart {
191
194
  })
192
195
  }
193
196
 
197
+ setupTreemap(options) {
198
+ treemap(Highcharts)
199
+ this.setupTheme()
200
+ options.dark ? Highcharts.setOptions(highchartsDarkTheme) : Highcharts.setOptions(highchartsTheme)
201
+
202
+ Highcharts.chart(this.defaults.id, {
203
+ title: {
204
+ text: this.defaults.title,
205
+ },
206
+ chart: {
207
+ height: this.defaults.height,
208
+ type: this.defaults.type,
209
+ },
210
+ credits: false,
211
+ series: [{
212
+ data: this.defaults.chartData,
213
+ }],
214
+ plotOptions: {
215
+ treemap: {
216
+ allowTraversingTree: this.defaults.drillable,
217
+ colorByPoint: !this.defaults.grouped,
218
+ colors: options.colors !== undefined && options.colors.length > 0 ? mapColors(options.colors) : highchartsTheme.colors,
219
+ },
220
+ },
221
+ tooltip: {
222
+ pointFormat: this.defaults.tooltipHtml,
223
+ useHTML: true,
224
+ },
225
+ })
226
+ }
227
+
194
228
  setupChart(options) {
195
229
  this.setupTheme()
196
230
  const configOptions = {
@@ -0,0 +1,13 @@
1
+ $display_inline: inline;
2
+ $display_block: block;
3
+ $display_inline_block: inline-block;
4
+ $display_flex: flex;
5
+ $display_none: none;
6
+ $display_inline_flex: inline-flex;
7
+ $displays: (
8
+ display_none: $display_none,
9
+ display_flex: $display_flex,
10
+ display_inline: $display_inline,
11
+ display_inline_block: $display_inline_block,
12
+ display_block: $display_block
13
+ );
@@ -10,11 +10,11 @@ $screen-xl-min: 1200px;
10
10
  $screen-xl-max: $screen-xl-min - 1;
11
11
 
12
12
  $breakpoints: (
13
- xs: $screen-xs-min,
14
- sm: $screen-sm-min,
15
- md: $screen-md-min,
16
- lg: $screen-lg-min,
17
- xl: $screen-xl-min
13
+ xs: $screen-xs-min, // $screen-xs-min
14
+ sm: $screen-sm-min, // $screen-xs-min + 1 thru $screen-md-min
15
+ md: $screen-md-min, // $screen-md-min + 1 thru $screen-md-lg
16
+ lg: $screen-lg-min, // $screen-lg-min + 1 thru $screen-md-xl
17
+ xl: $screen-xl-min // $screen-xl-min + 1
18
18
  );
19
19
 
20
20
 
@@ -28,3 +28,19 @@ $breakpoints: (
28
28
  @content;
29
29
  }
30
30
  }
31
+
32
+ @mixin break_on($min: null, $max: null) {
33
+ @if not $max {
34
+ @media screen and (min-width: $min) {
35
+ @content;
36
+ }
37
+ } @else if not $min {
38
+ @media screen and (max-width: $max) {
39
+ @content;
40
+ }
41
+ } @else {
42
+ @media screen and (min-width: $min) and (max-width: $max) {
43
+ @content;
44
+ }
45
+ }
46
+ }
@@ -1,3 +1,5 @@
1
+ @import "../tokens/display";
2
+
1
3
  .display_block {
2
4
  display: block;
3
5
  }
@@ -18,6 +20,62 @@
18
20
  display: inline-flex;
19
21
  }
20
22
 
21
- .display_hidden {
23
+ .display_none {
22
24
  display: none;
23
- }
25
+ }
26
+
27
+ $screen-xs-min: 575px;
28
+ $screen-xs-max: $screen-xs-min - 1;
29
+ $screen-sm-min: 576px;
30
+ $screen-sm-max: $screen-sm-min - 1;
31
+ $screen-md-min: 768px;
32
+ $screen-md-max: $screen-md-min - 1;
33
+ $screen-lg-min: 992px;
34
+ $screen-lg-max: $screen-lg-min - 1;
35
+ $screen-xl-min: 1200px;
36
+ $screen-xl-max: $screen-xl-min - 1;
37
+
38
+ $breakpoints: (
39
+ xs: (
40
+ // min: 0,
41
+ max: $screen-xs-min // 575
42
+ ),
43
+ sm: (
44
+ min: $screen-sm-min, // 576
45
+ max: $screen-md-max // 767
46
+ ),
47
+ md: (
48
+ min: $screen-md-min, // 768
49
+ max: $screen-lg-max // 991
50
+ ),
51
+ lg: (
52
+ min: $screen-lg-min, // 992
53
+ max: $screen-xl-max // 1199
54
+ ),
55
+ xl: (
56
+ min: $screen-xl-min, //1200
57
+ // max: 0
58
+ )
59
+ );
60
+
61
+
62
+ $display_values: (
63
+ none: $display_none,
64
+ flex: $display_flex,
65
+ inline: $display_inline,
66
+ inline_block: $display_inline_block,
67
+ inline_flex: $display_inline_flex,
68
+ block: $display_block
69
+ );
70
+
71
+ @each $size, $size_value in $breakpoints {
72
+ @each $display, $display_value in $display_values {
73
+ $min_size: map-get($size_value, "min");
74
+ $max_size: map-get($size_value, "max");
75
+ .display_#{$size}_#{$display} {
76
+ @include break_on($min_size, $max_size) {
77
+ display: #{$display_value} !important;
78
+ }
79
+ }
80
+ }
81
+ }