voom-presenters 0.1.13 → 2.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (514) hide show
  1. checksums.yaml +4 -4
  2. data/.circleci/config.yml +1 -1
  3. data/.github/ISSUE_TEMPLATE/bug_report.md +38 -0
  4. data/.github/ISSUE_TEMPLATE/feature_request.md +20 -0
  5. data/.github/ISSUE_TEMPLATE/questions-support.md +10 -0
  6. data/.github/workflows/semantic-release.yml +42 -0
  7. data/.gitignore +3 -2
  8. data/.releaserc +15 -0
  9. data/.ruby-version +2 -1
  10. data/CHANGELOG.md +143 -0
  11. data/CONTRIBUTING.md +60 -0
  12. data/Gemfile +14 -4
  13. data/Gemfile.lock +111 -65
  14. data/HISTORY.md +61 -0
  15. data/Procfile +1 -0
  16. data/README.md +55 -24
  17. data/app/demo/components/avatars.pom +40 -0
  18. data/app/demo/components/cards.pom +11 -4
  19. data/app/demo/components/chips.pom +65 -52
  20. data/app/demo/components/content.pom +111 -0
  21. data/app/demo/components/date_fields.pom +1 -1
  22. data/app/demo/components/datetime_fields.pom +6 -0
  23. data/app/demo/components/dialogs.pom +175 -6
  24. data/app/demo/components/drawers.pom +1 -1
  25. data/app/demo/components/file_inputs.pom +52 -0
  26. data/app/demo/components/footers.pom +1 -1
  27. data/app/demo/components/google_maps.pom +22 -0
  28. data/app/demo/components/headers.pom +80 -20
  29. data/app/demo/components/icons.pom +86 -55
  30. data/app/demo/components/image_lists.pom +100 -0
  31. data/app/demo/components/images.pom +45 -0
  32. data/app/demo/components/layouts.pom +15 -5
  33. data/app/demo/components/lists.pom +48 -3
  34. data/app/demo/components/menus.pom +14 -4
  35. data/app/demo/components/nav/menu.pom +40 -2
  36. data/app/demo/components/nav/pattern_drawer.pom +5 -0
  37. data/app/demo/components/nav/pattern_menu.pom +12 -0
  38. data/app/demo/components/number_fields.pom +53 -0
  39. data/app/demo/components/padding.pom +96 -0
  40. data/app/demo/components/progress.pom +71 -0
  41. data/app/demo/components/selects.pom +44 -5
  42. data/app/demo/components/sliders.pom +54 -0
  43. data/app/demo/components/snackbar.pom +10 -0
  44. data/app/demo/components/steppers.pom +178 -0
  45. data/app/demo/components/tab_bars.pom +66 -0
  46. data/app/demo/components/tables.pom +96 -13
  47. data/app/demo/components/text_areas.pom +23 -3
  48. data/app/demo/components/text_fields.pom +75 -17
  49. data/app/demo/components/toggles.pom +83 -16
  50. data/app/demo/components/tooltips.pom +10 -10
  51. data/app/demo/components/unordered_list.pom +81 -0
  52. data/app/demo/custom_css.pom +37 -0
  53. data/app/demo/events/actions/autocomplete.pom +3 -3
  54. data/app/demo/events/actions/clear.pom +25 -0
  55. data/app/demo/events/actions/dialogs/discard.pom +9 -0
  56. data/app/demo/events/actions/dialogs/show_dialog.pom +4 -2
  57. data/app/demo/events/actions/last_response.pom +40 -0
  58. data/app/demo/events/actions/loads.pom +16 -6
  59. data/app/demo/events/actions/posts.pom +1 -1
  60. data/app/demo/events/actions/prompt_if_dirty.pom +54 -0
  61. data/app/demo/events/actions/toggle_visiblity.pom +4 -3
  62. data/app/demo/events/content_as_form.pom +313 -0
  63. data/app/demo/events/nav/drawer.pom +7 -3
  64. data/app/demo/events/parallel.pom +44 -0
  65. data/app/demo/events/tagged_input.pom +37 -0
  66. data/app/demo/hello_world.pom +3 -0
  67. data/app/demo/index.pom +5 -5
  68. data/app/demo/markdown.pom +1 -0
  69. data/app/demo/namespaces.pom +89 -0
  70. data/app/demo/nav/top_nav.pom +22 -4
  71. data/app/demo/patterns.pom +19 -0
  72. data/app/demo/patterns/drag_drop.pom +89 -0
  73. data/app/demo/patterns/floating_card.pom +29 -0
  74. data/app/demo/patterns/search_select.pom +106 -0
  75. data/app/demo/plugins/chart.pom +254 -0
  76. data/app/demo/plugins/image_crop.pom +44 -0
  77. data/app/demo/plugins/index.pom +29 -0
  78. data/app/demo/plugins/nav/drawer.pom +19 -0
  79. data/app/demo/shared/context_list.pom +2 -2
  80. data/app/demo/styles.pom +24 -12
  81. data/bin/console +4 -4
  82. data/component-status.yml +26 -26
  83. data/config.ru +21 -10
  84. data/docs/settings.md +81 -0
  85. data/exe/presenters +3 -0
  86. data/lib/hash_ext/traverse.rb +14 -0
  87. data/lib/voom.rb +25 -0
  88. data/lib/voom/container_methods.rb +2 -2
  89. data/lib/voom/engine.rb +5 -0
  90. data/lib/voom/presenters/api/app.rb +46 -13
  91. data/lib/voom/presenters/api/router.rb +3 -87
  92. data/lib/voom/presenters/app.rb +3 -3
  93. data/lib/voom/presenters/cli.rb +28 -0
  94. data/lib/voom/presenters/demo/dragon_drop.rb +48 -0
  95. data/lib/voom/presenters/demo/echo.rb +7 -0
  96. data/lib/voom/presenters/demo/slow.rb +18 -0
  97. data/lib/voom/presenters/dsl/components/actions/autocomplete.rb +15 -0
  98. data/lib/voom/presenters/dsl/components/actions/base.rb +65 -0
  99. data/lib/voom/presenters/dsl/components/actions/clear.rb +15 -0
  100. data/lib/voom/presenters/dsl/components/actions/close_dialog.rb +17 -0
  101. data/lib/voom/presenters/dsl/components/actions/deletes.rb +15 -0
  102. data/lib/voom/presenters/dsl/components/actions/dialog.rb +15 -0
  103. data/lib/voom/presenters/dsl/components/actions/loads.rb +31 -0
  104. data/lib/voom/presenters/dsl/components/actions/navigates.rb +15 -0
  105. data/lib/voom/presenters/dsl/components/actions/post_message.rb +17 -0
  106. data/lib/voom/presenters/dsl/components/actions/posts.rb +20 -0
  107. data/lib/voom/presenters/dsl/components/actions/prompt_if_dirty.rb +15 -0
  108. data/lib/voom/presenters/dsl/components/actions/remove.rb +15 -0
  109. data/lib/voom/presenters/dsl/components/actions/replaces.rb +25 -0
  110. data/lib/voom/presenters/dsl/components/actions/snackbar.rb +15 -0
  111. data/lib/voom/presenters/dsl/components/actions/stepper.rb +15 -0
  112. data/lib/voom/presenters/dsl/components/actions/toggle_disabled.rb +15 -0
  113. data/lib/voom/presenters/dsl/components/actions/toggle_visibility.rb +15 -0
  114. data/lib/voom/presenters/dsl/components/actions/updates.rb +20 -0
  115. data/lib/voom/presenters/dsl/components/avatar.rb +5 -10
  116. data/lib/voom/presenters/dsl/components/badge.rb +0 -2
  117. data/lib/voom/presenters/dsl/components/base.rb +37 -21
  118. data/lib/voom/presenters/dsl/components/button.rb +23 -17
  119. data/lib/voom/presenters/dsl/components/card.rb +54 -42
  120. data/lib/voom/presenters/dsl/components/checkbox.rb +2 -2
  121. data/lib/voom/presenters/dsl/components/chip.rb +10 -13
  122. data/lib/voom/presenters/dsl/components/chipset.rb +33 -0
  123. data/lib/voom/presenters/dsl/components/content.rb +33 -13
  124. data/lib/voom/presenters/dsl/components/date_field.rb +1 -1
  125. data/lib/voom/presenters/dsl/components/datetime_base.rb +0 -3
  126. data/lib/voom/presenters/dsl/components/datetime_field.rb +0 -2
  127. data/lib/voom/presenters/dsl/components/dialog.rb +41 -13
  128. data/lib/voom/presenters/dsl/components/drawer.rb +13 -8
  129. data/lib/voom/presenters/dsl/components/event.rb +117 -60
  130. data/lib/voom/presenters/dsl/components/event_base.rb +1 -3
  131. data/lib/voom/presenters/dsl/components/expansion_panel.rb +3 -6
  132. data/lib/voom/presenters/dsl/components/file_input.rb +34 -0
  133. data/lib/voom/presenters/dsl/components/footer.rb +2 -2
  134. data/lib/voom/presenters/dsl/components/form.rb +3 -16
  135. data/lib/voom/presenters/dsl/components/grid.rb +64 -22
  136. data/lib/voom/presenters/dsl/components/header.rb +19 -6
  137. data/lib/voom/presenters/dsl/components/hidden_field.rb +1 -3
  138. data/lib/voom/presenters/dsl/components/icon.rb +3 -6
  139. data/lib/voom/presenters/dsl/components/icon_base.rb +6 -8
  140. data/lib/voom/presenters/dsl/components/icon_toggle.rb +3 -5
  141. data/lib/voom/presenters/dsl/components/image.rb +61 -13
  142. data/lib/voom/presenters/dsl/components/image_list.rb +43 -0
  143. data/lib/voom/presenters/dsl/components/input.rb +14 -5
  144. data/lib/voom/presenters/dsl/components/link.rb +33 -0
  145. data/lib/voom/presenters/dsl/components/list.rb +11 -16
  146. data/lib/voom/presenters/dsl/components/lists/action.rb +11 -14
  147. data/lib/voom/presenters/dsl/components/lists/actions.rb +7 -10
  148. data/lib/voom/presenters/dsl/components/lists/header.rb +2 -2
  149. data/lib/voom/presenters/dsl/components/lists/line.rb +34 -25
  150. data/lib/voom/presenters/dsl/components/lists/separator.rb +2 -2
  151. data/lib/voom/presenters/dsl/components/menu.rb +56 -16
  152. data/lib/voom/presenters/dsl/components/mixins/append.rb +2 -2
  153. data/lib/voom/presenters/dsl/components/mixins/attaches.rb +7 -3
  154. data/lib/voom/presenters/dsl/components/mixins/avatar.rb +1 -4
  155. data/lib/voom/presenters/dsl/components/mixins/buttons.rb +1 -1
  156. data/lib/voom/presenters/dsl/components/mixins/chips.rb +0 -3
  157. data/lib/voom/presenters/dsl/components/mixins/chipset.rb +19 -0
  158. data/lib/voom/presenters/dsl/components/mixins/common.rb +21 -16
  159. data/lib/voom/presenters/dsl/components/mixins/content.rb +1 -1
  160. data/lib/voom/presenters/dsl/components/mixins/date_time_fields.rb +0 -3
  161. data/lib/voom/presenters/dsl/components/mixins/dialogs.rb +0 -3
  162. data/lib/voom/presenters/dsl/components/mixins/event.rb +2 -4
  163. data/lib/voom/presenters/dsl/components/mixins/expansion_panels.rb +1 -1
  164. data/lib/voom/presenters/dsl/components/mixins/file_inputs.rb +16 -0
  165. data/lib/voom/presenters/dsl/components/mixins/google_maps.rb +15 -0
  166. data/lib/voom/presenters/dsl/components/mixins/grids.rb +1 -1
  167. data/lib/voom/presenters/dsl/components/mixins/icons.rb +0 -1
  168. data/lib/voom/presenters/dsl/components/mixins/image_lists.rb +15 -0
  169. data/lib/voom/presenters/dsl/components/mixins/last_response.rb +48 -0
  170. data/lib/voom/presenters/dsl/components/mixins/menus.rb +1 -1
  171. data/lib/voom/presenters/dsl/components/mixins/padding.rb +42 -0
  172. data/lib/voom/presenters/dsl/components/mixins/progress.rb +16 -0
  173. data/lib/voom/presenters/dsl/components/mixins/selects.rb +0 -1
  174. data/lib/voom/presenters/dsl/components/mixins/sliders.rb +15 -0
  175. data/lib/voom/presenters/dsl/components/mixins/snackbars.rb +0 -1
  176. data/lib/voom/presenters/dsl/components/mixins/steppers.rb +15 -0
  177. data/lib/voom/presenters/dsl/components/mixins/tab_bars.rb +17 -0
  178. data/lib/voom/presenters/dsl/components/mixins/tables.rb +15 -0
  179. data/lib/voom/presenters/dsl/components/mixins/text_fields.rb +10 -3
  180. data/lib/voom/presenters/dsl/components/mixins/toggles.rb +0 -5
  181. data/lib/voom/presenters/dsl/components/mixins/tooltips.rb +0 -1
  182. data/lib/voom/presenters/dsl/components/mixins/typography.rb +91 -14
  183. data/lib/voom/presenters/dsl/components/mixins/yield_to.rb +2 -2
  184. data/lib/voom/presenters/dsl/components/number_field.rb +20 -0
  185. data/lib/voom/presenters/dsl/components/page.rb +0 -1
  186. data/lib/voom/presenters/dsl/components/page_title.rb +31 -0
  187. data/lib/voom/presenters/dsl/components/progress.rb +27 -0
  188. data/lib/voom/presenters/dsl/components/radio_button.rb +0 -1
  189. data/lib/voom/presenters/dsl/components/rich_text_area.rb +20 -0
  190. data/lib/voom/presenters/dsl/components/select.rb +23 -12
  191. data/lib/voom/presenters/dsl/components/separator.rb +21 -0
  192. data/lib/voom/presenters/dsl/components/slider.rb +38 -0
  193. data/lib/voom/presenters/dsl/components/snackbar.rb +2 -2
  194. data/lib/voom/presenters/dsl/components/stepper.rb +96 -0
  195. data/lib/voom/presenters/dsl/components/switch.rb +0 -2
  196. data/lib/voom/presenters/dsl/components/tab_bar.rb +50 -0
  197. data/lib/voom/presenters/dsl/components/table.rb +126 -35
  198. data/lib/voom/presenters/dsl/components/text_area.rb +4 -5
  199. data/lib/voom/presenters/dsl/components/text_field.rb +55 -16
  200. data/lib/voom/presenters/dsl/components/time_field.rb +0 -2
  201. data/lib/voom/presenters/dsl/components/toggle_base.rb +8 -6
  202. data/lib/voom/presenters/dsl/components/tooltip.rb +1 -2
  203. data/lib/voom/presenters/dsl/components/typography.rb +6 -7
  204. data/lib/voom/presenters/dsl/components/unordered_list.rb +50 -0
  205. data/lib/voom/presenters/dsl/definer.rb +0 -4
  206. data/lib/voom/presenters/dsl/definition.rb +9 -6
  207. data/lib/voom/presenters/dsl/protect_from_forgery.rb +43 -0
  208. data/lib/voom/presenters/dsl/user_interface.rb +43 -32
  209. data/lib/voom/presenters/errors.rb +1 -0
  210. data/lib/voom/presenters/errors/invalid_dsl.rb +8 -0
  211. data/lib/voom/presenters/errors/parameter_validation.rb +1 -3
  212. data/lib/voom/presenters/generators/inflectors.rb +59 -0
  213. data/lib/voom/presenters/generators/plugin.rb +115 -0
  214. data/lib/voom/presenters/generators/templates/plugin/.gitignore +12 -0
  215. data/lib/voom/presenters/generators/templates/plugin/Gemfile +6 -0
  216. data/lib/voom/presenters/generators/templates/plugin/LICENSE.txt.tt +21 -0
  217. data/lib/voom/presenters/generators/templates/plugin/README.md +253 -0
  218. data/lib/voom/presenters/generators/templates/plugin/lib/voom/presenters/plugins/components/actions/action.rb.tt +16 -0
  219. data/lib/voom/presenters/generators/templates/plugin/lib/voom/presenters/plugins/components/actions/dsl.rb.tt +22 -0
  220. data/lib/voom/presenters/generators/templates/plugin/lib/voom/presenters/plugins/components/component.rb.tt +18 -0
  221. data/lib/voom/presenters/generators/templates/plugin/lib/voom/presenters/plugins/components/dsl.rb.tt +19 -0
  222. data/lib/voom/presenters/generators/templates/plugin/lib/voom/presenters/plugins/helpers/helper.rb.tt +15 -0
  223. data/lib/voom/presenters/generators/templates/plugin/lib/voom/presenters/plugins/plugin.rb.tt +9 -0
  224. data/lib/voom/presenters/generators/templates/plugin/lib/voom/presenters/plugins/web_client/components/actions/data.rb.tt +17 -0
  225. data/lib/voom/presenters/generators/templates/plugin/lib/voom/presenters/plugins/web_client/components/render.rb.tt +23 -0
  226. data/lib/voom/presenters/generators/templates/plugin/presenter_plugin.gemspec.tt +21 -0
  227. data/lib/voom/presenters/generators/templates/plugin/views/assets/css/components/component.css.tt +21 -0
  228. data/lib/voom/presenters/generators/templates/plugin/views/assets/js/components/actions/action.js.tt +15 -0
  229. data/lib/voom/presenters/generators/templates/plugin/views/assets/js/components/component.js.tt +39 -0
  230. data/lib/voom/presenters/generators/templates/plugin/views/components/component.erb.tt +14 -0
  231. data/lib/voom/presenters/generators/templates/plugin/views/components/component_header.erb.tt +20 -0
  232. data/lib/voom/presenters/helpers.rb +2 -8
  233. data/lib/voom/presenters/helpers/date.rb +3 -3
  234. data/lib/voom/presenters/helpers/inflector.rb +1 -1
  235. data/lib/voom/presenters/helpers/rails.rb +18 -6
  236. data/lib/voom/presenters/helpers/rails/model_table.rb +14 -6
  237. data/lib/voom/presenters/helpers/redact.rb +13 -0
  238. data/lib/voom/presenters/helpers/route.rb +15 -2
  239. data/lib/voom/presenters/helpers/time.rb +1 -1
  240. data/lib/voom/presenters/namespace.rb +12 -0
  241. data/lib/voom/presenters/pluggable.rb +37 -0
  242. data/lib/voom/presenters/plugins.rb +7 -0
  243. data/lib/voom/presenters/plugins/google_maps.rb +24 -0
  244. data/lib/voom/presenters/plugins/google_maps/google_map.erb +10 -0
  245. data/lib/voom/presenters/plugins/google_maps/google_map.rb +41 -0
  246. data/lib/voom/presenters/{dsl.rb → registry.rb} +14 -10
  247. data/lib/voom/presenters/router.rb +59 -0
  248. data/lib/voom/presenters/settings.rb +70 -39
  249. data/lib/voom/presenters/version.rb +3 -1
  250. data/lib/voom/presenters/web_client/app.rb +121 -34
  251. data/lib/voom/presenters/web_client/component_decorator_factory.rb +27 -0
  252. data/lib/voom/presenters/web_client/component_html_decorator.rb +50 -0
  253. data/lib/voom/presenters/web_client/component_renderer.rb +49 -0
  254. data/lib/voom/presenters/web_client/custom_css.rb +65 -0
  255. data/lib/voom/presenters/web_client/custom_render.rb +31 -0
  256. data/lib/voom/presenters/web_client/helpers/expand_hash.rb +19 -0
  257. data/lib/voom/presenters/web_client/helpers/form_helpers.rb +14 -0
  258. data/lib/voom/presenters/web_client/helpers/padding_helpers.rb +21 -0
  259. data/lib/voom/presenters/web_client/plugin_headers.rb +37 -0
  260. data/lib/voom/presenters/web_client/router.rb +3 -89
  261. data/lib/voom/railtie.rb +37 -0
  262. data/lib/voom/serializer.rb +2 -2
  263. data/lib/voom/symbol/to_str.rb +3 -3
  264. data/lib/voom/trace.rb +0 -2
  265. data/presenters.gemspec +12 -7
  266. data/public/bundle.css +18221 -0
  267. data/public/bundle.js +59949 -0
  268. data/public/img/demo/avatar.jpg +0 -0
  269. data/public/presenters/custom_css.css +26 -0
  270. data/public/style-bundle.js +2 -2
  271. data/public/wc.js +52704 -0
  272. data/scripts/build.sh +10 -0
  273. data/views/mdc/.babelrc +8 -0
  274. data/views/mdc/.eslintrc.yml +24 -0
  275. data/views/mdc/.nvmrc +1 -0
  276. data/views/mdc/assets/js/app.js +30 -6
  277. data/views/mdc/assets/js/components/base-component.js +160 -2
  278. data/views/mdc/assets/js/components/base-container.js +87 -0
  279. data/views/mdc/assets/js/components/base-toggle.js +56 -0
  280. data/views/mdc/assets/js/components/button.js +71 -9
  281. data/views/mdc/assets/js/components/cards.js +13 -2
  282. data/views/mdc/assets/js/components/checkboxes.js +11 -11
  283. data/views/mdc/assets/js/components/chips.js +104 -7
  284. data/views/mdc/assets/js/components/content.js +14 -0
  285. data/views/mdc/assets/js/components/data-tables.js +15 -0
  286. data/views/mdc/assets/js/components/datetime.js +83 -20
  287. data/views/mdc/assets/js/components/dialogs.js +130 -27
  288. data/views/mdc/assets/js/components/drag_n_drop.js +182 -0
  289. data/views/mdc/assets/js/components/drawer.js +43 -0
  290. data/views/mdc/assets/js/components/events.js +195 -68
  291. data/views/mdc/assets/js/components/events/action_parameter.js +62 -0
  292. data/views/mdc/assets/js/components/events/action_parameter.test.js +62 -0
  293. data/views/mdc/assets/js/components/events/autocomplete.js +15 -17
  294. data/views/mdc/assets/js/components/events/base.js +142 -16
  295. data/views/mdc/assets/js/components/events/clears.js +15 -12
  296. data/views/mdc/assets/js/components/events/close_dialog.js +50 -0
  297. data/views/mdc/assets/js/components/events/dialog.js +32 -14
  298. data/views/mdc/assets/js/components/events/encode.js +8 -0
  299. data/views/mdc/assets/js/components/events/errors.js +175 -92
  300. data/views/mdc/assets/js/components/events/loads.js +50 -11
  301. data/views/mdc/assets/js/components/events/navigates.js +17 -15
  302. data/views/mdc/assets/js/components/events/plugin.js +18 -0
  303. data/views/mdc/assets/js/components/events/post_message.js +21 -0
  304. data/views/mdc/assets/js/components/events/posts.js +169 -47
  305. data/views/mdc/assets/js/components/events/prompt_if_dirty.js +67 -0
  306. data/views/mdc/assets/js/components/events/removes.js +21 -0
  307. data/views/mdc/assets/js/components/events/replaces.js +110 -57
  308. data/views/mdc/assets/js/components/events/snackbar.js +10 -10
  309. data/views/mdc/assets/js/components/events/stepper.js +21 -0
  310. data/views/mdc/assets/js/components/events/toggle_disabled.js +41 -0
  311. data/views/mdc/assets/js/components/events/toggle_visibility.js +62 -16
  312. data/views/mdc/assets/js/components/file-inputs.js +76 -0
  313. data/views/mdc/assets/js/components/form-fields.js +16 -0
  314. data/views/mdc/assets/js/components/forms.js +9 -60
  315. data/views/mdc/assets/js/components/get_event_target.js +15 -0
  316. data/views/mdc/assets/js/components/grid.js +21 -0
  317. data/views/mdc/assets/js/components/header.js +20 -0
  318. data/views/mdc/assets/js/components/hidden-fields.js +44 -0
  319. data/views/mdc/assets/js/components/icon-toggles.js +10 -17
  320. data/views/mdc/assets/js/components/images.js +19 -0
  321. data/views/mdc/assets/js/components/initialize.js +62 -18
  322. data/views/mdc/assets/js/components/lists.js +10 -5
  323. data/views/mdc/assets/js/components/menus.js +66 -20
  324. data/views/mdc/assets/js/components/mixins/dirtyable.js +22 -0
  325. data/views/mdc/assets/js/components/mixins/event-handler.js +7 -7
  326. data/views/mdc/assets/js/components/mixins/visibility-observer.js +35 -0
  327. data/views/mdc/assets/js/components/plugins.js +86 -0
  328. data/views/mdc/assets/js/components/progress.js +31 -0
  329. data/views/mdc/assets/js/components/radios.js +14 -0
  330. data/views/mdc/assets/js/components/rich-text-area.js +227 -0
  331. data/views/mdc/assets/js/components/rich-text-area/horizontal-rule-blot.js +23 -0
  332. data/views/mdc/assets/js/components/root_document.js +5 -0
  333. data/views/mdc/assets/js/components/selects.js +41 -30
  334. data/views/mdc/assets/js/components/sliders.js +67 -0
  335. data/views/mdc/assets/js/components/snackbar.js +17 -23
  336. data/views/mdc/assets/js/components/steppers.js +48 -0
  337. data/views/mdc/assets/js/components/switches.js +10 -32
  338. data/views/mdc/assets/js/components/tab-bars.js +28 -0
  339. data/views/mdc/assets/js/components/text-fields.js +117 -43
  340. data/views/mdc/assets/js/components/tooltip.js +17 -0
  341. data/views/mdc/assets/js/components/typography.js +28 -0
  342. data/views/mdc/assets/js/components/uninitialize.js +7 -0
  343. data/views/mdc/assets/js/config.js +27 -0
  344. data/views/mdc/assets/js/mdl-stepper.js +1108 -0
  345. data/views/mdc/assets/js/utils/compatibility.js +9 -0
  346. data/views/mdc/assets/js/utils/config.js +73 -0
  347. data/views/mdc/assets/js/utils/config.test.js +59 -0
  348. data/views/mdc/assets/js/utils/urls.js +5 -2
  349. data/views/mdc/assets/js/wc.js +111 -0
  350. data/views/mdc/assets/scss/app.scss +20 -5
  351. data/views/mdc/assets/scss/components/avatar.scss +51 -7
  352. data/views/mdc/assets/scss/components/button.scss +20 -7
  353. data/views/mdc/assets/scss/components/card.scss +13 -7
  354. data/views/mdc/assets/scss/components/checkbox.scss +0 -4
  355. data/views/mdc/assets/scss/components/chip.scss +4 -0
  356. data/views/mdc/assets/scss/components/content.scss +36 -0
  357. data/views/mdc/assets/scss/components/data-table.scss +91 -0
  358. data/views/mdc/assets/scss/components/datetime.scss +7 -2
  359. data/views/mdc/assets/scss/components/dialog.scss +7 -2
  360. data/views/mdc/assets/scss/components/drag_n_drop.scss +17 -0
  361. data/views/mdc/assets/scss/components/drawer.scss +82 -0
  362. data/views/mdc/assets/scss/components/expansion-panel.scss +2 -2
  363. data/views/mdc/assets/scss/components/fab.scss +23 -4
  364. data/views/mdc/assets/scss/components/file-input.scss +18 -0
  365. data/views/mdc/assets/scss/components/grid.scss +74 -3
  366. data/views/mdc/assets/scss/components/header.scss +21 -0
  367. data/views/mdc/assets/scss/components/icon-button-toggles.scss +2 -0
  368. data/views/mdc/assets/scss/components/icon.scss +23 -0
  369. data/views/mdc/assets/scss/components/image-list.scss +18 -0
  370. data/views/mdc/assets/scss/components/image.scss +14 -16
  371. data/views/mdc/assets/scss/components/list.scss +19 -0
  372. data/views/mdc/assets/scss/components/menu.scss +14 -3
  373. data/views/mdc/assets/scss/components/progress.scss +1 -0
  374. data/views/mdc/assets/scss/components/radio.scss +4 -0
  375. data/views/mdc/assets/scss/components/rich-text-area.scss +73 -0
  376. data/views/mdc/assets/scss/components/select.scss +6 -3
  377. data/views/mdc/assets/scss/components/separator.scss +3 -0
  378. data/views/mdc/assets/scss/components/slider.scss +1 -0
  379. data/views/mdc/assets/scss/components/snackbar.scss +1 -5
  380. data/views/mdc/assets/scss/components/stepper.scss +235 -0
  381. data/views/mdc/assets/scss/components/switch.scss +13 -4
  382. data/views/mdc/assets/scss/components/tab-bars.scss +4 -0
  383. data/views/mdc/assets/scss/components/textfield.scss +14 -3
  384. data/views/mdc/assets/scss/components/tooltip.scss +3 -0
  385. data/views/mdc/assets/scss/components/typography.scss +10 -0
  386. data/views/mdc/assets/scss/components/unordered-lists.scss +17 -0
  387. data/views/mdc/assets/scss/components/vendor/quill.snow.css +945 -0
  388. data/views/mdc/assets/scss/material.blue_grey-orange.min.css +1 -1
  389. data/views/mdc/assets/scss/media.scss +39 -0
  390. data/views/mdc/assets/scss/palette.scss +16 -0
  391. data/views/mdc/assets/scss/styles.scss +40 -1
  392. data/views/mdc/assets/scss/theme.scss +25 -2
  393. data/views/mdc/body/dismissable-drawer.erb +34 -0
  394. data/views/mdc/body/drawer/divider.erb +1 -0
  395. data/views/mdc/body/drawer/item.erb +13 -0
  396. data/views/mdc/body/drawer/label.erb +1 -0
  397. data/views/mdc/body/drawers/menu.erb +1 -1
  398. data/views/mdc/body/footers/menu_item.erb +2 -2
  399. data/views/mdc/body/header.erb +38 -30
  400. data/views/mdc/body/modal-drawer.erb +35 -0
  401. data/views/mdc/body/snackbar.erb +12 -6
  402. data/views/mdc/components/actions/autocomplete.rb +8 -0
  403. data/views/mdc/components/actions/clear.rb +11 -0
  404. data/views/mdc/components/actions/close_dialog.rb +10 -0
  405. data/views/mdc/components/actions/delete.rb +11 -0
  406. data/views/mdc/components/actions/dialog.rb +11 -0
  407. data/views/mdc/components/actions/loads.rb +17 -0
  408. data/views/mdc/components/actions/navigates.rb +11 -0
  409. data/views/mdc/components/actions/post.rb +14 -0
  410. data/views/mdc/components/actions/post_message.rb +10 -0
  411. data/views/mdc/components/actions/prompt_if_dirty.rb +17 -0
  412. data/views/mdc/components/actions/remove.rb +10 -0
  413. data/views/mdc/components/actions/replaces.rb +16 -0
  414. data/views/mdc/components/actions/resolver.rb +39 -0
  415. data/views/mdc/components/actions/snackbar.rb +12 -0
  416. data/views/mdc/components/actions/stepper.rb +10 -0
  417. data/views/mdc/components/actions/toggle_disabled.rb +10 -0
  418. data/views/mdc/components/actions/toggle_visibility.rb +10 -0
  419. data/views/mdc/components/actions/update.rb +10 -0
  420. data/views/mdc/components/avatar.erb +12 -7
  421. data/views/mdc/components/badge.erb +1 -1
  422. data/views/mdc/components/button.erb +10 -8
  423. data/views/mdc/components/buttons/button.erb +19 -14
  424. data/views/mdc/components/buttons/fab.erb +9 -2
  425. data/views/mdc/components/buttons/icon.erb +12 -5
  426. data/views/mdc/components/buttons/image.erb +11 -5
  427. data/views/mdc/components/{display.erb → caption.erb} +0 -0
  428. data/views/mdc/components/card.erb +67 -41
  429. data/views/mdc/components/checkbox.erb +32 -23
  430. data/views/mdc/components/chip.erb +39 -22
  431. data/views/mdc/components/chipset.erb +18 -0
  432. data/views/mdc/components/content.erb +37 -11
  433. data/views/mdc/components/datetime.erb +12 -17
  434. data/views/mdc/components/dialog.erb +45 -22
  435. data/views/mdc/components/drag_and_drop/drag_and_drop.rb +16 -0
  436. data/views/mdc/components/event.erb +3 -9
  437. data/views/mdc/components/expansion_panel.erb +8 -6
  438. data/views/mdc/components/file_input.erb +17 -0
  439. data/views/mdc/components/form.erb +7 -8
  440. data/views/mdc/components/grid.erb +27 -10
  441. data/views/mdc/components/headline.erb +2 -0
  442. data/views/mdc/components/hidden_field.erb +5 -1
  443. data/views/mdc/components/icon.erb +7 -5
  444. data/views/mdc/components/icon_toggle.erb +9 -8
  445. data/views/mdc/components/image.erb +23 -5
  446. data/views/mdc/components/image_list.erb +38 -0
  447. data/views/mdc/components/link.erb +3 -13
  448. data/views/mdc/components/list.erb +9 -4
  449. data/views/mdc/components/list/actions/switch.erb +1 -1
  450. data/views/mdc/components/list/avatar.erb +2 -1
  451. data/views/mdc/components/list/header.erb +5 -3
  452. data/views/mdc/components/list/hidden_field.erb +3 -0
  453. data/views/mdc/components/list/icon.erb +2 -1
  454. data/views/mdc/components/list/line.erb +24 -13
  455. data/views/mdc/components/list/menu.erb +7 -2
  456. data/views/mdc/components/list/separator.erb +1 -1
  457. data/views/mdc/components/menu.erb +20 -16
  458. data/views/mdc/components/number_field.erb +38 -0
  459. data/views/mdc/components/{subheading.erb → overline.erb} +0 -0
  460. data/views/mdc/components/page_title.erb +2 -2
  461. data/views/mdc/components/progress.erb +11 -0
  462. data/views/mdc/components/radio_button.erb +19 -10
  463. data/views/mdc/components/render.erb +2 -3
  464. data/views/mdc/components/rich_text_area.erb +22 -0
  465. data/views/mdc/components/select.erb +28 -8
  466. data/views/mdc/components/separator.erb +3 -0
  467. data/views/mdc/components/shared/hint_error_display.erb +9 -0
  468. data/views/mdc/components/shared/input_label.erb +7 -0
  469. data/views/mdc/components/slider.erb +43 -0
  470. data/views/mdc/components/snackbar.erb +2 -6
  471. data/views/mdc/components/stepper.erb +47 -0
  472. data/views/mdc/components/stepper/step.erb +33 -0
  473. data/views/mdc/components/{title.erb → subtitle.erb} +0 -0
  474. data/views/mdc/components/switch.erb +28 -12
  475. data/views/mdc/components/tab_bar.erb +35 -0
  476. data/views/mdc/components/table.erb +28 -13
  477. data/views/mdc/components/table/checkbox.erb +20 -0
  478. data/views/mdc/components/table/column.erb +18 -0
  479. data/views/mdc/components/table/footer.erb +8 -0
  480. data/views/mdc/components/table/header.erb +14 -4
  481. data/views/mdc/components/table/pagination.erb +11 -24
  482. data/views/mdc/components/table/row.erb +7 -5
  483. data/views/mdc/components/text_area.erb +15 -7
  484. data/views/mdc/components/text_field.erb +38 -28
  485. data/views/mdc/components/tooltip.erb +2 -2
  486. data/views/mdc/components/typography.erb +7 -5
  487. data/views/mdc/components/unordered_list.erb +10 -0
  488. data/views/mdc/components/unordered_list/icon.erb +3 -0
  489. data/views/mdc/components/unordered_list/list_item.erb +7 -0
  490. data/views/mdc/layout.erb +45 -31
  491. data/views/mdc/package-lock.json +11801 -6869
  492. data/views/mdc/package.json +66 -29
  493. data/views/mdc/web.erb +4 -0
  494. data/views/mdc/webpack.config.js +14 -1
  495. metadata +327 -37
  496. data/app/demo/component_status.pom +0 -76
  497. data/app/demo/components/forms.pom +0 -31
  498. data/lib/voom-presenters.rb +0 -9
  499. data/lib/voom/presenters-engine.rb +0 -41
  500. data/lib/voom/presenters.rb +0 -13
  501. data/lib/voom/presenters/dsl/components/action.rb +0 -35
  502. data/lib/voom/presenters/web_client/markdown_render.rb +0 -16
  503. data/public/.gitignore +0 -2
  504. data/scripts/bump.sh +0 -4
  505. data/scripts/deploy-demo.sh +0 -2
  506. data/scripts/release.sh +0 -5
  507. data/views/mdc/assets/js/dialog-polyfill.js +0 -738
  508. data/views/mdc/assets/js/material.js +0 -3996
  509. data/views/mdc/assets/scss/components/icon-toggles.scss +0 -9
  510. data/views/mdc/assets/scss/components/table-pagination.scss +0 -65
  511. data/views/mdc/assets/scss/components/vendor/flatpickr.min.css +0 -13
  512. data/views/mdc/body/drawer.erb +0 -18
  513. data/views/mdc/components/modal.erb +0 -15
  514. data/views/mdc/components/static.erb +0 -7
