stimeo-ui 0.2.0 → 0.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (124) hide show
  1. package/CHANGELOG.md +59 -0
  2. package/dist/controllers/accordion_controller.d.ts +3 -2
  3. package/dist/controllers/accordion_controller.js.map +1 -1
  4. package/dist/controllers/alert_dialog_controller.d.ts +64 -0
  5. package/dist/controllers/alert_dialog_controller.js +318 -0
  6. package/dist/controllers/alert_dialog_controller.js.map +1 -0
  7. package/dist/controllers/carousel_controller.d.ts +100 -0
  8. package/dist/controllers/carousel_controller.js +272 -0
  9. package/dist/controllers/carousel_controller.js.map +1 -0
  10. package/dist/controllers/clipboard_controller.d.ts +72 -0
  11. package/dist/controllers/clipboard_controller.js +144 -0
  12. package/dist/controllers/clipboard_controller.js.map +1 -0
  13. package/dist/controllers/collapsible_controller.d.ts +70 -0
  14. package/dist/controllers/collapsible_controller.js +327 -0
  15. package/dist/controllers/collapsible_controller.js.map +1 -0
  16. package/dist/controllers/color_picker_controller.d.ts +76 -0
  17. package/dist/controllers/color_picker_controller.js +213 -0
  18. package/dist/controllers/color_picker_controller.js.map +1 -0
  19. package/dist/controllers/count_up_controller.js +8 -1
  20. package/dist/controllers/count_up_controller.js.map +1 -1
  21. package/dist/controllers/currency_input_controller.d.ts +72 -0
  22. package/dist/controllers/currency_input_controller.js +147 -0
  23. package/dist/controllers/currency_input_controller.js.map +1 -0
  24. package/dist/controllers/data_grid_controller.d.ts +71 -0
  25. package/dist/controllers/data_grid_controller.js +168 -0
  26. package/dist/controllers/data_grid_controller.js.map +1 -0
  27. package/dist/controllers/date_range_picker_controller.d.ts +87 -0
  28. package/dist/controllers/date_range_picker_controller.js +417 -0
  29. package/dist/controllers/date_range_picker_controller.js.map +1 -0
  30. package/dist/controllers/dismissible_controller.d.ts +57 -0
  31. package/dist/controllers/dismissible_controller.js +117 -0
  32. package/dist/controllers/dismissible_controller.js.map +1 -0
  33. package/dist/controllers/drawer_controller.d.ts +96 -0
  34. package/dist/controllers/drawer_controller.js +630 -0
  35. package/dist/controllers/drawer_controller.js.map +1 -0
  36. package/dist/controllers/editable_controller.d.ts +73 -0
  37. package/dist/controllers/editable_controller.js +168 -0
  38. package/dist/controllers/editable_controller.js.map +1 -0
  39. package/dist/controllers/file_dropzone_controller.d.ts +92 -0
  40. package/dist/controllers/file_dropzone_controller.js +165 -0
  41. package/dist/controllers/file_dropzone_controller.js.map +1 -0
  42. package/dist/controllers/filter_controller.d.ts +60 -0
  43. package/dist/controllers/filter_controller.js +86 -0
  44. package/dist/controllers/filter_controller.js.map +1 -0
  45. package/dist/controllers/flash_controller.js +36 -5
  46. package/dist/controllers/flash_controller.js.map +1 -1
  47. package/dist/controllers/highlight_controller.js +6 -4
  48. package/dist/controllers/highlight_controller.js.map +1 -1
  49. package/dist/controllers/intersection_controller.js +41 -18
  50. package/dist/controllers/intersection_controller.js.map +1 -1
  51. package/dist/controllers/lazy_frame_controller.js +33 -11
  52. package/dist/controllers/lazy_frame_controller.js.map +1 -1
  53. package/dist/controllers/masonry_controller.d.ts +54 -0
  54. package/dist/controllers/masonry_controller.js +142 -0
  55. package/dist/controllers/masonry_controller.js.map +1 -0
  56. package/dist/controllers/menubar_controller.d.ts +62 -0
  57. package/dist/controllers/menubar_controller.js +433 -0
  58. package/dist/controllers/menubar_controller.js.map +1 -0
  59. package/dist/controllers/multi_select_controller.d.ts +115 -0
  60. package/dist/controllers/multi_select_controller.js +472 -0
  61. package/dist/controllers/multi_select_controller.js.map +1 -0
  62. package/dist/controllers/navigation_menu_controller.d.ts +99 -0
  63. package/dist/controllers/navigation_menu_controller.js +384 -0
  64. package/dist/controllers/navigation_menu_controller.js.map +1 -0
  65. package/dist/controllers/overflow_indicator_controller.d.ts +12 -4
  66. package/dist/controllers/overflow_indicator_controller.js +178 -27
  67. package/dist/controllers/overflow_indicator_controller.js.map +1 -1
  68. package/dist/controllers/password_reveal_controller.d.ts +49 -0
  69. package/dist/controllers/password_reveal_controller.js +117 -0
  70. package/dist/controllers/password_reveal_controller.js.map +1 -0
  71. package/dist/controllers/range_slider_controller.d.ts +87 -0
  72. package/dist/controllers/range_slider_controller.js +166 -0
  73. package/dist/controllers/range_slider_controller.js.map +1 -0
  74. package/dist/controllers/read_more_controller.d.ts +52 -0
  75. package/dist/controllers/read_more_controller.js +194 -0
  76. package/dist/controllers/read_more_controller.js.map +1 -0
  77. package/dist/controllers/scroll_area_controller.js +15 -2
  78. package/dist/controllers/scroll_area_controller.js.map +1 -1
  79. package/dist/controllers/scroll_restore_controller.d.ts +54 -0
  80. package/dist/controllers/scroll_restore_controller.js +93 -0
  81. package/dist/controllers/scroll_restore_controller.js.map +1 -0
  82. package/dist/controllers/scroll_visibility_controller.js +8 -4
  83. package/dist/controllers/scroll_visibility_controller.js.map +1 -1
  84. package/dist/controllers/scrollspy_controller.js +33 -11
  85. package/dist/controllers/scrollspy_controller.js.map +1 -1
  86. package/dist/controllers/separator_controller.d.ts +54 -0
  87. package/dist/controllers/separator_controller.js +87 -0
  88. package/dist/controllers/separator_controller.js.map +1 -0
  89. package/dist/controllers/sidebar_controller.d.ts +107 -0
  90. package/dist/controllers/sidebar_controller.js +761 -0
  91. package/dist/controllers/sidebar_controller.js.map +1 -0
  92. package/dist/controllers/stepper_controller.d.ts +4 -0
  93. package/dist/controllers/stepper_controller.js +28 -12
  94. package/dist/controllers/stepper_controller.js.map +1 -1
  95. package/dist/controllers/stick_to_bottom_controller.js +8 -4
  96. package/dist/controllers/stick_to_bottom_controller.js.map +1 -1
  97. package/dist/controllers/sticky_observer_controller.d.ts +17 -4
  98. package/dist/controllers/sticky_observer_controller.js +88 -20
  99. package/dist/controllers/sticky_observer_controller.js.map +1 -1
  100. package/dist/controllers/tabs_controller.d.ts +3 -2
  101. package/dist/controllers/tabs_controller.js.map +1 -1
  102. package/dist/controllers/tags_input_controller.d.ts +91 -0
  103. package/dist/controllers/tags_input_controller.js +275 -0
  104. package/dist/controllers/tags_input_controller.js.map +1 -0
  105. package/dist/controllers/theme_controller.js +20 -10
  106. package/dist/controllers/theme_controller.js.map +1 -1
  107. package/dist/controllers/time_picker_controller.d.ts +67 -0
  108. package/dist/controllers/time_picker_controller.js +212 -0
  109. package/dist/controllers/time_picker_controller.js.map +1 -0
  110. package/dist/controllers/toast_controller.d.ts +1 -9
  111. package/dist/controllers/toast_controller.js +36 -9
  112. package/dist/controllers/toast_controller.js.map +1 -1
  113. package/dist/controllers/transition_controller.d.ts +14 -8
  114. package/dist/controllers/transition_controller.js +153 -38
  115. package/dist/controllers/transition_controller.js.map +1 -1
  116. package/dist/controllers/tree_view_controller.d.ts +54 -0
  117. package/dist/controllers/tree_view_controller.js +275 -0
  118. package/dist/controllers/tree_view_controller.js.map +1 -0
  119. package/dist/index.d.ts +27 -1818
  120. package/dist/index.js +811 -295
  121. package/dist/index.js.map +1 -1
  122. package/dist/inspector/examples.json +2 -2
  123. package/dist/inspector/manifest.json +15 -3
  124. package/package.json +1 -1
