playbook_ui 16.7.0 → 16.8.0.pre.alpha.PLAY2935formbuilderrequiredindicatorbug16780

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 (135) hide show
  1. checksums.yaml +4 -4
  2. data/app/pb_kits/playbook/pb_advanced_table/Components/RegularTableView.tsx +2 -0
  3. data/app/pb_kits/playbook/pb_advanced_table/Components/TableHeaderCell.tsx +2 -0
  4. data/app/pb_kits/playbook/pb_advanced_table/Components/VirtualizedTableView.tsx +5 -1
  5. data/app/pb_kits/playbook/pb_advanced_table/Hooks/useTableState.ts +24 -0
  6. data/app/pb_kits/playbook/pb_advanced_table/Utilities/ColumnLayoutHelper.ts +138 -0
  7. data/app/pb_kits/playbook/pb_advanced_table/advanced_table.test.jsx +144 -0
  8. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_column_styling.jsx +1 -0
  9. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_column_styling.md +6 -0
  10. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_column_styling_width.jsx +57 -0
  11. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_column_styling_width.md +66 -0
  12. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_enable_toggle_expansion_rails.html.erb +62 -0
  13. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_enable_toggle_expansion_rails.md +7 -0
  14. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_sticky_header.jsx +12 -4
  15. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_sticky_header.md +4 -0
  16. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_sticky_header_rails.html.erb +16 -2
  17. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_sticky_header_rails.md +4 -0
  18. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_sticky_scroll_limitation.jsx +68 -0
  19. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_sticky_scroll_limitation.md +7 -0
  20. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_table_props_sticky_header.html.erb +16 -2
  21. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_table_props_sticky_header.jsx +12 -5
  22. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_table_props_sticky_header_rails.md +4 -0
  23. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_table_props_sticky_header_react.md +5 -3
  24. data/app/pb_kits/playbook/pb_advanced_table/docs/_playground.json +180 -5839
  25. data/app/pb_kits/playbook/pb_advanced_table/docs/_playground.overrides.json +5 -30
  26. data/app/pb_kits/playbook/pb_advanced_table/docs/advanced_table_column_definitions_styling.json +4 -1
  27. data/app/pb_kits/playbook/pb_advanced_table/docs/example.yml +3 -0
  28. data/app/pb_kits/playbook/pb_advanced_table/docs/index.js +2 -0
  29. data/app/pb_kits/playbook/pb_card/_card.tsx +1 -1
  30. data/app/pb_kits/playbook/pb_card/card.html.erb +1 -1
  31. data/app/pb_kits/playbook/pb_currency/_currency.tsx +9 -6
  32. data/app/pb_kits/playbook/pb_currency/currency.rb +5 -10
  33. data/app/pb_kits/playbook/pb_currency/currency.test.js +44 -1
  34. data/app/pb_kits/playbook/pb_date/docs/_playground.json +13 -17
  35. data/app/pb_kits/playbook/pb_date/docs/_playground.overrides.json +13 -16
  36. data/app/pb_kits/playbook/pb_date_picker/_date_picker.tsx +3 -2
  37. data/app/pb_kits/playbook/pb_date_picker/date_picker.html.erb +38 -23
  38. data/app/pb_kits/playbook/pb_date_picker/date_picker.rb +2 -1
  39. data/app/pb_kits/playbook/pb_date_picker/date_picker.test.js +31 -0
  40. data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_dialog_submission.jsx +2 -2
  41. data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_inline.html.erb +0 -2
  42. data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_inline.jsx +0 -2
  43. data/app/pb_kits/playbook/pb_date_picker/docs/_playground.json +136 -42
  44. data/app/pb_kits/playbook/pb_date_picker/docs/_playground.overrides.json +113 -45
  45. data/app/pb_kits/playbook/pb_date_range_inline/docs/_playground.json +48 -6
  46. data/app/pb_kits/playbook/pb_date_range_inline/docs/_playground.overrides.json +57 -0
  47. data/app/pb_kits/playbook/pb_date_range_stacked/docs/_playground.json +28 -5
  48. data/app/pb_kits/playbook/pb_date_range_stacked/docs/_playground.overrides.json +38 -0
  49. data/app/pb_kits/playbook/pb_date_stacked/docs/_playground.json +1 -1
  50. data/app/pb_kits/playbook/pb_date_stacked/docs/_playground.overrides.json +1 -1
  51. data/app/pb_kits/playbook/pb_date_time/docs/_playground.json +16 -3
  52. data/app/pb_kits/playbook/pb_date_time/docs/_playground.overrides.json +16 -3
  53. data/app/pb_kits/playbook/pb_date_time_stacked/docs/_playground.json +11 -15
  54. data/app/pb_kits/playbook/pb_date_time_stacked/docs/_playground.overrides.json +11 -15
  55. data/app/pb_kits/playbook/pb_date_year_stacked/docs/_playground.json +4 -4
  56. data/app/pb_kits/playbook/pb_date_year_stacked/docs/_playground.overrides.json +4 -4
  57. data/app/pb_kits/playbook/pb_detail/docs/_playground.json +12 -18
  58. data/app/pb_kits/playbook/pb_detail/docs/_playground.overrides.json +13 -12
  59. data/app/pb_kits/playbook/pb_dialog/docs/_playground.json +108 -42
  60. data/app/pb_kits/playbook/pb_dialog/docs/_playground.overrides.json +88 -40
  61. data/app/pb_kits/playbook/pb_distribution_bar/docs/_playground.json +65 -7
  62. data/app/pb_kits/playbook/pb_distribution_bar/docs/_playground.overrides.json +45 -0
  63. data/app/pb_kits/playbook/pb_draggable/_draggable.scss +19 -0
  64. data/app/pb_kits/playbook/pb_draggable/docs/_draggable_with_cards_rails.md +2 -0
  65. data/app/pb_kits/playbook/pb_draggable/docs/_draggable_with_cards_react.md +1 -0
  66. data/app/pb_kits/playbook/pb_draggable/docs/_draggable_with_list_rails.md +2 -0
  67. data/app/pb_kits/playbook/pb_draggable/docs/_draggable_with_list_react.md +3 -1
  68. data/app/pb_kits/playbook/pb_draggable/docs/_draggable_with_selectable_list_rails.md +3 -1
  69. data/app/pb_kits/playbook/pb_draggable/docs/_draggable_with_selectable_list_react.md +3 -1
  70. data/app/pb_kits/playbook/pb_draggable/draggable.test.jsx +16 -0
  71. data/app/pb_kits/playbook/pb_draggable/draggable_container.html.erb +3 -1
  72. data/app/pb_kits/playbook/pb_draggable/draggable_item.html.erb +1 -0
  73. data/app/pb_kits/playbook/pb_draggable/index.js +149 -7
  74. data/app/pb_kits/playbook/pb_draggable/subcomponents/DraggableContainer.tsx +1 -0
  75. data/app/pb_kits/playbook/pb_draggable/subcomponents/DraggableItem.tsx +67 -1
  76. data/app/pb_kits/playbook/pb_draggable/touchDrag.test.js +38 -0
  77. data/app/pb_kits/playbook/pb_draggable/utilities/touchDrag.ts +173 -0
  78. data/app/pb_kits/playbook/pb_dropdown/docs/_playground.json +318 -21
  79. data/app/pb_kits/playbook/pb_dropdown/docs/_playground.overrides.json +192 -19
  80. data/app/pb_kits/playbook/pb_empty_state/docs/_playground.json +77 -12
  81. data/app/pb_kits/playbook/pb_empty_state/docs/_playground.overrides.json +79 -0
  82. data/app/pb_kits/playbook/pb_file_upload/docs/_playground.json +98 -13
  83. data/app/pb_kits/playbook/pb_file_upload/docs/_playground.overrides.json +99 -0
  84. data/app/pb_kits/playbook/pb_form/docs/_form_with_required_indicator.html.erb +20 -19
  85. data/app/pb_kits/playbook/pb_icon/_icon.scss +2 -1
  86. data/app/pb_kits/playbook/pb_icon/docs/example.yml +0 -2
  87. data/app/pb_kits/playbook/pb_icon/docs/index.js +0 -1
  88. data/app/pb_kits/playbook/pb_link/docs/_playground.json +81 -40
  89. data/app/pb_kits/playbook/pb_link/docs/_playground.overrides.json +88 -30
  90. data/app/pb_kits/playbook/pb_list/_list_item.tsx +4 -1
  91. data/app/pb_kits/playbook/pb_list/item.html.erb +1 -1
  92. data/app/pb_kits/playbook/pb_pb_circle_chart/docs/_pb_circle_chart_centered_data.html.erb +90 -0
  93. data/app/pb_kits/playbook/pb_pb_circle_chart/docs/_pb_circle_chart_centered_data.jsx +100 -0
  94. data/app/pb_kits/playbook/pb_pb_circle_chart/docs/_pb_circle_chart_centered_data.md +1 -0
  95. data/app/pb_kits/playbook/pb_pb_circle_chart/docs/_pb_circle_chart_default.jsx +1 -1
  96. data/app/pb_kits/playbook/pb_pb_circle_chart/docs/example.yml +2 -0
  97. data/app/pb_kits/playbook/pb_pb_circle_chart/docs/index.js +2 -1
  98. data/app/pb_kits/playbook/pb_phone_number_input/docs/_playground.json +4 -2
  99. data/app/pb_kits/playbook/pb_rich_text_editor/_rich_text_editor.tsx +1 -1
  100. data/app/pb_kits/playbook/pb_rich_text_editor/_tiptap_styles.scss +262 -43
  101. data/app/pb_kits/playbook/pb_rich_text_editor/docs/_rich_text_editor_rails_default.html.erb +1 -0
  102. data/app/pb_kits/playbook/pb_rich_text_editor/docs/_rich_text_editor_rails_default.md +12 -0
  103. data/app/pb_kits/playbook/pb_rich_text_editor/docs/_rich_text_editor_rails_simple.html.erb +9 -0
  104. data/app/pb_kits/playbook/pb_rich_text_editor/docs/_rich_text_editor_rails_simple.md +8 -0
  105. data/app/pb_kits/playbook/pb_rich_text_editor/docs/example.yml +2 -0
  106. data/app/pb_kits/playbook/pb_rich_text_editor/kit.schema.json +18 -9
  107. data/app/pb_kits/playbook/pb_rich_text_editor/rich_text_editor.html.erb +162 -0
  108. data/app/pb_kits/playbook/pb_rich_text_editor/rich_text_editor.rb +71 -0
  109. data/app/pb_kits/playbook/pb_rich_text_editor/rich_text_editor_rails.js +202 -0
  110. data/app/pb_kits/playbook/pb_table/docs/_table_sticky.html.erb +85 -83
  111. data/app/pb_kits/playbook/pb_table/docs/_table_sticky.jsx +88 -86
  112. data/app/pb_kits/playbook/pb_table/docs/_table_sticky.md +3 -1
  113. data/app/pb_kits/playbook/pb_table/docs/_table_with_filter_variant_external_filter_rails.md +1 -1
  114. data/app/pb_kits/playbook/pb_text_input/_text_input.scss +37 -0
  115. data/app/pb_kits/playbook/pb_title/docs/_playground.json +72 -23
  116. data/app/pb_kits/playbook/pb_title/docs/_playground.overrides.json +80 -16
  117. data/app/pb_kits/playbook/pb_tooltip/_tooltip.scss +133 -102
  118. data/app/pb_kits/playbook/pb_tooltip/_tooltip.tsx +54 -41
  119. data/app/pb_kits/playbook/pb_tooltip/tooltip.test.jsx +60 -2
  120. data/dist/chunks/{_pb_line_graph-CIWJe3Gr.js → _pb_line_graph-BgsTI0CL.js} +1 -1
  121. data/dist/chunks/_typeahead-DA__Kgp5.js +5 -0
  122. data/dist/chunks/{globalProps-CqO4Tko1.js → globalProps-DOB47YGB.js} +1 -1
  123. data/dist/chunks/{lib-czQnE40X.js → lib-BzglXly2.js} +2 -2
  124. data/dist/chunks/vendor.js +4 -4
  125. data/dist/menu.yml +71 -132
  126. data/dist/playbook-rails-react-bindings.js +1 -1
  127. data/dist/playbook-rails.js +1 -1
  128. data/dist/playbook.css +1 -1
  129. data/lib/playbook/forms/builder/form_field_builder.rb +2 -0
  130. data/lib/playbook/version.rb +2 -2
  131. metadata +31 -10
  132. data/app/pb_kits/playbook/pb_icon/docs/_icon_fa_kit.html.erb +0 -1
  133. data/app/pb_kits/playbook/pb_icon/docs/_icon_fa_kit.jsx +0 -21
  134. data/app/pb_kits/playbook/pb_icon/docs/_icon_fa_kit.md +0 -7
  135. data/dist/chunks/_typeahead-B_Ac4z84.js +0 -1
