@korsolutions/ui 0.0.59 → 0.0.60
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/module/components/menu/components/menu-checkbox-item.js +4 -4
- package/dist/module/components/menu/components/menu-checkbox-item.js.map +1 -1
- package/dist/module/components/menu/components/menu-content.js +1 -1
- package/dist/module/components/menu/components/menu-radio-item.js +4 -4
- package/dist/module/components/menu/components/menu-radio-item.js.map +1 -1
- package/dist/module/components/menu/components/menu-selection-indicator.js +29 -0
- package/dist/module/components/menu/components/menu-selection-indicator.js.map +1 -0
- package/dist/module/components/menu/variants/default.js +8 -17
- package/dist/module/components/menu/variants/default.js.map +1 -1
- package/dist/module/components/phone-input/components/country-picker.js +1 -1
- package/dist/module/components/popover/components/popover-content.js +2 -5
- package/dist/module/components/popover/components/popover-content.js.map +1 -1
- package/dist/module/components/portal/index.js +1 -0
- package/dist/module/components/portal/index.js.map +1 -1
- package/dist/module/components/portal/portal-offset.js +32 -0
- package/dist/module/components/portal/portal-offset.js.map +1 -0
- package/dist/module/components/portal/portal.js +39 -17
- package/dist/module/components/portal/portal.js.map +1 -1
- package/dist/module/components/select/components/select-content.js +3 -3
- package/dist/module/components/select/components/select-content.js.map +1 -1
- package/dist/module/components/textarea/variants/default.js +7 -0
- package/dist/module/components/textarea/variants/default.js.map +1 -1
- package/dist/module/hooks/use-relative-position.js +37 -28
- package/dist/module/hooks/use-relative-position.js.map +1 -1
- package/dist/module/themes/provider.js.map +1 -1
- package/dist/typescript/src/components/menu/components/menu-checkbox-item.d.ts.map +1 -1
- package/dist/typescript/src/components/menu/components/menu-radio-item.d.ts.map +1 -1
- package/dist/typescript/src/components/menu/components/menu-selection-indicator.d.ts +7 -0
- package/dist/typescript/src/components/menu/components/menu-selection-indicator.d.ts.map +1 -0
- package/dist/typescript/src/components/menu/types.d.ts +1 -3
- package/dist/typescript/src/components/menu/types.d.ts.map +1 -1
- package/dist/typescript/src/components/menu/variants/default.d.ts.map +1 -1
- package/dist/typescript/src/components/popover/components/popover-content.d.ts.map +1 -1
- package/dist/typescript/src/components/portal/index.d.ts +1 -0
- package/dist/typescript/src/components/portal/index.d.ts.map +1 -1
- package/dist/typescript/src/components/portal/portal-offset.d.ts +13 -0
- package/dist/typescript/src/components/portal/portal-offset.d.ts.map +1 -0
- package/dist/typescript/src/components/portal/portal.d.ts +3 -2
- package/dist/typescript/src/components/portal/portal.d.ts.map +1 -1
- package/dist/typescript/src/components/select/components/select-content.d.ts.map +1 -1
- package/dist/typescript/src/components/textarea/variants/default.d.ts.map +1 -1
- package/dist/typescript/src/hooks/use-relative-position.d.ts +4 -7
- package/dist/typescript/src/hooks/use-relative-position.d.ts.map +1 -1
- package/dist/typescript/src/themes/provider.d.ts +3 -0
- package/dist/typescript/src/themes/provider.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/components/menu/components/menu-checkbox-item.tsx +3 -4
- package/src/components/menu/components/menu-content.tsx +1 -1
- package/src/components/menu/components/menu-radio-item.tsx +3 -7
- package/src/components/menu/components/menu-selection-indicator.tsx +26 -0
- package/src/components/menu/types.ts +1 -6
- package/src/components/menu/variants/default.tsx +7 -16
- package/src/components/phone-input/components/country-picker.tsx +1 -1
- package/src/components/popover/components/popover-content.tsx +1 -4
- package/src/components/portal/index.ts +1 -0
- package/src/components/portal/portal-offset.ts +28 -0
- package/src/components/portal/portal.tsx +54 -22
- package/src/components/select/components/select-content.tsx +14 -5
- package/src/components/textarea/variants/default.tsx +7 -0
- package/src/hooks/use-relative-position.ts +53 -41
- package/src/themes/provider.tsx +3 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useMemo","useWindowDimensions","useRelativePosition","align","triggerPosition","contentLayout","alignOffset","
|
|
1
|
+
{"version":3,"names":["useMemo","useWindowDimensions","usePortalOffset","useSafeAreaInsets","useRelativePosition","align","triggerPosition","contentLayout","alignOffset","sideOffset","preferredSide","dimensions","insets","portalOffset","hasLayout","width","height","isLoaded","position","opacity","top","zIndex","adjustedTriggerPosition","pageX","value","x","pageY","y","style","getContentStyle","DEFAULT_LAYOUT","DEFAULT_POSITION","getSide","positionTop","positionBottom","spaceBelow","bottom","spaceAbove","getSidePosition","side","Math","min","max","getAlignPosition","maxContentWidth","left","right","contentWidth","getLeftPosition","doesCollide","spaceLeft","spaceRight","centeredPosition","maxWidth","triggerPageX","triggerWidth","args"],"sourceRoot":"../../../src","sources":["hooks/use-relative-position.ts"],"mappings":";;AAAA,SAASA,OAAO,QAAQ,OAAO;AAC/B,SACEC,mBAAmB,QAId,cAAc;AACrB,SAASC,eAAe,QAAQ,+BAAsB;AACtD,SAASC,iBAAiB,QAA6B,uBAAc;AAOrE,OAAO,SAASC,mBAAmBA,CAAC;EAClCC,KAAK;EACLC,eAAe;EACfC,aAAa;EACbC,WAAW;EACXC,UAAU;EACVC;AACuB,CAAC,EAAa;EACrC,MAAMC,UAAU,GAAGV,mBAAmB,CAAC,CAAC;EACxC,MAAMW,MAAM,GAAGT,iBAAiB,CAAC,CAAC;EAClC,MAAMU,YAAY,GAAGX,eAAe,CAAC,CAAC;EAEtC,OAAOF,OAAO,CAAC,MAAM;IACnB,MAAMc,SAAS,GACbR,eAAe,CAACS,KAAK,GAAG,CAAC,IACzBT,eAAe,CAACU,MAAM,GAAG,CAAC,IAC1BT,aAAa,CAACQ,KAAK,GAAG,CAAC,IACvBR,aAAa,CAACS,MAAM,GAAG,CAAC,IACxBH,YAAY,CAACI,QAAQ;IAEvB,IAAI,CAACH,SAAS,EAAE;MACd,OAAO;QACLI,QAAQ,EAAE,UAAU;QACpBC,OAAO,EAAE,CAAC;QACVC,GAAG,EAAET,UAAU,CAACK,MAAM;QACtBK,MAAM,EAAE,CAAC;MACX,CAAC;IACH;;IAEA;IACA;IACA;IACA;IACA;IACA,MAAMC,uBAAuC,GAAG;MAC9C,GAAGhB,eAAe;MAClBiB,KAAK,EAAEjB,eAAe,CAACiB,KAAK,GAAGV,YAAY,CAACW,KAAK,CAACC,CAAC;MACnDC,KAAK,EAAEpB,eAAe,CAACoB,KAAK,GAAGb,YAAY,CAACW,KAAK,CAACG;IACpD,CAAC;IAED,MAAMC,KAAK,GAAGC,eAAe,CAAC;MAC5BxB,KAAK;MACLE,aAAa;MACbG,aAAa;MACbJ,eAAe,EAAEgB,uBAAuB;MACxCd,WAAW;MACXI,MAAM;MACNH,UAAU;MACVE;IACF,CAAC,CAAC;IAEF,OAAOiB,KAAK;EACd,CAAC,EAAE,CACDvB,KAAK,EACLK,aAAa,EACbF,WAAW,EACXI,MAAM,EACNN,eAAe,EACfC,aAAa,EACbI,UAAU,CAACI,KAAK,EAChBJ,UAAU,CAACK,MAAM,EACjBP,UAAU,EACVI,YAAY,CACb,CAAC;AACJ;AAqBA,OAAO,MAAMiB,cAA+B,GAAG;EAC7CL,CAAC,EAAE,CAAC;EACJE,CAAC,EAAE,CAAC;EACJZ,KAAK,EAAE,CAAC;EACRC,MAAM,EAAE;AACV,CAAC;AACD,OAAO,MAAMe,gBAAgC,GAAG;EAC9Cf,MAAM,EAAE,CAAC;EACTD,KAAK,EAAE,CAAC;EACRQ,KAAK,EAAE,CAAC;EACRG,KAAK,EAAE;AACT,CAAC;AAWD,SAASM,OAAOA,CAAC;EACftB,aAAa;EACbE,MAAM;EACNqB,WAAW;EACXC,cAAc;EACd3B,aAAa;EACbI;AACW,CAAC,EAAE;EACd,IAAID,aAAa,KAAK,QAAQ,EAAE;IAC9B,MAAMyB,UAAU,GAAGxB,UAAU,CAACK,MAAM,GAAGJ,MAAM,CAACwB,MAAM,GAAGF,cAAc;IACrE,IAAIC,UAAU,IAAI5B,aAAa,CAACS,MAAM,EAAE;MACtC,OAAO,QAAQ;IACjB;IACA,MAAMqB,UAAU,GAAGJ,WAAW,GAAGrB,MAAM,CAACQ,GAAG;IAC3C,IAAIiB,UAAU,GAAGF,UAAU,EAAE;MAC3B,OAAO,KAAK;IACd;IACA,OAAO,QAAQ;EACjB;EACA,MAAME,UAAU,GAAGJ,WAAW,GAAGrB,MAAM,CAACQ,GAAG;EAC3C,IAAIiB,UAAU,IAAI9B,aAAa,CAACS,MAAM,EAAE;IACtC,OAAO,KAAK;EACd;EACA,MAAMmB,UAAU,GAAGxB,UAAU,CAACK,MAAM,GAAGJ,MAAM,CAACwB,MAAM,GAAGF,cAAc;EACrE,IAAIC,UAAU,GAAGE,UAAU,EAAE;IAC3B,OAAO,QAAQ;EACjB;EACA,OAAO,KAAK;AACd;AAEA,SAASC,eAAeA,CAAC;EACvB5B,aAAa;EACbJ,eAAe;EACfC,aAAa;EACbE,UAAU;EACVG,MAAM;EACND;AACmB,CAAC,EAAE;EACtB,MAAMsB,WAAW,GACf3B,eAAe,EAAEoB,KAAK,GAAGjB,UAAU,GAAGF,aAAa,CAACS,MAAM;EAC5D,MAAMkB,cAAc,GAClB5B,eAAe,CAACoB,KAAK,GAAGpB,eAAe,CAACU,MAAM,GAAGP,UAAU;EAE7D,MAAM8B,IAAI,GAAGP,OAAO,CAAC;IACnBtB,aAAa;IACbE,MAAM;IACNqB,WAAW;IACXC,cAAc;IACd3B,aAAa;IACbI;EACF,CAAC,CAAC;EAEF,IAAI4B,IAAI,KAAK,KAAK,EAAE;IAClB,OAAO;MACLnB,GAAG,EAAEoB,IAAI,CAACC,GAAG,CACXD,IAAI,CAACE,GAAG,CAAC9B,MAAM,CAACQ,GAAG,EAAEa,WAAW,CAAC,EACjCtB,UAAU,CAACK,MAAM,GAAGJ,MAAM,CAACwB,MAAM,GAAG7B,aAAa,CAACS,MACpD;IACF,CAAC;EACH;EAEA,OAAO;IACLI,GAAG,EAAEoB,IAAI,CAACC,GAAG,CACX9B,UAAU,CAACK,MAAM,GAAGJ,MAAM,CAACwB,MAAM,GAAG7B,aAAa,CAACS,MAAM,EACxDkB,cACF;EACF,CAAC;AACH;AAOA,SAASS,gBAAgBA,CAAC;EACxBtC,KAAK;EACLE,aAAa;EACbD,eAAe;EACfE,WAAW;EACXI,MAAM;EACND;AACoB,CAAC,EAAE;EACvB,MAAMiC,eAAe,GAAGjC,UAAU,CAACI,KAAK,GAAGH,MAAM,CAACiC,IAAI,GAAGjC,MAAM,CAACkC,KAAK;EAErE,MAAMC,YAAY,GAAGP,IAAI,CAACC,GAAG,CAAClC,aAAa,CAACQ,KAAK,EAAE6B,eAAe,CAAC;EAEnE,IAAIC,IAAI,GAAGG,eAAe,CACxB3C,KAAK,EACLC,eAAe,CAACiB,KAAK,EACrBjB,eAAe,CAACS,KAAK,EACrBgC,YAAY,EACZvC,WAAW,EACXI,MAAM,EACND,UACF,CAAC;EAED,MAAMsC,WAAW,GACfJ,IAAI,GAAGjC,MAAM,CAACiC,IAAI,IAAIA,IAAI,GAAGE,YAAY,GAAGpC,UAAU,CAACI,KAAK,GAAGH,MAAM,CAACkC,KAAK;EAC7E,IAAIG,WAAW,EAAE;IACf,MAAMC,SAAS,GAAGL,IAAI,GAAGjC,MAAM,CAACiC,IAAI;IACpC,MAAMM,UAAU,GAAGxC,UAAU,CAACI,KAAK,GAAGH,MAAM,CAACkC,KAAK,IAAID,IAAI,GAAGE,YAAY,CAAC;IAE1E,IAAIG,SAAS,GAAGC,UAAU,IAAID,SAAS,IAAIH,YAAY,EAAE;MACvDF,IAAI,GAAGjC,MAAM,CAACiC,IAAI;IACpB,CAAC,MAAM,IAAIM,UAAU,IAAIJ,YAAY,EAAE;MACrCF,IAAI,GAAGlC,UAAU,CAACI,KAAK,GAAGH,MAAM,CAACkC,KAAK,GAAGC,YAAY;IACvD,CAAC,MAAM;MACL,MAAMK,gBAAgB,GAAGZ,IAAI,CAACE,GAAG,CAC/B9B,MAAM,CAACiC,IAAI,EACX,CAAClC,UAAU,CAACI,KAAK,GAAGgC,YAAY,GAAGnC,MAAM,CAACkC,KAAK,IAAI,CACrD,CAAC;MACDD,IAAI,GAAGO,gBAAgB;IACzB;EACF;EAEA,OAAO;IAAEP,IAAI;IAAEQ,QAAQ,EAAET;EAAgB,CAAC;AAC5C;AAEA,SAASI,eAAeA,CACtB3C,KAAiC,EACjCiD,YAAoB,EACpBC,YAAoB,EACpBR,YAAoB,EACpBvC,WAAmB,EACnBI,MAAsB,EACtBD,UAA0B,EAC1B;EACA,IAAIkC,IAAI,GAAG,CAAC;EACZ,IAAIxC,KAAK,KAAK,OAAO,EAAE;IACrBwC,IAAI,GAAGS,YAAY;EACrB;EACA,IAAIjD,KAAK,KAAK,QAAQ,EAAE;IACtBwC,IAAI,GAAGS,YAAY,GAAGC,YAAY,GAAG,CAAC,GAAGR,YAAY,GAAG,CAAC;EAC3D;EACA,IAAI1C,KAAK,KAAK,KAAK,EAAE;IACnBwC,IAAI,GAAGS,YAAY,GAAGC,YAAY,GAAGR,YAAY;EACnD;EACA,OAAOP,IAAI,CAACE,GAAG,CACb9B,MAAM,CAACiC,IAAI,EACXL,IAAI,CAACC,GAAG,CACNI,IAAI,GAAGrC,WAAW,EAClBG,UAAU,CAACI,KAAK,GAAGgC,YAAY,GAAGnC,MAAM,CAACkC,KAC3C,CACF,CAAC;AACH;AAMA,SAASjB,eAAeA,CAAC2B,IAAyB,EAAa;EAC7D,OAAO;IACLtC,QAAQ,EAAE,UAAU;IACpB,GAAGoB,eAAe,CAACkB,IAAI,CAAC;IACxB,GAAGb,gBAAgB,CAACa,IAAI;EAC1B,CAAC;AACH","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["createContext","useContext","useEffect","useState","useColorScheme","defaultThemeAssets","mergeThemeAssets","jsx","_jsx","ThemeContext","ThemeProvider","props","children","theme","components","systemColorScheme","colorScheme","setColorScheme","themeAssets","colors","Provider","value","radius","fontFamily","letterSpacing","fontSize","useTheme","context","Error","useComponentsConfig"],"sourceRoot":"../../../src","sources":["themes/provider.tsx"],"mappings":";;AAAA,SACEA,aAAa,EAEbC,UAAU,EACVC,SAAS,EACTC,QAAQ,QACH,OAAO;AACd,SAASC,cAAc,QAAQ,cAAc;AAI7C,SAASC,kBAAkB,QAAQ,oBAAW;AAU9C,SAASC,gBAAgB,QAAQ,YAAS;AAAC,SAAAC,GAAA,IAAAC,IAAA;
|
|
1
|
+
{"version":3,"names":["createContext","useContext","useEffect","useState","useColorScheme","defaultThemeAssets","mergeThemeAssets","jsx","_jsx","ThemeContext","ThemeProvider","props","children","theme","components","systemColorScheme","colorScheme","setColorScheme","themeAssets","colors","Provider","value","radius","fontFamily","letterSpacing","fontSize","useTheme","context","Error","useComponentsConfig"],"sourceRoot":"../../../src","sources":["themes/provider.tsx"],"mappings":";;AAAA,SACEA,aAAa,EAEbC,UAAU,EACVC,SAAS,EACTC,QAAQ,QACH,OAAO;AACd,SAASC,cAAc,QAAQ,cAAc;AAI7C,SAASC,kBAAkB,QAAQ,oBAAW;AAU9C,SAASC,gBAAgB,QAAQ,YAAS;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAsB3C,MAAMC,YAAY,gBAAGT,aAAa,CAAsB,IAAI,CAAC;AAO7D,OAAO,MAAMU,aAAa,GAAIC,KAAyB,IAAK;EAC1D,MAAM;IAAEC,QAAQ;IAAEC,KAAK;IAAEC;EAAW,CAAC,GAAGH,KAAK;EAE7C,MAAMI,iBAAiB,GAAGX,cAAc,CAAC,CAAC;EAC1C,MAAM,CAACY,WAAW,EAAEC,cAAc,CAAC,GAAGd,QAAQ,CAC5CY,iBAAiB,KAAK,MAAM,GAAG,MAAM,GAAG,OAC1C,CAAC;EAED,MAAMG,WAAW,GAAGL,KAAK,GACrBP,gBAAgB,CAACD,kBAAkB,EAAEQ,KAAK,CAAC,GAC3CR,kBAAkB;EAEtB,MAAMc,MAAM,GAAGD,WAAW,CAACC,MAAM,CAACH,WAAW,CAAC;EAE9Cd,SAAS,CAAC,MAAM;IACd,IAAIa,iBAAiB,EAAE;MACrBE,cAAc,CAACF,iBAAiB,KAAK,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;IACjE;EACF,CAAC,EAAE,CAACA,iBAAiB,CAAC,CAAC;EAEvB,oBACEP,IAAA,CAACC,YAAY,CAACW,QAAQ;IACpBC,KAAK,EAAE;MACLL,WAAW;MACXC,cAAc;MACdE,MAAM;MACNG,MAAM,EAAEJ,WAAW,CAACI,MAAM;MAC1BC,UAAU,EAAEL,WAAW,CAACK,UAAU;MAClCC,aAAa,EAAEN,WAAW,CAACM,aAAa;MACxCC,QAAQ,EAAEP,WAAW,CAACO,QAAQ;MAC9BX;IACF,CAAE;IAAAF,QAAA,EAEDA;EAAQ,CACY,CAAC;AAE5B,CAAC;AAED,OAAO,MAAMc,QAAQ,GAAGA,CAAA,KAAM;EAC5B,MAAMC,OAAO,GAAG1B,UAAU,CAACQ,YAAY,CAAC;EACxC,IAAI,CAACkB,OAAO,EAAE;IACZ,MAAM,IAAIC,KAAK,CAAC,8CAA8C,CAAC;EACjE;EACA,OAAOD,OAAO;AAChB,CAAC;AAED,OAAO,MAAME,mBAAmB,GAAGA,CAAA,KAAM;EACvC,MAAMF,OAAO,GAAG1B,UAAU,CAACQ,YAAY,CAAC;EACxC,IAAI,CAACkB,OAAO,EAAE;IACZ,MAAM,IAAIC,KAAK,CAAC,yDAAyD,CAAC;EAC5E;EACA,OAAOD,OAAO,CAACb,UAAU;AAC3B,CAAC","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"menu-checkbox-item.d.ts","sourceRoot":"","sources":["../../../../../../src/components/menu/components/menu-checkbox-item.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAmB,MAAM,OAAO,CAAC;AACxC,OAAO,
|
|
1
|
+
{"version":3,"file":"menu-checkbox-item.d.ts","sourceRoot":"","sources":["../../../../../../src/components/menu/components/menu-checkbox-item.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAmB,MAAM,OAAO,CAAC;AACxC,OAAO,EAAa,KAAK,SAAS,EAAE,KAAK,SAAS,EAAE,MAAM,cAAc,CAAC;AAMzE,MAAM,WAAW,qBAAqB;IACpC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,OAAO,EAAE,OAAO,CAAC;IACjB,eAAe,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;IAC5C,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,qBAAqB,KAAK,KAAK,CAAC,SAAS,CAAC;IAC3D,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;CAC9B;AAWD,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,qBAAqB,qBA8C5D"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"menu-radio-item.d.ts","sourceRoot":"","sources":["../../../../../../src/components/menu/components/menu-radio-item.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAmB,MAAM,OAAO,CAAC;AACxC,OAAO,
|
|
1
|
+
{"version":3,"file":"menu-radio-item.d.ts","sourceRoot":"","sources":["../../../../../../src/components/menu/components/menu-radio-item.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAmB,MAAM,OAAO,CAAC;AACxC,OAAO,EAAa,KAAK,SAAS,EAAE,KAAK,SAAS,EAAE,MAAM,cAAc,CAAC;AAMzE,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,kBAAkB,KAAK,KAAK,CAAC,SAAS,CAAC;IACxD,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;CAC9B;AAaD,wBAAgB,aAAa,CAAC,KAAK,EAAE,kBAAkB,qBAgDtD"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
interface MenuSelectionIndicatorProps {
|
|
3
|
+
isSelected: boolean;
|
|
4
|
+
}
|
|
5
|
+
export declare function MenuSelectionIndicator({ isSelected, }: MenuSelectionIndicatorProps): React.JSX.Element;
|
|
6
|
+
export {};
|
|
7
|
+
//# sourceMappingURL=menu-selection-indicator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"menu-selection-indicator.d.ts","sourceRoot":"","sources":["../../../../../../src/components/menu/components/menu-selection-indicator.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAK1B,UAAU,2BAA2B;IACnC,UAAU,EAAE,OAAO,CAAC;CACrB;AAED,wBAAgB,sBAAsB,CAAC,EACrC,UAAU,GACX,EAAE,2BAA2B,qBAc7B"}
|
|
@@ -5,7 +5,6 @@ import type { MenuOverlayProps } from "./components/menu-overlay";
|
|
|
5
5
|
export type MenuButtonState = "default" | "hovered";
|
|
6
6
|
export type MenuCheckboxItemState = "default" | "hovered" | "disabled";
|
|
7
7
|
export type MenuRadioItemState = "default" | "hovered" | "selected" | "disabled";
|
|
8
|
-
export type MenuRadioIndicatorState = "default" | "selected";
|
|
9
8
|
export interface MenuStyles {
|
|
10
9
|
content?: MenuContentProps["style"];
|
|
11
10
|
item?: Partial<Record<MenuButtonState, StyleProp<ViewStyle>>>;
|
|
@@ -16,10 +15,9 @@ export interface MenuStyles {
|
|
|
16
15
|
label?: StyleProp<TextStyle>;
|
|
17
16
|
separator?: StyleProp<ViewStyle>;
|
|
18
17
|
checkboxItem?: Partial<Record<MenuCheckboxItemState, StyleProp<ViewStyle>>>;
|
|
19
|
-
|
|
18
|
+
selectionIndicator?: TextStyle & SvgProps;
|
|
20
19
|
radioGroup?: StyleProp<ViewStyle>;
|
|
21
20
|
radioItem?: Partial<Record<MenuRadioItemState, StyleProp<ViewStyle>>>;
|
|
22
|
-
radioIndicator?: Partial<Record<MenuRadioIndicatorState, StyleProp<ViewStyle>>>;
|
|
23
21
|
shortcut?: StyleProp<TextStyle>;
|
|
24
22
|
}
|
|
25
23
|
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../src/components/menu/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACpE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAClE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAElE,MAAM,MAAM,eAAe,GAAG,SAAS,GAAG,SAAS,CAAC;AACpD,MAAM,MAAM,qBAAqB,GAAG,SAAS,GAAG,SAAS,GAAG,UAAU,CAAC;AACvE,MAAM,MAAM,kBAAkB,GAC1B,SAAS,GACT,SAAS,GACT,UAAU,GACV,UAAU,CAAC;AAEf,MAAM,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../src/components/menu/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACpE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAClE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAElE,MAAM,MAAM,eAAe,GAAG,SAAS,GAAG,SAAS,CAAC;AACpD,MAAM,MAAM,qBAAqB,GAAG,SAAS,GAAG,SAAS,GAAG,UAAU,CAAC;AACvE,MAAM,MAAM,kBAAkB,GAC1B,SAAS,GACT,SAAS,GACT,UAAU,GACV,UAAU,CAAC;AAEf,MAAM,WAAW,UAAU;IACzB,OAAO,CAAC,EAAE,gBAAgB,CAAC,OAAO,CAAC,CAAC;IACpC,IAAI,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,eAAe,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;IAC9D,QAAQ,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAChC,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,OAAO,CAAC,EAAE,gBAAgB,CAAC,OAAO,CAAC,CAAC;IAEpC,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAC7B,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAC7B,SAAS,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IACjC,YAAY,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,qBAAqB,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;IAC5E,kBAAkB,CAAC,EAAE,SAAS,GAAG,QAAQ,CAAC;IAC1C,UAAU,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAClC,SAAS,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,kBAAkB,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;IACtE,QAAQ,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;CACjC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"default.d.ts","sourceRoot":"","sources":["../../../../../../src/components/menu/variants/default.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,OAAO,CAAC;AAGxC,eAAO,MAAM,qBAAqB,QAAO,
|
|
1
|
+
{"version":3,"file":"default.d.ts","sourceRoot":"","sources":["../../../../../../src/components/menu/variants/default.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,OAAO,CAAC;AAGxC,eAAO,MAAM,qBAAqB,QAAO,UAmGxC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"popover-content.d.ts","sourceRoot":"","sources":["../../../../../../src/components/popover/components/popover-content.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"popover-content.d.ts","sourceRoot":"","sources":["../../../../../../src/components/popover/components/popover-content.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,KAAK,SAAS,EAAQ,KAAK,SAAS,EAAE,MAAM,cAAc,CAAC;AAIpE,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAE3B,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,mBAAmB,KAAK,KAAK,CAAC,SAAS,CAAC;IAEzD,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;CAC9B;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,mBAAmB,qBAyBxD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/components/portal/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,oBAAoB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/components/portal/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,iBAAiB,CAAC;AAChC,cAAc,oBAAoB,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export interface PortalOffset {
|
|
2
|
+
x: number;
|
|
3
|
+
y: number;
|
|
4
|
+
}
|
|
5
|
+
export type PortalOffsetValue = PortalOffset | null | undefined;
|
|
6
|
+
export declare const PortalOffsetContext: import("react").Context<PortalOffsetValue>;
|
|
7
|
+
type UsePortalOffsetReturn = {
|
|
8
|
+
value: PortalOffset;
|
|
9
|
+
isLoaded: boolean;
|
|
10
|
+
};
|
|
11
|
+
export declare function usePortalOffset(): UsePortalOffsetReturn;
|
|
12
|
+
export {};
|
|
13
|
+
//# sourceMappingURL=portal-offset.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"portal-offset.d.ts","sourceRoot":"","sources":["../../../../../src/components/portal/portal-offset.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,YAAY;IAC3B,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;CACX;AAED,MAAM,MAAM,iBAAiB,GAAG,YAAY,GAAG,IAAI,GAAG,SAAS,CAAC;AAIhE,eAAO,MAAM,mBAAmB,4CAA8C,CAAC;AAE/E,KAAK,qBAAqB,GAAG;IAC3B,KAAK,EAAE,YAAY,CAAC;IACpB,QAAQ,EAAE,OAAO,CAAC;CACnB,CAAC;AAEF,wBAAgB,eAAe,IAAI,qBAAqB,CASvD"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
+
import React from "react";
|
|
1
2
|
import { type PortalHostProps, type PortalProps } from "./portal.constants";
|
|
2
|
-
export declare function PortalHost({ name, container, }: PortalHostProps):
|
|
3
|
-
export declare function Portal({ name, hostName, children, }: PortalProps):
|
|
3
|
+
export declare function PortalHost({ name, container, }: PortalHostProps): React.JSX.Element | null;
|
|
4
|
+
export declare function Portal({ name, hostName, children, }: PortalProps): React.JSX.Element;
|
|
4
5
|
//# sourceMappingURL=portal.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"portal.d.ts","sourceRoot":"","sources":["../../../../../src/components/portal/portal.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"portal.d.ts","sourceRoot":"","sources":["../../../../../src/components/portal/portal.tsx"],"names":[],"mappings":"AAAA,OAAO,KAON,MAAM,OAAO,CAAC;AAGf,OAAO,EAEL,KAAK,eAAe,EACpB,KAAK,WAAW,EACjB,MAAM,oBAAoB,CAAC;AA0F5B,wBAAgB,UAAU,CAAC,EACzB,IAA0B,EAC1B,SAAS,GACV,EAAE,eAAe,4BAcjB;AAED,wBAAgB,MAAM,CAAC,EACrB,IAAI,EACJ,QAA8B,EAC9B,QAAQ,GACT,EAAE,WAAW,qBAYb"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"select-content.d.ts","sourceRoot":"","sources":["../../../../../../src/components/select/components/select-content.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"select-content.d.ts","sourceRoot":"","sources":["../../../../../../src/components/select/components/select-content.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,KAAK,SAAS,EAAQ,KAAK,SAAS,EAAE,MAAM,cAAc,CAAC;AAKpE,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAE3B,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,kBAAkB,KAAK,KAAK,CAAC,YAAY,CAAC;IAE3D,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;CAC9B;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,kBAAkB,qBAkCtD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"default.d.ts","sourceRoot":"","sources":["../../../../../../src/components/textarea/variants/default.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"default.d.ts","sourceRoot":"","sources":["../../../../../../src/components/textarea/variants/default.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,OAAO,CAAC;AAG5C,wBAAgB,yBAAyB,IAAI,cAAc,CAwC1D"}
|
|
@@ -1,10 +1,7 @@
|
|
|
1
1
|
import { type DisplayMetrics, type LayoutRectangle, type ViewStyle } from "react-native";
|
|
2
|
-
import type
|
|
3
|
-
type UseRelativePositionArgs = Omit<GetContentStyleArgs, "
|
|
4
|
-
|
|
5
|
-
contentLayout: LayoutRectangle | null;
|
|
6
|
-
};
|
|
7
|
-
export declare function useRelativePosition({ align, triggerPosition, contentLayout, alignOffset, insets, sideOffset, preferredSide, }: UseRelativePositionArgs): ViewStyle;
|
|
2
|
+
import { type SafeAreaInsets } from "../safe-area";
|
|
3
|
+
type UseRelativePositionArgs = Omit<GetContentStyleArgs, "dimensions" | "insets">;
|
|
4
|
+
export declare function useRelativePosition({ align, triggerPosition, contentLayout, alignOffset, sideOffset, preferredSide, }: UseRelativePositionArgs): ViewStyle;
|
|
8
5
|
export interface LayoutPosition {
|
|
9
6
|
pageY: number;
|
|
10
7
|
pageX: number;
|
|
@@ -15,7 +12,7 @@ interface GetPositionArgs {
|
|
|
15
12
|
dimensions: DisplayMetrics;
|
|
16
13
|
triggerPosition: LayoutPosition;
|
|
17
14
|
contentLayout: LayoutRectangle;
|
|
18
|
-
insets
|
|
15
|
+
insets: SafeAreaInsets;
|
|
19
16
|
}
|
|
20
17
|
interface GetSidePositionArgs extends GetPositionArgs {
|
|
21
18
|
preferredSide: "top" | "bottom";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-relative-position.d.ts","sourceRoot":"","sources":["../../../../src/hooks/use-relative-position.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,KAAK,cAAc,EACnB,KAAK,eAAe,EACpB,KAAK,SAAS,EACf,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"use-relative-position.d.ts","sourceRoot":"","sources":["../../../../src/hooks/use-relative-position.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,KAAK,cAAc,EACnB,KAAK,eAAe,EACpB,KAAK,SAAS,EACf,MAAM,cAAc,CAAC;AAEtB,OAAO,EAAqB,KAAK,cAAc,EAAE,MAAM,cAAc,CAAC;AAEtE,KAAK,uBAAuB,GAAG,IAAI,CACjC,mBAAmB,EACnB,YAAY,GAAG,QAAQ,CACxB,CAAC;AAEF,wBAAgB,mBAAmB,CAAC,EAClC,KAAK,EACL,eAAe,EACf,aAAa,EACb,WAAW,EACX,UAAU,EACV,aAAa,GACd,EAAE,uBAAuB,GAAG,SAAS,CAyDrC;AAED,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,UAAU,eAAe;IACvB,UAAU,EAAE,cAAc,CAAC;IAC3B,eAAe,EAAE,cAAc,CAAC;IAChC,aAAa,EAAE,eAAe,CAAC;IAC/B,MAAM,EAAE,cAAc,CAAC;CACxB;AAED,UAAU,mBAAoB,SAAQ,eAAe;IACnD,aAAa,EAAE,KAAK,GAAG,QAAQ,CAAC;IAChC,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,eAAO,MAAM,cAAc,EAAE,eAK5B,CAAC;AACF,eAAO,MAAM,gBAAgB,EAAE,cAK9B,CAAC;AAgFF,UAAU,oBAAqB,SAAQ,eAAe;IACpD,KAAK,EAAE,OAAO,GAAG,QAAQ,GAAG,KAAK,CAAC;IAClC,WAAW,EAAE,MAAM,CAAC;CACrB;AA0ED,KAAK,mBAAmB,GAAG,eAAe,GACxC,mBAAmB,GACnB,oBAAoB,CAAC"}
|
|
@@ -17,6 +17,9 @@ export interface ComponentsConfig {
|
|
|
17
17
|
toast?: {
|
|
18
18
|
icons?: Partial<Record<keyof typeof ToastVariants, IconComponent>>;
|
|
19
19
|
};
|
|
20
|
+
menu?: {
|
|
21
|
+
selectionIcon?: IconComponent;
|
|
22
|
+
};
|
|
20
23
|
}
|
|
21
24
|
declare const ThemeContext: import("react").Context<ThemeContext | null>;
|
|
22
25
|
export interface ThemeProviderProps extends PropsWithChildren {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../../../../src/themes/provider.tsx"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,iBAAiB,EAIvB,MAAM,OAAO,CAAC;AAEf,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAClE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAEvD,OAAO,KAAK,EACV,MAAM,EACN,WAAW,EACX,UAAU,EACV,QAAQ,EACR,aAAa,EACb,MAAM,EACN,WAAW,EACZ,MAAM,SAAS,CAAC;AAGjB,UAAU,YAAY;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,UAAU,CAAC;IACvB,WAAW,EAAE,WAAW,CAAC;IACzB,aAAa,EAAE,aAAa,CAAC;IAC7B,QAAQ,EAAE,QAAQ,CAAC;IACnB,cAAc,EAAE,CAAC,MAAM,EAAE,WAAW,KAAK,IAAI,CAAC;IAC9C,UAAU,CAAC,EAAE,gBAAgB,CAAC;CAC/B;AAED,MAAM,WAAW,gBAAgB;IAC/B,KAAK,CAAC,EAAE;QACN,KAAK,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,MAAM,OAAO,aAAa,EAAE,aAAa,CAAC,CAAC,CAAC;KACpE,CAAC;CACH;AAED,QAAA,MAAM,YAAY,8CAA2C,CAAC;AAE9D,MAAM,WAAW,kBAAmB,SAAQ,iBAAiB;IAC3D,KAAK,CAAC,EAAE,WAAW,CAAC,WAAW,CAAC,CAAC;IACjC,UAAU,CAAC,EAAE,gBAAgB,CAAC;CAC/B;AAED,eAAO,MAAM,aAAa,GAAI,OAAO,kBAAkB,gCAoCtD,CAAC;AAEF,eAAO,MAAM,QAAQ,oBAMpB,CAAC;AAEF,eAAO,MAAM,mBAAmB,oCAM/B,CAAC"}
|
|
1
|
+
{"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../../../../src/themes/provider.tsx"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,iBAAiB,EAIvB,MAAM,OAAO,CAAC;AAEf,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAClE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAEvD,OAAO,KAAK,EACV,MAAM,EACN,WAAW,EACX,UAAU,EACV,QAAQ,EACR,aAAa,EACb,MAAM,EACN,WAAW,EACZ,MAAM,SAAS,CAAC;AAGjB,UAAU,YAAY;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,UAAU,CAAC;IACvB,WAAW,EAAE,WAAW,CAAC;IACzB,aAAa,EAAE,aAAa,CAAC;IAC7B,QAAQ,EAAE,QAAQ,CAAC;IACnB,cAAc,EAAE,CAAC,MAAM,EAAE,WAAW,KAAK,IAAI,CAAC;IAC9C,UAAU,CAAC,EAAE,gBAAgB,CAAC;CAC/B;AAED,MAAM,WAAW,gBAAgB;IAC/B,KAAK,CAAC,EAAE;QACN,KAAK,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,MAAM,OAAO,aAAa,EAAE,aAAa,CAAC,CAAC,CAAC;KACpE,CAAC;IACF,IAAI,CAAC,EAAE;QACL,aAAa,CAAC,EAAE,aAAa,CAAC;KAC/B,CAAC;CACH;AAED,QAAA,MAAM,YAAY,8CAA2C,CAAC;AAE9D,MAAM,WAAW,kBAAmB,SAAQ,iBAAiB;IAC3D,KAAK,CAAC,EAAE,WAAW,CAAC,WAAW,CAAC,CAAC;IACjC,UAAU,CAAC,EAAE,gBAAgB,CAAC;CAC/B;AAED,eAAO,MAAM,aAAa,GAAI,OAAO,kBAAkB,gCAoCtD,CAAC;AAEF,eAAO,MAAM,QAAQ,oBAMpB,CAAC;AAEF,eAAO,MAAM,mBAAmB,oCAM/B,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import React, { useState } from "react";
|
|
2
|
-
import { Pressable,
|
|
2
|
+
import { Pressable, type StyleProp, type ViewStyle } from "react-native";
|
|
3
3
|
import { useMenu } from "../context";
|
|
4
4
|
import type { MenuCheckboxItemState } from "../types";
|
|
5
5
|
import { useOrganizedChildren } from "../use-organized-children";
|
|
6
|
+
import { MenuSelectionIndicator } from "./menu-selection-indicator";
|
|
6
7
|
|
|
7
8
|
export interface MenuCheckboxItemProps {
|
|
8
9
|
children: React.ReactNode;
|
|
@@ -66,9 +67,7 @@ export function MenuCheckboxItem(props: MenuCheckboxItemProps) {
|
|
|
66
67
|
style={composedStyle}
|
|
67
68
|
>
|
|
68
69
|
{organizedChildren}
|
|
69
|
-
<
|
|
70
|
-
{props.checked ? "✓" : " "}
|
|
71
|
-
</Text>
|
|
70
|
+
<MenuSelectionIndicator isSelected={props.checked} />
|
|
72
71
|
</Pressable>
|
|
73
72
|
);
|
|
74
73
|
}
|
|
@@ -20,7 +20,7 @@ export function MenuContent(props: MenuContentProps) {
|
|
|
20
20
|
contentLayout: menu.contentLayout,
|
|
21
21
|
alignOffset: 0,
|
|
22
22
|
preferredSide: "bottom",
|
|
23
|
-
sideOffset:
|
|
23
|
+
sideOffset: 2,
|
|
24
24
|
});
|
|
25
25
|
|
|
26
26
|
const composedStyle = [positionStyle, menu.styles?.content, props.style];
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import React, { useState } from "react";
|
|
2
|
-
import { Pressable,
|
|
2
|
+
import { Pressable, type StyleProp, type ViewStyle } from "react-native";
|
|
3
3
|
import { useMenu, useMenuRadioGroup } from "../context";
|
|
4
4
|
import type { MenuRadioItemState } from "../types";
|
|
5
5
|
import { useOrganizedChildren } from "../use-organized-children";
|
|
6
|
+
import { MenuSelectionIndicator } from "./menu-selection-indicator";
|
|
6
7
|
|
|
7
8
|
export interface MenuRadioItemProps {
|
|
8
9
|
children: React.ReactNode;
|
|
@@ -37,11 +38,6 @@ export function MenuRadioItem(props: MenuRadioItemProps) {
|
|
|
37
38
|
props.style,
|
|
38
39
|
];
|
|
39
40
|
|
|
40
|
-
const indicatorStyle = [
|
|
41
|
-
menu.styles?.radioIndicator?.default,
|
|
42
|
-
isSelected ? menu.styles?.radioIndicator?.selected : undefined,
|
|
43
|
-
];
|
|
44
|
-
|
|
45
41
|
const handlePress = () => {
|
|
46
42
|
if (props.disabled) return;
|
|
47
43
|
radioGroup.onValueChange(props.value);
|
|
@@ -74,7 +70,7 @@ export function MenuRadioItem(props: MenuRadioItemProps) {
|
|
|
74
70
|
style={composedStyle}
|
|
75
71
|
>
|
|
76
72
|
{organizedChildren}
|
|
77
|
-
<
|
|
73
|
+
<MenuSelectionIndicator isSelected={isSelected} />
|
|
78
74
|
</Pressable>
|
|
79
75
|
);
|
|
80
76
|
}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import { Text, View } from "react-native";
|
|
3
|
+
import { useComponentsConfig } from "../../../themes";
|
|
4
|
+
import { useMenu } from "../context";
|
|
5
|
+
|
|
6
|
+
interface MenuSelectionIndicatorProps {
|
|
7
|
+
isSelected: boolean;
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
export function MenuSelectionIndicator({
|
|
11
|
+
isSelected,
|
|
12
|
+
}: MenuSelectionIndicatorProps) {
|
|
13
|
+
const config = useComponentsConfig();
|
|
14
|
+
const menu = useMenu();
|
|
15
|
+
const SelectionIcon = config?.menu?.selectionIcon;
|
|
16
|
+
|
|
17
|
+
if (!isSelected) {
|
|
18
|
+
return <View style={menu.styles?.selectionIndicator} />;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
if (SelectionIcon) {
|
|
22
|
+
return <SelectionIcon {...menu.styles?.selectionIndicator} />;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
return <Text style={menu.styles?.selectionIndicator}>✓</Text>;
|
|
26
|
+
}
|
|
@@ -11,8 +11,6 @@ export type MenuRadioItemState =
|
|
|
11
11
|
| "selected"
|
|
12
12
|
| "disabled";
|
|
13
13
|
|
|
14
|
-
export type MenuRadioIndicatorState = "default" | "selected";
|
|
15
|
-
|
|
16
14
|
export interface MenuStyles {
|
|
17
15
|
content?: MenuContentProps["style"];
|
|
18
16
|
item?: Partial<Record<MenuButtonState, StyleProp<ViewStyle>>>;
|
|
@@ -24,11 +22,8 @@ export interface MenuStyles {
|
|
|
24
22
|
label?: StyleProp<TextStyle>;
|
|
25
23
|
separator?: StyleProp<ViewStyle>;
|
|
26
24
|
checkboxItem?: Partial<Record<MenuCheckboxItemState, StyleProp<ViewStyle>>>;
|
|
27
|
-
|
|
25
|
+
selectionIndicator?: TextStyle & SvgProps;
|
|
28
26
|
radioGroup?: StyleProp<ViewStyle>;
|
|
29
27
|
radioItem?: Partial<Record<MenuRadioItemState, StyleProp<ViewStyle>>>;
|
|
30
|
-
radioIndicator?: Partial<
|
|
31
|
-
Record<MenuRadioIndicatorState, StyleProp<ViewStyle>>
|
|
32
|
-
>;
|
|
33
28
|
shortcut?: StyleProp<TextStyle>;
|
|
34
29
|
}
|
|
@@ -67,13 +67,16 @@ export const useMenuVariantDefault = (): MenuStyles => {
|
|
|
67
67
|
opacity: 0.5,
|
|
68
68
|
},
|
|
69
69
|
},
|
|
70
|
-
|
|
71
|
-
fontSize: fontSize * 0.75,
|
|
72
|
-
fontWeight: "bold",
|
|
70
|
+
selectionIndicator: {
|
|
73
71
|
color: colors.foreground,
|
|
72
|
+
fontSize: fontSize,
|
|
74
73
|
width: fontSize,
|
|
75
|
-
|
|
74
|
+
size: fontSize,
|
|
75
|
+
strokeWidth: 2,
|
|
76
76
|
marginLeft: "auto",
|
|
77
|
+
style: {
|
|
78
|
+
marginLeft: "auto",
|
|
79
|
+
},
|
|
77
80
|
},
|
|
78
81
|
radioItem: {
|
|
79
82
|
default: {
|
|
@@ -90,18 +93,6 @@ export const useMenuVariantDefault = (): MenuStyles => {
|
|
|
90
93
|
opacity: 0.5,
|
|
91
94
|
},
|
|
92
95
|
},
|
|
93
|
-
radioIndicator: {
|
|
94
|
-
default: {
|
|
95
|
-
width: 8,
|
|
96
|
-
height: 8,
|
|
97
|
-
borderRadius: 4,
|
|
98
|
-
backgroundColor: "transparent",
|
|
99
|
-
marginLeft: "auto",
|
|
100
|
-
},
|
|
101
|
-
selected: {
|
|
102
|
-
backgroundColor: colors.foreground,
|
|
103
|
-
},
|
|
104
|
-
},
|
|
105
96
|
shortcut: {
|
|
106
97
|
fontSize: fontSize * 0.75,
|
|
107
98
|
fontFamily: fontFamily,
|
|
@@ -1,7 +1,6 @@
|
|
|
1
|
-
import { useRelativePosition } from "../../../hooks/use-relative-position";
|
|
2
|
-
import { useSafeAreaInsets } from "../../../safe-area";
|
|
3
1
|
import React from "react";
|
|
4
2
|
import { type StyleProp, View, type ViewStyle } from "react-native";
|
|
3
|
+
import { useRelativePosition } from "../../../hooks/use-relative-position";
|
|
5
4
|
import { usePopover } from "../context";
|
|
6
5
|
|
|
7
6
|
export interface PopoverContentProps {
|
|
@@ -14,7 +13,6 @@ export interface PopoverContentProps {
|
|
|
14
13
|
|
|
15
14
|
export function PopoverContent(props: PopoverContentProps) {
|
|
16
15
|
const popover = usePopover();
|
|
17
|
-
const insets = useSafeAreaInsets();
|
|
18
16
|
|
|
19
17
|
const positionStyle = useRelativePosition({
|
|
20
18
|
align: "start",
|
|
@@ -23,7 +21,6 @@ export function PopoverContent(props: PopoverContentProps) {
|
|
|
23
21
|
alignOffset: 0,
|
|
24
22
|
preferredSide: "bottom",
|
|
25
23
|
sideOffset: 0,
|
|
26
|
-
insets,
|
|
27
24
|
});
|
|
28
25
|
|
|
29
26
|
const composedStyle = [positionStyle, popover.styles?.content, props.style];
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { createContext, useContext } from "react";
|
|
2
|
+
|
|
3
|
+
export interface PortalOffset {
|
|
4
|
+
x: number;
|
|
5
|
+
y: number;
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
export type PortalOffsetValue = PortalOffset | null | undefined;
|
|
9
|
+
|
|
10
|
+
// null means the offset is not measure yet but will be
|
|
11
|
+
// undefined means the offset is not available and will never be (e.g. on web or ios when FullWindowOverlay is used)
|
|
12
|
+
export const PortalOffsetContext = createContext<PortalOffsetValue>(undefined);
|
|
13
|
+
|
|
14
|
+
type UsePortalOffsetReturn = {
|
|
15
|
+
value: PortalOffset;
|
|
16
|
+
isLoaded: boolean;
|
|
17
|
+
};
|
|
18
|
+
|
|
19
|
+
export function usePortalOffset(): UsePortalOffsetReturn {
|
|
20
|
+
const value = useContext(PortalOffsetContext);
|
|
21
|
+
if (value === undefined) {
|
|
22
|
+
return { value: { x: 0, y: 0 }, isLoaded: true };
|
|
23
|
+
}
|
|
24
|
+
if (value === null) {
|
|
25
|
+
return { value: { x: 0, y: 0 }, isLoaded: false };
|
|
26
|
+
}
|
|
27
|
+
return { value, isLoaded: true };
|
|
28
|
+
}
|
|
@@ -1,5 +1,13 @@
|
|
|
1
|
-
import
|
|
2
|
-
|
|
1
|
+
import React, {
|
|
2
|
+
useCallback,
|
|
3
|
+
useEffect,
|
|
4
|
+
useMemo,
|
|
5
|
+
useRef,
|
|
6
|
+
useState,
|
|
7
|
+
useSyncExternalStore,
|
|
8
|
+
} from "react";
|
|
9
|
+
import { Platform, View, type HostInstance } from "react-native";
|
|
10
|
+
import { PortalOffsetContext, type PortalOffset } from "./portal-offset";
|
|
3
11
|
import {
|
|
4
12
|
DEFAULT_PORTAL_HOST,
|
|
5
13
|
type PortalHostProps,
|
|
@@ -59,33 +67,57 @@ function removePortal(hostName: string, name: string) {
|
|
|
59
67
|
emit();
|
|
60
68
|
}
|
|
61
69
|
|
|
70
|
+
function DefaultContainer(props: React.PropsWithChildren) {
|
|
71
|
+
const containerRef = useRef<HostInstance>(null);
|
|
72
|
+
const [offset, setOffset] = useState<PortalOffset | null>(null);
|
|
73
|
+
|
|
74
|
+
const onLayout = useCallback(() => {
|
|
75
|
+
containerRef.current?.measureInWindow((pageX: number, pageY: number) => {
|
|
76
|
+
setOffset((prev) => {
|
|
77
|
+
if (prev?.x === pageX && prev?.y === pageY) return prev;
|
|
78
|
+
return { x: pageX, y: pageY };
|
|
79
|
+
});
|
|
80
|
+
});
|
|
81
|
+
}, []);
|
|
82
|
+
|
|
83
|
+
return (
|
|
84
|
+
<View
|
|
85
|
+
ref={containerRef}
|
|
86
|
+
onLayout={onLayout}
|
|
87
|
+
style={{
|
|
88
|
+
position: "absolute",
|
|
89
|
+
top: 0,
|
|
90
|
+
left: 0,
|
|
91
|
+
right: 0,
|
|
92
|
+
bottom: 0,
|
|
93
|
+
elevation: 999,
|
|
94
|
+
zIndex: 999,
|
|
95
|
+
pointerEvents: "box-none",
|
|
96
|
+
}}
|
|
97
|
+
>
|
|
98
|
+
<PortalOffsetContext.Provider value={offset}>
|
|
99
|
+
{props.children}
|
|
100
|
+
</PortalOffsetContext.Provider>
|
|
101
|
+
</View>
|
|
102
|
+
);
|
|
103
|
+
}
|
|
104
|
+
|
|
62
105
|
export function PortalHost({
|
|
63
106
|
name = DEFAULT_PORTAL_HOST,
|
|
64
107
|
container,
|
|
65
108
|
}: PortalHostProps) {
|
|
66
109
|
const map = useSyncExternalStore(subscribe, getSnapshot, getSnapshot);
|
|
67
110
|
const portalMap = map.get(name) ?? new Map<string, React.ReactNode>();
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
top: 0,
|
|
77
|
-
left: 0,
|
|
78
|
-
right: 0,
|
|
79
|
-
bottom: 0,
|
|
80
|
-
elevation: 999,
|
|
81
|
-
zIndex: 999,
|
|
82
|
-
pointerEvents: "box-none",
|
|
83
|
-
}}
|
|
84
|
-
/>
|
|
85
|
-
),
|
|
86
|
-
...container,
|
|
87
|
-
});
|
|
111
|
+
const Container = useMemo(
|
|
112
|
+
() =>
|
|
113
|
+
Platform.select({
|
|
114
|
+
default: DefaultContainer,
|
|
115
|
+
...container,
|
|
116
|
+
}),
|
|
117
|
+
[container],
|
|
118
|
+
);
|
|
88
119
|
|
|
120
|
+
if (portalMap.size === 0) return null;
|
|
89
121
|
return <Container>{Array.from(portalMap.values())}</Container>;
|
|
90
122
|
}
|
|
91
123
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { useRelativePosition } from "../../../hooks/use-relative-position";
|
|
2
|
-
import { calculateComposedStyles } from "../../../utils/calculate-styles";
|
|
3
1
|
import React from "react";
|
|
4
2
|
import { type StyleProp, View, type ViewStyle } from "react-native";
|
|
3
|
+
import { useRelativePosition } from "../../../hooks/use-relative-position";
|
|
4
|
+
import { calculateComposedStyles } from "../../../utils/calculate-styles";
|
|
5
5
|
import { useSelect } from "../context";
|
|
6
6
|
|
|
7
7
|
export interface SelectContentProps {
|
|
@@ -14,7 +14,12 @@ export interface SelectContentProps {
|
|
|
14
14
|
|
|
15
15
|
export function SelectContent(props: SelectContentProps) {
|
|
16
16
|
const select = useSelect();
|
|
17
|
-
const composedStyles = calculateComposedStyles(
|
|
17
|
+
const composedStyles = calculateComposedStyles(
|
|
18
|
+
select.styles,
|
|
19
|
+
select.state,
|
|
20
|
+
"content",
|
|
21
|
+
props.style,
|
|
22
|
+
);
|
|
18
23
|
|
|
19
24
|
const positionStyle = useRelativePosition({
|
|
20
25
|
align: "start",
|
|
@@ -22,13 +27,17 @@ export function SelectContent(props: SelectContentProps) {
|
|
|
22
27
|
contentLayout: select.contentLayout,
|
|
23
28
|
alignOffset: 0,
|
|
24
29
|
preferredSide: "bottom",
|
|
25
|
-
sideOffset:
|
|
30
|
+
sideOffset: 2,
|
|
26
31
|
});
|
|
27
32
|
|
|
28
33
|
const Component = props.render ?? View;
|
|
29
34
|
return (
|
|
30
35
|
<Component
|
|
31
|
-
style={[
|
|
36
|
+
style={[
|
|
37
|
+
positionStyle,
|
|
38
|
+
composedStyles,
|
|
39
|
+
{ width: select.triggerPosition.width },
|
|
40
|
+
]}
|
|
32
41
|
onLayout={(e) => {
|
|
33
42
|
select.setContentLayout(e.nativeEvent.layout);
|
|
34
43
|
}}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { Platform } from "react-native";
|
|
1
2
|
import { type TextareaStyles } from "../..";
|
|
2
3
|
import { useThemedStyles } from "../../../utils/use-themed-styles";
|
|
3
4
|
|
|
@@ -15,6 +16,12 @@ export function useTextareaVariantDefault(): TextareaStyles {
|
|
|
15
16
|
paddingVertical: 12,
|
|
16
17
|
paddingHorizontal: 16,
|
|
17
18
|
outlineWidth: 0,
|
|
19
|
+
...Platform.select({
|
|
20
|
+
default: {},
|
|
21
|
+
web: {
|
|
22
|
+
outline: "none",
|
|
23
|
+
},
|
|
24
|
+
}),
|
|
18
25
|
fontFamily,
|
|
19
26
|
fontSize,
|
|
20
27
|
minHeight: 120,
|