playbook_ui 15.6.0.pre.alpha.play265012910 → 15.6.0.pre.alpha.play265012993

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 (36) hide show
  1. checksums.yaml +4 -4
  2. data/app/pb_kits/playbook/pb_card/docs/_card_header.md +1 -1
  3. data/app/pb_kits/playbook/pb_card/docs/_card_highlight.md +1 -1
  4. data/app/pb_kits/playbook/pb_collapsible/__snapshots__/collapsible.test.js.snap +2 -2
  5. data/app/pb_kits/playbook/pb_collapsible/child_kits/CollapsibleIcon.tsx +10 -8
  6. data/app/pb_kits/playbook/pb_collapsible/docs/_collapsible_icons.jsx +0 -1
  7. data/app/pb_kits/playbook/pb_collapsible/docs/_collapsible_state.jsx +0 -3
  8. data/app/pb_kits/playbook/pb_date_picker/date_picker.test.js +24 -0
  9. data/app/pb_kits/playbook/pb_date_picker/date_picker_helper.ts +181 -3
  10. data/app/pb_kits/playbook/pb_distribution_bar/docs/_distribution_bar_custom_colors.md +1 -1
  11. data/app/pb_kits/playbook/pb_draggable/context/index.tsx +316 -15
  12. data/app/pb_kits/playbook/pb_draggable/context/types.ts +1 -1
  13. data/app/pb_kits/playbook/pb_select/_select.tsx +8 -3
  14. data/app/pb_kits/playbook/pb_select/docs/_select_input_options.html.erb +16 -0
  15. data/app/pb_kits/playbook/pb_select/docs/_select_input_options.jsx +30 -0
  16. data/app/pb_kits/playbook/pb_select/docs/_select_input_options.md +1 -0
  17. data/app/pb_kits/playbook/pb_select/docs/example.yml +2 -0
  18. data/app/pb_kits/playbook/pb_select/docs/index.js +1 -0
  19. data/app/pb_kits/playbook/pb_select/select.html.erb +2 -2
  20. data/app/pb_kits/playbook/pb_select/select.rb +3 -1
  21. data/app/pb_kits/playbook/pb_select/select.test.js +23 -0
  22. data/app/pb_kits/playbook/tokens/_colors.scss +2 -1
  23. data/dist/chunks/_typeahead-DMyvWpig.js +6 -0
  24. data/dist/chunks/lib-DDDLiZuu.js +29 -0
  25. data/dist/chunks/vendor.js +2 -2
  26. data/dist/playbook-rails-react-bindings.js +1 -1
  27. data/dist/playbook-rails.js +1 -1
  28. data/dist/playbook.css +1 -1
  29. data/lib/playbook/forms/builder/collection_select_field.rb +9 -1
  30. data/lib/playbook/forms/builder/select_field.rb +9 -1
  31. data/lib/playbook/forms/builder/time_zone_select_field.rb +9 -1
  32. data/lib/playbook/pb_kit_helper.rb +5 -1
  33. data/lib/playbook/version.rb +1 -1
  34. metadata +7 -4
  35. data/dist/chunks/_typeahead-CnPLuGbe.js +0 -6
  36. data/dist/chunks/lib-CgpqUb6l.js +0 -29
@@ -4,10 +4,18 @@ module Playbook
4
4
  module Forms
5
5
  class Builder
6
6
  def collection_select(name, collection, value_method, text_method, options = {}, html_options = {}, props: {})
7
- props[:label] = @template.label(@object_name, name) if props[:label] == true
7
+ props[:input_options] ||= {}
8
+ props[:input_options][:id] ||= "#{@object_name}_#{name}"
9
+
10
+ props[:label] = @template.label(@object_name, name, for: props[:input_options][:id]) if props[:label] == true
11
+
8
12
  options[:skip_default_ids] = false unless options.key?(:skip_default_ids)
9
13
  options[:prompt] = props[:blank_selection] || ""
10
14
  html_options[:required] = "required" if props[:required]
15
+ html_options[:id] = props[:input_options][:id]
16
+ html_options[:class] = props[:input_options][:class] if props[:input_options][:class]
17
+ html_options[:data] = (html_options[:data] || {}).merge(props[:input_options][:data] || {})
18
+
11
19
  input = super(name, collection, value_method, text_method, options, html_options)
12
20
 
13
21
  @template.pb_rails("select", props: props) do
@@ -4,10 +4,18 @@ module Playbook
4
4
  module Forms
5
5
  class Builder
6
6
  def select(name, choices = nil, options = {}, html_options = {}, props: {}, &block)
7
- props[:label] = @template.label(@object_name, name) if props[:label] == true
7
+ props[:input_options] ||= {}
8
+ props[:input_options][:id] ||= "#{@object_name}_#{name}"
9
+
10
+ props[:label] = @template.label(@object_name, name, for: props[:input_options][:id]) if props[:label] == true
11
+
8
12
  options[:skip_default_ids] = false unless options.key?(:skip_default_ids)
9
13
  options[:prompt] = props[:blank_selection] || ""
10
14
  html_options[:required] = "required" if props[:required]
