@pitcher/canvas-ui 2025.12.9-184113-beta → 2025.12.10-74659

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/lib/main.lib.d.ts CHANGED
@@ -191,9 +191,9 @@ export * from './util/userAgents';
191
191
  export * from './util/pitcher-settings.util';
192
192
  export * from './util/eval';
193
193
  export * from './util/storage.util';
194
+ export * from './util/handlebars';
194
195
  export * from './apps/collection-selector/utils/content-selector-adapter.util';
195
196
  export * from './util/soql.util.ts';
196
- export * from './util/app.util';
197
197
  export * from './utils/iframeInitialize';
198
198
  export * from './sdk/main';
199
199
  export * from './sdk/peer-connectivity';
@@ -1,4 +1,4 @@
1
- export type LaunchDarklyBooleanFlagKey = 'ai_code_generation_model' | 'ai_text_generation_model' | 'ai_image_generation_model' | 'ai_video_generation_model' | 'allow_ai_prompts_in_canvas_text' | 'allow_bulk_actions_canvases_files' | 'allow_content_grid_autofill' | 'allow_canvas_duplication' | 'allow_canvases_tables_columns_settings' | 'allow_table_column_resizing' | 'allow_creating_canvas_with_no_template' | 'allow_dynamic_data_table_for_scribble_component' | 'allow_html_for_scribble_component' | 'allow_embeddable_for_scribble_component' | 'allow_embeddable_hiding' | 'allow_multimedia_for_scribble_component' | 'allow_note_taking' | 'allow_rep_canvas_metadata_edit' | 'allow_rep_file_distributions' | 'allow_rep_file_rating' | 'allow_rep_file_upload' | 'allow_saving_annotations_in_personal_layer' | 'allow_user_to_edit_font_size_and_color_in_canvas_tokens' | 'are_sections_system_controlled' | 'enable_canvas_core_distributions' | 'enable_file_core_distributions' | 'copy_context_to_canvas' | 'copy_template_metadata_to_canvas' | 'disable_canvas_edit_for_reps' | 'disable_custom_tooltips' | 'disable_file_edit_content' | 'disable_fullscreen_canvas_builder' | 'disable_impact_web_browser_fullscreen' | 'display_section_list_name' | 'disable_download_canvas' | 'enable_ai_generated_thumbnails' | 'enable_analytics' | 'enable_app_developer_role' | 'enable_algolia_search' | 'enable_background_image_theme_options' | 'enable_better_canvas_builder_control_bars_on_zoom' | 'enable_bulk_update_file_attributes' | 'enable_canvas_as_home' | 'enable_canvas_blocks' | 'enable_canvas_node_debugging' | 'enable_canvas_locks' | 'enable_canvas_template_edit_in_impact' | 'enable_canvas_tokens' | 'enable_collaborations' | 'enable_collection_player_data_accessor' | 'enable_content_grid_data_accessor' | 'enable_content_type_change_in_content_selector' | 'enable_cross_tab_instance_reload_for_ld_sync' | 'enable_create_section_from_section_template' | 'enable_custom_display_overrides' | 'enable_default_crm_shape' | 'enable_detailed_date_format' | 'enable_dsr_readonly_annotations' | 'enable_dynamic_data_table_component' | 'enable_custom_data_tables' | 'enable_embedded_video_autoplay' | 'enable_embedded_video' | 'enable_enhanced_canvas_drawer_app' | 'enable_enhanced_indicators' | 'enable_enhanced_section_execution_states' | 'enable_experimental_canvas_builder_dnd' | 'enable_extra_file_data' | 'enable_file_pages_metadata' | 'enable_file_revisions' | 'enable_folder_details_edit' | 'enable_handlebar_template_support' | 'enable_height_in_component_theming' | 'enable_hotspot_visibility' | 'enable_improved_canvas_node_updating' | 'enable_individual_users_in_file_distribution' | 'enable_insearch_in_section_selector' | 'enable_instance_cloner' | 'enable_advanced_cloner' | 'enable_instance_editor_role' | 'enable_instance_navigation_from_management' | 'enable_knock_notifications' | 'enable_maintain_section_theme_control' | 'enable_metadata_in_file_uploads_with_default_values' | 'enable_more_intuitive_component_spacing' | 'enable_multimedia_component_ai_images' | 'enable_new_meeting_bar' | 'enable_original_pdf_link' | 'enable_scale_content' | 'enable_sorting_in_tiptap_table' | 'enable_theme_assets' | 'enable_toc_enhancements_to_support_same_section_in_section_list' | 'enable_pia_assistant' | 'enable_pipe_character_multi_search' | 'enable_popup_apps' | 'enable_reorder_search' | 'enable_reorder_scribble_isolation' | 'enable_reorder_component_options_menu' | 'enable_resizable_multimedia_component' | 'enable_responsive_scribble_component' | 'enable_saved_canvases_filters' | 'enable_short_tag_column_in_tables' | 'enable_scribble_component' | 'enable_scribble_content_as_background' | 'enable_search_and_filters_in_multimedia_component' | 'enable_section_context_in_dsr' | 'enable_selectors_dnd' | 'enable_section_selector_edit_section' | 'enable_smart_folders' | 'enable_smart_folders_for_sections' | 'enable_smart_folders_in_section_selector' | 'enable_smart_folders_in_files' | 'enable_sorting_in_sections' | 'enable_suggested_tags' | 'enable_template_folders' | 'enable_theme_options_border_radius' | 'enable_themes' | 'hide_asset_uploader' | 'include_files_content_in_print' | 'interpolate_rep_canvases_on_edit_mode' | 'is_fe_sentry_enabled' | 'is_timeline_component_allowed' | 'launch_in_full_screen_on_present_mode' | 'prefer_online_handlers' | 'restrict_owned_files_from_admins' | 'show_asset_manager_for_multimedia' | 'show_clear_all_annotations_button' | 'show_content_selector_list_view' | 'show_metadata_filters_in_all_canvas_things' | 'show_only_preview_mode_for_html_component' | 'show_popularity_icons' | 'use_core_endpoint_for_analytics' | 'convert_pptx_to_section_with_scribble_pdfjs' | 'use_short_url_for_shared_link' | 'use_zoho_instead_of_ms_wopi' | 'enable_new_section_list' | 'enable_sharebox_apps' | 'enable_sharebox_bulk_filtering' | 'enable_back_to_previous_location_in_canvas' | 'enable_crm_shape_for_external_links' | 'enable_adaptive_popup_apps' | 'enable_file_version_polling' | 'skip_pspdfkit_wait_for_high_res_thumbs' | 'enable_reactive_scribble_component_toolbar' | 'enable_embeddable_full_screen_mode' | 'enable_enhanced_user_management' | 'keep_static_pptx_editable' | 'enable_canvas_pdf_dimensions' | 'enable_editable_pptx_of_canvas' | 'enable_canvas_control_bars_collapse' | 'enable_rep_app_visibility_order';
1
+ export type LaunchDarklyBooleanFlagKey = 'ai_code_generation_model' | 'ai_text_generation_model' | 'ai_image_generation_model' | 'ai_video_generation_model' | 'allow_ai_prompts_in_canvas_text' | 'allow_bulk_actions_canvases_files' | 'allow_content_grid_autofill' | 'allow_canvas_duplication' | 'allow_canvases_tables_columns_settings' | 'allow_table_column_resizing' | 'allow_creating_canvas_with_no_template' | 'allow_dynamic_data_table_for_scribble_component' | 'allow_html_for_scribble_component' | 'allow_embeddable_for_scribble_component' | 'allow_embeddable_hiding' | 'allow_multimedia_for_scribble_component' | 'allow_note_taking' | 'allow_rep_canvas_metadata_edit' | 'allow_rep_file_distributions' | 'allow_rep_file_rating' | 'allow_rep_file_upload' | 'allow_saving_annotations_in_personal_layer' | 'allow_user_to_edit_font_size_and_color_in_canvas_tokens' | 'are_sections_system_controlled' | 'enable_canvas_core_distributions' | 'enable_file_core_distributions' | 'copy_context_to_canvas' | 'copy_template_metadata_to_canvas' | 'disable_canvas_edit_for_reps' | 'disable_custom_tooltips' | 'disable_file_edit_content' | 'disable_fullscreen_canvas_builder' | 'disable_impact_web_browser_fullscreen' | 'display_section_list_name' | 'disable_download_canvas' | 'enable_ai_generated_thumbnails' | 'enable_analytics' | 'enable_app_developer_role' | 'enable_algolia_search' | 'enable_background_image_theme_options' | 'enable_better_canvas_builder_control_bars_on_zoom' | 'enable_bulk_update_file_attributes' | 'enable_canvas_as_home' | 'enable_canvas_blocks' | 'enable_canvas_node_debugging' | 'enable_canvas_locks' | 'enable_canvas_template_edit_in_impact' | 'enable_canvas_tokens' | 'enable_collaborations' | 'enable_collection_player_data_accessor' | 'enable_content_grid_data_accessor' | 'enable_content_type_change_in_content_selector' | 'enable_cross_tab_instance_reload_for_ld_sync' | 'enable_create_section_from_section_template' | 'enable_custom_display_overrides' | 'enable_default_crm_shape' | 'enable_detailed_date_format' | 'enable_dsr_readonly_annotations' | 'enable_dynamic_data_table_component' | 'enable_custom_data_tables' | 'enable_embedded_video_autoplay' | 'enable_embedded_video' | 'enable_enhanced_canvas_drawer_app' | 'enable_enhanced_indicators' | 'enable_enhanced_section_execution_states' | 'enable_experimental_canvas_builder_dnd' | 'enable_extra_file_data' | 'enable_file_pages_metadata' | 'enable_file_revisions' | 'enable_folder_details_edit' | 'enable_handlebar_template_support' | 'enable_height_in_component_theming' | 'enable_hotspot_visibility' | 'enable_improved_canvas_node_updating' | 'enable_individual_users_in_file_distribution' | 'enable_insearch_in_section_selector' | 'enable_instance_cloner' | 'enable_advanced_cloner' | 'enable_instance_editor_role' | 'enable_instance_navigation_from_management' | 'enable_knock_notifications' | 'enable_maintain_section_theme_control' | 'enable_metadata_in_file_uploads_with_default_values' | 'enable_more_intuitive_component_spacing' | 'enable_multimedia_component_ai_images' | 'enable_new_meeting_bar' | 'enable_original_pdf_link' | 'enable_scale_content' | 'enable_sorting_in_tiptap_table' | 'enable_theme_assets' | 'enable_toc_enhancements_to_support_same_section_in_section_list' | 'enable_pia_assistant' | 'enable_pipe_character_multi_search' | 'enable_popup_apps' | 'enable_reorder_search' | 'enable_reorder_scribble_isolation' | 'enable_reorder_component_options_menu' | 'enable_resizable_multimedia_component' | 'enable_responsive_scribble_component' | 'enable_saved_canvases_filters' | 'enable_short_tag_column_in_tables' | 'enable_scribble_component' | 'enable_scribble_content_as_background' | 'enable_search_and_filters_in_multimedia_component' | 'enable_section_context_in_dsr' | 'enable_selectors_dnd' | 'enable_section_selector_edit_section' | 'enable_smart_folders' | 'enable_smart_folders_for_sections' | 'enable_smart_folders_in_section_selector' | 'enable_smart_folders_in_files' | 'enable_sorting_in_sections' | 'enable_suggested_tags' | 'enable_template_folders' | 'enable_theme_options_border_radius' | 'enable_themes' | 'hide_asset_uploader' | 'include_files_content_in_print' | 'interpolate_rep_canvases_on_edit_mode' | 'is_fe_sentry_enabled' | 'is_timeline_component_allowed' | 'launch_in_full_screen_on_present_mode' | 'prefer_online_handlers' | 'restrict_owned_files_from_admins' | 'show_asset_manager_for_multimedia' | 'show_clear_all_annotations_button' | 'show_content_selector_list_view' | 'show_metadata_filters_in_all_canvas_things' | 'show_only_preview_mode_for_html_component' | 'show_popularity_icons' | 'use_core_endpoint_for_analytics' | 'convert_pptx_to_section_with_scribble_pdfjs' | 'use_short_url_for_shared_link' | 'use_zoho_instead_of_ms_wopi' | 'enable_new_section_list' | 'enable_sharebox_apps' | 'enable_sharebox_bulk_filtering' | 'enable_back_to_previous_location_in_canvas' | 'enable_crm_shape_for_external_links' | 'enable_adaptive_popup_apps' | 'enable_file_version_polling' | 'skip_pspdfkit_wait_for_high_res_thumbs' | 'enable_reactive_scribble_component_toolbar' | 'enable_embeddable_full_screen_mode' | 'enable_enhanced_user_management' | 'keep_static_pptx_editable' | 'enable_canvas_pdf_dimensions' | 'enable_editable_pptx_of_canvas' | 'enable_canvas_control_bars_collapse';
2
2
  export type LaunchDarklyNumberFlagKey = 'canvas_section_selector_page_size' | 'canvas_section_selector_selected_items_with_thumbnail_size';