@@ -351,7 +351,7 @@
351
351
  },
352
352
  "stimeo--sidebar": {
353
353
  "file": "examples/sidebar/_demo.html.erb",
354
- "source": "<%# Markup for the sidebar (collapsible sidebar) demo.\n This demo focuses on the INLINE rail: the toggle collapses / expands it and the\n preference persists in localStorage across reloads. (The same sidebar can also\n switch to a modal off-canvas panel below a breakpoint — that document-level modal\n mode is described in the text and is the same off-canvas pattern the Drawer demo\n shows; it is not staged here because a page-level modal inside a catalog card reads\n as taking over the page.) breakpoint=0 keeps this demo always inline. The library\n syncs aria-expanded, data-mode, and data-state; the rail width / animation are\n demo.css's. role=\"dialog\" is intentionally not applied — the panel stays a nav. %>\n<div\n class=\"sidebar-demo\"\n data-controller=\"stimeo--sidebar\"\n data-stimeo--sidebar-breakpoint-value=\"0\"\n data-stimeo--sidebar-key-value=\"catalog-demo\">\n <div class=\"sidebar-demo__bar\">\n <button\n type=\"button\"\n class=\"sidebar-demo__toggle\"\n data-stimeo--sidebar-target=\"trigger\"\n data-action=\"click->stimeo--sidebar#toggle\"\n aria-expanded=\"true\"\n aria-controls=\"sidebar-demo-panel\">\n <%= t(\"components.sidebar.demo.toggle\") %>\n </button>\n <span class=\"sidebar-demo__brand\"><%= t(\"components.sidebar.demo.brand\") %></span>\n </div>\n\n <div class=\"sidebar-demo__body\">\n <nav\n id=\"sidebar-demo-panel\"\n class=\"sidebar-demo__panel\"\n data-stimeo--sidebar-target=\"panel\"\n aria-label=\"<%= t('components.sidebar.demo.nav_label') %>\"\n data-mode=\"inline\"\n data-state=\"expanded\">\n <% t(\"components.sidebar.demo.items\").each do |label| %>\n <a class=\"sidebar-demo__link\" href=\"#\"><%= label %></a>\n <% end %>\n </nav>\n\n <main class=\"sidebar-demo__content\">\n <p><%= t(\"components.sidebar.demo.hint\") %></p>\n </main>\n </div>\n</div>\n"
354
+ "source": "<%# Markup for the sidebar (collapsible sidebar) demo.\n This demo focuses on the INLINE rail: the toggle collapses / expands it and the\n preference persists in localStorage across reloads. (The same sidebar can also\n switch to a modal off-canvas panel below a breakpoint — that document-level modal\n mode is described in the text and is the same off-canvas pattern the Drawer demo\n shows; it is not staged here because a page-level modal inside a catalog card reads\n as taking over the page.) breakpoint=0 keeps this demo always inline. The library\n syncs aria-expanded, data-mode, and data-state; the rail width / animation are\n demo.css's. role=\"dialog\" is intentionally not applied — the panel stays a nav. %>\n<div\n class=\"sidebar-demo\"\n data-controller=\"stimeo--sidebar\"\n data-action=\"turbo:before-cache@document->stimeo--sidebar#beforeCache\"\n data-stimeo--sidebar-breakpoint-value=\"0\"\n data-stimeo--sidebar-key-value=\"catalog-demo\">\n <div class=\"sidebar-demo__bar\">\n <button\n type=\"button\"\n class=\"sidebar-demo__toggle\"\n data-stimeo--sidebar-target=\"trigger\"\n data-action=\"click->stimeo--sidebar#toggle\"\n aria-expanded=\"true\"\n aria-controls=\"sidebar-demo-panel\">\n <%= t(\"components.sidebar.demo.toggle\") %>\n </button>\n <span class=\"sidebar-demo__brand\"><%= t(\"components.sidebar.demo.brand\") %></span>\n </div>\n\n <div class=\"sidebar-demo__body\">\n <nav\n id=\"sidebar-demo-panel\"\n class=\"sidebar-demo__panel\"\n data-stimeo--sidebar-target=\"panel\"\n aria-label=\"<%= t('components.sidebar.demo.nav_label') %>\"\n data-mode=\"inline\"\n data-state=\"expanded\">\n <% t(\"components.sidebar.demo.items\").each do |label| %>\n <a class=\"sidebar-demo__link\" href=\"#\"><%= label %></a>\n <% end %>\n </nav>\n\n <main class=\"sidebar-demo__content\">\n <p><%= t(\"components.sidebar.demo.hint\") %></p>\n </main>\n </div>\n</div>\n"
355
355
  },
