stimeo-ui 0.17.0 → 0.18.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 (111) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +106 -1
  3. data/README.md +19 -10
  4. data/dist/cable/index.js +22 -14
  5. data/dist/controllers/accordion_controller.js +14 -6
  6. data/dist/controllers/alert_dialog_controller.js +145 -118
  7. data/dist/controllers/announcer_controller.js +113 -17
  8. data/dist/controllers/auto_submit_controller.js +185 -60
  9. data/dist/controllers/avatar_controller.js +55 -43
  10. data/dist/controllers/bulk_select_controller.js +64 -50
  11. data/dist/controllers/calendar_controller.js +55 -53
  12. data/dist/controllers/carousel_controller.js +124 -86
  13. data/dist/controllers/character_counter_controller.js +291 -95
  14. data/dist/controllers/checkbox_controller.js +6 -0
  15. data/dist/controllers/clipboard_controller.js +118 -27
  16. data/dist/controllers/collapsible_controller.js +52 -49
  17. data/dist/controllers/color_picker_controller.js +29 -7
  18. data/dist/controllers/combobox_controller.js +210 -71
  19. data/dist/controllers/command_palette_controller.js +289 -140
  20. data/dist/controllers/conditional_fields_controller.js +145 -58
  21. data/dist/controllers/confirm_controller.js +145 -118
  22. data/dist/controllers/context_menu_controller.js +138 -73
  23. data/dist/controllers/countdown_controller.js +109 -21
  24. data/dist/controllers/currency_input_controller.js +446 -72
  25. data/dist/controllers/data_grid_controller.js +134 -28
  26. data/dist/controllers/date_range_picker_controller.js +93 -72
  27. data/dist/controllers/dialog_controller.js +145 -118
  28. data/dist/controllers/direct_upload_controller.js +24 -14
  29. data/dist/controllers/dirty_form_controller.js +68 -31
  30. data/dist/controllers/dismissible_controller.js +64 -46
  31. data/dist/controllers/drawer_controller.js +145 -118
  32. data/dist/controllers/dropdown_controller.js +76 -63
  33. data/dist/controllers/editable_controller.js +199 -62
  34. data/dist/controllers/empty_state_controller.js +13 -6
  35. data/dist/controllers/file_dropzone_controller.js +55 -48
  36. data/dist/controllers/filter_controller.js +9 -2
  37. data/dist/controllers/flash_controller.js +66 -33
  38. data/dist/controllers/focus_controller.js +39 -14
  39. data/dist/controllers/form_field_controller.js +52 -43
  40. data/dist/controllers/form_validation_controller.js +18 -11
  41. data/dist/controllers/frame_loading_controller.js +55 -48
  42. data/dist/controllers/hover_card_controller.js +67 -61
  43. data/dist/controllers/idle_controller.js +10 -6
  44. data/dist/controllers/input_mask_controller.js +411 -24
  45. data/dist/controllers/intersection_controller.js +3 -0
  46. data/dist/controllers/lazy_frame_controller.js +15 -3
  47. data/dist/controllers/listbox_controller.js +260 -79
  48. data/dist/controllers/local_time_controller.js +48 -13
  49. data/dist/controllers/masonry_controller.js +11 -4
  50. data/dist/controllers/menu_controller.js +138 -82
  51. data/dist/controllers/menubar_controller.js +65 -19
  52. data/dist/controllers/meter_controller.js +270 -24
  53. data/dist/controllers/multi_select_controller.js +251 -94
  54. data/dist/controllers/navigation_menu_controller.js +67 -19
  55. data/dist/controllers/nested_form_controller.js +98 -64
  56. data/dist/controllers/network_status_controller.js +70 -52
  57. data/dist/controllers/number_input_controller.js +344 -94
  58. data/dist/controllers/optimistic_controller.js +29 -11
  59. data/dist/controllers/otp_controller.js +502 -104
  60. data/dist/controllers/overflow_indicator_controller.js +6 -0
  61. data/dist/controllers/overflow_menu_controller.js +136 -21
  62. data/dist/controllers/pagination_controller.js +47 -14
  63. data/dist/controllers/password_reveal_controller.js +52 -49
  64. data/dist/controllers/password_strength_controller.js +13 -6
  65. data/dist/controllers/persist_controller.js +48 -128
  66. data/dist/controllers/pointer_drag_controller.js +249 -23
  67. data/dist/controllers/popover_controller.js +82 -65
  68. data/dist/controllers/portal_controller.js +6 -0
  69. data/dist/controllers/preview_guard_controller.js +14 -3
  70. data/dist/controllers/progress_controller.js +271 -27
  71. data/dist/controllers/radio_group_controller.js +167 -80
  72. data/dist/controllers/range_slider_controller.js +27 -7
  73. data/dist/controllers/rating_controller.js +93 -57
  74. data/dist/controllers/read_more_controller.js +10 -6
  75. data/dist/controllers/reading_progress_controller.js +22 -5
  76. data/dist/controllers/relative_time_controller.js +75 -11
  77. data/dist/controllers/reset_on_restore_controller.js +6 -0
  78. data/dist/controllers/resizable_controller.js +55 -22
  79. data/dist/controllers/roving_controller.js +10 -4
  80. data/dist/controllers/scroll_area_controller.js +129 -88
  81. data/dist/controllers/scroll_restore_controller.js +14 -2
  82. data/dist/controllers/scroll_visibility_controller.js +93 -60
  83. data/dist/controllers/scrollspy_controller.js +11 -5
  84. data/dist/controllers/separator_controller.js +59 -43
  85. data/dist/controllers/sidebar_controller.js +150 -122
  86. data/dist/controllers/skeleton_controller.js +55 -48
  87. data/dist/controllers/slider_controller.js +27 -6
  88. data/dist/controllers/smart_sticky_header_controller.js +13 -5
  89. data/dist/controllers/sortable_controller.js +27 -14
  90. data/dist/controllers/spinner_controller.js +55 -48
  91. data/dist/controllers/step_indicator_controller.js +6 -0
  92. data/dist/controllers/stepper_controller.js +6 -0
  93. data/dist/controllers/stick_to_bottom_controller.js +19 -8
  94. data/dist/controllers/sticky_observer_controller.js +49 -43
  95. data/dist/controllers/submit_once_controller.js +145 -85
  96. data/dist/controllers/switch_controller.js +172 -28
  97. data/dist/controllers/tabs_controller.js +6 -1
  98. data/dist/controllers/tags_input_controller.js +157 -28
  99. data/dist/controllers/textarea_autosize_controller.js +40 -19
  100. data/dist/controllers/theme_controller.js +10 -4
  101. data/dist/controllers/time_picker_controller.js +192 -54
  102. data/dist/controllers/toast_controller.js +58 -27
  103. data/dist/controllers/toggle_group_controller.js +158 -56
  104. data/dist/controllers/toolbar_controller.js +150 -21
  105. data/dist/controllers/tree_view_controller.js +134 -25
  106. data/dist/index.js +2451 -1312
  107. data/dist/positioning/index.js +6 -0
  108. data/lib/generators/stimeo/install/install_generator.rb +7 -2
  109. data/lib/generators/stimeo/install/templates/stimeo.js +19 -6
  110. data/lib/stimeo/ui/version.rb +1 -1
  111. metadata +2 -2
