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,389 +0,0 @@
1
- # Dropdown
2
-
3
- [component-header:sl-dropdown]
4
-
5
- Dropdowns expose additional content that "drops down" in a panel.
6
-
7
- Dropdowns consist of a trigger and a panel. By default, activating the trigger will expose the panel and interacting outside of the panel will close it.
8
-
9
- Dropdowns are designed to work well with [menus](/components/menu) to provide a list of options the user can select from. However, dropdowns can also be used in lower-level applications (e.g. [color picker](/components/color-picker) and [select](/components/select)). The API gives you complete control over showing, hiding, and positioning the panel.
10
-
11
- ```html preview
12
- <sl-dropdown>
13
- <sl-button slot="trigger" caret>Dropdown</sl-button>
14
- <sl-menu>
15
- <sl-menu-item>Dropdown Item 1</sl-menu-item>
16
- <sl-menu-item>Dropdown Item 2</sl-menu-item>
17
- <sl-menu-item>Dropdown Item 3</sl-menu-item>
18
- <sl-divider></sl-divider>
19
- <sl-menu-item checked>Checked</sl-menu-item>
20
- <sl-menu-item disabled>Disabled</sl-menu-item>
21
- <sl-divider></sl-divider>
22
- <sl-menu-item>
23
- Prefix
24
- <sl-icon slot="prefix" name="gift"></sl-icon>
25
- </sl-menu-item>
26
- <sl-menu-item>
27
- Suffix Icon
28
- <sl-icon slot="suffix" name="heart"></sl-icon>
29
- </sl-menu-item>
30
- </sl-menu>
31
- </sl-dropdown>
32
- ```
33
-
34
- ```jsx react
35
- import {
36
- SlButton,
37
- SlDivider,
38
- SlDropdown,
39
- SlIcon,
40
- SlMenu,
41
- SlMenuItem
42
- } from '@shoelace-style/shoelace/dist/react';
43
-
44
- const App = () => (
45
- <SlDropdown>
46
- <SlButton slot="trigger" caret>Dropdown</SlButton>
47
- <SlMenu>
48
- <SlMenuItem>Dropdown Item 1</SlMenuItem>
49
- <SlMenuItem>Dropdown Item 2</SlMenuItem>
50
- <SlMenuItem>Dropdown Item 3</SlMenuItem>
51
- <SlDivider />
52
- <SlMenuItem checked>Checked</SlMenuItem>
53
- <SlMenuItem disabled>Disabled</SlMenuItem>
54
- <SlDivider />
55
- <SlMenuItem>
56
- Prefix
57
- <SlIcon slot="prefix" name="gift" />
58
- </SlMenuItem>
59
- <SlMenuItem>
60
- Suffix Icon
61
- <SlIcon slot="suffix" name="heart" />
62
- </SlMenuItem>
63
- </SlMenu>
64
- </SlDropdown>
65
- );
66
- ```
67
-
68
- ## Examples
69
-
70
- ### Getting the Selected Item
71
-
72
- When dropdowns are used with [menus](/components/menu), you can listen for the `sl-select` event to determine which menu item was selected. The menu item element will be exposed in `event.detail.item`. You can set `value` props to make it easier to identify commands.
73
-
74
- ```html preview
75
- <div class="dropdown-selection">
76
- <sl-dropdown>
77
- <sl-button slot="trigger" caret>Edit</sl-button>
78
- <sl-menu>
79
- <sl-menu-item value="cut">Cut</sl-menu-item>
80
- <sl-menu-item value="copy">Copy</sl-menu-item>
81
- <sl-menu-item value="paste">Paste</sl-menu-item>
82
- </sl-menu>
83
- </sl-dropdown>
84
- </div>
85
-
86
- <script>
87
- const container = document.querySelector('.dropdown-selection');
88
- const dropdown = container.querySelector('sl-dropdown');
89
-
90
- dropdown.addEventListener('sl-select', event => {
91
- const selectedItem = event.detail.item;
92
- console.log(selectedItem.value);
93
- });
94
- </script>
95
- ```
96
-
97
- ```jsx react
98
- import {
99
- SlButton,
100
- SlDropdown,
101
- SlMenu,
102
- SlMenuItem
103
- } from '@shoelace-style/shoelace/dist/react';
104
-
105
- const App = () => {
106
- function handleSelect(event) {
107
- const selectedItem = event.detail.item;
108
- console.log(selectedItem.value);
109
- }
110
-
111
- return (
112
- <SlDropdown>
113
- <SlButton slot="trigger" caret>Edit</SlButton>
114
- <SlMenu onSlSelect={handleSelect}>
115
- <SlMenuItem value="cut">Cut</SlMenuItem>
116
- <SlMenuItem value="copy">Copy</SlMenuItem>
117
- <SlMenuItem value="paste">Paste</SlMenuItem>
118
- </SlMenu>
119
- </SlDropdown>
120
- );
121
- };
122
- ```
123
-
124
- Alternatively, you can listen for the `click` event on individual menu items. Note that, using this approach, disabled menu items will still emit a `click` event.
125
-
126
- ```html preview
127
- <div class="dropdown-selection-alt">
128
- <sl-dropdown>
129
- <sl-button slot="trigger" caret>Edit</sl-button>
130
- <sl-menu>
131
- <sl-menu-item value="cut">Cut</sl-menu-item>
132
- <sl-menu-item value="copy">Copy</sl-menu-item>
133
- <sl-menu-item value="paste">Paste</sl-menu-item>
134
- </sl-menu>
135
- </sl-dropdown>
136
- </div>
137
-
138
- <script>
139
- const container = document.querySelector('.dropdown-selection-alt');
140
- const cut = container.querySelector('sl-menu-item[value="cut"]');
141
- const copy = container.querySelector('sl-menu-item[value="copy"]');
142
- const paste = container.querySelector('sl-menu-item[value="paste"]');
143
-
144
- cut.addEventListener('click', () => console.log('cut'));
145
- copy.addEventListener('click', () => console.log('copy'));
146
- paste.addEventListener('click', () => console.log('paste'));
147
- </script>
148
- ```
149
-
150
- ```jsx react
151
- import {
152
- SlButton,
153
- SlDropdown,
154
- SlMenu,
155
- SlMenuItem
156
- } from '@shoelace-style/shoelace/dist/react';
157
-
158
- const App = () => {
159
- function handleCut() {
160
- console.log('cut');
161
- }
162
-
163
- function handleCopy() {
164
- console.log('copy');
165
- }
166
-
167
- function handlePaste() {
168
- console.log('paste');
169
- }
170
-
171
- return (
172
- <SlDropdown>
173
- <SlButton slot="trigger" caret>Edit</SlButton>
174
- <SlMenu>
175
- <SlMenuItem onClick={handleCut}>Cut</SlMenuItem>
176
- <SlMenuItem onClick={handleCopy}>Copy</SlMenuItem>
177
- <SlMenuItem onClick={handlePaste}>Paste</SlMenuItem>
178
- </SlMenu>
179
- </SlDropdown>
180
- );
181
- };
182
- ```
183
-
184
- ### Placement
185
-
186
- The preferred placement of the dropdown can be set with the `placement` attribute. Note that the actual position may vary to ensure the panel remains in the viewport.
187
-
188
- ```html preview
189
- <sl-dropdown placement="top-start">
190
- <sl-button slot="trigger" caret>Edit</sl-button>
191
- <sl-menu>
192
- <sl-menu-item>Cut</sl-menu-item>
193
- <sl-menu-item>Copy</sl-menu-item>
194
- <sl-menu-item>Paste</sl-menu-item>
195
- <sl-divider></sl-divider>
196
- <sl-menu-item>Find</sl-menu-item>
197
- <sl-menu-item>Replace</sl-menu-item>
198
- </sl-menu>
199
- </sl-dropdown>
200
- ```
201
-
202
- ```jsx react
203
- import {
204
- SlButton,
205
- SlDivider,
206
- SlDropdown,
207
- SlMenu,
208
- SlMenuItem
209
- } from '@shoelace-style/shoelace/dist/react';
210
-
211
- const App = () => (
212
- <SlDropdown placement="top-start">
213
- <SlButton slot="trigger" caret>Edit</SlButton>
214
- <SlMenu>
215
- <SlMenuItem>Cut</SlMenuItem>
216
- <SlMenuItem>Copy</SlMenuItem>
217
- <SlMenuItem>Paste</SlMenuItem>
218
- <SlDivider />
219
- <SlMenuItem>Find</SlMenuItem>
220
- <SlMenuItem>Replace</SlMenuItem>
221
- </SlMenu>
222
- </SlDropdown>
223
- );
224
- ```
225
-
226
- ### Distance
227
-
228
- The distance from the panel to the trigger can be customized using the `distance` attribute. This value is specified in pixels.
229
-
230
- ```html preview
231
- <sl-dropdown distance="30">
232
- <sl-button slot="trigger" caret>Edit</sl-button>
233
- <sl-menu>
234
- <sl-menu-item>Cut</sl-menu-item>
235
- <sl-menu-item>Copy</sl-menu-item>
236
- <sl-menu-item>Paste</sl-menu-item>
237
- <sl-divider></sl-divider>
238
- <sl-menu-item>Find</sl-menu-item>
239
- <sl-menu-item>Replace</sl-menu-item>
240
- </sl-menu>
241
- </sl-dropdown>
242
- ```
243
-
244
- ```jsx react
245
- import {
246
- SlButton,
247
- SlDivider,
248
- SlDropdown,
249
- SlMenu,
250
- SlMenuItem
251
- } from '@shoelace-style/shoelace/dist/react';
252
-
253
- const App = () => (
254
- <SlDropdown distance={30}>
255
- <SlButton slot="trigger" caret>Edit</SlButton>
256
- <SlMenu>
257
- <SlMenuItem>Cut</SlMenuItem>
258
- <SlMenuItem>Copy</SlMenuItem>
259
- <SlMenuItem>Paste</SlMenuItem>
260
- <SlDivider />
261
- <SlMenuItem>Find</SlMenuItem>
262
- <SlMenuItem>Replace</SlMenuItem>
263
- </SlMenu>
264
- </SlDropdown>
265
- );
266
- ```
267
-
268
- ### Skidding
269
-
270
- The offset of the panel along the trigger can be customized using the `skidding` attribute. This value is specified in pixels.
271
-
272
- ```html preview
273
- <sl-dropdown skidding="30">
274
- <sl-button slot="trigger" caret>Edit</sl-button>
275
- <sl-menu>
276
- <sl-menu-item>Cut</sl-menu-item>
277
- <sl-menu-item>Copy</sl-menu-item>
278
- <sl-menu-item>Paste</sl-menu-item>
279
- <sl-divider></sl-divider>
280
- <sl-menu-item>Find</sl-menu-item>
281
- <sl-menu-item>Replace</sl-menu-item>
282
- </sl-menu>
283
- </sl-dropdown>
284
- ```
285
-
286
- ```jsx react
287
- import {
288
- SlButton,
289
- SlDivider,
290
- SlDropdown,
291
- SlMenu,
292
- SlMenuItem
293
- } from '@shoelace-style/shoelace/dist/react';
294
-
295
- const App = () => (
296
- <SlDropdown skidding={30}>
297
- <SlButton slot="trigger" caret>Edit</SlButton>
298
- <SlMenu>
299
- <SlMenuItem>Cut</SlMenuItem>
300
- <SlMenuItem>Copy</SlMenuItem>
301
- <SlMenuItem>Paste</SlMenuItem>
302
- <SlDivider />
303
- <SlMenuItem>Find</SlMenuItem>
304
- <SlMenuItem>Replace</SlMenuItem>
305
- </SlMenu>
306
- </SlDropdown>
307
- );
308
- ```
309
-
310
- ### Hoisting
311
-
312
- Dropdown panels will be clipped if they're inside a container that has `overflow: auto|hidden`. The `hoist` attribute forces the panel to use a fixed positioning strategy, allowing it to break out of the container. In this case, the panel 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.
313
-
314
- ```html preview
315
- <div class="dropdown-hoist">
316
- <sl-dropdown>
317
- <sl-button slot="trigger" caret>No Hoist</sl-button>
318
- <sl-menu>
319
- <sl-menu-item>Item 1</sl-menu-item>
320
- <sl-menu-item>Item 2</sl-menu-item>
321
- <sl-menu-item>Item 3</sl-menu-item>
322
- </sl-menu>
323
- </sl-dropdown>
324
-
325
- <sl-dropdown hoist>
326
- <sl-button slot="trigger" caret>Hoist</sl-button>
327
- <sl-menu>
328
- <sl-menu-item>Item 1</sl-menu-item>
329
- <sl-menu-item>Item 2</sl-menu-item>
330
- <sl-menu-item>Item 3</sl-menu-item>
331
- </sl-menu>
332
- </sl-dropdown>
333
- </div>
334
-
335
- <style>
336
- .dropdown-hoist {
337
- border: solid 2px var(--sl-panel-border-color);
338
- padding: var(--sl-spacing-medium);
339
- overflow: hidden;
340
- }
341
- </style>
342
- ```
343
-
344
- ```jsx react
345
- import {
346
- SlButton,
347
- SlDivider,
348
- SlDropdown,
349
- SlIcon,
350
- SlMenu,
351
- SlMenuItem
352
- } from '@shoelace-style/shoelace/dist/react';
353
-
354
- const css = `
355
- .dropdown-hoist {
356
- border: solid 2px var(--sl-panel-border-color);
357
- padding: var(--sl-spacing-medium);
358
- overflow: hidden;
359
- }
360
- `;
361
-
362
- const App = () => (
363
- <>
364
- <div className="dropdown-hoist">
365
- <SlDropdown>
366
- <SlButton slot="trigger" caret>No Hoist</SlButton>
367
- <SlMenu>
368
- <SlMenuItem>Item 1</SlMenuItem>
369
- <SlMenuItem>Item 2</SlMenuItem>
370
- <SlMenuItem>Item 3</SlMenuItem>
371
- </SlMenu>
372
- </SlDropdown>
373
-
374
- <SlDropdown hoist>
375
- <SlButton slot="trigger" caret>Hoist</SlButton>
376
- <SlMenu>
377
- <SlMenuItem>Item 1</SlMenuItem>
378
- <SlMenuItem>Item 2</SlMenuItem>
379
- <SlMenuItem>Item 3</SlMenuItem>
380
- </SlMenu>
381
- </SlDropdown>
382
- </div>
383
-
384
- <style>{css}</style>
385
- </>
386
- );
387
- ```
388
-
389
- [component-metadata:sl-dropdown]
@@ -1,126 +0,0 @@
1
- # Format Bytes
2
-
3
- [component-header:sl-format-bytes]
4
-
5
- Formats a number as a human readable bytes value.
6
-
7
- ```html preview
8
- <div class="format-bytes-overview">
9
- The file is <sl-format-bytes value="1000"></sl-format-bytes> in size.
10
- <br><br>
11
- <sl-input type="number" value="1000" label="Number to Format" style="max-width: 180px;"></sl-input>
12
- </div>
13
-
14
- <script>
15
- const container = document.querySelector('.format-bytes-overview');
16
- const formatter = container.querySelector('sl-format-bytes');
17
- const input = container.querySelector('sl-input');
18
-
19
- input.addEventListener('sl-input', () => formatter.value = input.value || 0);
20
- </script>
21
- ```
22
-
23
-
24
- ```jsx react
25
- import { useState } from 'react';
26
- import {
27
- SlButton,
28
- SlFormatBytes,
29
- SlInput
30
- } from '@shoelace-style/shoelace/dist/react';
31
-
32
- const App = () => {
33
- const [value, setValue] = useState(1000);
34
-
35
- return (
36
- <>
37
- The file is <SlFormatBytes value={value} /> in size.
38
- <br /><br />
39
- <SlInput
40
- type="number"
41
- value={value}
42
- label="Number to Format"
43
- style={{ maxWidth: '180px' }}
44
- onSlInput={event => setValue(event.target.value)}
45
- />
46
- </>
47
- );
48
- };
49
- ```
50
-
51
- ## Examples
52
-
53
- ### Formatting Bytes
54
-
55
- Set the `value` attribute to a number to get the value in bytes.
56
-
57
- ```html preview
58
- <sl-format-bytes value="12"></sl-format-bytes><br>
59
- <sl-format-bytes value="1200"></sl-format-bytes><br>
60
- <sl-format-bytes value="1200000"></sl-format-bytes><br>
61
- <sl-format-bytes value="1200000000"></sl-format-bytes>
62
- ```
63
-
64
-
65
- ```jsx react
66
- import { SlFormatBytes } from '@shoelace-style/shoelace/dist/react';
67
-
68
- const App = () => (
69
- <>
70
- <SlFormatBytes value="12" /><br />
71
- <SlFormatBytes value="1200" /><br />
72
- <SlFormatBytes value="1200000" /><br />
73
- <SlFormatBytes value="1200000000" />
74
- </>
75
- );
76
- ```
77
-
78
- ### Formatting Bits
79
-
80
- To get the value in bits, set the `unit` attribute to `bits`.
81
-
82
- ```html preview
83
- <sl-format-bytes value="12" unit="bits"></sl-format-bytes><br>
84
- <sl-format-bytes value="1200" unit="bits"></sl-format-bytes><br>
85
- <sl-format-bytes value="1200000" unit="bits"></sl-format-bytes><br>
86
- <sl-format-bytes value="1200000000" unit="bits"></sl-format-bytes>
87
- ```
88
-
89
- ```jsx react
90
- import { SlFormatBytes } from '@shoelace-style/shoelace/dist/react';
91
-
92
- const App = () => (
93
- <>
94
- <SlFormatBytes value="12" unit="bits" /><br />
95
- <SlFormatBytes value="1200" unit="bits" /><br />
96
- <SlFormatBytes value="1200000" unit="bits" /><br />
97
- <SlFormatBytes value="1200000000" unit="bits" />
98
- </>
99
- );
100
- ```
101
-
102
- ### Localization
103
-
104
- Use the `lang` attribute to set the number formatting locale.
105
-
106
- ```html preview
107
- <sl-format-bytes value="12" lang="de"></sl-format-bytes><br>
108
- <sl-format-bytes value="1200" lang="de"></sl-format-bytes><br>
109
- <sl-format-bytes value="1200000" lang="de"></sl-format-bytes><br>
110
- <sl-format-bytes value="1200000000" lang="de"></sl-format-bytes>
111
- ```
112
-
113
- ```jsx react
114
- import { SlFormatBytes } from '@shoelace-style/shoelace/dist/react';
115
-
116
- const App = () => (
117
- <>
118
- <SlFormatBytes value="12" lang="de" /><br />
119
- <SlFormatBytes value="1200" lang="de" /><br />
120
- <SlFormatBytes value="1200000" lang="de" /><br />
121
- <SlFormatBytes value="1200000000" lang="de" />
122
- </>
123
- );
124
- ```
125
-
126
- [component-metadata:sl-format-bytes]
@@ -1,120 +0,0 @@
1
- # Format Date
2
-
3
- [component-header:sl-format-date]
4
-
5
- Formats a date/time using the specified locale and options.
6
-
7
- Localization is handled by the browser's [`Intl.DateTimeFormat` API](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/DateTimeFormat). No language packs are required.
8
-
9
- ```html preview
10
- <!-- Shoelace 2 release date 🎉 -->
11
- <sl-format-date date="2020-07-15T09:17:00-04:00"></sl-format-date>
12
- ```
13
-
14
- ```jsx react
15
- import { SlFormatDate } from '@shoelace-style/shoelace/dist/react';
16
-
17
- const App = () => (
18
- <SlFormatDate date="2020-07-15T09:17:00-04:00" />
19
- );
20
- ```
21
-
22
- The `date` attribute determines the date/time to use when formatting. It must be a string that [`Date.parse()`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/parse) can interpret or a [`Date`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date) object set via JavaScript. If omitted, the current date/time will be assumed.
23
-
24
- ?> When using strings, avoid ambiguous dates such as `03/04/2020` which can be interpreted as March 4 or April 3 depending on the user's browser and locale. Instead, always use a valid [ISO 8601 date time string](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/parse#Date_Time_String_Format) to ensure the date will be parsed properly by all clients.
25
-
26
- ## Examples
27
-
28
- ### Date & Time Formatting
29
-
30
- Formatting options are based on those found in the [`Intl.DateTimeFormat` API](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/DateTimeFormat). When formatting options are provided, the date/time will be formatted according to those values. When no formatting options are provided, a localized, numeric date will be displayed instead.
31
-
32
- ```html preview
33
- <!-- Human-readable date -->
34
- <sl-format-date month="long" day="numeric" year="numeric"></sl-format-date><br>
35
-
36
- <!-- Time -->
37
- <sl-format-date hour="numeric" minute="numeric"></sl-format-date><br>
38
-
39
- <!-- Weekday -->
40
- <sl-format-date weekday="long"></sl-format-date><br>
41
-
42
- <!-- Month -->
43
- <sl-format-date month="long"></sl-format-date><br>
44
-
45
- <!-- Year -->
46
- <sl-format-date year="numeric"></sl-format-date><br>
47
-
48
- <!-- No formatting options -->
49
- <sl-format-date></sl-format-date>
50
- ```
51
-
52
- ```jsx react
53
- import { SlFormatDate } from '@shoelace-style/shoelace/dist/react';
54
-
55
- const App = () => (
56
- <>
57
- {/* Human-readable date */}
58
- <SlFormatDate month="long" day="numeric" year="numeric" /><br />
59
-
60
- {/* Time */}
61
- <SlFormatDate hour="numeric" minute="numeric" /><br />
62
-
63
- {/* Weekday */}
64
- <SlFormatDate weekday="long" /><br />
65
-
66
- {/* Month */}
67
- <SlFormatDate month="long" /><br />
68
-
69
- {/* Year */}
70
- <SlFormatDate year="numeric" /><br />
71
-
72
- {/* No formatting options */}
73
- <SlFormatDate />
74
- </>
75
- );
76
- ```
77
-
78
- ### Hour Formatting
79
-
80
- By default, the browser will determine whether to use 12-hour or 24-hour time. To force one or the other, set the `hour-format` attribute to `12` or `24`.
81
-
82
- ```html preview
83
- <sl-format-date hour="numeric" minute="numeric" hour-format="12"></sl-format-date><br>
84
- <sl-format-date hour="numeric" minute="numeric" hour-format="24"></sl-format-date>
85
- ```
86
-
87
- ```jsx react
88
- import { SlFormatDate } from '@shoelace-style/shoelace/dist/react';
89
-
90
- const App = () => (
91
- <>
92
- <SlFormatDate hour="numeric" minute="numeric" hour-format="12" /><br />
93
- <SlFormatDate hour="numeric" minute="numeric" hour-format="24" />
94
- </>
95
- );
96
- ```
97
-
98
- ### Localization
99
-
100
- Use the `lang` attribute to set the date/time formatting locale.
101
-
102
- ```html preview
103
- English: <sl-format-date lang="en"></sl-format-date><br>
104
- French: <sl-format-date lang="fr"></sl-format-date><br>
105
- Russian: <sl-format-date lang="ru"></sl-format-date>
106
- ```
107
-
108
- ```jsx react
109
- import { SlFormatDate } from '@shoelace-style/shoelace/dist/react';
110
-
111
- const App = () => (
112
- <>
113
- English: <SlFormatDate lang="en" /><br />
114
- French: <SlFormatDate lang="fr" /><br />
115
- Russian: <SlFormatDate lang="ru" />
116
- </>
117
- );
118
- ```
119
-
120
- [component-metadata:sl-format-date]