stimeo-ui 0.3.0 → 0.4.0

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 (82) hide show
  1. package/CHANGELOG.md +56 -0
  2. package/dist/controllers/alert_dialog_controller.js +32 -5
  3. package/dist/controllers/alert_dialog_controller.js.map +1 -1
  4. package/dist/controllers/announcer_controller.d.ts +32 -6
  5. package/dist/controllers/announcer_controller.js +255 -20
  6. package/dist/controllers/announcer_controller.js.map +1 -1
  7. package/dist/controllers/color_picker_controller.d.ts +2 -1
  8. package/dist/controllers/color_picker_controller.js +46 -0
  9. package/dist/controllers/color_picker_controller.js.map +1 -1
  10. package/dist/controllers/command_palette_controller.js +32 -5
  11. package/dist/controllers/command_palette_controller.js.map +1 -1
  12. package/dist/controllers/confirm_controller.js +32 -5
  13. package/dist/controllers/confirm_controller.js.map +1 -1
  14. package/dist/controllers/countdown_controller.d.ts +19 -5
  15. package/dist/controllers/countdown_controller.js +112 -12
  16. package/dist/controllers/countdown_controller.js.map +1 -1
  17. package/dist/controllers/date_range_picker_controller.d.ts +4 -1
  18. package/dist/controllers/date_range_picker_controller.js +50 -0
  19. package/dist/controllers/date_range_picker_controller.js.map +1 -1
  20. package/dist/controllers/dialog_controller.js +32 -5
  21. package/dist/controllers/dialog_controller.js.map +1 -1
  22. package/dist/controllers/dismissible_controller.js.map +1 -1
  23. package/dist/controllers/drawer_controller.js +32 -5
  24. package/dist/controllers/drawer_controller.js.map +1 -1
  25. package/dist/controllers/empty_state_controller.d.ts +9 -4
  26. package/dist/controllers/empty_state_controller.js +24 -10
  27. package/dist/controllers/empty_state_controller.js.map +1 -1
  28. package/dist/controllers/focus_controller.js +32 -5
  29. package/dist/controllers/focus_controller.js.map +1 -1
  30. package/dist/controllers/form_validation_controller.js.map +1 -1
  31. package/dist/controllers/frame_loading_controller.d.ts +14 -3
  32. package/dist/controllers/frame_loading_controller.js +177 -15
  33. package/dist/controllers/frame_loading_controller.js.map +1 -1
  34. package/dist/controllers/local_time_controller.d.ts +19 -3
  35. package/dist/controllers/local_time_controller.js +100 -6
  36. package/dist/controllers/local_time_controller.js.map +1 -1
  37. package/dist/controllers/meter_controller.d.ts +22 -2
  38. package/dist/controllers/meter_controller.js +145 -26
  39. package/dist/controllers/meter_controller.js.map +1 -1
  40. package/dist/controllers/network_status_controller.d.ts +13 -1
  41. package/dist/controllers/network_status_controller.js +28 -8
  42. package/dist/controllers/network_status_controller.js.map +1 -1
  43. package/dist/controllers/overflow_menu_controller.js +33 -6
  44. package/dist/controllers/overflow_menu_controller.js.map +1 -1
  45. package/dist/controllers/progress_controller.d.ts +16 -1
  46. package/dist/controllers/progress_controller.js +116 -9
  47. package/dist/controllers/progress_controller.js.map +1 -1
  48. package/dist/controllers/range_slider_controller.d.ts +4 -1
  49. package/dist/controllers/range_slider_controller.js +68 -3
  50. package/dist/controllers/range_slider_controller.js.map +1 -1
  51. package/dist/controllers/rating_controller.d.ts +4 -1
  52. package/dist/controllers/rating_controller.js +53 -0
  53. package/dist/controllers/rating_controller.js.map +1 -1
  54. package/dist/controllers/relative_time_controller.d.ts +13 -0
  55. package/dist/controllers/relative_time_controller.js +133 -12
  56. package/dist/controllers/relative_time_controller.js.map +1 -1
  57. package/dist/controllers/sidebar_controller.d.ts +1 -11
  58. package/dist/controllers/sidebar_controller.js +37 -8
  59. package/dist/controllers/sidebar_controller.js.map +1 -1
  60. package/dist/controllers/skeleton_controller.d.ts +7 -2
  61. package/dist/controllers/skeleton_controller.js +73 -20
  62. package/dist/controllers/skeleton_controller.js.map +1 -1
  63. package/dist/controllers/slider_controller.js +17 -2
  64. package/dist/controllers/slider_controller.js.map +1 -1
  65. package/dist/controllers/spinner_controller.d.ts +37 -4
  66. package/dist/controllers/spinner_controller.js +228 -27
  67. package/dist/controllers/spinner_controller.js.map +1 -1
  68. package/dist/controllers/step_indicator_controller.d.ts +12 -1
  69. package/dist/controllers/step_indicator_controller.js +82 -5
  70. package/dist/controllers/step_indicator_controller.js.map +1 -1
  71. package/dist/controllers/stick_to_bottom_controller.d.ts +26 -2
  72. package/dist/controllers/stick_to_bottom_controller.js +60 -10
  73. package/dist/controllers/stick_to_bottom_controller.js.map +1 -1
  74. package/dist/index.js +1056 -281
  75. package/dist/index.js.map +1 -1
  76. package/dist/inspector/cli.js +785 -76
  77. package/dist/inspector/cli.js.map +1 -1
  78. package/dist/inspector/cli_bin.js +785 -76
  79. package/dist/inspector/cli_bin.js.map +1 -1
  80. package/dist/inspector/examples.json +5 -5
  81. package/dist/inspector/manifest.json +21 -8
  82. package/package.json +1 -1