data/dist/menu.yml CHANGED
@@ -24,6 +24,7 @@ kits:
24
24
  a way that allows for expansion and/or sorting.
25
25
  components:
26
26
  - name: default
27
+ description: "Minimal table: required props and structure before adding features."
27
28
  parent: advanced_table
28
29
  kit_section: ["Default (Required Props)", "Table Options", "Table Props", "Table with No Subrows or Expansion" ]
29
30
  platforms: *1
@@ -32,6 +33,7 @@ kits:
32
33
  react_rendered: false
33
34
  enhanced_element_used: true
34
35
  - name: sorting
36
+ description: Sortable headers, controlled sort state, and custom compare logic.
35
37
  parent: advanced_table
36
38
  kit_section: ["Enable Sorting", "Sort Control", "Enable Sort By Column", "Enable Sort By Column (Multi-Column)", "Custom Sort", "Sort Parent Only"]
37
39
  platforms: *1
@@ -40,6 +42,7 @@ kits:
40
42
  react_rendered: false
41
43
  enhanced_element_used: true
42
44
  - name: pagination_&_data_states
45
+ description: Paged or infinite data plus loading and empty states.
43
46
  parent: advanced_table
44
47
  kit_section: ["Pagination", "Pagination Props", "Loading State", "Inline Row Loading", "Infinite Scroll"]