15
+ html_options[:id] = props[:input_options][:id]
16
+ html_options[:class] = props[:input_options][:class] if props[:input_options][:class]
17
+ html_options[:data] = (html_options[:data] || {}).merge(props[:input_options][:data] || {})
18
+
11
19
  input = super(name, choices, options, html_options, &block)
12
20
 
13
21
  @template.pb_rails("select", props: props) do
@@ -4,10 +4,18 @@ module Playbook
4
4
  module Forms
5
5
  class Builder
6
6
  def time_zone_select_field(name, choices = {}, options = {}, html_options = {}, props: {})
7
- props[:label] = @template.label(@object_name, name) if props[:label] == true
7
+ props[:input_options] ||= {}
8
+ props[:input_options][:id] ||= "#{@object_name}_#{name}"
9
+
10
+ props[:label] = @template.label(@object_name, name, for: props[:input_options][:id]) if props[:label] == true
11
+
8
12
  options[:skip_default_ids] = false unless options.key?(:skip_default_ids)
9
13
  options[:prompt] = props[:blank_selection] || ""
10
14
  html_options[:required] = "required" if props[:required]
15
+ html_options[:id] = props[:input_options][:id]
16
+ html_options[:class] = props[:input_options][:class] if props[:input_options][:class]
17
+ html_options[:data] = (html_options[:data] || {}).merge(props[:input_options][:data] || {})
18
+
11
19
  input = @template.time_zone_select(@object_name, name, choices, options, html_options)
12
20
 
13
21
  @template.pb_rails("select", props: props) do
@@ -30,10 +30,14 @@ module Playbook
30
30
  # Escape the message for JavaScript
31
31
  escaped_message = full_message.gsub("'", "\\\\'").gsub("\n", "\\n")
32
32
 
33
- # Return a self-executing script that checks if we've already warned
33
+ # Return a self-executing script that checks if we're already warned
34
34
  # Uses client-side tracking to ensure one warning per page load
35
+ # Only shows warnings on localhost (matching React behavior)
35
36
  script = "<script type=\"text/javascript\">\n"
36
37
  script += "(function() {\n"
38
+ script += " var hostname = window.location.hostname;\n"
39
+ script += " var isLocalDev = hostname === 'localhost' || hostname === '127.0.0.1' || hostname.endsWith('.local') || hostname.includes('local.') || !hostname;\n"
40
+ script += " if (!isLocalDev) return;\n"
37
41
  script += " if (!window.__PB_WARNED_KITS__) window.__PB_WARNED_KITS__ = new Set();\n"
38
42
  script += " if (!window.__PB_WARNED_KITS__.has('#{kit_name}')) {\n"
39
43
  script += " window.__PB_WARNED_KITS__.add('#{kit_name}');\n"
@@ -2,5 +2,5 @@
2
2
 
3
3
  module Playbook
4
4
  PREVIOUS_VERSION = "15.6.0"
5
- VERSION = "15.6.0.pre.alpha.play265012910"
5
+ VERSION = "15.6.0.pre.alpha.play265012993"
6
6
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: playbook_ui
3
3
  version: !ruby/object:Gem::Version
4
- version: 15.6.0.pre.alpha.play265012910
4
+ version: 15.6.0.pre.alpha.play265012993
5
5
  platform: ruby
6
6
  authors:
7
7
  - Power UX
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2025-12-08 00:00:00.000000000 Z
12
+ date: 2025-12-10 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: actionpack
@@ -2935,6 +2935,9 @@ files:
2935
2935
  - app/pb_kits/playbook/pb_select/docs/_select_inline_compact.jsx
2936
2936
  - app/pb_kits/playbook/pb_select/docs/_select_inline_show_arrow.html.erb
2937
2937
  - app/pb_kits/playbook/pb_select/docs/_select_inline_show_arrow.jsx
2938
+ - app/pb_kits/playbook/pb_select/docs/_select_input_options.html.erb
2939
+ - app/pb_kits/playbook/pb_select/docs/_select_input_options.jsx
2940
+ - app/pb_kits/playbook/pb_select/docs/_select_input_options.md
2938
2941
  - app/pb_kits/playbook/pb_select/docs/_select_multiple.html.erb
2939
2942
  - app/pb_kits/playbook/pb_select/docs/_select_multiple.jsx
2940
2943
  - app/pb_kits/playbook/pb_select/docs/_select_multiple.md
@@ -3862,9 +3865,9 @@ files:
3862
3865
  - app/pb_kits/playbook/utilities/test/globalProps/truncate.test.js
3863
3866
  - app/pb_kits/playbook/utilities/text.ts
3864
3867
  - app/pb_kits/playbook/utilities/validEmojiChecker.ts
3865
- - dist/chunks/_typeahead-CnPLuGbe.js
3868
+ - dist/chunks/_typeahead-DMyvWpig.js
3866
3869
  - dist/chunks/lazysizes-B7xYodB-.js
3867
- - dist/chunks/lib-CgpqUb6l.js
3870
+ - dist/chunks/lib-DDDLiZuu.js
3868
3871
  - dist/chunks/vendor.js
3869
3872
  - dist/menu.yml
3870
3873
  - dist/playbook-rails-react-bindings.js