356
356
  "stimeo--skeleton": {
357
357
  "file": "examples/skeleton/_demo.html.erb",
@@ -387,7 +387,7 @@
387
387
  },
388
388
  "stimeo--sticky-observer": {
389
389
  "file": "examples/sticky_observer/_demo.html.erb",
390
- "source": "<%# Markup for the sticky-observer (stuck-state detection) demo.\n The library watches a sentinel's intersection with IntersectionObserver and syncs\n data-stuck=\"true\" once the sticky element actually sticks. position: sticky and the\n shadow rendering are owned by demo.css. rootSelector specifies the scroll parent\n (this demo frame). %>\n<div class=\"sticky-demo\" data-controller=\"stimeo--sticky-observer\"\n data-stimeo--sticky-observer-root-selector-value=\".sticky-demo__scroll\">\n <div class=\"sticky-demo__scroll\">\n <%# Place the sentinel right before the sticky element. A 1px non-zero height keeps\n intersection detection stable. %>\n <div class=\"sticky-demo__sentinel\" aria-hidden=\"true\"\n data-stimeo--sticky-observer-target=\"sentinel\"></div>\n <header class=\"sticky-demo__header\" data-stimeo--sticky-observer-target=\"element\">\n <%= t(\"components.sticky_observer.demo.header\") %>\n </header>\n <div class=\"sticky-demo__body\">\n <% 8.times do |i| %>\n <p><%= t(\"components.sticky_observer.demo.paragraph\", number: i + 1) %></p>\n <% end %>\n </div>\n </div>\n</div>\n"
390
+ "source": "<%# Markup for the sticky-observer (stuck-state detection) demo.\n The library watches a sentinel's intersection with IntersectionObserver and syncs\n data-stuck=\"true\" once the sticky element actually sticks. position: sticky and the\n shadow rendering are owned by demo.css. rootSelector specifies the scroll parent\n (this demo frame). %>\n<div class=\"sticky-demo\" data-controller=\"stimeo--sticky-observer\"\n data-stimeo--sticky-observer-root-selector-value=\".sticky-demo__scroll\">\n <%# The scroll box is a labelled, focusable region so it can be scrolled with the\n keyboard alone (arrows / PageDown) in every browser, not only the ones that\n make scrollers focusable by themselves. %>\n <div class=\"sticky-demo__scroll\" role=\"region\" tabindex=\"0\"\n aria-label=\"<%= t('components.sticky_observer.demo.viewport_label') %>\">\n <%# Place the sentinel right before the sticky element. A 1px non-zero height keeps\n intersection detection stable. %>\n <div class=\"sticky-demo__sentinel\" aria-hidden=\"true\"\n data-stimeo--sticky-observer-target=\"sentinel\"></div>\n <header class=\"sticky-demo__header\" data-stimeo--sticky-observer-target=\"element\">\n <%= t(\"components.sticky_observer.demo.header\") %>\n </header>\n <div class=\"sticky-demo__body\">\n <% 8.times do |i| %>\n <p><%= t(\"components.sticky_observer.demo.paragraph\", number: i + 1) %></p>\n <% end %>\n </div>\n </div>\n</div>\n"
391
391
  },