45
48
  platforms: *1
@@ -48,14 +51,16 @@ kits:
48
51
  react_rendered: false
49
52
  enhanced_element_used: true
50
53
  - name: row_interaction
54
+ description: Select, expand, subrows, pinning; row highlights and bulk actions.
51
55
  parent: advanced_table
52
- kit_section: ["Expanded Control", "Expand by Depth", "SubRow Headers", "Cascade Collapse", "Pinned Rows", "Selectable Rows", "Selectable Rows (No Subrows)", "Selectable Rows (With Actions)", "Selectable Rows (No Actions Bar)"]
56
+ kit_section: ["Expanded Control", "Expand by Depth", "SubRow Headers", "Enable Toggle Expansion", "Cascade Collapse", "Pinned Rows", "Selectable Rows", "Selectable Rows (No Subrows)", "Selectable Rows (With Actions)", "Selectable Rows (No Actions Bar)"]
53
57
  platforms: *1
54
58
  status: stable
55
59
  icons_used: true
56
60
  react_rendered: false
57
61
  enhanced_element_used: true
58
62
  - name: column_configuration
63
+ description: "Define columns: headers, visibility, grouping, borders, widths."
59
64
  parent: advanced_table
60
65
  kit_section: ["Column Visibility Control", "Column Visibility Control With State", "Column Visibility Control with Custom Dropdown", "Column Visibility Control with Multi-Header Columns", "Multi-Header Columns", "Multi-Header Columns (Multiple Levels)", "Multi-Header Columns with Custom Cells", "Multi-Header Columns with Vertical Borders", "Grouped headers, custom headers, sort, and pinned rows"]
