playbook_ui 13.22.0 → 13.24.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (70) hide show
  1. checksums.yaml +4 -4
  2. data/app/pb_kits/playbook/pb_advanced_table/Components/CustomCell.tsx +8 -4
  3. data/app/pb_kits/playbook/pb_advanced_table/_advanced_table.tsx +1 -0
  4. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_collapsible_trail.jsx +1 -1
  5. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_default.jsx +1 -1
  6. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_expanded_control.jsx +6 -1
  7. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_expanded_control.md +2 -0
  8. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_loading.jsx +1 -1
  9. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_sort.jsx +1 -1
  10. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_sort_control.jsx +1 -1
  11. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_subrow_headers.jsx +1 -1
  12. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_table_options.jsx +1 -1
  13. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_table_props.jsx +1 -1
  14. data/app/pb_kits/playbook/pb_advanced_table/docs/advanced_table_mock_data.json +278 -0
  15. data/app/pb_kits/playbook/pb_advanced_table/docs/example.yml +1 -1
  16. data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_default_date.html.erb +0 -7
  17. data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_default_date.jsx +0 -7
  18. data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_range.html.erb +7 -0
  19. data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_range.jsx +7 -0
  20. data/app/pb_kits/playbook/pb_date_picker/docs/example.yml +2 -2
  21. data/app/pb_kits/playbook/pb_dialog/dialog_footer.html.erb +1 -1
  22. data/app/pb_kits/playbook/pb_dialog/dialog_header.html.erb +2 -2
  23. data/app/pb_kits/playbook/pb_dialog/docs/_dialog_compound_components.html.erb +2 -0
  24. data/app/pb_kits/playbook/pb_form_group/_form_group.scss +34 -0
  25. data/app/pb_kits/playbook/pb_form_group/docs/_form_group_select.html.erb +17 -1
  26. data/app/pb_kits/playbook/pb_form_group/docs/_form_group_select.jsx +18 -2
  27. data/app/pb_kits/playbook/pb_icon_circle/_icon_circle.scss +14 -0
  28. data/app/pb_kits/playbook/pb_icon_circle/_icon_circle.tsx +1 -1
  29. data/app/pb_kits/playbook/pb_icon_circle/docs/_icon_circle_sizes.html.erb +5 -0
  30. data/app/pb_kits/playbook/pb_icon_circle/docs/_icon_circle_sizes.jsx +6 -0
  31. data/app/pb_kits/playbook/pb_icon_circle/icon_circle.rb +1 -1
  32. data/app/pb_kits/playbook/pb_icon_circle/icon_circle.test.js +1 -0
  33. data/app/pb_kits/playbook/pb_icon_stat_value/icon_stat_value.rb +0 -2
  34. data/app/pb_kits/playbook/pb_list/list.rb +0 -2
  35. data/app/pb_kits/playbook/pb_multi_level_select/docs/_multi_level_select_selected_ids.md +2 -2
  36. data/app/pb_kits/playbook/pb_multi_level_select/docs/{_multi_level_select_selected_ids.jsx → _multi_level_select_selected_ids_react.jsx} +2 -2
  37. data/app/pb_kits/playbook/pb_multi_level_select/docs/_multi_level_select_selected_ids_react.md +5 -0
  38. data/app/pb_kits/playbook/pb_multi_level_select/docs/example.yml +1 -1
  39. data/app/pb_kits/playbook/pb_multi_level_select/docs/index.js +1 -1
  40. data/app/pb_kits/playbook/pb_online_status/_online_status.scss +1 -10
  41. data/app/pb_kits/playbook/pb_online_status/_online_status.tsx +1 -1
  42. data/app/pb_kits/playbook/pb_online_status/_online_status_mixins.scss +7 -13
  43. data/app/pb_kits/playbook/pb_online_status/docs/_online_status_default.html.erb +6 -9
  44. data/app/pb_kits/playbook/pb_online_status/docs/_online_status_default.jsx +18 -7
  45. data/app/pb_kits/playbook/pb_online_status/online_status.rb +1 -1
  46. data/app/pb_kits/playbook/pb_pagination/docs/_pagination_default.html.erb +2 -1
  47. data/app/pb_kits/playbook/pb_phone_number_input/docs/_phone_number_input_validation.html.erb +2 -2
  48. data/app/pb_kits/playbook/pb_toggle/_toggle.scss +39 -6
  49. data/app/pb_kits/playbook/pb_toggle/_toggle.tsx +17 -12
  50. data/app/pb_kits/playbook/pb_toggle/docs/_toggle_disabled.html.erb +11 -0
  51. data/app/pb_kits/playbook/pb_toggle/docs/_toggle_disabled.jsx +21 -0
  52. data/app/pb_kits/playbook/pb_toggle/docs/example.yml +3 -1
  53. data/app/pb_kits/playbook/pb_toggle/docs/index.js +1 -0
  54. data/app/pb_kits/playbook/pb_toggle/toggle.rb +2 -1
  55. data/app/pb_kits/playbook/pb_toggle/toggle.test.js +7 -0
  56. data/app/pb_kits/playbook/utilities/_positioning.scss +23 -10
  57. data/app/pb_kits/playbook/utilities/globalProps.ts +26 -8
  58. data/dist/menu.yml +4 -0
  59. data/dist/playbook-rails.js +7 -7
  60. data/lib/playbook/bottom.rb +6 -3
  61. data/lib/playbook/kit_base.rb +1 -1
  62. data/lib/playbook/left.rb +6 -3
  63. data/lib/playbook/pb_doc_helper.rb +1 -1
  64. data/lib/playbook/position_props_css.rb +17 -0
  65. data/lib/playbook/props/percentage.rb +2 -2
  66. data/lib/playbook/right.rb +6 -3
  67. data/lib/playbook/top.rb +6 -3
  68. data/lib/playbook/version.rb +2 -2
  69. metadata +14 -38
  70. data/app/pb_kits/playbook/pb_advanced_table/docs/_mock_data.js +0 -278