392
392
  "stimeo--submit-once": {
393
393
  "file": "examples/submit_once/_demo.html.erb",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "schemaVersion": 5,
3
- "packageVersion": "0.2.0",
3
+ "packageVersion": "0.2.1",
4
4
  "controllers": {
5
5
  "stimeo--accordion": {
6
6
  "targets": [
@@ -2784,12 +2784,15 @@
2784
2784
  "collapsed"
2785
2785
  ],
2786
2786
  "actions": [
2787
+ "beforeCache",
2787
2788
  "close",
2788
2789
  "open",
2789
2790
  "toggle"
2790
2791
  ],
2791
2792
  "events": [],
2792
- "requiredTargets": [],
2793
+ "requiredTargets": [
2794
+ "panel"
2795
+ ],
2793
2796
  "a11y": [],
2794
2797
  "keyboard": [],
2795
2798
  "managedAria": [],
@@ -3199,7 +3202,8 @@
3199
3202
  "events": [],
3200
3203
  "requiredTargets": [
3201
3204
  "tab",
3202
- "panel"
3205
+ "panel",
3206
+ "list"
3203
3207
  ],
3204
3208
  "a11y": [
3205
3209
  {
@@ -3231,6 +3235,14 @@
3231
3235
  "tablist"
3232
3236
  ],
3233
3237
  "suggestion": "Add role=\"tablist\" to the list target."
3238
+ },
3239
+ {
3240
+ "target": "list",
3241
+ "attrs": [
3242
+ "aria-labelledby",
3243
+ "aria-label"
3244
+ ],
3245
+ "suggestion": "Name the tablist via aria-labelledby or aria-label."
3234
3246
  }
3235
3247
  ],
3236
3248
  "keyboard": [],
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "stimeo-ui",
3
- "version": "0.2.0",
3
+ "version": "0.2.1",
4
4
  "description": "Headless Stimulus UI framework for Ruby on Rails — behavior-only, accessible components driven by HTML attributes.",
5
5
  "type": "module",
6
6
  "license": "MIT",