61
66
  platforms: *1
@@ -64,6 +69,7 @@ kits:
64
69
  react_rendered: false
65
70
  enhanced_element_used: true
66
71
  - name: cell_behavior
72
+ description: "What each cell shows and does: custom content, edit, loading."
67
73
  parent: advanced_table
68
74
  kit_section: ["Custom Components for Cells", "Custom Header Cell", "Custom Header with Multiple Headers", "Inline Cell Editing"]
69
75
  platforms: *1
@@ -72,14 +78,16 @@ kits:
72
78
  react_rendered: false
73
79
  enhanced_element_used: true
74
80
  - name: layout_&_positioning
81
+ description: Scroll, sticky headers/columns, responsive layout, fullscreen modes.
75
82
  parent: advanced_table
76
- kit_section: ["Sticky Header", "Sticky Header for Responsive Table", "Sticky Columns", "Sticky Columns with Sticky Header", "Responsive Tables", "Fullscreen", "Advanced Table Scrollbar None"]
83
+ kit_section: ["Sticky Header", "Sticky Header for Responsive Table", "Sticky Columns", "Sticky Columns with Sticky Header", "Sticky Header and Column Scroll Limitation", "Responsive Tables", "Fullscreen", "Advanced Table Scrollbar None"]
77
84
  platforms: *1
78
85
  status: stable
79
86
  icons_used: true
80
87
  react_rendered: false
81
88
  enhanced_element_used: true
82
89
  - name: styling
90
+ description: "Styling per row or column: padding, color, and border."
83
91
  parent: advanced_table
84
92
  kit_section: ["Collapsible Trail","Row Styling", "Padding Control using Row Styling", "Column Styling", "Column Styling with Multiple Headers", "Column Styling Background Color", "Column Styling Background Color (Custom)", "Column Styling Background Color with Multiple Headers","Column Styling Individual Cell Background Color", "Padding Control using Column Styling", "Column Group Border Color"]
85
93
  platforms: *1
@@ -92,7 +100,7 @@ kits:
92
100
  components:
93
101
  - name: dialog
94
102
  platforms: *1
95
- description: Modal dialog for confirmations, forms, or focused content. Supports status icons for info, caution, delete, error, and success states.
103
+ description: Modal for confirmations, forms, or focus. Supports alert modals for various statuses.
96
104
  status: stable
97
105
  icons_used: true
98
106
  react_rendered: false
@@ -103,19 +111,14 @@ kits:
103
111
  - Dialog.Footer
104
112
  - name: fixed_confirmation_toast
105
113
  platforms: *1
106
- description: Fixed Confirmation Toast is used as an alert. Success is used when
107
- a user successfully completes an action. Error is used when there is an error
108
- and the user cannot proceed. Neutral is used to display information to a user
109
- to complete a task.
114
+ description: "Fixed alerts: success after completion, error when blocked, neutral for informational context."
110
115
  status: stable
111
116
  icons_used: true
112
117
  react_rendered: false
113
118
  enhanced_element_used: true
114
119
  - name: popover
115
120
  platforms: *1
116
- description: A popover is a way to toggle content on top of other content. It
117
- can be used for small texts, small forms, or even dropdowns. By default, popover
118
- will toggle open/closed by simply clicking the trigger element.
121
+ description: Anchored panel for short content, mini forms, or menus. Click the trigger to toggle it open.
119
122
  status: stable
120
123
  icons_used: false
121
124
  react_rendered: false
@@ -134,22 +137,21 @@ kits:
134
137
  components:
135
138
  - name: button
136
139
  platforms: *1
137
- description: Interactive element for triggering actions. Primary variant for main CTAs, secondary for less prominent actions, danger for destructive actions.
140
+ description: Primary Button for main tasks; secondary and danger variants for other actions.
138
141
  status: stable
139
142
  icons_used: true
140
143
  react_rendered: false
141
144
  enhanced_element_used: true
142
145
  - name: button_toolbar
143
146
  platforms: *1
144
- description: This kit should primarily hold the most commonly used buttons.
147
+ description: This component should primarily hold the most commonly used buttons.
145
148
  status: stable
146
149
  icons_used: false
147
150
  react_rendered: false
148
151
  enhanced_element_used: false
149
152
  - name: circle_icon_button
150
153
  platforms: *1
151
- description: When using Icon Circle Button, the icon must be clear a clear indication
152
- of what the button does because there is no text.
154
+ description: Round icon-only button; the icon must clearly show the action because there is no label.
153
155
  status: stable
154
156
  icons_used: true
155
157
  react_rendered: false
@@ -172,15 +174,14 @@ kits:
172
174
  components:
173
175
  - name: map
174
176
  platforms: *2
175
- description: This kit provides a wrapping class to place around the MapLibre library.
177
+ description: This component provides a wrapping class to place around the MapLibre library.
176
178
  status: stable
177
179
  icons_used: true
178
180
  react_rendered: true
179
181
  enhanced_element_used: false
180
182
  - name: table
181
183
  platforms: *1
182
- description: Tables display a collection of structured data and typically have
183
- the ability to sort, filter, and paginate data.
184
+ description: Structured rows and columns of data, often with sorting, filtering, and pagination.
184
185
  status: stable
185
186
  icons_used: false
186
187
  react_rendered: false