@@ -1,7 +1,11 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ require "playbook/position_props_css"
4
+
3
5
  module Playbook
4
6
  module Bottom
7
+ include Playbook::PositionPropsCss
8
+
5
9
  def self.included(base)
6
10
  base.prop :bottom
7
11
  end
@@ -24,9 +28,8 @@ module Playbook
24
28
 
25
29
  selected_props.map do |k|
26
30
  value = send(k)
27
- return nil unless bottom_values.include? value
28
-
29
- "bottom_#{value}"
31
+ css = positioning_css("bottom", value) if bottom.present?
32
+ css
30
33
  end.compact.join(" ")
31
34
  end
32
35
  end
@@ -88,7 +88,7 @@ module Playbook
88
88
  {
89
89
  data: data,
90
90
  aria: aria,
91
- }.transform_keys { |key| key.to_s.gsub("_", "-") }
91
+ }.transform_keys { |key| key.to_s.tr("_", "-") }
92
92
  end
93
93
  end
94
94
  end
data/lib/playbook/left.rb CHANGED
@@ -1,7 +1,11 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ require "playbook/position_props_css"
4
+
3
5
  module Playbook
4
6
  module Left
7
+ include Playbook::PositionPropsCss
8
+
5
9
  def self.included(base)
6
10
  base.prop :left
7
11
  end
@@ -24,9 +28,8 @@ module Playbook
24
28
 
25
29
  selected_props.map do |k|
26
30
  value = send(k)
27
- return nil unless left_values.include? value
28
-
29
- "left_#{value}"
31
+ css = positioning_css("left", value) if left.present?
32
+ css
30
33
  end.compact.join(" ")
31
34
  end
32
35
  end
@@ -73,7 +73,7 @@ module Playbook
73
73
  #{pb_kit(kit: kit, type: type, show_code: code, limit_examples: limit_examples, dark_mode: dark_mode)}</div>")
74
74
  title + ui
75
75
  end
76
- # rubocop:enable Style/OptionalBooleanParameter
76
+ # rubocop:enable Style/OptionalBooleanParameter
77
77
 
78
78
  private
79
79
 
