docks_theme_api 1.0.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (237) hide show
  1. checksums.yaml +15 -0
  2. data/.babelrc +4 -0
  3. data/.editorconfig +8 -0
  4. data/.eslintrc +115 -0
  5. data/.gitignore +24 -0
  6. data/.rubocop.yml +20 -0
  7. data/.travis.yml +16 -0
  8. data/Gemfile +4 -0
  9. data/README.md +5 -0
  10. data/Rakefile +3 -0
  11. data/assets/images/icons.svg +63 -0
  12. data/assets/scripts/coffeescript/pattern_library_helpers.coffee +8 -0
  13. data/assets/scripts/javascript/pattern_library_helpers.js +11 -0
  14. data/assets/scripts/pattern_library.js +10380 -0
  15. data/assets/scripts/pattern_library_demo.js +0 -0
  16. data/assets/styles/less/pattern-library-helpers.less +103 -0
  17. data/assets/styles/pattern-library-demo.css +1882 -0
  18. data/assets/styles/pattern-library.css +1882 -0
  19. data/assets/styles/sass/pattern-library-helpers.sass +90 -0
  20. data/assets/styles/scss/pattern-library-helpers.scss +99 -0
  21. data/assets/styles/stylus/pattern-library-helpers.styl +90 -0
  22. data/assets/templates/erb/demo.erb +26 -0
  23. data/assets/templates/erb/layouts/demo.erb +17 -0
  24. data/assets/templates/erb/layouts/pattern.erb +76 -0
  25. data/assets/templates/erb/partials/sidebar.erb +124 -0
  26. data/assets/templates/erb/partials/symbols/class.erb +1 -0
  27. data/assets/templates/erb/partials/symbols/demo.erb +40 -0
  28. data/assets/templates/erb/partials/symbols/factory.erb +70 -0
  29. data/assets/templates/erb/partials/symbols/function.erb +103 -0
  30. data/assets/templates/erb/partials/symbols/mixin.erb +62 -0
  31. data/assets/templates/erb/partials/symbols/variable.erb +59 -0
  32. data/assets/templates/erb/pattern.erb +102 -0
  33. data/assets/templates/haml/demo.haml +14 -0
  34. data/assets/templates/haml/layouts/demo.haml +6 -0
  35. data/assets/templates/haml/layouts/pattern.haml +38 -0
  36. data/assets/templates/haml/partials/sidebar.haml +68 -0
  37. data/assets/templates/haml/partials/symbols/class.haml +1 -0
  38. data/assets/templates/haml/partials/symbols/demo.haml +23 -0
  39. data/assets/templates/haml/partials/symbols/factory.haml +38 -0
  40. data/assets/templates/haml/partials/symbols/function.haml +54 -0
  41. data/assets/templates/haml/partials/symbols/mixin.haml +31 -0
  42. data/assets/templates/haml/partials/symbols/variable.haml +22 -0
  43. data/assets/templates/haml/pattern.haml +54 -0
  44. data/assets/templates/slim/demo.slim +24 -0
  45. data/assets/templates/slim/layouts/demo.slim +5 -0
  46. data/assets/templates/slim/layouts/pattern.slim +48 -0
  47. data/assets/templates/slim/partials/sidebar.slim +112 -0
  48. data/assets/templates/slim/partials/symbols/class.slim +1 -0
  49. data/assets/templates/slim/partials/symbols/demo.slim +30 -0
  50. data/assets/templates/slim/partials/symbols/factory.slim +57 -0
  51. data/assets/templates/slim/partials/symbols/function.slim +81 -0
  52. data/assets/templates/slim/partials/symbols/mixin.slim +45 -0
  53. data/assets/templates/slim/partials/symbols/variable.slim +35 -0
  54. data/assets/templates/slim/pattern.slim +63 -0
  55. data/docks_config.rb +32 -0
  56. data/docks_theme_api.gemspec +37 -0
  57. data/gulpfile.js +88 -0
  58. data/karma.conf.js +6 -0
  59. data/lib/docks_theme_api/components/base_component.rb +99 -0
  60. data/lib/docks_theme_api/components/code_block_component.rb +10 -0
  61. data/lib/docks_theme_api/components/popover_component.rb +15 -0
  62. data/lib/docks_theme_api/components/table_component.rb +34 -0
  63. data/lib/docks_theme_api/components/tablist_component.rb +11 -0
  64. data/lib/docks_theme_api/components.rb +21 -0
  65. data/lib/docks_theme_api/helpers/ui_helper.rb +69 -0
  66. data/lib/docks_theme_api/theme.rb +21 -0
  67. data/lib/docks_theme_api.rb +1 -0
  68. data/package.json +60 -0
  69. data/source/behaviors/filterable/filterable.coffee +353 -0
  70. data/source/behaviors/filterable/filterable.js +0 -0
  71. data/source/behaviors/filterable/filterable.scss +34 -0
  72. data/source/behaviors/filterable/package.json +3 -0
  73. data/source/behaviors/index.js +0 -0
  74. data/source/components/avatar/avatar.erb +20 -0
  75. data/source/components/avatar/avatar.js +142 -0
  76. data/source/components/avatar/avatar.scss +200 -0
  77. data/source/components/avatar/avatar_container.erb +13 -0
  78. data/source/components/avatar/package.json +3 -0
  79. data/source/components/avatar/spec/avatar_spec.js +81 -0
  80. data/source/components/badge/badge.scss +158 -0
  81. data/source/components/button/button.scss +213 -0
  82. data/source/components/card/card.scss +32 -0
  83. data/source/components/code_block/code-block.scss +353 -0
  84. data/source/components/code_block/code_block.erb +95 -0
  85. data/source/components/code_block/code_block.js +444 -0
  86. data/source/components/code_block/package.json +3 -0
  87. data/source/components/code_block/spec/code_block_spec.js +10 -0
  88. data/source/components/demo/demo.js +244 -0
  89. data/source/components/demo/demo.scss +90 -0
  90. data/source/components/demo/package.json +3 -0
  91. data/source/components/exploded/exploded.erb +25 -0
  92. data/source/components/exploded/exploded.js +694 -0
  93. data/source/components/exploded/exploded.scss +166 -0
  94. data/source/components/exploded/package.json +3 -0
  95. data/source/components/field/field.js +24 -0
  96. data/source/components/field/field.scss +101 -0
  97. data/source/components/field/package.json +3 -0
  98. data/source/components/header/header.scss +33 -0
  99. data/source/components/iframe/iframe.erb +12 -0
  100. data/source/components/iframe/iframe.js +381 -0
  101. data/source/components/iframe/package.json +3 -0
  102. data/source/components/index.js +37 -0
  103. data/source/components/inline_group/inline-group.scss +14 -0
  104. data/source/components/internal_link/internal_link.js +49 -0
  105. data/source/components/internal_link/package.json +3 -0
  106. data/source/components/list/list.scss +230 -0
  107. data/source/components/modal/modal.coffee +84 -0
  108. data/source/components/modal/modal.erb +19 -0
  109. data/source/components/modal/modal.js +0 -0
  110. data/source/components/modal/modal.scss +57 -0
  111. data/source/components/modal/package.json +3 -0
  112. data/source/components/notice/notice.scss +48 -0
  113. data/source/components/popover/package.json +3 -0
  114. data/source/components/popover/popover.coffee +562 -0
  115. data/source/components/popover/popover.erb +21 -0
  116. data/source/components/popover/popover.js +0 -0
  117. data/source/components/popover/popover.scss +139 -0
  118. data/source/components/range/range.scss +78 -0
  119. data/source/components/resizable/package.json +3 -0
  120. data/source/components/resizable/resizable.erb +30 -0
  121. data/source/components/resizable/resizable.js +250 -0
  122. data/source/components/resizable/resizable.scss +245 -0
  123. data/source/components/resizable/size_buttons.js +249 -0
  124. data/source/components/scroll_container/package.json +3 -0
  125. data/source/components/scroll_container/scroll-container.scss +4 -0
  126. data/source/components/scroll_container/scroll_container.js +24 -0
  127. data/source/components/section/section.scss +99 -0
  128. data/source/components/select/package.json +3 -0
  129. data/source/components/select/select.erb +21 -0
  130. data/source/components/select/select.js +35 -0
  131. data/source/components/select/select.scss +163 -0
  132. data/source/components/table/package.json +3 -0
  133. data/source/components/table/table.erb +16 -0
  134. data/source/components/table/table.js +351 -0
  135. data/source/components/table/table.scss +236 -0
  136. data/source/components/tablist/package.json +3 -0
  137. data/source/components/tablist/tablist.erb +13 -0
  138. data/source/components/tablist/tablist.js +246 -0
  139. data/source/components/tablist/tablist.scss +191 -0
  140. data/source/components/tablist/tablist_panel.erb +14 -0
  141. data/source/components/tablist/tablist_tab.erb +20 -0
  142. data/source/components/toggle/package.json +3 -0
  143. data/source/components/toggle/toggle.erb +11 -0
  144. data/source/components/toggle/toggle.js +211 -0
  145. data/source/components/toggle/toggle_container.erb +30 -0
  146. data/source/components/vertical_spacer/vertical-spacer.scss +3 -0
  147. data/source/components/vertical_stack/vertical-stack.scss +19 -0
  148. data/source/components/xray/package.json +3 -0
  149. data/source/components/xray/xray.erb +50 -0
  150. data/source/components/xray/xray.js +123 -0
  151. data/source/components/xray/xray.scss +79 -0
  152. data/source/foundation/app/app.js +15 -0
  153. data/source/foundation/app/package.json +3 -0
  154. data/source/pattern-library-demo.scss +13 -0
  155. data/source/pattern-library.scss +13 -0
  156. data/source/pattern_library.js +8 -0
  157. data/source/pattern_library_demo.js +8 -0
  158. data/source/structures/index.js +11 -0
  159. data/source/structures/sidebar/package.json +3 -0
  160. data/source/structures/sidebar/sidebar.js +69 -0
  161. data/source/structures/sidebar/sidebar.scss +79 -0
  162. data/source/utilities/builder/builder.js +138 -0
  163. data/source/utilities/builder/package.json +3 -0
  164. data/source/utilities/client/client.js +7 -0
  165. data/source/utilities/client/package.json +3 -0
  166. data/source/utilities/colors/colors.scss +112 -0
  167. data/source/utilities/defaults/defaults.scss +38 -0
  168. data/source/utilities/dom_cache/dom_cache.js +24 -0
  169. data/source/utilities/dom_cache/package.json +3 -0
  170. data/source/utilities/events/events.js +25 -0
  171. data/source/utilities/events/package.json +3 -0
  172. data/source/utilities/font_sizes/font-sizes.scss +85 -0
  173. data/source/utilities/foundation/a11y.scss +10 -0
  174. data/source/utilities/foundation/base.scss +29 -0
  175. data/source/utilities/foundation/icon.scss +114 -0
  176. data/source/utilities/foundation/layout.scss +67 -0
  177. data/source/utilities/foundation/page.scss +39 -0
  178. data/source/utilities/foundation/type.scss +208 -0
  179. data/source/utilities/functions/functions.scss +127 -0
  180. data/source/utilities/keycodes/keycodes.js +23 -0
  181. data/source/utilities/keycodes/package.json +3 -0
  182. data/source/utilities/markup/markup.js +90 -0
  183. data/source/utilities/markup/package.json +3 -0
  184. data/source/utilities/media/media.scss +172 -0
  185. data/source/utilities/mixins/mixins.scss +89 -0
  186. data/source/utilities/naming_convention/naming_convention.js +3 -0
  187. data/source/utilities/naming_convention/package.json +3 -0
  188. data/source/utilities/numbers/numbers.js +14 -0
  189. data/source/utilities/numbers/package.json +3 -0
  190. data/source/utilities/painting/package.json +3 -0
  191. data/source/utilities/painting/painting.js +7 -0
  192. data/source/utilities/pattern/package.json +3 -0
  193. data/source/utilities/pattern/pattern.js +50 -0
  194. data/source/utilities/query_string/package.json +3 -0
  195. data/source/utilities/query_string/query_string.js +24 -0
  196. data/source/utilities/template/package.json +3 -0
  197. data/source/utilities/template/template.js +10 -0
  198. data/source/utilities/text_range/package.json +3 -0
  199. data/source/utilities/text_range/text_range.js +30 -0
  200. data/source/utilities/ui_events/package.json +3 -0
  201. data/source/utilities/ui_events/ui_events.js +85 -0
  202. data/source/utilities/variables/variables.scss +18 -0
  203. data/source/utilities/z_indexes/z-indexes.scss +88 -0
  204. data/source/vendor/array_includes.js +28 -0
  205. data/source/vendor/highlight.js +1142 -0
  206. data/source/vendor/index.js +1 -0
  207. data/source/vendor/matrix.js +399 -0
  208. data/source/vendor/query_string.js +66 -0
  209. data/spec/assets/.eslintrc +9 -0
  210. data/spec/assets/spec_fixture.js +33 -0
  211. data/spec/assets/spec_helper.js +19 -0
  212. data/spec/lib/components/base_component_spec.rb +156 -0
  213. data/spec/lib/components_spec.rb +30 -0
  214. data/spec/lib/helpers/ui_helper_spec.rb +62 -0
  215. data/spec/lib/theme_spec.rb +25 -0
  216. data/spec/spec_helper.rb +15 -0
  217. data/tasks/gulp/.eslintrc +6 -0
  218. data/tasks/gulp/browser_sync.js +8 -0
  219. data/tasks/gulp/code_quality/scripts.js +10 -0
  220. data/tasks/gulp/config/index.js +116 -0
  221. data/tasks/gulp/minify/scripts.js +13 -0
  222. data/tasks/gulp/minify/styles.js +13 -0
  223. data/tasks/gulp/pattern_library/index.js +5 -0
  224. data/tasks/gulp/pattern_library/scripts.js +10 -0
  225. data/tasks/gulp/pattern_library/styles.js +10 -0
  226. data/tasks/gulp/scripts.js +8 -0
  227. data/tasks/gulp/spec/scripts.js +11 -0
  228. data/tasks/gulp/styles.js +17 -0
  229. data/tasks/gulp/utilities/babel/relative_require.js +22 -0
  230. data/tasks/gulp/utilities/babel/spec_helper.js +20 -0
  231. data/tasks/gulp/utilities/browserify_bundler.js +22 -0
  232. data/tasks/gulp/utilities/handle_errors.js +13 -0
  233. data/tasks/gulp/watch.js +9 -0
  234. data/tasks/rake/rspec.rake +7 -0
  235. data/tasks/rake/rubocop.rake +8 -0
  236. data/tasks/rake/templates.rake +50 -0
  237. metadata +470 -0