@@ -135,7 +135,7 @@
135
135
  },
136
136
  "stimeo--empty-state": {
137
137
  "file": "examples/empty_state/_demo.html.erb",
138
- "source": "<%# Empty-state demo: add/remove items and the empty placeholder toggles itself. The\n controller observes the list with a MutationObserver, toggles hidden on the\n list / empty targets at the 0 <-> 1+ boundary, and reflects data-empty / data-count.\n demo.js adds/removes <li> (standing in for Turbo Stream rows). This demo only styles\n it; the empty placeholder's copy is owned here. %>\n<div\n class=\"empty-state-demo\"\n data-controller=\"stimeo--empty-state\"\n data-stimeo--empty-state-announce-value=\"true\">\n <div class=\"empty-state-demo__bar\">\n <button\n type=\"button\"\n class=\"demo-trigger\"\n data-empty-state-add\n data-item-label=\"<%= t(\"components.empty_state.demo.item\") %>\">\n <%= t(\"components.empty_state.demo.add\") %>\n </button>\n <button type=\"button\" class=\"demo-trigger\" data-empty-state-clear>\n <%= t(\"components.empty_state.demo.clear\") %>\n </button>\n </div>\n <ul class=\"empty-state-demo__list\" data-stimeo--empty-state-target=\"list\">\n <li><%= t(\"components.empty_state.demo.item\") %> 1</li>\n <li><%= t(\"components.empty_state.demo.item\") %> 2</li>\n </ul>\n <p class=\"empty-state-demo__empty\" data-stimeo--empty-state-target=\"empty\" hidden>\n <%= t(\"components.empty_state.demo.empty\") %>\n </p>\n</div>\n"
138
+ "source": "<%# Empty-state demo: add/remove items and the empty placeholder toggles itself. The\n controller observes the list with a MutationObserver, toggles hidden on the\n list / empty targets at the 0 <-> 1+ boundary, and reflects data-empty / data-count.\n demo.js adds/removes <li> (standing in for Turbo Stream rows). This demo only styles\n it; the empty placeholder's copy is owned here. %>\n<div\n class=\"empty-state-demo\"\n data-controller=\"stimeo--empty-state\"\n data-stimeo--empty-state-announce-text-value=\"<%=\n t(\"components.empty_state.demo.announce_empty\") %>\"\n data-stimeo--empty-state-announce-filled-text-value=\"<%=\n t(\"components.empty_state.demo.announce_filled\") %>\">\n <div class=\"empty-state-demo__bar\">\n <button\n type=\"button\"\n class=\"demo-trigger\"\n data-empty-state-add\n data-item-label=\"<%= t(\"components.empty_state.demo.item\") %>\">\n <%= t(\"components.empty_state.demo.add\") %>\n </button>\n <button type=\"button\" class=\"demo-trigger\" data-empty-state-clear>\n <%= t(\"components.empty_state.demo.clear\") %>\n </button>\n </div>\n <ul class=\"empty-state-demo__list\" data-stimeo--empty-state-target=\"list\">\n <li><%= t(\"components.empty_state.demo.item\") %> 1</li>\n <li><%= t(\"components.empty_state.demo.item\") %> 2</li>\n </ul>\n <p class=\"empty-state-demo__empty\" data-stimeo--empty-state-target=\"empty\" hidden>\n <%= t(\"components.empty_state.demo.empty\") %>\n </p>\n</div>\n"
139
139
  },