@@ -0,0 +1,17 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Playbook
4
+ module PositionPropsCss
5
+ POSITION_VALUES = %w[0 xxs xs sm md lg xl auto initial inherit].freeze
6
+
7
+ def positioning_css(property, value)
8
+ if value.is_a?(String)
9
+ "#{property}_#{value}"
10
+ elsif value.is_a?(Hash) && value.key?(:inset)
11
+ "#{property}_#{value[:value]}_inset"
12
+ elsif value.is_a?(Hash)
13
+ "#{property}_#{value[:value]}"
14
+ end
15
+ end
16
+ end
17
+ end
@@ -10,9 +10,9 @@ module Playbook
10
10
  private
11
11
 
12
12
  def numeric_in_range?(value)
13
- (value.is_a?(::Numeric) &&
13
+ value.is_a?(::Numeric) &&
14
14
  value <= 100 &&
15
- value >= 0)
15
+ value >= 0
16
16
  end
17
17
  end
18
18
  end
@@ -1,7 +1,11 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ require "playbook/position_props_css"
4
+
3
5
  module Playbook
4
6
  module Right
7
+ include Playbook::PositionPropsCss
8
+
5
9
  def self.included(base)
6
10
  base.prop :right
7
11
  end
@@ -24,9 +28,8 @@ module Playbook
24
28
 
25
29
  selected_props.map do |k|
26
30
  value = send(k)
27
- return nil unless right_values.include? value
28
-
29
- "right_#{value}"
31
+ css = positioning_css("right", value) if right.present?
32
+ css
30
33
  end.compact.join(" ")
31
34
  end
32
35
  end
data/lib/playbook/top.rb CHANGED
@@ -1,7 +1,11 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ require "playbook/position_props_css"
4
+
3
5
  module Playbook
4
6
  module Top
7
+ include Playbook::PositionPropsCss
8
+
5
9
  def self.included(base)
6
10
  base.prop :top
7
11
  end
@@ -24,9 +28,8 @@ module Playbook
24
28
 
25
29
  selected_props.map do |k|
26
30
  value = send(k)
27
- return nil unless top_values.include? value
28
-
29
- "top_#{value}"
31
+ css = positioning_css("top", value) if top.present?
32
+ css
30
33
  end.compact.join(" ")
31
34
  end
32
35
  end
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Playbook
4
- PREVIOUS_VERSION = "13.21.0"
5
- VERSION = "13.22.0"
4
+ PREVIOUS_VERSION = "13.23.0"
5
+ VERSION = "13.24.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: 13.22.0
4
+ version: 13.24.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: 2024-03-27 00:00:00.000000000 Z
12
+ date: 2024-04-05 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: actionpack
@@ -99,14 +99,14 @@ dependencies:
99
99
  name: byebug
100
100
  requirement: !ruby/object:Gem::Requirement
101
101
  requirements:
102
- - - '='
102
+ - - ">="
103
103
  - !ruby/object:Gem::Version
104
104
  version: 11.0.0
105
105
  type: :development
106
106
  prerelease: false
107
107
  version_requirements: !ruby/object:Gem::Requirement
108
108
  requirements:
109
- - - '='
109
+ - - ">="
110
110
  - !ruby/object:Gem::Version
111
111
  version: 11.0.0
112
112
  - !ruby/object:Gem::Dependency
@@ -175,16 +175,16 @@ dependencies:
175
175
  name: rubocop
176
176
  requirement: !ruby/object:Gem::Requirement
177
177
  requirements:
178
- - - '='
178
+ - - ">="
179
179
  - !ruby/object:Gem::Version
180
- version: 1.23.0
180
+ version: '0'
181
181
  type: :development
182
182
  prerelease: false
183
183
  version_requirements: !ruby/object:Gem::Requirement
184
184
  requirements:
185
- - - '='
185
+ - - ">="
186
186
  - !ruby/object:Gem::Version
187
- version: 1.23.0
187
+ version: '0'
188
188
  - !ruby/object:Gem::Dependency
189
189
  name: rubocop-performance
190
190
  requirement: !ruby/object:Gem::Requirement
@@ -199,34 +199,6 @@ dependencies:
199
199
  - - "~>"
200
200
  - !ruby/object:Gem::Version
201
201
  version: 1.11.5
