playbook_ui 15.7.0 → 15.8.0.pre.rc.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 (83) hide show
  1. checksums.yaml +4 -4
  2. data/app/pb_kits/playbook/_playbook.scss +1 -1
  3. data/app/pb_kits/playbook/pb_fixed_confirmation_toast/fixed_confirmation_toast.rb +9 -7
  4. data/app/pb_kits/playbook/pb_fixed_confirmation_toast/index.js +3 -8
  5. data/app/pb_kits/playbook/pb_form/docs/_form_form_with.html.erb +1 -1
  6. data/app/pb_kits/playbook/pb_form/docs/_form_form_with_validate.html.erb +2 -1
  7. data/app/pb_kits/playbook/pb_form/docs/_form_with_required_indicator.html.erb +14 -0
  8. data/app/pb_kits/playbook/pb_form/docs/_form_with_required_indicator.md +3 -0
  9. data/app/pb_kits/playbook/pb_form/docs/example.yml +1 -0
  10. data/app/pb_kits/playbook/pb_popover/docs/_popover_append_to.html.erb +2 -2
  11. data/app/pb_kits/playbook/pb_popover/docs/_popover_append_to.jsx +3 -2
  12. data/app/pb_kits/playbook/pb_text_input/_text_input.tsx +56 -6
  13. data/app/pb_kits/playbook/pb_text_input/docs/_text_input_emoji_mask.html.erb +7 -0
  14. data/app/pb_kits/playbook/pb_text_input/docs/_text_input_emoji_mask.jsx +24 -0
  15. data/app/pb_kits/playbook/pb_text_input/docs/_text_input_emoji_mask.md +2 -0
  16. data/app/pb_kits/playbook/pb_text_input/docs/_text_input_required_indicator.html.erb +6 -0
  17. data/app/pb_kits/playbook/pb_text_input/docs/_text_input_required_indicator.jsx +25 -0
  18. data/app/pb_kits/playbook/pb_text_input/docs/_text_input_required_indicator.md +3 -0
  19. data/app/pb_kits/playbook/pb_text_input/docs/example.yml +5 -0
  20. data/app/pb_kits/playbook/pb_text_input/docs/index.js +2 -0
  21. data/app/pb_kits/playbook/pb_text_input/index.js +49 -8
  22. data/app/pb_kits/playbook/pb_text_input/text_input.html.erb +6 -0
  23. data/app/pb_kits/playbook/pb_text_input/text_input.rb +7 -1
  24. data/app/pb_kits/playbook/pb_text_input/text_input.test.js +69 -0
  25. data/app/pb_kits/playbook/pb_textarea/_textarea.tsx +38 -2
  26. data/app/pb_kits/playbook/pb_textarea/docs/_textarea_emoji_mask.html.erb +5 -0
  27. data/app/pb_kits/playbook/pb_textarea/docs/_textarea_emoji_mask.jsx +24 -0
  28. data/app/pb_kits/playbook/pb_textarea/docs/_textarea_emoji_mask.md +1 -0
  29. data/app/pb_kits/playbook/pb_textarea/docs/example.yml +2 -0
  30. data/app/pb_kits/playbook/pb_textarea/docs/index.js +1 -0
  31. data/app/pb_kits/playbook/pb_textarea/index.ts +62 -5
  32. data/app/pb_kits/playbook/pb_textarea/textarea.html.erb +1 -0
  33. data/app/pb_kits/playbook/pb_textarea/textarea.rb +8 -0
  34. data/app/pb_kits/playbook/pb_textarea/textarea.test.js +57 -2
  35. data/app/pb_kits/playbook/pb_time_picker/_time_picker.scss +296 -0
  36. data/app/pb_kits/playbook/pb_time_picker/_time_picker.tsx +822 -0
  37. data/app/pb_kits/playbook/pb_time_picker/docs/_time_picker_24_hour.html.erb +2 -0
  38. data/app/pb_kits/playbook/pb_time_picker/docs/_time_picker_24_hour.jsx +16 -0
  39. data/app/pb_kits/playbook/pb_time_picker/docs/_time_picker_24_hour.md +1 -0
  40. data/app/pb_kits/playbook/pb_time_picker/docs/_time_picker_default.html.erb +1 -0
  41. data/app/pb_kits/playbook/pb_time_picker/docs/_time_picker_default.jsx +13 -0
  42. data/app/pb_kits/playbook/pb_time_picker/docs/_time_picker_default.md +1 -0
  43. data/app/pb_kits/playbook/pb_time_picker/docs/_time_picker_default_time.html.erb +4 -0
  44. data/app/pb_kits/playbook/pb_time_picker/docs/_time_picker_default_time.jsx +29 -0
  45. data/app/pb_kits/playbook/pb_time_picker/docs/_time_picker_default_time.md +1 -0
  46. data/app/pb_kits/playbook/pb_time_picker/docs/_time_picker_disabled.html.erb +13 -0
  47. data/app/pb_kits/playbook/pb_time_picker/docs/_time_picker_disabled.jsx +23 -0
  48. data/app/pb_kits/playbook/pb_time_picker/docs/_time_picker_error.html.erb +5 -0
  49. data/app/pb_kits/playbook/pb_time_picker/docs/_time_picker_error.jsx +15 -0
  50. data/app/pb_kits/playbook/pb_time_picker/docs/_time_picker_input_options.html.erb +14 -0
  51. data/app/pb_kits/playbook/pb_time_picker/docs/_time_picker_label.html.erb +2 -0
  52. data/app/pb_kits/playbook/pb_time_picker/docs/_time_picker_label.jsx +15 -0
  53. data/app/pb_kits/playbook/pb_time_picker/docs/_time_picker_min_max_time.html.erb +42 -0
  54. data/app/pb_kits/playbook/pb_time_picker/docs/_time_picker_min_max_time.jsx +52 -0
  55. data/app/pb_kits/playbook/pb_time_picker/docs/_time_picker_min_max_time.md +1 -0
  56. data/app/pb_kits/playbook/pb_time_picker/docs/_time_picker_on_handler.jsx +45 -0
  57. data/app/pb_kits/playbook/pb_time_picker/docs/_time_picker_on_handler.md +1 -0
  58. data/app/pb_kits/playbook/pb_time_picker/docs/_time_picker_timezone.html.erb +3 -0
  59. data/app/pb_kits/playbook/pb_time_picker/docs/_time_picker_timezone.jsx +21 -0
  60. data/app/pb_kits/playbook/pb_time_picker/docs/_time_picker_timezone.md +1 -0
  61. data/app/pb_kits/playbook/pb_time_picker/docs/example.yml +24 -0
  62. data/app/pb_kits/playbook/pb_time_picker/docs/index.js +9 -0
  63. data/app/pb_kits/playbook/pb_time_picker/index.ts +40 -0
  64. data/app/pb_kits/playbook/pb_time_picker/time_picker.html.erb +1 -0
  65. data/app/pb_kits/playbook/pb_time_picker/time_picker.rb +80 -0
  66. data/app/pb_kits/playbook/pb_time_picker/time_picker.test.jsx +114 -0
  67. data/app/pb_kits/playbook/pb_time_picker/time_picker_helper.ts +662 -0
  68. data/app/pb_kits/playbook/utilities/emojiMask.ts +42 -0
  69. data/app/pb_kits/playbook/utilities/globalProps.ts +1 -0
  70. data/dist/chunks/_typeahead-CSCNg6cp.js +6 -0
  71. data/dist/chunks/lib-DxCgrqqG.js +29 -0
  72. data/dist/chunks/vendor.js +3 -3
  73. data/dist/menu.yml +7 -0
  74. data/dist/playbook-rails-react-bindings.js +1 -1
  75. data/dist/playbook-rails.js +1 -1
  76. data/dist/playbook.css +1 -1
  77. data/lib/playbook/forms/builder/form_field_builder.rb +15 -2
  78. data/lib/playbook/forms/builder/time_picker_field.rb +24 -0
  79. data/lib/playbook/forms/builder.rb +1 -0
  80. data/lib/playbook/version.rb +2 -2
  81. metadata +50 -4
  82. data/dist/chunks/_typeahead-X3EqK1nR.js +0 -6
  83. data/dist/chunks/lib-BHYZzndy.js +0 -29