@@ -0,0 +1,166 @@
1
+ // ___ ___ ___ ___ _____ ___ _____
2
+ // / /\ /__/| / /\ / /\ / /::\ / /\ / /::\
3
+ // / /:/_ | |:| / /::\ / /::\ / /:/\:\ / /:/_ / /:/\:\
4
+ // / /:/ /\ | |:| / /:/\:\___ ___ / /:/\:\ / /:/ \:\ / /:/ /\ / /:/ \:\
5
+ // / /:/ /:/_ __|__|:| / /:/~/:/__/\ / /\/ /:/ \:\/__/:/ \__\:|/ /:/ /:/_/__/:/ \__\:|
6
+ // /__/:/ /:/ /\/__/::::\___/__/:/ /:/\ \:\ / /:/__/:/ \__\:\ \:\ / /:/__/:/ /:/ /\ \:\ / /:/
7
+ // \ \:\/:/ /:/ ~\~~\::::| \:\/:/ \ \:\ /:/\ \:\ / /:/\ \:\ /:/\ \:\/:/ /:/\ \:\ /:/
8
+ // \ \::/ /:/ |~~|:|~~ \ \::/ \ \:\/:/ \ \:\ /:/ \ \:\/:/ \ \::/ /:/ \ \:\/:/
9
+ // \ \:\/:/ | |:| \ \:\ \ \::/ \ \:\/:/ \ \::/ \ \:\/:/ \ \::/
10
+ // \ \::/ | |:| \ \:\ \__\/ \ \::/ \__\/ \ \::/ \__\/
11
+ // \__\/ |__|/ \__\/ \__\/ \__\/
12
+
13
+ //*
14
+ // @pattern Exploded
15
+ //
16
+ // An exploded view of a given DOM structure that can be freely rotated. It
17
+ // allows the user to see the structure of the component as it is rendered,
18
+ // helping them learn about subcomponents that make up the overall structure.
19
+ //
20
+ // @since 1.0.0
21
+
22
+
23
+
24
+ //*
25
+ // This is the base component for an explosion. It contains the source markup
26
+ // and the exploded representation, as well as communicates overall states of
27
+ // the component to subcomponents.
28
+ //
29
+ // @helper
30
+ // <%= docks_exploded markup: %Q(
31
+ // <div class="foo" style="padding: 1em;">
32
+ // <div class="foo__bar" style="height: 5em; position: relative;">
33
+ // <div class="foo__bar__baz" style="width: 50%; height: 100%; position: absolute; top: 0; left: 0;"></div>
34
+ // <div class="foo__bar__baz" style="width: 50%; height: 100%; position: absolute; top: 0; left: 50%;"></div>
35
+ // </div>
36
+ // </div>
37
+ // ) %>
38
+
39
+ .exploded {}
40
+
41
+ .exploded--is-being-initialized {
42
+ .exploded__pane {
43
+ transition: transform 0.25s ease;
44
+ }
45
+ }
46
+
47
+
48
+
49
+ .exploded__source,
50
+ .exploded__structure {
51
+ padding: default(spacing) double(default(spacing));
52
+ }
53
+
54
+
55
+
56
+ //*
57
+ // The container for the original source markup for the component. This is
58
+ // kept around so that each pane can be associated to a source DOM node for
59
+ // any consumer of the explosion pane selection to display source structure
60
+ // details.
61
+
62
+ .exploded__source {}
63
+
64
+ //*
65
+ // A container that wraps exactly around the source markup. This extra
66
+ // container (corresponding to the structure's `exploded__structure__content`)
67
+ // is required to simplify absolute positioning calculations for the
68
+ // JavaScript component.
69
+
70
+ .exploded__source__content {}
71
+
72
+
73
+
74
+ //*
75
+ // The container around the exploded representation. This container provides
76
+ // the perspective required to make the component three-dimensional.
77
+
78
+ .exploded__structure {
79
+ position: relative;
80
+ perspective: 2000px;
81
+ transform-style: preserve-3d;
82
+ cursor: pointer;
83
+ }
84
+
85
+
86
+
87
+ //*
88
+ // The container that wraps exactly around the exploded structure. This extra
89
+ // container exists so that `exploded__structure` can provide some padding/
90
+ // horizontal centering of the exploded structure while also providing a
91
+ // simple relative container (this subcomponent) from which to make absolute
92
+ // positioning calculations.
93
+
94
+ .exploded__structure__content {
95
+ position: relative;
96
+ z-index: 0;
97
+ margin: 0 auto;
98
+ }
99
+
100
+
101
+
102
+ //*
103
+ // The container for all controls (range sliders) that can be used to
104
+ // manipulate the component.
105
+
106
+ .exploded__control-container {
107
+ display: flex;
108
+ align-items: flex-end;
109
+ margin: 3rem negative(default(spacing)) 0;
110
+ }
111
+
112
+ //*
113
+ // A container for a single control that manipulates the component.
114
+
115
+ .exploded__control {
116
+ flex: 1 1 0;
117
+ margin-left: default(spacing);
118
+
119
+ &:first-child {
120
+ margin-left: 0;
121
+ }
122
+ }
123
+
124
+
125
+
126
+ //*
127
+ // A single pane representing a DOM node in the source markup. These panes are
128
+ // absolutely positioned by the JavaScript part of this components and,
129
+ // likewise, are rotated in three-dimensional space as the user drags over the
130
+ // component.
131
+
132
+ .exploded__pane {
133
+ // position
134
+ position: absolute;
135
+
136
+ // box model
137
+ box-sizing: content-box;
138
+
139
+ // backdrop
140
+ @include default(border-radius);
141
+ background-color: rgba(ui-color(gray, darker), 0.6);
142
+ border: 1px solid rgba(ui-color(gray), 0.5);
143
+
144
+ // transition
145
+ transition: background 0.3s ease;
146
+
147
+ &:hover {
148
+ background-color: ui-color(blue);
149
+ }
150
+ }
151
+
152
+ //*
153
+ // The JavaScript adds this state to panes that have been clicked/ tapped by
154
+ // the user. The actual representation of the active pane is deferred to other
155
+ // components (this is done by firing an event with a reference to this
156
+ // selected pane).
157
+ //
158
+ // @demo_type none
159
+ // @set_by Exploded.click
160
+
161
+ .exploded__pane--is-selected {
162
+ &, &:hover {
163
+ background: ui-color(blue, dark);
164
+ opacity: 1;
165
+ }
166
+ }
@@ -0,0 +1,3 @@
1
+ {
2
+ "main": "exploded.js"
3
+ }
@@ -0,0 +1,24 @@
1
+ const classes = {
2
+ root: "field",
3
+ input: "field__input",
4
+ label: "label"
5
+ };
6
+
7
+ const states = {
8
+ root: { focused: `${classes.root}--is-focused` },
9
+ label: { focused: `${classes.label}--is-focused` }
10
+ };
11
+
12
+ var Field = {
13
+ init() {
14
+ $(document).on("focusin focusout", `.${classes.input}`, (event) => {
15
+ var method = event.type === "focusin" ? "add" : "remove",
16
+ label = document.querySelector(`[for=${event.target.id}]`);
17
+
18
+ event.target.parentNode.classList[method](states.root.focused);
19
+ label.classList[method](states.label.focused);
20
+ });
21
+ }
22
+ };
23
+
24
+ export default Field;
@@ -0,0 +1,101 @@
1
+ .field {
2
+ @include default(border-radius);
3
+ background-color: ui-color(gray, dark);
4
+ display: flex;
5
+ align-items: center;
6
+ max-width: 100%;
7
+ padding: 0 half(default(spacing));
8
+ }
9
+
10
+ $field--switch--size: multiply(1.5, default(spacing));
11
+
12
+ .field--switch {
13
+ padding: 0;
14
+ background-color: transparent;
15
+ position: relative;
16
+
17
+ > .label {
18
+ margin: 0;
19
+ padding-left: multiply(1.5, $field--switch--size);
20
+ position: relative;
21
+ line-height: $field--switch--size;
22
+ color: ui-color(gray, darkest);
23
+
24
+ &:after {
25
+ content: '';
26
+ display: block;
27
+ height: multiply($field--switch--size, 0.7);
28
+ width: multiply(0.3, $field--switch--size);
29
+ position: absolute;
30
+ top: half($field--switch--size);
31
+ left: half($field--switch--size);
32
+ border-bottom: 2px solid ui-color(blue, darker);
33
+ border-right: 2px solid ui-color(blue, darker);
34
+ transform: translate(-50%, -60%) rotate(45deg);
35
+ display: none;
36
+ }
37
+
38
+ &:before {
39
+ content: '';
40
+ display: block;
41
+ height: $field--switch--size;
42
+ width: $field--switch--size;
43
+ background: ui-color(gray);
44
+ position: absolute;
45
+ top: 0; left: 0;
46
+ @include default(border-radius);
47
+ }
48
+ }
49
+
50
+ > .field__switch:checked + .label:before {
51
+ background: ui-color(blue);
52
+ }
53
+
54
+ > .field__switch:checked + .label:after {
55
+ display: block;
56
+ }
57
+
58
+ > .field__switch {
59
+ position: absolute;
60
+ top: 0;
61
+ left: 0;
62
+ opacity: 0.1;
63
+ }
64
+
65
+ + .field--switch {
66
+ margin-top: default(spacing);
67
+ }
68
+ }
69
+
70
+ .field__icon {
71
+ flex: 0 0 auto;
72
+ font-size: 0;
73
+
74
+ > .icon {
75
+ @include icon--recolor(gray, darker);
76
+ }
77
+ }
78
+
79
+ .field__input {
80
+ flex: 1 1 auto;
81
+ margin: 0;
82
+ padding: 0;
83
+ background: transparent;
84
+ border: none;
85
+ line-height: default(control-size);
86
+ font-size: 1.1rem;
87
+ @include type--default-font-family;
88
+
89
+ &::-webkit-input-placeholder {
90
+ color: rgba(ui-color(gray, darker), 0.5);
91
+ }
92
+
93
+ &::placeholder {
94
+ color: rgba(ui-color(gray, darker), 0.5);
95
+ }
96
+
97
+ &:focus {
98
+ outline: none;
99
+ }
100
+ }
101
+
@@ -0,0 +1,3 @@
1
+ {
2
+ "main": "field.js"
3
+ }
@@ -0,0 +1,33 @@
1
+ //*
2
+ // @pattern Page Header
3
+ // @group Partials
4
+ //
5
+ // A group of headings and other page-level information that appears at the
6
+ // top of a given page or section.
7
+ //
8
+ // @since 1.0.0
9
+
10
+ //*
11
+ // @markup
12
+ // <header class="page-header">
13
+ // <div class="grid grid--vertically-centered">
14
+ // <div class="grid__item">
15
+ // <h1 class="type type--heading type--heading-1">The title</h1>
16
+ // </div>
17
+ //
18
+ // <div class="grid__item grid__item--no-flex">
19
+ // <button class="docks-button docks-button--dark">Action</button>
20
+ // </div>
21
+ // </div>
22
+ // </header>
23
+
24
+ .page-header {
25
+ background-color: ui-color(gray);
26
+ padding: default(spacing);
27
+ padding-bottom: default(spacing);
28
+ min-height: rem(66);
29
+
30
+ .type--heading-1 {
31
+ margin: -0.5em 0;
32
+ }
33
+ }
@@ -0,0 +1,12 @@
1
+ <%
2
+ iframe.configure do |config|
3
+ config.defaults(id: unique_iframe_id)
4
+ end
5
+
6
+ id = iframe.id
7
+ %>
8
+
9
+ <iframe class="iframe" data-iframe-id="<%= id %>" frameborder="0"></iframe>
10
+ <script class="iframe__content" type="text/iframe-content">
11
+ <%= CGI.escapeHTML(docks_demo(iframe.demo, id: id)) %>
12
+ </script>