playbook_ui 5.1.0.pre.alpha4 → 5.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (82) hide show
  1. checksums.yaml +4 -4
  2. data/app/assets/images/clark.jpg +0 -0
  3. data/app/assets/images/giant.jpg +0 -0
  4. data/app/assets/images/pb-caret.svg +1 -0
  5. data/app/assets/images/pb-check.svg +11 -0
  6. data/app/assets/images/pb.logo.svg +28 -0
  7. data/app/controllers/playbook/application_controller.rb +13 -0
  8. data/app/controllers/playbook/guides_controller.rb +11 -0
  9. data/app/controllers/playbook/pages_controller.rb +79 -0
  10. data/app/controllers/playbook/samples_controller.rb +40 -0
  11. data/app/pb_kits/playbook/config/_kit_example.html.erb +9 -0
  12. data/app/pb_kits/playbook/config/_kit_samples_list.html.erb +3 -0
  13. data/app/pb_kits/playbook/config/_kit_ui.html.erb +40 -0
  14. data/app/pb_kits/playbook/config/_pb_kit_api.html.erb +18 -0
  15. data/app/pb_kits/playbook/data/menu.yml +93 -0
  16. data/app/pb_kits/playbook/index.js +0 -4
  17. data/app/pb_kits/playbook/packs/application.js +55 -0
  18. data/app/pb_kits/playbook/packs/examples.js +174 -0
  19. data/app/pb_kits/playbook/packs/main.scss +12 -0
  20. data/app/pb_kits/playbook/packs/samples.js +19 -0
  21. data/app/pb_kits/playbook/packs/site_styles/_samples.scss +72 -0
  22. data/app/pb_kits/playbook/packs/site_styles/_scaffold.scss +43 -0
  23. data/app/pb_kits/playbook/packs/site_styles/_site-style.scss +135 -0
  24. data/app/pb_kits/playbook/packs/site_styles/docs/_all.scss +9 -0
  25. data/app/pb_kits/playbook/packs/site_styles/docs/_code_snippet.scss +531 -0
  26. data/app/pb_kits/playbook/packs/site_styles/docs/_color_utilities.scss +92 -0
  27. data/app/pb_kits/playbook/packs/site_styles/docs/_flex_examples.scss +15 -0
  28. data/app/pb_kits/playbook/packs/site_styles/docs/_kit_doc.scss +190 -0
  29. data/app/pb_kits/playbook/packs/site_styles/docs/_kits_examples.scss +18 -0
  30. data/app/pb_kits/playbook/packs/site_styles/docs/_markdown.scss +82 -0
  31. data/app/pb_kits/playbook/packs/site_styles/docs/_spacing_tokens.scss +72 -0
  32. data/app/pb_kits/playbook/pb_filter/docs/_description.md +3 -0
  33. data/app/pb_kits/playbook/pb_filter/templates/_default.html.erb +1 -1
  34. data/app/pb_kits/playbook/pb_popover/_popover.html.erb +2 -2
  35. data/app/pb_kits/playbook/pb_popover/_popover.jsx +3 -3
  36. data/app/pb_kits/playbook/pb_popover/_popover.scss +25 -21
  37. data/app/pb_kits/playbook/pb_popover/index.js +6 -1
  38. data/app/pb_kits/playbook/pb_radio/_radio.scss +4 -0
  39. data/app/pb_kits/playbook/pb_typeahead/docs/_typeahead_default.html.erb +1 -1
  40. data/app/views/layouts/playbook/_mobile_hamburger.html.erb +2 -0
  41. data/app/views/layouts/playbook/_nav.html.erb +13 -0
  42. data/app/views/layouts/playbook/_sidebar.html.erb +52 -0
  43. data/app/views/layouts/playbook/application.html.slim +22 -0
  44. data/app/views/layouts/playbook/fullscreen.html.slim +10 -0
  45. data/app/views/layouts/playbook/grid.html.slim +10 -0
  46. data/app/views/layouts/playbook/samples.html.erb +18 -0
  47. data/app/views/playbook/guides/create_kit.html.slim +16 -0
  48. data/app/views/playbook/guides/create_kit/_file_naming.html.md +2 -0
  49. data/app/views/playbook/guides/create_kit/_generator.html.md +6 -0
  50. data/app/views/playbook/guides/create_kit/_kit_examples.html.md +2 -0
  51. data/app/views/playbook/guides/create_kit/_kit_rails.html.md +2 -0
  52. data/app/views/playbook/guides/create_kit/_kit_react.html.md +2 -0
  53. data/app/views/playbook/guides/create_kit/_layout.html.md +2 -0
  54. data/app/views/playbook/guides/create_kit/_view_objects.html.md +2 -0
  55. data/app/views/playbook/guides/create_kit/_writing_sass.md +10 -0
  56. data/app/views/playbook/guides/use_nitro.html.slim +6 -0
  57. data/app/views/playbook/guides/use_nitro/_local.html.md +2 -0
  58. data/app/views/playbook/guides/use_nitro/_nitro_components.html.md +2 -0
  59. data/app/views/playbook/guides/use_nitro/_versions.html.md +2 -0
  60. data/app/views/playbook/pages/fullscreen.html.slim +10 -0
  61. data/app/views/playbook/pages/grid.html.slim +2 -0
  62. data/app/views/playbook/pages/home.html.slim +4 -0
  63. data/app/views/playbook/pages/kit_category_show.html.erb +14 -0
  64. data/app/views/playbook/pages/kit_show.html.erb +33 -0
  65. data/app/views/playbook/pages/kits.html.erb +12 -0
  66. data/app/views/playbook/pages/principals/_getting_started.html.md +30 -0
  67. data/app/views/playbook/pages/principles.html.slim +3 -0
  68. data/app/views/playbook/pages/tokens.html.slim +15 -0
  69. data/app/views/playbook/pages/tokens/_pb_doc_spacing.html.slim +17 -0
  70. data/app/views/playbook/pages/utilities.html.slim +116 -0
  71. data/app/views/playbook/pages/utilities/_pb_doc_color.html.slim +15 -0
  72. data/app/views/playbook/samples/dashboards/index.html.erb +81 -0
  73. data/app/views/playbook/samples/dashboards/index.jsx +130 -0
  74. data/app/views/playbook/samples/filter_table/index.html.erb +348 -0
  75. data/app/views/playbook/samples/filter_table/index.jsx +433 -0
  76. data/app/views/playbook/samples/registration/index.html.erb +316 -0
  77. data/app/views/playbook/samples/registration/index.jsx +476 -0
  78. data/app/views/playbook/samples/sample_show.html.erb +36 -0
  79. data/lib/playbook/version.rb +1 -1
  80. data/lib/tasks/pb_release.rake +0 -3
  81. metadata +74 -7
  82. data/app/pb_kits/playbook/tokens/index.scss +0 -12
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 1f840763ce61e9d3a4d7d7d8e1cbee6139beb4b2cfccf9d1e10bf92cf95cab76
4
- data.tar.gz: 52f04b4df6443fce97a07fe238d4356d16ea36ba03c40af47543b3d20f3956ad
3
+ metadata.gz: 4a8d8c6c2c9c9023bc7a1d13726ffaa74f84a439c54e65c8df70e9602cb656e0
4
+ data.tar.gz: 8ff522a820d3badc6bdebd77098e419be9de5079555463d3d3dbf1ac4b7fc064
5
5
  SHA512:
