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,184 +0,0 @@
1
- # Textarea
2
-
3
- [component-header:sl-textarea]
4
-
5
- Textareas collect data from the user and allow multiple lines of text.
6
-
7
- ```html preview
8
- <sl-textarea></sl-textarea>
9
- ```
10
-
11
- ```jsx react
12
- import { SlTextarea } from '@shoelace-style/shoelace/dist/react';
13
-
14
- const App = () => (
15
- <SlTextarea />
16
- );
17
- ```
18
-
19
- ?> This component works with standard `<form>` elements. Please refer to the section on [form controls](/getting-started/form-controls) to learn more about form submission and client-side validation.
20
-
21
- ## Examples
22
-
23
- ### Rows
24
-
25
- Use the `rows` attribute to change the number of text rows that get shown.
26
-
27
- ```html preview
28
- <sl-textarea rows="2"></sl-textarea>
29
- ```
30
-
31
- ```jsx react
32
- import { SlTextarea } from '@shoelace-style/shoelace/dist/react';
33
-
34
- const App = () => (
35
- <SlTextarea rows={2} />
36
- );
37
- ```
38
-
39
- ### Placeholders
40
-
41
- Use the `placeholder` attribute to add a placeholder.
42
-
43
- ```html preview
44
- <sl-textarea placeholder="Type something"></sl-textarea>
45
- ```
46
-
47
- ```jsx react
48
- import { SlTextarea } from '@shoelace-style/shoelace/dist/react';
49
-
50
- const App = () => (
51
- <SlTextarea placeholder="Type something" />
52
- );
53
- ```
54
-
55
- ### Filled Textareas
56
-
57
- Add the `filled` attribute to draw a filled textarea.
58
-
59
- ```html preview
60
- <sl-textarea placeholder="Type something" filled></sl-textarea>
61
- ```
62
-
63
- ```jsx react
64
- import { SlTextarea } from '@shoelace-style/shoelace/dist/react';
65
-
66
- const App = () => (
67
- <SlTextarea placeholder="Type something" filled />
68
- );
69
- ```
70
-
71
- ### Disabled
72
-
73
- Use the `disabled` attribute to disable a textarea.
74
-
75
- ```html preview
76
- <sl-textarea placeholder="Textarea" disabled></sl-textarea>
77
- ```
78
-
79
- ```jsx react
80
- import { SlTextarea } from '@shoelace-style/shoelace/dist/react';
81
-
82
- const App = () => (
83
- <SlTextarea placeholder="Textarea" disabled />
84
- );
85
- ```
86
-
87
- ### Sizes
88
-
89
- Use the `size` attribute to change a textarea's size.
90
-
91
- ```html preview
92
- <sl-textarea placeholder="Small" size="small"></sl-textarea>
93
- <br>
94
- <sl-textarea placeholder="Medium" size="medium"></sl-textarea>
95
- <br>
96
- <sl-textarea placeholder="Large" size="large"></sl-textarea>
97
- ```
98
-
99
- ```jsx react
100
- import { SlTextarea } from '@shoelace-style/shoelace/dist/react';
101
-
102
- const App = () => (
103
- <>
104
- <SlTextarea placeholder="Small" size="small"></SlTextarea>
105
- <br />
106
- <SlTextarea placeholder="Medium" size="medium"></SlTextarea>
107
- <br />
108
- <SlTextarea placeholder="Large" size="large"></SlTextarea>
109
- </>
110
- );
111
- ```
112
-
113
- ### Labels
114
-
115
- Use the `label` attribute to give the textarea an accessible label. For labels that contain HTML, use the `label` slot instead.
116
-
117
- ```html preview
118
- <sl-textarea label="Comments"></sl-textarea>
119
- ```
120
-
121
- ```jsx react
122
- import { SlTextarea } from '@shoelace-style/shoelace/dist/react';
123
-
124
- const App = () => (
125
- <SlTextarea label="Comments" />
126
- );
127
- ```
128
-
129
- ### Help Text
130
-
131
- Add descriptive help text to a textarea with the `help-text` attribute. For help texts that contain HTML, use the `help-text` slot instead.
132
-
133
- ```html preview
134
- <sl-textarea
135
- label="Feedback"
136
- help-text="Please tell us what you think."
137
- >
138
- </sl-textarea>
139
- ```
140
-
141
- ```jsx react
142
- import { SlTextarea } from '@shoelace-style/shoelace/dist/react';
143
-
144
- const App = () => (
145
- <SlTextarea
146
- label="Feedback"
147
- help-text="Please tell us what you think."
148
- />
149
- );
150
- ```
151
-
152
- ### Prevent Resizing
153
-
154
- By default, textareas can be resized vertically by the user. To prevent resizing, set the `resize` attribute to `none`.
155
-
156
- ```html preview
157
- <sl-textarea resize="none"></sl-textarea>
158
- ```
159
-
160
- ```jsx react
161
- import { SlTextarea } from '@shoelace-style/shoelace/dist/react';
162
-
163
- const App = () => (
164
- <SlTextarea resize="none" />
165
- );
166
- ```
167
-
168
- ### Expand with Content
169
-
170
- Textareas will automatically resize to expand to fit their content when `resize` is set to `auto`.
171
-
172
- ```html preview
173
- <sl-textarea resize="auto"></sl-textarea>
174
- ```
175
-
176
- ```jsx react
177
- import { SlTextarea } from '@shoelace-style/shoelace/dist/react';
178
-
179
- const App = () => (
180
- <SlTextarea resize="auto" />
181
- );
182
- ```
183
-
184
- [component-metadata:sl-textarea]
@@ -1,410 +0,0 @@
1
- # Tooltip
2
-
3
- [component-header:sl-tooltip]
4
-
5
- Tooltips display additional information based on a specific action.
6
-
7
- A tooltip's target is its _first child element_, so you should only wrap one element inside of the tooltip. If you need the tooltip to show up for multiple elements, nest them inside a container first.
8
-
9
- Tooltips use `display: contents` so they won't interfere with how elements are positioned in a flex or grid layout.
10
-
11
- ```html preview
12
- <sl-tooltip content="This is a tooltip">
13
- <sl-button>Hover Me</sl-button>
14
- </sl-tooltip>
15
- ```
16
-
17
- ```jsx react
18
- import { SlButton, SlTooltip } from '@shoelace-style/shoelace/dist/react';
19
-
20
- const App = () => (
21
- <SlTooltip content="This is a tooltip">
22
- <SlButton>Hover Me</SlButton>
23
- </SlTooltip>
24
- );
25
- ```
26
-
27
- ## Examples
28
-
29
- ### Placement
30
-
31
- Use the `placement` attribute to set the preferred placement of the tooltip.
32
-
33
- ```html preview
34
- <div class="tooltip-placement-example">
35
- <div class="tooltip-placement-example-row">
36
- <sl-tooltip content="top-start" placement="top-start">
37
- <sl-button></sl-button>
38
- </sl-tooltip>
39
-
40
- <sl-tooltip content="top" placement="top">
41
- <sl-button></sl-button>
42
- </sl-tooltip>
43
-
44
- <sl-tooltip content="top-end" placement="top-end">
45
- <sl-button></sl-button>
46
- </sl-tooltip>
47
- </div>
48
-
49
- <div class="tooltip-placement-example-row">
50
- <sl-tooltip content="left-start" placement="left-start">
51
- <sl-button></sl-button>
52
- </sl-tooltip>
53
-
54
- <sl-tooltip content="right-start" placement="right-start">
55
- <sl-button></sl-button>
56
- </sl-tooltip>
57
- </div>
58
-
59
- <div class="tooltip-placement-example-row">
60
- <sl-tooltip content="left" placement="left">
61
- <sl-button></sl-button>
62
- </sl-tooltip>
63
-
64
- <sl-tooltip content="right" placement="right">
65
- <sl-button></sl-button>
66
- </sl-tooltip>
67
- </div>
68
-
69
- <div class="tooltip-placement-example-row">
70
- <sl-tooltip content="left-end" placement="left-end">
71
- <sl-button></sl-button>
72
- </sl-tooltip>
73
-
74
- <sl-tooltip content="right-end" placement="right-end">
75
- <sl-button></sl-button>
76
- </sl-tooltip>
77
- </div>
78
-
79
- <div class="tooltip-placement-example-row">
80
- <sl-tooltip content="bottom-start" placement="bottom-start">
81
- <sl-button></sl-button>
82
- </sl-tooltip>
83
-
84
- <sl-tooltip content="bottom" placement="bottom">
85
- <sl-button></sl-button>
86
- </sl-tooltip>
87
-
88
- <sl-tooltip content="bottom-end" placement="bottom-end">
89
- <sl-button></sl-button>
90
- </sl-tooltip>
91
- </div>
92
- </div>
93
-
94
- <style>
95
- .tooltip-placement-example {
96
- width: 250px;
97
- }
98
-
99
- .tooltip-placement-example-row:after {
100
- content: '';
101
- display: table;
102
- clear: both;
103
- }
104
-
105
- .tooltip-placement-example sl-button {
106
- float: left;
107
- width: 2.5rem;
108
- margin-right: 0.25rem;
109
- margin-bottom: 0.25rem;
110
- }
111
-
112
- .tooltip-placement-example-row:nth-child(1) sl-tooltip:first-child sl-button,
113
- .tooltip-placement-example-row:nth-child(5) sl-tooltip:first-child sl-button {
114
- margin-left: calc(40px + 0.25rem);
115
- }
116
-
117
- .tooltip-placement-example-row:nth-child(2) sl-tooltip:nth-child(2) sl-button,
118
- .tooltip-placement-example-row:nth-child(3) sl-tooltip:nth-child(2) sl-button,
119
- .tooltip-placement-example-row:nth-child(4) sl-tooltip:nth-child(2) sl-button {
120
- margin-left: calc((40px * 3) + (0.25rem * 3));
121
- }
122
- </style>
123
- ```
124
-
125
- ```jsx react
126
- import { SlButton, SlTooltip } from '@shoelace-style/shoelace/dist/react';
127
-
128
- const css = `
129
- .tooltip-placement-example {
130
- width: 250px;
131
- }
132
-
133
- .tooltip-placement-example-row:after {
134
- content: '';
135
- display: table;
136
- clear: both;
137
- }
138
-
139
- .tooltip-placement-example sl-button {
140
- float: left;
141
- width: 2.5rem;
142
- margin-right: 0.25rem;
143
- margin-bottom: 0.25rem;
144
- }
145
-
146
- .tooltip-placement-example-row:nth-child(1) sl-tooltip:first-child sl-button,
147
- .tooltip-placement-example-row:nth-child(5) sl-tooltip:first-child sl-button {
148
- margin-left: calc(40px + 0.25rem);
149
- }
150
-
151
- .tooltip-placement-example-row:nth-child(2) sl-tooltip:nth-child(2) sl-button,
152
- .tooltip-placement-example-row:nth-child(3) sl-tooltip:nth-child(2) sl-button,
153
- .tooltip-placement-example-row:nth-child(4) sl-tooltip:nth-child(2) sl-button {
154
- margin-left: calc((40px * 3) + (0.25rem * 3));
155
- }
156
- `;
157
-
158
- const App = () => (
159
- <>
160
- <div className="tooltip-placement-example">
161
- <div className="tooltip-placement-example-row">
162
- <SlTooltip content="top-start" placement="top-start">
163
- <SlButton />
164
- </SlTooltip>
165
-
166
- <SlTooltip content="top" placement="top">
167
- <SlButton />
168
- </SlTooltip>
169
-
170
- <SlTooltip content="top-end" placement="top-end">
171
- <SlButton />
172
- </SlTooltip>
173
- </div>
174
-
175
- <div className="tooltip-placement-example-row">
176
- <SlTooltip content="left-start" placement="left-start">
177
- <SlButton />
178
- </SlTooltip>
179
-
180
- <SlTooltip content="right-start" placement="right-start">
181
- <SlButton />
182
- </SlTooltip>
183
- </div>
184
-
185
- <div className="tooltip-placement-example-row">
186
- <SlTooltip content="left" placement="left">
187
- <SlButton />
188
- </SlTooltip>
189
-
190
- <SlTooltip content="right" placement="right">
191
- <SlButton />
192
- </SlTooltip>
193
- </div>
194
-
195
- <div className="tooltip-placement-example-row">
196
- <SlTooltip content="left-end" placement="left-end">
197
- <SlButton />
198
- </SlTooltip>
199
-
200
- <SlTooltip content="right-end" placement="right-end">
201
- <SlButton />
202
- </SlTooltip>
203
- </div>
204
-
205
- <div className="tooltip-placement-example-row">
206
- <SlTooltip content="bottom-start" placement="bottom-start">
207
- <SlButton />
208
- </SlTooltip>
209
-
210
- <SlTooltip content="bottom" placement="bottom">
211
- <SlButton />
212
- </SlTooltip>
213
-
214
- <SlTooltip content="bottom-end" placement="bottom-end">
215
- <SlButton />
216
- </SlTooltip>
217
- </div>
218
- </div>
219
-
220
- <style>{css}</style>
221
- </>
222
- );
223
- ```
224
-
225
- ### Click Trigger
226
-
227
- Set the `trigger` attribute to `click` to toggle the tooltip on click instead of hover.
228
-
229
- ```html preview
230
- <sl-tooltip content="Click again to dismiss" trigger="click">
231
- <sl-button>Click to Toggle</sl-button>
232
- </sl-tooltip>
233
- ```
234
-
235
- ```jsx react
236
- import { SlButton, SlTooltip } from '@shoelace-style/shoelace/dist/react';
237
-
238
- const App = () => (
239
- <SlTooltip content="Click again to dismiss" trigger="click">
240
- <SlButton>Click to Toggle</SlButton>
241
- </SlTooltip>
242
- );
243
- ```
244
-
245
- ### Manual Trigger
246
-
247
- Tooltips can be controller programmatically by setting the `trigger` attribute to `manual`. Use the `open` attribute to control when the tooltip is shown.
248
-
249
- ```html preview
250
- <sl-button style="margin-right: 4rem;">Toggle Manually</sl-button>
251
-
252
- <sl-tooltip content="This is an avatar" trigger="manual" class="manual-tooltip">
253
- <sl-avatar></sl-avatar>
254
- </sl-tooltip>
255
-
256
- <script>
257
- const tooltip = document.querySelector('.manual-tooltip');
258
- const toggle = tooltip.previousElementSibling;
259
-
260
- toggle.addEventListener('click', () => (tooltip.open = !tooltip.open));
261
- </script>
262
- ```
263
-
264
- ```jsx react
265
- import { useState } from 'react';
266
- import { SlAvatar, SlButton, SlTooltip } from '@shoelace-style/shoelace/dist/react';
267
-
268
- const App = () => {
269
- const [open, setOpen] = useState(false);
270
-
271
- return (
272
- <>
273
- <SlButton
274
- style={{ marginRight: '4rem' }}
275
- onClick={() => setOpen(!open)}
276
- >
277
- Toggle Manually
278
- </SlButton>
279
-
280
- <SlTooltip open={open} content="This is an avatar" trigger="manual">
281
- <SlAvatar />
282
- </SlTooltip>
283
- </>
284
- );
285
- };
286
- ```
287
-
288
- ### Remove Arrows
289
-
290
- You can control the size of tooltip arrows by overriding the `--sl-tooltip-arrow-size` design token.
291
-
292
- ```html preview
293
- <div style="--sl-tooltip-arrow-size: 0;">
294
- <sl-tooltip content="This is a tooltip">
295
- <sl-button>Above</sl-button>
296
- </sl-tooltip>
297
-
298
- <sl-tooltip content="This is a tooltip" placement="bottom">
299
- <sl-button>Below</sl-button>
300
- </sl-tooltip>
301
- </div>
302
- ```
303
-
304
- ```jsx react
305
- import { SlButton, SlTooltip } from '@shoelace-style/shoelace/dist/react';
306
-
307
- const App = () => (
308
- <div style={{ '--sl-tooltip-arrow-size': '0' }}>
309
- <SlTooltip content="This is a tooltip">
310
- <SlButton>Above</SlButton>
311
- </SlTooltip>
312
-
313
- <SlTooltip content="This is a tooltip" placement="bottom">
314
- <SlButton>Below</SlButton>
315
- </SlTooltip>
316
- </div>
317
- );
318
- ```
319
-
320
- To override it globally, set it in a root block in your stylesheet after the Shoelace stylesheet is loaded.
321
-
322
- ```css
323
- :root {
324
- --sl-tooltip-arrow-size: 0;
325
- }
326
- ```
327
-
328
- ### HTML in Tooltips
329
-
330
- Use the `content` slot to create tooltips with HTML content. Tooltips are designed only for text and presentational elements. Avoid placing interactive content, such as buttons, links, and form controls, in a tooltip.
331
-
332
- ```html preview
333
- <sl-tooltip>
334
- <div slot="content">
335
- I'm not <strong>just</strong> a tooltip, I'm a <em>tooltip</em> with HTML!
336
- </div>
337
-
338
- <sl-button>Hover me</sl-button>
339
- </sl-tooltip>
340
- ```
341
-
342
- ```jsx react
343
- import { SlButton, SlTooltip } from '@shoelace-style/shoelace/dist/react';
344
-
345
- const App = () => (
346
- <SlTooltip content="This is a tooltip">
347
- <div slot="content">
348
- I'm not <strong>just</strong> a tooltip, I'm a <em>tooltip</em> with HTML!
349
- </div>
350
-
351
- <SlButton>Hover Me</SlButton>
352
- </SlTooltip>
353
- );
354
- ```
355
-
356
- ### Hoisting
357
-
358
- Tooltips will be clipped if they're inside a container that has `overflow: auto|hidden|scroll`. The `hoist` attribute forces the tooltip to use a fixed positioning strategy, allowing it to break out of the container. In this case, the tooltip will be positioned relative to its containing block, which is usually the viewport unless an ancestor uses a `transform`, `perspective`, or `filter`. [Refer to this page](https://developer.mozilla.org/en-US/docs/Web/CSS/position#fixed) for more details.
359
-
360
- ```html preview
361
- <div class="tooltip-hoist">
362
- <sl-tooltip content="This is a tooltip">
363
- <sl-button>No Hoist</sl-button>
364
- </sl-tooltip>
365
-
366
- <sl-tooltip content="This is a tooltip" hoist>
367
- <sl-button>Hoist</sl-button>
368
- </sl-tooltip>
369
- </div>
370
-
371
- <style>
372
- .tooltip-hoist {
373
- border: solid 2px var(--sl-panel-border-color);
374
- overflow: hidden;
375
- padding: var(--sl-spacing-medium);
376
- position: relative;
377
- }
378
- </style>
379
- ```
380
-
381
- ```jsx react
382
- import { SlButton, SlTooltip } from '@shoelace-style/shoelace/dist/react';
383
-
384
- const css = `
385
- .tooltip-hoist {
386
- border: solid 2px var(--sl-panel-border-color);
387
- overflow: hidden;
388
- padding: var(--sl-spacing-medium);
389
- position: relative;
390
- }
391
- `;
392
-
393
- const App = () => (
394
- <>
395
- <div class="tooltip-hoist">
396
- <SlTooltip content="This is a tooltip">
397
- <SlButton>No Hoist</SlButton>
398
- </SlTooltip>
399
-
400
- <SlTooltip content="This is a tooltip" hoist>
401
- <SlButton>Hoist</SlButton>
402
- </SlTooltip>
403
- </div>
404
-
405
- <style>{css}</style>
406
- </>
407
- );
408
- ```
409
-
410
- [component-metadata:sl-tooltip]
@@ -1,47 +0,0 @@
1
- # Visually Hidden
2
-
3
- [component-header:sl-visually-hidden]
4
-
5
- The visually hidden utility makes content accessible to assistive devices without displaying it on the screen.
6
-
7
- According to [The A11Y Project](https://www.a11yproject.com/posts/2013-01-11-how-to-hide-content/), "there are real world situations where visually hiding content may be appropriate, while the content should remain available to assistive technologies, such as screen readers. For instance, hiding a search field's label as a common magnifying glass icon is used in its stead."
8
-
9
- Since visually hidden content can receive focus when tabbing, the element will become visible when something inside receives focus. This behavior is intentional, as sighted keyboards user won't be able to determine where the focus indicator is without it.
10
-
11
- ```html preview
12
- <div style="min-height: 100px;">
13
- <sl-visually-hidden>
14
- <a href="#">Skip to main content</a>
15
- </sl-visually-hidden>
16
- </div>
17
- ```
18
-
19
- ## Examples
20
-
21
- ### Links That Open in New Windows
22
-
23
- In this example, the link will open a new window. Screen readers will announce "opens in a new window" even though the text content isn't visible to sighted users.
24
-
25
- ```html preview
26
- <a href="https://example.com/" target="_blank">
27
- Visit External Page
28
- <sl-icon name="box-arrow-up-right"></sl-icon>
29
- <sl-visually-hidden>opens in a new window</sl-visually-hidden>
30
- </a>
31
- ```
32
-
33
- ### Content Conveyed By Context
34
-
35
- Adding a title or label may seem redundant at times, but they're very helpful for unsighted users. Rather than omit them, you can provide context to unsighted users with visually hidden content.
36
-
37
- ```html preview
38
- <sl-card style="width: 100%; max-width: 360px;">
39
- <header>
40
- <sl-visually-hidden>Personal Info</sl-visually-hidden>
41
- </header>
42
- <sl-input label="Name" style="margin-bottom: .5rem;"></sl-input>
43
- <sl-input label="Email" type="email"></sl-input>
44
- </sl-card>
45
- ```
46
-
47
- [component-metadata:sl-visually-hidden]
@@ -1,46 +0,0 @@
1
- # Angular
2
-
3
- Angular [plays nice](https://custom-elements-everywhere.com/#angular) with custom elements, so you can use Shoelace in your Angular apps with ease.
4
-
5
- ## Installation
6
-
7
- To add Shoelace to your Angular app, install the package from npm.
8
-
9
- ```bash
10
- npm install @shoelace-style/shoelace
11
- ```
12
-
13
- Next, [include a theme](/getting-started/themes) and set the [base path](/getting-started/installation#setting-the-base-path) for icons and other assets. In this example, we'll import the light theme and use the CDN as a base path.
14
-
15
- ```jsx
16
- import '@shoelace-style/shoelace/dist/themes/light.css';
17
- import { setBasePath } from '@shoelace-style/shoelace/dist/utilities/base-path';
18
-
19
- setBasePath('https://cdn.jsdelivr.net/npm/@shoelace-style/shoelace@%VERSION%/dist/');
20
- ```
21
-
22
- ?> If you'd rather not use the CDN for assets, you can create a build task that copies `node_modules/@shoelace-style/shoelace/dist/assets` into a public folder in your app. Then you can point the base path to that folder instead.
23
-
24
- ## Configuration
25
-
26
- Then make sure to apply the custom elements schema as shown below.
27
-
28
- ```js
29
- import { BrowserModule } from '@angular/platform-browser';
30
- import { NgModule, CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';
31
-
32
- import { AppComponent } from './app.component';
33
-
34
- @NgModule({
35
- declarations: [AppComponent],
36
- imports: [BrowserModule],
37
- providers: [],
38
- bootstrap: [AppComponent],
39
- schemas: [CUSTOM_ELEMENTS_SCHEMA]
40
- })
41
- export class AppModule {}
42
- ```
43
-
44
- Now you can start using Shoelace components in your app!
45
-
46
- ?> Are you using Shoelace with Angular? [Help us improve this page!](https://github.com/shoelace-style/shoelace/blob/next/docs/frameworks/angular.md)