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
@@ -3,92 +3,94 @@ import React from "react"
3
3
  import Table from "../_table"
4
4
 
5
5
  const TableSticky = (props) => (
6
- <Table
7
- sticky
8
- {...props}
9
- >
10
- <thead>
11
- <tr>
12
- <th>{'Column 1'}</th>
13
- <th>{'Column 2'}</th>
14
- <th>{'Column 3'}</th>
15
- <th>{'Column 4'}</th>
16
- <th>{'Column 5'}</th>
17
- </tr>
18
- </thead>
19
- <tbody>
20
- <tr>
21
- <td>{'Value 1'}</td>
22
- <td>{'Value 2'}</td>
23
- <td>{'Value 3'}</td>
24
- <td>{'Value 4'}</td>
25
- <td>{'Value 5'}</td>
26
- </tr>
27
- <tr>
28
- <td>{'Value 1'}</td>
29
- <td>{'Value 2'}</td>
30
- <td>{'Value 3'}</td>
31
- <td>{'Value 4'}</td>
32
- <td>{'Value 5'}</td>
33
- </tr>
34
- <tr>
35
- <td>{'Value 1'}</td>
36
- <td>{'Value 2'}</td>
37
- <td>{'Value 3'}</td>
38
- <td>{'Value 4'}</td>
39
- <td>{'Value 5'}</td>
40
- </tr>
41
- <tr>
42
- <td>{'Value 1'}</td>
43
- <td>{'Value 2'}</td>
44
- <td>{'Value 3'}</td>
45
- <td>{'Value 4'}</td>
46
- <td>{'Value 5'}</td>
47
- </tr>
48
- <tr>
49
- <td>{'Value 1'}</td>
50
- <td>{'Value 2'}</td>
51
- <td>{'Value 3'}</td>
52
- <td>{'Value 4'}</td>
53
- <td>{'Value 5'}</td>
54
- </tr>
55
- <tr>
56
- <td>{'Value 1'}</td>
57
- <td>{'Value 2'}</td>
58
- <td>{'Value 3'}</td>
59
- <td>{'Value 4'}</td>
60
- <td>{'Value 5'}</td>
61
- </tr>
62
- <tr>
63
- <td>{'Value 1'}</td>
64
- <td>{'Value 2'}</td>
65
- <td>{'Value 3'}</td>
66
- <td>{'Value 4'}</td>
67
- <td>{'Value 5'}</td>
68
- </tr>
69
- <tr>
70
- <td>{'Value 1'}</td>
71
- <td>{'Value 2'}</td>
72
- <td>{'Value 3'}</td>
73
- <td>{'Value 4'}</td>
74
- <td>{'Value 5'}</td>
75
- </tr>
76
- <tr>
77
- <td>{'Value 1'}</td>
78
- <td>{'Value 2'}</td>
79
- <td>{'Value 3'}</td>
80
- <td>{'Value 4'}</td>
81
- <td>{'Value 5'}</td>
82
- </tr>
83
- <tr>
84
- <td>{'Value 1'}</td>
85
- <td>{'Value 2'}</td>
86
- <td>{'Value 3'}</td>
87
- <td>{'Value 4'}</td>
88
- <td>{'Value 5'}</td>
89
- </tr>
90
- </tbody>
91
- </Table>
6
+ <div style={{ maxHeight: "320px", overflowY: "auto" }}>
7
+ <Table
8
+ sticky
9
+ {...props}
10
+ >
11
+ <thead>
12
+ <tr>
13
+ <th>{'Column 1'}</th>
14
+ <th>{'Column 2'}</th>
15
+ <th>{'Column 3'}</th>
16
+ <th>{'Column 4'}</th>
17
+ <th>{'Column 5'}</th>
18
+ </tr>
19
+ </thead>
20
+ <tbody>
21
+ <tr>
22
+ <td>{'Value 1'}</td>
23
+ <td>{'Value 2'}</td>
24
+ <td>{'Value 3'}</td>
25
+ <td>{'Value 4'}</td>
26
+ <td>{'Value 5'}</td>
27
+ </tr>
28
+ <tr>
29
+ <td>{'Value 1'}</td>
30
+ <td>{'Value 2'}</td>
31
+ <td>{'Value 3'}</td>
32
+ <td>{'Value 4'}</td>
33
+ <td>{'Value 5'}</td>
34
+ </tr>
35
+ <tr>
36
+ <td>{'Value 1'}</td>
37
+ <td>{'Value 2'}</td>
38
+ <td>{'Value 3'}</td>
39
+ <td>{'Value 4'}</td>
40
+ <td>{'Value 5'}</td>
41
+ </tr>
42
+ <tr>
43
+ <td>{'Value 1'}</td>
44
+ <td>{'Value 2'}</td>
45
+ <td>{'Value 3'}</td>
46
+ <td>{'Value 4'}</td>
47
+ <td>{'Value 5'}</td>
48
+ </tr>
49
+ <tr>
50
+ <td>{'Value 1'}</td>
51
+ <td>{'Value 2'}</td>
52
+ <td>{'Value 3'}</td>
53
+ <td>{'Value 4'}</td>
54
+ <td>{'Value 5'}</td>
55
+ </tr>
56
+ <tr>
57
+ <td>{'Value 1'}</td>
58
+ <td>{'Value 2'}</td>
59
+ <td>{'Value 3'}</td>
60
+ <td>{'Value 4'}</td>
61
+ <td>{'Value 5'}</td>
62
+ </tr>
63
+ <tr>
64
+ <td>{'Value 1'}</td>
65
+ <td>{'Value 2'}</td>
66
+ <td>{'Value 3'}</td>
67
+ <td>{'Value 4'}</td>
68
+ <td>{'Value 5'}</td>
69
+ </tr>
70
+ <tr>
71
+ <td>{'Value 1'}</td>
72
+ <td>{'Value 2'}</td>
73
+ <td>{'Value 3'}</td>
74
+ <td>{'Value 4'}</td>
75
+ <td>{'Value 5'}</td>
76
+ </tr>
77
+ <tr>
78
+ <td>{'Value 1'}</td>
79
+ <td>{'Value 2'}</td>
80
+ <td>{'Value 3'}</td>
81
+ <td>{'Value 4'}</td>
82
+ <td>{'Value 5'}</td>
83
+ </tr>
84
+ <tr>
85
+ <td>{'Value 1'}</td>
86
+ <td>{'Value 2'}</td>
87
+ <td>{'Value 3'}</td>
88
+ <td>{'Value 4'}</td>
89
+ <td>{'Value 5'}</td>
90
+ </tr>
91
+ </tbody>
92
+ </Table>
93
+ </div>
92
94
  )