140
140
  "stimeo--file-dropzone": {
141
141
  "file": "examples/file_dropzone/_demo.html.erb",
@@ -311,7 +311,7 @@
311
311
  },
312
312
  "stimeo--reading-progress": {
313
313
  "file": "examples/reading_progress/_demo.html.erb",
314
- "source": "<%# reading-progress: the article publishes its progress as a CSS custom property\n on itself AND on :root; the bar here consumes it with pure CSS (no consumer\n JS). Scroll the page to move the bar. %>\n<div class=\"reading-progress-demo\">\n <p class=\"reading-progress-demo__hint\"><%= t(\"components.reading_progress.demo.hint\") %></p>\n <div class=\"reading-progress-demo__bar\" aria-hidden=\"true\"></div>\n <article class=\"reading-progress-demo__article\" data-controller=\"stimeo--reading-progress\">\n <% 14.times do |i| %>\n <p><%= t(\"components.reading_progress.demo.paragraph\", index: i + 1) %></p>\n <% end %>\n </article>\n</div>\n"
314
+ "source": "<%# reading-progress: the article publishes its progress as a CSS custom property\n on itself AND on :root; the bar here consumes it with pure CSS (no consumer\n JS). Scroll the page to move the bar. %>\n<div class=\"reading-progress-demo\">\n <p class=\"reading-progress-demo__hint\"><%= t(\"components.reading_progress.demo.hint\") %></p>\n <div class=\"reading-progress-demo__bar\" aria-hidden=\"true\"></div>\n <article class=\"reading-progress-demo__article\" data-controller=\"stimeo--reading-progress\">\n <% 28.times do |i| %>\n <p><%= t(\"components.reading_progress.demo.paragraph\", index: i + 1) %></p>\n <% end %>\n </article>\n</div>\n"
315
315
  },
316
316
  "stimeo--relative-time": {
317
317
  "file": "examples/relative_time/_demo.html.erb",
@@ -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-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"
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"
355
355
  },
356
356
  "stimeo--skeleton": {
357
357
  "file": "examples/skeleton/_demo.html.erb",
@@ -375,7 +375,7 @@
375
375
  },
