@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.
- package/dist/esm/base/assert_run_context.js +12 -0
- package/dist/{cjs → esm}/base/index.js +30 -32
- package/dist/esm/base/models/abstract_model_with_async_data.js +190 -0
- package/dist/esm/base/models/base.js +252 -0
- package/dist/esm/base/models/create_aggregators.js +90 -0
- package/dist/esm/base/models/cursor.js +305 -0
- package/dist/esm/base/models/field.js +338 -0
- package/dist/esm/base/models/grouped_record_query_result.js +280 -0
- package/dist/esm/base/models/linked_records_query_result.js +553 -0
- package/dist/{cjs → esm}/base/models/models.js +19 -40
- package/dist/esm/base/models/mutations.js +312 -0
- package/dist/esm/base/models/object_pool.js +145 -0
- package/dist/esm/base/models/record.js +239 -0
- package/dist/{cjs → esm}/base/models/record_coloring.js +6 -6
- package/dist/esm/base/models/record_query_result.js +657 -0
- package/dist/esm/base/models/record_store.js +475 -0
- package/dist/esm/base/models/session.js +154 -0
- package/dist/esm/base/models/table.js +520 -0
- package/dist/esm/base/models/table_or_view_query_result.js +749 -0
- package/dist/esm/base/models/view.js +326 -0
- package/dist/esm/base/models/view_data_store.js +265 -0
- package/dist/esm/base/models/view_metadata_query_result.js +176 -0
- package/dist/esm/base/perform_record_action.js +215 -0
- package/dist/esm/base/sdk.js +178 -0
- package/dist/esm/base/settings_button.js +118 -0
- package/dist/{cjs → esm}/base/types/airtable_interface.js +1 -1
- package/dist/{cjs → esm}/base/types/mutations.js +5 -11
- package/dist/{cjs → esm}/base/types/undo_redo.js +1 -1
- package/dist/{cjs → esm}/base/types/view.js +1 -1
- package/dist/{cjs → esm}/base/ui/base_provider.js +6 -8
- package/dist/esm/base/ui/baymax_utils.js +461 -0
- package/dist/esm/base/ui/block_wrapper.js +118 -0
- package/dist/esm/base/ui/box.js +84 -0
- package/dist/esm/base/ui/button.js +152 -0
- package/dist/esm/base/ui/cell_renderer.js +198 -0
- package/dist/esm/base/ui/choice_token.js +93 -0
- package/dist/esm/base/ui/collaborator_token.js +123 -0
- package/dist/esm/base/ui/color_palette.js +196 -0
- package/dist/esm/base/ui/color_palette_synced.js +69 -0
- package/dist/esm/base/ui/confirmation_dialog.js +103 -0
- package/dist/{cjs → esm}/base/ui/control_sizes.js +24 -22
- package/dist/{cjs → esm}/base/ui/create_detect_element_resize.js +6 -10
- package/dist/{cjs → esm}/base/ui/css_helpers.js +1 -1
- package/dist/esm/base/ui/dialog.js +101 -0
- package/dist/esm/base/ui/dialog_close_button.js +106 -0
- package/dist/{cjs → esm}/base/ui/expand_record.js +1 -2
- package/dist/{cjs → esm}/base/ui/expand_record_list.js +3 -4
- package/dist/esm/base/ui/expand_record_picker_async.js +71 -0
- package/dist/esm/base/ui/field_icon.js +44 -0
- package/dist/esm/base/ui/field_picker.js +98 -0
- package/dist/esm/base/ui/field_picker_synced.js +66 -0
- package/dist/esm/base/ui/form_field.js +109 -0
- package/dist/{cjs → esm}/base/ui/geometry/geometry.js +5 -5
- package/dist/esm/base/ui/geometry/point.js +19 -0
- package/dist/esm/base/ui/geometry/rect.js +51 -0
- package/dist/esm/base/ui/geometry/size.js +19 -0
- package/dist/esm/base/ui/global_alert.js +71 -0
- package/dist/esm/base/ui/heading.js +132 -0
- package/dist/esm/base/ui/icon.js +109 -0
- package/dist/{cjs → esm}/base/ui/icon_config.js +6 -12
- package/dist/{cjs → esm}/base/ui/initialize_block.js +16 -35
- package/dist/esm/base/ui/input.js +161 -0
- package/dist/esm/base/ui/input_synced.js +66 -0
- package/dist/{cjs → esm}/base/ui/key_codes.js +2 -3
- package/dist/esm/base/ui/label.js +80 -0
- package/dist/esm/base/ui/link.js +196 -0
- package/dist/esm/base/ui/loader.js +61 -0
- package/dist/esm/base/ui/modal.js +145 -0
- package/dist/esm/base/ui/model_picker_select.js +57 -0
- package/dist/esm/base/ui/popover.js +315 -0
- package/dist/esm/base/ui/progress_bar.js +115 -0
- package/dist/esm/base/ui/record_card.js +564 -0
- package/dist/esm/base/ui/record_card_list.js +303 -0
- package/dist/esm/base/ui/select.js +191 -0
- package/dist/esm/base/ui/select_and_select_buttons_helpers.js +63 -0
- package/dist/esm/base/ui/select_buttons.js +159 -0
- package/dist/esm/base/ui/select_buttons_synced.js +62 -0
- package/dist/esm/base/ui/select_synced.js +65 -0
- package/dist/esm/base/ui/switch.js +167 -0
- package/dist/esm/base/ui/switch_synced.js +53 -0
- package/dist/esm/base/ui/synced.js +49 -0
- package/dist/{cjs → esm}/base/ui/system/all_styles_set.js +4 -12
- package/dist/esm/base/ui/system/appearance/appearance_set.js +27 -0
- package/dist/esm/base/ui/system/appearance/background_color.js +18 -0
- package/dist/{cjs → esm}/base/ui/system/appearance/border.js +3 -6
- package/dist/esm/base/ui/system/appearance/border_radius.js +18 -0
- package/dist/esm/base/ui/system/appearance/box_shadow.js +18 -0
- package/dist/esm/base/ui/system/appearance/opacity.js +18 -0
- package/dist/esm/base/ui/system/dimensions/dimensions_set.js +29 -0
- package/dist/esm/base/ui/system/dimensions/height.js +18 -0
- package/dist/esm/base/ui/system/dimensions/max_height.js +18 -0
- package/dist/esm/base/ui/system/dimensions/max_width.js +18 -0
- package/dist/esm/base/ui/system/dimensions/min_height.js +18 -0
- package/dist/esm/base/ui/system/dimensions/min_width.js +18 -0
- package/dist/esm/base/ui/system/dimensions/width.js +18 -0
- package/dist/esm/base/ui/system/display.js +19 -0
- package/dist/esm/base/ui/system/flex_container/align_content.js +15 -0
- package/dist/esm/base/ui/system/flex_container/align_items.js +15 -0
- package/dist/esm/base/ui/system/flex_container/flex_container_set.js +29 -0
- package/dist/esm/base/ui/system/flex_container/flex_direction.js +15 -0
- package/dist/esm/base/ui/system/flex_container/flex_wrap.js +15 -0
- package/dist/esm/base/ui/system/flex_container/justify_content.js +15 -0
- package/dist/esm/base/ui/system/flex_container/justify_items.js +16 -0
- package/dist/esm/base/ui/system/flex_item/align_self.js +15 -0
- package/dist/esm/base/ui/system/flex_item/flex.js +15 -0
- package/dist/esm/base/ui/system/flex_item/flex_basis.js +15 -0
- package/dist/esm/base/ui/system/flex_item/flex_grow.js +15 -0
- package/dist/esm/base/ui/system/flex_item/flex_item_set.js +31 -0
- package/dist/esm/base/ui/system/flex_item/flex_shrink.js +15 -0
- package/dist/esm/base/ui/system/flex_item/justify_self.js +16 -0
- package/dist/esm/base/ui/system/flex_item/order.js +15 -0
- package/dist/{cjs → esm}/base/ui/system/index.js +104 -416
- package/dist/esm/base/ui/system/overflow.js +21 -0
- package/dist/{cjs → esm}/base/ui/system/position/bottom.js +4 -6
- package/dist/{cjs → esm}/base/ui/system/position/left.js +4 -6
- package/dist/esm/base/ui/system/position/position.js +15 -0
- package/dist/esm/base/ui/system/position/position_set.js +29 -0
- package/dist/{cjs → esm}/base/ui/system/position/right.js +4 -6
- package/dist/{cjs → esm}/base/ui/system/position/top.js +4 -6
- package/dist/esm/base/ui/system/position/z_index.js +18 -0
- package/dist/{cjs → esm}/base/ui/system/spacing/margin.js +4 -6
- package/dist/{cjs → esm}/base/ui/system/spacing/padding.js +4 -6
- package/dist/esm/base/ui/system/spacing/spacing_set.js +21 -0
- package/dist/esm/base/ui/system/typography/font_family.js +18 -0
- package/dist/esm/base/ui/system/typography/font_size.js +18 -0
- package/dist/esm/base/ui/system/typography/font_style.js +15 -0
- package/dist/esm/base/ui/system/typography/font_weight.js +18 -0
- package/dist/esm/base/ui/system/typography/letter_spacing.js +18 -0
- package/dist/esm/base/ui/system/typography/line_height.js +15 -0
- package/dist/esm/base/ui/system/typography/text_align.js +15 -0
- package/dist/esm/base/ui/system/typography/text_color.js +18 -0
- package/dist/esm/base/ui/system/typography/text_decoration.js +15 -0
- package/dist/esm/base/ui/system/typography/text_transform.js +15 -0
- package/dist/esm/base/ui/system/typography/typography_set.js +37 -0
- package/dist/{cjs → esm}/base/ui/system/utils/ensure_numbers_are_within_scale.js +3 -4
- package/dist/esm/base/ui/system/utils/get_style_props_for_responsive_prop.js +73 -0
- package/dist/esm/base/ui/table_picker.js +71 -0
- package/dist/esm/base/ui/table_picker_synced.js +62 -0
- package/dist/esm/base/ui/text.js +117 -0
- package/dist/esm/base/ui/text_button.js +196 -0
- package/dist/{cjs → esm}/base/ui/theme/default_theme/button_variants.js +3 -3
- package/dist/esm/base/ui/theme/default_theme/control_sizes.js +102 -0
- package/dist/{cjs → esm}/base/ui/theme/default_theme/heading_styles.js +1 -1
- package/dist/{cjs → esm}/base/ui/theme/default_theme/index.js +9 -15
- package/dist/{cjs → esm}/base/ui/theme/default_theme/input_variants.js +3 -3
- package/dist/{cjs → esm}/base/ui/theme/default_theme/link_variants.js +3 -3
- package/dist/{cjs → esm}/base/ui/theme/default_theme/select_buttons_variants.js +4 -4
- package/dist/esm/base/ui/theme/default_theme/select_variants.js +50 -0
- package/dist/esm/base/ui/theme/default_theme/switch_variants.js +85 -0
- package/dist/{cjs → esm}/base/ui/theme/default_theme/text_button_variants.js +5 -5
- package/dist/{cjs → esm}/base/ui/theme/default_theme/text_styles.js +1 -1
- package/dist/{cjs → esm}/base/ui/theme/default_theme/tokens.js +14 -14
- package/dist/{cjs → esm}/base/ui/theme/theme_context.js +2 -2
- package/dist/{cjs → esm}/base/ui/theme/use_theme.js +2 -2
- package/dist/esm/base/ui/tooltip.js +175 -0
- package/dist/{cjs → esm}/base/ui/ui.js +48 -49
- package/dist/{cjs → esm}/base/ui/unstable_standalone_ui.js +27 -27
- package/dist/{cjs → esm}/base/ui/use_base.js +1 -1
- package/dist/{cjs → esm}/base/ui/use_cursor.js +5 -4
- package/dist/{cjs → esm}/base/ui/use_form_field.js +1 -1
- package/dist/{cjs → esm}/base/ui/use_loadable.js +25 -91
- package/dist/{cjs → esm}/base/ui/use_record_action_data.js +4 -3
- package/dist/{cjs → esm}/base/ui/use_records.js +9 -13
- package/dist/{cjs → esm}/base/ui/use_session.js +1 -1
- package/dist/{cjs → esm}/base/ui/use_settings_button.js +4 -3
- package/dist/esm/base/ui/use_styled_system.js +25 -0
- package/dist/{cjs → esm}/base/ui/use_text_color_for_background_color.js +4 -3
- package/dist/{cjs → esm}/base/ui/use_view_metadata.js +4 -4
- package/dist/{cjs → esm}/base/ui/use_viewport.js +2 -2
- package/dist/esm/base/ui/view_picker.js +89 -0
- package/dist/esm/base/ui/view_picker_synced.js +66 -0
- package/dist/esm/base/ui/viewport_constraint.js +129 -0
- package/dist/esm/base/ui/with_styled_system.js +129 -0
- package/dist/esm/base/undo_redo.js +37 -0
- package/dist/{cjs → esm}/base/unstable_testing_utils.js +27 -27
- package/dist/esm/base/viewport.js +353 -0
- package/dist/esm/injected/airtable_interface.js +22 -0
- package/dist/esm/interface/assert_run_context.js +12 -0
- package/dist/esm/interface/index.js +22 -0
- package/dist/esm/interface/models/base.js +35 -0
- package/dist/esm/interface/models/field.js +28 -0
- package/dist/{cjs → esm}/interface/models/models.js +8 -7
- package/dist/esm/interface/models/mutations.js +63 -0
- package/dist/esm/interface/models/record.js +51 -0
- package/dist/esm/interface/models/record_store.js +51 -0
- package/dist/esm/interface/models/session.js +28 -0
- package/dist/esm/interface/models/table.js +97 -0
- package/dist/esm/interface/sdk.js +78 -0
- package/dist/{cjs → esm}/interface/types/airtable_interface.js +2 -2
- package/dist/esm/interface/types/mutations.js +17 -0
- package/dist/esm/interface/ui/block_wrapper.js +69 -0
- package/dist/{cjs → esm}/interface/ui/initialize_block.js +13 -28
- package/dist/{cjs → esm}/interface/ui/ui.js +20 -19
- package/dist/{cjs → esm}/interface/ui/use_base.js +1 -1
- package/dist/{cjs → esm}/interface/ui/use_custom_properties.js +19 -35
- package/dist/{cjs → esm}/interface/ui/use_records.js +6 -5
- package/dist/{cjs → esm}/interface/ui/use_run_info.js +2 -2
- package/dist/{cjs → esm}/interface/ui/use_session.js +1 -1
- package/dist/{cjs → esm}/shared/color_utils.js +9 -16
- package/dist/{cjs → esm}/shared/colors.js +2 -2
- package/dist/{cjs → esm}/shared/error_utils.js +9 -11
- package/dist/{cjs → esm}/shared/event_tracker.js +3 -3
- package/dist/esm/shared/global_config.js +399 -0
- package/dist/esm/shared/models/abstract_model.js +94 -0
- package/dist/esm/shared/models/base_core.js +482 -0
- package/dist/esm/shared/models/field_core.js +288 -0
- package/dist/esm/shared/models/mutations_core.js +343 -0
- package/dist/esm/shared/models/record_core.js +215 -0
- package/dist/esm/shared/models/record_store_core.js +160 -0
- package/dist/esm/shared/models/session_core.js +160 -0
- package/dist/esm/shared/models/table_core.js +1318 -0
- package/dist/{cjs → esm}/shared/private_utils.js +54 -124
- package/dist/esm/shared/sdk_core.js +113 -0
- package/dist/{cjs → esm}/shared/types/field_core.js +1 -1
- package/dist/esm/shared/types/mutation_constants.js +11 -0
- package/dist/{cjs → esm}/shared/types/mutations_core.js +1 -1
- package/dist/{cjs → esm}/shared/types/permission_levels.js +1 -1
- package/dist/esm/shared/types/record.js +1 -0
- package/dist/esm/shared/types/stat.js +1 -0
- package/dist/esm/shared/types/table_core.js +1 -0
- package/dist/{cjs → esm}/shared/ui/global_config_synced_component_helpers.js +9 -9
- package/dist/esm/shared/ui/loader.js +47 -0
- package/dist/{cjs → esm}/shared/ui/remote_utils.js +5 -7
- package/dist/{cjs → esm}/shared/ui/sdk_context.js +4 -8
- package/dist/{cjs → esm}/shared/ui/use_array_identity.js +2 -2
- package/dist/{cjs → esm}/shared/ui/use_base.js +6 -5
- package/dist/{cjs → esm}/shared/ui/use_color_scheme.js +3 -8
- package/dist/{cjs → esm}/shared/ui/use_global_config.js +5 -4
- package/dist/{cjs → esm}/shared/ui/use_session.js +6 -5
- package/dist/{cjs → esm}/shared/ui/use_synced.js +7 -5
- package/dist/{cjs → esm}/shared/ui/use_watchable.js +17 -44
- package/dist/{cjs → esm}/shared/ui/with_hooks.js +6 -13
- package/dist/{cjs → esm}/shared/unstable_private_utils.js +4 -6
- package/dist/{cjs → esm}/shared/warning.js +5 -5
- package/dist/esm/shared/watchable.js +150 -0
- package/dist/esm/stats/block_stats.js +73 -0
- package/dist/esm/testing/base/abstract_mock_airtable_interface.js +208 -0
- package/dist/esm/testing/interface/abstract_mock_airtable_interface.js +124 -0
- package/dist/types/src/base/assert_run_context.d.ts +2 -0
- package/dist/types/src/base/assert_run_context.d.ts.map +1 -0
- package/dist/types/src/base/index.d.ts +1 -0
- package/dist/types/src/base/index.d.ts.map +1 -1
- package/dist/types/src/base/models/base.d.ts +19 -0
- package/dist/types/src/base/models/base.d.ts.map +1 -1
- package/dist/types/src/base/models/create_aggregators.d.ts +3 -4
- package/dist/types/src/base/models/create_aggregators.d.ts.map +1 -1
- package/dist/types/src/base/models/field.d.ts +3 -2
- package/dist/types/src/base/models/field.d.ts.map +1 -1
- package/dist/types/src/base/models/models.d.ts +1 -2
- package/dist/types/src/base/models/models.d.ts.map +1 -1
- package/dist/types/src/base/models/mutations.d.ts.map +1 -1
- package/dist/types/src/base/sdk.d.ts.map +1 -1
- package/dist/types/src/base/ui/block_wrapper.d.ts +1 -1
- package/dist/types/src/base/ui/box.d.ts.map +1 -1
- package/dist/types/src/base/ui/button.d.ts +0 -5
- package/dist/types/src/base/ui/button.d.ts.map +1 -1
- package/dist/types/src/base/ui/cell_renderer.d.ts +1 -22
- package/dist/types/src/base/ui/cell_renderer.d.ts.map +1 -1
- package/dist/types/src/base/ui/choice_token.d.ts +1 -21
- package/dist/types/src/base/ui/choice_token.d.ts.map +1 -1
- package/dist/types/src/base/ui/collaborator_token.d.ts +0 -20
- package/dist/types/src/base/ui/collaborator_token.d.ts.map +1 -1
- package/dist/types/src/base/ui/color_palette.d.ts +1 -32
- package/dist/types/src/base/ui/color_palette.d.ts.map +1 -1
- package/dist/types/src/base/ui/color_palette_synced.d.ts +0 -14
- package/dist/types/src/base/ui/color_palette_synced.d.ts.map +1 -1
- package/dist/types/src/base/ui/confirmation_dialog.d.ts +0 -17
- package/dist/types/src/base/ui/confirmation_dialog.d.ts.map +1 -1
- package/dist/types/src/base/ui/control_sizes.d.ts +0 -1
- package/dist/types/src/base/ui/control_sizes.d.ts.map +1 -1
- package/dist/types/src/base/ui/dialog.d.ts +1 -23
- package/dist/types/src/base/ui/dialog.d.ts.map +1 -1
- package/dist/types/src/base/ui/dialog_close_button.d.ts +2 -24
- package/dist/types/src/base/ui/dialog_close_button.d.ts.map +1 -1
- package/dist/types/src/base/ui/field_icon.d.ts +1 -17
- package/dist/types/src/base/ui/field_icon.d.ts.map +1 -1
- package/dist/types/src/base/ui/field_picker.d.ts +0 -23
- package/dist/types/src/base/ui/field_picker.d.ts.map +1 -1
- package/dist/types/src/base/ui/field_picker_synced.d.ts.map +1 -1
- package/dist/types/src/base/ui/form_field.d.ts +0 -4
- package/dist/types/src/base/ui/form_field.d.ts.map +1 -1
- package/dist/types/src/base/ui/heading.d.ts +1 -1
- package/dist/types/src/base/ui/heading.d.ts.map +1 -1
- package/dist/types/src/base/ui/icon.d.ts +0 -16
- package/dist/types/src/base/ui/icon.d.ts.map +1 -1
- package/dist/types/src/base/ui/icon_config.d.ts +50 -51
- package/dist/types/src/base/ui/icon_config.d.ts.map +1 -1
- package/dist/types/src/base/ui/initialize_block.d.ts.map +1 -1
- package/dist/types/src/base/ui/input.d.ts +12 -46
- package/dist/types/src/base/ui/input.d.ts.map +1 -1
- package/dist/types/src/base/ui/input_synced.d.ts.map +1 -1
- package/dist/types/src/base/ui/label.d.ts.map +1 -1
- package/dist/types/src/base/ui/link.d.ts +1 -5
- package/dist/types/src/base/ui/link.d.ts.map +1 -1
- package/dist/types/src/base/ui/loader.d.ts +3 -20
- package/dist/types/src/base/ui/loader.d.ts.map +1 -1
- package/dist/types/src/base/ui/modal.d.ts +1 -14
- package/dist/types/src/base/ui/modal.d.ts.map +1 -1
- package/dist/types/src/base/ui/model_picker_select.d.ts.map +1 -1
- package/dist/types/src/base/ui/popover.d.ts +1 -17
- package/dist/types/src/base/ui/popover.d.ts.map +1 -1
- package/dist/types/src/base/ui/progress_bar.d.ts +1 -24
- package/dist/types/src/base/ui/progress_bar.d.ts.map +1 -1
- package/dist/types/src/base/ui/record_card.d.ts +1 -23
- package/dist/types/src/base/ui/record_card.d.ts.map +1 -1
- package/dist/types/src/base/ui/record_card_list.d.ts +1 -18
- package/dist/types/src/base/ui/record_card_list.d.ts.map +1 -1
- package/dist/types/src/base/ui/select.d.ts +0 -44
- package/dist/types/src/base/ui/select.d.ts.map +1 -1
- package/dist/types/src/base/ui/select_and_select_buttons_helpers.d.ts +0 -2
- package/dist/types/src/base/ui/select_and_select_buttons_helpers.d.ts.map +1 -1
- package/dist/types/src/base/ui/select_buttons.d.ts +0 -22
- package/dist/types/src/base/ui/select_buttons.d.ts.map +1 -1
- package/dist/types/src/base/ui/select_buttons_synced.d.ts.map +1 -1
- package/dist/types/src/base/ui/select_synced.d.ts.map +1 -1
- package/dist/types/src/base/ui/switch.d.ts +0 -22
- package/dist/types/src/base/ui/switch.d.ts.map +1 -1
- package/dist/types/src/base/ui/switch_synced.d.ts.map +1 -1
- package/dist/types/src/base/ui/synced.d.ts +2 -8
- package/dist/types/src/base/ui/synced.d.ts.map +1 -1
- package/dist/types/src/base/ui/system/all_styles_set.d.ts +0 -3
- package/dist/types/src/base/ui/system/all_styles_set.d.ts.map +1 -1
- package/dist/types/src/base/ui/system/appearance/appearance_set.d.ts +0 -1
- package/dist/types/src/base/ui/system/appearance/appearance_set.d.ts.map +1 -1
- package/dist/types/src/base/ui/system/appearance/background_color.d.ts +0 -1
- package/dist/types/src/base/ui/system/appearance/background_color.d.ts.map +1 -1
- package/dist/types/src/base/ui/system/appearance/border.d.ts +0 -1
- package/dist/types/src/base/ui/system/appearance/border.d.ts.map +1 -1
- package/dist/types/src/base/ui/system/appearance/border_radius.d.ts +0 -1
- package/dist/types/src/base/ui/system/appearance/border_radius.d.ts.map +1 -1
- package/dist/types/src/base/ui/system/appearance/box_shadow.d.ts +0 -1
- package/dist/types/src/base/ui/system/appearance/box_shadow.d.ts.map +1 -1
- package/dist/types/src/base/ui/system/appearance/opacity.d.ts +0 -1
- package/dist/types/src/base/ui/system/appearance/opacity.d.ts.map +1 -1
- package/dist/types/src/base/ui/system/dimensions/dimensions_set.d.ts +0 -1
- package/dist/types/src/base/ui/system/dimensions/dimensions_set.d.ts.map +1 -1
- package/dist/types/src/base/ui/system/dimensions/height.d.ts +0 -1
- package/dist/types/src/base/ui/system/dimensions/height.d.ts.map +1 -1
- package/dist/types/src/base/ui/system/dimensions/max_height.d.ts +0 -1
- package/dist/types/src/base/ui/system/dimensions/max_height.d.ts.map +1 -1
- package/dist/types/src/base/ui/system/dimensions/max_width.d.ts +0 -1
- package/dist/types/src/base/ui/system/dimensions/max_width.d.ts.map +1 -1
- package/dist/types/src/base/ui/system/dimensions/min_height.d.ts +0 -1
- package/dist/types/src/base/ui/system/dimensions/min_height.d.ts.map +1 -1
- package/dist/types/src/base/ui/system/dimensions/min_width.d.ts +0 -1
- package/dist/types/src/base/ui/system/dimensions/min_width.d.ts.map +1 -1
- package/dist/types/src/base/ui/system/dimensions/width.d.ts +0 -1
- package/dist/types/src/base/ui/system/dimensions/width.d.ts.map +1 -1
- package/dist/types/src/base/ui/system/display.d.ts +0 -1
- package/dist/types/src/base/ui/system/display.d.ts.map +1 -1
- package/dist/types/src/base/ui/system/flex_container/align_content.d.ts +0 -1
- package/dist/types/src/base/ui/system/flex_container/align_content.d.ts.map +1 -1
- package/dist/types/src/base/ui/system/flex_container/align_items.d.ts +0 -1
- package/dist/types/src/base/ui/system/flex_container/align_items.d.ts.map +1 -1
- package/dist/types/src/base/ui/system/flex_container/flex_container_set.d.ts +0 -1
- package/dist/types/src/base/ui/system/flex_container/flex_container_set.d.ts.map +1 -1
- package/dist/types/src/base/ui/system/flex_container/flex_direction.d.ts +0 -1
- package/dist/types/src/base/ui/system/flex_container/flex_direction.d.ts.map +1 -1
- package/dist/types/src/base/ui/system/flex_container/flex_wrap.d.ts +0 -1
- package/dist/types/src/base/ui/system/flex_container/flex_wrap.d.ts.map +1 -1
- package/dist/types/src/base/ui/system/flex_container/justify_content.d.ts +0 -1
- package/dist/types/src/base/ui/system/flex_container/justify_content.d.ts.map +1 -1
- package/dist/types/src/base/ui/system/flex_container/justify_items.d.ts +0 -1
- package/dist/types/src/base/ui/system/flex_container/justify_items.d.ts.map +1 -1
- package/dist/types/src/base/ui/system/flex_item/align_self.d.ts +0 -1
- package/dist/types/src/base/ui/system/flex_item/align_self.d.ts.map +1 -1
- package/dist/types/src/base/ui/system/flex_item/flex.d.ts +0 -1
- package/dist/types/src/base/ui/system/flex_item/flex.d.ts.map +1 -1
- package/dist/types/src/base/ui/system/flex_item/flex_basis.d.ts +0 -1
- package/dist/types/src/base/ui/system/flex_item/flex_basis.d.ts.map +1 -1
- package/dist/types/src/base/ui/system/flex_item/flex_grow.d.ts +0 -1
- package/dist/types/src/base/ui/system/flex_item/flex_grow.d.ts.map +1 -1
- package/dist/types/src/base/ui/system/flex_item/flex_item_set.d.ts +0 -1
- package/dist/types/src/base/ui/system/flex_item/flex_item_set.d.ts.map +1 -1
- package/dist/types/src/base/ui/system/flex_item/flex_shrink.d.ts +0 -1
- package/dist/types/src/base/ui/system/flex_item/flex_shrink.d.ts.map +1 -1
- package/dist/types/src/base/ui/system/flex_item/justify_self.d.ts +0 -1
- package/dist/types/src/base/ui/system/flex_item/justify_self.d.ts.map +1 -1
- package/dist/types/src/base/ui/system/flex_item/order.d.ts +0 -1
- package/dist/types/src/base/ui/system/flex_item/order.d.ts.map +1 -1
- package/dist/types/src/base/ui/system/index.d.ts +52 -52
- package/dist/types/src/base/ui/system/index.d.ts.map +1 -1
- package/dist/types/src/base/ui/system/overflow.d.ts +0 -1
- package/dist/types/src/base/ui/system/overflow.d.ts.map +1 -1
- package/dist/types/src/base/ui/system/position/bottom.d.ts +0 -1
- package/dist/types/src/base/ui/system/position/bottom.d.ts.map +1 -1
- package/dist/types/src/base/ui/system/position/left.d.ts +0 -1
- package/dist/types/src/base/ui/system/position/left.d.ts.map +1 -1
- package/dist/types/src/base/ui/system/position/position.d.ts +0 -1
- package/dist/types/src/base/ui/system/position/position.d.ts.map +1 -1
- package/dist/types/src/base/ui/system/position/position_set.d.ts +0 -1
- package/dist/types/src/base/ui/system/position/position_set.d.ts.map +1 -1
- package/dist/types/src/base/ui/system/position/right.d.ts +0 -1
- package/dist/types/src/base/ui/system/position/right.d.ts.map +1 -1
- package/dist/types/src/base/ui/system/position/top.d.ts +0 -1
- package/dist/types/src/base/ui/system/position/top.d.ts.map +1 -1
- package/dist/types/src/base/ui/system/position/z_index.d.ts +0 -1
- package/dist/types/src/base/ui/system/position/z_index.d.ts.map +1 -1
- package/dist/types/src/base/ui/system/spacing/margin.d.ts +0 -1
- package/dist/types/src/base/ui/system/spacing/margin.d.ts.map +1 -1
- package/dist/types/src/base/ui/system/spacing/padding.d.ts +0 -1
- package/dist/types/src/base/ui/system/spacing/padding.d.ts.map +1 -1
- package/dist/types/src/base/ui/system/spacing/spacing_set.d.ts +0 -1
- package/dist/types/src/base/ui/system/spacing/spacing_set.d.ts.map +1 -1
- package/dist/types/src/base/ui/system/typography/font_family.d.ts +0 -1
- package/dist/types/src/base/ui/system/typography/font_family.d.ts.map +1 -1
- package/dist/types/src/base/ui/system/typography/font_size.d.ts +0 -1
- package/dist/types/src/base/ui/system/typography/font_size.d.ts.map +1 -1
- package/dist/types/src/base/ui/system/typography/font_style.d.ts +0 -1
- package/dist/types/src/base/ui/system/typography/font_style.d.ts.map +1 -1
- package/dist/types/src/base/ui/system/typography/font_weight.d.ts +0 -1
- package/dist/types/src/base/ui/system/typography/font_weight.d.ts.map +1 -1
- package/dist/types/src/base/ui/system/typography/letter_spacing.d.ts +0 -1
- package/dist/types/src/base/ui/system/typography/letter_spacing.d.ts.map +1 -1
- package/dist/types/src/base/ui/system/typography/line_height.d.ts +0 -1
- package/dist/types/src/base/ui/system/typography/line_height.d.ts.map +1 -1
- package/dist/types/src/base/ui/system/typography/text_align.d.ts +0 -1
- package/dist/types/src/base/ui/system/typography/text_align.d.ts.map +1 -1
- package/dist/types/src/base/ui/system/typography/text_color.d.ts +0 -1
- package/dist/types/src/base/ui/system/typography/text_color.d.ts.map +1 -1
- package/dist/types/src/base/ui/system/typography/text_decoration.d.ts +0 -1
- package/dist/types/src/base/ui/system/typography/text_decoration.d.ts.map +1 -1
- package/dist/types/src/base/ui/system/typography/text_transform.d.ts +0 -1
- package/dist/types/src/base/ui/system/typography/text_transform.d.ts.map +1 -1
- package/dist/types/src/base/ui/system/typography/typography_set.d.ts +0 -1
- package/dist/types/src/base/ui/system/typography/typography_set.d.ts.map +1 -1
- package/dist/types/src/base/ui/table_picker.d.ts +0 -21
- package/dist/types/src/base/ui/table_picker.d.ts.map +1 -1
- package/dist/types/src/base/ui/table_picker_synced.d.ts.map +1 -1
- package/dist/types/src/base/ui/text.d.ts +0 -3
- package/dist/types/src/base/ui/text.d.ts.map +1 -1
- package/dist/types/src/base/ui/text_button.d.ts +1 -5
- package/dist/types/src/base/ui/text_button.d.ts.map +1 -1
- package/dist/types/src/base/ui/theme/default_theme/index.d.ts +1 -1
- package/dist/types/src/base/ui/theme/theme_context.d.ts +1 -1
- package/dist/types/src/base/ui/theme/use_theme.d.ts +1 -1
- package/dist/types/src/base/ui/tooltip.d.ts +0 -16
- package/dist/types/src/base/ui/tooltip.d.ts.map +1 -1
- package/dist/types/src/base/ui/types/aria_props.d.ts.map +1 -1
- package/dist/types/src/base/ui/types/data_attributes_prop.d.ts +0 -4
- package/dist/types/src/base/ui/types/data_attributes_prop.d.ts.map +1 -1
- package/dist/types/src/base/ui/types/tooltip_anchor_props.d.ts +0 -7
- package/dist/types/src/base/ui/types/tooltip_anchor_props.d.ts.map +1 -1
- package/dist/types/src/base/ui/ui.d.ts +1 -0
- package/dist/types/src/base/ui/ui.d.ts.map +1 -1
- package/dist/types/src/base/ui/view_picker.d.ts +0 -23
- package/dist/types/src/base/ui/view_picker.d.ts.map +1 -1
- package/dist/types/src/base/ui/view_picker_synced.d.ts.map +1 -1
- package/dist/types/src/base/ui/viewport_constraint.d.ts +1 -14
- package/dist/types/src/base/ui/viewport_constraint.d.ts.map +1 -1
- package/dist/types/src/base/unstable_testing_utils.d.ts +1 -1
- package/dist/types/src/base/unstable_testing_utils.d.ts.map +1 -1
- package/dist/types/src/interface/assert_run_context.d.ts +2 -0
- package/dist/types/src/interface/assert_run_context.d.ts.map +1 -0
- package/dist/types/src/interface/index.d.ts +1 -6
- package/dist/types/src/interface/index.d.ts.map +1 -1
- package/dist/types/src/interface/models/models.d.ts +1 -0
- package/dist/types/src/interface/models/models.d.ts.map +1 -1
- package/dist/types/src/interface/models/mutations.d.ts.map +1 -1
- package/dist/types/src/interface/models/table.d.ts.map +1 -1
- package/dist/types/src/interface/types/field.d.ts +6 -0
- package/dist/types/src/interface/types/field.d.ts.map +1 -1
- package/dist/types/src/interface/ui/initialize_block.d.ts.map +1 -1
- package/dist/types/src/interface/ui/ui.d.ts +1 -0
- package/dist/types/src/interface/ui/ui.d.ts.map +1 -1
- package/dist/types/src/interface/ui/use_custom_properties.d.ts +1 -1
- package/dist/types/src/shared/models/field_core.d.ts +3 -1
- package/dist/types/src/shared/models/field_core.d.ts.map +1 -1
- package/dist/types/src/shared/models/mutations_core.d.ts.map +1 -1
- package/dist/types/src/shared/models/table_core.d.ts.map +1 -1
- package/dist/types/src/shared/private_utils.d.ts +0 -9
- package/dist/types/src/shared/private_utils.d.ts.map +1 -1
- package/dist/types/src/shared/types/field_core.d.ts +19 -1
- package/dist/types/src/shared/types/field_core.d.ts.map +1 -1
- package/dist/types/src/shared/types/mutations_core.d.ts +8 -4
- package/dist/types/src/shared/types/mutations_core.d.ts.map +1 -1
- package/dist/types/src/shared/ui/global_config_synced_component_helpers.d.ts +0 -2
- package/dist/types/src/shared/ui/global_config_synced_component_helpers.d.ts.map +1 -1
- package/dist/types/src/shared/ui/loader.d.ts.map +1 -1
- package/dist/types/src/shared/ui/use_watchable.d.ts +4 -2
- package/dist/types/src/shared/ui/use_watchable.d.ts.map +1 -1
- package/dist/types/src/shared/ui/with_hooks.d.ts +2 -2
- package/dist/types/src/shared/ui/with_hooks.d.ts.map +1 -1
- package/dist/types/src/testing/{abstract_mock_airtable_interface.d.ts → base/abstract_mock_airtable_interface.d.ts} +13 -13
- package/dist/types/src/testing/base/abstract_mock_airtable_interface.d.ts.map +1 -0
- package/dist/types/src/testing/interface/abstract_mock_airtable_interface.d.ts +51 -0
- package/dist/types/src/testing/interface/abstract_mock_airtable_interface.d.ts.map +1 -0
- package/models.js +1 -1
- package/package.json +24 -23
- package/types.js +1 -1
- package/dist/cjs/base/models/abstract_model_with_async_data.js +0 -273
- package/dist/cjs/base/models/base.js +0 -306
- package/dist/cjs/base/models/create_aggregators.js +0 -115
- package/dist/cjs/base/models/cursor.js +0 -393
- package/dist/cjs/base/models/field.js +0 -427
- package/dist/cjs/base/models/grouped_record_query_result.js +0 -399
- package/dist/cjs/base/models/linked_records_query_result.js +0 -728
- package/dist/cjs/base/models/mutations.js +0 -338
- package/dist/cjs/base/models/object_pool.js +0 -184
- package/dist/cjs/base/models/record.js +0 -304
- package/dist/cjs/base/models/record_query_result.js +0 -741
- package/dist/cjs/base/models/record_store.js +0 -825
- package/dist/cjs/base/models/session.js +0 -182
- package/dist/cjs/base/models/table.js +0 -668
- package/dist/cjs/base/models/table_or_view_query_result.js +0 -1013
- package/dist/cjs/base/models/view.js +0 -431
- package/dist/cjs/base/models/view_data_store.js +0 -403
- package/dist/cjs/base/models/view_metadata_query_result.js +0 -224
- package/dist/cjs/base/perform_record_action.js +0 -257
- package/dist/cjs/base/sdk.js +0 -233
- package/dist/cjs/base/settings_button.js +0 -138
- package/dist/cjs/base/ui/baymax_utils.js +0 -133
- package/dist/cjs/base/ui/block_wrapper.js +0 -143
- package/dist/cjs/base/ui/box.js +0 -110
- package/dist/cjs/base/ui/button.js +0 -182
- package/dist/cjs/base/ui/cell_renderer.js +0 -255
- package/dist/cjs/base/ui/choice_token.js +0 -110
- package/dist/cjs/base/ui/collaborator_token.js +0 -145
- package/dist/cjs/base/ui/color_palette.js +0 -239
- package/dist/cjs/base/ui/color_palette_synced.js +0 -98
- package/dist/cjs/base/ui/confirmation_dialog.js +0 -153
- package/dist/cjs/base/ui/dialog.js +0 -142
- package/dist/cjs/base/ui/dialog_close_button.js +0 -152
- package/dist/cjs/base/ui/expand_record_picker_async.js +0 -100
- package/dist/cjs/base/ui/field_icon.js +0 -62
- package/dist/cjs/base/ui/field_picker.js +0 -143
- package/dist/cjs/base/ui/field_picker_synced.js +0 -88
- package/dist/cjs/base/ui/form_field.js +0 -137
- package/dist/cjs/base/ui/geometry/point.js +0 -21
- package/dist/cjs/base/ui/geometry/rect.js +0 -67
- package/dist/cjs/base/ui/geometry/size.js +0 -21
- package/dist/cjs/base/ui/global_alert.js +0 -92
- package/dist/cjs/base/ui/heading.js +0 -181
- package/dist/cjs/base/ui/icon.js +0 -129
- package/dist/cjs/base/ui/input.js +0 -200
- package/dist/cjs/base/ui/input_synced.js +0 -89
- package/dist/cjs/base/ui/label.js +0 -105
- package/dist/cjs/base/ui/link.js +0 -229
- package/dist/cjs/base/ui/loader.js +0 -82
- package/dist/cjs/base/ui/modal.js +0 -184
- package/dist/cjs/base/ui/model_picker_select.js +0 -83
- package/dist/cjs/base/ui/popover.js +0 -407
- package/dist/cjs/base/ui/progress_bar.js +0 -128
- package/dist/cjs/base/ui/record_card.js +0 -653
- package/dist/cjs/base/ui/record_card_list.js +0 -377
- package/dist/cjs/base/ui/select.js +0 -247
- package/dist/cjs/base/ui/select_and_select_buttons_helpers.js +0 -87
- package/dist/cjs/base/ui/select_buttons.js +0 -192
- package/dist/cjs/base/ui/select_buttons_synced.js +0 -84
- package/dist/cjs/base/ui/select_synced.js +0 -87
- package/dist/cjs/base/ui/switch.js +0 -196
- package/dist/cjs/base/ui/switch_synced.js +0 -75
- package/dist/cjs/base/ui/synced.js +0 -70
- package/dist/cjs/base/ui/system/appearance/appearance_set.js +0 -30
- package/dist/cjs/base/ui/system/appearance/background_color.js +0 -21
- package/dist/cjs/base/ui/system/appearance/border_radius.js +0 -21
- package/dist/cjs/base/ui/system/appearance/box_shadow.js +0 -21
- package/dist/cjs/base/ui/system/appearance/opacity.js +0 -21
- package/dist/cjs/base/ui/system/dimensions/dimensions_set.js +0 -31
- package/dist/cjs/base/ui/system/dimensions/height.js +0 -21
- package/dist/cjs/base/ui/system/dimensions/max_height.js +0 -21
- package/dist/cjs/base/ui/system/dimensions/max_width.js +0 -21
- package/dist/cjs/base/ui/system/dimensions/min_height.js +0 -21
- package/dist/cjs/base/ui/system/dimensions/min_width.js +0 -21
- package/dist/cjs/base/ui/system/dimensions/width.js +0 -21
- package/dist/cjs/base/ui/system/display.js +0 -22
- package/dist/cjs/base/ui/system/flex_container/align_content.js +0 -18
- package/dist/cjs/base/ui/system/flex_container/align_items.js +0 -18
- package/dist/cjs/base/ui/system/flex_container/flex_container_set.js +0 -31
- package/dist/cjs/base/ui/system/flex_container/flex_direction.js +0 -18
- package/dist/cjs/base/ui/system/flex_container/flex_wrap.js +0 -18
- package/dist/cjs/base/ui/system/flex_container/justify_content.js +0 -18
- package/dist/cjs/base/ui/system/flex_container/justify_items.js +0 -19
- package/dist/cjs/base/ui/system/flex_item/align_self.js +0 -18
- package/dist/cjs/base/ui/system/flex_item/flex.js +0 -18
- package/dist/cjs/base/ui/system/flex_item/flex_basis.js +0 -18
- package/dist/cjs/base/ui/system/flex_item/flex_grow.js +0 -18
- package/dist/cjs/base/ui/system/flex_item/flex_item_set.js +0 -32
- package/dist/cjs/base/ui/system/flex_item/flex_shrink.js +0 -18
- package/dist/cjs/base/ui/system/flex_item/justify_self.js +0 -19
- package/dist/cjs/base/ui/system/flex_item/order.js +0 -18
- package/dist/cjs/base/ui/system/overflow.js +0 -24
- package/dist/cjs/base/ui/system/position/position.js +0 -18
- package/dist/cjs/base/ui/system/position/position_set.js +0 -31
- package/dist/cjs/base/ui/system/position/z_index.js +0 -21
- package/dist/cjs/base/ui/system/spacing/spacing_set.js +0 -27
- package/dist/cjs/base/ui/system/typography/font_family.js +0 -21
- package/dist/cjs/base/ui/system/typography/font_size.js +0 -21
- package/dist/cjs/base/ui/system/typography/font_style.js +0 -18
- package/dist/cjs/base/ui/system/typography/font_weight.js +0 -21
- package/dist/cjs/base/ui/system/typography/letter_spacing.js +0 -21
- package/dist/cjs/base/ui/system/typography/line_height.js +0 -18
- package/dist/cjs/base/ui/system/typography/text_align.js +0 -18
- package/dist/cjs/base/ui/system/typography/text_color.js +0 -21
- package/dist/cjs/base/ui/system/typography/text_decoration.js +0 -18
- package/dist/cjs/base/ui/system/typography/text_transform.js +0 -18
- package/dist/cjs/base/ui/system/typography/typography_set.js +0 -35
- package/dist/cjs/base/ui/system/utils/create_responsive_prop_type.js +0 -19
- package/dist/cjs/base/ui/system/utils/create_style_prop_types.js +0 -24
- package/dist/cjs/base/ui/system/utils/enum_prop_type_utils.js +0 -35
- package/dist/cjs/base/ui/system/utils/get_style_props_for_responsive_prop.js +0 -113
- package/dist/cjs/base/ui/table_picker.js +0 -95
- package/dist/cjs/base/ui/table_picker_synced.js +0 -84
- package/dist/cjs/base/ui/text.js +0 -150
- package/dist/cjs/base/ui/text_button.js +0 -228
- package/dist/cjs/base/ui/theme/default_theme/control_sizes.js +0 -96
- package/dist/cjs/base/ui/theme/default_theme/select_variants.js +0 -59
- package/dist/cjs/base/ui/theme/default_theme/switch_variants.js +0 -91
- package/dist/cjs/base/ui/tooltip.js +0 -215
- package/dist/cjs/base/ui/types/aria_props.js +0 -23
- package/dist/cjs/base/ui/types/data_attributes_prop.js +0 -18
- package/dist/cjs/base/ui/types/tooltip_anchor_props.js +0 -17
- package/dist/cjs/base/ui/use_styled_system.js +0 -32
- package/dist/cjs/base/ui/view_picker.js +0 -133
- package/dist/cjs/base/ui/view_picker_synced.js +0 -88
- package/dist/cjs/base/ui/viewport_constraint.js +0 -176
- package/dist/cjs/base/ui/with_styled_system.js +0 -165
- package/dist/cjs/base/undo_redo.js +0 -48
- package/dist/cjs/base/viewport.js +0 -397
- package/dist/cjs/injected/airtable_interface.js +0 -22
- package/dist/cjs/interface/index.js +0 -36
- package/dist/cjs/interface/models/base.js +0 -54
- package/dist/cjs/interface/models/field.js +0 -42
- package/dist/cjs/interface/models/mutations.js +0 -79
- package/dist/cjs/interface/models/record.js +0 -71
- package/dist/cjs/interface/models/record_store.js +0 -83
- package/dist/cjs/interface/models/session.js +0 -42
- package/dist/cjs/interface/models/table.js +0 -92
- package/dist/cjs/interface/sdk.js +0 -104
- package/dist/cjs/interface/types/mutations.js +0 -24
- package/dist/cjs/interface/ui/block_wrapper.js +0 -61
- package/dist/cjs/shared/global_config.js +0 -511
- package/dist/cjs/shared/models/abstract_model.js +0 -119
- package/dist/cjs/shared/models/base_core.js +0 -602
- package/dist/cjs/shared/models/field_core.js +0 -329
- package/dist/cjs/shared/models/mutations_core.js +0 -439
- package/dist/cjs/shared/models/record_core.js +0 -272
- package/dist/cjs/shared/models/record_store_core.js +0 -213
- package/dist/cjs/shared/models/session_core.js +0 -214
- package/dist/cjs/shared/models/table_core.js +0 -1530
- package/dist/cjs/shared/sdk_core.js +0 -115
- package/dist/cjs/shared/types/mutation_constants.js +0 -11
- package/dist/cjs/shared/ui/loader.js +0 -68
- package/dist/cjs/shared/watchable.js +0 -216
- package/dist/cjs/stats/block_stats.js +0 -96
- package/dist/cjs/testing/abstract_mock_airtable_interface.js +0 -277
- package/dist/types/src/base/ui/system/utils/create_responsive_prop_type.d.ts +0 -2
- package/dist/types/src/base/ui/system/utils/create_responsive_prop_type.d.ts.map +0 -1
- package/dist/types/src/base/ui/system/utils/create_style_prop_types.d.ts +0 -4
- package/dist/types/src/base/ui/system/utils/create_style_prop_types.d.ts.map +0 -1
- package/dist/types/src/base/ui/system/utils/enum_prop_type_utils.d.ts +0 -21
- package/dist/types/src/base/ui/system/utils/enum_prop_type_utils.d.ts.map +0 -1
- package/dist/types/src/testing/abstract_mock_airtable_interface.d.ts.map +0 -1
- /package/dist/{cjs → esm}/base/types/aggregators.js +0 -0
- /package/dist/{cjs → esm}/base/types/backend_fetch_types.js +0 -0
- /package/dist/{cjs → esm}/base/types/base.js +0 -0
- /package/dist/{cjs → esm}/base/types/cursor.js +0 -0
- /package/dist/{cjs → esm}/base/types/field.js +0 -0
- /package/dist/{cjs → esm}/base/types/record.js +0 -0
- /package/dist/{cjs → esm}/base/types/record_action_data.js +0 -0
- /package/dist/{cjs → esm}/base/types/table.js +0 -0
- /package/dist/{cjs → esm}/base/types/viewport.js +0 -0
- /package/dist/{cjs → esm}/base/ui/system/utils/csstype.js +0 -0
- /package/dist/{cjs → esm}/base/ui/system/utils/types.js +0 -0
- /package/dist/{cjs/interface/types/base.js → esm/base/ui/types/aria_props.js} +0 -0
- /package/dist/{cjs/interface/types/field.js → esm/base/ui/types/data_attributes_prop.js} +0 -0
- /package/dist/{cjs/interface/types/record.js → esm/base/ui/types/tooltip_anchor_props.js} +0 -0
- /package/dist/{cjs/interface/types/table.js → esm/interface/types/base.js} +0 -0
- /package/dist/{cjs/sdk_mode.js → esm/interface/types/field.js} +0 -0
- /package/dist/{cjs/shared → esm/interface}/types/record.js +0 -0
- /package/dist/{cjs/shared/types/airtable_interface_core.js → esm/interface/types/table.js} +0 -0
- /package/dist/{cjs → esm}/interface/ui/expand_record.js +0 -0
- /package/dist/{cjs/shared/types/attachment.js → esm/sdk_mode.js} +0 -0
- /package/dist/{cjs/shared/types/base_core.js → esm/shared/types/airtable_interface_core.js} +0 -0
- /package/dist/{cjs/shared/types/collaborator.js → esm/shared/types/attachment.js} +0 -0
- /package/dist/{cjs/shared/types/global_config.js → esm/shared/types/base_core.js} +0 -0
- /package/dist/{cjs/shared/types/hyper_ids.js → esm/shared/types/collaborator.js} +0 -0
- /package/dist/{cjs/shared/types/stat.js → esm/shared/types/global_config.js} +0 -0
- /package/dist/{cjs/shared/types/table_core.js → esm/shared/types/hyper_ids.js} +0 -0
|
@@ -0,0 +1,176 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
var _error_utils = require("../../shared/error_utils");
|
|
8
|
+
var _private_utils = require("../../shared/private_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
|
+
/** @module @airtable/blocks/models: View */ /** */
|
|
12
|
+
|
|
13
|
+
const WatchableViewMetadataKeys = {
|
|
14
|
+
allFields: 'allFields',
|
|
15
|
+
visibleFields: 'visibleFields',
|
|
16
|
+
isDataLoaded: 'isDataLoaded',
|
|
17
|
+
groupLevels: 'groupLevels'
|
|
18
|
+
};
|
|
19
|
+
|
|
20
|
+
/**
|
|
21
|
+
* A key in {@link ViewMetadataQueryResult} that can be watched.
|
|
22
|
+
* - `allFields`
|
|
23
|
+
* - `visibleFields`
|
|
24
|
+
* - `isDataLoaded`
|
|
25
|
+
*/
|
|
26
|
+
|
|
27
|
+
/** @hidden */
|
|
28
|
+
|
|
29
|
+
/**
|
|
30
|
+
* @hidden
|
|
31
|
+
*/
|
|
32
|
+
|
|
33
|
+
/**
|
|
34
|
+
* @hidden
|
|
35
|
+
*/
|
|
36
|
+
|
|
37
|
+
/**
|
|
38
|
+
* Contains information about a view that isn't loaded by default e.g. field order and visible fields.
|
|
39
|
+
*
|
|
40
|
+
* In a React component, we recommend using {@link useViewMetadata} instead.
|
|
41
|
+
*
|
|
42
|
+
* @example
|
|
43
|
+
* ```js
|
|
44
|
+
* async function loadMetadataForViewAsync(view) {
|
|
45
|
+
* const viewMetadata = view.selectMetadata();
|
|
46
|
+
* await viewMetadata.loadDataAsync();
|
|
47
|
+
*
|
|
48
|
+
* console.log(viewMetadata.visibleFields);
|
|
49
|
+
* // => [Field, Field, Field]
|
|
50
|
+
*
|
|
51
|
+
* console.log(viewMetadata.allFields);
|
|
52
|
+
* // => [Field, Field, Field, Field, Field]
|
|
53
|
+
*
|
|
54
|
+
* viewMetadata.unloadData();
|
|
55
|
+
* }
|
|
56
|
+
* ```
|
|
57
|
+
* @docsPath models/query results/ViewMetadataQueryResult
|
|
58
|
+
*/
|
|
59
|
+
class ViewMetadataQueryResult extends _abstract_model_with_async_data.default {
|
|
60
|
+
/** @internal */
|
|
61
|
+
static _className = 'ViewMetadataQueryResult';
|
|
62
|
+
|
|
63
|
+
/** @internal */
|
|
64
|
+
static _isWatchableKey(key) {
|
|
65
|
+
return (0, _private_utils.isEnumValue)(WatchableViewMetadataKeys, key);
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
/** @internal */
|
|
69
|
+
static _shouldLoadDataForKey(key) {
|
|
70
|
+
return key === WatchableViewMetadataKeys.allFields || key === WatchableViewMetadataKeys.visibleFields || key === WatchableViewMetadataKeys.groupLevels;
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
/** */
|
|
74
|
+
|
|
75
|
+
/** @internal */
|
|
76
|
+
|
|
77
|
+
/** @internal */
|
|
78
|
+
constructor(sdk, parentView, viewDataStore) {
|
|
79
|
+
super(sdk, (0, _private_utils.getLocallyUniqueId)('ViewMetadataQueryResult'));
|
|
80
|
+
this.parentView = parentView;
|
|
81
|
+
this._viewDataStore = viewDataStore;
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
/** @internal */
|
|
85
|
+
get __poolKey() {
|
|
86
|
+
return this.parentView.id;
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
/** @internal */
|
|
90
|
+
get _dataOrNullIfDeleted() {
|
|
91
|
+
if (this._viewDataStore.isDeleted) {
|
|
92
|
+
return null;
|
|
93
|
+
}
|
|
94
|
+
if (!this._viewDataStore.isDataLoaded) {
|
|
95
|
+
return {
|
|
96
|
+
visibleFieldIds: null,
|
|
97
|
+
allFieldIds: null,
|
|
98
|
+
groupLevels: null
|
|
99
|
+
};
|
|
100
|
+
}
|
|
101
|
+
return {
|
|
102
|
+
visibleFieldIds: this._viewDataStore.visibleFieldIds,
|
|
103
|
+
allFieldIds: this._viewDataStore.allFieldIds,
|
|
104
|
+
groupLevels: this._viewDataStore.groupLevels
|
|
105
|
+
};
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
/** @internal */
|
|
109
|
+
_onChangeIsDataLoaded() {
|
|
110
|
+
this._onChange(WatchableViewMetadataKeys.isDataLoaded);
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
/** @internal */
|
|
114
|
+
async _loadDataAsync() {
|
|
115
|
+
await this._viewDataStore.loadDataAsync();
|
|
116
|
+
this._viewDataStore.watch('visibleFieldIds', this._onVisibleFieldIdsChange);
|
|
117
|
+
this._viewDataStore.watch('allFieldIds', this._onAllFieldIdsChange);
|
|
118
|
+
this._viewDataStore.watch('groupLevels', this._onGroupLevelsChange);
|
|
119
|
+
return [WatchableViewMetadataKeys.visibleFields, WatchableViewMetadataKeys.allFields, WatchableViewMetadataKeys.groupLevels];
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
/** @internal */
|
|
123
|
+
_unloadData() {
|
|
124
|
+
this._viewDataStore.unwatch('visibleFieldIds', this._onVisibleFieldIdsChange);
|
|
125
|
+
this._viewDataStore.unwatch('allFieldIds', this._onAllFieldIdsChange);
|
|
126
|
+
this._viewDataStore.unwatch('groupLevels', this._onGroupLevelsChange);
|
|
127
|
+
this._viewDataStore.unloadData();
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
/** @internal */
|
|
131
|
+
_onVisibleFieldIdsChange = () => {
|
|
132
|
+
this._onChange(WatchableViewMetadataKeys.visibleFields);
|
|
133
|
+
};
|
|
134
|
+
|
|
135
|
+
/** @internal */
|
|
136
|
+
_onAllFieldIdsChange = () => {
|
|
137
|
+
this._onChange(WatchableViewMetadataKeys.allFields);
|
|
138
|
+
};
|
|
139
|
+
|
|
140
|
+
/** @internal */
|
|
141
|
+
_onGroupLevelsChange = () => {
|
|
142
|
+
this._onChange(WatchableViewMetadataKeys.groupLevels);
|
|
143
|
+
};
|
|
144
|
+
|
|
145
|
+
/**
|
|
146
|
+
* Returns every field in the table in the order they appear in this view. Watchable.
|
|
147
|
+
*/
|
|
148
|
+
get allFields() {
|
|
149
|
+
const allFieldIds = this._data.allFieldIds;
|
|
150
|
+
(0, _error_utils.invariant)(allFieldIds, 'view meta data is not loaded');
|
|
151
|
+
return allFieldIds.map(fieldId => this.parentView.parentTable.getFieldById(fieldId));
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
/**
|
|
155
|
+
* Returns every field visible in this view. Watchable.
|
|
156
|
+
*/
|
|
157
|
+
get visibleFields() {
|
|
158
|
+
const visibleFieldIds = this._data.visibleFieldIds;
|
|
159
|
+
(0, _error_utils.invariant)(visibleFieldIds, 'view meta data is not loaded');
|
|
160
|
+
return visibleFieldIds.map(fieldId => this.parentView.parentTable.getFieldById(fieldId));
|
|
161
|
+
}
|
|
162
|
+
|
|
163
|
+
/**
|
|
164
|
+
* Returns group levels for this view. Watchable.
|
|
165
|
+
*
|
|
166
|
+
* @hidden
|
|
167
|
+
*/
|
|
168
|
+
get groupLevels() {
|
|
169
|
+
const groupLevels = this._data.groupLevels;
|
|
170
|
+
return groupLevels ? groupLevels.map(singleConfig => ({
|
|
171
|
+
...singleConfig,
|
|
172
|
+
field: this.parentView.parentTable.getFieldById(singleConfig.fieldId)
|
|
173
|
+
})) : null;
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
var _default = exports.default = ViewMetadataQueryResult;
|
|
@@ -0,0 +1,215 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.WatchablePerformRecordActionKeys = exports.PerformRecordAction = void 0;
|
|
7
|
+
exports.__injectSdkIntoPerformRecordAction = __injectSdkIntoPerformRecordAction;
|
|
8
|
+
exports.registerRecordActionDataCallback = registerRecordActionDataCallback;
|
|
9
|
+
var _error_utils = require("../shared/error_utils");
|
|
10
|
+
var _private_utils = require("../shared/private_utils");
|
|
11
|
+
var _abstract_model_with_async_data = _interopRequireDefault(require("./models/abstract_model_with_async_data"));
|
|
12
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
13
|
+
/** @hidden */
|
|
14
|
+
const WatchablePerformRecordActionKeys = exports.WatchablePerformRecordActionKeys = Object.freeze({
|
|
15
|
+
// isDataLoaded must be a watchable key for a LoadableModel.
|
|
16
|
+
isDataLoaded: 'isDataLoaded',
|
|
17
|
+
recordActionData: 'recordActionData'
|
|
18
|
+
});
|
|
19
|
+
|
|
20
|
+
/** @hidden */
|
|
21
|
+
|
|
22
|
+
/**
|
|
23
|
+
* Returned by {@link registerRecordActionDataCallback}. Call it to unregister the previously
|
|
24
|
+
* registered function. Do this before registering another function or unmounting the component.
|
|
25
|
+
* */
|
|
26
|
+
|
|
27
|
+
/**
|
|
28
|
+
* This class exists to manage registering a callback to receive "Open block" / "Perform record
|
|
29
|
+
* action" messages.
|
|
30
|
+
* This is different to other message handlers (_registerHandlers) since the callback is specified
|
|
31
|
+
* by the block: it registers it during first render (vs the SDK registering during initialisation).
|
|
32
|
+
*
|
|
33
|
+
* On the liveapp side, we ensure that pending messages are held until the block registers the
|
|
34
|
+
* callback (or another message is sent). If there's a pending message, it is returned at
|
|
35
|
+
* registration.
|
|
36
|
+
*
|
|
37
|
+
* This class implements AbstractModelWithAsyncData in order to take advantage of useLoadable's
|
|
38
|
+
* suspense handling. "Loading" the model means registering the handler with liveapp. This allows us
|
|
39
|
+
* to suspend the block and return the initial pending message on first render.
|
|
40
|
+
*
|
|
41
|
+
* One difference is that _unloadData will not unregister the airtableInterface handler. We don't
|
|
42
|
+
* support unregistering it at this time for simplicity.
|
|
43
|
+
*
|
|
44
|
+
* This class is internal: users should use registerRecordActionDataCallback or useRecordActionData.
|
|
45
|
+
*
|
|
46
|
+
* @internal
|
|
47
|
+
* */
|
|
48
|
+
class PerformRecordAction extends _abstract_model_with_async_data.default {
|
|
49
|
+
/** @internal */
|
|
50
|
+
|
|
51
|
+
/** @internal */
|
|
52
|
+
|
|
53
|
+
/** @internal */
|
|
54
|
+
|
|
55
|
+
/**
|
|
56
|
+
* The data from the latest record action, or null if none have occurred yet.
|
|
57
|
+
*
|
|
58
|
+
* @internal */
|
|
59
|
+
|
|
60
|
+
/** @hidden */
|
|
61
|
+
constructor(sdk, airtableInterface) {
|
|
62
|
+
super(sdk, 'performRecordAction');
|
|
63
|
+
this._airtableInterface = airtableInterface;
|
|
64
|
+
this._hasRegisteredHandler = false;
|
|
65
|
+
this._hasCompletedInitialDataLoad = false;
|
|
66
|
+
this.recordActionData = null;
|
|
67
|
+
this._handlePerformRecordAction = this._handlePerformRecordAction.bind(this);
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
/** @internal */
|
|
71
|
+
static _isWatchableKey(key) {
|
|
72
|
+
return (0, _private_utils.isEnumValue)(WatchablePerformRecordActionKeys, key);
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
/** @hidden */
|
|
76
|
+
_handlePerformRecordAction(data) {
|
|
77
|
+
this.recordActionData = data;
|
|
78
|
+
this._onChange(WatchablePerformRecordActionKeys.recordActionData, data);
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
/**
|
|
82
|
+
* This accessor method is defined solely to satisfy the contract of the
|
|
83
|
+
* AbstractModel class.
|
|
84
|
+
*
|
|
85
|
+
* @internal */
|
|
86
|
+
get _dataOrNullIfDeleted() {
|
|
87
|
+
return (0, _error_utils.invariant)(false, 'The `data` property of PerformRecordAction should not be referenced');
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
/**
|
|
91
|
+
* This accessor method is defined because the parent implementation uses _dataOrNullIfDeleted
|
|
92
|
+
*
|
|
93
|
+
* @inheritdoc */
|
|
94
|
+
get isDeleted() {
|
|
95
|
+
return false;
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
/**
|
|
99
|
+
* AbstractModelWithAsyncData implementation
|
|
100
|
+
*/
|
|
101
|
+
|
|
102
|
+
/** @internal */
|
|
103
|
+
_onChangeIsDataLoaded() {
|
|
104
|
+
this._onChange(WatchablePerformRecordActionKeys.isDataLoaded);
|
|
105
|
+
|
|
106
|
+
// Handle the case where there was a pending action whilst we were registering the handler.
|
|
107
|
+
// We only want to do this on the very initial load when we're actually registering the
|
|
108
|
+
// handler: avoid triggering this when the data is "unloaded" and "loaded".
|
|
109
|
+
if (!this._hasCompletedInitialDataLoad) {
|
|
110
|
+
this._hasCompletedInitialDataLoad = true;
|
|
111
|
+
if (this.recordActionData) {
|
|
112
|
+
this._handlePerformRecordAction(this.recordActionData);
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
/** @internal */
|
|
118
|
+
async _loadDataAsync() {
|
|
119
|
+
// Note: Liveapp will throw if a handler has already been registered, so we only register
|
|
120
|
+
// it once.
|
|
121
|
+
if (!this._hasRegisteredHandler) {
|
|
122
|
+
this._hasRegisteredHandler = true;
|
|
123
|
+
this.recordActionData = await this._airtableInterface.fetchAndSubscribeToPerformRecordActionAsync(this._handlePerformRecordAction);
|
|
124
|
+
}
|
|
125
|
+
return [];
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
/** @internal */
|
|
129
|
+
_unloadData() {
|
|
130
|
+
// Hack: Don't do anything, since "loading" means registering a handler, and we don't need
|
|
131
|
+
// to unregister it.
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
/** @internal */
|
|
135
|
+
static _shouldLoadDataForKey(key) {
|
|
136
|
+
// Watching recordActionData will load data (aka register handler with liveapp) and trigger
|
|
137
|
+
// callback when done.
|
|
138
|
+
return key === WatchablePerformRecordActionKeys.recordActionData;
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
/**
|
|
143
|
+
* Registers a callback to handle "open block" / "perform record action" events (from button field).
|
|
144
|
+
*
|
|
145
|
+
* Returns a unsubscribe function that should be used to unregister the callback for cleanup on
|
|
146
|
+
* component unmount, or if you wish to register a different function.
|
|
147
|
+
*
|
|
148
|
+
* Also see {@link useRecordActionData}, which subscribes to the same events in a synchronous way.
|
|
149
|
+
*
|
|
150
|
+
* Your block will not receive "perform record action" events until a callback is registered -
|
|
151
|
+
* they're held until registration to ensure the block is ready to handle the event (e.g. has
|
|
152
|
+
* finished loading).
|
|
153
|
+
*
|
|
154
|
+
* Because of this, we recommend only registering a callback once, in your top level component -
|
|
155
|
+
* otherwise, messages could be received while not all callbacks have been successfully registered.
|
|
156
|
+
* Similarly, using both `registerRecordActionDataCallback` and `useRecordActionData` is not
|
|
157
|
+
* supported.
|
|
158
|
+
*
|
|
159
|
+
* You can test your block in development by sending "perform record action" events to your block
|
|
160
|
+
* in the "Advanced" panel of the block developer tools.
|
|
161
|
+
*
|
|
162
|
+
* After releasing your block, you can use it with a button field by choosing the "Open custom
|
|
163
|
+
* block" action and selecting your block.
|
|
164
|
+
*
|
|
165
|
+
* @example
|
|
166
|
+
* ```js
|
|
167
|
+
* import React, {useEffect, useState} from 'react';
|
|
168
|
+
* import {registerRecordActionDataCallback} from '@airtable/blocks/base/ui';
|
|
169
|
+
*
|
|
170
|
+
* function LatestRecordAction() {
|
|
171
|
+
* const [recordActionData, setRecordActionData] = useState(null);
|
|
172
|
+
*
|
|
173
|
+
* const callback = (data) => {
|
|
174
|
+
* console.log('Record action received', data);
|
|
175
|
+
* setRecordActionData(data);
|
|
176
|
+
* }
|
|
177
|
+
*
|
|
178
|
+
* useEffect(() => {
|
|
179
|
+
* // Return the unsubscribe function so it's run on cleanup.
|
|
180
|
+
* return registerRecordActionDataCallback(callback);
|
|
181
|
+
* }, [callback]);
|
|
182
|
+
*
|
|
183
|
+
* if (recordActionData === null) {
|
|
184
|
+
* return <span>No events yet</span>;
|
|
185
|
+
* }
|
|
186
|
+
*
|
|
187
|
+
* return (
|
|
188
|
+
* <ul>
|
|
189
|
+
* <li>Record id: {recordActionData.recordId}</li>
|
|
190
|
+
* <li>View id: {recordActionData.viewId}</li>
|
|
191
|
+
* <li>Table id: {recordActionData.tableId}</li>
|
|
192
|
+
* </ul>
|
|
193
|
+
* );
|
|
194
|
+
* }
|
|
195
|
+
* ```
|
|
196
|
+
*
|
|
197
|
+
*/
|
|
198
|
+
exports.PerformRecordAction = PerformRecordAction;
|
|
199
|
+
function registerRecordActionDataCallback(callback) {
|
|
200
|
+
const {
|
|
201
|
+
performRecordAction
|
|
202
|
+
} = sdk;
|
|
203
|
+
const wrappedCallback = (model, key, data) => {
|
|
204
|
+
callback(data);
|
|
205
|
+
};
|
|
206
|
+
performRecordAction.watch(WatchablePerformRecordActionKeys.recordActionData, wrappedCallback);
|
|
207
|
+
return () => performRecordAction.unwatch(WatchablePerformRecordActionKeys.recordActionData, wrappedCallback);
|
|
208
|
+
}
|
|
209
|
+
let sdk;
|
|
210
|
+
|
|
211
|
+
// The application-level Sdk instance must be injected dynamically to avoid
|
|
212
|
+
// circular dependencies at the time of module resolution.
|
|
213
|
+
function __injectSdkIntoPerformRecordAction(_sdk) {
|
|
214
|
+
sdk = _sdk;
|
|
215
|
+
}
|
|
@@ -0,0 +1,178 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
var _sdk_core = require("../shared/sdk_core");
|
|
8
|
+
var _viewport = _interopRequireDefault(require("./viewport"));
|
|
9
|
+
var _base = _interopRequireDefault(require("./models/base"));
|
|
10
|
+
var _session = _interopRequireDefault(require("./models/session"));
|
|
11
|
+
var _mutations = _interopRequireDefault(require("./models/mutations"));
|
|
12
|
+
var _cursor = _interopRequireDefault(require("./models/cursor"));
|
|
13
|
+
var _settings_button = _interopRequireDefault(require("./settings_button"));
|
|
14
|
+
var _undo_redo = _interopRequireDefault(require("./undo_redo"));
|
|
15
|
+
var _perform_record_action = require("./perform_record_action");
|
|
16
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
17
|
+
/** @hidden */ /** */
|
|
18
|
+
// NOTE: The version of React running in the Block SDK is controlled by the block.
|
|
19
|
+
// The SDK should not make too many assumptions about which version of React or
|
|
20
|
+
// ReactDOM is running.
|
|
21
|
+
|
|
22
|
+
/** @hidden */
|
|
23
|
+
|
|
24
|
+
/** @internal */
|
|
25
|
+
function defaultUpdateBatcher(applyUpdates) {
|
|
26
|
+
applyUpdates();
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
/**
|
|
30
|
+
* We document this manually.
|
|
31
|
+
*
|
|
32
|
+
* @hidden
|
|
33
|
+
*/
|
|
34
|
+
class BaseBlockSdk extends _sdk_core.BlockSdkCore {
|
|
35
|
+
/** Controls the block's viewport. You can fullscreen the block and add size
|
|
36
|
+
* constrains using `viewport`.
|
|
37
|
+
*/
|
|
38
|
+
|
|
39
|
+
/** Returns information about the active table, active view, and selected records. */
|
|
40
|
+
|
|
41
|
+
/**
|
|
42
|
+
* Controls the block's {@link settingsButton settings button}.
|
|
43
|
+
*/
|
|
44
|
+
|
|
45
|
+
/** @hidden */
|
|
46
|
+
|
|
47
|
+
/** @internal */
|
|
48
|
+
|
|
49
|
+
// When models are updated on the frontend, we want to batch them together and have React do a
|
|
50
|
+
// single render.
|
|
51
|
+
//
|
|
52
|
+
// Without this, in sync-mode React (the current default), anything that triggers an update
|
|
53
|
+
// (like .setState or .forceUpdate) will instantly, synchronously re-render. So if you have an
|
|
54
|
+
// update that triggers multiple updates across your tree, you get multiple renders in an
|
|
55
|
+
// unpredictable order. This is bad because it's unnecessary work and the update order can
|
|
56
|
+
// contradict react's normal top-down data flow which can cause subtle bugs.
|
|
57
|
+
//
|
|
58
|
+
// We set _runWithUpdateBatching to ReactDOM.unstable_batchedUpdates to facilitate this. We
|
|
59
|
+
// don't know for sure though that React is in use on the page, so we leave actually setting
|
|
60
|
+
// this when the developer sets up their block with React, in UI.initializeBlock.
|
|
61
|
+
//
|
|
62
|
+
// This can be eliminated if we stop supporting versions of React below 18. In React 18,
|
|
63
|
+
// updates are always batched by default.
|
|
64
|
+
/** @internal */
|
|
65
|
+
_runWithUpdateBatching = defaultUpdateBatcher;
|
|
66
|
+
|
|
67
|
+
/** @hidden */
|
|
68
|
+
constructor(airtableInterface) {
|
|
69
|
+
super(airtableInterface);
|
|
70
|
+
const sdkInitData = airtableInterface.sdkInitData;
|
|
71
|
+
|
|
72
|
+
// Bind the public methods on this class so users can import
|
|
73
|
+
// just the method, e.g.
|
|
74
|
+
// import {reload} from '@airtable/blocks/base';
|
|
75
|
+
this.unstable_fetchAsync = this.unstable_fetchAsync.bind(this);
|
|
76
|
+
this.viewport = new _viewport.default(sdkInitData.isFullscreen, airtableInterface);
|
|
77
|
+
this.cursor = new _cursor.default(this);
|
|
78
|
+
this.settingsButton = new _settings_button.default(airtableInterface);
|
|
79
|
+
this.undoRedo = new _undo_redo.default(airtableInterface);
|
|
80
|
+
this.performRecordAction = new _perform_record_action.PerformRecordAction(this, airtableInterface);
|
|
81
|
+
|
|
82
|
+
// Now that we've constructed our models, let's hook them up to realtime changes.
|
|
83
|
+
this._registerHandlers();
|
|
84
|
+
|
|
85
|
+
// TODO: freeze this object before we ship the code editor.
|
|
86
|
+
}
|
|
87
|
+
/** @internal */
|
|
88
|
+
_constructSession() {
|
|
89
|
+
return new _session.default(this);
|
|
90
|
+
}
|
|
91
|
+
/** @internal */
|
|
92
|
+
_constructBase() {
|
|
93
|
+
return new _base.default(this);
|
|
94
|
+
}
|
|
95
|
+
/** @internal */
|
|
96
|
+
_constructMutations() {
|
|
97
|
+
return new _mutations.default(this, this.session, this.base, changes => this.__applyModelChanges(changes), updates => this.__applyGlobalConfigUpdates(updates));
|
|
98
|
+
}
|
|
99
|
+
/** @internal */
|
|
100
|
+
__applyModelChanges(changes) {
|
|
101
|
+
this._runWithUpdateBatching(() => {
|
|
102
|
+
const changedBasePaths = this.base.__applyChangesWithoutTriggeringEvents(changes);
|
|
103
|
+
const changedCursorKeys = this.cursor.__applyChangesWithoutTriggeringEvents(changes);
|
|
104
|
+
const changedSessionKeys = this.session.__applyChangesWithoutTriggeringEvents(changes);
|
|
105
|
+
this.base.__triggerOnChangeForChangedPaths(changedBasePaths);
|
|
106
|
+
this.cursor.__triggerOnChangeForChangedKeys(changedCursorKeys);
|
|
107
|
+
this.session.__triggerOnChangeForChangedKeys(changedSessionKeys);
|
|
108
|
+
});
|
|
109
|
+
}
|
|
110
|
+
/** @internal */
|
|
111
|
+
__applyGlobalConfigUpdates(updates) {
|
|
112
|
+
this._runWithUpdateBatching(() => {
|
|
113
|
+
this.globalConfig.__setMultipleKvPaths(updates);
|
|
114
|
+
});
|
|
115
|
+
}
|
|
116
|
+
/** @internal */
|
|
117
|
+
_registerHandlers() {
|
|
118
|
+
// base
|
|
119
|
+
|
|
120
|
+
this.__airtableInterface.subscribeToModelUpdates(_ref => {
|
|
121
|
+
let {
|
|
122
|
+
changes
|
|
123
|
+
} = _ref;
|
|
124
|
+
this.__applyModelChanges(changes);
|
|
125
|
+
});
|
|
126
|
+
|
|
127
|
+
// global config
|
|
128
|
+
this.__airtableInterface.subscribeToGlobalConfigUpdates(_ref2 => {
|
|
129
|
+
let {
|
|
130
|
+
updates
|
|
131
|
+
} = _ref2;
|
|
132
|
+
this.__applyGlobalConfigUpdates(updates);
|
|
133
|
+
});
|
|
134
|
+
|
|
135
|
+
// settings button
|
|
136
|
+
this.__airtableInterface.subscribeToSettingsButtonClick(() => {
|
|
137
|
+
if (this.settingsButton.isVisible) {
|
|
138
|
+
this._runWithUpdateBatching(() => {
|
|
139
|
+
// Since there's an async gap when communicating with liveapp,
|
|
140
|
+
// no-op if the button has been hidden since it was clicked.
|
|
141
|
+
this.settingsButton.__onClick();
|
|
142
|
+
});
|
|
143
|
+
}
|
|
144
|
+
});
|
|
145
|
+
|
|
146
|
+
// viewport
|
|
147
|
+
this.__airtableInterface.subscribeToEnterFullScreen(() => {
|
|
148
|
+
this._runWithUpdateBatching(() => {
|
|
149
|
+
this.viewport.__onEnterFullscreen();
|
|
150
|
+
});
|
|
151
|
+
});
|
|
152
|
+
this.__airtableInterface.subscribeToExitFullScreen(() => {
|
|
153
|
+
this._runWithUpdateBatching(() => {
|
|
154
|
+
this.viewport.__onExitFullscreen();
|
|
155
|
+
});
|
|
156
|
+
});
|
|
157
|
+
this.__airtableInterface.subscribeToFocus(() => {
|
|
158
|
+
this._runWithUpdateBatching(() => {
|
|
159
|
+
this.viewport.__focus();
|
|
160
|
+
});
|
|
161
|
+
});
|
|
162
|
+
}
|
|
163
|
+
/** @internal */
|
|
164
|
+
__setBatchedUpdatesFn(newUpdateBatcher) {
|
|
165
|
+
this._runWithUpdateBatching = newUpdateBatcher;
|
|
166
|
+
}
|
|
167
|
+
|
|
168
|
+
/** @hidden */
|
|
169
|
+
async unstable_fetchAsync(requestJson) {
|
|
170
|
+
return await this.__airtableInterface.performBackendFetchAsync(requestJson);
|
|
171
|
+
}
|
|
172
|
+
|
|
173
|
+
/** @hidden */
|
|
174
|
+
getBlockRunContext() {
|
|
175
|
+
return this.__airtableInterface.sdkInitData.runContext;
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
exports.default = BaseBlockSdk;
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
var _watchable = _interopRequireDefault(require("../shared/watchable"));
|
|
8
|
+
var _private_utils = require("../shared/private_utils");
|
|
9
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
10
|
+
/** @module @airtable/blocks: settingsButton */ /** */
|
|
11
|
+
|
|
12
|
+
const WatchableSettingsButtonKeys = Object.freeze({
|
|
13
|
+
isVisible: 'isVisible',
|
|
14
|
+
click: 'click'
|
|
15
|
+
});
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* A watchable key in {@link SettingsButton}.
|
|
19
|
+
* - `isVisible`
|
|
20
|
+
* - `click`
|
|
21
|
+
*/
|
|
22
|
+
|
|
23
|
+
/**
|
|
24
|
+
* Interface to the settings button that lives outside the extension's viewport.
|
|
25
|
+
*
|
|
26
|
+
* The {@link useSettingsButton} hook is the recommended way to use the settings button, but you can
|
|
27
|
+
* also use it with {@link useWatchable} if you want more granular control (for example, to only
|
|
28
|
+
* show the button conditionally).
|
|
29
|
+
*
|
|
30
|
+
* @alias settingsButton
|
|
31
|
+
* @example
|
|
32
|
+
* ```js
|
|
33
|
+
* import {settingsButton} from '@airtable/blocks/base';
|
|
34
|
+
* import {useWatchable} from '@airtable/blocks/base/ui';
|
|
35
|
+
*
|
|
36
|
+
* function AppWithSettings({shouldShowSettingsButton}) {
|
|
37
|
+
* useEffect(() => {
|
|
38
|
+
* // A count of calls to `show()` and `hide()` is maintained internally. The button will
|
|
39
|
+
* // stay visible if there are more calls to `show()` than `hide()` - so here, we check
|
|
40
|
+
* // `isVisible` so we only we only call them when necessary.
|
|
41
|
+
* // The button is not visible by default.
|
|
42
|
+
* if (shouldShowSettingsButton && !settingsButton.isVisible) {
|
|
43
|
+
* settingsButton.show();
|
|
44
|
+
* } else if (!shouldShowSettingsButton && settingsButton.isVisible) {
|
|
45
|
+
* settingsButton.hide();
|
|
46
|
+
* }
|
|
47
|
+
* });
|
|
48
|
+
*
|
|
49
|
+
* useWatchable(settingsButton, 'click', function() {
|
|
50
|
+
* alert('Clicked!');
|
|
51
|
+
* });
|
|
52
|
+
* }
|
|
53
|
+
* ```
|
|
54
|
+
* @docsPath models/SettingsButton
|
|
55
|
+
*/
|
|
56
|
+
class SettingsButton extends _watchable.default {
|
|
57
|
+
/** @internal */
|
|
58
|
+
static _className = 'SettingsButton';
|
|
59
|
+
/** @internal */
|
|
60
|
+
static _isWatchableKey(key) {
|
|
61
|
+
return (0, _private_utils.isEnumValue)(WatchableSettingsButtonKeys, key);
|
|
62
|
+
}
|
|
63
|
+
/** @internal */
|
|
64
|
+
|
|
65
|
+
/** @internal */
|
|
66
|
+
|
|
67
|
+
/** @internal */
|
|
68
|
+
constructor(airtableInterface) {
|
|
69
|
+
super();
|
|
70
|
+
this._refCount = 0;
|
|
71
|
+
this._airtableInterface = airtableInterface;
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
/**
|
|
75
|
+
* Whether the settings button is being shown.
|
|
76
|
+
* Can be watched.
|
|
77
|
+
*/
|
|
78
|
+
get isVisible() {
|
|
79
|
+
return this._refCount > 0;
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
/**
|
|
83
|
+
* Show the settings button.
|
|
84
|
+
*/
|
|
85
|
+
show() {
|
|
86
|
+
// Is now visible: trigger change watches and set it to be visible
|
|
87
|
+
if (this._refCount === 0) {
|
|
88
|
+
this._onChange(WatchableSettingsButtonKeys.isVisible, true);
|
|
89
|
+
this._airtableInterface.setSettingsButtonVisibility(true);
|
|
90
|
+
}
|
|
91
|
+
this._refCount += 1;
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
/**
|
|
95
|
+
* Hide the settings button.
|
|
96
|
+
*
|
|
97
|
+
* Note: A count of calls to `show()` and `hide()` is maintained internally. The button will
|
|
98
|
+
* stay visible if there are more calls to `show()` than `hide()`.
|
|
99
|
+
*/
|
|
100
|
+
hide() {
|
|
101
|
+
// Be forgiving if hide() is called too many times, since we don't expose the count
|
|
102
|
+
if (this._refCount > 0) {
|
|
103
|
+
this._refCount -= 1;
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
// Should no longer be visible: trigger change watches and set it to be not visible
|
|
107
|
+
if (this._refCount === 0) {
|
|
108
|
+
this._onChange(WatchableSettingsButtonKeys.isVisible, false);
|
|
109
|
+
this._airtableInterface.setSettingsButtonVisibility(false);
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
/** @internal */
|
|
114
|
+
__onClick() {
|
|
115
|
+
this._onChange(WatchableSettingsButtonKeys.click);
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
var _default = exports.default = SettingsButton;
|
|
@@ -7,7 +7,7 @@ exports.BlockRunContextType = void 0;
|
|
|
7
7
|
// BlockRunContextType, BlockInstallationPageBlockRunContext, ViewBlockRunContext, BlockRunContext
|
|
8
8
|
// must be kept in sync with block_run_context.tsx in hyperbase repo
|
|
9
9
|
/** @hidden */
|
|
10
|
-
|
|
10
|
+
let BlockRunContextType = exports.BlockRunContextType = /*#__PURE__*/function (BlockRunContextType) {
|
|
11
11
|
BlockRunContextType["DASHBOARD_APP"] = "dashboardApp";
|
|
12
12
|
BlockRunContextType["VIEW"] = "view";
|
|
13
13
|
return BlockRunContextType;
|