@@ -199,17 +200,14 @@ kits:
199
200
  enhanced_element_used: false
200
201
  - name: filter
201
202
  platforms: *1
202
- description: This kit can be implemented in a variety of ways. To see examples
203
- of how to implement this kit in production visit the /dev_docs/search page in
204
- production.
203
+ description: Search and filter UI. See production /dev_docs/search for real integration examples.
205
204
  status: stable
206
205
  icons_used: true
207
206
  react_rendered: false
208
207
  enhanced_element_used: false
209
208
  - name: distribution_bar
210
209
  platforms: *1
211
- description: Can be used in the same way a pie chart can be used. By default,
212
- Distribution Bar comparatively represents data without numbers.
210
+ description: Part-to-whole comparison like a pie chart. Default mode stresses share without raw numbers.
213
211
  status: stable
214
212
  icons_used: false
215
213
  react_rendered: true
@@ -256,16 +254,14 @@ kits:
256
254
  components:
257
255
  - name: date
258
256
  platforms: *1
259
- description: Use to display the date. Year will not display if it is the current
260
- year.
257
+ description: Use to display the date. Year will not display by default if it is the current year.
261
258
  status: stable
262
259
  icons_used: true
263
260
  react_rendered: false
264
261
  enhanced_element_used: false
265
262
  - name: date_range_inline
266
263
  platforms: *1
267
- description: Use to display a date range. Year will not show if it is the current
268
- year.
264
+ description: Use to display a date range. Year will not show by default if it is the current year.
269
265
  status: stable
270
266
  icons_used: true
271
267
  react_rendered: false
@@ -279,16 +275,14 @@ kits:
279
275
  enhanced_element_used: false
280
276
  - name: date_stacked
281
277
  platforms: *1
282
- description: Use to display the date, stacking month and day. Year will not show
283
- if it is the current year.
278
+ description: Displays the date stacked with the month and day. Default behavior does not show the current year.
284
279
  status: stable
285
280
  icons_used: false
286
281
  react_rendered: false
287
282
  enhanced_element_used: false
288
283
  - name: date_time
289
284
  platforms: *1
290
- description: Date Time is a composite kit that leverages the Date and Time kits.
291
- The Date Time kit is affected by time zones and defaults to "America/New_York".
285
+ description: Combined date and time. Respects time zones; defaults to America/New_York when not set.
292
286
  status: stable
293
287
  icons_used: false
294
288
  react_rendered: false
@@ -302,16 +296,14 @@ kits:
302
296
  enhanced_element_used: false
303
297
  - name: date_year_stacked
304
298
  platforms: *1
305
- description: This kit is a simple option for displaying dates in a month, day
306
- and the year format.
299
+ description: This component is a simple option for displaying dates in a month, day, and year format.
307
300
  status: stable
308
301
  icons_used: false
309
302
  react_rendered: false
310
303
  enhanced_element_used: false
311
304
  - name: time
312
305
  platforms: *1
313
- description: This kit consist of large display and table display format. It includes
314
- and icon, and a time zone.
306
+ description: Displays a time of day with optional timezone and icon, in large or compact layouts.
315
307
  status: stable
316
308
  icons_used: true
317
309
  react_rendered: false
@@ -332,8 +324,7 @@ kits:
332
324
  enhanced_element_used: false
333
325
  - name: timestamp
334
326
  platforms: *3
335
- description: This low profile kit displays time. Elapsed, current, future, or
336
- otherwise.
327
+ description: Low profile component for displaying time; elapsed, current, future, or otherwise.
337
328
  status: stable
338
329
  icons_used: false
339
330
  react_rendered: false
@@ -357,63 +348,56 @@ kits:
357
348
  enhanced_element_used: false
358
349
  - name: currency
359
350
  platforms: *1
360
- description: Use to display monetary amounts, typically on dashboards or other
361
- layouts to show an overview or summary. User understanding increase when paired
362
- with labels.
351
+ description: Formats money for dashboards and summaries. Pair with labels so amounts stay clear.
363
352
  status: stable
364
353
  icons_used: false
365
354
  react_rendered: false
366
355
  enhanced_element_used: false
367
356
  - name: home_address_street
368
357
  platforms: *1
369
- description: This kit can be used to display the address for a homeowner/project.
370
- It contains street address, APT format, City, state and zip. A Project hashtag
371
- can be used as a prop to link back to a project.
358
+ description: Street address with unit, city, state, ZIP, and optional project hashtag linking to work.
372
359
  status: stable
373
360
  icons_used: false
374
361
  react_rendered: false
375
362
  enhanced_element_used: false
376
363
  - name: label_pill
377
364
  platforms: *1
378
- description: This kit combines the caption and pill kit with all its variants.
365
+ description: This component combines the Caption and Pill components with all of their variants.
379
366
  status: stable
380
367
  icons_used: false
381
368
  react_rendered: false
382
369
  enhanced_element_used: false
383
370
  - name: label_value
384
371
  platforms: *1
385
- description: This kit can be very versatile when used to display text data.
372
+ description: This component can be very versatile when used to display text data.
386
373
  status: stable
387
374
  icons_used: true
388
375
  react_rendered: false
389
376
  enhanced_element_used: false
390
377
  - name: person
391
378
  platforms: *1
392
- description: This kit is broken down into a first name last name format with normal
393
- and bold weighted text.
379
+ description: This component is broken down into a first name last name format with normal and bold weighted text.
394
380
  status: stable
