@smilodon/core 1.4.9 → 1.4.11

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.
@@ -7,6 +7,8 @@ import type { GlobalSelectConfig } from '../config/global-config';
7
7
  import type { GroupedItem, ClassMap } from '../types';
8
8
  import type { OptionRenderer as OptionRendererFn } from '../renderers/contracts';
9
9
  export declare class EnhancedSelect extends HTMLElement {
10
+ /** live set of all connected instances; used to auto-close siblings */
11
+ private static _instances;
10
12
  private _config;
11
13
  private _shadow;
12
14
  private _container;
@@ -36,6 +38,7 @@ export declare class EnhancedSelect extends HTMLElement {
36
38
  private _pendingSearchRenderMark;
37
39
  private _rangeAnchorIndex;
38
40
  private _optionRenderer?;
41
+ private _groupHeaderRenderer?;
39
42
  private _classMap?;
40
43
  private _rendererHelpers;
41
44
  private _customOptionBoundElements;
@@ -44,6 +47,13 @@ export declare class EnhancedSelect extends HTMLElement {
44
47
  private _globalStylesContainer;
45
48
  get classMap(): ClassMap | undefined;
46
49
  set classMap(map: ClassMap | undefined);
50
+ /**
51
+ * DOM-based renderer for group headers. When provided, the component will
52
+ * call this function for each group during rendering. The returned element
53
+ * will receive `.group-header` and `part="group-header"` automatically.
54
+ */
55
+ get groupHeaderRenderer(): import('../types').GroupHeaderRenderer | undefined;
56
+ set groupHeaderRenderer(renderer: import('../types').GroupHeaderRenderer | undefined);
47
57
  constructor();
48
58
  connectedCallback(): void;
49
59
  disconnectedCallback(): void;
@@ -4,6 +4,11 @@ export interface GroupedItem {
4
4
  label: string;
5
5
  options: unknown[];
6
6
  }
7
+ /**
8
+ * Renderer callback used by the core element to create custom group headers.
9
+ * Similar to `OptionRenderer` but receives the entire group object.
10
+ */
11
+ export type GroupHeaderRenderer = (group: GroupedItem, index: number) => HTMLElement;
7
12
  export interface RemoteConfig {
8
13
  endpoint: string;
9
14
  pageSize?: number;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@smilodon/core",
3
- "version": "1.4.9",
3
+ "version": "1.4.11",
4
4
  "description": "High-performance native select component with extreme-scale virtualization - React, Vue, Svelte, Vanilla JS",
5
5
  "type": "module",
6
6
  "main": "./dist/index.cjs",