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,180 +0,0 @@
1
- body.site-search-visible {
2
- overflow: hidden;
3
- }
4
-
5
- .sidebar .search-box {
6
- margin: 1.25rem 26px;
7
- }
8
-
9
- .sidebar .search-box kbd {
10
- margin-top: 2px;
11
- margin-right: 1rem;
12
- }
13
-
14
- /* Site search */
15
- .site-search {
16
- position: fixed;
17
- top: 0;
18
- left: 0;
19
- right: 0;
20
- bottom: 0;
21
- z-index: 1000;
22
- }
23
-
24
- .site-search[hidden] {
25
- display: none;
26
- }
27
-
28
- .site-search__overlay {
29
- position: absolute;
30
- top: 0;
31
- left: 0;
32
- right: 0;
33
- bottom: 0;
34
- background: var(--sl-overlay-background-color);
35
- z-index: -1;
36
- }
37
-
38
- .site-search__panel {
39
- display: flex;
40
- flex-direction: column;
41
- max-width: 460px;
42
- max-height: calc(100vh - 20rem);
43
- background-color: var(--sl-panel-background-color);
44
- border-radius: var(--sl-border-radius-large);
45
- box-shadow: var(--sl-shadow-x-large);
46
- margin: 10rem auto;
47
- }
48
-
49
- @media screen and (max-width: 900px) {
50
- .site-search__panel {
51
- max-width: 100%;
52
- max-height: calc(92vh - 120px); /* allow iOS browser chrome */
53
- margin: 4vh var(--sl-spacing-medium);
54
- }
55
- }
56
-
57
- .site-search__input::part(base) {
58
- border: none;
59
- background: transparent;
60
- border-radius: var(--sl-border-radius-large);
61
- }
62
-
63
- .site-search__input:focus-within::part(base) {
64
- outline: none;
65
- box-shadow: none;
66
- }
67
-
68
- .site-search__input {
69
- --sl-input-height-large: 4rem;
70
- }
71
-
72
- .site-search__body {
73
- flex: 1 1 auto;
74
- overflow: auto;
75
- }
76
-
77
- .site-search--has-results .site-search__body {
78
- border-top: solid 1px var(--sl-color-neutral-200);
79
- }
80
-
81
- .site-search__results {
82
- display: none;
83
- line-height: var(--sl-line-height-dense);
84
- list-style: none;
85
- padding: var(--sl-spacing-x-small) 0;
86
- margin: 0;
87
- }
88
-
89
- .site-search--has-results .site-search__results {
90
- display: block;
91
- }
92
-
93
- .site-search__results a {
94
- display: block;
95
- text-decoration: none;
96
- padding: var(--sl-spacing-x-small) var(--sl-spacing-large);
97
- }
98
-
99
- .site-search__results li a:hover,
100
- .site-search__results li a:hover small {
101
- background-color: var(--sl-color-neutral-100);
102
- }
103
-
104
- .site-search__results li[aria-selected='true'] a,
105
- .site-search__results li[aria-selected='true'] a small,
106
- .site-search__results li[aria-selected='true'] a sl-icon {
107
- outline: none;
108
- color: var(--sl-color-neutral-0);
109
- background-color: var(--sl-color-primary-600);
110
- }
111
-
112
- .sl-theme-dark .site-search__results li[aria-selected='true'] a,
113
- .sl-theme-dark .site-search__results li[aria-selected='true'] a small,
114
- .sl-theme-dark .site-search__results li[aria-selected='true'] a sl-icon {
115
- background-color: var(--sl-color-primary-400);
116
- color: var(--sl-color-neutral-1000);
117
- }
118
-
119
- .site-search__results h3 {
120
- font-weight: var(--sl-font-weight-semibold);
121
- margin: 0;
122
- }
123
-
124
- .site-search__results small {
125
- display: block;
126
- color: var(--sl-color-neutral-600);
127
- }
128
-
129
- .site-search__result {
130
- padding: 0;
131
- margin: 0;
132
- }
133
-
134
- .site-search__result a {
135
- display: flex;
136
- align-items: center;
137
- gap: var(--sl-spacing-medium);
138
- }
139
-
140
- .site-search__result-icon {
141
- flex: 0 0 auto;
142
- display: flex;
143
- color: var(--sl-color-neutral-400);
144
- font-size: var(--sl-font-size-x-large);
145
- }
146
-
147
- .site-search__result-description {
148
- flex: 1 1 auto;
149
- }
150
-
151
- .site-search__empty {
152
- display: none;
153
- border-top: solid 1px var(--sl-color-neutral-200);
154
- text-align: center;
155
- padding: var(--sl-spacing-x-large);
156
- }
157
-
158
- .site-search--no-results .site-search__empty {
159
- display: block;
160
- }
161
-
162
- .site-search__footer {
163
- display: flex;
164
- justify-content: center;
165
- gap: var(--sl-spacing-large);
166
- border-top: solid 1px var(--sl-color-neutral-200);
167
- border-bottom-left-radius: inherit;
168
- border-bottom-right-radius: inherit;
169
- padding: var(--sl-spacing-medium);
170
- }
171
-
172
- .site-search__footer small {
173
- color: var(--sl-color-neutral-700);
174
- }
175
-
176
- @media screen and (max-width: 900px) {
177
- .site-search__footer {
178
- display: none;
179
- }
180
- }
@@ -1,293 +0,0 @@
1
- (() => {
2
- if (!window.$docsify) {
3
- throw new Error('Docsify must be loaded before installing this plugin.');
4
- }
5
-
6
- window.$docsify.plugins.push((hook, vm) => {
7
- // Append the search box to the sidebar
8
- hook.mounted(function () {
9
- const appName = document.querySelector('.sidebar .app-name');
10
- const searchBox = document.createElement('div');
11
- searchBox.classList.add('search-box');
12
- searchBox.innerHTML = `
13
- <sl-input
14
- type="search"
15
- placeholder="Search"
16
- clearable
17
- pill
18
- >
19
- <sl-icon slot="prefix" name="search"></sl-icon>
20
- <kbd slot="suffix" title="Press / to search">/</kbd>
21
- </sl-input>
22
- `;
23
- const searchBoxInput = searchBox.querySelector('sl-input');
24
-
25
- appName.insertAdjacentElement('afterend', searchBox);
26
-
27
- // Show the search panel when the search is clicked
28
- searchBoxInput.addEventListener('mousedown', event => {
29
- event.preventDefault();
30
- show();
31
- });
32
-
33
- // Show the search panel when a key is pressed
34
- searchBoxInput.addEventListener('keydown', event => {
35
- if (event.key === 'Tab') {
36
- return;
37
- }
38
-
39
- // Pass the character that was typed through to the search input
40
- if (event.key.length === 1) {
41
- event.preventDefault();
42
- input.value = event.key;
43
- show();
44
- }
45
- });
46
- });
47
-
48
- // Append the search panel to the body
49
- const siteSearch = document.createElement('div');
50
- siteSearch.classList.add('site-search');
51
- siteSearch.hidden = true;
52
- siteSearch.innerHTML = `
53
- <div class="site-search__overlay"></div>
54
- <div class="site-search__panel">
55
- <header class="site-search__header">
56
- <sl-input
57
- class="site-search__input"
58
- type="search"
59
- placeholder="Search this site"
60
- size="large"
61
- clearable
62
- >
63
- <sl-icon slot="prefix" name="search"></sl-icon>
64
- </sl-input>
65
- </header>
66
- <div class="site-search__body">
67
- <ul class="site-search__results"></ul>
68
- <div class="site-search__empty">No results found.</div>
69
- </div>
70
- <footer class="site-search__footer">
71
- <small><kbd>↑</kbd> <kbd>↓</kbd> navigate</small>
72
- <small><kbd>↲</kbd> select</small>
73
- <small><kbd>esc</kbd> close</small>
74
- </footer>
75
- </div>
76
- `;
77
- document.body.append(siteSearch);
78
-
79
- const searchButtons = [...document.querySelectorAll('[data-site-search]')];
80
- const overlay = siteSearch.querySelector('.site-search__overlay');
81
- const panel = siteSearch.querySelector('.site-search__panel');
82
- const input = siteSearch.querySelector('.site-search__input');
83
- const results = siteSearch.querySelector('.site-search__results');
84
- const animationDuration = 150;
85
- const searchDebounce = 200;
86
- let isShowing = false;
87
- let searchTimeout;
88
- let searchIndex;
89
- let map;
90
-
91
- // Load search data
92
- const searchData = fetch('../../../search.json')
93
- .then(res => res.json())
94
- .then(data => {
95
- searchIndex = lunr.Index.load(data.searchIndex);
96
- map = data.map;
97
- });
98
-
99
- async function show() {
100
- isShowing = true;
101
- document.body.classList.add('site-search-visible');
102
- siteSearch.hidden = false;
103
- input.focus();
104
- updateResults();
105
-
106
- await Promise.all([
107
- panel.animate(
108
- [
109
- { opacity: 0, transform: 'scale(.9)' },
110
- { opacity: 1, transform: 'scale(1)' }
111
- ],
112
- { duration: animationDuration }
113
- ).finished,
114
- overlay.animate([{ opacity: 0 }, { opacity: 1 }], { duration: animationDuration }).finished
115
- ]);
116
-
117
- document.addEventListener('mousedown', handleDocumentMouseDown);
118
- document.addEventListener('keydown', handleDocumentKeyDown);
119
- document.addEventListener('focusin', handleDocumentFocusIn);
120
- }
121
-
122
- async function hide() {
123
- isShowing = false;
124
- document.body.classList.remove('site-search-visible');
125
-
126
- await Promise.all([
127
- panel.animate(
128
- [
129
- { opacity: 1, transform: 'scale(1)' },
130
- { opacity: 0, transform: 'scale(.9)' }
131
- ],
132
- { duration: animationDuration }
133
- ).finished,
134
- overlay.animate([{ opacity: 1 }, { opacity: 0 }], { duration: animationDuration }).finished
135
- ]);
136
-
137
- siteSearch.hidden = true;
138
- input.value = '';
139
- updateResults();
140
-
141
- document.removeEventListener('mousedown', handleDocumentMouseDown);
142
- document.removeEventListener('keydown', handleDocumentKeyDown);
143
- document.removeEventListener('focusin', handleDocumentFocusIn);
144
- }
145
-
146
- function handleInput() {
147
- // Debounce search queries
148
- clearTimeout(searchTimeout);
149
- searchTimeout = setTimeout(() => updateResults(input.value), searchDebounce);
150
- }
151
-
152
- function handleDocumentFocusIn(event) {
153
- // Close when focus leaves the panel
154
- if (event.target.closest('.site-search__panel') !== panel) {
155
- hide();
156
- }
157
- }
158
-
159
- function handleDocumentMouseDown(event) {
160
- // Close when clicking outside of the panel
161
- if (event.target.closest('.site-search__overlay') === overlay) {
162
- hide();
163
- }
164
- }
165
-
166
- function handleDocumentKeyDown(event) {
167
- // Close when pressing escape
168
- if (event.key === 'Escape') {
169
- event.preventDefault();
170
- hide();
171
- return;
172
- }
173
-
174
- // Handle keyboard selections
175
- if (['ArrowDown', 'ArrowUp', 'Home', 'End', 'Enter'].includes(event.key)) {
176
- event.preventDefault();
177
-
178
- const currentEl = results.querySelector('[aria-selected="true"]');
179
- const items = [...results.querySelectorAll('li')];
180
- const index = items.indexOf(currentEl);
181
- let nextEl;
182
-
183
- if (items.length === 0) {
184
- return;
185
- }
186
-
187
- switch (event.key) {
188
- case 'ArrowUp':
189
- nextEl = items[Math.max(0, index - 1)];
190
- break;
191
- case 'ArrowDown':
192
- nextEl = items[Math.min(items.length - 1, index + 1)];
193
- break;
194
- case 'Home':
195
- nextEl = items[0];
196
- break;
197
- case 'End':
198
- nextEl = items[items.length - 1];
199
- break;
200
- case 'Enter':
201
- currentEl?.querySelector('a')?.click();
202
- break;
203
- }
204
-
205
- // Update the selected item
206
- items.map(item => {
207
- if (item === nextEl) {
208
- item.setAttribute('aria-selected', 'true');
209
- nextEl.scrollIntoView({ block: 'nearest' });
210
- } else {
211
- item.setAttribute('aria-selected', 'false');
212
- }
213
- });
214
-
215
- return;
216
- }
217
- }
218
-
219
- async function updateResults(query = '') {
220
- try {
221
- await searchIndex;
222
-
223
- const hasQuery = query.length > 0;
224
- let matches = hasQuery ? searchIndex.search(`${query}`) : [];
225
-
226
- // Fall back to a fuzzy search if no matches are found
227
- if (matches.length === 0 && hasQuery) {
228
- matches = searchIndex.search(`${query}~2`);
229
- }
230
-
231
- let hasResults = hasQuery && matches.length > 0;
232
- siteSearch.classList.toggle('site-search--has-results', hasQuery && hasResults);
233
- siteSearch.classList.toggle('site-search--no-results', hasQuery && !hasResults);
234
- panel.setAttribute('aria-expanded', hasQuery && hasResults ? 'true' : 'false');
235
-
236
- results.innerHTML = '';
237
-
238
- matches.map((match, index) => {
239
- const page = map[match.ref];
240
- const li = document.createElement('li');
241
- const a = document.createElement('a');
242
- let icon = 'file-text';
243
-
244
- if (page.url.includes('getting-started/')) icon = 'lightbulb';
245
- if (page.url.includes('resources/')) icon = 'book';
246
- if (page.url.includes('components/')) icon = 'puzzle';
247
- if (page.url.includes('tokens/')) icon = 'palette2';
248
- if (page.url.includes('utilities/')) icon = 'wrench';
249
- if (page.url.includes('tutorials/')) icon = 'joystick';
250
-
251
- a.href = $docsify.routerMode === 'hash' ? `/#/${page.url}` : `/${page.url}`;
252
- a.innerHTML = `
253
- <div class="site-search__result-icon">
254
- <sl-icon name="${icon}" aria-hidden="true"></sl-icon>
255
- </div>
256
- <div class="site-search__result__details">
257
- <h3>${page.title}</h3>
258
- <small>${page.url}</small>
259
- </div>
260
- `;
261
-
262
- li.classList.add('site-search__result');
263
- li.setAttribute('aria-selected', index === 0 ? 'true' : 'false');
264
- li.appendChild(a);
265
- results.appendChild(li);
266
- });
267
- } catch {
268
- // Ignore query errors as the user types
269
- }
270
- }
271
-
272
- // Show the search panel slash is pressed outside of a form element
273
- document.addEventListener('keydown', event => {
274
- if (
275
- !isShowing &&
276
- event.key === '/' &&
277
- !event.composedPath().some(el => ['input', 'textarea'].includes(el?.tagName?.toLowerCase()))
278
- ) {
279
- event.preventDefault();
280
- show();
281
- }
282
- });
283
-
284
- input.addEventListener('sl-input', handleInput);
285
-
286
- // Close when a result is selected
287
- results.addEventListener('click', event => {
288
- if (event.target.closest('a')) {
289
- hide();
290
- }
291
- });
292
- });
293
- })();
@@ -1,29 +0,0 @@
1
- .theme-picker {
2
- position: fixed;
3
- top: 1rem;
4
- right: 1rem;
5
- z-index: 30;
6
- }
7
-
8
- .theme-picker:not(:defined) {
9
- display: none;
10
- }
11
-
12
- .theme-picker sl-menu-label {
13
- white-space: nowrap;
14
- }
15
-
16
- .theme-picker sl-menu-label kbd {
17
- margin-left: 0.5rem;
18
- }
19
-
20
- @media screen and (max-width: 768px) {
21
- .theme-picker {
22
- top: 0.5rem;
23
- right: 0.5rem;
24
- }
25
-
26
- .theme-picker sl-menu-label {
27
- display: none;
28
- }
29
- }
@@ -1,83 +0,0 @@
1
- (() => {
2
- if (!window.$docsify) {
3
- throw new Error('Docsify must be loaded before installing this plugin.');
4
- }
5
-
6
- window.$docsify.plugins.push((hook, vm) => {
7
- hook.mounted(function () {
8
- function getTheme() {
9
- return localStorage.getItem('theme') || 'auto';
10
- }
11
-
12
- function isDark() {
13
- if (theme === 'auto') {
14
- return window.matchMedia('(prefers-color-scheme: dark)').matches;
15
- } else {
16
- return theme === 'dark';
17
- }
18
- }
19
-
20
- function setTheme(newTheme) {
21
- const noTransitions = Object.assign(document.createElement('style'), {
22
- textContent: '* { transition: none !important; }'
23
- });
24
-
25
- theme = newTheme;
26
- localStorage.setItem('theme', theme);
27
-
28
- // Update the UI
29
- [...menu.querySelectorAll('sl-menu-item')].map(item => (item.checked = item.getAttribute('value') === theme));
30
- menuIcon.name = isDark() ? 'moon' : 'sun';
31
-
32
- // Toggle the dark mode class without transitions
33
- document.body.appendChild(noTransitions);
34
- requestAnimationFrame(() => {
35
- document.documentElement.classList.toggle('sl-theme-dark', isDark());
36
- requestAnimationFrame(() => document.body.removeChild(noTransitions));
37
- });
38
- }
39
-
40
- let theme = getTheme();
41
-
42
- // Generate the theme picker dropdown
43
- const dropdown = document.createElement('sl-dropdown');
44
- dropdown.classList.add('theme-picker');
45
- dropdown.innerHTML = `
46
- <sl-button size="small" pill slot="trigger" caret>
47
- <sl-icon name="sun" label="Select Theme"></sl-icon>
48
- </sl-button>
49
- <sl-menu>
50
- <sl-menu-label>Toggle <kbd>\\</kbd></sl-menu-label>
51
- <sl-menu-item value="light">Light</sl-menu-item>
52
- <sl-menu-item value="dark">Dark</sl-menu-item>
53
- <sl-divider></sl-divider>
54
- <sl-menu-item value="auto">Auto</sl-menu-item>
55
- </sl-menu>
56
- `;
57
- document.querySelector('.sidebar-toggle').insertAdjacentElement('afterend', dropdown);
58
-
59
- // Listen for selections
60
- const menu = dropdown.querySelector('sl-menu');
61
- const menuIcon = dropdown.querySelector('sl-icon');
62
- menu.addEventListener('sl-select', event => setTheme(event.detail.item.value));
63
-
64
- // Update the theme when the preference changes
65
- window.matchMedia('(prefers-color-scheme: dark)').addListener(event => setTheme(theme));
66
-
67
- // Toggle themes when pressing backslash
68
- document.addEventListener('keydown', event => {
69
- if (
70
- event.key === '\\' &&
71
- !event.composedPath().some(el => ['input', 'textarea'].includes(el?.tagName?.toLowerCase()))
72
- ) {
73
- event.preventDefault();
74
-
75
- setTheme(isDark() ? 'light' : 'dark');
76
- }
77
- });
78
-
79
- // Set the initial theme and sync the UI
80
- setTheme(theme);
81
- });
82
- });
83
- })();