395
381
  icons_used: false
396
382
  react_rendered: false
397
383
  enhanced_element_used: false
398
384
  - name: person_contact
399
385
  platforms: *1
400
- description: This kit can be used to display a person contact information.
386
+ description: This component can be used to display a person contact information.
401
387
  status: stable
402
388
  icons_used: false
403
389
  react_rendered: false
404
390
  enhanced_element_used: false
405
391
  - name: source
406
392
  platforms: *1
407
- description: General use is to describe the discovery of businesses, customers,
408
- etc. This kit can also be used for other purposes as well.
393
+ description: Shows where a record or lead came from; flexible for other attribution labels too.
409
394
  status: stable
410
395
  icons_used: true
411
396
  react_rendered: false
412
397
  enhanced_element_used: false
413
398
  - name: dashboard_value
414
399
  platforms: *1
415
- description: Use in dashboards to give the viewer a quick overview of important
416
- metrics. If want to show currency, use Currency Kit.
400
+ description: Large dashboard number for quick metrics. Use Currency when the value is money.
417
401
  status: stable
418
402
  icons_used: false
419
403
  react_rendered: false
@@ -427,25 +411,21 @@ kits:
427
411
  enhanced_element_used: false
428
412
  - name: stat_value
429
413
  platforms: *1
430
- description: This kit was cerated for the main use as a dashboard display for
431
- numbers. A large label is an optional part if it needs more clarity.
414
+ description: Prominent numeric stat for dashboards; optional label explains what the figure means.
432
415
  status: stable
433
416
  icons_used: false
434
417
  react_rendered: false
435
418
  enhanced_element_used: false
436
419
  - name: title_count
437
420
  platforms: *1
438
- description: This kits consists of title kit and body text. It is used to display
439
- a title and a count (numbers). It has a base size and a large formation for
440
- dashboard use.
421
+ description: Title with a related count, in default or larger dashboard-friendly sizing.
441
422
  status: stable
442
423
  icons_used: false
443
424
  react_rendered: false
444
425
  enhanced_element_used: false
445
426
  - name: title_detail
446
427
  platforms: *1
447
- description: This kit can be used in many versatile ways. It consist of a title
448
- 4 and light body text kit.
428
+ description: This component can be used in many versatile ways. It's made up of a Title 4 and light Body component.
449
429
  status: stable
450
430
  icons_used: false
451
431
  react_rendered: false
@@ -462,8 +442,7 @@ kits:
462
442
  enhanced_element_used: false
463
443
  - name: toggle
464
444
  platforms: *1
465
- description: Physical switch that allows users to turn things on or off. Used
466
- for applying system states, presenting binary options and activating a state.
445
+ description: On/off switch for settings, feature flags, or any binary choice in a form.
467
446
  status: stable
468
447
  icons_used: false
469
448
  react_rendered: false
@@ -477,8 +456,7 @@ kits:
477
456
  enhanced_element_used: false
478
457
  - name: form
479
458
  platforms: *4
480
- description: The form kit provides consumers with a convenient, consistently styled
481
- <form> wrapper.
459
+ description: The Form component provides consumers with a convenient, consistently styled <form> wrapper.
482
460
  status: stable
483
461
  icons_used: false
484
462
  react_rendered: false
@@ -509,8 +487,7 @@ kits:
509
487
  enhanced_element_used: false
510
488
  - name: text_input
511
489
  platforms: *1
512
- description: Area where user can enter small amount of text. Commonly used in
513
- forms.
490
+ description: Area where user can enter small amount of text. Commonly used in forms.
514
491
  status: stable
515
492
  icons_used: true
516
493
  react_rendered: false
@@ -519,9 +496,8 @@ kits:
519
496
  platforms: *1
520
497
  description: Full-featured text editor with formatting options.
521
498
  status: stable
522
- platforms_status: { rails: deprecated }
523
499
  icons_used: true
524
- react_rendered: true
500
+ react_rendered: false
525
501
  enhanced_element_used: false
526
502
  - name: textarea
527
503
  platforms: *1
@@ -533,8 +509,7 @@ kits:
533
509
  enhanced_element_used: true
534
510
  - name: typeahead
535
511
  platforms: *1
536
- description: Typeahead is auto suggestion or completion based on what the user
537
- is starting to type, gets refined as the user types more.
512
+ description: Autocomplete options that narrow as users type, cutting errors and extra typing.
538
513
  status: stable
539
514
  icons_used: true
540
515
  react_rendered: true
@@ -544,9 +519,7 @@ kits:
544
519
  components:
545
520
  - name: date_picker
546
521
  platforms: *1
547
- description: Playbook's date picker is built using flatpickr, a vanilla js library.
548
- Common date picker use cases and features have been adapted into simple prop
549
- based configuration detailed in the docs below.
522
+ description: Calendar date field powered by flatpickr; props cover common cases without custom JS.
550
523
  status: stable
551
524
  icons_used: true
552
525
  react_rendered: false
@@ -564,24 +537,21 @@ kits:
564
537
  - Dropdown.Option
565
538
  - name: multi_level_select
566
539
  platforms: *1
567
- description: The MultiLevelSelect kit renders a multi leveled select dropdown
568
- based on data from the user.
540
+ description: The MultiLevelSelect component renders a multi leveled select dropdown based on data from the User.
569
541
  status: stable