@@ -46,14 +46,27 @@ module Playbook
46
46
  options[:data] = (options[:data] || {}).merge(message: validation[:message]) if validation[:message].present?
47
47
  end
48
48
 
49
+ options[:data] = (options[:data] || {}).merge(pb_emoji_mask: true) if props.key?(:emoji_mask) && props[:emoji_mask]
50
+
49
51
  input = super(name, **options, &block)
50
52
 
51
53
  input_id = input[/\bid="([^"]+)"/, 1] || "#{@object_name}_#{name}"
52
54
 
53
55
  if props[:label] == true
54
- props[:label] = @template.label(@object_name, name)
56
+ # If using required_indicator, extract just the text and let the template handle rendering
57
+ props[:label] = if props[:required_indicator]
58
+ if @object && @object.class.respond_to?(:human_attribute_name)
59
+ @object.class.human_attribute_name(name)
60
+ else
61
+ name.to_s.humanize
62
+ end
63
+ else
64
+ # Legacy behavior (generate full label HTML) left untouched
65
+ @template.label(@object_name, name)
66
+ end
55
67
  elsif props[:label].is_a?(String)
56
- props[:label] = @template.label_tag(input_id, props[:label])
68
+ # If using required_indicator, keep as text; otherwise wrap in label_tag
69
+ props[:label] = @template.label_tag(input_id, props[:label]) unless props[:required_indicator]
57
70
  end
