@airtable/blocks 0.0.0-experimental-c4b2228f4-20250630 → 0.0.0-experimental-3649c7162-20250904

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 (679) hide show
  1. package/dist/esm/base/assert_run_context.js +12 -0
  2. package/dist/{cjs → esm}/base/index.js +30 -32
  3. package/dist/esm/base/models/abstract_model_with_async_data.js +190 -0
  4. package/dist/esm/base/models/base.js +252 -0
  5. package/dist/esm/base/models/create_aggregators.js +90 -0
  6. package/dist/esm/base/models/cursor.js +305 -0
  7. package/dist/esm/base/models/field.js +338 -0
  8. package/dist/esm/base/models/grouped_record_query_result.js +280 -0
  9. package/dist/esm/base/models/linked_records_query_result.js +553 -0
  10. package/dist/{cjs → esm}/base/models/models.js +19 -40
  11. package/dist/esm/base/models/mutations.js +312 -0
  12. package/dist/esm/base/models/object_pool.js +145 -0
  13. package/dist/esm/base/models/record.js +239 -0
  14. package/dist/{cjs → esm}/base/models/record_coloring.js +6 -6
  15. package/dist/esm/base/models/record_query_result.js +657 -0
  16. package/dist/esm/base/models/record_store.js +475 -0
  17. package/dist/esm/base/models/session.js +154 -0
  18. package/dist/esm/base/models/table.js +520 -0
  19. package/dist/esm/base/models/table_or_view_query_result.js +749 -0
  20. package/dist/esm/base/models/view.js +326 -0
  21. package/dist/esm/base/models/view_data_store.js +265 -0
  22. package/dist/esm/base/models/view_metadata_query_result.js +176 -0
  23. package/dist/esm/base/perform_record_action.js +215 -0
  24. package/dist/esm/base/sdk.js +178 -0
  25. package/dist/esm/base/settings_button.js +118 -0
  26. package/dist/{cjs → esm}/base/types/airtable_interface.js +1 -1
  27. package/dist/{cjs → esm}/base/types/mutations.js +5 -11
  28. package/dist/{cjs → esm}/base/types/undo_redo.js +1 -1
  29. package/dist/{cjs → esm}/base/types/view.js +1 -1
  30. package/dist/{cjs → esm}/base/ui/base_provider.js +6 -8
  31. package/dist/esm/base/ui/baymax_utils.js +461 -0
  32. package/dist/esm/base/ui/block_wrapper.js +118 -0
  33. package/dist/esm/base/ui/box.js +84 -0
  34. package/dist/esm/base/ui/button.js +152 -0
  35. package/dist/esm/base/ui/cell_renderer.js +198 -0
  36. package/dist/esm/base/ui/choice_token.js +93 -0
  37. package/dist/esm/base/ui/collaborator_token.js +123 -0
  38. package/dist/esm/base/ui/color_palette.js +196 -0
  39. package/dist/esm/base/ui/color_palette_synced.js +69 -0
  40. package/dist/esm/base/ui/confirmation_dialog.js +103 -0
  41. package/dist/{cjs → esm}/base/ui/control_sizes.js +24 -22
  42. package/dist/{cjs → esm}/base/ui/create_detect_element_resize.js +6 -10
  43. package/dist/{cjs → esm}/base/ui/css_helpers.js +1 -1
  44. package/dist/esm/base/ui/dialog.js +101 -0
  45. package/dist/esm/base/ui/dialog_close_button.js +106 -0
  46. package/dist/{cjs → esm}/base/ui/expand_record.js +1 -2
  47. package/dist/{cjs → esm}/base/ui/expand_record_list.js +3 -4
  48. package/dist/esm/base/ui/expand_record_picker_async.js +71 -0
  49. package/dist/esm/base/ui/field_icon.js +44 -0
  50. package/dist/esm/base/ui/field_picker.js +98 -0
  51. package/dist/esm/base/ui/field_picker_synced.js +66 -0
  52. package/dist/esm/base/ui/form_field.js +109 -0
  53. package/dist/{cjs → esm}/base/ui/geometry/geometry.js +5 -5
  54. package/dist/esm/base/ui/geometry/point.js +19 -0
  55. package/dist/esm/base/ui/geometry/rect.js +51 -0
  56. package/dist/esm/base/ui/geometry/size.js +19 -0
  57. package/dist/esm/base/ui/global_alert.js +71 -0
  58. package/dist/esm/base/ui/heading.js +132 -0
  59. package/dist/esm/base/ui/icon.js +109 -0
  60. package/dist/{cjs → esm}/base/ui/icon_config.js +6 -12
  61. package/dist/{cjs → esm}/base/ui/initialize_block.js +16 -35
  62. package/dist/esm/base/ui/input.js +161 -0
  63. package/dist/esm/base/ui/input_synced.js +66 -0
  64. package/dist/{cjs → esm}/base/ui/key_codes.js +2 -3
  65. package/dist/esm/base/ui/label.js +80 -0
  66. package/dist/esm/base/ui/link.js +196 -0
  67. package/dist/esm/base/ui/loader.js +61 -0
  68. package/dist/esm/base/ui/modal.js +145 -0
  69. package/dist/esm/base/ui/model_picker_select.js +57 -0
  70. package/dist/esm/base/ui/popover.js +315 -0
  71. package/dist/esm/base/ui/progress_bar.js +115 -0
  72. package/dist/esm/base/ui/record_card.js +564 -0
  73. package/dist/esm/base/ui/record_card_list.js +303 -0
  74. package/dist/esm/base/ui/select.js +191 -0
  75. package/dist/esm/base/ui/select_and_select_buttons_helpers.js +63 -0
  76. package/dist/esm/base/ui/select_buttons.js +159 -0
  77. package/dist/esm/base/ui/select_buttons_synced.js +62 -0
  78. package/dist/esm/base/ui/select_synced.js +65 -0
  79. package/dist/esm/base/ui/switch.js +167 -0
  80. package/dist/esm/base/ui/switch_synced.js +53 -0
  81. package/dist/esm/base/ui/synced.js +49 -0
  82. package/dist/{cjs → esm}/base/ui/system/all_styles_set.js +4 -12
  83. package/dist/esm/base/ui/system/appearance/appearance_set.js +27 -0
  84. package/dist/esm/base/ui/system/appearance/background_color.js +18 -0
  85. package/dist/{cjs → esm}/base/ui/system/appearance/border.js +3 -6
  86. package/dist/esm/base/ui/system/appearance/border_radius.js +18 -0
  87. package/dist/esm/base/ui/system/appearance/box_shadow.js +18 -0
  88. package/dist/esm/base/ui/system/appearance/opacity.js +18 -0
  89. package/dist/esm/base/ui/system/dimensions/dimensions_set.js +29 -0
  90. package/dist/esm/base/ui/system/dimensions/height.js +18 -0
  91. package/dist/esm/base/ui/system/dimensions/max_height.js +18 -0
  92. package/dist/esm/base/ui/system/dimensions/max_width.js +18 -0
  93. package/dist/esm/base/ui/system/dimensions/min_height.js +18 -0
  94. package/dist/esm/base/ui/system/dimensions/min_width.js +18 -0
  95. package/dist/esm/base/ui/system/dimensions/width.js +18 -0
  96. package/dist/esm/base/ui/system/display.js +19 -0
  97. package/dist/esm/base/ui/system/flex_container/align_content.js +15 -0
  98. package/dist/esm/base/ui/system/flex_container/align_items.js +15 -0
  99. package/dist/esm/base/ui/system/flex_container/flex_container_set.js +29 -0
  100. package/dist/esm/base/ui/system/flex_container/flex_direction.js +15 -0
  101. package/dist/esm/base/ui/system/flex_container/flex_wrap.js +15 -0
  102. package/dist/esm/base/ui/system/flex_container/justify_content.js +15 -0
  103. package/dist/esm/base/ui/system/flex_container/justify_items.js +16 -0
  104. package/dist/esm/base/ui/system/flex_item/align_self.js +15 -0
  105. package/dist/esm/base/ui/system/flex_item/flex.js +15 -0
  106. package/dist/esm/base/ui/system/flex_item/flex_basis.js +15 -0
  107. package/dist/esm/base/ui/system/flex_item/flex_grow.js +15 -0
  108. package/dist/esm/base/ui/system/flex_item/flex_item_set.js +31 -0
  109. package/dist/esm/base/ui/system/flex_item/flex_shrink.js +15 -0
  110. package/dist/esm/base/ui/system/flex_item/justify_self.js +16 -0
  111. package/dist/esm/base/ui/system/flex_item/order.js +15 -0
  112. package/dist/{cjs → esm}/base/ui/system/index.js +104 -416
  113. package/dist/esm/base/ui/system/overflow.js +21 -0
  114. package/dist/{cjs → esm}/base/ui/system/position/bottom.js +4 -6
  115. package/dist/{cjs → esm}/base/ui/system/position/left.js +4 -6
  116. package/dist/esm/base/ui/system/position/position.js +15 -0
  117. package/dist/esm/base/ui/system/position/position_set.js +29 -0
  118. package/dist/{cjs → esm}/base/ui/system/position/right.js +4 -6
  119. package/dist/{cjs → esm}/base/ui/system/position/top.js +4 -6
  120. package/dist/esm/base/ui/system/position/z_index.js +18 -0
  121. package/dist/{cjs → esm}/base/ui/system/spacing/margin.js +4 -6
  122. package/dist/{cjs → esm}/base/ui/system/spacing/padding.js +4 -6
  123. package/dist/esm/base/ui/system/spacing/spacing_set.js +21 -0
  124. package/dist/esm/base/ui/system/typography/font_family.js +18 -0
  125. package/dist/esm/base/ui/system/typography/font_size.js +18 -0
  126. package/dist/esm/base/ui/system/typography/font_style.js +15 -0
  127. package/dist/esm/base/ui/system/typography/font_weight.js +18 -0
  128. package/dist/esm/base/ui/system/typography/letter_spacing.js +18 -0
  129. package/dist/esm/base/ui/system/typography/line_height.js +15 -0
  130. package/dist/esm/base/ui/system/typography/text_align.js +15 -0
  131. package/dist/esm/base/ui/system/typography/text_color.js +18 -0
  132. package/dist/esm/base/ui/system/typography/text_decoration.js +15 -0
  133. package/dist/esm/base/ui/system/typography/text_transform.js +15 -0
  134. package/dist/esm/base/ui/system/typography/typography_set.js +37 -0
  135. package/dist/{cjs → esm}/base/ui/system/utils/ensure_numbers_are_within_scale.js +3 -4
  136. package/dist/esm/base/ui/system/utils/get_style_props_for_responsive_prop.js +73 -0
  137. package/dist/esm/base/ui/table_picker.js +71 -0
  138. package/dist/esm/base/ui/table_picker_synced.js +62 -0
  139. package/dist/esm/base/ui/text.js +117 -0
  140. package/dist/esm/base/ui/text_button.js +196 -0
  141. package/dist/{cjs → esm}/base/ui/theme/default_theme/button_variants.js +3 -3
  142. package/dist/esm/base/ui/theme/default_theme/control_sizes.js +102 -0
  143. package/dist/{cjs → esm}/base/ui/theme/default_theme/heading_styles.js +1 -1
  144. package/dist/{cjs → esm}/base/ui/theme/default_theme/index.js +9 -15
  145. package/dist/{cjs → esm}/base/ui/theme/default_theme/input_variants.js +3 -3
  146. package/dist/{cjs → esm}/base/ui/theme/default_theme/link_variants.js +3 -3
  147. package/dist/{cjs → esm}/base/ui/theme/default_theme/select_buttons_variants.js +4 -4
  148. package/dist/esm/base/ui/theme/default_theme/select_variants.js +50 -0
  149. package/dist/esm/base/ui/theme/default_theme/switch_variants.js +85 -0
  150. package/dist/{cjs → esm}/base/ui/theme/default_theme/text_button_variants.js +5 -5
  151. package/dist/{cjs → esm}/base/ui/theme/default_theme/text_styles.js +1 -1
  152. package/dist/{cjs → esm}/base/ui/theme/default_theme/tokens.js +14 -14
  153. package/dist/{cjs → esm}/base/ui/theme/theme_context.js +2 -2
  154. package/dist/{cjs → esm}/base/ui/theme/use_theme.js +2 -2
  155. package/dist/esm/base/ui/tooltip.js +175 -0
  156. package/dist/{cjs → esm}/base/ui/ui.js +48 -49
  157. package/dist/{cjs → esm}/base/ui/unstable_standalone_ui.js +27 -27
  158. package/dist/{cjs → esm}/base/ui/use_base.js +1 -1
  159. package/dist/{cjs → esm}/base/ui/use_cursor.js +5 -4
  160. package/dist/{cjs → esm}/base/ui/use_form_field.js +1 -1
  161. package/dist/{cjs → esm}/base/ui/use_loadable.js +25 -91
  162. package/dist/{cjs → esm}/base/ui/use_record_action_data.js +4 -3
  163. package/dist/{cjs → esm}/base/ui/use_records.js +9 -13
  164. package/dist/{cjs → esm}/base/ui/use_session.js +1 -1
  165. package/dist/{cjs → esm}/base/ui/use_settings_button.js +4 -3
  166. package/dist/esm/base/ui/use_styled_system.js +25 -0
  167. package/dist/{cjs → esm}/base/ui/use_text_color_for_background_color.js +4 -3
  168. package/dist/{cjs → esm}/base/ui/use_view_metadata.js +4 -4
  169. package/dist/{cjs → esm}/base/ui/use_viewport.js +2 -2
  170. package/dist/esm/base/ui/view_picker.js +89 -0
  171. package/dist/esm/base/ui/view_picker_synced.js +66 -0
  172. package/dist/esm/base/ui/viewport_constraint.js +129 -0
  173. package/dist/esm/base/ui/with_styled_system.js +129 -0
  174. package/dist/esm/base/undo_redo.js +37 -0
  175. package/dist/{cjs → esm}/base/unstable_testing_utils.js +27 -27
  176. package/dist/esm/base/viewport.js +353 -0
  177. package/dist/esm/injected/airtable_interface.js +22 -0
  178. package/dist/esm/interface/assert_run_context.js +12 -0
  179. package/dist/esm/interface/index.js +22 -0
  180. package/dist/esm/interface/models/base.js +35 -0
  181. package/dist/esm/interface/models/field.js +28 -0
  182. package/dist/{cjs → esm}/interface/models/models.js +8 -7
  183. package/dist/esm/interface/models/mutations.js +63 -0
  184. package/dist/esm/interface/models/record.js +51 -0
  185. package/dist/esm/interface/models/record_store.js +51 -0
  186. package/dist/esm/interface/models/session.js +28 -0
  187. package/dist/esm/interface/models/table.js +97 -0
  188. package/dist/esm/interface/sdk.js +78 -0
  189. package/dist/{cjs → esm}/interface/types/airtable_interface.js +2 -2
  190. package/dist/esm/interface/types/mutations.js +17 -0
  191. package/dist/esm/interface/ui/block_wrapper.js +69 -0
  192. package/dist/{cjs → esm}/interface/ui/initialize_block.js +13 -28
  193. package/dist/{cjs → esm}/interface/ui/ui.js +20 -19
  194. package/dist/{cjs → esm}/interface/ui/use_base.js +1 -1
  195. package/dist/{cjs → esm}/interface/ui/use_custom_properties.js +19 -35
  196. package/dist/{cjs → esm}/interface/ui/use_records.js +6 -5
  197. package/dist/{cjs → esm}/interface/ui/use_run_info.js +2 -2
  198. package/dist/{cjs → esm}/interface/ui/use_session.js +1 -1
  199. package/dist/{cjs → esm}/shared/color_utils.js +9 -16
  200. package/dist/{cjs → esm}/shared/colors.js +2 -2
  201. package/dist/{cjs → esm}/shared/error_utils.js +9 -11
  202. package/dist/{cjs → esm}/shared/event_tracker.js +3 -3
  203. package/dist/esm/shared/global_config.js +399 -0
  204. package/dist/esm/shared/models/abstract_model.js +94 -0
  205. package/dist/esm/shared/models/base_core.js +482 -0
  206. package/dist/esm/shared/models/field_core.js +288 -0
  207. package/dist/esm/shared/models/mutations_core.js +343 -0
  208. package/dist/esm/shared/models/record_core.js +215 -0
  209. package/dist/esm/shared/models/record_store_core.js +160 -0
  210. package/dist/esm/shared/models/session_core.js +160 -0
  211. package/dist/esm/shared/models/table_core.js +1318 -0
  212. package/dist/{cjs → esm}/shared/private_utils.js +54 -124
  213. package/dist/esm/shared/sdk_core.js +113 -0
  214. package/dist/{cjs → esm}/shared/types/field_core.js +1 -1
  215. package/dist/esm/shared/types/mutation_constants.js +11 -0
  216. package/dist/{cjs → esm}/shared/types/mutations_core.js +1 -1
  217. package/dist/{cjs → esm}/shared/types/permission_levels.js +1 -1
  218. package/dist/esm/shared/types/record.js +1 -0
  219. package/dist/esm/shared/types/stat.js +1 -0
  220. package/dist/esm/shared/types/table_core.js +1 -0
  221. package/dist/{cjs → esm}/shared/ui/global_config_synced_component_helpers.js +9 -9
  222. package/dist/esm/shared/ui/loader.js +47 -0
  223. package/dist/{cjs → esm}/shared/ui/remote_utils.js +5 -7
  224. package/dist/{cjs → esm}/shared/ui/sdk_context.js +4 -8
  225. package/dist/{cjs → esm}/shared/ui/use_array_identity.js +2 -2
  226. package/dist/{cjs → esm}/shared/ui/use_base.js +6 -5
  227. package/dist/{cjs → esm}/shared/ui/use_color_scheme.js +3 -8
  228. package/dist/{cjs → esm}/shared/ui/use_global_config.js +5 -4
  229. package/dist/{cjs → esm}/shared/ui/use_session.js +6 -5
  230. package/dist/{cjs → esm}/shared/ui/use_synced.js +7 -5
  231. package/dist/{cjs → esm}/shared/ui/use_watchable.js +17 -44
  232. package/dist/{cjs → esm}/shared/ui/with_hooks.js +6 -13
  233. package/dist/{cjs → esm}/shared/unstable_private_utils.js +4 -6
  234. package/dist/{cjs → esm}/shared/warning.js +5 -5
  235. package/dist/esm/shared/watchable.js +150 -0
  236. package/dist/esm/stats/block_stats.js +73 -0
  237. package/dist/esm/testing/base/abstract_mock_airtable_interface.js +208 -0
  238. package/dist/esm/testing/interface/abstract_mock_airtable_interface.js +124 -0
  239. package/dist/types/src/base/assert_run_context.d.ts +2 -0
  240. package/dist/types/src/base/assert_run_context.d.ts.map +1 -0
  241. package/dist/types/src/base/index.d.ts +1 -0
  242. package/dist/types/src/base/index.d.ts.map +1 -1
  243. package/dist/types/src/base/models/base.d.ts +19 -0
  244. package/dist/types/src/base/models/base.d.ts.map +1 -1
  245. package/dist/types/src/base/models/create_aggregators.d.ts +3 -4
  246. package/dist/types/src/base/models/create_aggregators.d.ts.map +1 -1
  247. package/dist/types/src/base/models/field.d.ts +3 -2
  248. package/dist/types/src/base/models/field.d.ts.map +1 -1
  249. package/dist/types/src/base/models/models.d.ts +1 -2
  250. package/dist/types/src/base/models/models.d.ts.map +1 -1
  251. package/dist/types/src/base/models/mutations.d.ts.map +1 -1
  252. package/dist/types/src/base/sdk.d.ts.map +1 -1
  253. package/dist/types/src/base/ui/block_wrapper.d.ts +1 -1
  254. package/dist/types/src/base/ui/box.d.ts.map +1 -1
  255. package/dist/types/src/base/ui/button.d.ts +0 -5
  256. package/dist/types/src/base/ui/button.d.ts.map +1 -1
  257. package/dist/types/src/base/ui/cell_renderer.d.ts +1 -22
  258. package/dist/types/src/base/ui/cell_renderer.d.ts.map +1 -1
  259. package/dist/types/src/base/ui/choice_token.d.ts +1 -21
  260. package/dist/types/src/base/ui/choice_token.d.ts.map +1 -1
  261. package/dist/types/src/base/ui/collaborator_token.d.ts +0 -20
  262. package/dist/types/src/base/ui/collaborator_token.d.ts.map +1 -1
  263. package/dist/types/src/base/ui/color_palette.d.ts +1 -32
  264. package/dist/types/src/base/ui/color_palette.d.ts.map +1 -1
  265. package/dist/types/src/base/ui/color_palette_synced.d.ts +0 -14
  266. package/dist/types/src/base/ui/color_palette_synced.d.ts.map +1 -1
  267. package/dist/types/src/base/ui/confirmation_dialog.d.ts +0 -17
  268. package/dist/types/src/base/ui/confirmation_dialog.d.ts.map +1 -1
  269. package/dist/types/src/base/ui/control_sizes.d.ts +0 -1
  270. package/dist/types/src/base/ui/control_sizes.d.ts.map +1 -1
  271. package/dist/types/src/base/ui/dialog.d.ts +1 -23
  272. package/dist/types/src/base/ui/dialog.d.ts.map +1 -1
  273. package/dist/types/src/base/ui/dialog_close_button.d.ts +2 -24
  274. package/dist/types/src/base/ui/dialog_close_button.d.ts.map +1 -1
  275. package/dist/types/src/base/ui/field_icon.d.ts +1 -17
  276. package/dist/types/src/base/ui/field_icon.d.ts.map +1 -1
  277. package/dist/types/src/base/ui/field_picker.d.ts +0 -23
  278. package/dist/types/src/base/ui/field_picker.d.ts.map +1 -1
  279. package/dist/types/src/base/ui/field_picker_synced.d.ts.map +1 -1
  280. package/dist/types/src/base/ui/form_field.d.ts +0 -4
  281. package/dist/types/src/base/ui/form_field.d.ts.map +1 -1
  282. package/dist/types/src/base/ui/heading.d.ts +1 -1
  283. package/dist/types/src/base/ui/heading.d.ts.map +1 -1
  284. package/dist/types/src/base/ui/icon.d.ts +0 -16
  285. package/dist/types/src/base/ui/icon.d.ts.map +1 -1
  286. package/dist/types/src/base/ui/icon_config.d.ts +50 -51
  287. package/dist/types/src/base/ui/icon_config.d.ts.map +1 -1
  288. package/dist/types/src/base/ui/initialize_block.d.ts.map +1 -1
  289. package/dist/types/src/base/ui/input.d.ts +12 -46
  290. package/dist/types/src/base/ui/input.d.ts.map +1 -1
  291. package/dist/types/src/base/ui/input_synced.d.ts.map +1 -1
  292. package/dist/types/src/base/ui/label.d.ts.map +1 -1
  293. package/dist/types/src/base/ui/link.d.ts +1 -5
  294. package/dist/types/src/base/ui/link.d.ts.map +1 -1
  295. package/dist/types/src/base/ui/loader.d.ts +3 -20
  296. package/dist/types/src/base/ui/loader.d.ts.map +1 -1
  297. package/dist/types/src/base/ui/modal.d.ts +1 -14
  298. package/dist/types/src/base/ui/modal.d.ts.map +1 -1
  299. package/dist/types/src/base/ui/model_picker_select.d.ts.map +1 -1
  300. package/dist/types/src/base/ui/popover.d.ts +1 -17
  301. package/dist/types/src/base/ui/popover.d.ts.map +1 -1
  302. package/dist/types/src/base/ui/progress_bar.d.ts +1 -24
  303. package/dist/types/src/base/ui/progress_bar.d.ts.map +1 -1
  304. package/dist/types/src/base/ui/record_card.d.ts +1 -23
  305. package/dist/types/src/base/ui/record_card.d.ts.map +1 -1
  306. package/dist/types/src/base/ui/record_card_list.d.ts +1 -18
  307. package/dist/types/src/base/ui/record_card_list.d.ts.map +1 -1
  308. package/dist/types/src/base/ui/select.d.ts +0 -44
  309. package/dist/types/src/base/ui/select.d.ts.map +1 -1
  310. package/dist/types/src/base/ui/select_and_select_buttons_helpers.d.ts +0 -2
  311. package/dist/types/src/base/ui/select_and_select_buttons_helpers.d.ts.map +1 -1
  312. package/dist/types/src/base/ui/select_buttons.d.ts +0 -22
  313. package/dist/types/src/base/ui/select_buttons.d.ts.map +1 -1
  314. package/dist/types/src/base/ui/select_buttons_synced.d.ts.map +1 -1
  315. package/dist/types/src/base/ui/select_synced.d.ts.map +1 -1
  316. package/dist/types/src/base/ui/switch.d.ts +0 -22
  317. package/dist/types/src/base/ui/switch.d.ts.map +1 -1
  318. package/dist/types/src/base/ui/switch_synced.d.ts.map +1 -1
  319. package/dist/types/src/base/ui/synced.d.ts +2 -8
  320. package/dist/types/src/base/ui/synced.d.ts.map +1 -1
  321. package/dist/types/src/base/ui/system/all_styles_set.d.ts +0 -3
  322. package/dist/types/src/base/ui/system/all_styles_set.d.ts.map +1 -1
  323. package/dist/types/src/base/ui/system/appearance/appearance_set.d.ts +0 -1
  324. package/dist/types/src/base/ui/system/appearance/appearance_set.d.ts.map +1 -1
  325. package/dist/types/src/base/ui/system/appearance/background_color.d.ts +0 -1
  326. package/dist/types/src/base/ui/system/appearance/background_color.d.ts.map +1 -1
  327. package/dist/types/src/base/ui/system/appearance/border.d.ts +0 -1
  328. package/dist/types/src/base/ui/system/appearance/border.d.ts.map +1 -1
  329. package/dist/types/src/base/ui/system/appearance/border_radius.d.ts +0 -1
  330. package/dist/types/src/base/ui/system/appearance/border_radius.d.ts.map +1 -1
  331. package/dist/types/src/base/ui/system/appearance/box_shadow.d.ts +0 -1
  332. package/dist/types/src/base/ui/system/appearance/box_shadow.d.ts.map +1 -1
  333. package/dist/types/src/base/ui/system/appearance/opacity.d.ts +0 -1
  334. package/dist/types/src/base/ui/system/appearance/opacity.d.ts.map +1 -1
  335. package/dist/types/src/base/ui/system/dimensions/dimensions_set.d.ts +0 -1
  336. package/dist/types/src/base/ui/system/dimensions/dimensions_set.d.ts.map +1 -1
  337. package/dist/types/src/base/ui/system/dimensions/height.d.ts +0 -1
  338. package/dist/types/src/base/ui/system/dimensions/height.d.ts.map +1 -1
  339. package/dist/types/src/base/ui/system/dimensions/max_height.d.ts +0 -1
  340. package/dist/types/src/base/ui/system/dimensions/max_height.d.ts.map +1 -1
  341. package/dist/types/src/base/ui/system/dimensions/max_width.d.ts +0 -1
  342. package/dist/types/src/base/ui/system/dimensions/max_width.d.ts.map +1 -1
  343. package/dist/types/src/base/ui/system/dimensions/min_height.d.ts +0 -1
  344. package/dist/types/src/base/ui/system/dimensions/min_height.d.ts.map +1 -1
  345. package/dist/types/src/base/ui/system/dimensions/min_width.d.ts +0 -1
  346. package/dist/types/src/base/ui/system/dimensions/min_width.d.ts.map +1 -1
  347. package/dist/types/src/base/ui/system/dimensions/width.d.ts +0 -1
  348. package/dist/types/src/base/ui/system/dimensions/width.d.ts.map +1 -1
  349. package/dist/types/src/base/ui/system/display.d.ts +0 -1
  350. package/dist/types/src/base/ui/system/display.d.ts.map +1 -1
  351. package/dist/types/src/base/ui/system/flex_container/align_content.d.ts +0 -1
  352. package/dist/types/src/base/ui/system/flex_container/align_content.d.ts.map +1 -1
  353. package/dist/types/src/base/ui/system/flex_container/align_items.d.ts +0 -1
  354. package/dist/types/src/base/ui/system/flex_container/align_items.d.ts.map +1 -1
  355. package/dist/types/src/base/ui/system/flex_container/flex_container_set.d.ts +0 -1
  356. package/dist/types/src/base/ui/system/flex_container/flex_container_set.d.ts.map +1 -1
  357. package/dist/types/src/base/ui/system/flex_container/flex_direction.d.ts +0 -1
  358. package/dist/types/src/base/ui/system/flex_container/flex_direction.d.ts.map +1 -1
  359. package/dist/types/src/base/ui/system/flex_container/flex_wrap.d.ts +0 -1
  360. package/dist/types/src/base/ui/system/flex_container/flex_wrap.d.ts.map +1 -1
  361. package/dist/types/src/base/ui/system/flex_container/justify_content.d.ts +0 -1
  362. package/dist/types/src/base/ui/system/flex_container/justify_content.d.ts.map +1 -1
  363. package/dist/types/src/base/ui/system/flex_container/justify_items.d.ts +0 -1
  364. package/dist/types/src/base/ui/system/flex_container/justify_items.d.ts.map +1 -1
  365. package/dist/types/src/base/ui/system/flex_item/align_self.d.ts +0 -1
  366. package/dist/types/src/base/ui/system/flex_item/align_self.d.ts.map +1 -1
  367. package/dist/types/src/base/ui/system/flex_item/flex.d.ts +0 -1
  368. package/dist/types/src/base/ui/system/flex_item/flex.d.ts.map +1 -1
  369. package/dist/types/src/base/ui/system/flex_item/flex_basis.d.ts +0 -1
  370. package/dist/types/src/base/ui/system/flex_item/flex_basis.d.ts.map +1 -1
  371. package/dist/types/src/base/ui/system/flex_item/flex_grow.d.ts +0 -1
  372. package/dist/types/src/base/ui/system/flex_item/flex_grow.d.ts.map +1 -1
  373. package/dist/types/src/base/ui/system/flex_item/flex_item_set.d.ts +0 -1
  374. package/dist/types/src/base/ui/system/flex_item/flex_item_set.d.ts.map +1 -1
  375. package/dist/types/src/base/ui/system/flex_item/flex_shrink.d.ts +0 -1
  376. package/dist/types/src/base/ui/system/flex_item/flex_shrink.d.ts.map +1 -1
  377. package/dist/types/src/base/ui/system/flex_item/justify_self.d.ts +0 -1
  378. package/dist/types/src/base/ui/system/flex_item/justify_self.d.ts.map +1 -1
  379. package/dist/types/src/base/ui/system/flex_item/order.d.ts +0 -1
  380. package/dist/types/src/base/ui/system/flex_item/order.d.ts.map +1 -1
  381. package/dist/types/src/base/ui/system/index.d.ts +52 -52
  382. package/dist/types/src/base/ui/system/index.d.ts.map +1 -1
  383. package/dist/types/src/base/ui/system/overflow.d.ts +0 -1
  384. package/dist/types/src/base/ui/system/overflow.d.ts.map +1 -1
  385. package/dist/types/src/base/ui/system/position/bottom.d.ts +0 -1
  386. package/dist/types/src/base/ui/system/position/bottom.d.ts.map +1 -1
  387. package/dist/types/src/base/ui/system/position/left.d.ts +0 -1
  388. package/dist/types/src/base/ui/system/position/left.d.ts.map +1 -1
  389. package/dist/types/src/base/ui/system/position/position.d.ts +0 -1
  390. package/dist/types/src/base/ui/system/position/position.d.ts.map +1 -1
  391. package/dist/types/src/base/ui/system/position/position_set.d.ts +0 -1
  392. package/dist/types/src/base/ui/system/position/position_set.d.ts.map +1 -1
  393. package/dist/types/src/base/ui/system/position/right.d.ts +0 -1
  394. package/dist/types/src/base/ui/system/position/right.d.ts.map +1 -1
  395. package/dist/types/src/base/ui/system/position/top.d.ts +0 -1
  396. package/dist/types/src/base/ui/system/position/top.d.ts.map +1 -1
  397. package/dist/types/src/base/ui/system/position/z_index.d.ts +0 -1
  398. package/dist/types/src/base/ui/system/position/z_index.d.ts.map +1 -1
  399. package/dist/types/src/base/ui/system/spacing/margin.d.ts +0 -1
  400. package/dist/types/src/base/ui/system/spacing/margin.d.ts.map +1 -1
  401. package/dist/types/src/base/ui/system/spacing/padding.d.ts +0 -1
  402. package/dist/types/src/base/ui/system/spacing/padding.d.ts.map +1 -1
  403. package/dist/types/src/base/ui/system/spacing/spacing_set.d.ts +0 -1
  404. package/dist/types/src/base/ui/system/spacing/spacing_set.d.ts.map +1 -1
  405. package/dist/types/src/base/ui/system/typography/font_family.d.ts +0 -1
  406. package/dist/types/src/base/ui/system/typography/font_family.d.ts.map +1 -1
  407. package/dist/types/src/base/ui/system/typography/font_size.d.ts +0 -1
  408. package/dist/types/src/base/ui/system/typography/font_size.d.ts.map +1 -1
  409. package/dist/types/src/base/ui/system/typography/font_style.d.ts +0 -1
  410. package/dist/types/src/base/ui/system/typography/font_style.d.ts.map +1 -1
  411. package/dist/types/src/base/ui/system/typography/font_weight.d.ts +0 -1
  412. package/dist/types/src/base/ui/system/typography/font_weight.d.ts.map +1 -1
  413. package/dist/types/src/base/ui/system/typography/letter_spacing.d.ts +0 -1
  414. package/dist/types/src/base/ui/system/typography/letter_spacing.d.ts.map +1 -1
  415. package/dist/types/src/base/ui/system/typography/line_height.d.ts +0 -1
  416. package/dist/types/src/base/ui/system/typography/line_height.d.ts.map +1 -1
  417. package/dist/types/src/base/ui/system/typography/text_align.d.ts +0 -1
  418. package/dist/types/src/base/ui/system/typography/text_align.d.ts.map +1 -1
  419. package/dist/types/src/base/ui/system/typography/text_color.d.ts +0 -1
  420. package/dist/types/src/base/ui/system/typography/text_color.d.ts.map +1 -1
  421. package/dist/types/src/base/ui/system/typography/text_decoration.d.ts +0 -1
  422. package/dist/types/src/base/ui/system/typography/text_decoration.d.ts.map +1 -1
  423. package/dist/types/src/base/ui/system/typography/text_transform.d.ts +0 -1
  424. package/dist/types/src/base/ui/system/typography/text_transform.d.ts.map +1 -1
  425. package/dist/types/src/base/ui/system/typography/typography_set.d.ts +0 -1
  426. package/dist/types/src/base/ui/system/typography/typography_set.d.ts.map +1 -1
  427. package/dist/types/src/base/ui/table_picker.d.ts +0 -21
  428. package/dist/types/src/base/ui/table_picker.d.ts.map +1 -1
  429. package/dist/types/src/base/ui/table_picker_synced.d.ts.map +1 -1
  430. package/dist/types/src/base/ui/text.d.ts +0 -3
  431. package/dist/types/src/base/ui/text.d.ts.map +1 -1
  432. package/dist/types/src/base/ui/text_button.d.ts +1 -5
  433. package/dist/types/src/base/ui/text_button.d.ts.map +1 -1
  434. package/dist/types/src/base/ui/theme/default_theme/index.d.ts +1 -1
  435. package/dist/types/src/base/ui/theme/theme_context.d.ts +1 -1
  436. package/dist/types/src/base/ui/theme/use_theme.d.ts +1 -1
  437. package/dist/types/src/base/ui/tooltip.d.ts +0 -16
  438. package/dist/types/src/base/ui/tooltip.d.ts.map +1 -1
  439. package/dist/types/src/base/ui/types/aria_props.d.ts.map +1 -1
  440. package/dist/types/src/base/ui/types/data_attributes_prop.d.ts +0 -4
  441. package/dist/types/src/base/ui/types/data_attributes_prop.d.ts.map +1 -1
  442. package/dist/types/src/base/ui/types/tooltip_anchor_props.d.ts +0 -7
  443. package/dist/types/src/base/ui/types/tooltip_anchor_props.d.ts.map +1 -1
  444. package/dist/types/src/base/ui/ui.d.ts +1 -0
  445. package/dist/types/src/base/ui/ui.d.ts.map +1 -1
  446. package/dist/types/src/base/ui/view_picker.d.ts +0 -23
  447. package/dist/types/src/base/ui/view_picker.d.ts.map +1 -1
  448. package/dist/types/src/base/ui/view_picker_synced.d.ts.map +1 -1
  449. package/dist/types/src/base/ui/viewport_constraint.d.ts +1 -14
  450. package/dist/types/src/base/ui/viewport_constraint.d.ts.map +1 -1
  451. package/dist/types/src/base/unstable_testing_utils.d.ts +1 -1
  452. package/dist/types/src/base/unstable_testing_utils.d.ts.map +1 -1
  453. package/dist/types/src/interface/assert_run_context.d.ts +2 -0
  454. package/dist/types/src/interface/assert_run_context.d.ts.map +1 -0
  455. package/dist/types/src/interface/index.d.ts +1 -6
  456. package/dist/types/src/interface/index.d.ts.map +1 -1
  457. package/dist/types/src/interface/models/models.d.ts +1 -0
  458. package/dist/types/src/interface/models/models.d.ts.map +1 -1
  459. package/dist/types/src/interface/models/mutations.d.ts.map +1 -1
  460. package/dist/types/src/interface/models/table.d.ts.map +1 -1
  461. package/dist/types/src/interface/types/field.d.ts +6 -0
  462. package/dist/types/src/interface/types/field.d.ts.map +1 -1
  463. package/dist/types/src/interface/ui/initialize_block.d.ts.map +1 -1
  464. package/dist/types/src/interface/ui/ui.d.ts +1 -0
  465. package/dist/types/src/interface/ui/ui.d.ts.map +1 -1
  466. package/dist/types/src/interface/ui/use_custom_properties.d.ts +1 -1
  467. package/dist/types/src/shared/models/field_core.d.ts +3 -1
  468. package/dist/types/src/shared/models/field_core.d.ts.map +1 -1
  469. package/dist/types/src/shared/models/mutations_core.d.ts.map +1 -1
  470. package/dist/types/src/shared/models/table_core.d.ts.map +1 -1
  471. package/dist/types/src/shared/private_utils.d.ts +0 -9
  472. package/dist/types/src/shared/private_utils.d.ts.map +1 -1
  473. package/dist/types/src/shared/types/field_core.d.ts +19 -1
  474. package/dist/types/src/shared/types/field_core.d.ts.map +1 -1
  475. package/dist/types/src/shared/types/mutations_core.d.ts +8 -4
  476. package/dist/types/src/shared/types/mutations_core.d.ts.map +1 -1
  477. package/dist/types/src/shared/ui/global_config_synced_component_helpers.d.ts +0 -2
  478. package/dist/types/src/shared/ui/global_config_synced_component_helpers.d.ts.map +1 -1
  479. package/dist/types/src/shared/ui/loader.d.ts.map +1 -1
  480. package/dist/types/src/shared/ui/use_watchable.d.ts +4 -2
  481. package/dist/types/src/shared/ui/use_watchable.d.ts.map +1 -1
  482. package/dist/types/src/shared/ui/with_hooks.d.ts +2 -2
  483. package/dist/types/src/shared/ui/with_hooks.d.ts.map +1 -1
  484. package/dist/types/src/testing/{abstract_mock_airtable_interface.d.ts → base/abstract_mock_airtable_interface.d.ts} +13 -13
  485. package/dist/types/src/testing/base/abstract_mock_airtable_interface.d.ts.map +1 -0
  486. package/dist/types/src/testing/interface/abstract_mock_airtable_interface.d.ts +51 -0
  487. package/dist/types/src/testing/interface/abstract_mock_airtable_interface.d.ts.map +1 -0
  488. package/models.js +1 -1
  489. package/package.json +24 -23
  490. package/types.js +1 -1
  491. package/dist/cjs/base/models/abstract_model_with_async_data.js +0 -273
  492. package/dist/cjs/base/models/base.js +0 -306
  493. package/dist/cjs/base/models/create_aggregators.js +0 -115
  494. package/dist/cjs/base/models/cursor.js +0 -393
  495. package/dist/cjs/base/models/field.js +0 -427
  496. package/dist/cjs/base/models/grouped_record_query_result.js +0 -399
  497. package/dist/cjs/base/models/linked_records_query_result.js +0 -728
  498. package/dist/cjs/base/models/mutations.js +0 -338
  499. package/dist/cjs/base/models/object_pool.js +0 -184
  500. package/dist/cjs/base/models/record.js +0 -304
  501. package/dist/cjs/base/models/record_query_result.js +0 -741
  502. package/dist/cjs/base/models/record_store.js +0 -825
  503. package/dist/cjs/base/models/session.js +0 -182
  504. package/dist/cjs/base/models/table.js +0 -668
  505. package/dist/cjs/base/models/table_or_view_query_result.js +0 -1013
  506. package/dist/cjs/base/models/view.js +0 -431
  507. package/dist/cjs/base/models/view_data_store.js +0 -403
  508. package/dist/cjs/base/models/view_metadata_query_result.js +0 -224
  509. package/dist/cjs/base/perform_record_action.js +0 -257
  510. package/dist/cjs/base/sdk.js +0 -233
  511. package/dist/cjs/base/settings_button.js +0 -138
  512. package/dist/cjs/base/ui/baymax_utils.js +0 -133
  513. package/dist/cjs/base/ui/block_wrapper.js +0 -143
  514. package/dist/cjs/base/ui/box.js +0 -110
  515. package/dist/cjs/base/ui/button.js +0 -182
  516. package/dist/cjs/base/ui/cell_renderer.js +0 -255
  517. package/dist/cjs/base/ui/choice_token.js +0 -110
  518. package/dist/cjs/base/ui/collaborator_token.js +0 -145
  519. package/dist/cjs/base/ui/color_palette.js +0 -239
  520. package/dist/cjs/base/ui/color_palette_synced.js +0 -98
  521. package/dist/cjs/base/ui/confirmation_dialog.js +0 -153
  522. package/dist/cjs/base/ui/dialog.js +0 -142
  523. package/dist/cjs/base/ui/dialog_close_button.js +0 -152
  524. package/dist/cjs/base/ui/expand_record_picker_async.js +0 -100
  525. package/dist/cjs/base/ui/field_icon.js +0 -62
  526. package/dist/cjs/base/ui/field_picker.js +0 -143
  527. package/dist/cjs/base/ui/field_picker_synced.js +0 -88
  528. package/dist/cjs/base/ui/form_field.js +0 -137
  529. package/dist/cjs/base/ui/geometry/point.js +0 -21
  530. package/dist/cjs/base/ui/geometry/rect.js +0 -67
  531. package/dist/cjs/base/ui/geometry/size.js +0 -21
  532. package/dist/cjs/base/ui/global_alert.js +0 -92
  533. package/dist/cjs/base/ui/heading.js +0 -181
  534. package/dist/cjs/base/ui/icon.js +0 -129
  535. package/dist/cjs/base/ui/input.js +0 -200
  536. package/dist/cjs/base/ui/input_synced.js +0 -89
  537. package/dist/cjs/base/ui/label.js +0 -105
  538. package/dist/cjs/base/ui/link.js +0 -229
  539. package/dist/cjs/base/ui/loader.js +0 -82
  540. package/dist/cjs/base/ui/modal.js +0 -184
  541. package/dist/cjs/base/ui/model_picker_select.js +0 -83
  542. package/dist/cjs/base/ui/popover.js +0 -407
  543. package/dist/cjs/base/ui/progress_bar.js +0 -128
  544. package/dist/cjs/base/ui/record_card.js +0 -653
  545. package/dist/cjs/base/ui/record_card_list.js +0 -377
  546. package/dist/cjs/base/ui/select.js +0 -247
  547. package/dist/cjs/base/ui/select_and_select_buttons_helpers.js +0 -87
  548. package/dist/cjs/base/ui/select_buttons.js +0 -192
  549. package/dist/cjs/base/ui/select_buttons_synced.js +0 -84
  550. package/dist/cjs/base/ui/select_synced.js +0 -87
  551. package/dist/cjs/base/ui/switch.js +0 -196
  552. package/dist/cjs/base/ui/switch_synced.js +0 -75
  553. package/dist/cjs/base/ui/synced.js +0 -70
  554. package/dist/cjs/base/ui/system/appearance/appearance_set.js +0 -30
  555. package/dist/cjs/base/ui/system/appearance/background_color.js +0 -21
  556. package/dist/cjs/base/ui/system/appearance/border_radius.js +0 -21
  557. package/dist/cjs/base/ui/system/appearance/box_shadow.js +0 -21
  558. package/dist/cjs/base/ui/system/appearance/opacity.js +0 -21
  559. package/dist/cjs/base/ui/system/dimensions/dimensions_set.js +0 -31
  560. package/dist/cjs/base/ui/system/dimensions/height.js +0 -21
  561. package/dist/cjs/base/ui/system/dimensions/max_height.js +0 -21
  562. package/dist/cjs/base/ui/system/dimensions/max_width.js +0 -21
  563. package/dist/cjs/base/ui/system/dimensions/min_height.js +0 -21
  564. package/dist/cjs/base/ui/system/dimensions/min_width.js +0 -21
  565. package/dist/cjs/base/ui/system/dimensions/width.js +0 -21
  566. package/dist/cjs/base/ui/system/display.js +0 -22
  567. package/dist/cjs/base/ui/system/flex_container/align_content.js +0 -18
  568. package/dist/cjs/base/ui/system/flex_container/align_items.js +0 -18
  569. package/dist/cjs/base/ui/system/flex_container/flex_container_set.js +0 -31
  570. package/dist/cjs/base/ui/system/flex_container/flex_direction.js +0 -18
  571. package/dist/cjs/base/ui/system/flex_container/flex_wrap.js +0 -18
  572. package/dist/cjs/base/ui/system/flex_container/justify_content.js +0 -18
  573. package/dist/cjs/base/ui/system/flex_container/justify_items.js +0 -19
  574. package/dist/cjs/base/ui/system/flex_item/align_self.js +0 -18
  575. package/dist/cjs/base/ui/system/flex_item/flex.js +0 -18
  576. package/dist/cjs/base/ui/system/flex_item/flex_basis.js +0 -18
  577. package/dist/cjs/base/ui/system/flex_item/flex_grow.js +0 -18
  578. package/dist/cjs/base/ui/system/flex_item/flex_item_set.js +0 -32
  579. package/dist/cjs/base/ui/system/flex_item/flex_shrink.js +0 -18
  580. package/dist/cjs/base/ui/system/flex_item/justify_self.js +0 -19
  581. package/dist/cjs/base/ui/system/flex_item/order.js +0 -18
  582. package/dist/cjs/base/ui/system/overflow.js +0 -24
  583. package/dist/cjs/base/ui/system/position/position.js +0 -18
  584. package/dist/cjs/base/ui/system/position/position_set.js +0 -31
  585. package/dist/cjs/base/ui/system/position/z_index.js +0 -21
  586. package/dist/cjs/base/ui/system/spacing/spacing_set.js +0 -27
  587. package/dist/cjs/base/ui/system/typography/font_family.js +0 -21
  588. package/dist/cjs/base/ui/system/typography/font_size.js +0 -21
  589. package/dist/cjs/base/ui/system/typography/font_style.js +0 -18
  590. package/dist/cjs/base/ui/system/typography/font_weight.js +0 -21
  591. package/dist/cjs/base/ui/system/typography/letter_spacing.js +0 -21
  592. package/dist/cjs/base/ui/system/typography/line_height.js +0 -18
  593. package/dist/cjs/base/ui/system/typography/text_align.js +0 -18
  594. package/dist/cjs/base/ui/system/typography/text_color.js +0 -21
  595. package/dist/cjs/base/ui/system/typography/text_decoration.js +0 -18
  596. package/dist/cjs/base/ui/system/typography/text_transform.js +0 -18
  597. package/dist/cjs/base/ui/system/typography/typography_set.js +0 -35
  598. package/dist/cjs/base/ui/system/utils/create_responsive_prop_type.js +0 -19
  599. package/dist/cjs/base/ui/system/utils/create_style_prop_types.js +0 -24
  600. package/dist/cjs/base/ui/system/utils/enum_prop_type_utils.js +0 -35
  601. package/dist/cjs/base/ui/system/utils/get_style_props_for_responsive_prop.js +0 -113
  602. package/dist/cjs/base/ui/table_picker.js +0 -95
  603. package/dist/cjs/base/ui/table_picker_synced.js +0 -84
  604. package/dist/cjs/base/ui/text.js +0 -150
  605. package/dist/cjs/base/ui/text_button.js +0 -228
  606. package/dist/cjs/base/ui/theme/default_theme/control_sizes.js +0 -96
  607. package/dist/cjs/base/ui/theme/default_theme/select_variants.js +0 -59
  608. package/dist/cjs/base/ui/theme/default_theme/switch_variants.js +0 -91
  609. package/dist/cjs/base/ui/tooltip.js +0 -215
  610. package/dist/cjs/base/ui/types/aria_props.js +0 -23
  611. package/dist/cjs/base/ui/types/data_attributes_prop.js +0 -18
  612. package/dist/cjs/base/ui/types/tooltip_anchor_props.js +0 -17
  613. package/dist/cjs/base/ui/use_styled_system.js +0 -32
  614. package/dist/cjs/base/ui/view_picker.js +0 -133
  615. package/dist/cjs/base/ui/view_picker_synced.js +0 -88
  616. package/dist/cjs/base/ui/viewport_constraint.js +0 -176
  617. package/dist/cjs/base/ui/with_styled_system.js +0 -165
  618. package/dist/cjs/base/undo_redo.js +0 -48
  619. package/dist/cjs/base/viewport.js +0 -397
  620. package/dist/cjs/injected/airtable_interface.js +0 -22
  621. package/dist/cjs/interface/index.js +0 -36
  622. package/dist/cjs/interface/models/base.js +0 -54
  623. package/dist/cjs/interface/models/field.js +0 -42
  624. package/dist/cjs/interface/models/mutations.js +0 -79
  625. package/dist/cjs/interface/models/record.js +0 -71
  626. package/dist/cjs/interface/models/record_store.js +0 -83
  627. package/dist/cjs/interface/models/session.js +0 -42
  628. package/dist/cjs/interface/models/table.js +0 -92
  629. package/dist/cjs/interface/sdk.js +0 -104
  630. package/dist/cjs/interface/types/mutations.js +0 -24
  631. package/dist/cjs/interface/ui/block_wrapper.js +0 -61
  632. package/dist/cjs/shared/global_config.js +0 -511
  633. package/dist/cjs/shared/models/abstract_model.js +0 -119
  634. package/dist/cjs/shared/models/base_core.js +0 -602
  635. package/dist/cjs/shared/models/field_core.js +0 -329
  636. package/dist/cjs/shared/models/mutations_core.js +0 -439
  637. package/dist/cjs/shared/models/record_core.js +0 -272
  638. package/dist/cjs/shared/models/record_store_core.js +0 -213
  639. package/dist/cjs/shared/models/session_core.js +0 -214
  640. package/dist/cjs/shared/models/table_core.js +0 -1530
  641. package/dist/cjs/shared/sdk_core.js +0 -115
  642. package/dist/cjs/shared/types/mutation_constants.js +0 -11
  643. package/dist/cjs/shared/ui/loader.js +0 -68
  644. package/dist/cjs/shared/watchable.js +0 -216
  645. package/dist/cjs/stats/block_stats.js +0 -96
  646. package/dist/cjs/testing/abstract_mock_airtable_interface.js +0 -277
  647. package/dist/types/src/base/ui/system/utils/create_responsive_prop_type.d.ts +0 -2
  648. package/dist/types/src/base/ui/system/utils/create_responsive_prop_type.d.ts.map +0 -1
  649. package/dist/types/src/base/ui/system/utils/create_style_prop_types.d.ts +0 -4
  650. package/dist/types/src/base/ui/system/utils/create_style_prop_types.d.ts.map +0 -1
  651. package/dist/types/src/base/ui/system/utils/enum_prop_type_utils.d.ts +0 -21
  652. package/dist/types/src/base/ui/system/utils/enum_prop_type_utils.d.ts.map +0 -1
  653. package/dist/types/src/testing/abstract_mock_airtable_interface.d.ts.map +0 -1
  654. /package/dist/{cjs → esm}/base/types/aggregators.js +0 -0
  655. /package/dist/{cjs → esm}/base/types/backend_fetch_types.js +0 -0
  656. /package/dist/{cjs → esm}/base/types/base.js +0 -0
  657. /package/dist/{cjs → esm}/base/types/cursor.js +0 -0
  658. /package/dist/{cjs → esm}/base/types/field.js +0 -0
  659. /package/dist/{cjs → esm}/base/types/record.js +0 -0
  660. /package/dist/{cjs → esm}/base/types/record_action_data.js +0 -0
  661. /package/dist/{cjs → esm}/base/types/table.js +0 -0
  662. /package/dist/{cjs → esm}/base/types/viewport.js +0 -0
  663. /package/dist/{cjs → esm}/base/ui/system/utils/csstype.js +0 -0
  664. /package/dist/{cjs → esm}/base/ui/system/utils/types.js +0 -0
  665. /package/dist/{cjs/interface/types/base.js → esm/base/ui/types/aria_props.js} +0 -0
  666. /package/dist/{cjs/interface/types/field.js → esm/base/ui/types/data_attributes_prop.js} +0 -0
  667. /package/dist/{cjs/interface/types/record.js → esm/base/ui/types/tooltip_anchor_props.js} +0 -0
  668. /package/dist/{cjs/interface/types/table.js → esm/interface/types/base.js} +0 -0
  669. /package/dist/{cjs/sdk_mode.js → esm/interface/types/field.js} +0 -0
  670. /package/dist/{cjs/shared → esm/interface}/types/record.js +0 -0
  671. /package/dist/{cjs/shared/types/airtable_interface_core.js → esm/interface/types/table.js} +0 -0
  672. /package/dist/{cjs → esm}/interface/ui/expand_record.js +0 -0
  673. /package/dist/{cjs/shared/types/attachment.js → esm/sdk_mode.js} +0 -0
  674. /package/dist/{cjs/shared/types/base_core.js → esm/shared/types/airtable_interface_core.js} +0 -0
  675. /package/dist/{cjs/shared/types/collaborator.js → esm/shared/types/attachment.js} +0 -0
  676. /package/dist/{cjs/shared/types/global_config.js → esm/shared/types/base_core.js} +0 -0
  677. /package/dist/{cjs/shared/types/hyper_ids.js → esm/shared/types/collaborator.js} +0 -0
  678. /package/dist/{cjs/shared/types/stat.js → esm/shared/types/global_config.js} +0 -0
  679. /package/dist/{cjs/shared/types/table_core.js → esm/shared/types/hyper_ids.js} +0 -0