@@ -28,6 +28,9 @@ var MicrotaskCoalescer = class {
28
28
  this.#queued = false;
29
29
  this.#generation += 1;
30
30
  }
31
+ get pending() {
32
+ return this.#queued;
33
+ }
31
34
  schedule() {
32
35
  if (!this.#active || this.#queued) return;
33
36
  this.#queued = true;
@@ -58,6 +61,9 @@ var MorphRenderWatcher = class {
58
61
  schedule() {
59
62
  this.#pass.schedule();
60
63
  }
64
+ get pending() {
65
+ return this.#pass.pending;
66
+ }
61
67
  disconnect() {
62
68
  this.#listeners.dispose();
63
69
  this.#pass.cancel();
@@ -12,8 +12,10 @@ module Stimeo
12
12
  # Sets up an importmap-rails app to use Stimeo UI without npm:
13
13
  # 1. vendors the gem's prebuilt JS into vendor/javascript/stimeo/
14
14
  # 2. pins "stimeo-ui" in config/importmap.rb
15
- # 3. registers every stimeo--* controller with the app's Stimulus
16
- # application (app/javascript/controllers/stimeo.js)
15
+ # 3. registers the "stimeo-ui" entry point's controllers (registerStimeo) with the
16
+ # app's Stimulus application (app/javascript/controllers/stimeo.js); the
17
+ # positioning and cable subpaths stay opt-in: their pins and registrations
18
+ # are written commented out in config/importmap.rb and controllers/stimeo.js
17
19
  #
18
20
  # Re-running is safe: the vendor copy is refreshed in place, while pins
19
21
  # and imports are only appended when missing — so after a gem update you
@@ -60,6 +62,9 @@ module Stimeo
60
62
  pin "stimeo-ui", to: "stimeo/index.js"
61
63
  # Opt-in positioning module — also pin @floating-ui/dom if you enable it:
62
64
  # pin "stimeo-ui/positioning", to: "stimeo/positioning/index.js"
65
+ # Opt-in cable module — also pin @rails/actioncable if you enable it:
66
+ # pin "stimeo-ui/cable", to: "stimeo/cable/index.js"
67
+ # pin "@rails/actioncable", to: "actioncable.esm.js"
63
68
  RUBY
64
69
  end
65
70
  end
@@ -1,12 +1,25 @@
1
- // Registers every stimeo--* controller with the app's Stimulus application.
1
+ // Registers the controllers of the "stimeo-ui" entry point with the app's
2
+ // Stimulus application. The opt-in "stimeo-ui/positioning" and "stimeo-ui/cable"
3
+ // entry points register theirs separately (registerPositioning / registerCable):
4
+ // pin the entry point and its peer in config/importmap.rb, then uncomment its
5
+ // import and call below. An app that already owns an Action Cable consumer passes
6
+ // it to setCableConsumer (also from "stimeo-ui/cable") before registerCable, so
7
+ // both share one websocket.
2
8
  // Generated by `rails g stimeo:install`. Safe to edit.
3
9
  //
4
- // To cherry-pick instead of registering all controllers, import them
5
- // individually from "stimeo-ui/controllers/<name>" and register under your own
6
- // identifiers. Note: with a JS bundler this works as-is; with importmap-rails
7
- // each "stimeo-ui/controllers/<name>" needs its own pin (this generator only
8
- // pins the "stimeo-ui" entrypoint), so add those pins to config/importmap.rb.
10
+ // To cherry-pick instead of registering the whole entry point, import controllers
11
+ // individually from "stimeo-ui/controllers/<name>_controller" and register under
12
+ // your own identifiers. Note: with a JS bundler this works as-is; with
13
+ // importmap-rails each "stimeo-ui/controllers/<name>_controller" needs its own pin
14
+ // (this generator only pins the "stimeo-ui" entrypoint), so add those pins to
15
+ // config/importmap.rb.
9
16
  import { application } from "controllers/application";
10
17
  import { registerStimeo } from "stimeo-ui";
11
18
 
12
19
  registerStimeo(application);
20
+
21
+ // import { registerPositioning } from "stimeo-ui/positioning";
22
+ // registerPositioning(application);
23
+
24
+ // import { registerCable } from "stimeo-ui/cable";
25
+ // registerCable(application);
@@ -5,6 +5,6 @@ module Stimeo
5
5
  # Kept in lockstep with package.json (stable versions share the same
6
6
  # notation; a prerelease maps npm `-beta.N` ⇔ gem `.pre.beta.N` because
7
7
  # RubyGems forbids dashes). Bump both together.
8
- VERSION = "0.17.0"
8
+ VERSION = "0.18.0"
9
9
  end
10
10
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: stimeo-ui
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.17.0
4
+ version: 0.18.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Stimeo Labs
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2026-10-04 00:00:00.000000000 Z
11
+ date: 2026-10-22 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: railties