@airtable/blocks 0.0.0-experimental-f52bc4e5e-20250709 → 0.0.0-experimental-75d011284-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 (481) hide show
  1. package/dist/cjs/base/assert_run_context.js +12 -0
  2. package/dist/cjs/base/index.js +30 -30
  3. package/dist/cjs/base/models/abstract_model_with_async_data.js +154 -237
  4. package/dist/cjs/base/models/base.js +188 -267
  5. package/dist/cjs/base/models/create_aggregators.js +29 -46
  6. package/dist/cjs/base/models/cursor.js +206 -294
  7. package/dist/cjs/base/models/field.js +307 -395
  8. package/dist/cjs/base/models/grouped_record_query_result.js +219 -338
  9. package/dist/cjs/base/models/linked_records_query_result.js +450 -625
  10. package/dist/cjs/base/models/models.js +19 -22
  11. package/dist/cjs/base/models/mutations.js +267 -293
  12. package/dist/cjs/base/models/object_pool.js +117 -156
  13. package/dist/cjs/base/models/record.js +191 -256
  14. package/dist/cjs/base/models/record_coloring.js +6 -6
  15. package/dist/cjs/base/models/record_query_result.js +351 -435
  16. package/dist/cjs/base/models/record_store.js +403 -753
  17. package/dist/cjs/base/models/session.js +125 -153
  18. package/dist/cjs/base/models/table.js +457 -605
  19. package/dist/cjs/base/models/table_or_view_query_result.js +656 -920
  20. package/dist/cjs/base/models/view.js +284 -389
  21. package/dist/cjs/base/models/view_data_store.js +218 -356
  22. package/dist/cjs/base/models/view_metadata_query_result.js +109 -157
  23. package/dist/cjs/base/perform_record_action.js +89 -131
  24. package/dist/cjs/base/sdk.js +129 -184
  25. package/dist/cjs/base/settings_button.js +54 -74
  26. package/dist/cjs/base/types/airtable_interface.js +1 -1
  27. package/dist/cjs/base/types/mutations.js +5 -11
  28. package/dist/cjs/base/types/undo_redo.js +1 -1
  29. package/dist/cjs/base/types/view.js +1 -1
  30. package/dist/cjs/base/ui/base_provider.js +6 -8
  31. package/dist/cjs/base/ui/baymax_utils.js +436 -108
  32. package/dist/cjs/base/ui/block_wrapper.js +81 -106
  33. package/dist/cjs/base/ui/box.js +34 -60
  34. package/dist/cjs/base/ui/button.js +44 -74
  35. package/dist/cjs/base/ui/cell_renderer.js +132 -189
  36. package/dist/cjs/base/ui/choice_token.js +25 -42
  37. package/dist/cjs/base/ui/collaborator_token.js +31 -53
  38. package/dist/cjs/base/ui/color_palette.js +130 -173
  39. package/dist/cjs/base/ui/color_palette_synced.js +41 -70
  40. package/dist/cjs/base/ui/confirmation_dialog.js +70 -120
  41. package/dist/cjs/base/ui/control_sizes.js +24 -22
  42. package/dist/cjs/base/ui/create_detect_element_resize.js +6 -10
  43. package/dist/cjs/base/ui/css_helpers.js +1 -1
  44. package/dist/cjs/base/ui/dialog.js +57 -98
  45. package/dist/cjs/base/ui/dialog_close_button.js +52 -98
  46. package/dist/cjs/base/ui/expand_record.js +1 -2
  47. package/dist/cjs/base/ui/expand_record_list.js +3 -4
  48. package/dist/cjs/base/ui/expand_record_picker_async.js +28 -57
  49. package/dist/cjs/base/ui/field_icon.js +15 -33
  50. package/dist/cjs/base/ui/field_picker.js +25 -70
  51. package/dist/cjs/base/ui/field_picker_synced.js +18 -40
  52. package/dist/cjs/base/ui/form_field.js +27 -55
  53. package/dist/cjs/base/ui/geometry/geometry.js +5 -5
  54. package/dist/cjs/base/ui/geometry/point.js +10 -12
  55. package/dist/cjs/base/ui/geometry/rect.js +36 -52
  56. package/dist/cjs/base/ui/geometry/size.js +10 -12
  57. package/dist/cjs/base/ui/global_alert.js +31 -52
  58. package/dist/cjs/base/ui/heading.js +45 -94
  59. package/dist/cjs/base/ui/icon.js +39 -59
  60. package/dist/cjs/base/ui/icon_config.js +6 -12
  61. package/dist/cjs/base/ui/initialize_block.js +16 -35
  62. package/dist/cjs/base/ui/input.js +62 -101
  63. package/dist/cjs/base/ui/input_synced.js +17 -40
  64. package/dist/cjs/base/ui/key_codes.js +2 -3
  65. package/dist/cjs/base/ui/label.js +30 -55
  66. package/dist/cjs/base/ui/link.js +54 -87
  67. package/dist/cjs/base/ui/loader.js +15 -36
  68. package/dist/cjs/base/ui/modal.js +88 -127
  69. package/dist/cjs/base/ui/model_picker_select.js +18 -44
  70. package/dist/cjs/base/ui/popover.js +236 -328
  71. package/dist/cjs/base/ui/progress_bar.js +34 -47
  72. package/dist/cjs/base/ui/record_card.js +389 -478
  73. package/dist/cjs/base/ui/record_card_list.js +150 -224
  74. package/dist/cjs/base/ui/select.js +60 -116
  75. package/dist/cjs/base/ui/select_and_select_buttons_helpers.js +15 -39
  76. package/dist/cjs/base/ui/select_buttons.js +50 -83
  77. package/dist/cjs/base/ui/select_buttons_synced.js +17 -39
  78. package/dist/cjs/base/ui/select_synced.js +17 -39
  79. package/dist/cjs/base/ui/switch.js +42 -71
  80. package/dist/cjs/base/ui/switch_synced.js +16 -38
  81. package/dist/cjs/base/ui/synced.js +27 -48
  82. package/dist/cjs/base/ui/system/all_styles_set.js +4 -12
  83. package/dist/cjs/base/ui/system/appearance/appearance_set.js +10 -13
  84. package/dist/cjs/base/ui/system/appearance/background_color.js +3 -6
  85. package/dist/cjs/base/ui/system/appearance/border.js +3 -6
  86. package/dist/cjs/base/ui/system/appearance/border_radius.js +3 -6
  87. package/dist/cjs/base/ui/system/appearance/box_shadow.js +3 -6
  88. package/dist/cjs/base/ui/system/appearance/opacity.js +3 -6
  89. package/dist/cjs/base/ui/system/dimensions/dimensions_set.js +11 -13
  90. package/dist/cjs/base/ui/system/dimensions/height.js +3 -6
  91. package/dist/cjs/base/ui/system/dimensions/max_height.js +3 -6
  92. package/dist/cjs/base/ui/system/dimensions/max_width.js +3 -6
  93. package/dist/cjs/base/ui/system/dimensions/min_height.js +3 -6
  94. package/dist/cjs/base/ui/system/dimensions/min_width.js +3 -6
  95. package/dist/cjs/base/ui/system/dimensions/width.js +3 -6
  96. package/dist/cjs/base/ui/system/display.js +3 -6
  97. package/dist/cjs/base/ui/system/flex_container/align_content.js +3 -6
  98. package/dist/cjs/base/ui/system/flex_container/align_items.js +3 -6
  99. package/dist/cjs/base/ui/system/flex_container/flex_container_set.js +11 -13
  100. package/dist/cjs/base/ui/system/flex_container/flex_direction.js +3 -6
  101. package/dist/cjs/base/ui/system/flex_container/flex_wrap.js +3 -6
  102. package/dist/cjs/base/ui/system/flex_container/justify_content.js +3 -6
  103. package/dist/cjs/base/ui/system/flex_container/justify_items.js +3 -6
  104. package/dist/cjs/base/ui/system/flex_item/align_self.js +3 -6
  105. package/dist/cjs/base/ui/system/flex_item/flex.js +3 -6
  106. package/dist/cjs/base/ui/system/flex_item/flex_basis.js +3 -6
  107. package/dist/cjs/base/ui/system/flex_item/flex_grow.js +3 -6
  108. package/dist/cjs/base/ui/system/flex_item/flex_item_set.js +12 -13
  109. package/dist/cjs/base/ui/system/flex_item/flex_shrink.js +3 -6
  110. package/dist/cjs/base/ui/system/flex_item/justify_self.js +3 -6
  111. package/dist/cjs/base/ui/system/flex_item/order.js +3 -6
  112. package/dist/cjs/base/ui/system/index.js +104 -416
  113. package/dist/cjs/base/ui/system/overflow.js +3 -6
  114. package/dist/cjs/base/ui/system/position/bottom.js +4 -6
  115. package/dist/cjs/base/ui/system/position/left.js +4 -6
  116. package/dist/cjs/base/ui/system/position/position.js +3 -6
  117. package/dist/cjs/base/ui/system/position/position_set.js +11 -13
  118. package/dist/cjs/base/ui/system/position/right.js +4 -6
  119. package/dist/cjs/base/ui/system/position/top.js +4 -6
  120. package/dist/cjs/base/ui/system/position/z_index.js +3 -6
  121. package/dist/cjs/base/ui/system/spacing/margin.js +4 -6
  122. package/dist/cjs/base/ui/system/spacing/padding.js +4 -6
  123. package/dist/cjs/base/ui/system/spacing/spacing_set.js +7 -13
  124. package/dist/cjs/base/ui/system/typography/font_family.js +3 -6
  125. package/dist/cjs/base/ui/system/typography/font_size.js +3 -6
  126. package/dist/cjs/base/ui/system/typography/font_style.js +3 -6
  127. package/dist/cjs/base/ui/system/typography/font_weight.js +3 -6
  128. package/dist/cjs/base/ui/system/typography/letter_spacing.js +3 -6
  129. package/dist/cjs/base/ui/system/typography/line_height.js +3 -6
  130. package/dist/cjs/base/ui/system/typography/text_align.js +3 -6
  131. package/dist/cjs/base/ui/system/typography/text_color.js +3 -6
  132. package/dist/cjs/base/ui/system/typography/text_decoration.js +3 -6
  133. package/dist/cjs/base/ui/system/typography/text_transform.js +3 -6
  134. package/dist/cjs/base/ui/system/typography/typography_set.js +15 -13
  135. package/dist/cjs/base/ui/system/utils/ensure_numbers_are_within_scale.js +3 -4
  136. package/dist/cjs/base/ui/system/utils/get_style_props_for_responsive_prop.js +47 -87
  137. package/dist/cjs/base/ui/table_picker.js +18 -42
  138. package/dist/cjs/base/ui/table_picker_synced.js +17 -39
  139. package/dist/cjs/base/ui/text.js +40 -73
  140. package/dist/cjs/base/ui/text_button.js +51 -83
  141. package/dist/cjs/base/ui/theme/default_theme/button_variants.js +3 -3
  142. package/dist/cjs/base/ui/theme/default_theme/control_sizes.js +51 -45
  143. package/dist/cjs/base/ui/theme/default_theme/heading_styles.js +1 -1
  144. package/dist/cjs/base/ui/theme/default_theme/index.js +9 -15
  145. package/dist/cjs/base/ui/theme/default_theme/input_variants.js +3 -3
  146. package/dist/cjs/base/ui/theme/default_theme/link_variants.js +3 -3
  147. package/dist/cjs/base/ui/theme/default_theme/select_buttons_variants.js +4 -4
  148. package/dist/cjs/base/ui/theme/default_theme/select_variants.js +8 -17
  149. package/dist/cjs/base/ui/theme/default_theme/switch_variants.js +23 -29
  150. package/dist/cjs/base/ui/theme/default_theme/text_button_variants.js +5 -5
  151. package/dist/cjs/base/ui/theme/default_theme/text_styles.js +1 -1
  152. package/dist/cjs/base/ui/theme/default_theme/tokens.js +14 -14
  153. package/dist/cjs/base/ui/theme/theme_context.js +2 -2
  154. package/dist/cjs/base/ui/theme/use_theme.js +2 -2
  155. package/dist/cjs/base/ui/tooltip.js +134 -174
  156. package/dist/cjs/base/ui/types/aria_props.js +1 -23
  157. package/dist/cjs/base/ui/types/data_attributes_prop.js +1 -18
  158. package/dist/cjs/base/ui/types/tooltip_anchor_props.js +1 -17
  159. package/dist/cjs/base/ui/ui.js +48 -49
  160. package/dist/cjs/base/ui/unstable_standalone_ui.js +27 -27
  161. package/dist/cjs/base/ui/use_base.js +1 -1
  162. package/dist/cjs/base/ui/use_cursor.js +5 -4
  163. package/dist/cjs/base/ui/use_form_field.js +1 -1
  164. package/dist/cjs/base/ui/use_loadable.js +25 -91
  165. package/dist/cjs/base/ui/use_record_action_data.js +4 -3
  166. package/dist/cjs/base/ui/use_records.js +9 -13
  167. package/dist/cjs/base/ui/use_session.js +1 -1
  168. package/dist/cjs/base/ui/use_settings_button.js +4 -3
  169. package/dist/cjs/base/ui/use_styled_system.js +7 -14
  170. package/dist/cjs/base/ui/use_text_color_for_background_color.js +4 -3
  171. package/dist/cjs/base/ui/use_view_metadata.js +4 -4
  172. package/dist/cjs/base/ui/use_viewport.js +2 -2
  173. package/dist/cjs/base/ui/view_picker.js +26 -70
  174. package/dist/cjs/base/ui/view_picker_synced.js +18 -40
  175. package/dist/cjs/base/ui/viewport_constraint.js +67 -114
  176. package/dist/cjs/base/ui/with_styled_system.js +25 -61
  177. package/dist/cjs/base/undo_redo.js +21 -32
  178. package/dist/cjs/base/unstable_testing_utils.js +27 -27
  179. package/dist/cjs/base/viewport.js +268 -312
  180. package/dist/cjs/injected/airtable_interface.js +4 -4
  181. package/dist/cjs/interface/assert_run_context.js +12 -0
  182. package/dist/cjs/interface/index.js +4 -18
  183. package/dist/cjs/interface/models/base.js +15 -34
  184. package/dist/cjs/interface/models/field.js +5 -19
  185. package/dist/cjs/interface/models/models.js +8 -7
  186. package/dist/cjs/interface/models/mutations.js +50 -66
  187. package/dist/cjs/interface/models/record.js +29 -49
  188. package/dist/cjs/interface/models/record_store.js +25 -57
  189. package/dist/cjs/interface/models/session.js +2 -16
  190. package/dist/cjs/interface/models/table.js +66 -95
  191. package/dist/cjs/interface/sdk.js +61 -87
  192. package/dist/cjs/interface/types/airtable_interface.js +2 -2
  193. package/dist/cjs/interface/types/mutations.js +3 -10
  194. package/dist/cjs/interface/ui/block_wrapper.js +56 -48
  195. package/dist/cjs/interface/ui/initialize_block.js +13 -28
  196. package/dist/cjs/interface/ui/ui.js +20 -19
  197. package/dist/cjs/interface/ui/use_base.js +1 -1
  198. package/dist/cjs/interface/ui/use_custom_properties.js +19 -35
  199. package/dist/cjs/interface/ui/use_records.js +6 -5
  200. package/dist/cjs/interface/ui/use_run_info.js +2 -2
  201. package/dist/cjs/interface/ui/use_session.js +1 -1
  202. package/dist/cjs/shared/color_utils.js +9 -16
  203. package/dist/cjs/shared/colors.js +2 -2
  204. package/dist/cjs/shared/error_utils.js +9 -11
  205. package/dist/cjs/shared/event_tracker.js +3 -3
  206. package/dist/cjs/shared/global_config.js +337 -449
  207. package/dist/cjs/shared/models/abstract_model.js +72 -97
  208. package/dist/cjs/shared/models/base_core.js +394 -514
  209. package/dist/cjs/shared/models/field_core.js +236 -279
  210. package/dist/cjs/shared/models/mutations_core.js +283 -379
  211. package/dist/cjs/shared/models/record_core.js +174 -231
  212. package/dist/cjs/shared/models/record_store_core.js +119 -172
  213. package/dist/cjs/shared/models/session_core.js +116 -170
  214. package/dist/cjs/shared/models/table_core.js +1258 -1501
  215. package/dist/cjs/shared/private_utils.js +54 -124
  216. package/dist/cjs/shared/sdk_core.js +68 -70
  217. package/dist/cjs/shared/types/field_core.js +1 -1
  218. package/dist/cjs/shared/types/mutation_constants.js +4 -4
  219. package/dist/cjs/shared/types/mutations_core.js +1 -1
  220. package/dist/cjs/shared/types/permission_levels.js +1 -1
  221. package/dist/cjs/shared/ui/global_config_synced_component_helpers.js +9 -9
  222. package/dist/cjs/shared/ui/loader.js +14 -35
  223. package/dist/cjs/shared/ui/remote_utils.js +5 -7
  224. package/dist/cjs/shared/ui/sdk_context.js +4 -8
  225. package/dist/cjs/shared/ui/use_array_identity.js +2 -2
  226. package/dist/cjs/shared/ui/use_base.js +6 -5
  227. package/dist/cjs/shared/ui/use_color_scheme.js +3 -8
  228. package/dist/cjs/shared/ui/use_global_config.js +5 -4
  229. package/dist/cjs/shared/ui/use_session.js +6 -5
  230. package/dist/cjs/shared/ui/use_synced.js +7 -5
  231. package/dist/cjs/shared/ui/use_watchable.js +13 -42
  232. package/dist/cjs/shared/ui/with_hooks.js +6 -13
  233. package/dist/cjs/shared/unstable_private_utils.js +4 -6
  234. package/dist/cjs/shared/warning.js +5 -5
  235. package/dist/cjs/shared/watchable.js +110 -176
  236. package/dist/cjs/stats/block_stats.js +62 -85
  237. package/dist/cjs/testing/base/abstract_mock_airtable_interface.js +208 -0
  238. package/dist/cjs/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/models.d.ts +1 -0
  244. package/dist/types/src/base/models/models.d.ts.map +1 -1
  245. package/dist/types/src/base/models/mutations.d.ts.map +1 -1
  246. package/dist/types/src/base/sdk.d.ts.map +1 -1
  247. package/dist/types/src/base/ui/block_wrapper.d.ts +1 -1
  248. package/dist/types/src/base/ui/box.d.ts.map +1 -1
  249. package/dist/types/src/base/ui/button.d.ts +0 -5
  250. package/dist/types/src/base/ui/button.d.ts.map +1 -1
  251. package/dist/types/src/base/ui/cell_renderer.d.ts +1 -22
  252. package/dist/types/src/base/ui/cell_renderer.d.ts.map +1 -1
  253. package/dist/types/src/base/ui/choice_token.d.ts +1 -21
  254. package/dist/types/src/base/ui/choice_token.d.ts.map +1 -1
  255. package/dist/types/src/base/ui/collaborator_token.d.ts +0 -20
  256. package/dist/types/src/base/ui/collaborator_token.d.ts.map +1 -1
  257. package/dist/types/src/base/ui/color_palette.d.ts +1 -32
  258. package/dist/types/src/base/ui/color_palette.d.ts.map +1 -1
  259. package/dist/types/src/base/ui/color_palette_synced.d.ts +0 -14
  260. package/dist/types/src/base/ui/color_palette_synced.d.ts.map +1 -1
  261. package/dist/types/src/base/ui/confirmation_dialog.d.ts +0 -17
  262. package/dist/types/src/base/ui/confirmation_dialog.d.ts.map +1 -1
  263. package/dist/types/src/base/ui/control_sizes.d.ts +0 -1
  264. package/dist/types/src/base/ui/control_sizes.d.ts.map +1 -1
  265. package/dist/types/src/base/ui/dialog.d.ts +1 -23
  266. package/dist/types/src/base/ui/dialog.d.ts.map +1 -1
  267. package/dist/types/src/base/ui/dialog_close_button.d.ts +2 -24
  268. package/dist/types/src/base/ui/dialog_close_button.d.ts.map +1 -1
  269. package/dist/types/src/base/ui/field_icon.d.ts +1 -17
  270. package/dist/types/src/base/ui/field_icon.d.ts.map +1 -1
  271. package/dist/types/src/base/ui/field_picker.d.ts +0 -23
  272. package/dist/types/src/base/ui/field_picker.d.ts.map +1 -1
  273. package/dist/types/src/base/ui/field_picker_synced.d.ts.map +1 -1
  274. package/dist/types/src/base/ui/form_field.d.ts +0 -4
  275. package/dist/types/src/base/ui/form_field.d.ts.map +1 -1
  276. package/dist/types/src/base/ui/heading.d.ts +1 -1
  277. package/dist/types/src/base/ui/heading.d.ts.map +1 -1
  278. package/dist/types/src/base/ui/icon.d.ts +0 -16
  279. package/dist/types/src/base/ui/icon.d.ts.map +1 -1
  280. package/dist/types/src/base/ui/icon_config.d.ts +50 -51
  281. package/dist/types/src/base/ui/icon_config.d.ts.map +1 -1
  282. package/dist/types/src/base/ui/initialize_block.d.ts.map +1 -1
  283. package/dist/types/src/base/ui/input.d.ts +12 -46
  284. package/dist/types/src/base/ui/input.d.ts.map +1 -1
  285. package/dist/types/src/base/ui/input_synced.d.ts.map +1 -1
  286. package/dist/types/src/base/ui/label.d.ts.map +1 -1
  287. package/dist/types/src/base/ui/link.d.ts +1 -5
  288. package/dist/types/src/base/ui/link.d.ts.map +1 -1
  289. package/dist/types/src/base/ui/loader.d.ts +3 -20
  290. package/dist/types/src/base/ui/loader.d.ts.map +1 -1
  291. package/dist/types/src/base/ui/modal.d.ts +1 -14
  292. package/dist/types/src/base/ui/modal.d.ts.map +1 -1
  293. package/dist/types/src/base/ui/model_picker_select.d.ts.map +1 -1
  294. package/dist/types/src/base/ui/popover.d.ts +1 -17
  295. package/dist/types/src/base/ui/popover.d.ts.map +1 -1
  296. package/dist/types/src/base/ui/progress_bar.d.ts +1 -24
  297. package/dist/types/src/base/ui/progress_bar.d.ts.map +1 -1
  298. package/dist/types/src/base/ui/record_card.d.ts +1 -23
  299. package/dist/types/src/base/ui/record_card.d.ts.map +1 -1
  300. package/dist/types/src/base/ui/record_card_list.d.ts +1 -18
  301. package/dist/types/src/base/ui/record_card_list.d.ts.map +1 -1
  302. package/dist/types/src/base/ui/select.d.ts +0 -44
  303. package/dist/types/src/base/ui/select.d.ts.map +1 -1
  304. package/dist/types/src/base/ui/select_and_select_buttons_helpers.d.ts +0 -2
  305. package/dist/types/src/base/ui/select_and_select_buttons_helpers.d.ts.map +1 -1
  306. package/dist/types/src/base/ui/select_buttons.d.ts +0 -22
  307. package/dist/types/src/base/ui/select_buttons.d.ts.map +1 -1
  308. package/dist/types/src/base/ui/select_buttons_synced.d.ts.map +1 -1
  309. package/dist/types/src/base/ui/select_synced.d.ts.map +1 -1
  310. package/dist/types/src/base/ui/switch.d.ts +0 -22
  311. package/dist/types/src/base/ui/switch.d.ts.map +1 -1
  312. package/dist/types/src/base/ui/switch_synced.d.ts.map +1 -1
  313. package/dist/types/src/base/ui/synced.d.ts +2 -8
  314. package/dist/types/src/base/ui/synced.d.ts.map +1 -1
  315. package/dist/types/src/base/ui/system/all_styles_set.d.ts +0 -3
  316. package/dist/types/src/base/ui/system/all_styles_set.d.ts.map +1 -1
  317. package/dist/types/src/base/ui/system/appearance/appearance_set.d.ts +0 -1
  318. package/dist/types/src/base/ui/system/appearance/appearance_set.d.ts.map +1 -1
  319. package/dist/types/src/base/ui/system/appearance/background_color.d.ts +0 -1
  320. package/dist/types/src/base/ui/system/appearance/background_color.d.ts.map +1 -1
  321. package/dist/types/src/base/ui/system/appearance/border.d.ts +0 -1
  322. package/dist/types/src/base/ui/system/appearance/border.d.ts.map +1 -1
  323. package/dist/types/src/base/ui/system/appearance/border_radius.d.ts +0 -1
  324. package/dist/types/src/base/ui/system/appearance/border_radius.d.ts.map +1 -1
  325. package/dist/types/src/base/ui/system/appearance/box_shadow.d.ts +0 -1
  326. package/dist/types/src/base/ui/system/appearance/box_shadow.d.ts.map +1 -1
  327. package/dist/types/src/base/ui/system/appearance/opacity.d.ts +0 -1
  328. package/dist/types/src/base/ui/system/appearance/opacity.d.ts.map +1 -1
  329. package/dist/types/src/base/ui/system/dimensions/dimensions_set.d.ts +0 -1
  330. package/dist/types/src/base/ui/system/dimensions/dimensions_set.d.ts.map +1 -1
  331. package/dist/types/src/base/ui/system/dimensions/height.d.ts +0 -1
  332. package/dist/types/src/base/ui/system/dimensions/height.d.ts.map +1 -1
  333. package/dist/types/src/base/ui/system/dimensions/max_height.d.ts +0 -1
  334. package/dist/types/src/base/ui/system/dimensions/max_height.d.ts.map +1 -1
  335. package/dist/types/src/base/ui/system/dimensions/max_width.d.ts +0 -1
  336. package/dist/types/src/base/ui/system/dimensions/max_width.d.ts.map +1 -1
  337. package/dist/types/src/base/ui/system/dimensions/min_height.d.ts +0 -1
  338. package/dist/types/src/base/ui/system/dimensions/min_height.d.ts.map +1 -1
  339. package/dist/types/src/base/ui/system/dimensions/min_width.d.ts +0 -1
  340. package/dist/types/src/base/ui/system/dimensions/min_width.d.ts.map +1 -1
  341. package/dist/types/src/base/ui/system/dimensions/width.d.ts +0 -1
  342. package/dist/types/src/base/ui/system/dimensions/width.d.ts.map +1 -1
  343. package/dist/types/src/base/ui/system/display.d.ts +0 -1
  344. package/dist/types/src/base/ui/system/display.d.ts.map +1 -1
  345. package/dist/types/src/base/ui/system/flex_container/align_content.d.ts +0 -1
  346. package/dist/types/src/base/ui/system/flex_container/align_content.d.ts.map +1 -1
  347. package/dist/types/src/base/ui/system/flex_container/align_items.d.ts +0 -1
  348. package/dist/types/src/base/ui/system/flex_container/align_items.d.ts.map +1 -1
  349. package/dist/types/src/base/ui/system/flex_container/flex_container_set.d.ts +0 -1
  350. package/dist/types/src/base/ui/system/flex_container/flex_container_set.d.ts.map +1 -1
  351. package/dist/types/src/base/ui/system/flex_container/flex_direction.d.ts +0 -1
  352. package/dist/types/src/base/ui/system/flex_container/flex_direction.d.ts.map +1 -1
  353. package/dist/types/src/base/ui/system/flex_container/flex_wrap.d.ts +0 -1
  354. package/dist/types/src/base/ui/system/flex_container/flex_wrap.d.ts.map +1 -1
  355. package/dist/types/src/base/ui/system/flex_container/justify_content.d.ts +0 -1
  356. package/dist/types/src/base/ui/system/flex_container/justify_content.d.ts.map +1 -1
  357. package/dist/types/src/base/ui/system/flex_container/justify_items.d.ts +0 -1
  358. package/dist/types/src/base/ui/system/flex_container/justify_items.d.ts.map +1 -1
  359. package/dist/types/src/base/ui/system/flex_item/align_self.d.ts +0 -1
  360. package/dist/types/src/base/ui/system/flex_item/align_self.d.ts.map +1 -1
  361. package/dist/types/src/base/ui/system/flex_item/flex.d.ts +0 -1
  362. package/dist/types/src/base/ui/system/flex_item/flex.d.ts.map +1 -1
  363. package/dist/types/src/base/ui/system/flex_item/flex_basis.d.ts +0 -1
  364. package/dist/types/src/base/ui/system/flex_item/flex_basis.d.ts.map +1 -1
  365. package/dist/types/src/base/ui/system/flex_item/flex_grow.d.ts +0 -1
  366. package/dist/types/src/base/ui/system/flex_item/flex_grow.d.ts.map +1 -1
  367. package/dist/types/src/base/ui/system/flex_item/flex_item_set.d.ts +0 -1
  368. package/dist/types/src/base/ui/system/flex_item/flex_item_set.d.ts.map +1 -1
  369. package/dist/types/src/base/ui/system/flex_item/flex_shrink.d.ts +0 -1
  370. package/dist/types/src/base/ui/system/flex_item/flex_shrink.d.ts.map +1 -1
  371. package/dist/types/src/base/ui/system/flex_item/justify_self.d.ts +0 -1
  372. package/dist/types/src/base/ui/system/flex_item/justify_self.d.ts.map +1 -1
  373. package/dist/types/src/base/ui/system/flex_item/order.d.ts +0 -1
  374. package/dist/types/src/base/ui/system/flex_item/order.d.ts.map +1 -1
  375. package/dist/types/src/base/ui/system/index.d.ts +52 -52
  376. package/dist/types/src/base/ui/system/index.d.ts.map +1 -1
  377. package/dist/types/src/base/ui/system/overflow.d.ts +0 -1
  378. package/dist/types/src/base/ui/system/overflow.d.ts.map +1 -1
  379. package/dist/types/src/base/ui/system/position/bottom.d.ts +0 -1
  380. package/dist/types/src/base/ui/system/position/bottom.d.ts.map +1 -1
  381. package/dist/types/src/base/ui/system/position/left.d.ts +0 -1
  382. package/dist/types/src/base/ui/system/position/left.d.ts.map +1 -1
  383. package/dist/types/src/base/ui/system/position/position.d.ts +0 -1
  384. package/dist/types/src/base/ui/system/position/position.d.ts.map +1 -1
  385. package/dist/types/src/base/ui/system/position/position_set.d.ts +0 -1
  386. package/dist/types/src/base/ui/system/position/position_set.d.ts.map +1 -1
  387. package/dist/types/src/base/ui/system/position/right.d.ts +0 -1
  388. package/dist/types/src/base/ui/system/position/right.d.ts.map +1 -1
  389. package/dist/types/src/base/ui/system/position/top.d.ts +0 -1
  390. package/dist/types/src/base/ui/system/position/top.d.ts.map +1 -1
  391. package/dist/types/src/base/ui/system/position/z_index.d.ts +0 -1
  392. package/dist/types/src/base/ui/system/position/z_index.d.ts.map +1 -1
  393. package/dist/types/src/base/ui/system/spacing/margin.d.ts +0 -1
  394. package/dist/types/src/base/ui/system/spacing/margin.d.ts.map +1 -1
  395. package/dist/types/src/base/ui/system/spacing/padding.d.ts +0 -1
  396. package/dist/types/src/base/ui/system/spacing/padding.d.ts.map +1 -1
  397. package/dist/types/src/base/ui/system/spacing/spacing_set.d.ts +0 -1
  398. package/dist/types/src/base/ui/system/spacing/spacing_set.d.ts.map +1 -1
  399. package/dist/types/src/base/ui/system/typography/font_family.d.ts +0 -1
  400. package/dist/types/src/base/ui/system/typography/font_family.d.ts.map +1 -1
  401. package/dist/types/src/base/ui/system/typography/font_size.d.ts +0 -1
  402. package/dist/types/src/base/ui/system/typography/font_size.d.ts.map +1 -1
  403. package/dist/types/src/base/ui/system/typography/font_style.d.ts +0 -1
  404. package/dist/types/src/base/ui/system/typography/font_style.d.ts.map +1 -1
  405. package/dist/types/src/base/ui/system/typography/font_weight.d.ts +0 -1
  406. package/dist/types/src/base/ui/system/typography/font_weight.d.ts.map +1 -1
  407. package/dist/types/src/base/ui/system/typography/letter_spacing.d.ts +0 -1
  408. package/dist/types/src/base/ui/system/typography/letter_spacing.d.ts.map +1 -1
  409. package/dist/types/src/base/ui/system/typography/line_height.d.ts +0 -1
  410. package/dist/types/src/base/ui/system/typography/line_height.d.ts.map +1 -1
  411. package/dist/types/src/base/ui/system/typography/text_align.d.ts +0 -1
  412. package/dist/types/src/base/ui/system/typography/text_align.d.ts.map +1 -1
  413. package/dist/types/src/base/ui/system/typography/text_color.d.ts +0 -1
  414. package/dist/types/src/base/ui/system/typography/text_color.d.ts.map +1 -1
  415. package/dist/types/src/base/ui/system/typography/text_decoration.d.ts +0 -1
  416. package/dist/types/src/base/ui/system/typography/text_decoration.d.ts.map +1 -1
  417. package/dist/types/src/base/ui/system/typography/text_transform.d.ts +0 -1
  418. package/dist/types/src/base/ui/system/typography/text_transform.d.ts.map +1 -1
  419. package/dist/types/src/base/ui/system/typography/typography_set.d.ts +0 -1
  420. package/dist/types/src/base/ui/system/typography/typography_set.d.ts.map +1 -1
  421. package/dist/types/src/base/ui/table_picker.d.ts +0 -21
  422. package/dist/types/src/base/ui/table_picker.d.ts.map +1 -1
  423. package/dist/types/src/base/ui/table_picker_synced.d.ts.map +1 -1
  424. package/dist/types/src/base/ui/text.d.ts +0 -3
  425. package/dist/types/src/base/ui/text.d.ts.map +1 -1
  426. package/dist/types/src/base/ui/text_button.d.ts +1 -5
  427. package/dist/types/src/base/ui/text_button.d.ts.map +1 -1
  428. package/dist/types/src/base/ui/theme/default_theme/index.d.ts +1 -1
  429. package/dist/types/src/base/ui/theme/theme_context.d.ts +1 -1
  430. package/dist/types/src/base/ui/theme/use_theme.d.ts +1 -1
  431. package/dist/types/src/base/ui/tooltip.d.ts +0 -16
  432. package/dist/types/src/base/ui/tooltip.d.ts.map +1 -1
  433. package/dist/types/src/base/ui/types/aria_props.d.ts.map +1 -1
  434. package/dist/types/src/base/ui/types/data_attributes_prop.d.ts +0 -4
  435. package/dist/types/src/base/ui/types/data_attributes_prop.d.ts.map +1 -1
  436. package/dist/types/src/base/ui/types/tooltip_anchor_props.d.ts +0 -7
  437. package/dist/types/src/base/ui/types/tooltip_anchor_props.d.ts.map +1 -1
  438. package/dist/types/src/base/ui/ui.d.ts +1 -0
  439. package/dist/types/src/base/ui/ui.d.ts.map +1 -1
  440. package/dist/types/src/base/ui/view_picker.d.ts +0 -23
  441. package/dist/types/src/base/ui/view_picker.d.ts.map +1 -1
  442. package/dist/types/src/base/ui/view_picker_synced.d.ts.map +1 -1
  443. package/dist/types/src/base/ui/viewport_constraint.d.ts +1 -14
  444. package/dist/types/src/base/ui/viewport_constraint.d.ts.map +1 -1
  445. package/dist/types/src/base/unstable_testing_utils.d.ts +1 -1
  446. package/dist/types/src/base/unstable_testing_utils.d.ts.map +1 -1
  447. package/dist/types/src/interface/assert_run_context.d.ts +2 -0
  448. package/dist/types/src/interface/assert_run_context.d.ts.map +1 -0
  449. package/dist/types/src/interface/index.d.ts +1 -6
  450. package/dist/types/src/interface/index.d.ts.map +1 -1
  451. package/dist/types/src/interface/models/models.d.ts +1 -0
  452. package/dist/types/src/interface/models/models.d.ts.map +1 -1
  453. package/dist/types/src/interface/models/mutations.d.ts.map +1 -1
  454. package/dist/types/src/interface/ui/initialize_block.d.ts.map +1 -1
  455. package/dist/types/src/interface/ui/ui.d.ts +1 -0
  456. package/dist/types/src/interface/ui/ui.d.ts.map +1 -1
  457. package/dist/types/src/interface/ui/use_custom_properties.d.ts +1 -1
  458. package/dist/types/src/shared/models/mutations_core.d.ts.map +1 -1
  459. package/dist/types/src/shared/private_utils.d.ts +0 -9
  460. package/dist/types/src/shared/private_utils.d.ts.map +1 -1
  461. package/dist/types/src/shared/ui/global_config_synced_component_helpers.d.ts +0 -2
  462. package/dist/types/src/shared/ui/global_config_synced_component_helpers.d.ts.map +1 -1
  463. package/dist/types/src/shared/ui/loader.d.ts.map +1 -1
  464. package/dist/types/src/shared/ui/with_hooks.d.ts +2 -2
  465. package/dist/types/src/shared/ui/with_hooks.d.ts.map +1 -1
  466. package/dist/types/src/testing/{abstract_mock_airtable_interface.d.ts → base/abstract_mock_airtable_interface.d.ts} +13 -13
  467. package/dist/types/src/testing/base/abstract_mock_airtable_interface.d.ts.map +1 -0
  468. package/dist/types/src/testing/interface/abstract_mock_airtable_interface.d.ts +51 -0
  469. package/dist/types/src/testing/interface/abstract_mock_airtable_interface.d.ts.map +1 -0
  470. package/package.json +13 -13
  471. package/dist/cjs/base/ui/system/utils/create_responsive_prop_type.js +0 -19
  472. package/dist/cjs/base/ui/system/utils/create_style_prop_types.js +0 -24
  473. package/dist/cjs/base/ui/system/utils/enum_prop_type_utils.js +0 -35
  474. package/dist/cjs/testing/abstract_mock_airtable_interface.js +0 -277
  475. package/dist/types/src/base/ui/system/utils/create_responsive_prop_type.d.ts +0 -2
  476. package/dist/types/src/base/ui/system/utils/create_responsive_prop_type.d.ts.map +0 -1
  477. package/dist/types/src/base/ui/system/utils/create_style_prop_types.d.ts +0 -4
  478. package/dist/types/src/base/ui/system/utils/create_style_prop_types.d.ts.map +0 -1
  479. package/dist/types/src/base/ui/system/utils/enum_prop_type_utils.d.ts +0 -21
  480. package/dist/types/src/base/ui/system/utils/enum_prop_type_utils.d.ts.map +0 -1
  481. package/dist/types/src/testing/abstract_mock_airtable_interface.d.ts.map +0 -1