376
376
  "stimeo--step-indicator": {
377
377
  "file": "examples/step_indicator/_demo.html.erb",
378
- "source": "<%# Markup for the step-indicator (read-only progress) demo.\n The library holds the current step number, sets data-state on each li, sets\n aria-current=\"step\" on the current li, and updates the progress CSS variable\n (--stimeo-step-indicator-ratio). The steps themselves aren't interactive, so the\n current step is updated via the external step:set event (fired by demo.js from the\n prev/next buttons). %>\n<div class=\"step-indicator-demo\">\n <ol\n class=\"step-indicator\"\n data-controller=\"stimeo--step-indicator\"\n aria-label=\"<%= t(\"components.step_indicator.demo.label\") %>\"\n data-stimeo--step-indicator-current-value=\"1\"\n data-action=\"step:set->stimeo--step-indicator#setCurrent\">\n <% %w[cart shipping payment confirm].each_with_index do |step, index| %>\n <li\n class=\"step-indicator__step\"\n data-stimeo--step-indicator-target=\"step\"\n <%= \"data-state=\\\"complete\\\"\".html_safe if index < 1 %>\n <%= \"data-state=\\\"current\\\" aria-current=\\\"step\\\"\".html_safe if index == 1 %>\n <%= \"data-state=\\\"upcoming\\\"\".html_safe if index > 1 %>>\n <span class=\"step-indicator__dot\"></span>\n <span class=\"step-indicator__label\"><%= t(\n \"components.step_indicator.demo.steps.#{step}\"\n ) %></span>\n </li>\n <% end %>\n </ol>\n\n <div class=\"step-indicator__controls\">\n <button type=\"button\" class=\"demo-trigger\" data-step-indicator-prev>\n <%= t(\"components.step_indicator.demo.back\") %>\n </button>\n <button type=\"button\" class=\"demo-trigger\" data-step-indicator-next>\n <%= t(\"components.step_indicator.demo.advance\") %>\n </button>\n </div>\n</div>\n"
378
+ "source": "<%# Markup for the step-indicator (read-only progress) demo.\n The library holds the current step number, sets data-state on each li, sets\n aria-current=\"step\" on the current li, and updates the progress CSS variable\n (--stimeo-step-indicator-ratio). The steps themselves aren't interactive, so the\n current step is updated via the external step:set event (fired by demo.js from the\n prev/next buttons). %>\n<div class=\"step-indicator-demo\">\n <%# --steps lets the CSS put the track between the first and last dot centres:\n the library's ratio is \"how far along the range\", and the range runs from\n centre to centre, not edge to edge. %>\n <ol\n class=\"step-indicator\"\n style=\"--steps: 4\"\n data-controller=\"stimeo--step-indicator\"\n aria-label=\"<%= t(\"components.step_indicator.demo.label\") %>\"\n data-stimeo--step-indicator-current-value=\"1\"\n data-action=\"step:set->stimeo--step-indicator#setCurrent\">\n <% %w[cart shipping payment confirm].each_with_index do |step, index| %>\n <li\n class=\"step-indicator__step\"\n data-stimeo--step-indicator-target=\"step\"\n <%= \"data-state=\\\"complete\\\"\".html_safe if index < 1 %>\n <%= \"data-state=\\\"current\\\" aria-current=\\\"step\\\"\".html_safe if index == 1 %>\n <%= \"data-state=\\\"upcoming\\\"\".html_safe if index > 1 %>>\n <span class=\"step-indicator__dot\"></span>\n <span class=\"step-indicator__label\"><%= t(\n \"components.step_indicator.demo.steps.#{step}\"\n ) %></span>\n </li>\n <% end %>\n </ol>\n\n <div class=\"step-indicator__controls\">\n <button type=\"button\" class=\"demo-trigger\" data-step-indicator-prev>\n <%= t(\"components.step_indicator.demo.back\") %>\n </button>\n <button type=\"button\" class=\"demo-trigger\" data-step-indicator-next>\n <%= t(\"components.step_indicator.demo.advance\") %>\n </button>\n </div>\n</div>\n"
379
379
  },
380
380
  "stimeo--stepper": {
381
381
  "file": "examples/stepper/_demo.html.erb",
@@ -383,7 +383,7 @@
383
383
  },