58
71
 
59
72
  @template.pb_rails(kit_name, props: props) do
@@ -0,0 +1,24 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Playbook
4
+ module Forms
5
+ class Builder
6
+ def time_picker(name, props: {})
7
+ prefix = @object_name
8
+ html_attribute_name = "#{prefix}[#{name}]"
9
+ html_id = "#{prefix}_#{name}"
10
+
11
+ if props[:label] == true
12
+ props[:label] = name.to_s.humanize
13
+ elsif props[:label].nil?
14
+ props[:label] = "Time Picker"
15
+ end
16
+
17
+ props[:name] = html_attribute_name
18
+ props[:id] = html_id
19
+
20
+ @template.pb_rails("time_picker", props: props)
21
+ end
22
+ end
23
+ end
24
+ end
@@ -16,6 +16,7 @@ module Playbook
16
16
  require_relative "builder/dropdown_field"
17
17
  require_relative "builder/star_rating_field"
18
18
  require_relative "builder/time_zone_select_field"
19
+ require_relative "builder/time_picker_field"
19
20
 
20
21
  prepend(FormFieldBuilder.new(:email_field, kit_name: "text_input"))
21
22
  prepend(FormFieldBuilder.new(:number_field, kit_name: "text_input"))
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Playbook
4
- PREVIOUS_VERSION = "15.6.0"
5
- VERSION = "15.7.0"
4
+ PREVIOUS_VERSION = "15.7.0"
5
+ VERSION = "15.8.0.pre.rc.0"
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.7.0
4
+ version: 15.8.0.pre.rc.0
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-19 00:00:00.000000000 Z
12
+ date: 2026-01-06 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: actionpack
@@ -1677,6 +1677,8 @@ files:
1677
1677
  - app/pb_kits/playbook/pb_form/docs/_form_form_with_loading.md
1678
1678
  - app/pb_kits/playbook/pb_form/docs/_form_form_with_validate.html.erb
1679
1679
  - app/pb_kits/playbook/pb_form/docs/_form_form_with_validate.md
1680
+ - app/pb_kits/playbook/pb_form/docs/_form_with_required_indicator.html.erb
1681
+ - app/pb_kits/playbook/pb_form/docs/_form_with_required_indicator.md
1680
1682
  - app/pb_kits/playbook/pb_form/docs/example.yml
1681
1683
  - app/pb_kits/playbook/pb_form/form.rb
1682
1684
  - app/pb_kits/playbook/pb_form/formHelper.js
@@ -3366,6 +3368,9 @@ files:
3366
3368
  - app/pb_kits/playbook/pb_text_input/docs/_text_input_disabled.html.erb
3367
3369
  - app/pb_kits/playbook/pb_text_input/docs/_text_input_disabled.jsx
3368
3370
  - app/pb_kits/playbook/pb_text_input/docs/_text_input_disabled_swift.md
