shoelace-rails-ui 0.1.0 → 0.1.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (346) hide show
  1. checksums.yaml +4 -4
  2. data/MIT-LICENSE +20 -0
  3. data/README.md +49 -22
  4. data/Rakefile +5 -13
  5. data/app/assets/config/shoelace_rails_ui_manifest.js +1 -0
  6. data/app/assets/javascripts/shoelace.js +300 -0
  7. data/app/assets/stylesheets/sl_styles_light.css +455 -0
  8. data/app/controllers/shoelace/rails/ui/application_controller.rb +8 -0
  9. data/app/helpers/shoelace/rails/ui/application_helper.rb +11 -0
  10. data/app/helpers/shoelace/rails/ui/form_helper.rb +442 -0
  11. data/app/jobs/shoelace/rails/ui/application_job.rb +8 -0
  12. data/app/mailers/shoelace/rails/ui/application_mailer.rb +10 -0
  13. data/app/models/shoelace/rails/ui/application_record.rb +9 -0
  14. data/app/views/layouts/shoelace/rails/ui/application.html.erb +15 -0
  15. data/config/routes.rb +2 -0
  16. data/lib/shoelace/rails/ui/engine.rb +15 -0
  17. data/lib/shoelace/rails/ui/version.rb +1 -3
  18. data/lib/shoelace/rails/ui.rb +2 -4
  19. data/lib/tasks/shoelace/rails/ui_tasks.rake +4 -0
  20. metadata +36 -334
  21. data/.DS_Store +0 -0
  22. data/CHANGELOG.md +0 -5
  23. data/CODE_OF_CONDUCT.md +0 -84
  24. data/Gemfile +0 -12
  25. data/Gemfile.lock +0 -42
  26. data/LICENSE.txt +0 -21
  27. data/README-real.md +0 -24
  28. data/bin/console +0 -15
  29. data/bin/setup +0 -8
  30. data/regenerate.rb +0 -48
  31. data/remote-src/.DS_Store +0 -0
  32. data/remote-src/2.0.0.beta64/.DS_Store +0 -0
  33. data/remote-src/2.0.0.beta64/shoelace-next/.editorconfig +0 -15
  34. data/remote-src/2.0.0.beta64/shoelace-next/.github/CODE_OF_CONDUCT.md +0 -44
  35. data/remote-src/2.0.0.beta64/shoelace-next/.github/FUNDING.yml +0 -1
  36. data/remote-src/2.0.0.beta64/shoelace-next/.github/ISSUE_TEMPLATE/bug_report.md +0 -36
  37. data/remote-src/2.0.0.beta64/shoelace-next/.github/ISSUE_TEMPLATE/config.yml +0 -4
  38. data/remote-src/2.0.0.beta64/shoelace-next/.github/ISSUE_TEMPLATE/feature_request.md +0 -17
  39. data/remote-src/2.0.0.beta64/shoelace-next/.github/SECURITY.md +0 -7
  40. data/remote-src/2.0.0.beta64/shoelace-next/.github/workflows/node.js.yml +0 -30
  41. data/remote-src/2.0.0.beta64/shoelace-next/.github/workflows/release.yml +0 -17
  42. data/remote-src/2.0.0.beta64/shoelace-next/.gitignore +0 -8
  43. data/remote-src/2.0.0.beta64/shoelace-next/.husky/pre-commit +0 -4
  44. data/remote-src/2.0.0.beta64/shoelace-next/.prettierignore +0 -12
  45. data/remote-src/2.0.0.beta64/shoelace-next/.vscode/extensions.json +0 -9
  46. data/remote-src/2.0.0.beta64/shoelace-next/.vscode/settings.json +0 -4
  47. data/remote-src/2.0.0.beta64/shoelace-next/CONTRIBUTING.md +0 -5
  48. data/remote-src/2.0.0.beta64/shoelace-next/LICENSE.md +0 -7
  49. data/remote-src/2.0.0.beta64/shoelace-next/README.md +0 -94
  50. data/remote-src/2.0.0.beta64/shoelace-next/cspell.json +0 -110
  51. data/remote-src/2.0.0.beta64/shoelace-next/custom-elements-manifest.config.js +0 -104
  52. data/remote-src/2.0.0.beta64/shoelace-next/docs/404.md +0 -5
  53. data/remote-src/2.0.0.beta64/shoelace-next/docs/_sidebar.md +0 -89
  54. data/remote-src/2.0.0.beta64/shoelace-next/docs/assets/icons/sprite.svg +0 -1
  55. data/remote-src/2.0.0.beta64/shoelace-next/docs/assets/images/chrome.png +0 -0
  56. data/remote-src/2.0.0.beta64/shoelace-next/docs/assets/images/edge.png +0 -0
  57. data/remote-src/2.0.0.beta64/shoelace-next/docs/assets/images/firefox.png +0 -0
  58. data/remote-src/2.0.0.beta64/shoelace-next/docs/assets/images/logo.svg +0 -7
  59. data/remote-src/2.0.0.beta64/shoelace-next/docs/assets/images/og-image.png +0 -0
  60. data/remote-src/2.0.0.beta64/shoelace-next/docs/assets/images/opera.png +0 -0
  61. data/remote-src/2.0.0.beta64/shoelace-next/docs/assets/images/safari.png +0 -0
  62. data/remote-src/2.0.0.beta64/shoelace-next/docs/assets/images/shoe.svg +0 -134
  63. data/remote-src/2.0.0.beta64/shoelace-next/docs/assets/images/tie.webp +0 -0
  64. data/remote-src/2.0.0.beta64/shoelace-next/docs/assets/images/touch-icon.png +0 -0
  65. data/remote-src/2.0.0.beta64/shoelace-next/docs/assets/images/twitter-card.png +0 -0
  66. data/remote-src/2.0.0.beta64/shoelace-next/docs/assets/images/undraw-content-team.svg +0 -80
  67. data/remote-src/2.0.0.beta64/shoelace-next/docs/assets/images/undraw-not-found.svg +0 -1
  68. data/remote-src/2.0.0.beta64/shoelace-next/docs/assets/images/walk.gif +0 -0
  69. data/remote-src/2.0.0.beta64/shoelace-next/docs/assets/images/wordmark.svg +0 -7
  70. data/remote-src/2.0.0.beta64/shoelace-next/docs/assets/plugins/code-block/code-block.css +0 -228
  71. data/remote-src/2.0.0.beta64/shoelace-next/docs/assets/plugins/code-block/code-block.js +0 -376
  72. data/remote-src/2.0.0.beta64/shoelace-next/docs/assets/plugins/metadata/metadata.js +0 -537
  73. data/remote-src/2.0.0.beta64/shoelace-next/docs/assets/plugins/scroll-position/scroll-position.js +0 -24
  74. data/remote-src/2.0.0.beta64/shoelace-next/docs/assets/plugins/search/lunr.min.js +0 -1311
  75. data/remote-src/2.0.0.beta64/shoelace-next/docs/assets/plugins/search/search.css +0 -180
  76. data/remote-src/2.0.0.beta64/shoelace-next/docs/assets/plugins/search/search.js +0 -293
  77. data/remote-src/2.0.0.beta64/shoelace-next/docs/assets/plugins/theme-picker/theme-picker.css +0 -29
  78. data/remote-src/2.0.0.beta64/shoelace-next/docs/assets/plugins/theme-picker/theme-picker.js +0 -83
  79. data/remote-src/2.0.0.beta64/shoelace-next/docs/assets/styles/docs.css +0 -642
  80. data/remote-src/2.0.0.beta64/shoelace-next/docs/components/alert.md +0 -441
  81. data/remote-src/2.0.0.beta64/shoelace-next/docs/components/animated-image.md +0 -128
  82. data/remote-src/2.0.0.beta64/shoelace-next/docs/components/animation.md +0 -351
  83. data/remote-src/2.0.0.beta64/shoelace-next/docs/components/avatar.md +0 -201
  84. data/remote-src/2.0.0.beta64/shoelace-next/docs/components/badge.md +0 -191
  85. data/remote-src/2.0.0.beta64/shoelace-next/docs/components/breadcrumb-item.md +0 -35
  86. data/remote-src/2.0.0.beta64/shoelace-next/docs/components/breadcrumb.md +0 -266
  87. data/remote-src/2.0.0.beta64/shoelace-next/docs/components/button-group.md +0 -470
  88. data/remote-src/2.0.0.beta64/shoelace-next/docs/components/button.md +0 -453
  89. data/remote-src/2.0.0.beta64/shoelace-next/docs/components/card.md +0 -311
  90. data/remote-src/2.0.0.beta64/shoelace-next/docs/components/checkbox.md +0 -71
  91. data/remote-src/2.0.0.beta64/shoelace-next/docs/components/color-picker.md +0 -101
  92. data/remote-src/2.0.0.beta64/shoelace-next/docs/components/details.md +0 -89
  93. data/remote-src/2.0.0.beta64/shoelace-next/docs/components/dialog.md +0 -265
  94. data/remote-src/2.0.0.beta64/shoelace-next/docs/components/divider.md +0 -152
  95. data/remote-src/2.0.0.beta64/shoelace-next/docs/components/drawer.md +0 -452
  96. data/remote-src/2.0.0.beta64/shoelace-next/docs/components/dropdown.md +0 -389
  97. data/remote-src/2.0.0.beta64/shoelace-next/docs/components/format-bytes.md +0 -126
  98. data/remote-src/2.0.0.beta64/shoelace-next/docs/components/format-date.md +0 -120
  99. data/remote-src/2.0.0.beta64/shoelace-next/docs/components/format-number.md +0 -124
  100. data/remote-src/2.0.0.beta64/shoelace-next/docs/components/icon-button.md +0 -160
  101. data/remote-src/2.0.0.beta64/shoelace-next/docs/components/icon.md +0 -711
  102. data/remote-src/2.0.0.beta64/shoelace-next/docs/components/image-comparer.md +0 -51
  103. data/remote-src/2.0.0.beta64/shoelace-next/docs/components/include.md +0 -47
  104. data/remote-src/2.0.0.beta64/shoelace-next/docs/components/input.md +0 -283
  105. data/remote-src/2.0.0.beta64/shoelace-next/docs/components/menu-item.md +0 -255
  106. data/remote-src/2.0.0.beta64/shoelace-next/docs/components/menu-label.md +0 -52
  107. data/remote-src/2.0.0.beta64/shoelace-next/docs/components/menu.md +0 -49
  108. data/remote-src/2.0.0.beta64/shoelace-next/docs/components/mutation-observer.md +0 -196
  109. data/remote-src/2.0.0.beta64/shoelace-next/docs/components/progress-bar.md +0 -144
  110. data/remote-src/2.0.0.beta64/shoelace-next/docs/components/progress-ring.md +0 -178
  111. data/remote-src/2.0.0.beta64/shoelace-next/docs/components/qr-code.md +0 -167
  112. data/remote-src/2.0.0.beta64/shoelace-next/docs/components/radio-group.md +0 -52
  113. data/remote-src/2.0.0.beta64/shoelace-next/docs/components/radio.md +0 -59
  114. data/remote-src/2.0.0.beta64/shoelace-next/docs/components/range.md +0 -180
  115. data/remote-src/2.0.0.beta64/shoelace-next/docs/components/rating.md +0 -153
  116. data/remote-src/2.0.0.beta64/shoelace-next/docs/components/relative-time.md +0 -105
  117. data/remote-src/2.0.0.beta64/shoelace-next/docs/components/resize-observer.md +0 -68
  118. data/remote-src/2.0.0.beta64/shoelace-next/docs/components/responsive-media.md +0 -73
  119. data/remote-src/2.0.0.beta64/shoelace-next/docs/components/select.md +0 -457
  120. data/remote-src/2.0.0.beta64/shoelace-next/docs/components/skeleton.md +0 -439
  121. data/remote-src/2.0.0.beta64/shoelace-next/docs/components/spinner.md +0 -86
  122. data/remote-src/2.0.0.beta64/shoelace-next/docs/components/split-panel.md +0 -671
  123. data/remote-src/2.0.0.beta64/shoelace-next/docs/components/switch.md +0 -77
  124. data/remote-src/2.0.0.beta64/shoelace-next/docs/components/tab-group.md +0 -359
  125. data/remote-src/2.0.0.beta64/shoelace-next/docs/components/tab-panel.md +0 -41
  126. data/remote-src/2.0.0.beta64/shoelace-next/docs/components/tab.md +0 -29
  127. data/remote-src/2.0.0.beta64/shoelace-next/docs/components/tag.md +0 -142
  128. data/remote-src/2.0.0.beta64/shoelace-next/docs/components/textarea.md +0 -184
  129. data/remote-src/2.0.0.beta64/shoelace-next/docs/components/tooltip.md +0 -410
  130. data/remote-src/2.0.0.beta64/shoelace-next/docs/components/visually-hidden.md +0 -47
  131. data/remote-src/2.0.0.beta64/shoelace-next/docs/frameworks/angular.md +0 -46
  132. data/remote-src/2.0.0.beta64/shoelace-next/docs/frameworks/react.md +0 -156
  133. data/remote-src/2.0.0.beta64/shoelace-next/docs/frameworks/vue.md +0 -92
  134. data/remote-src/2.0.0.beta64/shoelace-next/docs/getting-started/customizing.md +0 -153
  135. data/remote-src/2.0.0.beta64/shoelace-next/docs/getting-started/form-controls.md +0 -336
  136. data/remote-src/2.0.0.beta64/shoelace-next/docs/getting-started/installation.md +0 -137
  137. data/remote-src/2.0.0.beta64/shoelace-next/docs/getting-started/localization.md +0 -140
  138. data/remote-src/2.0.0.beta64/shoelace-next/docs/getting-started/overview.md +0 -131
  139. data/remote-src/2.0.0.beta64/shoelace-next/docs/getting-started/themes.md +0 -139
  140. data/remote-src/2.0.0.beta64/shoelace-next/docs/getting-started/usage.md +0 -173
  141. data/remote-src/2.0.0.beta64/shoelace-next/docs/index.html +0 -98
  142. data/remote-src/2.0.0.beta64/shoelace-next/docs/resources/accessibility.md +0 -18
  143. data/remote-src/2.0.0.beta64/shoelace-next/docs/resources/changelog.md +0 -925
  144. data/remote-src/2.0.0.beta64/shoelace-next/docs/resources/community.md +0 -53
  145. data/remote-src/2.0.0.beta64/shoelace-next/docs/resources/contributing.md +0 -261
  146. data/remote-src/2.0.0.beta64/shoelace-next/docs/tokens/border-radius.md +0 -12
  147. data/remote-src/2.0.0.beta64/shoelace-next/docs/tokens/color.md +0 -439
  148. data/remote-src/2.0.0.beta64/shoelace-next/docs/tokens/elevation.md +0 -11
  149. data/remote-src/2.0.0.beta64/shoelace-next/docs/tokens/spacing.md +0 -16
  150. data/remote-src/2.0.0.beta64/shoelace-next/docs/tokens/transition.md +0 -11
  151. data/remote-src/2.0.0.beta64/shoelace-next/docs/tokens/typography.md +0 -58
  152. data/remote-src/2.0.0.beta64/shoelace-next/docs/tokens/z-index.md +0 -11
  153. data/remote-src/2.0.0.beta64/shoelace-next/docs/tutorials/integrating-with-laravel.md +0 -117
  154. data/remote-src/2.0.0.beta64/shoelace-next/docs/tutorials/integrating-with-nextjs.md +0 -137
  155. data/remote-src/2.0.0.beta64/shoelace-next/docs/tutorials/integrating-with-rails.md +0 -103
  156. data/remote-src/2.0.0.beta64/shoelace-next/lint-staged.config.js +0 -4
  157. data/remote-src/2.0.0.beta64/shoelace-next/package-lock.json +0 -9534
  158. data/remote-src/2.0.0.beta64/shoelace-next/package.json +0 -93
  159. data/remote-src/2.0.0.beta64/shoelace-next/prettier.config.cjs +0 -17
  160. data/remote-src/2.0.0.beta64/shoelace-next/scripts/build.js +0 -158
  161. data/remote-src/2.0.0.beta64/shoelace-next/scripts/make-css.js +0 -42
  162. data/remote-src/2.0.0.beta64/shoelace-next/scripts/make-icons.js +0 -71
  163. data/remote-src/2.0.0.beta64/shoelace-next/scripts/make-metadata.js +0 -11
  164. data/remote-src/2.0.0.beta64/shoelace-next/scripts/make-react.js +0 -63
  165. data/remote-src/2.0.0.beta64/shoelace-next/scripts/make-search.js +0 -100
  166. data/remote-src/2.0.0.beta64/shoelace-next/scripts/make-vscode-data.js +0 -58
  167. data/remote-src/2.0.0.beta64/shoelace-next/scripts/plop/plopfile.js +0 -67
  168. data/remote-src/2.0.0.beta64/shoelace-next/scripts/plop/templates/component/component.hbs +0 -44
  169. data/remote-src/2.0.0.beta64/shoelace-next/scripts/plop/templates/component/docs.hbs +0 -21
  170. data/remote-src/2.0.0.beta64/shoelace-next/scripts/plop/templates/component/styles.hbs +0 -10
  171. data/remote-src/2.0.0.beta64/shoelace-next/scripts/plop/templates/component/tests.hbs +0 -13
  172. data/remote-src/2.0.0.beta64/shoelace-next/scripts/shared.js +0 -18
  173. data/remote-src/2.0.0.beta64/shoelace-next/src/components/alert/alert.styles.ts +0 -95
  174. data/remote-src/2.0.0.beta64/shoelace-next/src/components/alert/alert.test.ts +0 -93
  175. data/remote-src/2.0.0.beta64/shoelace-next/src/components/alert/alert.ts +0 -238
  176. data/remote-src/2.0.0.beta64/shoelace-next/src/components/animated-image/animated-image.styles.ts +0 -52
  177. data/remote-src/2.0.0.beta64/shoelace-next/src/components/animated-image/animated-image.test.ts +0 -13
  178. data/remote-src/2.0.0.beta64/shoelace-next/src/components/animated-image/animated-image.ts +0 -120
  179. data/remote-src/2.0.0.beta64/shoelace-next/src/components/animation/animation.styles.ts +0 -10
  180. data/remote-src/2.0.0.beta64/shoelace-next/src/components/animation/animation.ts +0 -222
  181. data/remote-src/2.0.0.beta64/shoelace-next/src/components/animation/animations.ts +0 -15
  182. data/remote-src/2.0.0.beta64/shoelace-next/src/components/avatar/avatar.styles.ts +0 -66
  183. data/remote-src/2.0.0.beta64/shoelace-next/src/components/avatar/avatar.test.ts +0 -111
  184. data/remote-src/2.0.0.beta64/shoelace-next/src/components/avatar/avatar.ts +0 -83
  185. data/remote-src/2.0.0.beta64/shoelace-next/src/components/badge/badge.styles.ts +0 -94
  186. data/remote-src/2.0.0.beta64/shoelace-next/src/components/badge/badge.test.ts +0 -77
  187. data/remote-src/2.0.0.beta64/shoelace-next/src/components/badge/badge.ts +0 -53
  188. data/remote-src/2.0.0.beta64/shoelace-next/src/components/breadcrumb/breadcrumb.styles.ts +0 -12
  189. data/remote-src/2.0.0.beta64/shoelace-next/src/components/breadcrumb/breadcrumb.test.ts +0 -104
  190. data/remote-src/2.0.0.beta64/shoelace-next/src/components/breadcrumb/breadcrumb.ts +0 -82
  191. data/remote-src/2.0.0.beta64/shoelace-next/src/components/breadcrumb-item/breadcrumb-item.styles.ts +0 -85
  192. data/remote-src/2.0.0.beta64/shoelace-next/src/components/breadcrumb-item/breadcrumb-item.test.ts +0 -160
  193. data/remote-src/2.0.0.beta64/shoelace-next/src/components/breadcrumb-item/breadcrumb-item.ts +0 -92
  194. data/remote-src/2.0.0.beta64/shoelace-next/src/components/button/button.styles.ts +0 -637
  195. data/remote-src/2.0.0.beta64/shoelace-next/src/components/button/button.ts +0 -209
  196. data/remote-src/2.0.0.beta64/shoelace-next/src/components/button-group/button-group.styles.ts +0 -15
  197. data/remote-src/2.0.0.beta64/shoelace-next/src/components/button-group/button-group.ts +0 -84
  198. data/remote-src/2.0.0.beta64/shoelace-next/src/components/card/card.styles.ts +0 -62
  199. data/remote-src/2.0.0.beta64/shoelace-next/src/components/card/card.test.ts +0 -139
  200. data/remote-src/2.0.0.beta64/shoelace-next/src/components/card/card.ts +0 -68
  201. data/remote-src/2.0.0.beta64/shoelace-next/src/components/checkbox/checkbox.styles.ts +0 -108
  202. data/remote-src/2.0.0.beta64/shoelace-next/src/components/checkbox/checkbox.test.ts +0 -47
  203. data/remote-src/2.0.0.beta64/shoelace-next/src/components/checkbox/checkbox.ts +0 -203
  204. data/remote-src/2.0.0.beta64/shoelace-next/src/components/color-picker/color-picker.styles.ts +0 -326
  205. data/remote-src/2.0.0.beta64/shoelace-next/src/components/color-picker/color-picker.test.ts +0 -43
  206. data/remote-src/2.0.0.beta64/shoelace-next/src/components/color-picker/color-picker.ts +0 -853
  207. data/remote-src/2.0.0.beta64/shoelace-next/src/components/details/details.styles.ts +0 -73
  208. data/remote-src/2.0.0.beta64/shoelace-next/src/components/details/details.test.ts +0 -153
  209. data/remote-src/2.0.0.beta64/shoelace-next/src/components/details/details.ts +0 -192
  210. data/remote-src/2.0.0.beta64/shoelace-next/src/components/dialog/dialog.styles.ts +0 -106
  211. data/remote-src/2.0.0.beta64/shoelace-next/src/components/dialog/dialog.test.ts +0 -135
  212. data/remote-src/2.0.0.beta64/shoelace-next/src/components/dialog/dialog.ts +0 -296
  213. data/remote-src/2.0.0.beta64/shoelace-next/src/components/divider/divider.styles.ts +0 -25
  214. data/remote-src/2.0.0.beta64/shoelace-next/src/components/divider/divider.ts +0 -34
  215. data/remote-src/2.0.0.beta64/shoelace-next/src/components/drawer/drawer.styles.ts +0 -142
  216. data/remote-src/2.0.0.beta64/shoelace-next/src/components/drawer/drawer.test.ts +0 -135
  217. data/remote-src/2.0.0.beta64/shoelace-next/src/components/drawer/drawer.ts +0 -377
  218. data/remote-src/2.0.0.beta64/shoelace-next/src/components/dropdown/dropdown.styles.ts +0 -58
  219. data/remote-src/2.0.0.beta64/shoelace-next/src/components/dropdown/dropdown.test.ts +0 -147
  220. data/remote-src/2.0.0.beta64/shoelace-next/src/components/dropdown/dropdown.ts +0 -459
  221. data/remote-src/2.0.0.beta64/shoelace-next/src/components/format-bytes/format-bytes.ts +0 -35
  222. data/remote-src/2.0.0.beta64/shoelace-next/src/components/format-date/format-date.ts +0 -81
  223. data/remote-src/2.0.0.beta64/shoelace-next/src/components/format-number/format-number.ts +0 -69
  224. data/remote-src/2.0.0.beta64/shoelace-next/src/components/icon/icon.styles.ts +0 -21
  225. data/remote-src/2.0.0.beta64/shoelace-next/src/components/icon/icon.ts +0 -131
  226. data/remote-src/2.0.0.beta64/shoelace-next/src/components/icon/library.default.ts +0 -9
  227. data/remote-src/2.0.0.beta64/shoelace-next/src/components/icon/library.system.ts +0 -97
  228. data/remote-src/2.0.0.beta64/shoelace-next/src/components/icon/library.ts +0 -49
  229. data/remote-src/2.0.0.beta64/shoelace-next/src/components/icon/request.ts +0 -36
  230. data/remote-src/2.0.0.beta64/shoelace-next/src/components/icon-button/icon-button.styles.ts +0 -48
  231. data/remote-src/2.0.0.beta64/shoelace-next/src/components/icon-button/icon-button.ts +0 -100
  232. data/remote-src/2.0.0.beta64/shoelace-next/src/components/image-comparer/image-comparer.styles.ts +0 -77
  233. data/remote-src/2.0.0.beta64/shoelace-next/src/components/image-comparer/image-comparer.ts +0 -147
  234. data/remote-src/2.0.0.beta64/shoelace-next/src/components/include/include.styles.ts +0 -10
  235. data/remote-src/2.0.0.beta64/shoelace-next/src/components/include/include.test.ts +0 -62
  236. data/remote-src/2.0.0.beta64/shoelace-next/src/components/include/include.ts +0 -80
  237. data/remote-src/2.0.0.beta64/shoelace-next/src/components/include/request.ts +0 -23
  238. data/remote-src/2.0.0.beta64/shoelace-next/src/components/input/input.styles.ts +0 -282
  239. data/remote-src/2.0.0.beta64/shoelace-next/src/components/input/input.test.ts +0 -35
  240. data/remote-src/2.0.0.beta64/shoelace-next/src/components/input/input.ts +0 -410
  241. data/remote-src/2.0.0.beta64/shoelace-next/src/components/menu/menu.styles.ts +0 -18
  242. data/remote-src/2.0.0.beta64/shoelace-next/src/components/menu/menu.ts +0 -205
  243. data/remote-src/2.0.0.beta64/shoelace-next/src/components/menu-item/menu-item.styles.ts +0 -84
  244. data/remote-src/2.0.0.beta64/shoelace-next/src/components/menu-item/menu-item.ts +0 -92
  245. data/remote-src/2.0.0.beta64/shoelace-next/src/components/menu-label/menu-label.styles.ts +0 -21
  246. data/remote-src/2.0.0.beta64/shoelace-next/src/components/menu-label/menu-label.ts +0 -30
  247. data/remote-src/2.0.0.beta64/shoelace-next/src/components/mutation-observer/mutation-observer.styles.ts +0 -10
  248. data/remote-src/2.0.0.beta64/shoelace-next/src/components/mutation-observer/mutation-observer.test.ts +0 -13
  249. data/remote-src/2.0.0.beta64/shoelace-next/src/components/mutation-observer/mutation-observer.ts +0 -118
  250. data/remote-src/2.0.0.beta64/shoelace-next/src/components/progress-bar/progress-bar.styles.ts +0 -57
  251. data/remote-src/2.0.0.beta64/shoelace-next/src/components/progress-bar/progress-bar.test.ts +0 -89
  252. data/remote-src/2.0.0.beta64/shoelace-next/src/components/progress-bar/progress-bar.ts +0 -74
  253. data/remote-src/2.0.0.beta64/shoelace-next/src/components/progress-ring/progress-ring.styles.ts +0 -66
  254. data/remote-src/2.0.0.beta64/shoelace-next/src/components/progress-ring/progress-ring.test.ts +0 -68
  255. data/remote-src/2.0.0.beta64/shoelace-next/src/components/progress-ring/progress-ring.ts +0 -84
  256. data/remote-src/2.0.0.beta64/shoelace-next/src/components/qr-code/qr-code.styles.ts +0 -22
  257. data/remote-src/2.0.0.beta64/shoelace-next/src/components/qr-code/qr-code.ts +0 -90
  258. data/remote-src/2.0.0.beta64/shoelace-next/src/components/radio/radio.styles.ts +0 -107
  259. data/remote-src/2.0.0.beta64/shoelace-next/src/components/radio/radio.test.ts +0 -65
  260. data/remote-src/2.0.0.beta64/shoelace-next/src/components/radio/radio.ts +0 -226
  261. data/remote-src/2.0.0.beta64/shoelace-next/src/components/radio-group/radio-group.styles.ts +0 -47
  262. data/remote-src/2.0.0.beta64/shoelace-next/src/components/radio-group/radio-group.ts +0 -66
  263. data/remote-src/2.0.0.beta64/shoelace-next/src/components/range/range.styles.ts +0 -192
  264. data/remote-src/2.0.0.beta64/shoelace-next/src/components/range/range.ts +0 -273
  265. data/remote-src/2.0.0.beta64/shoelace-next/src/components/rating/rating.styles.ts +0 -79
  266. data/remote-src/2.0.0.beta64/shoelace-next/src/components/rating/rating.ts +0 -249
  267. data/remote-src/2.0.0.beta64/shoelace-next/src/components/relative-time/relative-time.ts +0 -116
  268. data/remote-src/2.0.0.beta64/shoelace-next/src/components/resize-observer/resize-observer.styles.ts +0 -10
  269. data/remote-src/2.0.0.beta64/shoelace-next/src/components/resize-observer/resize-observer.ts +0 -87
  270. data/remote-src/2.0.0.beta64/shoelace-next/src/components/responsive-media/responsive-media.styles.ts +0 -36
  271. data/remote-src/2.0.0.beta64/shoelace-next/src/components/responsive-media/responsive-media.ts +0 -50
  272. data/remote-src/2.0.0.beta64/shoelace-next/src/components/select/select.styles.ts +0 -331
  273. data/remote-src/2.0.0.beta64/shoelace-next/src/components/select/select.test.ts +0 -56
  274. data/remote-src/2.0.0.beta64/shoelace-next/src/components/select/select.ts +0 -560
  275. data/remote-src/2.0.0.beta64/shoelace-next/src/components/skeleton/skeleton.styles.ts +0 -60
  276. data/remote-src/2.0.0.beta64/shoelace-next/src/components/skeleton/skeleton.ts +0 -46
  277. data/remote-src/2.0.0.beta64/shoelace-next/src/components/spinner/spinner.styles.ts +0 -56
  278. data/remote-src/2.0.0.beta64/shoelace-next/src/components/spinner/spinner.test.ts +0 -24
  279. data/remote-src/2.0.0.beta64/shoelace-next/src/components/spinner/spinner.ts +0 -34
  280. data/remote-src/2.0.0.beta64/shoelace-next/src/components/split-panel/split-panel.styles.ts +0 -76
  281. data/remote-src/2.0.0.beta64/shoelace-next/src/components/split-panel/split-panel.test.ts +0 -13
  282. data/remote-src/2.0.0.beta64/shoelace-next/src/components/split-panel/split-panel.ts +0 -272
  283. data/remote-src/2.0.0.beta64/shoelace-next/src/components/switch/switch.styles.ts +0 -135
  284. data/remote-src/2.0.0.beta64/shoelace-next/src/components/switch/switch.test.ts +0 -64
  285. data/remote-src/2.0.0.beta64/shoelace-next/src/components/switch/switch.ts +0 -187
  286. data/remote-src/2.0.0.beta64/shoelace-next/src/components/tab/tab.styles.ts +0 -61
  287. data/remote-src/2.0.0.beta64/shoelace-next/src/components/tab/tab.ts +0 -104
  288. data/remote-src/2.0.0.beta64/shoelace-next/src/components/tab-group/tab-group.styles.ts +0 -209
  289. data/remote-src/2.0.0.beta64/shoelace-next/src/components/tab-group/tab-group.ts +0 -409
  290. data/remote-src/2.0.0.beta64/shoelace-next/src/components/tab-panel/tab-panel.styles.ts +0 -17
  291. data/remote-src/2.0.0.beta64/shoelace-next/src/components/tab-panel/tab-panel.ts +0 -49
  292. data/remote-src/2.0.0.beta64/shoelace-next/src/components/tag/tag.styles.ts +0 -110
  293. data/remote-src/2.0.0.beta64/shoelace-next/src/components/tag/tag.ts +0 -92
  294. data/remote-src/2.0.0.beta64/shoelace-next/src/components/textarea/textarea.styles.ts +0 -167
  295. data/remote-src/2.0.0.beta64/shoelace-next/src/components/textarea/textarea.test.ts +0 -35
  296. data/remote-src/2.0.0.beta64/shoelace-next/src/components/textarea/textarea.ts +0 -339
  297. data/remote-src/2.0.0.beta64/shoelace-next/src/components/tooltip/tooltip.styles.ts +0 -131
  298. data/remote-src/2.0.0.beta64/shoelace-next/src/components/tooltip/tooltip.test.ts +0 -117
  299. data/remote-src/2.0.0.beta64/shoelace-next/src/components/tooltip/tooltip.ts +0 -355
  300. data/remote-src/2.0.0.beta64/shoelace-next/src/components/visually-hidden/visually-hidden.styles.ts +0 -18
  301. data/remote-src/2.0.0.beta64/shoelace-next/src/components/visually-hidden/visually-hidden.test.ts +0 -39
  302. data/remote-src/2.0.0.beta64/shoelace-next/src/components/visually-hidden/visually-hidden.ts +0 -24
  303. data/remote-src/2.0.0.beta64/shoelace-next/src/declaration.d.ts +0 -8
  304. data/remote-src/2.0.0.beta64/shoelace-next/src/internal/animate.ts +0 -70
  305. data/remote-src/2.0.0.beta64/shoelace-next/src/internal/event.ts +0 -35
  306. data/remote-src/2.0.0.beta64/shoelace-next/src/internal/focus-visible.ts +0 -26
  307. data/remote-src/2.0.0.beta64/shoelace-next/src/internal/form-control.ts +0 -203
  308. data/remote-src/2.0.0.beta64/shoelace-next/src/internal/formdata-event-polyfill.ts +0 -93
  309. data/remote-src/2.0.0.beta64/shoelace-next/src/internal/math.ts +0 -8
  310. data/remote-src/2.0.0.beta64/shoelace-next/src/internal/modal.ts +0 -53
  311. data/remote-src/2.0.0.beta64/shoelace-next/src/internal/number.ts +0 -32
  312. data/remote-src/2.0.0.beta64/shoelace-next/src/internal/offset.ts +0 -13
  313. data/remote-src/2.0.0.beta64/shoelace-next/src/internal/scroll.ts +0 -57
  314. data/remote-src/2.0.0.beta64/shoelace-next/src/internal/slot.ts +0 -91
  315. data/remote-src/2.0.0.beta64/shoelace-next/src/internal/string.ts +0 -3
  316. data/remote-src/2.0.0.beta64/shoelace-next/src/internal/support.ts +0 -15
  317. data/remote-src/2.0.0.beta64/shoelace-next/src/internal/tabbable.ts +0 -81
  318. data/remote-src/2.0.0.beta64/shoelace-next/src/internal/watch.ts +0 -40
  319. data/remote-src/2.0.0.beta64/shoelace-next/src/shoelace.ts +0 -58
  320. data/remote-src/2.0.0.beta64/shoelace-next/src/styles/component.styles.ts +0 -23
  321. data/remote-src/2.0.0.beta64/shoelace-next/src/styles/form-control.styles.ts +0 -52
  322. data/remote-src/2.0.0.beta64/shoelace-next/src/styles/utility.styles.ts +0 -23
  323. data/remote-src/2.0.0.beta64/shoelace-next/src/themes/dark.styles.ts +0 -524
  324. data/remote-src/2.0.0.beta64/shoelace-next/src/themes/light.styles.ts +0 -524
  325. data/remote-src/2.0.0.beta64/shoelace-next/src/translations/de-ch.ts +0 -21
  326. data/remote-src/2.0.0.beta64/shoelace-next/src/translations/de.ts +0 -21
  327. data/remote-src/2.0.0.beta64/shoelace-next/src/translations/en.ts +0 -21
  328. data/remote-src/2.0.0.beta64/shoelace-next/src/translations/es.ts +0 -21
  329. data/remote-src/2.0.0.beta64/shoelace-next/src/translations/fr.ts +0 -21
  330. data/remote-src/2.0.0.beta64/shoelace-next/src/translations/he.ts +0 -21
  331. data/remote-src/2.0.0.beta64/shoelace-next/src/translations/ja.ts +0 -21
  332. data/remote-src/2.0.0.beta64/shoelace-next/src/translations/nl.ts +0 -21
  333. data/remote-src/2.0.0.beta64/shoelace-next/src/translations/pl.ts +0 -21
  334. data/remote-src/2.0.0.beta64/shoelace-next/src/translations/pt.ts +0 -21
  335. data/remote-src/2.0.0.beta64/shoelace-next/src/translations/ru.ts +0 -21
  336. data/remote-src/2.0.0.beta64/shoelace-next/src/utilities/animation-registry.ts +0 -59
  337. data/remote-src/2.0.0.beta64/shoelace-next/src/utilities/animation.ts +0 -1
  338. data/remote-src/2.0.0.beta64/shoelace-next/src/utilities/base-path.ts +0 -43
  339. data/remote-src/2.0.0.beta64/shoelace-next/src/utilities/form.ts +0 -22
  340. data/remote-src/2.0.0.beta64/shoelace-next/src/utilities/icon-library.ts +0 -1
  341. data/remote-src/2.0.0.beta64/shoelace-next/src/utilities/localize.ts +0 -5
  342. data/remote-src/2.0.0.beta64/shoelace-next/tsconfig.json +0 -35
  343. data/remote-src/2.0.0.beta64/shoelace-next/vercel.json +0 -4
  344. data/remote-src/2.0.0.beta64/shoelace-next/web-test-runner.config.js +0 -14
  345. data/shoelace-rails-ui.gemspec +0 -39
  346. data/shoelace-rails-ui.rb +0 -0