570
542
  icons_used: true
571
543
  react_rendered: true
572
544
  enhanced_element_used: false
573
545
  - name: select
574
546
  platforms: *1
575
- description: Select displays multiple options for a user to pick from in a dropdown
576
- menu. User selects one option.
547
+ description: Dropdown where the user picks one option from a list, styled like other form fields.
577
548
  status: stable
578
549
  icons_used: true
579
550
  react_rendered: false
580
551
  enhanced_element_used: true
581
552
  - name: selectable_card
582
553
  platforms: *1
583
- description: Cards for information/content that can be selected. There is design
584
- for unselected and selected states. Typically used as a form element.
554
+ description: Selectable card with clear selected and unselected visuals; common for plans or tiers.
585
555
  status: stable
586
556
  icons_used: true
587
557
  react_rendered: false
@@ -635,16 +605,14 @@ kits:
635
605
  components:
636
606
  - name: icon
637
607
  platforms: *1
638
- description: An icon is a graphic symbol that represents an object (ie a file)
639
- or a function. They can be used to give the user feedback.
608
+ description: Graphic symbol for an object, action, or status; add nearby text if meaning could be vague.
640
609
  status: stable
641
610
  icons_used: true
642
611
  react_rendered: false
643
612
  enhanced_element_used: false
644
613
  - name: icon_circle
645
614
  platforms: *1
646
- description: Similar to Icon, Icon Circle is a graphical symbol within a circle
647
- used to visually indicate an object or function.
615
+ description: Icon centered in a circle for emphasis, touch targets, or consistent visual weight.
648
616
  status: stable
649
617
  icons_used: true
650
618
  react_rendered: false
@@ -658,16 +626,14 @@ kits:
658
626
  enhanced_element_used: false
659
627
  - name: icon_value
660
628
  platforms: *1
661
- description: Icon Value leverages our icon kit, to display a value of some sort
662
- in the interface. Typically, this includes a numerical value.
629
+ description: Icon paired with a value—often a number—for compact KPIs, stats, or dense summaries.
663
630
  status: stable
664
631
  icons_used: true
665
632
  react_rendered: false
666
633
  enhanced_element_used: false
667
634
  - name: user_badge
668
635
  platforms: *1
669
- description: This kit was created to display employee icons related to a Nitro
670
- user. Currently there is the PVI logo and the Million Dollar Rep Icon.
636
+ description: Small badge on an avatar for programs or achievements so standout users read quickly.
671
637
  status: stable
672
638
  icons_used: false
673
639
  react_rendered: false
@@ -681,17 +647,14 @@ kits:
681
647
  enhanced_element_used: false
682
648
  - name: lightbox
683
649
  platforms: *2
684
- description: The Lightbox kit is a popup window overlay that will appear on top
685
- of your webpage and cover the entirety of the screen.
650
+ description: Fullscreen dimmed overlay for enlarged images or media that covers the viewport.
686
651
  status: stable
687
652
  icons_used: false
688
653
  react_rendered: false
689
654
  enhanced_element_used: false
690
655
  - name: star_rating
691
656
  platforms: *1
692
- description: A component to view other people’s opinions and experiences. Use
693
- when you want to show evaluation or a quick quantitative rating. Most effective
694
- when paired with reviews.
657
+ description: Star rating for opinions or scores; pair with reviews or labels for real meaning.
695
658
  status: stable
696
659
  icons_used: true
697
660
  react_rendered: false
@@ -701,8 +664,7 @@ kits:
701
664
  components:
702
665
  - name: flex
703
666
  platforms: *1
704
- description: This kit is used to build most of the complex interfaces. The Flex
705
- Kit is used the same way flex box is used.
667
+ description: Flexbox layout helper for responsive rows, columns, spacing, and alignment in UIs.
706
668
  status: stable
707
669
  icons_used: false
708
670
  react_rendered: false
@@ -726,16 +688,14 @@ kits:
726
688
  - Card.Body
727
689
  - name: section_separator
728
690
  platforms: *1
729
- description: Section separator is a divider line that compartmentalizes content,
730
- typically used on cards or white backgrounds.
691
+ description: A divider line that visually separates and organizes content into distinct sections.
731
692
  status: stable
732
693
  icons_used: false
733
694
  react_rendered: false
734
695
  enhanced_element_used: false
735
696
  - name: background
736
697
  platforms: *1
737
- description: The background kit is used for adding a background to a page or to
738
- any container.
698
+ description: The Background component is used for adding a background to a page or to any container.
739
699
  status: stable
740
700
  icons_used: false
741
701
  react_rendered: false
@@ -779,8 +739,7 @@ kits:
779
739
  enhanced_element_used: false
780
740
  - name: message
781
741
  platforms: *1
782
- description: This multi kit consist of a an avatar, a status, a caption, a body
783
- text, and a time stamp. All which can be optional.
742
+ description: Conversation-style block with optional avatar, status, caption, body, and timestamp.
784
743
  status: stable
785
744
  icons_used: false
786
745
  react_rendered: false
@@ -797,9 +756,7 @@ kits:
797
756
  enhanced_element_used: false
798
757
  - name: nav
799
758
  platforms: *1
800
- description: The nav is a grouped set of links that take the user to another page,
801
- or tab through parts of a page. It comes in horizontal or vertical with several
802
- different variants.
759
+ description: Grouped navigation links for pages or in-page sections; horizontal or vertical variants.
803
760
  status: stable