6
- metadata.gz: fab9d1b2984d62e49f03d080ca04849531015b43a182790dd656dcd2d2f150e8394c757d3b379cbaeee9f56f0b735cac5801a870e1b4461e76713a936953b13e
7
- data.tar.gz: 0ee55254047e223cbb631abb1d485b875bdd5f61cc457e52655a828ed435cd4067aea9607d58c33786b6376c8bf6e9e899d5f1ec5d60d979b256a2f449106b45
6
+ metadata.gz: 67b570c8d5640065d08d15ecbdca7b2a5819f995083e13cf0dad71c78c9211d6eabbf7fe42c29ae643299ea3c039a230f3e7e4e476b0985e89fa4ea0a48a3f32
7
+ data.tar.gz: 98b172e1ea8677e5e8a67605cff95f5f0e16117e993646a5eac811cda4fe0cf0808531e36605fc551f3a7862e43bc594e2bb2ac34108342508ec5c5fcfdbf8b7
@@ -0,0 +1 @@
1
+ <svg version="1.1" xmlns="http://www.w3.org/2000/svg" width="32px" height="22px"><title>select-arrow</title><g><polygon style="fill:#999999;" points="11.898,14.077 2.389,4.066 0.512,5.963 11.898,17.95 23.488,5.963 21.596,4.049 "/></g></svg>
@@ -0,0 +1,11 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <svg width="15px" height="12px" viewBox="0 0 15 12" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
3
+ <!-- Generator: Sketch 52.5 (67469) - http://www.bohemiancoding.com/sketch -->
4
+ <title>check</title>
5
+ <desc>Created with Sketch.</desc>
6
+ <g id="Icons" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
7
+ <g id="Branding" transform="translate(-432.000000, -324.000000)" fill="#FFFFFF">
8
+ <path d="M445.124968,324.593777 C445.187467,324.531277 445.270801,324.500027 445.374967,324.500027 C445.479133,324.500027 445.572883,324.531277 445.656216,324.593777 L446.531214,325.500025 C446.614547,325.562525 446.656214,325.645858 446.656214,325.750024 C446.656214,325.854191 446.614547,325.94794 446.531214,326.031274 L437.156237,335.406251 C437.093737,335.468751 437.010403,335.500001 436.906237,335.500001 C436.802071,335.500001 436.708321,335.468751 436.624988,335.406251 L432.468748,331.218761 C432.385414,331.156262 432.343748,331.072928 432.343748,330.968762 C432.343748,330.864596 432.385414,330.770846 432.468748,330.687513 L433.343746,329.812515 C433.427079,329.729181 433.520829,329.687515 433.624995,329.687515 C433.729161,329.687515 433.812494,329.729181 433.874994,329.812515 L436.906237,332.843758 L445.124968,324.593777 Z" id="check"></path>
9
+ </g>
10
+ </g>
11
+ </svg>
@@ -0,0 +1,28 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <svg width="143px" height="39px" viewBox="0 0 143 39" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
3
+ <!-- Generator: Sketch 59.1 (86144) - https://sketch.com -->
4
+ <title>pb.logo</title>
5
+ <desc>Created with Sketch.</desc>
6
+ <defs>
7
+ <polygon id="path-1" points="31.27995 38.3709677 6.29032258e-05 38.3709677 6.29032258e-05 0.0894483871 31.27995 0.0894483871"></polygon>
8
+ </defs>
9
+ <g id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
10
+ <g id="pb.logo">
11
+ <path d="M40.900986,25.7250725 L40.900986,20.0998494 L44.9692278,20.0998494 C48.7361183,20.0998494 50.7953517,17.5634764 50.7953517,14.5499641 C50.7953517,11.5113391 48.7361183,8.97496614 44.9692278,8.97496614 L36.5816183,8.97496614 L36.5816183,25.7250725 L40.900986,25.7250725 Z M44.3163001,16.3329589 L40.900986,16.3329589 L40.900986,12.7418566 L44.3163001,12.7418566 C45.4714798,12.7418566 46.4006462,13.3947843 46.4006462,14.5499641 C46.4006462,15.6800312 45.4714798,16.3329589 44.3163001,16.3329589 Z M56.4896223,25.7250725 L56.4896223,8.97496614 L52.6222814,8.97496614 L52.6222814,25.7250725 L56.4896223,25.7250725 Z M70.3203764,25.7250725 L70.3203764,18.1410663 C70.3203764,14.3741758 67.5831026,13.2943339 64.6700407,13.2943339 C62.811708,13.2943339 60.7273619,13.8468112 59.1703805,15.1777791 L60.6017989,17.8648277 C61.5811905,17.0361118 62.7865954,16.5589723 63.9920004,16.5589723 C65.5489818,16.5589723 66.4530355,17.2872378 66.4530355,18.3419671 L66.4530355,19.5473721 C65.72477,18.6433184 64.2933516,18.1159537 62.686145,18.1159537 L62.5385458,18.1180063 C60.7078145,18.1688571 58.5174529,19.1726656 58.5174529,22.0335198 C58.5174529,24.745681 60.8278124,26.0264237 62.686145,26.0264237 C64.2431264,26.0264237 65.6996574,25.4237213 66.4530355,24.5196675 L66.4530355,25.7250725 L70.3203764,25.7250725 Z M64.2933516,23.4900508 C63.2888475,23.4900508 62.3596812,23.0380239 62.3596812,22.083745 C62.3596812,21.1294661 63.2888475,20.6774392 64.2933516,20.6774392 C65.1471801,20.6774392 66.0512338,20.9536779 66.4530355,21.5312678 L66.4530355,22.6111097 C66.0512338,23.1886996 65.1471801,23.4900508 64.2933516,23.4900508 Z M72.8755716,30.4462419 C73.2773732,30.5718049 74.181427,30.6471427 74.5330034,30.6471427 L74.7503997,30.6408447 C76.9447008,30.5602028 78.6513638,29.9591284 79.6094597,27.5764643 L85.130522,13.5956851 L81.0371676,13.5956851 L78.2998939,21.2801417 L75.5375075,13.5956851 L71.4692658,13.5956851 L76.3159982,25.9008607 L76.0397596,26.5537884 C75.8137462,27.0560405 75.2612689,27.2318287 74.3823278,27.2318287 C74.0809765,27.2318287 73.7042875,27.1564909 73.4280489,27.0058153 L72.8755716,30.4462419 Z M90.1467523,21.5312678 L90.1467523,17.8146025 C90.6238917,17.1616748 91.6283959,16.7096479 92.4571118,16.7096479 C93.9889806,16.7096479 95.1441603,17.8397151 95.1441603,19.6478225 C95.1441603,21.4810425 93.9889806,22.6111097 92.4571118,22.6111097 C91.6283959,22.6111097 90.6238917,22.1841954 90.1467523,21.5312678 Z M90.1467523,25.7250725 L90.1467523,24.3187667 C91.1512564,25.4739465 92.381774,26.0264237 93.7378545,26.0264237 C96.7262543,26.0264237 99.086839,23.7662894 99.086839,19.6478225 C99.086839,15.6800312 96.7764795,13.2943339 93.7378545,13.2943339 C92.4068866,13.2943339 91.1010312,13.8216986 90.1467523,15.0271035 L90.1467523,8.97496614 L86.2794114,8.97496614 L86.2794114,25.7250725 L90.1467523,25.7250725 Z M106.915681,26.0264237 C111.084373,26.0264237 113.545408,23.0631366 113.545408,19.6478225 C113.545408,16.2325085 111.084373,13.2943339 106.915681,13.2943339 C102.797214,13.2943339 100.336179,16.2325085 100.336179,19.6478225 C100.336179,23.0631366 102.797214,26.0264237 106.915681,26.0264237 Z M106.915681,22.6111097 C105.258249,22.6111097 104.30397,21.2801417 104.30397,19.6478225 C104.30397,18.0406159 105.258249,16.7096479 106.915681,16.7096479 C108.623338,16.7096479 109.577617,18.0406159 109.577617,19.6478225 C109.577617,21.2801417 108.623338,22.6111097 106.915681,22.6111097 Z M121.37425,26.0264237 C125.542942,26.0264237 128.003977,23.0631366 128.003977,19.6478225 C128.003977,16.2325085 125.542942,13.2943339 121.37425,13.2943339 C117.255783,13.2943339 114.794748,16.2325085 114.794748,19.6478225 C114.794748,23.0631366 117.255783,26.0264237 121.37425,26.0264237 Z M121.37425,22.6111097 C119.716818,22.6111097 118.762539,21.2801417 118.762539,19.6478225 C118.762539,18.0406159 119.716818,16.7096479 121.37425,16.7096479 C123.081907,16.7096479 124.036186,18.0406159 124.036186,19.6478225 C124.036186,21.2801417 123.081907,22.6111097 121.37425,22.6111097 Z M142.487659,25.7250725 L137.716264,25.7250725 L135.054328,21.4308173 L133.899149,22.8120105 L133.899149,25.7250725 L130.031808,25.7250725 L130.031808,8.97496614 L133.899149,8.97496614 L133.899149,18.4424176 L137.590701,13.5956851 L142.261646,13.5956851 L137.791602,19.1204578 L142.487659,25.7250725 Z" id="Playbook" fill="#0056CF" fill-rule="nonzero"></path>
12
+ <g id="Group-10" transform="translate(0.000000, 0.225194)">
13
+ <g id="Group-3">
14
+ <g id="Fill-1-Clipped">
15
+ <mask id="mask-2" fill="white">
16
+ <use xlink:href="#path-1"></use>
17
+ </mask>
18
+ <g id="path-1"></g>
19
+ <path d="M16.0020145,0.0894483871 C14.7618774,0.0894483871 13.7532242,1.1037629 13.7532242,2.35019032 L13.7532242,5.51862581 L0.999595161,14.8644726 L0.987329032,14.8735935 L0.975377419,14.8824 L0.968458065,14.8877468 C0.361441935,15.340021 6.29032258e-05,16.06215 6.29032258e-05,16.8235935 L6.29032258e-05,26.4795532 C6.29032258e-05,27.2479161 0.363958065,27.9722468 0.974748387,28.424521 L0.986070968,28.4326984 L0.992675806,28.4377306 L0.999595161,28.4427629 L13.9551435,37.9364323 C14.3423129,38.2204403 14.7999339,38.3710935 15.2779984,38.3710935 C16.51845,38.3710935 17.5274177,37.3564645 17.5274177,36.1097226 L17.5274177,32.9419161 L30.2804177,23.5957548 L30.2929984,23.5869484 L30.30495,23.5778274 L30.3109258,23.5731097 C30.9182565,23.1208355 31.27995,22.3983919 31.27995,21.6366339 L31.27995,11.9809887 C31.27995,11.2110532 30.9154258,10.4864081 30.3036919,10.0347629 L30.2929984,10.0269 L30.2870226,10.0221823 L30.2804177,10.0174645 L17.3248694,0.523795161 C16.9380145,0.240101613 16.4803935,0.0894483871 16.0020145,0.0894483871 M16.0020145,1.97654516 C16.0724661,1.97654516 16.1441758,1.99793226 16.2092806,2.04605323 L29.1651435,11.5397226 L29.1805548,11.5510452 C29.3139097,11.6485452 29.3928532,11.8073758 29.3928532,11.9759565 L29.3928532,11.9809887 L29.3928532,21.6331742 L29.3928532,21.6366339 C29.3928532,21.8064726 29.3132806,21.9649887 29.1796113,22.0628032 L29.1651435,22.0734968 L15.640321,31.9851581 L15.640321,36.1097226 C15.640321,36.3305129 15.46545,36.4839968 15.2779984,36.4839968 C15.2078613,36.4839968 15.1358371,36.4619806 15.0704177,36.4141742 L2.11518387,26.9208194 L2.09977258,26.9091823 C1.96610323,26.8113677 1.88715968,26.6531661 1.88715968,26.4845855 L1.88715968,26.4795532 L1.88715968,16.8273677 L1.88715968,16.8235935 C1.88715968,16.6540694 1.96673226,16.4952387 2.10040161,16.3977387 L2.11518387,16.3864161 L15.640321,6.47506935 L15.640321,2.35019032 C15.640321,2.13002903 15.8145629,1.97654516 16.0020145,1.97654516" id="Fill-1" fill="#0056CF" fill-rule="nonzero" mask="url(#mask-2)"></path>
20
+ </g>
21
+ </g>
22
+ <polygon id="Fill-4" fill="#0056CF" fill-rule="nonzero" points="11.4547403 17.0330927 10.5942242 16.1725766 8.31272419 18.4540766 6.03122419 16.1725766 5.17070806 17.0330927 7.45189355 19.3145927 5.17070806 21.5964073 6.03122419 22.4569234 8.31272419 20.1751089 10.5942242 22.4569234 11.4547403 21.5964073 9.17324032 19.3145927"></polygon>
23
+ <path d="M22.805596,15.6235887 C20.7672169,15.6235887 19.1144347,17.2760565 19.1144347,19.3144355 C19.1144347,21.3534435 20.7672169,23.0059113 22.805596,23.0059113 C24.843975,23.0059113 26.4964427,21.3534435 26.4964427,19.3144355 C26.4964427,17.2760565 24.843975,15.6235887 22.805596,15.6235887 M22.805596,16.8407661 C24.1696524,16.8407661 25.2792653,17.950379 25.2792653,19.3144355 C25.2792653,20.6788065 24.1696524,21.7887339 22.805596,21.7887339 C21.441225,21.7887339 20.3316121,20.6788065 20.3316121,19.3144355 C20.3316121,17.950379 21.441225,16.8407661 22.805596,16.8407661" id="Fill-6" fill="#0056CF" fill-rule="nonzero"></path>
24
+ <path d="M18.8099516,17.7868306 L15.2804516,13.9664032 L11.759129,17.7868306 L12.6212177,18.5897903 L14.6907339,16.3293629 L14.6907339,22.8977177 C14.6907339,23.2229274 14.9542984,23.4864919 15.2791935,23.4864919 C15.6047177,23.4864919 15.8679677,23.2229274 15.8679677,22.8977177 L15.8679677,16.3271613 L17.9478629,18.5897903 L18.8099516,17.7868306 Z" id="Fill-8" fill="#0056CF" fill-rule="nonzero"></path>
25
+ </g>
26
+ </g>
27
+ </g>
28
+ </svg>
@@ -0,0 +1,13 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Playbook
4
+ class ApplicationController < ActionController::Base
5
+ protect_from_forgery with: :exception
6
+
7
+ helper Webpacker::Helper
8
+ helper Playbook::PbKitHelper
9
+ helper Playbook::PbDocHelper
10
+ helper Playbook::PbSampleHelper
11
+ append_view_path Playbook::Engine.root + "app/pb_kits"
12
+ end
13
+ end
@@ -0,0 +1,11 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_dependency "playbook/application_controller"
4
+
5
+ module Playbook
6
+ class GuidesController < ApplicationController
7
+ def create_kit; end
8
+
9
+ def use_nitro; end
10
+ end
11
+ end
@@ -0,0 +1,79 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_dependency "playbook/application_controller"
4
+ require "yaml"
5
+
6
+ module Playbook
7
+ class PagesController < ApplicationController
8
+ before_action :set_kit, only: %i[kit_show_rails kit_show_react]
9
+ before_action :ensure_kit_type_exists, only: %i[kit_show_rails kit_show_react]
10
+ before_action :set_category, only: %i[kit_category_show_rails kit_category_show_react]
11
+
12
+ def home; end
13
+
14
+ def utilities; end
15
+
16
+ def tokens; end
17
+
18
+ def kits
19
+ params[:type] ||= "react"
20
+ @type = params[:type]
21
+ end
22
+
23
+ def principles; end
24
+
25
+ def grid
26
+ render layout: "layouts/playbook/grid"
27
+ end
28
+
29
+ def kit_show_rails
30
+ render template: "playbook/pages/kit_show"
31
+ end
32
+
33
+ def kit_show_react
34
+ render template: "playbook/pages/kit_show"
35
+ end
36
+
37
+ def kit_category_show_rails
38
+ params[:type] ||= "rails"
39
+ @type = params[:type]
40
+ render template: "playbook/pages/kit_category_show"
41
+ end
42
+
43
+ def kit_category_show_react
44
+ render template: "playbook/pages/kit_category_show"
45
+ end
46
+
47
+ private
48
+
49
+ def set_category
50
+ categories = MENU["kits"].map { |link| link.first.first if link.is_a?(Hash) }.compact
51
+ @category = params[:name]
52
+ if categories.flatten.include?(@category)
53
+ @category_kits = MENU["kits"].map { |link| link.first.last if link.is_a?(Hash) && link.first.first == @category }.compact.flatten
54
+ @kits = params[:name]
55
+ else
56
+ redirect_to root_path, flash: { error: "That kit does not exist" }
57
+ end
58
+ end
59
+
60
+ def set_kit
61
+ menu = MENU["kits"].map { |link| link.is_a?(Hash) ? link.first.last : link }
62
+ if menu.flatten.include?(params[:name])
63
+ @kit = params[:name]
64
+ else
65
+ redirect_to root_path, flash: { error: "That kit does not exist" }
66
+ end
67
+ end
68
+
69
+ def ensure_kit_type_exists
70
+ # TODO: unsure why we cannot simply use the helpers that are included in ApplicationController - fix this
71
+ is_rails_kit = action_name == "kit_show_rails"
72
+ files = is_rails_kit ? File.join("**", "*.erb") : File.join("**", "*.jsx")
73
+ kit_files = Dir.glob(files, base: "#{Playbook::Engine.root}/app/pb_kits/playbook/pb_#{@kit}/docs").present?
74
+ if !kit_files.present?
75
+ redirect_to action: is_rails_kit ? "kit_show_react" : "kit_show_rails"
76
+ end
77
+ end
78
+ end
79
+ end
@@ -0,0 +1,40 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_dependency "playbook/application_controller"
4
+ require "yaml"
5
+
6
+ module Playbook
7
+ class SamplesController < ApplicationController
8
+ before_action :set_sample, only: %i[sample_show_rails sample_show_react]
9
+
10
+ layout "playbook/samples"
11
+
12
+ def samples
13
+ params[:type] ||= "rails"
14
+ @type = params[:type]
15
+ end
16
+
17
+ def sample_show_rails
18
+ params[:type] ||= "rails"
19
+ @type = params[:type]
20
+ render template: "playbook/samples/sample_show"
21
+ end
22
+
23
+ def sample_show_react
24
+ params[:type] ||= "react"
25
+ @type = params[:type]
26
+ render template: "playbook/samples/sample_show"
27
+ end
28
+
29
+ private
30
+
31
+ def set_sample
32
+ menu = MENU["samples"].map { |link| link.is_a?(Hash) ? link.first.last : link }
33
+ if menu.flatten.include?(params[:name])
34
+ @sample = params[:name]
35
+ else
36
+ redirect_to root_path, flash: { error: "That kit does not exist" }
37
+ end
38
+ end
39
+ end
40
+ end
@@ -0,0 +1,9 @@
1
+ <%if !@kit_examples[:examples].nil? %>
2
+ <% @kit_examples[:examples].each do |kit_example| %>
3
+ <% kit_example.each do |key, item| %>
4
+ <div class="pb--doc <%=key.include?('_dark') ? 'dark_ui' : 'light_ui'%>">
5
+ <%= render partial: "config/kit_ui", locals: { key: key, type: @type, item: item, show_code: @show_code } %>
6
+ </div>
7
+ <% end %>
8
+ <% end %>
9
+ <% end %>
@@ -0,0 +1,3 @@
1
+ <div>
2
+ Flexbox list of thumbnail previews.
3
+ </div>
@@ -0,0 +1,40 @@
1
+
2
+ <% type ||= "rails" %>
3
+
4
+ <% if type == "react" %>
5
+ <% contents = File.read("#{Playbook::Engine.root}/app/pb_kits/playbook/pb_#{@kit_examples[:kit]}/docs/_#{key}.jsx") %>
6
+ <% else %>
7
+ <% contents = File.read("#{Playbook::Engine.root}/app/pb_kits/playbook/pb_#{@kit_examples[:kit]}/docs/_#{key}.html.erb") %>
8
+ <% end %>
9
+
10
+ <div class="pb--kit-example">
11
+ <%= pb_rails("caption", props: { text: item }) %>
12
+ <br>
13
+ <% if type == "rails" %>
14
+ <%= render partial: "pb_#{@kit_examples[:kit]}/docs/#{key}" %>
15
+ <% elsif type == "react" %>
16
+ <%= pb_react(key.camelize) %>
17
+ <% end %>
18
+ <br>
19
+ </div>
20
+
21
+ <% if @show_code%>
22
+ <div class="markdown pb--kit-example-markdown">
23
+ <%= markdown(get_per_sample_descriptions(@kit_examples[:kit], key)) %>
24
+ </div>
25
+ <div class="pb--codeControls">
26
+ <ul>
27
+ <li>
28
+ <a href="#" data-toggle="code_example">Code Example</a>
29
+ </li>
30
+ </ul>
31
+ </div>
32
+ <div class="pb--codeCopy" data-action="toggle" data-togglable="code_example" style="display: none" >
33
+ <a href="#" data-toggle="false" class="pb--close-toggle">Close</a>
34
+ <% if type == "rails" %>
35
+ <pre class="highlight"><%= raw rouge(contents, "erb") %></pre>
36
+ <% elsif type == "react" %>
37
+ <pre class="highlight"><%= raw rouge(contents, "react")%></pre>
38
+ <% end %>
39
+ </div>
40
+ <% end %>
@@ -0,0 +1,18 @@
1
+ <% if defined?(@kit_api) && @kit_api.present? %>
2
+ <div data-action="toggle" data-togglable="prop_example" class="pb--propsTable">
3
+ <table class="pb--propsTable--table">
4
+ <thead>
5
+ <tr>
6
+ <th>Available Props</th>
7
+ </tr>
8
+ </thead>
9
+ <tbody>
10
+ <% @kit_api.each_with_index do |(key,value),index| %>
11
+ <tr>
12
+ <td><%= key %></td>
13
+ </tr>
14
+ <% end %>
15
+ </tbody>
16
+ </table>
17
+ </div>
18
+ <% end %>
@@ -0,0 +1,93 @@
1
+ samples:
2
+ - dashboards
3
+ - registration
4
+ - filter_table
5
+
6
+ kits:
7
+ - avatar
8
+ - avatar_action_button
9
+ - badge
10
+ - buttons:
11
+ - button
12
+ - circle_icon_button
13
+ - card
14
+ - checkbox
15
+ - charts_and_graphs:
16
+ - bar_graph
17
+ - legend
18
+ - line_graph
19
+ - distribution_bar
20
+ - circle_chart
21
+
22
+ - filter
23
+ - fixed_confirmation_toast
24
+ - flex
25
+ - forms:
26
+ - file_upload
27
+ - form
28
+ - form_pill
29
+ - radio
30
+ - select
31
+ - selectable_card
32
+ - selectable_card_icon
33
+ - selectable_icon
34
+ - text_input
35
+ - textarea
36
+ - typeahead
37
+ - toggle
38
+ - highlight
39
+ - hashtag
40
+ - icon
41
+ - icon_circle
42
+ - icon_value
43
+ - image
44
+ - installer
45
+ - layout
46
+ - list
47
+ - loading_inline
48
+ - logistic
49
+ - multiple_users
50
+ - multiple_users_stacked
51
+ - nav
52
+ - online_status
53
+ - pill
54
+ - popover
55
+ - progress_pills
56
+ - progress_simple
57
+ - progress_step
58
+ - section_separator
59
+ - source
60
+ - star_rating
61
+ - stat_change
62
+ - table
63
+ - timeline
64
+ - tooltip
65
+ - typography:
66
+ - body
67
+ - caption
68
+ - title
69
+ - typography_patterns:
70
+ - contact
71
+ - currency
72
+ - dashboard_value
73
+ - date
74
+ - date_range_inline
75
+ - date_range_stacked
76
+ - date_stacked
77
+ - date_time_stacked
78
+ - date_year_stacked
79
+ - home_address_street
80
+ - label_pill
81
+ - label_value
82
+ - message
83
+ - person
84
+ - person_contact
85
+ - stat_value
86
+ - time
87
+ - time_stacked
88
+ - timestamp
89
+ - time_range_inline
90
+ - title_count
91
+ - title_detail
92
+ - weekday_stacked
93
+ - user
@@ -1,7 +1,3 @@
1
- import './_playbook.scss'
2
- import 'lazysizes/plugins/attrchange/ls.attrchange'
3
- import 'lazysizes'
4
-
5
1
  // React Component JSX Imports from the React Kits
