@lmb-it/kitsconcerto-native 0.1.259 → 0.1.260

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 (2) hide show
  1. package/index.d.ts +32 -0
  2. package/package.json +1 -1
package/index.d.ts CHANGED
@@ -1785,6 +1785,38 @@ export interface ISelectBase<T extends FieldValues = any> extends IElementBase<T
1785
1785
  filterBy?: string;
1786
1786
  emptyFilterMessage?: ReactNode;
1787
1787
  virtualScroll?: boolean;
1788
+ /**
1789
+ * Open the options in a popup that owns the screen instead of a panel
1790
+ * anchored to the trigger.
1791
+ *
1792
+ * ⛔ IT LIVES HERE, ON THE ELEMENT BASE, AND FOR ONE RELEASE IT DID NOT.
1793
+ * 0.1.259 declared it on `ISelectCore` — the select COMPONENT's props — and
1794
+ * shipped. The runtime was right end to end: `form-renderer`'s Select field
1795
+ * pulls `popup` off the element and hands it to the select. But every select
1796
+ * in a consumer's form is a form ELEMENT, and an element reads THIS
1797
+ * interface, so `popup: true` in a form config was TS2353 and nobody could
1798
+ * turn the feature on. AlphaMatch tried it on six pickers, took six errors,
1799
+ * and reverted the lot.
1800
+ *
1801
+ * ⚠️ THE TWO BASES MUST STAY IN STEP. `ISelectCore` is the component side of
1802
+ * this same decision and carries `popup` for every shape; this is its
1803
+ * element-side mirror. A prop on one and not the other is what a consumer
1804
+ * meets as "the feature exists and I cannot use it".
1805
+ *
1806
+ * ── WHAT THE RUNTIME HONOURS ───────────────────────────────────────────
1807
+ * The NATIVE Dropdown and the NATIVE MultiSelect, through
1808
+ * `form/selects/helpers/SelectPopupOverlay.native.tsx`. ⚠️ Tags, ListBox,
1809
+ * TreeSelect and CascadeSelect accept it and draw nothing, and so does every
1810
+ * web build — on web the options render in PrimeReact's own overlay, which
1811
+ * is not boxed in by an on-screen keyboard, so there is no fault to escape.
1812
+ *
1813
+ * ⚠️ ACCEPTED-AND-INERT IS DELIBERATE, NOT AN OVERSIGHT: a shared element
1814
+ * array stays valid on both surfaces rather than making a consumer branch on
1815
+ * platform. Same contract, same wording, as `ISelectCore`.
1816
+ *
1817
+ * Default false: every existing consumer keeps the anchored panel.
1818
+ */
1819
+ popup?: boolean;
1788
1820
  }
1789
1821
  export interface IFormSelect<T extends FieldValues = any> extends ISelectBase<T> {
1790
1822
  type: 'Select';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lmb-it/kitsconcerto-native",
3
- "version": "0.1.259",
3
+ "version": "0.1.260",
4
4
  "description": "KitsConcerto — Native (React Native) UI components",
5
5
  "main": "index.cjs",
6
6
  "module": "index.js",