3371
+ - app/pb_kits/playbook/pb_text_input/docs/_text_input_emoji_mask.html.erb
3372
+ - app/pb_kits/playbook/pb_text_input/docs/_text_input_emoji_mask.jsx
3373
+ - app/pb_kits/playbook/pb_text_input/docs/_text_input_emoji_mask.md
3369
3374
  - app/pb_kits/playbook/pb_text_input/docs/_text_input_error.html.erb
3370
3375
  - app/pb_kits/playbook/pb_text_input/docs/_text_input_error.jsx
3371
3376
  - app/pb_kits/playbook/pb_text_input/docs/_text_input_error.md
@@ -3379,6 +3384,9 @@ files:
3379
3384
  - app/pb_kits/playbook/pb_text_input/docs/_text_input_no_label.jsx
3380
3385
  - app/pb_kits/playbook/pb_text_input/docs/_text_input_options.html.erb
3381
3386
  - app/pb_kits/playbook/pb_text_input/docs/_text_input_props_swift.md
3387
+ - app/pb_kits/playbook/pb_text_input/docs/_text_input_required_indicator.html.erb
3388
+ - app/pb_kits/playbook/pb_text_input/docs/_text_input_required_indicator.jsx
3389
+ - app/pb_kits/playbook/pb_text_input/docs/_text_input_required_indicator.md
3382
3390
  - app/pb_kits/playbook/pb_text_input/docs/_text_input_sanitize.jsx
3383
3391
  - app/pb_kits/playbook/pb_text_input/docs/_text_input_sanitize.md
3384
3392
  - app/pb_kits/playbook/pb_text_input/docs/example.yml
@@ -3400,6 +3408,9 @@ files:
3400
3408
  - app/pb_kits/playbook/pb_textarea/docs/_textarea_default.html.erb
3401
3409
  - app/pb_kits/playbook/pb_textarea/docs/_textarea_default.jsx
3402
3410
  - app/pb_kits/playbook/pb_textarea/docs/_textarea_default_swift.md
3411
+ - app/pb_kits/playbook/pb_textarea/docs/_textarea_emoji_mask.html.erb
3412
+ - app/pb_kits/playbook/pb_textarea/docs/_textarea_emoji_mask.jsx
3413
+ - app/pb_kits/playbook/pb_textarea/docs/_textarea_emoji_mask.md
3403
3414
  - app/pb_kits/playbook/pb_textarea/docs/_textarea_error.html.erb
3404
3415
  - app/pb_kits/playbook/pb_textarea/docs/_textarea_error.jsx
3405
3416
  - app/pb_kits/playbook/pb_textarea/docs/_textarea_error.md
@@ -3438,6 +3449,39 @@ files:
3438
3449
  - app/pb_kits/playbook/pb_time/docs/index.js
3439
3450
  - app/pb_kits/playbook/pb_time/time.html.erb
3440
3451
  - app/pb_kits/playbook/pb_time/time.rb