202
- - !ruby/object:Gem::Dependency
203
- name: spring
204
- requirement: !ruby/object:Gem::Requirement
205
- requirements:
206
- - - '='
207
- - !ruby/object:Gem::Version
208
- version: 2.0.2
209
- type: :development
210
- prerelease: false
211
- version_requirements: !ruby/object:Gem::Requirement
212
- requirements:
213
- - - '='
214
- - !ruby/object:Gem::Version
215
- version: 2.0.2
216
- - !ruby/object:Gem::Dependency
217
- name: spring-watcher-listen
218
- requirement: !ruby/object:Gem::Requirement
219
- requirements:
220
- - - '='
221
- - !ruby/object:Gem::Version
222
- version: 2.0.1
223
- type: :development
224
- prerelease: false
225
- version_requirements: !ruby/object:Gem::Requirement
226
- requirements:
227
- - - '='
228
- - !ruby/object:Gem::Version
229
- version: 2.0.1
230
202
  - !ruby/object:Gem::Dependency
231
203
  name: tzinfo-data
232
204
  requirement: !ruby/object:Gem::Requirement
@@ -310,8 +282,8 @@ files:
310
282
  - app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_table_props.jsx
311
283
  - app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_table_props.md
312
284
  - app/pb_kits/playbook/pb_advanced_table/docs/_description.md
313
- - app/pb_kits/playbook/pb_advanced_table/docs/_mock_data.js
314
285
  - app/pb_kits/playbook/pb_advanced_table/docs/_mock_data_inline_loading.js
286
+ - app/pb_kits/playbook/pb_advanced_table/docs/advanced_table_mock_data.json
315
287
  - app/pb_kits/playbook/pb_advanced_table/docs/example.yml
316
288
  - app/pb_kits/playbook/pb_advanced_table/docs/index.js
317
289
  - app/pb_kits/playbook/pb_advanced_table/scss_partials/_chrome_styles.scss
@@ -1635,8 +1607,9 @@ files:
1635
1607
  - app/pb_kits/playbook/pb_multi_level_select/docs/_multi_level_select_return_all_selected.jsx
1636
1608
  - app/pb_kits/playbook/pb_multi_level_select/docs/_multi_level_select_return_all_selected.md
1637
1609
  - app/pb_kits/playbook/pb_multi_level_select/docs/_multi_level_select_selected_ids.html.erb
1638
- - app/pb_kits/playbook/pb_multi_level_select/docs/_multi_level_select_selected_ids.jsx
1639
1610
  - app/pb_kits/playbook/pb_multi_level_select/docs/_multi_level_select_selected_ids.md
1611
+ - app/pb_kits/playbook/pb_multi_level_select/docs/_multi_level_select_selected_ids_react.jsx
1612
+ - app/pb_kits/playbook/pb_multi_level_select/docs/_multi_level_select_selected_ids_react.md
1640
1613
  - app/pb_kits/playbook/pb_multi_level_select/docs/_multi_level_select_single.html.erb
1641
1614
  - app/pb_kits/playbook/pb_multi_level_select/docs/_multi_level_select_single.jsx
1642
1615
  - app/pb_kits/playbook/pb_multi_level_select/docs/_multi_level_select_single.md
@@ -2557,6 +2530,8 @@ files:
2557
2530
  - app/pb_kits/playbook/pb_toggle/docs/_toggle_default.html.erb
2558
2531
  - app/pb_kits/playbook/pb_toggle/docs/_toggle_default.jsx
2559
2532
  - app/pb_kits/playbook/pb_toggle/docs/_toggle_default_swift.md
2533
+ - app/pb_kits/playbook/pb_toggle/docs/_toggle_disabled.html.erb
2534
+ - app/pb_kits/playbook/pb_toggle/docs/_toggle_disabled.jsx
2560
2535
  - app/pb_kits/playbook/pb_toggle/docs/_toggle_name.html.erb
2561
2536
  - app/pb_kits/playbook/pb_toggle/docs/_toggle_name.jsx
2562
2537
  - app/pb_kits/playbook/pb_toggle/docs/_toggle_name_swift.md