@@ -1,6 +1,15 @@
1
- form {
2
- .mdl-switch{
3
- padding-bottom: 36px;
4
- }
1
+ @import "@material/switch/mdc-switch";
2
+
3
+ .mdc-form-field > label.v-switch__label {
4
+ padding-left: 11px;
5
+ }
6
+
7
+ .v-switch {
8
+ margin-left: 10px;
5
9
  }
6
10
 
11
+ .mdc-switch--checked {
12
+ .mdc-switch__native-control {
13
+ margin-left: 20px;
14
+ }
15
+ }
@@ -0,0 +1,4 @@
1
+ @import "@material/tab-bar/mdc-tab-bar";
2
+ @import "@material/tab-scroller/mdc-tab-scroller";
3
+ @import "@material/tab-indicator/mdc-tab-indicator";
4
+ @import "@material/tab/mdc-tab";
@@ -1,8 +1,19 @@
1
1
  @import "@material/textfield/mdc-text-field";
2
+ @import "@material/notched-outline/mdc-notched-outline";
2
3
 
4
+ .mdc-text-field {
5
+ margin-top:16px;
6
+ margin-bottom: 8px;
7
+ }
3
8
 
4
- .mdc-text-field__input {
5
- .v-text-field {
6
- padding: inherit;
9
+ .mdc-text-field--textarea:not(.mdc-text-field--disabled) {
10
+ border-color: $v-input-border-color;
11
+ &:hover {
12
+ border-color: $v-input-hover-border-color;
7
13
  }
14
+ }
15
+
16
+ .mdc-text-field-helper-text--validation-msg {
17
+ color: #d50000 !important;
18
+ font-weight: bold !important;
8
19
  }
@@ -0,0 +1,3 @@
1
+ .v-tooltip {
2
+ text-transform: initial;
3
+ }
@@ -23,3 +23,13 @@
23
23
 
24
24
  }
25
25
 
26
+ .v-typography-position-center {
27
+ text-align: center;
28
+ }
29
+
30
+ .v-typography {
31
+ > .v-icon-size-default {
32
+ font-size: inherit;
33
+ line-height: inherit;
34
+ }
35
+ }
@@ -0,0 +1,17 @@
1
+ .icon-ul {
2
+ list-style-type: none;
3
+ margin-left: 2.5em;
4
+ padding-left: 0px;
5
+ > li {
6
+ position: relative;
7
+ margin-bottom: 6px;
8
+ }
9
+ }
10
+ .icon-li > i {
11
+ left: -2em;
12
+ position: absolute;
13
+ text-align: center;
14
+ width: 2em;
15
+ line-height: inherit;
16
+ font-size: 21px;
17
+ }
@@ -0,0 +1,945 @@
1
+ /*!
2
+ * Quill Editor v1.3.6
3
+ * https://quilljs.com/
4
+ * Copyright (c) 2014, Jason Chen
5
+ * Copyright (c) 2013, salesforce.com
6
+ */
7
+ .ql-container {
8
+ box-sizing: border-box;
9
+ font-family: Helvetica, Arial, sans-serif;
10
+ font-size: 13px;
11
+ height: 100%;
12
+ margin: 0px;
13
+ position: relative;
14
+ }
15
+ .ql-container.ql-disabled .ql-tooltip {
16
+ visibility: hidden;
17
+ }
18
+ .ql-container.ql-disabled .ql-editor ul[data-checked] > li::before {
19
+ pointer-events: none;
20
+ }
21
+ .ql-clipboard {
22
+ left: -100000px;
23
+ height: 1px;
24
+ overflow-y: hidden;
25
+ position: absolute;
26
+ top: 50%;
27
+ }
28
+ .ql-clipboard p {
29
+ margin: 0;
30
+ padding: 0;
31
+ }
32
+ .ql-editor {
33
+ box-sizing: border-box;
34
+ line-height: 1.42;
35
+ height: 100%;
36
+ outline: none;
37
+ overflow-y: auto;
38
+ padding: 12px 15px;
39
+ tab-size: 4;
40
+ -moz-tab-size: 4;
41
+ text-align: left;
42
+ white-space: pre-wrap;
43
+ word-wrap: break-word;
44
+ }
45
+ .ql-editor > * {
46
+ cursor: text;
47
+ }
48
+ .ql-editor p,
49
+ .ql-editor ol,
50
+ .ql-editor ul,
51
+ .ql-editor pre,
52
+ .ql-editor blockquote,
53
+ .ql-editor h1,
54
+ .ql-editor h2,
55
+ .ql-editor h3,
56
+ .ql-editor h4,
57
+ .ql-editor h5,
58
+ .ql-editor h6 {
59
+ margin: 0;
60
+ padding: 0;
61
+ counter-reset: list-1 list-2 list-3 list-4 list-5 list-6 list-7 list-8 list-9;
62
+ }
63
+ .ql-editor ol,
64
+ .ql-editor ul {
65
+ padding-left: 1.5em;
66
+ }
67
+ .ql-editor ol > li,
68
+ .ql-editor ul > li {
69
+ list-style-type: none;
70
+ }
71
+ .ql-editor ul > li::before {
72
+ content: '\2022';
73
+ }
74
+ .ql-editor ul[data-checked=true],
75
+ .ql-editor ul[data-checked=false] {
76
+ pointer-events: none;
77
+ }
78
+ .ql-editor ul[data-checked=true] > li *,
79
+ .ql-editor ul[data-checked=false] > li * {
80
+ pointer-events: all;
81
+ }
82
+ .ql-editor ul[data-checked=true] > li::before,
83
+ .ql-editor ul[data-checked=false] > li::before {
84
+ color: #777;
85
+ cursor: pointer;
86
+ pointer-events: all;
87
+ }
88
+ .ql-editor ul[data-checked=true] > li::before {
89
+ content: '\2611';
90
+ }
91
+ .ql-editor ul[data-checked=false] > li::before {
92
+ content: '\2610';
93
+ }
94
+ .ql-editor li::before {
95
+ display: inline-block;
96
+ white-space: nowrap;
97
+ width: 1.2em;
98
+ }
99
+ .ql-editor li:not(.ql-direction-rtl)::before {
100
+ margin-left: -1.5em;
101
+ margin-right: 0.3em;
102
+ text-align: right;
103
+ }
104
+ .ql-editor li.ql-direction-rtl::before {
105
+ margin-left: 0.3em;
106
+ margin-right: -1.5em;
107
+ }
108
+ .ql-editor ol li:not(.ql-direction-rtl),
109
+ .ql-editor ul li:not(.ql-direction-rtl) {
110
+ padding-left: 1.5em;
111
+ }
112
+ .ql-editor ol li.ql-direction-rtl,
113
+ .ql-editor ul li.ql-direction-rtl {
114
+ padding-right: 1.5em;
115
+ }
116
+ .ql-editor ol li {
117
+ counter-reset: list-1 list-2 list-3 list-4 list-5 list-6 list-7 list-8 list-9;
118
+ counter-increment: list-0;
119
+ }
120
+ .ql-editor ol li:before {
121
+ content: counter(list-0, decimal) '. ';
122
+ }
123
+ .ql-editor ol li.ql-indent-1 {
124
+ counter-increment: list-1;
125
+ }
126
+ .ql-editor ol li.ql-indent-1:before {
127
+ content: counter(list-1, lower-alpha) '. ';
128
+ }
129
+ .ql-editor ol li.ql-indent-1 {
130
+ counter-reset: list-2 list-3 list-4 list-5 list-6 list-7 list-8 list-9;
131
+ }
132
+ .ql-editor ol li.ql-indent-2 {
133
+ counter-increment: list-2;
134
+ }
135
+ .ql-editor ol li.ql-indent-2:before {
136
+ content: counter(list-2, lower-roman) '. ';
137
+ }
138
+ .ql-editor ol li.ql-indent-2 {
139
+ counter-reset: list-3 list-4 list-5 list-6 list-7 list-8 list-9;
140
+ }
141
+ .ql-editor ol li.ql-indent-3 {
142
+ counter-increment: list-3;
143
+ }
144
+ .ql-editor ol li.ql-indent-3:before {
145
+ content: counter(list-3, decimal) '. ';
146
+ }
147
+ .ql-editor ol li.ql-indent-3 {
148
+ counter-reset: list-4 list-5 list-6 list-7 list-8 list-9;
149
+ }
150
+ .ql-editor ol li.ql-indent-4 {
151
+ counter-increment: list-4;
152
+ }
153
+ .ql-editor ol li.ql-indent-4:before {
154
+ content: counter(list-4, lower-alpha) '. ';
155
+ }
156
+ .ql-editor ol li.ql-indent-4 {
157
+ counter-reset: list-5 list-6 list-7 list-8 list-9;
158
+ }
159
+ .ql-editor ol li.ql-indent-5 {
160
+ counter-increment: list-5;
161
+ }
162
+ .ql-editor ol li.ql-indent-5:before {
163
+ content: counter(list-5, lower-roman) '. ';
164
+ }
165
+ .ql-editor ol li.ql-indent-5 {
166
+ counter-reset: list-6 list-7 list-8 list-9;
167
+ }
168
+ .ql-editor ol li.ql-indent-6 {
169
+ counter-increment: list-6;
170
+ }
171
+ .ql-editor ol li.ql-indent-6:before {
172
+ content: counter(list-6, decimal) '. ';
173
+ }
174
+ .ql-editor ol li.ql-indent-6 {
175
+ counter-reset: list-7 list-8 list-9;
176
+ }
177
+ .ql-editor ol li.ql-indent-7 {
178
+ counter-increment: list-7;
179
+ }
180
+ .ql-editor ol li.ql-indent-7:before {
181
+ content: counter(list-7, lower-alpha) '. ';
182
+ }
183
+ .ql-editor ol li.ql-indent-7 {
184
+ counter-reset: list-8 list-9;
185
+ }
186
+ .ql-editor ol li.ql-indent-8 {
187
+ counter-increment: list-8;
188
+ }
189
+ .ql-editor ol li.ql-indent-8:before {
190
+ content: counter(list-8, lower-roman) '. ';
191
+ }
192
+ .ql-editor ol li.ql-indent-8 {
193
+ counter-reset: list-9;
194
+ }
195
+ .ql-editor ol li.ql-indent-9 {
196
+ counter-increment: list-9;
197
+ }
198
+ .ql-editor ol li.ql-indent-9:before {
199
+ content: counter(list-9, decimal) '. ';
200
+ }
201
+ .ql-editor .ql-indent-1:not(.ql-direction-rtl) {
202
+ padding-left: 3em;
203
+ }
204
+ .ql-editor li.ql-indent-1:not(.ql-direction-rtl) {
205
+ padding-left: 4.5em;
206
+ }
207
+ .ql-editor .ql-indent-1.ql-direction-rtl.ql-align-right {
208
+ padding-right: 3em;
209
+ }
210
+ .ql-editor li.ql-indent-1.ql-direction-rtl.ql-align-right {
211
+ padding-right: 4.5em;
212
+ }
213
+ .ql-editor .ql-indent-2:not(.ql-direction-rtl) {
214
+ padding-left: 6em;
215
+ }
216
+ .ql-editor li.ql-indent-2:not(.ql-direction-rtl) {
217
+ padding-left: 7.5em;
218
+ }
219
+ .ql-editor .ql-indent-2.ql-direction-rtl.ql-align-right {
220
+ padding-right: 6em;
221
+ }
222
+ .ql-editor li.ql-indent-2.ql-direction-rtl.ql-align-right {
223
+ padding-right: 7.5em;
224
+ }
225
+ .ql-editor .ql-indent-3:not(.ql-direction-rtl) {
226
+ padding-left: 9em;
227
+ }
228
+ .ql-editor li.ql-indent-3:not(.ql-direction-rtl) {
229
+ padding-left: 10.5em;
230
+ }
231
+ .ql-editor .ql-indent-3.ql-direction-rtl.ql-align-right {
232
+ padding-right: 9em;
233
+ }
234
+ .ql-editor li.ql-indent-3.ql-direction-rtl.ql-align-right {
235
+ padding-right: 10.5em;
236
+ }
237
+ .ql-editor .ql-indent-4:not(.ql-direction-rtl) {
238
+ padding-left: 12em;
239
+ }
240
+ .ql-editor li.ql-indent-4:not(.ql-direction-rtl) {
241
+ padding-left: 13.5em;
242
+ }
243
+ .ql-editor .ql-indent-4.ql-direction-rtl.ql-align-right {
244
+ padding-right: 12em;
245
+ }
246
+ .ql-editor li.ql-indent-4.ql-direction-rtl.ql-align-right {
247
+ padding-right: 13.5em;
248
+ }
249
+ .ql-editor .ql-indent-5:not(.ql-direction-rtl) {
250
+ padding-left: 15em;
251
+ }
252
+ .ql-editor li.ql-indent-5:not(.ql-direction-rtl) {
253
+ padding-left: 16.5em;
254
+ }
255
+ .ql-editor .ql-indent-5.ql-direction-rtl.ql-align-right {
256
+ padding-right: 15em;
257
+ }
258
+ .ql-editor li.ql-indent-5.ql-direction-rtl.ql-align-right {
259
+ padding-right: 16.5em;
260
+ }
261
+ .ql-editor .ql-indent-6:not(.ql-direction-rtl) {
262
+ padding-left: 18em;
263
+ }
264
+ .ql-editor li.ql-indent-6:not(.ql-direction-rtl) {
265
+ padding-left: 19.5em;
266
+ }
267
+ .ql-editor .ql-indent-6.ql-direction-rtl.ql-align-right {
268
+ padding-right: 18em;
269
+ }
270
+ .ql-editor li.ql-indent-6.ql-direction-rtl.ql-align-right {
271
+ padding-right: 19.5em;
272
+ }
273
+ .ql-editor .ql-indent-7:not(.ql-direction-rtl) {
274
+ padding-left: 21em;
275
+ }
276
+ .ql-editor li.ql-indent-7:not(.ql-direction-rtl) {
277
+ padding-left: 22.5em;
278
+ }
279
+ .ql-editor .ql-indent-7.ql-direction-rtl.ql-align-right {
280
+ padding-right: 21em;
281
+ }
282
+ .ql-editor li.ql-indent-7.ql-direction-rtl.ql-align-right {
283
+ padding-right: 22.5em;
284
+ }
285
+ .ql-editor .ql-indent-8:not(.ql-direction-rtl) {
286
+ padding-left: 24em;
287
+ }
288
+ .ql-editor li.ql-indent-8:not(.ql-direction-rtl) {
289
+ padding-left: 25.5em;
290
+ }
291
+ .ql-editor .ql-indent-8.ql-direction-rtl.ql-align-right {
292
+ padding-right: 24em;
293
+ }
294
+ .ql-editor li.ql-indent-8.ql-direction-rtl.ql-align-right {
295
+ padding-right: 25.5em;
296
+ }
297
+ .ql-editor .ql-indent-9:not(.ql-direction-rtl) {
298
+ padding-left: 27em;
299
+ }
300
+ .ql-editor li.ql-indent-9:not(.ql-direction-rtl) {
301
+ padding-left: 28.5em;
302
+ }
303
+ .ql-editor .ql-indent-9.ql-direction-rtl.ql-align-right {
304
+ padding-right: 27em;
305
+ }
306
+ .ql-editor li.ql-indent-9.ql-direction-rtl.ql-align-right {
307
+ padding-right: 28.5em;
308
+ }
309
+ .ql-editor .ql-video {
310
+ display: block;
311
+ max-width: 100%;
312
+ }
313
+ .ql-editor .ql-video.ql-align-center {
314
+ margin: 0 auto;
315
+ }
316
+ .ql-editor .ql-video.ql-align-right {
317
+ margin: 0 0 0 auto;
318
+ }
319
+ .ql-editor .ql-bg-black {
320
+ background-color: #000;
321
+ }
322
+ .ql-editor .ql-bg-red {
323
+ background-color: #e60000;
324
+ }
325
+ .ql-editor .ql-bg-orange {
326
+ background-color: #f90;
327
+ }
328
+ .ql-editor .ql-bg-yellow {
329
+ background-color: #ff0;
330
+ }
331
+ .ql-editor .ql-bg-green {
332
+ background-color: #008a00;
333
+ }
334
+ .ql-editor .ql-bg-blue {
335
+ background-color: #06c;
336
+ }
337
+ .ql-editor .ql-bg-purple {
338
+ background-color: #93f;
339
+ }
340
+ .ql-editor .ql-color-white {
341
+ color: #fff;
342
+ }
343
+ .ql-editor .ql-color-red {
344
+ color: #e60000;
345
+ }
346
+ .ql-editor .ql-color-orange {
347
+ color: #f90;
348
+ }
349
+ .ql-editor .ql-color-yellow {
350
+ color: #ff0;
351
+ }
352
+ .ql-editor .ql-color-green {
353
+ color: #008a00;
354
+ }
355
+ .ql-editor .ql-color-blue {
356
+ color: #06c;
357
+ }
358
+ .ql-editor .ql-color-purple {
359
+ color: #93f;
360
+ }
361
+ .ql-editor .ql-font-serif {
362
+ font-family: Georgia, Times New Roman, serif;
363
+ }
364
+ .ql-editor .ql-font-monospace {
365
+ font-family: Monaco, Courier New, monospace;
366
+ }
367
+ .ql-editor .ql-size-small {
368
+ font-size: 0.75em;
369
+ }
370
+ .ql-editor .ql-size-large {
371
+ font-size: 1.5em;
372
+ }
373
+ .ql-editor .ql-size-huge {
374
+ font-size: 2.5em;
375
+ }
376
+ .ql-editor .ql-direction-rtl {
377
+ direction: rtl;
378
+ text-align: inherit;
379
+ }
380
+ .ql-editor .ql-align-center {
381
+ text-align: center;
382
+ }
383
+ .ql-editor .ql-align-justify {
384
+ text-align: justify;
385
+ }
386
+ .ql-editor .ql-align-right {
387
+ text-align: right;
388
+ }
389
+ .ql-editor.ql-blank::before {
390
+ color: rgba(0,0,0,0.6);
391
+ content: attr(data-placeholder);
392
+ font-style: italic;
393
+ left: 15px;
394
+ pointer-events: none;
395
+ position: absolute;
396
+ right: 15px;
397
+ }
398
+ .ql-snow.ql-toolbar:after,
399
+ .ql-snow .ql-toolbar:after {
400
+ clear: both;
401
+ content: '';
402
+ display: table;
403
+ }
404
+ .ql-snow.ql-toolbar button,
405
+ .ql-snow .ql-toolbar button {
406
+ background: none;
407
+ border: none;
408
+ cursor: pointer;
409
+ display: inline-block;
410
+ float: left;
411
+ height: 24px;
412
+ padding: 3px 5px;
413
+ width: 28px;
414
+ }
415
+ .ql-snow.ql-toolbar button svg,
416
+ .ql-snow .ql-toolbar button svg {
417
+ float: left;
418
+ height: 100%;
419
+ }
420
+ .ql-snow.ql-toolbar button:active:hover,
421
+ .ql-snow .ql-toolbar button:active:hover {
422
+ outline: none;
423
+ }
424
+ .ql-snow.ql-toolbar input.ql-image[type=file],
425
+ .ql-snow .ql-toolbar input.ql-image[type=file] {
426
+ display: none;
427
+ }
428
+ .ql-snow.ql-toolbar button:hover,
429
+ .ql-snow .ql-toolbar button:hover,
430
+ .ql-snow.ql-toolbar button:focus,
431
+ .ql-snow .ql-toolbar button:focus,
432
+ .ql-snow.ql-toolbar button.ql-active,
433
+ .ql-snow .ql-toolbar button.ql-active,
434
+ .ql-snow.ql-toolbar .ql-picker-label:hover,
435
+ .ql-snow .ql-toolbar .ql-picker-label:hover,
436
+ .ql-snow.ql-toolbar .ql-picker-label.ql-active,
437
+ .ql-snow .ql-toolbar .ql-picker-label.ql-active,
438
+ .ql-snow.ql-toolbar .ql-picker-item:hover,
439
+ .ql-snow .ql-toolbar .ql-picker-item:hover,
440
+ .ql-snow.ql-toolbar .ql-picker-item.ql-selected,
441
+ .ql-snow .ql-toolbar .ql-picker-item.ql-selected {
442
+ color: #06c;
443
+ }
444
+ .ql-snow.ql-toolbar button:hover .ql-fill,
445
+ .ql-snow .ql-toolbar button:hover .ql-fill,
446
+ .ql-snow.ql-toolbar button:focus .ql-fill,
447
+ .ql-snow .ql-toolbar button:focus .ql-fill,
448
+ .ql-snow.ql-toolbar button.ql-active .ql-fill,
449
+ .ql-snow .ql-toolbar button.ql-active .ql-fill,
450
+ .ql-snow.ql-toolbar .ql-picker-label:hover .ql-fill,
451
+ .ql-snow .ql-toolbar .ql-picker-label:hover .ql-fill,
452
+ .ql-snow.ql-toolbar .ql-picker-label.ql-active .ql-fill,
453
+ .ql-snow .ql-toolbar .ql-picker-label.ql-active .ql-fill,
454
+ .ql-snow.ql-toolbar .ql-picker-item:hover .ql-fill,
455
+ .ql-snow .ql-toolbar .ql-picker-item:hover .ql-fill,
456
+ .ql-snow.ql-toolbar .ql-picker-item.ql-selected .ql-fill,
457
+ .ql-snow .ql-toolbar .ql-picker-item.ql-selected .ql-fill,
458
+ .ql-snow.ql-toolbar button:hover .ql-stroke.ql-fill,
459
+ .ql-snow .ql-toolbar button:hover .ql-stroke.ql-fill,
460
+ .ql-snow.ql-toolbar button:focus .ql-stroke.ql-fill,
461
+ .ql-snow .ql-toolbar button:focus .ql-stroke.ql-fill,
462
+ .ql-snow.ql-toolbar button.ql-active .ql-stroke.ql-fill,
463
+ .ql-snow .ql-toolbar button.ql-active .ql-stroke.ql-fill,
464
+ .ql-snow.ql-toolbar .ql-picker-label:hover .ql-stroke.ql-fill,
465
+ .ql-snow .ql-toolbar .ql-picker-label:hover .ql-stroke.ql-fill,
466
+ .ql-snow.ql-toolbar .ql-picker-label.ql-active .ql-stroke.ql-fill,
467
+ .ql-snow .ql-toolbar .ql-picker-label.ql-active .ql-stroke.ql-fill,
468
+ .ql-snow.ql-toolbar .ql-picker-item:hover .ql-stroke.ql-fill,
469
+ .ql-snow .ql-toolbar .ql-picker-item:hover .ql-stroke.ql-fill,
470
+ .ql-snow.ql-toolbar .ql-picker-item.ql-selected .ql-stroke.ql-fill,
471
+ .ql-snow .ql-toolbar .ql-picker-item.ql-selected .ql-stroke.ql-fill {
472
+ fill: #06c;
473
+ }
474
+ .ql-snow.ql-toolbar button:hover .ql-stroke,
475
+ .ql-snow .ql-toolbar button:hover .ql-stroke,
476
+ .ql-snow.ql-toolbar button:focus .ql-stroke,
477
+ .ql-snow .ql-toolbar button:focus .ql-stroke,
478
+ .ql-snow.ql-toolbar button.ql-active .ql-stroke,
479
+ .ql-snow .ql-toolbar button.ql-active .ql-stroke,
480
+ .ql-snow.ql-toolbar .ql-picker-label:hover .ql-stroke,
481
+ .ql-snow .ql-toolbar .ql-picker-label:hover .ql-stroke,
482
+ .ql-snow.ql-toolbar .ql-picker-label.ql-active .ql-stroke,
483
+ .ql-snow .ql-toolbar .ql-picker-label.ql-active .ql-stroke,
484
+ .ql-snow.ql-toolbar .ql-picker-item:hover .ql-stroke,
485
+ .ql-snow .ql-toolbar .ql-picker-item:hover .ql-stroke,
486
+ .ql-snow.ql-toolbar .ql-picker-item.ql-selected .ql-stroke,
487
+ .ql-snow .ql-toolbar .ql-picker-item.ql-selected .ql-stroke,
488
+ .ql-snow.ql-toolbar button:hover .ql-stroke-miter,
489
+ .ql-snow .ql-toolbar button:hover .ql-stroke-miter,
490
+ .ql-snow.ql-toolbar button:focus .ql-stroke-miter,
491
+ .ql-snow .ql-toolbar button:focus .ql-stroke-miter,
492
+ .ql-snow.ql-toolbar button.ql-active .ql-stroke-miter,
493
+ .ql-snow .ql-toolbar button.ql-active .ql-stroke-miter,
494
+ .ql-snow.ql-toolbar .ql-picker-label:hover .ql-stroke-miter,
495
+ .ql-snow .ql-toolbar .ql-picker-label:hover .ql-stroke-miter,
496
+ .ql-snow.ql-toolbar .ql-picker-label.ql-active .ql-stroke-miter,
497
+ .ql-snow .ql-toolbar .ql-picker-label.ql-active .ql-stroke-miter,
498
+ .ql-snow.ql-toolbar .ql-picker-item:hover .ql-stroke-miter,
499
+ .ql-snow .ql-toolbar .ql-picker-item:hover .ql-stroke-miter,
500
+ .ql-snow.ql-toolbar .ql-picker-item.ql-selected .ql-stroke-miter,
501
+ .ql-snow .ql-toolbar .ql-picker-item.ql-selected .ql-stroke-miter {
502
+ stroke: #06c;
503
+ }
504
+ @media (pointer: coarse) {
505
+ .ql-snow.ql-toolbar button:hover:not(.ql-active),
506
+ .ql-snow .ql-toolbar button:hover:not(.ql-active) {
507
+ color: #444;
508
+ }
509
+ .ql-snow.ql-toolbar button:hover:not(.ql-active) .ql-fill,
510
+ .ql-snow .ql-toolbar button:hover:not(.ql-active) .ql-fill,
511
+ .ql-snow.ql-toolbar button:hover:not(.ql-active) .ql-stroke.ql-fill,
512
+ .ql-snow .ql-toolbar button:hover:not(.ql-active) .ql-stroke.ql-fill {
513
+ fill: #444;
514
+ }
515
+ .ql-snow.ql-toolbar button:hover:not(.ql-active) .ql-stroke,
516
+ .ql-snow .ql-toolbar button:hover:not(.ql-active) .ql-stroke,
517
+ .ql-snow.ql-toolbar button:hover:not(.ql-active) .ql-stroke-miter,
518
+ .ql-snow .ql-toolbar button:hover:not(.ql-active) .ql-stroke-miter {
519
+ stroke: #444;
520
+ }
521
+ }
522
+ .ql-snow {
523
+ box-sizing: border-box;
524
+ }
525
+ .ql-snow * {
526
+ box-sizing: border-box;
527
+ }
528
+ .ql-snow .ql-hidden {
529
+ display: none;
530
+ }
531
+ .ql-snow .ql-out-bottom,
532
+ .ql-snow .ql-out-top {
533
+ visibility: hidden;
534
+ }
535
+ .ql-snow .ql-tooltip {
536
+ position: absolute;
537
+ transform: translateY(10px);
538
+ }
539
+ .ql-snow .ql-tooltip a {
540
+ cursor: pointer;
541
+ text-decoration: none;
542
+ }
543
+ .ql-snow .ql-tooltip.ql-flip {
544
+ transform: translateY(-10px);
545
+ }
546
+ .ql-snow .ql-formats {
547
+ display: inline-block;
548
+ vertical-align: middle;
549
+ }
550
+ .ql-snow .ql-formats:after {
551
+ clear: both;
552
+ content: '';
553
+ display: table;
554
+ }
555
+ .ql-snow .ql-stroke {
556
+ fill: none;
557
+ stroke: #444;
558
+ stroke-linecap: round;
559
+ stroke-linejoin: round;
560
+ stroke-width: 2;
561
+ }
562
+ .ql-snow .ql-stroke-miter {
563
+ fill: none;
564
+ stroke: #444;
565
+ stroke-miterlimit: 10;
566
+ stroke-width: 2;
567
+ }
568
+ .ql-snow .ql-fill,
569
+ .ql-snow .ql-stroke.ql-fill {
570
+ fill: #444;
571
+ }
572
+ .ql-snow .ql-empty {
573
+ fill: none;
574
+ }
575
+ .ql-snow .ql-even {
576
+ fill-rule: evenodd;
577
+ }
578
+ .ql-snow .ql-thin,
579
+ .ql-snow .ql-stroke.ql-thin {
580
+ stroke-width: 1;
581
+ }
582
+ .ql-snow .ql-transparent {
583
+ opacity: 0.4;
584
+ }
585
+ .ql-snow .ql-direction svg:last-child {
586
+ display: none;
587
+ }
588
+ .ql-snow .ql-direction.ql-active svg:last-child {
589
+ display: inline;
590
+ }
591
+ .ql-snow .ql-direction.ql-active svg:first-child {
592
+ display: none;
593
+ }
594
+ .ql-snow .ql-editor h1 {
595
+ font-size: 2em;
596
+ }
597
+ .ql-snow .ql-editor h2 {
598
+ font-size: 1.5em;
599
+ }
600
+ .ql-snow .ql-editor h3 {
601
+ font-size: 1.17em;
602
+ }
603
+ .ql-snow .ql-editor h4 {
604
+ font-size: 1em;
605
+ }
606
+ .ql-snow .ql-editor h5 {
607
+ font-size: 0.83em;
608
+ }
609
+ .ql-snow .ql-editor h6 {
610
+ font-size: 0.67em;
611
+ }
612
+ .ql-snow .ql-editor a {
613
+ text-decoration: underline;
614
+ }
615
+ .ql-snow .ql-editor blockquote {
616
+ border-left: 4px solid #ccc;
617
+ margin-bottom: 5px;
618
+ margin-top: 5px;
619
+ padding-left: 16px;
620
+ }
621
+ .ql-snow .ql-editor code,
622
+ .ql-snow .ql-editor pre {
623
+ background-color: #f0f0f0;
624
+ border-radius: 3px;
625
+ }
626
+ .ql-snow .ql-editor pre {
627
+ white-space: pre-wrap;
628
+ margin-bottom: 5px;
629
+ margin-top: 5px;
630
+ padding: 5px 10px;
631
+ }
632
+ .ql-snow .ql-editor code {
633
+ font-size: 85%;
634
+ padding: 2px 4px;
635
+ }
636
+ .ql-snow .ql-editor pre.ql-syntax {
637
+ background-color: #23241f;
638
+ color: #f8f8f2;
639
+ overflow: visible;
640
+ }
641
+ .ql-snow .ql-editor img {
642
+ max-width: 100%;
643
+ }
644
+ .ql-snow .ql-picker {
645
+ color: #444;
646
+ display: inline-block;
647
+ float: left;
648
+ font-size: 14px;
649
+ font-weight: 500;
650
+ height: 24px;
651
+ position: relative;
652
+ vertical-align: middle;
653
+ }
654
+ .ql-snow .ql-picker-label {
655
+ cursor: pointer;
656
+ display: inline-block;
657
+ height: 100%;
658
+ padding-left: 8px;
659
+ padding-right: 2px;
660
+ position: relative;
661
+ width: 100%;
662
+ }
663
+ .ql-snow .ql-picker-label::before {
664
+ display: inline-block;
665
+ line-height: 22px;
666
+ }
667
+ .ql-snow .ql-picker-options {
668
+ background-color: #fff;
669
+ display: none;
670
+ min-width: 100%;
671
+ padding: 4px 8px;
672
+ position: absolute;
673
+ white-space: nowrap;
674
+ }
675
+ .ql-snow .ql-picker-options .ql-picker-item {
676
+ cursor: pointer;
677
+ display: block;
678
+ padding-bottom: 5px;
679
+ padding-top: 5px;
680
+ }
681
+ .ql-snow .ql-picker.ql-expanded .ql-picker-label {
682
+ color: #ccc;
683
+ z-index: 2;
684
+ }
685
+ .ql-snow .ql-picker.ql-expanded .ql-picker-label .ql-fill {
686
+ fill: #ccc;
687
+ }
688
+ .ql-snow .ql-picker.ql-expanded .ql-picker-label .ql-stroke {
689
+ stroke: #ccc;
690
+ }
691
+ .ql-snow .ql-picker.ql-expanded .ql-picker-options {
692
+ display: block;
693
+ margin-top: -1px;
694
+ top: 100%;
695
+ z-index: 1;
696
+ }
697
+ .ql-snow .ql-color-picker,
698
+ .ql-snow .ql-icon-picker {
699
+ width: 28px;
700
+ }
701
+ .ql-snow .ql-color-picker .ql-picker-label,
702
+ .ql-snow .ql-icon-picker .ql-picker-label {
703
+ padding: 2px 4px;
704
+ }
705
+ .ql-snow .ql-color-picker .ql-picker-label svg,
706
+ .ql-snow .ql-icon-picker .ql-picker-label svg {
707
+ right: 4px;
708
+ }
709
+ .ql-snow .ql-icon-picker .ql-picker-options {
710
+ padding: 4px 0px;
711
+ }
712
+ .ql-snow .ql-icon-picker .ql-picker-item {
713
+ height: 24px;
714
+ width: 24px;
715
+ padding: 2px 4px;
716
+ }
717
+ .ql-snow .ql-color-picker .ql-picker-options {
718
+ padding: 3px 5px;
719
+ width: 152px;
720
+ }
721
+ .ql-snow .ql-color-picker .ql-picker-item {
722
+ border: 1px solid transparent;
723
+ float: left;
724
+ height: 16px;
725
+ margin: 2px;
726
+ padding: 0px;
727
+ width: 16px;
728
+ }
729
+ .ql-snow .ql-picker:not(.ql-color-picker):not(.ql-icon-picker) svg {
730
+ position: absolute;
731
+ margin-top: -9px;
732
+ right: 0;
733
+ top: 50%;
734
+ width: 18px;
735
+ }
736
+ .ql-snow .ql-picker.ql-header .ql-picker-label[data-label]:not([data-label=''])::before,
737
+ .ql-snow .ql-picker.ql-font .ql-picker-label[data-label]:not([data-label=''])::before,
738
+ .ql-snow .ql-picker.ql-size .ql-picker-label[data-label]:not([data-label=''])::before,
739
+ .ql-snow .ql-picker.ql-header .ql-picker-item[data-label]:not([data-label=''])::before,
740
+ .ql-snow .ql-picker.ql-font .ql-picker-item[data-label]:not([data-label=''])::before,
741
+ .ql-snow .ql-picker.ql-size .ql-picker-item[data-label]:not([data-label=''])::before {
742
+ content: attr(data-label);
743
+ }
744
+ .ql-snow .ql-picker.ql-header {
745
+ width: 98px;
746
+ }
747
+ .ql-snow .ql-picker.ql-header .ql-picker-label::before,
748
+ .ql-snow .ql-picker.ql-header .ql-picker-item::before {
749
+ content: 'Normal';
750
+ }
751
+ .ql-snow .ql-picker.ql-header .ql-picker-label[data-value="1"]::before,
752
+ .ql-snow .ql-picker.ql-header .ql-picker-item[data-value="1"]::before {
753
+ content: 'Heading 1';
754
+ }
755
+ .ql-snow .ql-picker.ql-header .ql-picker-label[data-value="2"]::before,
756
+ .ql-snow .ql-picker.ql-header .ql-picker-item[data-value="2"]::before {
757
+ content: 'Heading 2';
758
+ }
759
+ .ql-snow .ql-picker.ql-header .ql-picker-label[data-value="3"]::before,
760
+ .ql-snow .ql-picker.ql-header .ql-picker-item[data-value="3"]::before {
761
+ content: 'Heading 3';
762
+ }
763
+ .ql-snow .ql-picker.ql-header .ql-picker-label[data-value="4"]::before,
764
+ .ql-snow .ql-picker.ql-header .ql-picker-item[data-value="4"]::before {
765
+ content: 'Heading 4';
766
+ }
767
+ .ql-snow .ql-picker.ql-header .ql-picker-label[data-value="5"]::before,
768
+ .ql-snow .ql-picker.ql-header .ql-picker-item[data-value="5"]::before {
769
+ content: 'Heading 5';
770
+ }
771
+ .ql-snow .ql-picker.ql-header .ql-picker-label[data-value="6"]::before,
772
+ .ql-snow .ql-picker.ql-header .ql-picker-item[data-value="6"]::before {
773
+ content: 'Heading 6';
774
+ }
775
+ .ql-snow .ql-picker.ql-header .ql-picker-item[data-value="1"]::before {
776
+ font-size: 2em;
777
+ }
778
+ .ql-snow .ql-picker.ql-header .ql-picker-item[data-value="2"]::before {
779
+ font-size: 1.5em;
780
+ }
781
+ .ql-snow .ql-picker.ql-header .ql-picker-item[data-value="3"]::before {
782
+ font-size: 1.17em;
783
+ }
784
+ .ql-snow .ql-picker.ql-header .ql-picker-item[data-value="4"]::before {
785
+ font-size: 1em;
786
+ }
787
+ .ql-snow .ql-picker.ql-header .ql-picker-item[data-value="5"]::before {
788
+ font-size: 0.83em;
789
+ }
790
+ .ql-snow .ql-picker.ql-header .ql-picker-item[data-value="6"]::before {
791
+ font-size: 0.67em;
792
+ }
793
+ .ql-snow .ql-picker.ql-font {
794
+ width: 108px;
795
+ }
796
+ .ql-snow .ql-picker.ql-font .ql-picker-label::before,
797
+ .ql-snow .ql-picker.ql-font .ql-picker-item::before {
798
+ content: 'Sans Serif';
799
+ }
800
+ .ql-snow .ql-picker.ql-font .ql-picker-label[data-value=serif]::before,
801
+ .ql-snow .ql-picker.ql-font .ql-picker-item[data-value=serif]::before {
802
+ content: 'Serif';
803
+ }
804
+ .ql-snow .ql-picker.ql-font .ql-picker-label[data-value=monospace]::before,
805
+ .ql-snow .ql-picker.ql-font .ql-picker-item[data-value=monospace]::before {
806
+ content: 'Monospace';
807
+ }
808
+ .ql-snow .ql-picker.ql-font .ql-picker-item[data-value=serif]::before {
809
+ font-family: Georgia, Times New Roman, serif;
810
+ }
811
+ .ql-snow .ql-picker.ql-font .ql-picker-item[data-value=monospace]::before {
812
+ font-family: Monaco, Courier New, monospace;
813
+ }
814
+ .ql-snow .ql-picker.ql-size {
815
+ width: 98px;
816
+ }
817
+ .ql-snow .ql-picker.ql-size .ql-picker-label::before,
818
+ .ql-snow .ql-picker.ql-size .ql-picker-item::before {
819
+ content: 'Normal';
820
+ }
821
+ .ql-snow .ql-picker.ql-size .ql-picker-label[data-value=small]::before,
822
+ .ql-snow .ql-picker.ql-size .ql-picker-item[data-value=small]::before {
823
+ content: 'Small';
824
+ }
825
+ .ql-snow .ql-picker.ql-size .ql-picker-label[data-value=large]::before,
826
+ .ql-snow .ql-picker.ql-size .ql-picker-item[data-value=large]::before {
827
+ content: 'Large';
828
+ }
829
+ .ql-snow .ql-picker.ql-size .ql-picker-label[data-value=huge]::before,
830
+ .ql-snow .ql-picker.ql-size .ql-picker-item[data-value=huge]::before {
831
+ content: 'Huge';
832
+ }
833
+ .ql-snow .ql-picker.ql-size .ql-picker-item[data-value=small]::before {
834
+ font-size: 10px;
835
+ }
836
+ .ql-snow .ql-picker.ql-size .ql-picker-item[data-value=large]::before {
837
+ font-size: 18px;
838
+ }
839
+ .ql-snow .ql-picker.ql-size .ql-picker-item[data-value=huge]::before {
840
+ font-size: 32px;
841
+ }
842
+ .ql-snow .ql-color-picker.ql-background .ql-picker-item {
843
+ background-color: #fff;
844
+ }
845
+ .ql-snow .ql-color-picker.ql-color .ql-picker-item {
846
+ background-color: #000;
847
+ }
848
+ .ql-toolbar.ql-snow {
849
+ border: 1px solid #ccc;
850
+ box-sizing: border-box;
851
+ font-family: 'Helvetica Neue', 'Helvetica', 'Arial', sans-serif;
852
+ padding: 8px;
853
+ }
854
+ .ql-toolbar.ql-snow .ql-formats {
855
+ margin-right: 15px;
856
+ }
857
+ .ql-toolbar.ql-snow .ql-picker-label {
858
+ border: 1px solid transparent;
859
+ }
860
+ .ql-toolbar.ql-snow .ql-picker-options {
861
+ border: 1px solid transparent;
862
+ box-shadow: rgba(0,0,0,0.2) 0 2px 8px;
863
+ }
864
+ .ql-toolbar.ql-snow .ql-picker.ql-expanded .ql-picker-label {
865
+ border-color: #ccc;
866
+ }
867
+ .ql-toolbar.ql-snow .ql-picker.ql-expanded .ql-picker-options {
868
+ border-color: #ccc;
869
+ }
870
+ .ql-toolbar.ql-snow .ql-color-picker .ql-picker-item.ql-selected,
871
+ .ql-toolbar.ql-snow .ql-color-picker .ql-picker-item:hover {
872
+ border-color: #000;
873
+ }
874
+ .ql-toolbar.ql-snow + .ql-container.ql-snow {
875
+ border-top: 0px;
876
+ }
877
+ .ql-snow .ql-tooltip {
878
+ background-color: #fff;
879
+ border: 1px solid #ccc;
880
+ box-shadow: 0px 0px 5px #ddd;
881
+ color: #444;
882
+ padding: 5px 12px;
883
+ white-space: nowrap;
884
+ }
885
+ .ql-snow .ql-tooltip::before {
886
+ content: "Visit URL:";
887
+ line-height: 26px;
888
+ margin-right: 8px;
889
+ }
890
+ .ql-snow .ql-tooltip input[type=text] {
891
+ display: none;
892
+ border: 1px solid #ccc;
893
+ font-size: 13px;
894
+ height: 26px;
895
+ margin: 0px;
896
+ padding: 3px 5px;
897
+ width: 170px;
898
+ }
899
+ .ql-snow .ql-tooltip a.ql-preview {
900
+ display: inline-block;
901
+ max-width: 200px;
902
+ overflow-x: hidden;
903
+ text-overflow: ellipsis;
904
+ vertical-align: top;
905
+ }
906
+ .ql-snow .ql-tooltip a.ql-action::after {
907
+ border-right: 1px solid #ccc;
908
+ content: 'Edit';
909
+ margin-left: 16px;
910
+ padding-right: 8px;
911
+ }
912
+ .ql-snow .ql-tooltip a.ql-remove::before {
913
+ content: 'Remove';
914
+ margin-left: 8px;
915
+ }
916
+ .ql-snow .ql-tooltip a {
917
+ line-height: 26px;
918
+ }
919
+ .ql-snow .ql-tooltip.ql-editing a.ql-preview,
920
+ .ql-snow .ql-tooltip.ql-editing a.ql-remove {
921
+ display: none;
922
+ }
923
+ .ql-snow .ql-tooltip.ql-editing input[type=text] {
924
+ display: inline-block;
925
+ }
926
+ .ql-snow .ql-tooltip.ql-editing a.ql-action::after {
927
+ border-right: 0px;
928
+ content: 'Save';
929
+ padding-right: 0px;
930
+ }
931
+ .ql-snow .ql-tooltip[data-mode=link]::before {
932
+ content: "Enter link:";
933
+ }
934
+ .ql-snow .ql-tooltip[data-mode=formula]::before {
935
+ content: "Enter formula:";
936
+ }
937
+ .ql-snow .ql-tooltip[data-mode=video]::before {
938
+ content: "Enter video:";
939
+ }
940
+ .ql-snow a {
941
+ color: #06c;
942
+ }
943
+ .ql-container.ql-snow {
944
+ border: 1px solid #ccc;
945
+ }