3452
+ - app/pb_kits/playbook/pb_time_picker/_time_picker.scss
3453
+ - app/pb_kits/playbook/pb_time_picker/_time_picker.tsx
3454
+ - app/pb_kits/playbook/pb_time_picker/docs/_time_picker_24_hour.html.erb
3455
+ - app/pb_kits/playbook/pb_time_picker/docs/_time_picker_24_hour.jsx
3456
+ - app/pb_kits/playbook/pb_time_picker/docs/_time_picker_24_hour.md
3457
+ - app/pb_kits/playbook/pb_time_picker/docs/_time_picker_default.html.erb
3458
+ - app/pb_kits/playbook/pb_time_picker/docs/_time_picker_default.jsx
3459
+ - app/pb_kits/playbook/pb_time_picker/docs/_time_picker_default.md
3460
+ - app/pb_kits/playbook/pb_time_picker/docs/_time_picker_default_time.html.erb
3461
+ - app/pb_kits/playbook/pb_time_picker/docs/_time_picker_default_time.jsx
3462
+ - app/pb_kits/playbook/pb_time_picker/docs/_time_picker_default_time.md
3463
+ - app/pb_kits/playbook/pb_time_picker/docs/_time_picker_disabled.html.erb
3464
+ - app/pb_kits/playbook/pb_time_picker/docs/_time_picker_disabled.jsx
3465
+ - app/pb_kits/playbook/pb_time_picker/docs/_time_picker_error.html.erb
3466
+ - app/pb_kits/playbook/pb_time_picker/docs/_time_picker_error.jsx
3467
+ - app/pb_kits/playbook/pb_time_picker/docs/_time_picker_input_options.html.erb
3468
+ - app/pb_kits/playbook/pb_time_picker/docs/_time_picker_label.html.erb
3469
+ - app/pb_kits/playbook/pb_time_picker/docs/_time_picker_label.jsx
3470
+ - app/pb_kits/playbook/pb_time_picker/docs/_time_picker_min_max_time.html.erb
3471
+ - app/pb_kits/playbook/pb_time_picker/docs/_time_picker_min_max_time.jsx
3472
+ - app/pb_kits/playbook/pb_time_picker/docs/_time_picker_min_max_time.md
3473
+ - app/pb_kits/playbook/pb_time_picker/docs/_time_picker_on_handler.jsx
3474
+ - app/pb_kits/playbook/pb_time_picker/docs/_time_picker_on_handler.md
3475
+ - app/pb_kits/playbook/pb_time_picker/docs/_time_picker_timezone.html.erb
3476
+ - app/pb_kits/playbook/pb_time_picker/docs/_time_picker_timezone.jsx
3477
+ - app/pb_kits/playbook/pb_time_picker/docs/_time_picker_timezone.md
3478
+ - app/pb_kits/playbook/pb_time_picker/docs/example.yml
3479
+ - app/pb_kits/playbook/pb_time_picker/docs/index.js
3480
+ - app/pb_kits/playbook/pb_time_picker/index.ts
3481
+ - app/pb_kits/playbook/pb_time_picker/time_picker.html.erb
3482
+ - app/pb_kits/playbook/pb_time_picker/time_picker.rb
3483
+ - app/pb_kits/playbook/pb_time_picker/time_picker.test.jsx
3484
+ - app/pb_kits/playbook/pb_time_picker/time_picker_helper.ts
3441
3485
  - app/pb_kits/playbook/pb_time_range_inline/_time_range_inline.scss
3442
3486
  - app/pb_kits/playbook/pb_time_range_inline/_time_range_inline.tsx
3443
3487
  - app/pb_kits/playbook/pb_time_range_inline/docs/_time_range_inline_default.html.erb
@@ -3864,6 +3908,7 @@ files:
3864
3908
  - app/pb_kits/playbook/utilities/_vertical_align.scss
3865
3909
  - app/pb_kits/playbook/utilities/_width.scss
3866
3910
  - app/pb_kits/playbook/utilities/deprecated.ts
3911
+ - app/pb_kits/playbook/utilities/emojiMask.ts
3867
3912
  - app/pb_kits/playbook/utilities/flexbox_global_props/_align_content.scss
3868
3913
  - app/pb_kits/playbook/utilities/flexbox_global_props/_align_items.scss
3869
3914
  - app/pb_kits/playbook/utilities/flexbox_global_props/_align_self.scss
@@ -3903,9 +3948,9 @@ files:
3903
3948
  - app/pb_kits/playbook/utilities/test/globalProps/truncate.test.js
3904
3949
  - app/pb_kits/playbook/utilities/text.ts
3905
3950
  - app/pb_kits/playbook/utilities/validEmojiChecker.ts
3906
- - dist/chunks/_typeahead-X3EqK1nR.js
3951
+ - dist/chunks/_typeahead-CSCNg6cp.js
3907
3952
  - dist/chunks/lazysizes-B7xYodB-.js
3908
- - dist/chunks/lib-BHYZzndy.js
3953
+ - dist/chunks/lib-DxCgrqqG.js
3909
3954
  - dist/chunks/vendor.js
3910
3955
  - dist/menu.yml
3911
3956
  - dist/playbook-rails-react-bindings.js
@@ -3940,6 +3985,7 @@ files:
3940
3985
  - lib/playbook/forms/builder/phone_number_field.rb
3941
3986
  - lib/playbook/forms/builder/select_field.rb
3942
3987
  - lib/playbook/forms/builder/star_rating_field.rb
3988
+ - lib/playbook/forms/builder/time_picker_field.rb
3943
3989
  - lib/playbook/forms/builder/time_zone_select_field.rb
3944
3990
  - lib/playbook/forms/builder/typeahead_field.rb
3945
3991
  - lib/playbook/height.rb