@@ -0,0 +1,326 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _private_utils = require("../../shared/private_utils");
8
+ var _mutations = require("../types/mutations");
9
+ var _abstract_model = _interopRequireDefault(require("../../shared/models/abstract_model"));
10
+ var _object_pool = _interopRequireDefault(require("./object_pool"));
11
+ var _record_query_result = _interopRequireWildcard(require("./record_query_result"));
12
+ var _view_metadata_query_result = _interopRequireDefault(require("./view_metadata_query_result"));
13
+ var RecordColoring = _interopRequireWildcard(require("./record_coloring"));
14
+ function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
15
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
16
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
17
+ /** @module @airtable/blocks/models: View */ /** */
18
+
19
+ // This doesn't follow our enum naming conventions because we want the keys
20
+ // to mirror the method/getter names on the model class.
21
+ const WatchableViewKeys = Object.freeze({
22
+ name: 'name',
23
+ isLockedView: 'isLockedView'
24
+ });
25
+
26
+ /**
27
+ * A key in {@link View} that can be watched.
28
+ * - `name`
29
+ */
30
+
31
+ /**
32
+ * A class that represents an Airtable view. Every {@link Table} has one or more views.
33
+ *
34
+ * @docsPath models/View
35
+ */
36
+ class View extends _abstract_model.default {
37
+ /** @internal */
38
+ static _className = 'View';
39
+ /** @internal */
40
+ static _isWatchableKey(key) {
41
+ return (0, _private_utils.isEnumValue)(WatchableViewKeys, key);
42
+ }
43
+ /** @internal */
44
+
45
+ /** @internal */
46
+
47
+ /** @internal */
48
+
49
+ /**
50
+ * @internal
51
+ */
52
+ constructor(sdk, parentTable, viewDataStore, viewId) {
53
+ super(sdk, viewId);
54
+ this._parentTable = parentTable;
55
+ this._viewDataStore = viewDataStore;
56
+ this.__viewMetadataQueryResultPool = new _object_pool.default(_view_metadata_query_result.default);
57
+ }
58
+
59
+ /**
60
+ * @internal
61
+ */
62
+ get _dataOrNullIfDeleted() {
63
+ const tableData = this._baseData.tablesById[this.parentTable.id];
64
+ return tableData?.viewsById[this._id] ?? null;
65
+ }
66
+ /**
67
+ * The table that this view belongs to. Should never change because views aren't moved between tables.
68
+ *
69
+ * @internal (since we may not be able to return parent model instances in the immutable models world)
70
+ * @example
71
+ * ```js
72
+ * const view = myTable.getViewByName('Grid View');
73
+ * console.log(view.parentTable.id === myTable.id);
74
+ * // => true
75
+ * ```
76
+ */
77
+ get parentTable() {
78
+ return this._parentTable;
79
+ }
80
+ /**
81
+ * The name of the view. Can be watched.
82
+ *
83
+ * @example
84
+ * ```js
85
+ * console.log(myView.name);
86
+ * // => 'Grid view'
87
+ * ```
88
+ */
89
+ get name() {
90
+ return this._data.name;
91
+ }
92
+ /**
93
+ * The type of the view, such as Grid, Calendar, or Kanban. Should never change because view types cannot be modified.
94
+ *
95
+ * @example
96
+ * ```js
97
+ * console.log(myView.type);
98
+ * // => 'kanban'
99
+ * ```
100
+ */
101
+ get type() {
102
+ return this._data.type;
103
+ }
104
+ /**
105
+ * If the view is locked. Can be watched.
106
+ *
107
+ * @example
108
+ * ```js
109
+ * console.log(myView.isLockedView);
110
+ * // => false
111
+ * ```
112
+ */
113
+ get isLockedView() {
114
+ return this._data.isLockedView;
115
+ }
116
+ /**
117
+ * The URL for the view. You can visit this URL in the browser to be taken to the view in the Airtable UI.
118
+ *
119
+ * @example
120
+ * ```js
121
+ * console.log(myView.url);
122
+ * // => 'https://airtable.com/appxxxxxxxxxxxxxx/tblxxxxxxxxxxxxxx/viwxxxxxxxxxxxxxx'
123
+ * ```
124
+ */
125
+ get url() {
126
+ return this._sdk.__airtableInterface.urlConstructor.getViewUrl(this.id, this.parentTable.id);
127
+ }
128
+ /**
129
+ * Select records from the view. Returns a {@link RecordQueryResult}.
130
+ *
131
+ * Consider using {@link useRecords} or {@link useRecordIds} instead, unless you need the
132
+ * features of a QueryResult (e.g. `queryResult.getRecordById`). Record hooks handle
133
+ * loading/unloading and updating your UI automatically, but manually `select`ing records is
134
+ * useful for one-off data processing.
135
+ *
136
+ * @param opts Options for the query, such as sorts, fields, and record coloring. By
137
+ * default, records will be coloured according to the view.
138
+ * @example
139
+ * ```js
140
+ * import {useBase, useRecords} from '@airtable/blocks/base/ui';
141
+ * import React from 'react';
142
+ *
143
+ * function TodoList() {
144
+ * const base = useBase();
145
+ * const table = base.getTableByName('Tasks');
146
+ * const view = table.getViewByName('Grid view');
147
+ *
148
+ * const queryResult = view.selectRecords();
149
+ * const records = useRecords(queryResult);
150
+ *
151
+ * return (
152
+ * <ul>
153
+ * {records.map(record => (
154
+ * <li key={record.id}>
155
+ * {record.name || 'Unnamed record'}
156
+ * </li>
157
+ * ))}
158
+ * </ul>
159
+ * );
160
+ * }
161
+ * ```
162
+ */
163
+ selectRecords() {
164
+ let opts = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
165
+ const normalizedOpts = _record_query_result.default._normalizeOpts(this.parentTable, this._viewDataStore.parentRecordStore, {
166
+ ...opts,
167
+ recordColorMode: opts.recordColorMode === undefined ? RecordColoring.modes.byView(this) : opts.recordColorMode
168
+ });
169
+ return this.parentTable.__tableOrViewQueryResultPool.getObjectForReuse(this._sdk, this, normalizedOpts);
170
+ }
171
+ /**
172
+ * Select and load records from the view. Returns a {@link RecordQueryResult} promise where
173
+ * record data has been loaded.
174
+ *
175
+ * Consider using {@link useRecords} or {@link useRecordIds} instead, unless you need the
176
+ * features of a QueryResult (e.g. `queryResult.getRecordById`). Record hooks handle
177
+ * loading/unloading and updating your UI automatically, but manually `select`ing records is
178
+ * useful for one-off data processing.
179
+ *
180
+ * Once you've finished with your query, remember to call `queryResult.unloadData()`.
181
+ *
182
+ * @param opts Options for the query, such as sorts, fields, and record coloring. By
183
+ * default, records will be coloured according to the view.
184
+ * @example
185
+ * ```js
186
+ * async function getRecordCountAsync(view) {
187
+ * const query = await view.selectRecordsAsync();
188
+ * const recordCount = query.recordIds.length;
189
+ * query.unloadData();
190
+ * return recordCount;
191
+ * }
192
+ * ```
193
+ */
194
+ async selectRecordsAsync() {
195
+ let opts = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
196
+ const queryResult = this.selectRecords(opts);
197
+ await queryResult.loadDataAsync();
198
+ return queryResult;
199
+ }
200
+ /**
201
+ * Select the field order and visible fields from the view. Returns a
202
+ * {@link ViewMetadataQueryResult}.
203
+ *
204
+ * Consider using {@link useViewMetadata} instead if you're creating a React UI. The
205
+ * {@link useViewMetadata} hook handles loading/unloading and updating your UI automatically,
206
+ * but manually `select`ing data is useful for one-off data processing.
207
+ *
208
+ * @example
209
+ * ```js
210
+ * async function loadMetadataForViewAsync(view) {
211
+ * const viewMetadata = view.selectMetadata();
212
+ * await viewMetadata.loadDataAsync();
213
+ *
214
+ * console.log('Visible fields:');
215
+ * console.log(viewMetadata.visibleFields.map(field => field.name));
216
+ * // => ['Field 1', 'Field 2', 'Field 3']
217
+ *
218
+ * console.log('All fields:');
219
+ * console.log(viewMetadata.allFields.map(field => field.name));
220
+ * // => ['Field 1', 'Field 2', 'Field 3', 'Hidden field 4']
221
+ *
222
+ * viewMetadata.unloadData();
223
+ * }
224
+ * ```
225
+ */
226
+ selectMetadata() {
227
+ return this.__viewMetadataQueryResultPool.getObjectForReuse(this._sdk, this, this._viewDataStore);
228
+ }
229
+ /**
230
+ * Select and load the field order and visible fields from the view. Returns a
231
+ * {@link ViewMetadataQueryResult} promise where the metadata has already been loaded.
232
+ *
233
+ * Consider using {@link useViewMetadata} instead if you're creating a React UI. The
234
+ * {@link useViewMetadata} hook handles loading/unloading and updating your UI automatically,
235
+ * but manually `select`ing data is useful for one-off data processing.
236
+ *
237
+ * @example
238
+ * ```js
239
+ * async function loadMetadataForViewAsync(view) {
240
+ * const viewMetadata = await view.selectMetadata();
241
+ *
242
+ * console.log('Visible fields:');
243
+ * console.log(viewMetadata.visibleFields.map(field => field.name));
244
+ * // => ['Field 1', 'Field 2', 'Field 3']
245
+ *
246
+ * console.log('All fields:');
247
+ * console.log(viewMetadata.allFields.map(field => field.name));
248
+ * // => ['Field 1', 'Field 2', 'Field 3', 'Hidden field 4']
249
+ *
250
+ * viewMetadata.unloadData();
251
+ * }
252
+ * ```
253
+ */
254
+ async selectMetadataAsync() {
255
+ const queryResult = this.selectMetadata();
256
+ await queryResult.loadDataAsync();
257
+ return queryResult;
258
+ }
259
+
260
+ /**
261
+ * Checks whether the current user has permission to update view metadata.
262
+ *
263
+ * @param viewMetadata
264
+ * @hidden
265
+ */
266
+ checkPermissionsForUpdateMetadata(viewMetadata) {
267
+ const metadata = {
268
+ groupLevels: (0, _record_query_result.normalizeSortsOrGroups)(this.parentTable, viewMetadata.groupLevels)
269
+ };
270
+ return this._sdk.__mutations.checkPermissionsForMutation({
271
+ type: _mutations.MutationTypes.UPDATE_VIEW_METADATA,
272
+ tableId: this.parentTable.id,
273
+ viewId: this.id,
274
+ metadata
275
+ });
276
+ }
277
+
278
+ /**
279
+ * An alias for `checkPermissionsForUpdateMetadata(viewMetadata).hasPermission`.
280
+ *
281
+ * Checks whether the current user has permission to update view metadata.
282
+ *
283
+ * @param viewMetadata
284
+ * @hidden
285
+ */
286
+ hasPermissionToUpdateMetadata(viewMetadata) {
287
+ return this.checkPermissionsForUpdateMetadata(viewMetadata).hasPermission;
288
+ }
289
+
290
+ /**
291
+ * Updates view metadata, this is currently only supported from block views
292
+ * altering their own view's grouping config.
293
+ *
294
+ * @param ViewMetadataForUpdate
295
+ * @hidden
296
+ */
297
+ async updateMetadataAsync(viewMetadata) {
298
+ const metadata = {
299
+ groupLevels: (0, _record_query_result.normalizeSortsOrGroups)(this.parentTable, viewMetadata.groupLevels)
300
+ };
301
+ await this._sdk.__mutations.applyMutationAsync({
302
+ type: _mutations.MutationTypes.UPDATE_VIEW_METADATA,
303
+ tableId: this.parentTable.id,
304
+ viewId: this.id,
305
+ metadata
306
+ });
307
+ }
308
+
309
+ /**
310
+ * @internal
311
+ */
312
+ __triggerOnChangeForDirtyPaths(dirtyPaths) {
313
+ let didViewSchemaChange = false;
314
+ this._viewDataStore.triggerOnChangeForDirtyPaths(dirtyPaths);
315
+ if (dirtyPaths.name) {
316
+ this._onChange(WatchableViewKeys.name);
317
+ didViewSchemaChange = true;
318
+ }
319
+ if (dirtyPaths.isLocked) {
320
+ this._onChange(WatchableViewKeys.isLockedView);
321
+ didViewSchemaChange = true;
322
+ }
323
+ return didViewSchemaChange;
324
+ }
325
+ }
326
+ var _default = exports.default = View;
@@ -0,0 +1,265 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = exports.WatchableViewDataStoreKeys = void 0;
7
+ var _private_utils = require("../../shared/private_utils");
8
+ var _error_utils = require("../../shared/error_utils");
9
+ var _abstract_model_with_async_data = _interopRequireDefault(require("./abstract_model_with_async_data"));
10
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
11
+ const WatchableViewDataStoreKeys = exports.WatchableViewDataStoreKeys = Object.freeze({
12
+ visibleRecords: 'visibleRecords',
13
+ visibleRecordIds: 'visibleRecordIds',
14
+ groups: 'groups',
15
+ groupLevels: 'groupLevels',
16
+ recordColors: 'recordColors',
17
+ allFieldIds: 'allFieldIds',
18
+ visibleFieldIds: 'visibleFieldIds'
19
+ });
20
+
21
+ /** @internal */
22
+
23
+ // ViewDataStore contains loadable data for a specific view. That means the set of visible records,
24
+ // and field order/visibility information. View itself only contains core schema information. The
25
+ // data here doesn't belong in View as it's record data or conditionally loaded.
26
+ /** @internal */
27
+ class ViewDataStore extends _abstract_model_with_async_data.default {
28
+ static _className = 'ViewDataStore';
29
+ static _isWatchableKey(key) {
30
+ return (0, _private_utils.isEnumValue)(WatchableViewDataStoreKeys, key);
31
+ }
32
+ static _shouldLoadDataForKey(key) {
33
+ return true;
34
+ }
35
+ constructor(sdk, parentRecordStore, viewId) {
36
+ super(sdk, `${viewId}-ViewDataStore`);
37
+ this.parentRecordStore = parentRecordStore;
38
+ this._airtableInterface = sdk.__airtableInterface;
39
+ this._mostRecentTableLoadPromise = null;
40
+ this.viewId = viewId;
41
+ }
42
+ get _dataOrNullIfDeleted() {
43
+ const tableData = this._baseData.tablesById[this.parentRecordStore.tableId];
44
+ return tableData?.viewsById[this.viewId] ?? null;
45
+ }
46
+ _onChangeIsDataLoaded() {
47
+ // noop
48
+ }
49
+ get isDataLoaded() {
50
+ return this._isDataLoaded && this.parentRecordStore.isRecordMetadataLoaded;
51
+ }
52
+ __onDataDeletion() {
53
+ this._forceUnload();
54
+ }
55
+ async loadDataAsync() {
56
+ // Override this method to also load table data.
57
+ // NOTE: it's important that we call loadDataAsync on the table here and not in
58
+ // _loadDataAsync since we want the retain counts for the view and table to increase/decrease
59
+ // in lock-step. If we load table data in _loadDataAsync, the table's retain
60
+ // count only increments some of the time, which leads to unexpected behavior.
61
+ const tableLoadPromise = this.parentRecordStore.loadRecordMetadataAsync();
62
+ this._mostRecentTableLoadPromise = tableLoadPromise;
63
+ await super.loadDataAsync();
64
+ }
65
+ async _loadDataAsync() {
66
+ // We need to be sure that the table data is loaded *before* we return
67
+ // from this method.
68
+ (0, _error_utils.invariant)(this._mostRecentTableLoadPromise, 'No table load promise');
69
+ const tableLoadPromise = this._mostRecentTableLoadPromise;
70
+ const [viewData] = await Promise.all([this._airtableInterface.fetchAndSubscribeToViewDataAsync(this.parentRecordStore.tableId, this.viewId), tableLoadPromise]);
71
+ this._data.visibleRecordIds = viewData.visibleRecordIds;
72
+ this._data.fieldOrder = viewData.fieldOrder;
73
+ this._data.groups = viewData.groups;
74
+ this._data.groupLevels = viewData.groupLevels;
75
+ this._data.colorsByRecordId = viewData.colorsByRecordId;
76
+ if (this._data.colorsByRecordId) {
77
+ for (const record of this.visibleRecords) {
78
+ if ((0, _private_utils.has)(this._data.colorsByRecordId, record.id)) {
79
+ record.__triggerOnChangeForRecordColorInViewId(this.viewId);
80
+ }
81
+ }
82
+ }
83
+ return [WatchableViewDataStoreKeys.visibleRecords, WatchableViewDataStoreKeys.visibleRecordIds, WatchableViewDataStoreKeys.allFieldIds, WatchableViewDataStoreKeys.groups, WatchableViewDataStoreKeys.groupLevels, WatchableViewDataStoreKeys.visibleFieldIds, WatchableViewDataStoreKeys.recordColors];
84
+ }
85
+ unloadData() {
86
+ // Override this method to also unload the table's data.
87
+ // NOTE: it's important that we do this here, since we want the view and table's
88
+ // retain counts to increment/decrement in lock-step. If we unload the table's
89
+ // data in _unloadData, it leads to unexpected behavior.
90
+ super.unloadData();
91
+ this.parentRecordStore.unloadRecordMetadata();
92
+ }
93
+ _unloadData() {
94
+ this._mostRecentTableLoadPromise = null;
95
+ this._airtableInterface.unsubscribeFromViewData(this.parentRecordStore.tableId, this.viewId);
96
+ if (!this.isDeleted) {
97
+ this._data.visibleRecordIds = undefined;
98
+ this._data.groups = undefined;
99
+ this._data.colorsByRecordId = undefined;
100
+ }
101
+ }
102
+ __generateChangesForParentTableAddMultipleRecords(recordIds) {
103
+ const newVisibleRecordIds = [...this.visibleRecordIds, ...recordIds];
104
+ return [{
105
+ path: ['tablesById', this.parentRecordStore.tableId, 'viewsById', this.viewId, 'visibleRecordIds'],
106
+ value: newVisibleRecordIds
107
+ }];
108
+ }
109
+ __generateChangesForParentTableDeleteMultipleRecords(recordIds) {
110
+ const recordIdsToDeleteSet = {};
111
+ for (const recordId of recordIds) {
112
+ recordIdsToDeleteSet[recordId] = true;
113
+ }
114
+ const newVisibleRecordIds = this.visibleRecordIds.filter(recordId => !recordIdsToDeleteSet[recordId]);
115
+ const changePayload = [{
116
+ path: ['tablesById', this.parentRecordStore.tableId, 'viewsById', this.viewId, 'visibleRecordIds'],
117
+ value: newVisibleRecordIds
118
+ }];
119
+ if (this._data.groups) {
120
+ const newGroups = this.__recursivelyRemoveRecordsFromGroupsInPlace((0, _private_utils.cloneDeep)(this._data.groups), recordIdsToDeleteSet);
121
+ changePayload.push({
122
+ path: ['tablesById', this.parentRecordStore.tableId, 'viewsById', this.viewId, 'groups'],
123
+ value: newGroups
124
+ });
125
+ }
126
+ return changePayload;
127
+ }
128
+ __recursivelyRemoveRecordsFromGroupsInPlace(groups, recordIdsToDeleteSet) {
129
+ if (!groups || groups.length === 0) {
130
+ return groups;
131
+ }
132
+ return groups.map(group => {
133
+ if (group.visibleRecordIds) {
134
+ group.visibleRecordIds = group.visibleRecordIds.filter(id => !recordIdsToDeleteSet[id]);
135
+ }
136
+ this.__recursivelyRemoveRecordsFromGroupsInPlace(group.groups, recordIdsToDeleteSet);
137
+ return group;
138
+ });
139
+ }
140
+
141
+ /**
142
+ * The record IDs that are not filtered out of this view.
143
+ * Can be watched to know when records are created, deleted, reordered, or
144
+ * filtered in and out of this view.
145
+ */
146
+ get visibleRecordIds() {
147
+ const visibleRecordIds = this._data.visibleRecordIds;
148
+ (0, _error_utils.invariant)(visibleRecordIds, 'View data is not loaded');
149
+
150
+ // Freeze visibleRecordIds so users can't mutate it.
151
+ // If it changes from liveapp, we get an entire new array which will
152
+ // replace this one, so it's okay to freeze it.
153
+ if (!Object.isFrozen(visibleRecordIds)) {
154
+ Object.freeze(visibleRecordIds);
155
+ }
156
+ return visibleRecordIds;
157
+ }
158
+
159
+ /**
160
+ * The records that are not filtered out of this view.
161
+ * Can be watched to know when records are created, deleted, reordered, or
162
+ * filtered in and out of this view.
163
+ */
164
+ get visibleRecords() {
165
+ (0, _error_utils.invariant)(this.parentRecordStore.isRecordMetadataLoaded, 'Table data is not loaded');
166
+ const visibleRecordIds = this._data.visibleRecordIds;
167
+ (0, _error_utils.invariant)(visibleRecordIds, 'View data is not loaded');
168
+ return visibleRecordIds.map(recordId => {
169
+ const record = this.parentRecordStore.getRecordByIdIfExists(recordId);
170
+ (0, _error_utils.invariant)(record, 'Record in view does not exist');
171
+ return record;
172
+ });
173
+ }
174
+
175
+ /**
176
+ * Gets the groups in a view, can be watched to be notified if a record changes groups,
177
+ * if a record is changed/deleted/created, if sort order of groups changes, grouping
178
+ * heirarchy changes, or grouping field changes.
179
+ *
180
+ * @hidden
181
+ */
182
+ get groups() {
183
+ (0, _error_utils.invariant)(this.parentRecordStore.isRecordMetadataLoaded, 'Table data is not loaded');
184
+ const groups = this._data.groups;
185
+ return groups ?? null;
186
+ }
187
+
188
+ /**
189
+ * Gets the group config for this view, can be watched to know when groupLevels
190
+ * changes (reorder, groups deleted, groups changed, grouped field changes)
191
+ */
192
+ get groupLevels() {
193
+ (0, _error_utils.invariant)(this.parentRecordStore.isRecordMetadataLoaded, 'Table data is not loaded');
194
+ const groupLevels = this._data.groupLevels;
195
+ return groupLevels ?? null;
196
+ }
197
+
198
+ /**
199
+ * Get the color name for the specified record in this view, or null if no
200
+ * color is available. Watch with 'recordColors'
201
+ *
202
+ * @param recordOrRecordId the record/record id to get the color for
203
+ */
204
+ getRecordColor(record) {
205
+ (0, _error_utils.invariant)(this.isDataLoaded, 'View data is not loaded');
206
+ return this._data.colorsByRecordId?.[record.id] ?? null;
207
+ }
208
+ get allFieldIds() {
209
+ const fieldOrder = this._data.fieldOrder;
210
+ (0, _error_utils.invariant)(fieldOrder, 'View data is not loaded');
211
+ return fieldOrder.fieldIds;
212
+ }
213
+ get visibleFieldIds() {
214
+ const fieldOrder = this._data.fieldOrder;
215
+ (0, _error_utils.invariant)(fieldOrder, 'View data is not loaded');
216
+ const {
217
+ fieldIds
218
+ } = fieldOrder;
219
+ return fieldIds.slice(0, fieldOrder.visibleFieldCount);
220
+ }
221
+ triggerOnChangeForDirtyPaths(dirtyPaths) {
222
+ if (dirtyPaths.visibleRecordIds) {
223
+ this._onChange(WatchableViewDataStoreKeys.visibleRecords);
224
+ this._onChange(WatchableViewDataStoreKeys.visibleRecordIds);
225
+ }
226
+ if (dirtyPaths.fieldOrder) {
227
+ this._onChange(WatchableViewDataStoreKeys.allFieldIds);
228
+ // TODO(kasra): only trigger visibleFields if the *visible* field ids changed.
229
+ this._onChange(WatchableViewDataStoreKeys.visibleFieldIds);
230
+ }
231
+ // Technically it's possible for groupLevels changing to cause a groups
232
+ // change since we derive group information from the groupLevels (fieldId)
233
+ if (dirtyPaths.groups || dirtyPaths.groupLevels) {
234
+ this._onChange(WatchableViewDataStoreKeys.groups);
235
+ }
236
+ if (dirtyPaths.groupLevels) {
237
+ this._onChange(WatchableViewDataStoreKeys.groupLevels);
238
+ }
239
+ if (dirtyPaths.colorsByRecordId) {
240
+ const changedRecordIds = dirtyPaths.colorsByRecordId._isDirty ? null : Object.keys(dirtyPaths.colorsByRecordId);
241
+ if (changedRecordIds) {
242
+ // Checking isRecordMetadataLoaded fixes a timing issue:
243
+ // When a new table loads in liveapp, we'll receive the record
244
+ // colors before getting the response to our loadData call.
245
+ // This is a temporary fix: we need a more general solution to
246
+ // avoid processing events associated with subscriptions whose
247
+ // data we haven't received yet.
248
+ if (this.parentRecordStore.isRecordMetadataLoaded) {
249
+ for (const recordId of changedRecordIds) {
250
+ const record = this.parentRecordStore.getRecordByIdIfExists(recordId);
251
+ // Similar to above, we could be receiving the change notification
252
+ // for a record color before receiving the new record itself.
253
+ if (record) {
254
+ record.__triggerOnChangeForRecordColorInViewId(this.viewId);
255
+ }
256
+ }
257
+ }
258
+ }
259
+ this._onChange(WatchableViewDataStoreKeys.recordColors, changedRecordIds);
260
+ }
261
+ }
262
+ }
263
+
264
+ /** @internal */
265
+ var _default = exports.default = ViewDataStore;