384
384
  "stimeo--stick-to-bottom": {
385
385
  "file": "examples/stick_to_bottom/_demo.html.erb",
386
- "source": "<%# Stick-to-bottom demo: the scrollable log follows new messages while you're at the\n bottom, but holds and shows the \"new messages\" jump button if you've scrolled up. This\n catalog has no Action Cable / Turbo Stream, so the Add button appends a <li> — exactly\n the mutation a Turbo Stream broadcast would make — and the controller reacts. The jump\n button lives inside the log (a descendant, wired with a plain data-action) and CSS\n reveals it only while data-has-new. demo.js starts the log scrolled to the bottom. The\n library only follows/flags and reflects data-pinned / data-has-new; demo.css owns the look.\n\n The log scrolls but its only control — the jump button — is hidden until there is\n something to jump to, so most of the time a keyboard user cannot reach it at all\n (WCAG 2.1.1). Rather than hand-write a tab stop, compose stimeo--scroll-area over it:\n that controller exists for exactly this and gives the viewport tabindex=\"0\" only while\n it holds no rendered focusable content, so the tab stop appears and disappears in step\n with the jump button instead of doubling up with it. It goes on a wrapper because\n stick-to-bottom must sit on the scrolling element itself, and it takes the log as its\n viewport target. role=\"region\" comes free with the label below. %>\n<div class=\"stb-demo\">\n <div class=\"stb-demo__log-wrap\" data-controller=\"stimeo--scroll-area\">\n <div\n class=\"stb-demo__log\"\n data-controller=\"stimeo--stick-to-bottom\"\n data-stimeo--stick-to-bottom-behavior-value=\"smooth\"\n data-stimeo--scroll-area-target=\"viewport\"\n aria-label=\"<%= t(\"components.stick_to_bottom.demo.viewport_label\") %>\">\n <ul class=\"stb-demo__messages\" data-stimeo--stick-to-bottom-target=\"content\">\n <% (1..8).each do |i| %>\n <li><%= t(\"components.stick_to_bottom.demo.message\") %> <%= i %></li>\n <% end %>\n </ul>\n <button\n type=\"button\"\n class=\"stb-demo__jump\"\n data-action=\"click->stimeo--stick-to-bottom#scrollToBottom\">\n <%= t(\"components.stick_to_bottom.demo.jump\") %>\n </button>\n </div>\n </div>\n <button\n type=\"button\"\n class=\"demo-trigger\"\n data-stb-demo-add\n data-message-label=\"<%= t(\"components.stick_to_bottom.demo.message\") %>\">\n <%= t(\"components.stick_to_bottom.demo.add\") %>\n </button>\n</div>\n"
386
+ "source": "<%# Stick-to-bottom demo: the scrollable log follows new messages while you're at the\n bottom, but holds and shows the \"new messages\" jump button if you've scrolled up. This\n catalog has no Action Cable / Turbo Stream, so the Add button appends a <li> — exactly\n the mutation a Turbo Stream broadcast would make — and the controller reacts. The jump\n button lives inside the log (a descendant, wired with a plain data-action) and CSS\n reveals it only while data-has-new. pin-on-connect starts the log at the bottom so the\n first message is followed rather than flagged — a fresh scroll container renders at the\n top, and the controller does this on every connect, which a once-per-document page event\n cannot. The library only follows/flags and reflects data-pinned / data-has-new; demo.css\n owns the look.\n\n The log scrolls but its only control — the jump button — is hidden until there is\n something to jump to, so most of the time a keyboard user cannot reach it at all\n (WCAG 2.1.1). Rather than hand-write a tab stop, compose stimeo--scroll-area over it:\n that controller exists for exactly this and gives the viewport tabindex=\"0\" only while\n it holds no rendered focusable content, so the tab stop appears and disappears in step\n with the jump button instead of doubling up with it. It goes on a wrapper because\n stick-to-bottom must sit on the scrolling element itself, and it takes the log as its\n viewport target. role=\"region\" comes free with the label below. %>\n<div class=\"stb-demo\">\n <div class=\"stb-demo__log-wrap\" data-controller=\"stimeo--scroll-area\">\n <div\n class=\"stb-demo__log\"\n data-controller=\"stimeo--stick-to-bottom\"\n data-stimeo--stick-to-bottom-behavior-value=\"smooth\"\n data-stimeo--stick-to-bottom-pin-on-connect-value=\"true\"\n data-stimeo--scroll-area-target=\"viewport\"\n aria-label=\"<%= t(\"components.stick_to_bottom.demo.viewport_label\") %>\">\n <ul class=\"stb-demo__messages\" data-stimeo--stick-to-bottom-target=\"content\">\n <% (1..8).each do |i| %>\n <li><%= t(\"components.stick_to_bottom.demo.message\") %> <%= i %></li>\n <% end %>\n </ul>\n <button\n type=\"button\"\n class=\"stb-demo__jump\"\n data-action=\"click->stimeo--stick-to-bottom#scrollToBottom\">\n <%= t(\"components.stick_to_bottom.demo.jump\") %>\n </button>\n </div>\n </div>\n <button\n type=\"button\"\n class=\"demo-trigger\"\n data-stb-demo-add\n data-message-label=\"<%= t(\"components.stick_to_bottom.demo.message\") %>\">\n <%= t(\"components.stick_to_bottom.demo.add\") %>\n </button>\n</div>\n"
387
387
  },