93
95
 
94
96
  export default TableSticky
@@ -2,7 +2,9 @@ React: Use `sticky` on a table to allow the table header to be fixed in place wh
2
2
 
3
3
  Rails: Pass `sticky: true` to props.
4
4
 
5
- If the table header is not sticking in the right place you will need to pass a inline `top` style to the `thead`.
5
+ The live example uses a scroll container so sticky behavior is visible in the docs. Scroll inside the preview to see it.
6
+
7
+ If the table header is not sticking in the right place you will need to pass an inline `top` style to the `thead`. This is often needed when a parent adds padding above the table.
6
8
  React Example: `<thead style={{ top: "-16px" }}>`
7
9
  Rails Example: `<thead style="top: -16px">`
8
10
 
@@ -36,4 +36,4 @@ When `filter` is present, `filter_content` and `filter_props` are ignored.
36
36
  <% end %>
37
37
  ```
38
38
 
39
- For Nitro apps that use a shared search/filter pattern, reference the example on Alpha for implementation details.
39
+ For Nitro apps that use a shared search/filter pattern, reference the [example on Alpha](https://github.com/powerhome/nitro-web/pull/56859/changes/aa2afcdc97d39d74beb65cf53eb3bb2517eb2181) for implementation details.
@@ -100,6 +100,29 @@
100
100
  color: $input_text_disabled_dark;
101
101
  }
102
102
  }
103
+
104
+ .text_input_wrapper_add_on {
105
+ &:has(input:disabled),
106
+ &:has(.text_input:disabled) {
107
+ .add-on-card,
108
+ .add-on-card-dark {
109
+ border-color: $input_border_disabled_dark;
110
+ background-color: $input_background_disabled_dark;
111
+ }
112
+
113
+ .add-on-icon {
114
+ color: $input_text_disabled_dark;
115
+ }
116
+
117
+ .text_input:focus ~ .add-on-card-dark,
118
+ input:focus ~ .add-on-card-dark {
119
+ background-color: $input_background_disabled_dark;
120
+ border-color: $input_border_disabled_dark;
121
+ border-width: 1px;
122
+ }
123
+ }
124
+ }
125
+
103
126
  &.error {
104
127
  .text_input_wrapper {
105
128
  // The `:not` here prevents error styling from affecting the country search input in the Phone Number Input Kit.
@@ -192,6 +215,20 @@
192
215
  }
193
216
  }
194
217
  }
218
+ &:not(.dark) .text_input_wrapper_add_on {
219
+ &:has(input:disabled),
220
+ &:has(.text_input:disabled) {
221
+ .add-on-card {
222
+ border-color: $input_border_disabled;
223
+ background-color: $input_background_disabled;
224
+ }
225
+
226
+ .add-on-icon {
227
+ color: $input_text_disabled;
228
+ }
229
+ }
230
+ }
231
+
195
232
  &.inline {
196
233
  .text_input_wrapper input::placeholder,
197
234
  .text_input_wrapper .text_input .placeholder {
@@ -4,11 +4,12 @@
4
4
  "defaults": {
5
5
  "bold": true,
6
6
  "size": 3,
7
- "tag": "h3"
7
+ "tag": "h3",
8
+ "text": "Title"
8
9
  },
9
10
  "children": {
10
11
  "editable": true,
11
- "default": "Section heading",
12
+ "default": "Title",
12
13
  "hideWhenPropSet": [
13
14
  "text"
14
15
  ]
@@ -34,47 +35,95 @@
34
35
  ],
35
36
  "presets": [
36
37
  {
37
- "name": "Page title",
38
+ "name": "Default",
39
+ "props": {
40
+ "size": 3,
41
+ "tag": "h3",
42
+ "text": "Section heading"
43
+ }
44
+ },
45
+ {
46
+ "name": "Title 1",
38
47
  "props": {
39
48
  "size": 1,
40
- "tag": "h1"
41
- },
42
- "children": "Customer insights dashboard"
49
+ "tag": "h1",
50
+ "text": "Customer insights dashboard"
51
+ }
43
52
  },
44
53
  {
45
- "name": "Section",
54
+ "name": "Title 4",
46
55
  "props": {
47
- "size": 3,
48
- "tag": "h3"
49
- },
50
- "children": "Recent activity"
56
+ "size": 4,
57
+ "text": "Title 4"
58
+ }
51
59
  },
52
60
  {
53
- "name": "Subtitle",
61
+ "name": "Subtle title",
54
62
  "props": {
55
63
  "size": 4,
56
64
  "bold": false,
57
- "tag": "h4"
58
- },
59
- "children": "Last updated 2 hours ago"
65
+ "tag": "h4",
66
+ "text": "Last updated 2 hours ago"
67
+ }
60
68
  },
61
69
  {
62
- "name": "Success",
70
+ "name": "Success state",
63
71
  "props": {
64
72
  "color": "success",
65
- "size": 3
66
- },
67
- "children": "Payment confirmed"
73
+ "size": 3,
74
+ "text": "Payment confirmed"
75
+ }
68
76
  },
69
77
  {
70
78
  "name": "Display size",
71
79
  "props": {
72
80
  "displaySize": "lg",
73
- "tag": "h2"
74
- },
75
- "children": "Hero headline"
81
+ "tag": "h1",
82
+ "text": "Hero headline"
83
+ }
84
+ },
85
+ {
86
+ "name": "Link title",
87
+ "props": {
88
+ "variant": "link",
89
+ "color": "link",
90
+ "size": 3,
91
+ "tag": "h3",
92
+ "text": "View all invoices"
93
+ }
94
+ },
95
+ {
96
+ "name": "Light weight",
97
+ "props": {
98
+ "bold": false,
99
+ "size": 2,
100
+ "tag": "h2",
101
+ "text": "Lightweight heading"
102
+ }
76
103
  }
77
104
  ],
78
105
  "conditionals": {},
79
- "hints": {}
106
+ "hints": {
107
+ "display_size_info": {
108
+ "when": {
109
+ "displaySize": "lg"
110
+ },
111
+ "message": "displaySize gives you oversized display typography while the tag still controls document semantics.",
112
+ "type": "info"
113
+ },
114
+ "link_variant_info": {
115
+ "when": {
116
+ "variant": "link"
117
+ },
118
+ "message": "variant=\"link\" styles Title like an interactive heading. Use tag to keep the right semantic level.",
119
+ "type": "info"
120
+ },
121
+ "light_weight_info": {
122
+ "when": {
123
+ "bold": false
124
+ },
125
+ "message": "Turn bold off for lighter subheadings, timestamps, and supporting section labels.",
126
+ "type": "info"
127
+ }
128
+ }
80
129
  }
@@ -1,6 +1,12 @@
1
1
  {
2
2
  "children": {
3
- "default": "Section heading"
3
+ "default": "Title"
4
+ },
5
+ "defaults": {
6
+ "bold": true,
7
+ "size": 3,
8
+ "tag": "h3",
9
+ "text": "Title"
4
10
  },
5
11
  "groups": [
6
12
  {
@@ -14,31 +20,89 @@
14
20
  ],
15
21
  "presets": [
16
22
  {
17
- "name": "Page title",
18
- "props": { "size": 1, "tag": "h1" },
19
- "children": "Customer insights dashboard"
23
+ "name": "Default",
24
+ "props": {
25
+ "size": 3,
26
+ "tag": "h3",
27
+ "text": "Section heading"
28
+ }
29
+ },
30
+ {
31
+ "name": "Title 1",
32
+ "props": {
33
+ "size": 1,
34
+ "tag": "h1",
35
+ "text": "Customer insights dashboard"
36
+ }
20
37
  },
21
38
  {
22
- "name": "Section",
23
- "props": { "size": 3, "tag": "h3" },
24
- "children": "Recent activity"
39
+ "name": "Title 4",
40
+ "props": {
41
+ "size": 4,
42
+ "text": "Title 4"
43
+ }
25
44
  },
26
45
  {
27
- "name": "Subtitle",
28
- "props": { "size": 4, "bold": false, "tag": "h4" },
29
- "children": "Last updated 2 hours ago"
46
+ "name": "Subtle title",
47
+ "props": {
48
+ "size": 4,
49
+ "bold": false,
50
+ "tag": "h4",
51
+ "text": "Last updated 2 hours ago"
52
+ }
30
53
  },
31
54
  {
32
- "name": "Success",
33
- "props": { "color": "success", "size": 3 },
34
- "children": "Payment confirmed"
55
+ "name": "Success state",
56
+ "props": {
57
+ "color": "success",
58
+ "size": 3,
59
+ "text": "Payment confirmed"
60
+ }
35
61
  },
36
62
  {
37
63
  "name": "Display size",
38
- "props": { "displaySize": "lg", "tag": "h2" },
39
- "children": "Hero headline"
64
+ "props": {
65
+ "displaySize": "lg",
66
+ "tag": "h1",
67
+ "text": "Hero headline"
68
+ }
69
+ },
70
+ {
71
+ "name": "Link title",
72
+ "props": {
73
+ "variant": "link",
74
+ "color": "link",
75
+ "size": 3,
76
+ "tag": "h3",
77
+ "text": "View all invoices"
78
+ }
79
+ },
80
+ {
81
+ "name": "Light weight",
82
+ "props": {
83
+ "bold": false,
84
+ "size": 2,
85
+ "tag": "h2",
86
+ "text": "Lightweight heading"
87
+ }
40
88
  }
41
89
  ],
42
90
  "conditionals": {},
43
- "hints": {}
91
+ "hints": {
92
+ "display_size_info": {
93
+ "when": { "displaySize": "lg" },
94
+ "message": "displaySize gives you oversized display typography while the tag still controls document semantics.",
95
+ "type": "info"
96
+ },
97
+ "link_variant_info": {
98
+ "when": { "variant": "link" },
99
+ "message": "variant=\"link\" styles Title like an interactive heading. Use tag to keep the right semantic level.",
100
+ "type": "info"
101
+ },
102
+ "light_weight_info": {
103
+ "when": { "bold": false },
104
+ "message": "Turn bold off for lighter subheadings, timestamps, and supporting section labels.",
105
+ "type": "info"
106
+ }
107
+ }
44
108
  }