6
2
  export Avatar from './pb_avatar/_avatar.jsx'
7
3
  export AvatarActionButton from './pb_avatar_action_button/_avatar_action_button.jsx'
@@ -0,0 +1,55 @@
1
+ import '../../../../fonts/fontawesome-min.js'
2
+ import '../../../../fonts/regular-min.js'
3
+ import './main.scss'
4
+ import '../vendor.js'
5
+
6
+ // Move to separate file
7
+ window.$(document).on('click', '[data-toggle]', function(e) {
8
+ e.preventDefault()
9
+
10
+ var kitContainer = window.$(this).closest('.pb--doc')
11
+ var toggleTarget = window.$(this).data('toggle')
12
+
13
+ window
14
+ .$(kitContainer)
15
+ .find('[data-action="toggle"]')
16
+ .hide()
17
+ window
18
+ .$(kitContainer)
19
+ .find('[data-togglable="' + toggleTarget + '"]')
20
+ .show()
21
+ })
22
+
23
+ window.$(document).ready(() => {
24
+ $('.compress').hide()
25
+
26
+ window.$(document).on('click', '.toggle-button', (e) => {
27
+ e.preventDefault()
28
+ $('.pb--codeCopy').toggleClass('close')
29
+ })
30
+
31
+ $('.expand').click(() => {
32
+ $('.sample-nav').hide()
33
+ $('.compress').show()
34
+ })
35
+
36
+ $('.compress').click(() => {
37
+ $('.sample-nav').show()
38
+ $('.compress').hide()
39
+ })
40
+
41
+ const setClipboard = (value) => {
42
+ var tempInput = document.createElement('textarea')
43
+ tempInput.style = 'position: absolute; left: -1000px; top: -1000px'
44
+ tempInput.value = value
45
+ document.body.appendChild(tempInput)
46
+ tempInput.select()
47
+ document.execCommand('copy')
48
+ document.body.removeChild(tempInput)
49
+ }
50
+
51
+ $('.copy-clipboard').click(() => {
52
+ var copyText = document.querySelector('.hiddenCodeforCopy').textContent
53
+ setClipboard(copyText)
54
+ })
55
+ })