@@ -2857,6 +2832,7 @@ files:
2857
2832
  - lib/playbook/pb_forms_helper.rb
2858
2833
  - lib/playbook/pb_kit_helper.rb
2859
2834
  - lib/playbook/position.rb
2835
+ - lib/playbook/position_props_css.rb
2860
2836
  - lib/playbook/props.rb
2861
2837
  - lib/playbook/props/array.rb
2862
2838
  - lib/playbook/props/base.rb
@@ -1,278 +0,0 @@
1
- export const MOCK_DATA = [
2
- {
3
- year: "2021",
4
- quarter: null,
5
- month: null,
6
- day: null,
7
- newEnrollments: "20",
8
- scheduledMeetings: "10",
9
- attendanceRate: "51%",
10
- completedClasses: "3",
11
- classCompletionRate: "33%",
12
- graduatedStudents: "19",
13
- children: [
14
- {
15
- year: "2021",
16
- quarter: "Q1",
17
- month: null,
18
- day: null,
19
- newEnrollments: "2",
20
- scheduledMeetings: "35",
21
- attendanceRate: "32%",
22
- completedClasses: "15",
23
- classCompletionRate: "52%",
24
- graduatedStudents: "36",
25
- children: [
26
- {
27
- year: "2021",
28
- quarter: "Q1",
29
- month: "January",
30
- day: null,
31
- newEnrollments: "16",
32
- scheduledMeetings: "20",
33
- attendanceRate: "11%",
34
- completedClasses: "13",
35
- classCompletionRate: "47%",
36
- graduatedStudents: "28",
37
- children: [
38
- {
39
- year: "2021",
40
- quarter: "Q1",
41
- month: "January",
42
- day: "10",
43
- newEnrollments: "34",
44
- scheduledMeetings: "28",
45
- attendanceRate: "97%",
46
- completedClasses: "20",
47
- classCompletionRate: "15%",
48
- graduatedStudents: "17",
49
- },
50
- {
51
- year: "2021",
52
- quarter: "Q1",
53
- month: "January",
54
- day: "20",
55
- newEnrollments: "43",
56
- scheduledMeetings: "23",
57
- attendanceRate: "66%",
58
- completedClasses: "26",
59
- classCompletionRate: "47%",
60
- graduatedStudents: "9",
61
- },
62
- ],
63
- },
64
- {
65
- year: "2021",
66
- quarter: "Q1",
67
- month: "February",
68
- day: null,
69
- newEnrollments: "20",
70
- scheduledMeetings: "41",
71
- attendanceRate: "95%",
72
- completedClasses: "26",
73
- classCompletionRate: "83%",
74
- graduatedStudents: "43",
75
- children: [
76
- {
77
- year: "2011",
78
- quarter: "Q1",
79
- month: "February",
80
- day: "15",
81
- newEnrollments: "19",
82
- scheduledMeetings: "35",
83
- attendanceRate: "69%",
84
- completedClasses: "8",
85
- classCompletionRate: "75%",
86
- graduatedStudents: "23",
87
- },
88
- ],
89
- },
90
- ],
91
- },
92
- ],
93
- },
94
- {
95
- year: "2022",
96
- quarter: null,
97
- month: null,
98
- day: null,
99
- newEnrollments: "25",
100
- scheduledMeetings: "17",
101
- attendanceRate: "75%",
102
- completedClasses: "5",
103
- classCompletionRate: "45%",
104
- graduatedStudents: "32",
105
- children: [
106
- {
107
- year: "2022",
108
- quarter: "Q1",
109
- month: null,
110
- day: null,
111
- newEnrollments: "2",
112
- scheduledMeetings: "35",
113
- attendanceRate: "32%",
114
- completedClasses: "15",
115
- classCompletionRate: "52%",
116
- graduatedStudents: "36",
117
- children: [
118
- {
119
- year: "2022",
120
- quarter: "Q1",
121
- month: "January",
122
- day: null,
123
- newEnrollments: "16",
124
- scheduledMeetings: "20",
125
- attendanceRate: "11%",
126
- completedClasses: "13",
127
- classCompletionRate: "47%",
128
- graduatedStudents: "28",
129
- children: [
130
- {
131
- year: "2022",
132
- quarter: "Q1",
133
- month: "January",
134
- day: "15",
135
- newEnrollments: "34",
136
- scheduledMeetings: "28",
137
- attendanceRate: "97%",
138
- completedClasses: "20",
139
- classCompletionRate: "15%",
140
- graduatedStudents: "17",
141
- },
142
- {
143
- year: "2022",
144
- quarter: "Q1",
145
- month: "January",
146
- day: "25",
147
- newEnrollments: "43",
148
- scheduledMeetings: "23",
149
- attendanceRate: "66%",
150
- completedClasses: "26",
151
- classCompletionRate: "47%",
152
- graduatedStudents: "9",
153
- },
154
- ],
155
- },
156
- {
157
- year: "2022",
158
- quarter: "Q1",
159
- month: "May",
160
- day: null,
161
- newEnrollments: "20",
162
- scheduledMeetings: "41",
163
- attendanceRate: "95%",
164
- completedClasses: "26",
165
- classCompletionRate: "83%",
166
- graduatedStudents: "43",
167
- children: [
168
- {
169
- year: "2011",
170
- quarter: "Q1",
171
- month: "May",
172
- day: "2",
173
- newEnrollments: "19",
174
- scheduledMeetings: "35",
175
- attendanceRate: "69%",
176
- completedClasses: "8",
177
- classCompletionRate: "75%",
178
- graduatedStudents: "23",
179
- },
180
- ],
181
- },
182
- ],
183
- },
184
- ],
185
- },
186
- {
187
- year: "2023",
188
- quarter: null,
189
- month: null,
190
- day: null,
191
- newEnrollments: "10",
192
- scheduledMeetings: "15",
193
- attendanceRate: "65%",
194
- completedClasses: "4",
195
- classCompletionRate: "49%",
196
- graduatedStudents: "29",
197
- children: [
198
- {
199
- year: "2023",
200
- quarter: "Q1",
201
- month: null,
202
- day: null,
203
- newEnrollments: "2",
204
- scheduledMeetings: "35",
205
- attendanceRate: "32%",
206
- completedClasses: "15",
207
- classCompletionRate: "52%",
208
- graduatedStudents: "36",
209
- children: [
210
- {
211
- year: "2023",
212
- quarter: "Q1",
213
- month: "March",
214
- day: null,
215
- newEnrollments: "16",
216
- scheduledMeetings: "20",
217
- attendanceRate: "11%",
218
- completedClasses: "13",
219
- classCompletionRate: "47%",
220
- graduatedStudents: "28",
221
- children: [
222
- {
223
- year: "2023",
224
- quarter: "Q1",
225
- month: "March",
226
- day: "10",
227
- newEnrollments: "34",
228
- scheduledMeetings: "28",
229
- attendanceRate: "97%",
230
- completedClasses: "20",
231
- classCompletionRate: "15%",
232
- graduatedStudents: "17",
233
- },
234
- {
235
- year: "2023",
236
- quarter: "Q1",
237
- month: "March",
238
- day: "11",
239
- newEnrollments: "43",
240
- scheduledMeetings: "23",
241
- attendanceRate: "66%",
242
- completedClasses: "26",
243
- classCompletionRate: "47%",
244
- graduatedStudents: "9",
245
- },
246
- ],
247
- },
248
- {
249
- year: "2023",
250
- quarter: "Q1",
251
- month: "April",
252
- day: null,
253
- newEnrollments: "20",
254
- scheduledMeetings: "41",
255
- attendanceRate: "95%",
256
- completedClasses: "26",
257
- classCompletionRate: "83%",
258
- graduatedStudents: "43",
259
- children: [
260
- {
261
- year: "2023",
262
- quarter: "Q1",
263
- month: "April",
264
- day: "15",
265
- newEnrollments: "19",
266
- scheduledMeetings: "35",
267
- attendanceRate: "69%",
268
- completedClasses: "8",
269
- classCompletionRate: "75%",
270
- graduatedStudents: "23",
271
- },
272
- ],
273
- },
274
- ],
275
- },
276
- ],
277
- },
278
- ]