3
3
  type LaunchDarklyObjectFlags = {
4
4
  canvas_manager_table_columns: CanvasManagerTableColumns;
@@ -1 +1,36 @@
1
1
  export declare function renderTemplate(template: string, context?: Record<string, any>): string;
2
+ export interface CustomHandlebarsHelper {
3
+ name: string;
4
+ code: string;
5
+ description?: string;
6
+ }
7
+ /**
8
+ * Register a single custom Handlebars helper from code string
9
+ * @param helper - The helper definition with name and code
10
+ * @returns true if registration succeeded, false otherwise
11
+ */
12
+ export declare function registerCustomHelper(helper: CustomHandlebarsHelper): boolean;
13
+ /**
14
+ * Register multiple custom Handlebars helpers
15
+ * @param helpers - Array of helper definitions
16
+ * @returns Object with counts of successful and failed registrations
17
+ */
18
+ export declare function registerCustomHelpers(helpers: CustomHandlebarsHelper[]): {
19
+ registered: number;
20
+ failed: number;
21
+ };
22
+ /**
23
+ * Load and register custom Handlebars helpers from installed apps
24
+ * Looks for the "handlebars-helpers" app and registers helpers from its metadata
25
+ * @param installedApps - Array of installed app files
26
+ * @returns Object with counts of successful and failed registrations
27
+ */
28
+ export declare function loadCustomHelpersFromApps(installedApps: Array<{
29
+ app_metadata?: {
30
+ name?: string;
31
+ };
32
+ metadata?: Record<string, any>;
33
+ }>): {
34
+ registered: number;
35
+ failed: number;
36
+ };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pitcher/canvas-ui",
3
- "version": "2025.12.9-184113-beta",
3
+ "version": "2025.12.10-74659",
4
4
  "type": "module",
5
5
  "publishConfig": {
6
6
  "access": "public"
@@ -1,46 +0,0 @@
1
- import { AppFile } from '../types/app';
2
- /**
3
- * Checks if the app provides the UI itself (is the slotty-ui app)
4
- */
5
- export declare const isTheUiItself: (app: AppFile) => boolean;
6
- /**
7
- * Checks if the app is a postcall app
8
- */
9
- export declare const isPostcallApp: (app: AppFile) => boolean;
10
- /**
11
- * Checks if the app replaces the file-viewer module
12
- */
13
- export declare const isFileViewerReplacement: (app: AppFile) => boolean;
14
- /**
15
- * Checks if the app has no module, hooks, or app_type defined (legacy app)
16
- */
17
- export declare const doesNotHaveAnyModuleOrHookSpecified: (app: AppFile) => boolean;
18
- /**
19
- * Checks if the app has an app_type defined
20
- */
21
- export declare const hasAppTypeDefined: (app: AppFile) => boolean;
22
- /**
23
- * Checks if the app is a canvas section execution app
24
- */
25
- export declare const isCanvasSectionExecution: (app: AppFile) => boolean;
26
- /**
27
- * Checks if the app is a canvas drawer app
28
- */
29
- export declare const isCanvasDrawerApp: (app: AppFile) => boolean;
30
- /**
31
- * Checks if the app requires CRM connection
32
- */
33
- export declare const appRequiresCrm: (app: AppFile) => boolean;
34
- /**
35
- * Determines if an app should be shown in the slotty-ui sidebar.
36
- * An app shows in sidebar if:
37
- * - It has `module.ui_app.enabled = true`, OR
38
- * - It's a legacy app (no module, hooks, or app_type defined) AND
39
- * it's not a postcall app, file-viewer replacement, canvas drawer,
40
- * canvas section execution, or has app_type defined
41
- */
42
- export declare const shouldShowInSidebar: (app: AppFile) => boolean;
43
- /**
44
- * Filters an array of AppFiles to only include those that should show in sidebar
45
- */
46
- export declare const filterSidebarApps: (apps: AppFile[]) => AppFile[];