804
761
  icons_used: true
805
762
  react_rendered: false
@@ -822,29 +779,25 @@ kits:
822
779
  enhanced_element_used: false
823
780
  - name: loading_inline
824
781
  platforms: *1
825
- description: The loading kit is used to indicate to users that a page is still
826
- loading, or an action is still being processed.
782
+ description: Inline spinner while content loads or a background request is still processing.
827
783
  status: stable
828
784
  icons_used: true
829
785
  react_rendered: false
830
786
  enhanced_element_used: false
831
787
  - name: progress_pills
832
788
  platforms: *1
833
- description: Progress pills indicate a specific point in time of a series of sequential
834
- steps. They are used to track progress of something over time.
789
+ description: Step chips along a sequence—shows completed, current, and upcoming stages over time.
835
790
  status: stable
836
791
  icons_used: false
837
792
  react_rendered: false
838
793
  enhanced_element_used: false
839
794
  - name: progress_simple
840
795
  platforms: *1
841
- description: Displays the current progress of an operation flow. User understanding
842
- increases when paired with labels or numbers.
796
+ description: Linear progress for an operation; add labels or percentages so progress is obvious.
843
797
  status: stable
844
798
  - name: progress_step
845
799
  platforms: *1
846
- description: 'Progress step kit is used to show the progress of a process. There
847
- are three types of steps in this kit: completed, active, and inactive.'
800
+ description: Wizard steps marked completed, active, or inactive for multi-phase flows.
848
801
  status: stable
849
802
  icons_used: true
850
803
  react_rendered: false
@@ -853,8 +806,7 @@ kits:
853
806
  - ProgressStep.Item
854
807
  - name: timeline
855
808
  platforms: *1
856
- description: The timeline kit can use two different line styles in the same timeline
857
- - solid and dotted line styles.
809
+ description: A timeline with solid or dotted connectors to show sequences, phases, or gaps in time.
858
810
  status: stable
859
811
  icons_used: true
860
812
  react_rendered: false
@@ -908,18 +860,14 @@ kits:
908
860
  components:
909
861
  - name: body
910
862
  platforms: *1
911
- description: Default text style for paragraphs. Follow hiearchy when using "light"
912
- or "lighter" variants to deemphasize text — default style should be followed
913
- by "light" followed by "lighter".
863
+ description: Default paragraph style. Step to light, then lighter, only to de-emphasize supporting lines.
914
864
  status: stable
915
865
  icons_used: false
916
866
  react_rendered: false
917
867
  enhanced_element_used: false
918
868
  - name: caption
919
869
  platforms: *1
920
- description: Use to provide supplementary context. Default size is best when providing
921
- supplementary context to a small section (i.e. label for a text input, label
922
- for a paragraph). Use large caption when supplementary text covers more content.
870
+ description: Supplementary text beside inputs or blocks; use large caption when the note spans more content.
923
871
  status: stable
924
872
  icons_used: false
925
873
  react_rendered: false
@@ -933,9 +881,7 @@ kits:
933
881
  enhanced_element_used: false
934
882
  - name: title
935
883
  platforms: *1
936
- description: Typically used as headers. Follow semantic hierarchy Title 1s should
937
- be followed by Title 2s followed by Title 3s and so on, without skipping any
938
- levels.
884
+ description: Heading levels Title 1-4; keep semantic order and do not skip levels on a page.
939
885
  status: stable
940
886
  icons_used: false
941
887
  react_rendered: false
@@ -952,36 +898,29 @@ kits:
952
898
  components:
953
899
  - name: avatar
954
900
  platforms: *3
955
- description: Avatar displays a user's picture. This helps aid easy recognition
956
- of the user. This kit is normally not used by itself, but rather used within
957
- other kits. The only time Avatar should be used instead of the User kit is when
958
- you are not going to display the user's name.
901
+ description: User photo for recognition. Prefer User when showing a name; Avatar alone if names are hidden.
959
902
  status: stable
960
903
  icons_used: true
961
904
  react_rendered: false
962
905
  enhanced_element_used: false
963
906
  - name: multiple_users
964
907
  platforms: *1
965
- description: The multiple users kit is used to show that more than one user is
966
- associated to an action or item.
908
+ description: Shows several people tied to one record when a single avatar would hide shared ownership.
967
909
  status: stable
968
910
  icons_used: false
969
911
  react_rendered: false
970
912
  enhanced_element_used: false
971
913
  - name: multiple_users_stacked
972
914
  platforms: *1
973
- description: Multiple users stacked is used in tight spaces, where we need to
974
- indicate that multiple users are associated to a specific action or item.
915
+ description: Overlapping avatars in tight spaces to hint many collaborators without naming each.
975
916
  status: stable
976
917
  icons_used: false
977
918
  react_rendered: false
978
919
  enhanced_element_used: false
979
920
  - name: user
980
921
  platforms: *1
981
- description: This kit was created for having a systematic way of displaying users
982
- with avatar, titles, name and territory. This is a versatile kit with features
983
- than can be added to display more info.
922
+ description: Avatar with name, title, territory, and optional extras—the standard rich user row.
984
923
  status: stable
985
924
  icons_used: false
986
925
  react_rendered: false
987
- enhanced_element_used: false
926
+ enhanced_element_used: false