@@ -1,228 +0,0 @@
1
- .code-block {
2
- position: relative;
3
- border-radius: 3px;
4
- background-color: var(--sl-color-neutral-50);
5
- margin-bottom: 1.5rem;
6
- }
7
-
8
- .code-block__preview {
9
- position: relative;
10
- border: solid 1px var(--sl-color-neutral-200);
11
- border-bottom: none;
12
- border-top-left-radius: 3px;
13
- border-top-right-radius: 3px;
14
- background-color: var(--sl-color-neutral-0);
15
- min-width: 20rem;
16
- max-width: 100%;
17
- padding: 1.5rem 3.25rem 1.5rem 1.5rem;
18
- }
19
-
20
- /* Block the preview while dragging to prevent iframes from intercepting drag events */
21
- .code-block__preview--dragging:after {
22
- content: '';
23
- position: absolute;
24
- top: 0;
25
- left: 0;
26
- width: 100%;
27
- height: 100%;
28
- opacity: 0;
29
- cursor: ew-resize;
30
- }
31
-
32
- .code-block__resizer {
33
- display: flex;
34
- align-items: center;
35
- justify-content: center;
36
- position: absolute;
37
- top: 0;
38
- right: 0;
39
- bottom: 0;
40
- width: 1.75rem;
41
- font-size: 20px;
42
- color: var(--sl-color-neutral-600);
43
- background-color: var(--sl-color-neutral-0);
44
- border-left: solid 1px var(--sl-color-neutral-200);
45
- border-top-right-radius: 3px;
46
- cursor: ew-resize;
47
- transition: 250ms background-color;
48
- }
49
-
50
- @media screen and (max-width: 600px) {
51
- .code-block__preview {
52
- padding-right: 1.5rem;
53
- }
54
-
55
- .code-block__resizer {
56
- display: none;
57
- }
58
- }
59
-
60
- .code-block__source {
61
- border: solid 1px var(--sl-color-neutral-200);
62
- border-bottom: none;
63
- border-radius: 0 !important;
64
- display: none;
65
- }
66
-
67
- .code-block--expanded .code-block__source {
68
- display: block;
69
- }
70
-
71
- .code-block__source pre {
72
- margin: 0;
73
- }
74
-
75
- .code-block__buttons {
76
- position: relative;
77
- border: solid 1px var(--sl-color-neutral-200);
78
- border-bottom-left-radius: 3px;
79
- border-bottom-right-radius: 3px;
80
- display: flex;
81
- }
82
-
83
- .code-block__button {
84
- flex: 0 0 auto;
85
- height: 2.5rem;
86
- min-width: 2.5rem;
87
- border: none;
88
- border-radius: 0;
89
- background: var(--sl-color-neutral-0);
90
- font: inherit;
91
- font-size: 0.7rem;
92
- font-weight: 500;
93
- text-transform: uppercase;
94
- color: var(--sl-color-neutral-600);
95
- padding: 0 1rem;
96
- cursor: pointer;
97
- }
98
-
99
- .code-block__button:not(:last-of-type) {
100
- border-right: solid 1px var(--sl-color-neutral-200);
101
- }
102
-
103
- .code-block__button--html,
104
- .code-block__button--react {
105
- width: 70px;
106
- display: flex;
107
- place-items: center;
108
- justify-content: center;
109
- }
110
-
111
- .code-block__button--selected {
112
- font-weight: 700;
113
- color: var(--sl-color-primary-600);
114
- }
115
-
116
- .code-block__button--codepen {
117
- display: flex;
118
- place-items: center;
119
- width: 6rem;
120
- }
121
-
122
- .code-block__button:first-of-type {
123
- border-bottom-left-radius: 3px;
124
- }
125
-
126
- .code-block__button:last-of-type {
127
- border-bottom-right-radius: 3px;
128
- }
129
-
130
- .code-block__button:hover,
131
- .code-block__button:active {
132
- box-shadow: 0 0 0 1px var(--sl-color-primary-400);
133
- border-right-color: transparent;
134
- background-color: var(--sl-color-primary-50);
135
- color: var(--sl-color-primary-700);
136
- z-index: 1;
137
- }
138
-
139
- .code-block__button:focus-visible {
140
- outline: none;
141
- color: var(--sl-color-primary-600);
142
- border-color: var(--sl-color-primary-400);
143
- border-right-color: transparent;
144
- background-color: var(--sl-color-primary-50);
145
- box-shadow: 0 0 0 1px var(--sl-color-primary-400), var(--sl-focus-ring);
146
- z-index: 2;
147
- }
148
-
149
- .code-block__toggle {
150
- position: relative;
151
- display: flex;
152
- flex: 1 1 auto;
153
- align-items: center;
154
- justify-content: center;
155
- width: 100%;
156
- color: var(--sl-color-neutral-600);
157
- cursor: pointer;
158
- -webkit-appearance: none;
159
- }
160
-
161
- .code-block__toggle svg {
162
- width: 1em;
163
- height: 1em;
164
- margin-left: 0.25rem;
165
- }
166
-
167
- .code-block--expanded .code-block__toggle svg {
168
- transform: rotate(180deg);
169
- }
170
-
171
- /* Copy button styles */
172
- .markdown-section .docsify-copy-code-button {
173
- top: 4px;
174
- right: 4px;
175
- background-color: var(--sl-color-neutral-500);
176
- border-radius: var(--sl-border-radius-medium);
177
- font-family: var(--sl-font-sans);
178
- font-size: var(--sl-font-size-x-small);
179
- font-weight: var(--sl-font-weight-semibold);
180
- text-transform: uppercase;
181
- padding: 8px;
182
- user-select: none;
183
- transition: 0.1s all;
184
- }
185
-
186
- .markdown-section .docsify-copy-code-button.copied {
187
- animation: pulse 0.75s;
188
- --pulse-color: var(--sl-color-neutral-600);
189
- }
190
-
191
- @keyframes pulse {
192
- 0% {
193
- box-shadow: 0 0 0 0 var(--pulse-color);
194
- }
195
- 70% {
196
- box-shadow: 0 0 0 0.5rem transparent;
197
- }
198
- 100% {
199
- box-shadow: 0 0 0 0 transparent;
200
- }
201
- }
202
-
203
- .markdown-section .docsify-copy-code-button .label {
204
- transition: none;
205
- }
206
-
207
- .markdown-section .docsify-copy-code-button .success,
208
- .markdown-section .docsify-copy-code-button .error {
209
- display: none;
210
- }
211
-
212
- .markdown-section .docsify-copy-code-button:focus-visible {
213
- box-shadow: var(--sl-focus-ring);
214
- }
215
-
216
- .markdown-section .docsify-copy-code-button:active {
217
- background-color: var(--sl-color-neutral-600);
218
- transform: scale(0.92);
219
- }
220
-
221
- /* We can apply data-flavor="html|react" to any element on the page to toggle it when the user's flavor changes */
222
- body.flavor-html [data-flavor]:not([data-flavor='html']) {
223
- display: none;
224
- }
225
-
226
- body.flavor-react [data-flavor]:not([data-flavor='react']) {
227
- display: none;
228
- }
@@ -1,376 +0,0 @@
1
- (() => {
2
- const reactVersion = '17.0.2';
3
- let flavor = getFlavor();
4
- let count = 1;
5
-
6
- // Sync flavor UI on page load
7
- setFlavor(getFlavor());
8
-
9
- if (!window.$docsify) {
10
- throw new Error('Docsify must be loaded before installing this plugin.');
11
- }
12
-
13
- function convertModuleLinks(html) {
14
- const version = sessionStorage.getItem('sl-version');
15
-
16
- html = html
17
- .replace(/@shoelace-style\/shoelace/g, `https://cdn.skypack.dev/@shoelace-style/shoelace@${version}`)
18
- .replace(/from 'react'/g, `from 'https://cdn.skypack.dev/react@${reactVersion}'`)
19
- .replace(/from "react"/g, `from "https://cdn.skypack.dev/react@${reactVersion}"`);
20
-
21
- return html;
22
- }
23
-
24
- function getAdjacentExample(name, pre) {
25
- let currentPre = pre.nextElementSibling;
26
-
27
- while (currentPre?.tagName.toLowerCase() === 'pre') {
28
- if (currentPre?.getAttribute('data-lang').split(' ').includes(name)) {
29
- return currentPre;
30
- }
31
-
32
- currentPre = currentPre.nextElementSibling;
33
- }
34
-
35
- return null;
36
- }
37
-
38
- function runScript(script) {
39
- const newScript = document.createElement('script');
40
-
41
- if (script.type === 'module') {
42
- newScript.type = 'module';
43
- newScript.textContent = script.innerHTML;
44
- } else {
45
- newScript.appendChild(document.createTextNode(`(() => { ${script.innerHTML} })();`));
46
- }
47
-
48
- script.parentNode.replaceChild(newScript, script);
49
- }
50
-
51
- function getFlavor() {
52
- return localStorage.getItem('flavor') || 'html';
53
- }
54
-
55
- function setFlavor(newFlavor) {
56
- flavor = ['html', 'react'].includes(newFlavor) ? newFlavor : 'html';
57
- localStorage.setItem('flavor', flavor);
58
-
59
- // Set the flavor class on the body
60
- document.body.classList.toggle('flavor-html', flavor === 'html');
61
- document.body.classList.toggle('flavor-react', flavor === 'react');
62
- }
63
-
64
- function wrap(el, wrapper) {
65
- el.parentNode.insertBefore(wrapper, el);
66
- wrapper.appendChild(el);
67
- }
68
-
69
- window.$docsify.plugins.push((hook, vm) => {
70
- // Convert code blocks to previews
71
- hook.afterEach(function (html, next) {
72
- const domParser = new DOMParser();
73
- const doc = domParser.parseFromString(html, 'text/html');
74
-
75
- const htmlButton = `
76
- <button
77
- type="button"
78
- title="Show HTML code"
79
- class="code-block__button code-block__button--html ${flavor === 'html' ? 'code-block__button--selected' : ''}"
80
- >
81
- HTML
82
- </button>
83
- `;
84
-
85
- const reactButton = `
86
- <button
87
- type="button"
88
- title="Show React code"
89
- class="code-block__button code-block__button--react ${
90
- flavor === 'react' ? 'code-block__button--selected' : ''
91
- }"
92
- >
93
- React
94
- </button>
95
- `;
96
-
97
- const codePenButton = `
98
- <button type="button" class="code-block__button code-block__button--codepen" title="Edit on CodePen">
99
- <svg
100
- width="138"
101
- height="26"
102
- viewBox="0 0 138 26"
103
- fill="none"
104
- stroke="currentColor"
105
- stroke-width="2.3"
106
- stroke-linecap="round"
107
- stroke-linejoin="round"
108
- >
109
- <path d="M80 6h-9v14h9 M114 6h-9 v14h9 M111 13h-6 M77 13h-6 M122 20V6l11 14V6 M22 16.7L33 24l11-7.3V9.3L33 2L22 9.3V16.7z M44 16.7L33 9.3l-11 7.4 M22 9.3l11 7.3 l11-7.3 M33 2v7.3 M33 16.7V24 M88 14h6c2.2 0 4-1.8 4-4s-1.8-4-4-4h-6v14 M15 8c-1.3-1.3-3-2-5-2c-4 0-7 3-7 7s3 7 7 7 c2 0 3.7-0.8 5-2 M64 13c0 4-3 7-7 7h-5V6h5C61 6 64 9 64 13z" />
110
- </svg>
111
- </button>
112
- `;
113
-
114
- [...doc.querySelectorAll('code[class^="lang-"]')].map(code => {
115
- if (code.classList.contains('preview')) {
116
- const isExpanded = code.classList.contains('expanded');
117
- const pre = code.closest('pre');
118
- const sourceGroupId = `code-block-source-group-${count}`;
119
- const toggleId = `code-block-toggle-${count}`;
120
- const reactPre = getAdjacentExample('react', pre);
121
- const hasReact = reactPre !== null;
122
- const examples = [
123
- {
124
- name: 'HTML',
125
- codeBlock: pre
126
- }
127
- ];
128
-
129
- pre.setAttribute('data-lang', pre.getAttribute('data-lang').replace(/ preview$/, ''));
130
- pre.setAttribute('aria-labelledby', toggleId);
131
-
132
- const codeBlock = `
133
- <div class="code-block ${isExpanded ? 'code-block--expanded' : ''}">
134
- <div class="code-block__preview">
135
- ${code.textContent}
136
- <div class="code-block__resizer">
137
- <sl-icon name="grip-vertical"></sl-icon>
138
- </div>
139
- </div>
140
-
141
- <div class="code-block__source-group" id="${sourceGroupId}">
142
- <div class="code-block__source code-block__source--html" ${hasReact ? 'data-flavor="html"' : ''}>
143
- ${pre.outerHTML}
144
- </div>
145
-
146
- ${
147
- hasReact
148
- ? `
149
- <div class="code-block__source code-block__source--react" data-flavor="react">
150
- ${reactPre.outerHTML}
151
- </div>
152
- `
153
- : ''
154
- }
155
- </div>
156
-
157
- <div class="code-block__buttons">
158
- ${hasReact ? ` ${htmlButton} ${reactButton} ` : ''}
159
-
160
- <button
161
- type="button"
162
- class="code-block__button code-block__toggle"
163
- aria-expanded="${isExpanded ? 'true' : 'false'}"
164
- aria-controls="${sourceGroupId}"
165
- >
166
- Source
167
- <svg
168
- viewBox="0 0 24 24"
169
- fill="none"
170
- stroke="currentColor"
171
- stroke-width="2"
172
- stroke-linecap="round"
173
- stroke-linejoin="round"
174
- >
175
- <polyline points="6 9 12 15 18 9"></polyline>
176
- </svg>
177
- </button>
178
-
179
- ${!code.classList.contains('no-codepen') ? codePenButton : ''}
180
- </div>
181
- </div>
182
- `;
183
-
184
- pre.replaceWith(domParser.parseFromString(codeBlock, 'text/html').body);
185
- if (reactPre) reactPre.remove();
186
-
187
- count++;
188
- }
189
- });
190
-
191
- // Force the highlighter to run again so JSX fields get highlighted properly
192
- requestAnimationFrame(() => Prism.highlightAll());
193
-
194
- next(doc.body.innerHTML);
195
- });
196
-
197
- // After the page is done loading, force scripts in previews to execute
198
- hook.doneEach(() => {
199
- [...document.querySelectorAll('.code-block__preview script')].map(script => runScript(script));
200
- });
201
-
202
- // Horizontal resizing
203
- hook.doneEach(() => {
204
- [...document.querySelectorAll('.code-block__preview')].map(preview => {
205
- const resizer = preview.querySelector('.code-block__resizer');
206
- let startX;
207
- let startWidth;
208
-
209
- const dragStart = event => {
210
- startX = event.changedTouches ? event.changedTouches[0].pageX : event.clientX;
211
- startWidth = parseInt(document.defaultView.getComputedStyle(preview).width, 10);
212
- preview.classList.add('code-block__preview--dragging');
213
- event.preventDefault();
214
- document.documentElement.addEventListener('mousemove', dragMove, false);
215
- document.documentElement.addEventListener('touchmove', dragMove, false);
216
- document.documentElement.addEventListener('mouseup', dragStop, false);
217
- document.documentElement.addEventListener('touchend', dragStop, false);
218
- };
219
-
220
- const dragMove = event => {
221
- setWidth(startWidth + (event.changedTouches ? event.changedTouches[0].pageX : event.pageX) - startX);
222
- };
223
-
224
- const dragStop = event => {
225
- preview.classList.remove('code-block__preview--dragging');
226
- document.documentElement.removeEventListener('mousemove', dragMove, false);
227
- document.documentElement.removeEventListener('touchmove', dragMove, false);
228
- document.documentElement.removeEventListener('mouseup', dragStop, false);
229
- document.documentElement.removeEventListener('touchend', dragStop, false);
230
- };
231
-
232
- const setWidth = width => (preview.style.width = width + 'px');
233
-
234
- resizer.addEventListener('mousedown', dragStart);
235
- resizer.addEventListener('touchstart', dragStart);
236
- }, false);
237
- });
238
- });
239
-
240
- // Toggle source mode
241
- document.addEventListener('click', event => {
242
- const button = event.target.closest('button');
243
- const codeBlock = button?.closest('.code-block');
244
-
245
- if (button?.classList.contains('code-block__button--html')) {
246
- setFlavor('html');
247
- } else if (button?.classList.contains('code-block__button--react')) {
248
- setFlavor('react');
249
- } else {
250
- return;
251
- }
252
-
253
- // Update flavor buttons
254
- [...document.querySelectorAll('.code-block')].map(codeBlock => {
255
- codeBlock
256
- .querySelector('.code-block__button--html')
257
- ?.classList.toggle('code-block__button--selected', flavor === 'html');
258
- codeBlock
259
- .querySelector('.code-block__button--react')
260
- ?.classList.toggle('code-block__button--selected', flavor === 'react');
261
- });
262
- });
263
-
264
- // Expand and collapse code blocks
265
- document.addEventListener('click', event => {
266
- const toggle = event.target.closest('.code-block__toggle');
267
- if (toggle) {
268
- const codeBlock = event.target.closest('.code-block');
269
- codeBlock.classList.toggle('code-block--expanded');
270
- event.target.setAttribute('aria-expanded', codeBlock.classList.contains('code-block--expanded'));
271
- }
272
- });
273
-
274
- // Show pulse when copying
275
- document.addEventListener('click', event => {
276
- const button = event.target.closest('.docsify-copy-code-button');
277
- if (button) {
278
- button.classList.remove('copied');
279
- requestAnimationFrame(() => {
280
- button.addEventListener('animationend', () => button.classList.remove('copied'), { once: true });
281
- button.classList.add('copied');
282
- });
283
- }
284
- });
285
-
286
- // Open in CodePen
287
- document.addEventListener('click', event => {
288
- const button = event.target.closest('button');
289
- const version = sessionStorage.getItem('sl-version');
290
-
291
- if (button?.classList.contains('code-block__button--codepen')) {
292
- const codeBlock = button.closest('.code-block');
293
- const htmlExample = codeBlock.querySelector('.code-block__source--html > pre > code')?.textContent;
294
- const reactExample = codeBlock.querySelector('.code-block__source--react > pre > code')?.textContent;
295
- const isReact = flavor === 'react' && typeof reactExample === 'string';
296
- const theme = localStorage.getItem('theme');
297
- const prefersDark = window.matchMedia('(prefers-color-scheme: dark)').matches;
298
- const isDark = theme === 'dark' || (theme === 'auto' && prefersDark);
299
- const editors = isReact ? '0010' : '1000';
300
- let htmlTemplate = '';
301
- let jsTemplate = '';
302
- let cssTemplate = '';
303
-
304
- const form = document.createElement('form');
305
- form.action = 'https://codepen.io/pen/define';
306
- form.method = 'POST';
307
- form.target = '_blank';
308
-
309
- // HTML templates
310
- if (!isReact) {
311
- htmlTemplate =
312
- `<script type="module" src="https://cdn.jsdelivr.net/npm/@shoelace-style/shoelace@${version}/dist/shoelace.js"></script>\n` +
313
- '\n' +
314
- htmlExample;
315
- jsTemplate = '';
316
- }
317
-
318
- // React templates
319
- if (isReact) {
320
- htmlTemplate = '<div id="root"></div>';
321
- jsTemplate =
322
- `import React from 'https://cdn.skypack.dev/react@${reactVersion}';\n` +
323
- `import ReactDOM from 'https://cdn.skypack.dev/react-dom@${reactVersion}';\n` +
324
- `import { setBasePath } from 'https://cdn.skypack.dev/@shoelace-style/shoelace@${version}/dist/utilities/base-path';\n` +
325
- '\n' +
326
- `// Set the base path for Shoelace assets\n` +
327
- `setBasePath('https://cdn.skypack.dev/@shoelace-style/shoelace@${version}/dist/')\n` +
328
- '\n' +
329
- convertModuleLinks(reactExample) +
330
- '\n' +
331
- '\n' +
332
- `ReactDOM.render(<App />, document.getElementById('root'));`;
333
- }
334
-
335
- // CSS templates
336
- cssTemplate =
337
- `@import 'https://cdn.jsdelivr.net/npm/@shoelace-style/shoelace@${version}/dist/themes/${
338
- isDark ? 'dark' : 'light'
339
- }.css';\n` +
340
- '\n' +
341
- 'body {\n' +
342
- ' font: 16px sans-serif;\n' +
343
- ' background-color: var(--sl-color-neutral-0);\n' +
344
- ' color: var(--sl-color-neutral-900);\n' +
345
- ' padding: 1rem;\n' +
346
- '}';
347
-
348
- // Docs: https://blog.codepen.io/documentation/prefill/
349
- const data = {
350
- title: '',
351
- description: '',
352
- tags: ['shoelace', 'web components'],
353
- editors,
354
- head: `<meta name="viewport" content="width=device-width">`,
355
- html_classes: `sl-theme-${isDark ? 'dark' : 'light'}`,
356
- css_external: ``,
357
- js_external: ``,
358
- js_module: true,
359
- js_pre_processor: isReact ? 'babel' : 'none',
360
- html: htmlTemplate,
361
- css: cssTemplate,
362
- js: jsTemplate
363
- };
364
-
365
- const input = document.createElement('input');
366
- input.type = 'hidden';
367
- input.name = 'data';
368
- input.value = JSON.stringify(data);
369
- form.append(input);
370
-
371
- document.body.append(form);
372
- form.submit();
373
- form.remove();
374
- }
375
- });
376
- })();