388
388
  "stimeo--sticky-observer": {
389
389
  "file": "examples/sticky_observer/_demo.html.erb",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "schemaVersion": 8,
3
- "packageVersion": "0.3.0",
3
+ "packageVersion": "0.4.0",
4
4
  "controllers": {
5
5
  "stimeo--accordion": {
6
6
  "targets": [
@@ -1036,7 +1036,8 @@
1036
1036
  "interval",
1037
1037
  "direction",
1038
1038
  "autostart",
1039
- "completeLabel"
1039
+ "completeLabel",
1040
+ "announceText"
1040
1041
  ],
1041
1042
  "actions": [
1042
1043
  "pause",
@@ -1499,7 +1500,8 @@
1499
1500
  ],
1500
1501
  "values": [
1501
1502
  "itemSelector",
1502
- "announce"
1503
+ "announceText",
1504
+ "announceFilledText"
1503
1505
  ],
1504
1506
  "actions": [],
1505
1507
  "events": [
@@ -1747,6 +1749,8 @@
1747
1749
  "overlay"
1748
1750
  ],
1749
1751
  "values": [
1752
+ "announceText",
1753
+ "announceReadyText",
1750
1754
  "minDuration",
1751
1755
  "restoreFocus"
1752
1756
  ],
@@ -2267,6 +2271,7 @@
2267
2271
  "bar"
2268
2272
  ],
2269
2273
  "values": [
2274
+ "announceText",
2270
2275
  "value",
2271
2276
  "min",
2272
2277
  "max",
@@ -2514,6 +2519,8 @@
2514
2519
  "online"
2515
2520
  ],
2516
2521
  "values": [
2522
+ "announceText",
2523
+ "announceOnlineText",
2517
2524
  "onlineAutoHide"
2518
2525
  ],
2519
2526
  "actions": [],
@@ -2950,7 +2957,8 @@
2950
2957
  "min",
2951
2958
  "max",
2952
2959
  "indeterminate",
2953
- "valueText"
2960
+ "valueText",
2961
+ "announceText"
2954
2962
  ],
2955
2963
  "actions": [
2956
2964
  "setValue"
@@ -3484,7 +3492,6 @@
3484
3492
  "collapsed"
3485
3493
  ],
3486
3494
  "actions": [
3487
- "beforeCache",
3488
3495
  "close",
3489
3496
  "open",
3490
3497
  "toggle"
@@ -3509,6 +3516,7 @@
3509
3516
  "content"
3510
3517
  ],
3511
3518
  "values": [
3519
+ "announceReadyText",
3512
3520
  "minDuration"
3513
3521
  ],
3514
3522
  "actions": [
@@ -3748,8 +3756,11 @@
3748
3756
  "message"
3749
3757
  ],
3750
3758
  "values": [
3759
+ "announceText",
3760
+ "announceReadyText",
3751
3761
  "delay",
3752
- "minDuration"
3762
+ "minDuration",
3763
+ "timeout"
3753
3764
  ],
3754
3765
  "actions": [
3755
3766
  "start",
@@ -3757,7 +3768,8 @@
3757
3768
  ],
3758
3769
  "events": [
3759
3770
  "hide",
3760
- "show"
3771
+ "show",
3772
+ "timeout"
3761
3773
  ],
3762
3774
  "requiredTargets": [],
3763
3775
  "conditionalTargets": [],
@@ -3854,7 +3866,8 @@
3854
3866
  ],
3855
3867
  "values": [
3856
3868
  "threshold",
3857
- "behavior"
3869
+ "behavior",
3870
+ "pinOnConnect"
3858
3871
  ],
3859
3872
  "actions": [
3860
3873
  "scrollToBottom"
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "stimeo-ui",
3
- "version": "0.3.0",
3
+ "version": "0.4.0",
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",