@@ -1,31 +1,16 @@
1
1
  "use strict";
2
2
 
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
3
  Object.defineProperty(exports, "__esModule", {
5
4
  value: true
6
5
  });
7
6
  exports.default = void 0;
8
- require("core-js/modules/es.array.from.js");
9
- require("core-js/modules/es.array.includes.js");
10
- require("core-js/modules/es.array.iterator.js");
11
- require("core-js/modules/es.array.reduce.js");
12
- require("core-js/modules/es.object.to-string.js");
13
- require("core-js/modules/es.set.js");
14
- require("core-js/modules/es.string.includes.js");
15
- require("core-js/modules/web.dom-collections.iterator.js");
16
- var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
17
- var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
18
- var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
19
- var _get2 = _interopRequireDefault(require("@babel/runtime/helpers/get"));
20
- var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
21
- var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
22
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
23
7
  var _watchable = _interopRequireDefault(require("../shared/watchable"));
24
8
  var _private_utils = require("../shared/private_utils");
25
9
  var _error_utils = require("../shared/error_utils");
26
- function _callSuper(t, o, e) { return o = (0, _getPrototypeOf2.default)(o), (0, _possibleConstructorReturn2.default)(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], (0, _getPrototypeOf2.default)(t).constructor) : o.apply(t, e)); }
27
- function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } /** @module @airtable/blocks: viewport */ /** */
28
- var WatchableViewportKeys = Object.freeze({
10
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
11
+ /** @module @airtable/blocks: viewport */ /** */
12
+
13
+ const WatchableViewportKeys = Object.freeze({
29
14
  isFullscreen: 'isFullscreen',
30
15
  size: 'size',
31
16
  minSize: 'minSize',
@@ -42,7 +27,7 @@ var WatchableViewportKeys = Object.freeze({
42
27
 
43
28
  /** */
44
29
 
45
- var compareWithNulls = (a, b, compare) => {
30
+ const compareWithNulls = (a, b, compare) => {
46
31
  if (a !== null && b !== null) {
47
32
  return compare(a, b);
48
33
  }
@@ -66,44 +51,49 @@ var compareWithNulls = (a, b, compare) => {
66
51
  * ```
67
52
  * @docsPath models/Viewport
68
53
  */
69
- var Viewport = /*#__PURE__*/function (_Watchable) {
54
+ class Viewport extends _watchable.default {
55
+ /** @internal */
56
+ static _className = 'Viewport';
57
+ /** @internal */
58
+ static _isWatchableKey(key) {
59
+ return (0, _private_utils.isEnumValue)(WatchableViewportKeys, key);
60
+ }
61
+
62
+ /** @internal */
63
+
64
+ /** @internal */
65
+
66
+ /** @internal */
67
+
68
+ /** @internal */
69
+
70
70
  /** @internal */
71
- function Viewport(isFullscreen, airtableInterface) {
72
- var _this;
73
- (0, _classCallCheck2.default)(this, Viewport);
74
- _this = _callSuper(this, Viewport);
75
- /** @internal */
76
- (0, _defineProperty2.default)(_this, "_isFullscreen", void 0);
77
- /** @internal */
78
- (0, _defineProperty2.default)(_this, "_airtableInterface", void 0);
79
- /** @internal */
80
- (0, _defineProperty2.default)(_this, "_sizeWatchCount", void 0);
81
- /** @internal */
82
- (0, _defineProperty2.default)(_this, "_onSizeChangeDebounced", void 0);
83
- /** @internal */
84
- (0, _defineProperty2.default)(_this, "_minSizes", new Set());
85
- /** @internal */
86
- (0, _defineProperty2.default)(_this, "_maxFullscreenSizes", new Set());
87
- /** @internal */
88
- (0, _defineProperty2.default)(_this, "_cachedMaxFullscreenSize", null);
89
- /** @internal */
90
- (0, _defineProperty2.default)(_this, "_cachedMinSize", null);
91
- _this._isFullscreen = isFullscreen;
92
- _this._airtableInterface = airtableInterface;
71
+ _minSizes = new Set();
72
+ /** @internal */
73
+ _maxFullscreenSizes = new Set();
74
+ /** @internal */
75
+ _cachedMaxFullscreenSize = null;
76
+ /** @internal */
77
+ _cachedMinSize = null;
78
+
79
+ /** @internal */
80
+ constructor(isFullscreen, airtableInterface) {
81
+ super();
82
+ this._isFullscreen = isFullscreen;
83
+ this._airtableInterface = airtableInterface;
93
84
 
94
85
  // When size is watched, we'll increment this counter, and we'll decrement
95
86
  // it when it is unwatched and the counter is at 0. This way we can lazily
96
87
  // add an event listener for window resize and remove it when nobody is
97
88
  // listening anymore.
98
- _this._sizeWatchCount = 0;
99
- _this._onSizeChangeDebounced = (0, _private_utils.debounce)(_this._onSizeChange.bind(_this), 200);
89
+ this._sizeWatchCount = 0;
90
+ this._onSizeChangeDebounced = (0, _private_utils.debounce)(this._onSizeChange.bind(this), 200);
100
91
 
101
92
  // whenever maxFullscreenSize changes, we want to sync it back to the
102
93
  // containing frame
103
- _this.watch(WatchableViewportKeys.maxFullscreenSize, () => {
104
- _this._airtableInterface.setFullscreenMaxSize(_this.maxFullscreenSize);
94
+ this.watch(WatchableViewportKeys.maxFullscreenSize, () => {
95
+ this._airtableInterface.setFullscreenMaxSize(this.maxFullscreenSize);
105
96
  });
106
- return _this;
107
97
  }
108
98
  /**
109
99
  * Request to enter fullscreen mode.
@@ -112,286 +102,252 @@ var Viewport = /*#__PURE__*/function (_Watchable) {
112
102
  * permission to fullscreen itself. Watch `isFullscreen` to know if the
113
103
  * request succeeded.
114
104
  */
115
- (0, _inherits2.default)(Viewport, _Watchable);
116
- return (0, _createClass2.default)(Viewport, [{
117
- key: "enterFullscreenIfPossible",
118
- value: function enterFullscreenIfPossible() {
119
- this._airtableInterface.enterFullscreen();
120
- }
121
- /** Request to exit fullscreen mode */
122
- }, {
123
- key: "exitFullscreen",
124
- value: function exitFullscreen() {
125
- this._airtableInterface.exitFullscreen();
126
- }
105
+ enterFullscreenIfPossible() {
106
+ this._airtableInterface.enterFullscreen();
107
+ }
108
+ /** Request to exit fullscreen mode */
109
+ exitFullscreen() {
110
+ this._airtableInterface.exitFullscreen();
111
+ }
127
112
 
128
- /**
129
- * The maximum dimensions of the extension when it is in
130
- * fullscreen mode. Returns the smallest set of dimensions added with
131
- * {@link addMaxFullscreenSize}.
132
- *
133
- * If `width` or `height` is null, it means there is
134
- * no max size constraint on that dimension. If `maxFullscreenSize` would be
135
- * smaller than {@link minSize}, it is constrained to be at least `minSize`.
136
- */
137
- }, {
138
- key: "maxFullscreenSize",
139
- get: function get() {
140
- if (!this._cachedMaxFullscreenSize) {
141
- var maxFullscreenSize = Array.from(this._maxFullscreenSizes).reduce((memo, size) => ({
142
- width: compareWithNulls(memo.width, size.width, Math.min),
143
- height: compareWithNulls(memo.height, size.height, Math.min)
144
- }), {
145
- width: null,
146
- height: null
147
- });
148
- var minSize = this.minSize;
149
- this._cachedMaxFullscreenSize = {
150
- width: maxFullscreenSize.width !== null && minSize.width !== null ? Math.max(maxFullscreenSize.width, minSize.width) : maxFullscreenSize.width,
151
- height: maxFullscreenSize.height !== null && minSize.height !== null ? Math.max(maxFullscreenSize.height, minSize.height) : maxFullscreenSize.height
152
- };
153
- }
154
- return this._cachedMaxFullscreenSize;
113
+ /**
114
+ * The maximum dimensions of the extension when it is in
115
+ * fullscreen mode. Returns the smallest set of dimensions added with
116
+ * {@link addMaxFullscreenSize}.
117
+ *
118
+ * If `width` or `height` is null, it means there is
119
+ * no max size constraint on that dimension. If `maxFullscreenSize` would be
120
+ * smaller than {@link minSize}, it is constrained to be at least `minSize`.
121
+ */
122
+ get maxFullscreenSize() {
123
+ if (!this._cachedMaxFullscreenSize) {
124
+ const maxFullscreenSize = Array.from(this._maxFullscreenSizes).reduce((memo, size) => ({
125
+ width: compareWithNulls(memo.width, size.width, Math.min),
126
+ height: compareWithNulls(memo.height, size.height, Math.min)
127
+ }), {
128
+ width: null,
129
+ height: null
130
+ });
131
+ const minSize = this.minSize;
132
+ this._cachedMaxFullscreenSize = {
133
+ width: maxFullscreenSize.width !== null && minSize.width !== null ? Math.max(maxFullscreenSize.width, minSize.width) : maxFullscreenSize.width,
134
+ height: maxFullscreenSize.height !== null && minSize.height !== null ? Math.max(maxFullscreenSize.height, minSize.height) : maxFullscreenSize.height
135
+ };
155
136
  }
137
+ return this._cachedMaxFullscreenSize;
138
+ }
156
139
 
157
- /**
158
- * Add a maximum fullscreen size constraint. Use `.maxFullscreenSize` to get
159
- * the aggregate of all added constraints.
160
- *
161
- * Returns a function that can be called to remove the fullscreen size constraint that was added.
162
- *
163
- * @param sizeConstraint The width and height constraints to add. Both
164
- * `width` and `height` are optional - if either is set to null, that means
165
- * there is no max size in that dimension.
166
- */
167
- }, {
168
- key: "addMaxFullscreenSize",
169
- value: function addMaxFullscreenSize(sizeConstraint) {
170
- var width = sizeConstraint.width,
171
- height = sizeConstraint.height;
172
- var size = Object.freeze({
173
- width: typeof width === 'number' ? width : null,
174
- height: typeof height === 'number' ? height : null
175
- });
140
+ /**
141
+ * Add a maximum fullscreen size constraint. Use `.maxFullscreenSize` to get
142
+ * the aggregate of all added constraints.
143
+ *
144
+ * Returns a function that can be called to remove the fullscreen size constraint that was added.
145
+ *
146
+ * @param sizeConstraint The width and height constraints to add. Both
147
+ * `width` and `height` are optional - if either is set to null, that means
148
+ * there is no max size in that dimension.
149
+ */
150
+ addMaxFullscreenSize(sizeConstraint) {
151
+ const {
152
+ width,
153
+ height
154
+ } = sizeConstraint;
155
+ const size = Object.freeze({
156
+ width: typeof width === 'number' ? width : null,
157
+ height: typeof height === 'number' ? height : null
158
+ });
159
+ this._cachedMaxFullscreenSize = null;
160
+ this._maxFullscreenSizes.add(size);
161
+ this._onChange(WatchableViewportKeys.maxFullscreenSize);
162
+ return () => {
163
+ (0, _error_utils.invariant)(this._maxFullscreenSizes.has(size), 'UnsetFn can only be called once');
176
164
  this._cachedMaxFullscreenSize = null;
177
- this._maxFullscreenSizes.add(size);
165
+ this._maxFullscreenSizes.delete(size);
178
166
  this._onChange(WatchableViewportKeys.maxFullscreenSize);
179
- return () => {
180
- (0, _error_utils.invariant)(this._maxFullscreenSizes.has(size), 'UnsetFn can only be called once');
181
- this._cachedMaxFullscreenSize = null;
182
- this._maxFullscreenSizes.delete(size);
183
- this._onChange(WatchableViewportKeys.maxFullscreenSize);
184
- };
185
- }
167
+ };
168
+ }
186
169
 
187
- /**
188
- * The minimum dimensions of the extension - if the viewport gets smaller than this
189
- * size, an overlay will be shown asking the user to resize the extension to be bigger.
190
- *
191
- * The largest set of dimensions added with addMinSize. If `width` or `height` is null, it means
192
- * there is no minSize constraint on that dimension.
193
- */
194
- }, {
195
- key: "minSize",
196
- get: function get() {
197
- if (!this._cachedMinSize) {
198
- this._cachedMinSize = Array.from(this._minSizes).reduce((memo, size) => ({
199
- width: compareWithNulls(memo.width, size.width, Math.max),
200
- height: compareWithNulls(memo.height, size.height, Math.max)
201
- }), {
202
- width: null,
203
- height: null
204
- });
205
- }
206
- return this._cachedMinSize;
170
+ /**
171
+ * The minimum dimensions of the extension - if the viewport gets smaller than this
172
+ * size, an overlay will be shown asking the user to resize the extension to be bigger.
173
+ *
174
+ * The largest set of dimensions added with addMinSize. If `width` or `height` is null, it means
175
+ * there is no minSize constraint on that dimension.
176
+ */
177
+ get minSize() {
178
+ if (!this._cachedMinSize) {
179
+ this._cachedMinSize = Array.from(this._minSizes).reduce((memo, size) => ({
180
+ width: compareWithNulls(memo.width, size.width, Math.max),
181
+ height: compareWithNulls(memo.height, size.height, Math.max)
182
+ }), {
183
+ width: null,
184
+ height: null
185
+ });
207
186
  }
187
+ return this._cachedMinSize;
188
+ }
208
189
 
209
- /**
210
- * Add a minimum frame size constraint. Use `.minSize`` to get the aggregate
211
- * of all added constraints.
212
- *
213
- * Upon adding a constraint, if the extension is focused and the frame is smaller than the
214
- * minimum size, the extension will enter fullscreen mode.
215
- *
216
- * Returns a function that can be called to remove the size constraint that was added.
217
- *
218
- * @param sizeConstraint The width and height constraints to add. Both `width`
219
- * and `height` are optional - if either is set to null, that means there is
220
- * no min size in that dimension.
221
- */
222
- }, {
223
- key: "addMinSize",
224
- value: function addMinSize(sizeConstraint) {
225
- var width = sizeConstraint.width,
226
- height = sizeConstraint.height;
227
- var size = Object.freeze({
228
- width: typeof width === 'number' ? width : null,
229
- height: typeof height === 'number' ? height : null
230
- });
190
+ /**
191
+ * Add a minimum frame size constraint. Use `.minSize`` to get the aggregate
192
+ * of all added constraints.
193
+ *
194
+ * Upon adding a constraint, if the extension is focused and the frame is smaller than the
195
+ * minimum size, the extension will enter fullscreen mode.
196
+ *
197
+ * Returns a function that can be called to remove the size constraint that was added.
198
+ *
199
+ * @param sizeConstraint The width and height constraints to add. Both `width`
200
+ * and `height` are optional - if either is set to null, that means there is
201
+ * no min size in that dimension.
202
+ */
203
+ addMinSize(sizeConstraint) {
204
+ const {
205
+ width,
206
+ height
207
+ } = sizeConstraint;
208
+ const size = Object.freeze({
209
+ width: typeof width === 'number' ? width : null,
210
+ height: typeof height === 'number' ? height : null
211
+ });
212
+ this._cachedMinSize = null;
213
+ // min size is also a constraint on maxFullscreenSize:
214
+ this._cachedMaxFullscreenSize = null;
215
+ this._minSizes.add(size);
216
+ this._onChange(WatchableViewportKeys.minSize);
217
+ this._onChange(WatchableViewportKeys.maxFullscreenSize);
218
+ if (this.isSmallerThanMinSize) {
219
+ this.enterFullscreenIfPossible();
220
+ }
221
+ return () => {
222
+ (0, _error_utils.invariant)(this._minSizes.has(size), 'UnsetFn can only be called once');
231
223
  this._cachedMinSize = null;
232
- // min size is also a constraint on maxFullscreenSize:
233
224
  this._cachedMaxFullscreenSize = null;
234
- this._minSizes.add(size);
225
+ this._minSizes.delete(size);
235
226
  this._onChange(WatchableViewportKeys.minSize);
227
+ // min size is also a constraint on maxFullscreenSize:
236
228
  this._onChange(WatchableViewportKeys.maxFullscreenSize);
237
- if (this.isSmallerThanMinSize) {
238
- this.enterFullscreenIfPossible();
239
- }
240
- return () => {
241
- (0, _error_utils.invariant)(this._minSizes.has(size), 'UnsetFn can only be called once');
242
- this._cachedMinSize = null;
243
- this._cachedMaxFullscreenSize = null;
244
- this._minSizes.delete(size);
245
- this._onChange(WatchableViewportKeys.minSize);
246
- // min size is also a constraint on maxFullscreenSize:
247
- this._onChange(WatchableViewportKeys.maxFullscreenSize);
248
- };
249
- }
229
+ };
230
+ }
250
231
 
251
- /**
252
- * `true` if the extension frame is smaller than `minSize`, `false` otherwise.
253
- */
254
- }, {
255
- key: "isSmallerThanMinSize",
256
- get: function get() {
257
- var _this$size = this.size,
258
- width = _this$size.width,
259
- height = _this$size.height;
260
- var isWidthTooSmall = this.minSize.width !== null && this.minSize.width > width;
261
- var isHeightTooSmall = this.minSize.height !== null && this.minSize.height > height;
262
- return isWidthTooSmall || isHeightTooSmall;
263
- }
264
- /**
265
- * `true` if the extension is fullscreen, `false` otherwise.
266
- */
267
- }, {
268
- key: "isFullscreen",
269
- get: function get() {
270
- return this._isFullscreen;
271
- }
272
- /**
273
- * The current size of the extension frame.
274
- *
275
- * Can be watched.
276
- */
277
- }, {
278
- key: "size",
279
- get: function get() {
280
- return {
281
- width: window.innerWidth,
282
- height: window.innerHeight
283
- };
284
- }
285
- /**
286
- * Get notified of changes to the viewport.
287
- *
288
- * Watchable keys are:
289
- * - `'isFullscreen'`
290
- * - `'size'`
291
- * - `'minSize'`
292
- * - `'maxFullscreenSize'`
293
- *
294
- * Every call to `.watch` should have a matching call to `.unwatch`.
295
- *
296
- * Returns the array of keys that were watched.
297
- *
298
- * @param keys the keys to watch
299
- * @param callback a function to call when those keys change
300
- * @param context an optional context for `this` in `callback`.
301
- */
302
- }, {
303
- key: "watch",
304
- value: function watch(keys, callback, context) {
305
- var validKeys = (0, _get2.default)((0, _getPrototypeOf2.default)(Viewport.prototype), "watch", this).call(this, keys, callback, context);
306
- if (validKeys.includes(WatchableViewportKeys.size)) {
307
- if (this._sizeWatchCount === 0) {
308
- window.addEventListener('resize', this._onSizeChangeDebounced, false);
309
- }
310
- this._sizeWatchCount++;
311
- }
312
- return validKeys;
313
- }
314
- /**
315
- * Unwatch keys watched with `.watch`.
316
- *
317
- * Should be called with the same arguments given to `.watch`.
318
- *
319
- * Returns the array of keys that were unwatched
320
- *
321
- * @param keys the keys to unwatch
322
- * @param callback the function passed to `.watch` for these keys
323
- * @param context the context that was passed to `.watch` for this `callback`
324
- */
325
- }, {
326
- key: "unwatch",
327
- value: function unwatch(keys, callback, context) {
328
- var validKeys = (0, _get2.default)((0, _getPrototypeOf2.default)(Viewport.prototype), "unwatch", this).call(this, keys, callback, context);
329
- if (validKeys.includes(WatchableViewportKeys.size)) {
330
- this._sizeWatchCount--;
331
- if (this._sizeWatchCount === 0) {
332
- window.removeEventListener('resize', this._onSizeChangeDebounced, false);
333
- }
232
+ /**
233
+ * `true` if the extension frame is smaller than `minSize`, `false` otherwise.
234
+ */
235
+ get isSmallerThanMinSize() {
236
+ const {
237
+ width,
238
+ height
239
+ } = this.size;
240
+ const isWidthTooSmall = this.minSize.width !== null && this.minSize.width > width;
241
+ const isHeightTooSmall = this.minSize.height !== null && this.minSize.height > height;
242
+ return isWidthTooSmall || isHeightTooSmall;
243
+ }
244
+ /**
245
+ * `true` if the extension is fullscreen, `false` otherwise.
246
+ */
247
+ get isFullscreen() {
248
+ return this._isFullscreen;
249
+ }
250
+ /**
251
+ * The current size of the extension frame.
252
+ *
253
+ * Can be watched.
254
+ */
255
+ get size() {
256
+ return {
257
+ width: window.innerWidth,
258
+ height: window.innerHeight
259
+ };
260
+ }
261
+ /**
262
+ * Get notified of changes to the viewport.
263
+ *
264
+ * Watchable keys are:
265
+ * - `'isFullscreen'`
266
+ * - `'size'`
267
+ * - `'minSize'`
268
+ * - `'maxFullscreenSize'`
269
+ *
270
+ * Every call to `.watch` should have a matching call to `.unwatch`.
271
+ *
272
+ * Returns the array of keys that were watched.
273
+ *
274
+ * @param keys the keys to watch
275
+ * @param callback a function to call when those keys change
276
+ * @param context an optional context for `this` in `callback`.
277
+ */
278
+ watch(keys, callback, context) {
279
+ const validKeys = super.watch(keys, callback, context);
280
+ if (validKeys.includes(WatchableViewportKeys.size)) {
281
+ if (this._sizeWatchCount === 0) {
282
+ window.addEventListener('resize', this._onSizeChangeDebounced, false);
334
283
  }
335
- return validKeys;
336
- }
337
- /**
338
- * @internal
339
- */
340
- }, {
341
- key: "__onEnterFullscreen",
342
- value: function __onEnterFullscreen() {
343
- this._isFullscreen = true;
344
- this._onChange(WatchableViewportKeys.isFullscreen);
345
- this._onChange(WatchableViewportKeys.size);
284
+ this._sizeWatchCount++;
346
285
  }
347
- /**
348
- * @internal
349
- */
350
- }, {
351
- key: "__onExitFullscreen",
352
- value: function __onExitFullscreen() {
353
- this._isFullscreen = false;
354
- this._onChange(WatchableViewportKeys.isFullscreen);
355
- this._onChange(WatchableViewportKeys.size);
356
- }
357
- /**
358
- * @internal
359
- */
360
- }, {
361
- key: "__focus",
362
- value: function __focus() {
363
- var _document = document,
364
- body = _document.body,
365
- activeElement = _document.activeElement;
366
- // See comment in BlockFrame.focusIframe for why we do this.
367
- if (activeElement && activeElement !== body) {
368
- // If there's already an activeElement, re-focus it.
369
- activeElement.focus();
370
- } else if (body) {
371
- // If there isn't an activeElement, create a dummy input
372
- // to capture focus.
373
- var input = document.createElement('input');
374
- body.appendChild(input);
375
- input.focus();
376
- input.remove();
286
+ return validKeys;
287
+ }
288
+ /**
289
+ * Unwatch keys watched with `.watch`.
290
+ *
291
+ * Should be called with the same arguments given to `.watch`.
292
+ *
293
+ * Returns the array of keys that were unwatched
294
+ *
295
+ * @param keys the keys to unwatch
296
+ * @param callback the function passed to `.watch` for these keys
297
+ * @param context the context that was passed to `.watch` for this `callback`
298
+ */
299
+ unwatch(keys, callback, context) {
300
+ const validKeys = super.unwatch(keys, callback, context);
301
+ if (validKeys.includes(WatchableViewportKeys.size)) {
302
+ this._sizeWatchCount--;
303
+ if (this._sizeWatchCount === 0) {
304
+ window.removeEventListener('resize', this._onSizeChangeDebounced, false);
377
305
  }
378
306
  }
379
- /**
380
- * @internal
381
- */
382
- }, {
383
- key: "_onSizeChange",
384
- value: function _onSizeChange() {
385
- this._onChange(WatchableViewportKeys.size);
386
- }
387
- }], [{
388
- key: "_isWatchableKey",
389
- value: /** @internal */
390
- function _isWatchableKey(key) {
391
- return (0, _private_utils.isEnumValue)(WatchableViewportKeys, key);
307
+ return validKeys;
308
+ }
309
+ /**
310
+ * @internal
311
+ */
312
+ __onEnterFullscreen() {
313
+ this._isFullscreen = true;
314
+ this._onChange(WatchableViewportKeys.isFullscreen);
315
+ this._onChange(WatchableViewportKeys.size);
316
+ }
317
+ /**
318
+ * @internal
319
+ */
320
+ __onExitFullscreen() {
321
+ this._isFullscreen = false;
322
+ this._onChange(WatchableViewportKeys.isFullscreen);
323
+ this._onChange(WatchableViewportKeys.size);
324
+ }
325
+ /**
326
+ * @internal
327
+ */
328
+ __focus() {
329
+ const {
330
+ body,
331
+ activeElement
332
+ } = document;
333
+ // See comment in BlockFrame.focusIframe for why we do this.
334
+ if (activeElement && activeElement !== body) {
335
+ // If there's already an activeElement, re-focus it.
336
+ activeElement.focus();
337
+ } else if (body) {
338
+ // If there isn't an activeElement, create a dummy input
339
+ // to capture focus.
340
+ const input = document.createElement('input');
341
+ body.appendChild(input);
342
+ input.focus();
343
+ input.remove();
392
344
  }
393
- }]);
394
- }(_watchable.default);
395
- /** @internal */
396
- (0, _defineProperty2.default)(Viewport, "_className", 'Viewport');
345
+ }
346
+ /**
347
+ * @internal
348
+ */
349
+ _onSizeChange() {
350
+ this._onChange(WatchableViewportKeys.size);
351
+ }
352
+ }
397
353
  var _default = exports.default = Viewport;
@@ -5,13 +5,13 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.default = getAirtableInterface;
7
7
  var _error_utils = require("../shared/error_utils");
8
- var AIRTABLE_INTERFACE_VERSION = 0;
9
- var airtableInterface = null;
10
- var missingAirtableInterfaceErrorMessage = ['Error: Extension environment misconfigured', '\n\n', 'Airtable Extensions can only run in the presence of an Airtable Base. If you ', 'are trying to run your Extension with a Base hosted on airtable.com, then be ', 'sure you are using the Airtable CLI to serve your code and accessing it ', 'through a Custom Extension installed inside a Base on airtable.com.', '\n\n', 'If you are trying to run automated tests for your Extension, then make sure ', 'you have loaded the `@airtable/testing-library` module *before* the ', '`@airtable/blocks` module.'].join('');
8
+ const AIRTABLE_INTERFACE_VERSION = 0;
9
+ let airtableInterface = null;
10
+ const missingAirtableInterfaceErrorMessage = ['Error: Extension environment misconfigured', '\n\n', 'Airtable Extensions can only run in the presence of an Airtable Base. If you ', 'are trying to run your Extension with a Base hosted on airtable.com, then be ', 'sure you are using the Airtable CLI to serve your code and accessing it ', 'through a Custom Extension installed inside a Base on airtable.com.', '\n\n', 'If you are trying to run automated tests for your Extension, then make sure ', 'you have loaded the `@airtable/testing-library` module *before* the ', '`@airtable/blocks` module.'].join('');
11
11
 
12
12
  /** @hidden */
13
13
  function getAirtableInterface() {
14
- var getAirtableInterfaceAtVersion = window.__getAirtableInterfaceAtVersion;
14
+ const getAirtableInterfaceAtVersion = window.__getAirtableInterfaceAtVersion;
15
15
  if (!airtableInterface) {
16
16
  if (!getAirtableInterfaceAtVersion) {
17
17
  throw (0, _error_utils.spawnError)(missingAirtableInterfaceErrorMessage);