react-native-roster 0.0.1 → 0.2.0

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 (122) hide show
  1. package/README.md +209 -32
  2. package/dist/src/components/primitives/portal.d.ts +12 -0
  3. package/dist/src/components/primitives/portal.d.ts.map +1 -0
  4. package/dist/src/components/primitives/portal.js +41 -0
  5. package/dist/src/components/primitives/portal.js.map +1 -0
  6. package/dist/src/components/roster/body-layout.d.ts +9 -0
  7. package/dist/src/components/roster/body-layout.d.ts.map +1 -0
  8. package/dist/src/components/roster/body-layout.js +15 -0
  9. package/dist/src/components/roster/body-layout.js.map +1 -0
  10. package/dist/src/components/roster/index.d.ts +2 -1
  11. package/dist/src/components/roster/index.d.ts.map +1 -1
  12. package/dist/src/components/roster/index.js +34 -27
  13. package/dist/src/components/roster/index.js.map +1 -1
  14. package/dist/src/components/roster/lanes/lane.d.ts +2 -2
  15. package/dist/src/components/roster/lanes/lane.d.ts.map +1 -1
  16. package/dist/src/components/roster/lanes/lane.js +4 -8
  17. package/dist/src/components/roster/lanes/lane.js.map +1 -1
  18. package/dist/src/components/roster/parts/body.d.ts +3 -3
  19. package/dist/src/components/roster/parts/body.d.ts.map +1 -1
  20. package/dist/src/components/roster/parts/body.js +5 -20
  21. package/dist/src/components/roster/parts/body.js.map +1 -1
  22. package/dist/src/components/roster/parts/header-cell.d.ts +2 -4
  23. package/dist/src/components/roster/parts/header-cell.d.ts.map +1 -1
  24. package/dist/src/components/roster/parts/header-cell.js.map +1 -1
  25. package/dist/src/components/roster/parts/header.d.ts +1 -1
  26. package/dist/src/components/roster/parts/header.d.ts.map +1 -1
  27. package/dist/src/components/roster/parts/header.js +2 -2
  28. package/dist/src/components/roster/parts/header.js.map +1 -1
  29. package/dist/src/components/roster/parts/lane-label-column.d.ts +1 -1
  30. package/dist/src/components/roster/parts/lane-label-column.d.ts.map +1 -1
  31. package/dist/src/components/roster/parts/lane-label-column.js +2 -2
  32. package/dist/src/components/roster/parts/lane-label-column.js.map +1 -1
  33. package/dist/src/components/roster/parts/lane-list.d.ts +7 -0
  34. package/dist/src/components/roster/parts/lane-list.d.ts.map +1 -0
  35. package/dist/src/components/roster/parts/lane-list.js +26 -0
  36. package/dist/src/components/roster/parts/lane-list.js.map +1 -0
  37. package/dist/src/components/roster/roster.types.d.ts +48 -21
  38. package/dist/src/components/roster/roster.types.d.ts.map +1 -1
  39. package/dist/src/components/roster/selection/selection-layout.d.ts +4 -0
  40. package/dist/src/components/roster/selection/selection-layout.d.ts.map +1 -0
  41. package/dist/src/components/roster/selection/selection-layout.js +82 -0
  42. package/dist/src/components/roster/selection/selection-layout.js.map +1 -0
  43. package/dist/src/components/roster/selection/selection-layout.types.d.ts +25 -0
  44. package/dist/src/components/roster/selection/selection-layout.types.d.ts.map +1 -0
  45. package/dist/src/components/roster/selection/selection-layout.types.js +3 -0
  46. package/dist/src/components/roster/selection/selection-layout.types.js.map +1 -0
  47. package/dist/src/components/roster/selection/selection-layout.web.d.ts +4 -0
  48. package/dist/src/components/roster/selection/selection-layout.web.d.ts.map +1 -0
  49. package/dist/src/components/roster/selection/selection-layout.web.js +52 -0
  50. package/dist/src/components/roster/selection/selection-layout.web.js.map +1 -0
  51. package/dist/src/components/roster/use-roster-press.d.ts +6 -0
  52. package/dist/src/components/roster/use-roster-press.d.ts.map +1 -0
  53. package/dist/src/components/roster/use-roster-press.js +61 -0
  54. package/dist/src/components/roster/use-roster-press.js.map +1 -0
  55. package/dist/src/components/roster/use-roster.d.ts.map +1 -1
  56. package/dist/src/components/roster/use-roster.js +40 -30
  57. package/dist/src/components/roster/use-roster.js.map +1 -1
  58. package/dist/src/components/roster/utils/body-content-key.d.ts +1 -1
  59. package/dist/src/components/roster/utils/body-content-key.d.ts.map +1 -1
  60. package/dist/src/components/roster/utils/body-content-key.js +10 -10
  61. package/dist/src/components/roster/utils/body-content-key.js.map +1 -1
  62. package/dist/src/components/schedule/days/day.d.ts +2 -2
  63. package/dist/src/components/schedule/days/day.d.ts.map +1 -1
  64. package/dist/src/components/schedule/days/day.js +2 -11
  65. package/dist/src/components/schedule/days/day.js.map +1 -1
  66. package/dist/src/components/schedule/days/header-layout.d.ts +1 -1
  67. package/dist/src/components/schedule/days/header-layout.d.ts.map +1 -1
  68. package/dist/src/components/schedule/days/parts/column.d.ts +1 -1
  69. package/dist/src/components/schedule/days/parts/column.d.ts.map +1 -1
  70. package/dist/src/components/schedule/days/parts/column.js +4 -8
  71. package/dist/src/components/schedule/days/parts/column.js.map +1 -1
  72. package/dist/src/components/schedule/index.d.ts.map +1 -1
  73. package/dist/src/components/schedule/index.js +7 -8
  74. package/dist/src/components/schedule/index.js.map +1 -1
  75. package/dist/src/components/schedule/schedule.types.d.ts +17 -17
  76. package/dist/src/components/schedule/schedule.types.d.ts.map +1 -1
  77. package/dist/src/core/index.d.ts +1 -0
  78. package/dist/src/core/index.d.ts.map +1 -1
  79. package/dist/src/core/index.js +3 -1
  80. package/dist/src/core/index.js.map +1 -1
  81. package/dist/src/core/source.d.ts +4 -0
  82. package/dist/src/core/source.d.ts.map +1 -0
  83. package/dist/src/core/source.js +9 -0
  84. package/dist/src/core/source.js.map +1 -0
  85. package/dist/src/index.d.ts +6 -1
  86. package/dist/src/index.d.ts.map +1 -1
  87. package/dist/src/index.js +10 -1
  88. package/dist/src/index.js.map +1 -1
  89. package/dist/src/nativewind/index.d.ts +28 -27
  90. package/dist/src/nativewind/index.d.ts.map +1 -1
  91. package/docs/migrations.md +61 -0
  92. package/llms.txt +112 -30
  93. package/package.json +12 -5
  94. package/src/components/layers/README.md +7 -3
  95. package/src/components/primitives/README.md +13 -2
  96. package/src/components/primitives/portal.tsx +48 -0
  97. package/src/components/roster/README.md +62 -5
  98. package/src/components/roster/body-layout.tsx +38 -0
  99. package/src/components/roster/index.tsx +109 -46
  100. package/src/components/roster/lanes/lane.tsx +16 -13
  101. package/src/components/roster/parts/body.tsx +17 -84
  102. package/src/components/roster/parts/header-cell.tsx +2 -2
  103. package/src/components/roster/parts/header.tsx +7 -2
  104. package/src/components/roster/parts/lane-label-column.tsx +2 -2
  105. package/src/components/roster/parts/lane-list.tsx +76 -0
  106. package/src/components/roster/roster.types.ts +47 -17
  107. package/src/components/roster/selection/selection-layout.tsx +90 -0
  108. package/src/components/roster/selection/selection-layout.types.ts +20 -0
  109. package/src/components/roster/selection/selection-layout.web.tsx +88 -0
  110. package/src/components/roster/use-roster-press.ts +74 -0
  111. package/src/components/roster/use-roster.ts +57 -44
  112. package/src/components/roster/utils/body-content-key.ts +13 -13
  113. package/src/components/schedule/README.md +8 -3
  114. package/src/components/schedule/days/day.tsx +31 -18
  115. package/src/components/schedule/days/header-layout.tsx +1 -1
  116. package/src/components/schedule/days/parts/column.tsx +10 -12
  117. package/src/components/schedule/index.tsx +20 -21
  118. package/src/components/schedule/schedule.types.ts +13 -13
  119. package/src/core/README.md +4 -0
  120. package/src/core/index.ts +1 -0
  121. package/src/core/source.ts +9 -0
  122. package/src/index.ts +7 -0
@@ -1 +1 @@
1
- {"version":3,"file":"body.d.ts","sourceRoot":"","sources":["../../../../../src/components/roster/parts/body.tsx"],"names":[],"mappings":"AACA,OAAO,EAAY,KAAK,wBAAwB,EAAE,MAAM,OAAO,CAAC;AAGhE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAGjD,wBAAgB,UAAU,CAAC,EACzB,KAAK,EACL,WAAW,EACX,UAAU,EACV,MAAM,EACN,KAAK,EACL,KAAK,EACL,YAAY,EACZ,QAAQ,EACR,MAAM,EACN,YAAY,EACZ,OAAO,EACP,QAAQ,EACR,eAAe,EACf,eAAe,EACf,eAAe,EACf,WAAW,GACZ,EAAE,SAAS,GAAG;IACb,0FAA0F;IAC1F,WAAW,CAAC,EAAE,wBAAwB,CAAC;CACxC,kDA+DA"}
1
+ {"version":3,"file":"body.d.ts","sourceRoot":"","sources":["../../../../../src/components/roster/parts/body.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,OAAO,CAAC;AAEtD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAGjD,wBAAgB,UAAU,CACxB,KAAK,EAAE,SAAS,GAAG;IACjB,+FAA+F;IAC/F,WAAW,CAAC,EAAE,wBAAwB,CAAC;CACxC,kDAcF"}
@@ -2,28 +2,13 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.RosterBody = RosterBody;
4
4
  const jsx_runtime_1 = require("react/jsx-runtime");
5
- const list_1 = require("@legendapp/list");
6
- const react_1 = require("react");
7
- const react_native_1 = require("react-native");
8
- const lane_1 = require("../lanes/lane");
9
- const body_content_key_1 = require("../utils/body-content-key");
10
- function RosterBody({ lanes, geometryFor, projection, scroll, press, ticks, contentWidth, viewport, window, intervalZone, gapZone, gridZone, highlightSource, onIntervalHover, incompleteLabel, onRowRender, }) {
5
+ const body_layout_1 = require("../body-layout");
6
+ const lane_list_1 = require("./lane-list");
7
+ function RosterBody(props) {
8
+ const { viewport, scroll, contentWidth, ticks, gridComponent: GridComponent } = props;
11
9
  // LegendList requires a measured viewport and does not support static rendering.
12
10
  if (viewport.width <= 0 || viewport.height <= 0)
13
11
  return null;
14
- return ((0, jsx_runtime_1.jsx)(react_native_1.ScrollView, { testID: "roster-horizontal-scroll", ref: scroll.bodyRef, horizontal: true, onScroll: scroll.onBodyScroll, scrollEventThrottle: 16, style: { flex: 1 }, children: (0, jsx_runtime_1.jsxs)(react_native_1.View, { style: { width: contentWidth, height: viewport.height }, children: [gridZone({ ticks, contentWidth }), (0, jsx_runtime_1.jsx)(list_1.LegendList, { testID: "roster-vertical-scroll", data: lanes, extraData: (0, body_content_key_1.bodyContentKey)({
15
- window,
16
- projection,
17
- highlightSource,
18
- intervalZone,
19
- gapZone,
20
- onIntervalHover,
21
- incompleteLabel,
22
- }), keyExtractor: (lane) => lane.id, estimatedListSize: { width: contentWidth, height: viewport.height }, estimatedItemSize: projection.rowHeight, getFixedItemSize: () => projection.rowHeight, drawDistance: 0, recycleItems: false, maintainVisibleContentPosition: false, onScroll: scroll.onVerticalScroll, scrollEventThrottle: 16, style: { flex: 1 }, renderItem: ({ item }) => {
23
- const row = ((0, jsx_runtime_1.jsx)(lane_1.LaneRow, { lane: item, geometry: geometryFor(item), width: contentWidth, rowHeight: projection.rowHeight, press: press, intervalZone: intervalZone, gapZone: gapZone, highlightSource: highlightSource, onIntervalHover: onIntervalHover, incompleteLabel: incompleteLabel }));
24
- if (onRowRender)
25
- return ((0, jsx_runtime_1.jsx)(react_1.Profiler, { id: item.id, onRender: onRowRender, children: row }));
26
- return row;
27
- } })] }) }));
12
+ return ((0, jsx_runtime_1.jsx)(body_layout_1.RosterBodyLayout, { scroll: scroll, contentWidth: contentWidth, viewport: viewport, gridZone: (0, jsx_runtime_1.jsx)(GridComponent, { ticks: ticks, contentWidth: contentWidth }), listZone: (0, jsx_runtime_1.jsx)(lane_list_1.RosterLaneList, { ...props }) }));
28
13
  }
29
14
  //# sourceMappingURL=body.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"body.js","sourceRoot":"","sources":["../../../../../src/components/roster/parts/body.tsx"],"names":[],"mappings":";;;;AAAA,0CAA6C;AAC7C,iCAAgE;AAChE,+CAAgD;AAChD,wCAAwC;AAExC,gEAA2D;AAE3D,oBAA2B,EACzB,KAAK,EACL,WAAW,EACX,UAAU,EACV,MAAM,EACN,KAAK,EACL,KAAK,EACL,YAAY,EACZ,QAAQ,EACR,MAAM,EACN,YAAY,EACZ,OAAO,EACP,QAAQ,EACR,eAAe,EACf,eAAe,EACf,eAAe,EACf,WAAW,GAIZ;IACC,iFAAiF;IACjF,IAAI,QAAQ,CAAC,KAAK,IAAI,CAAC,IAAI,QAAQ,CAAC,MAAM,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IAC7D,OAAO,CACL,uBAAC,yBAAU,IACT,MAAM,EAAC,0BAA0B,EACjC,GAAG,EAAE,MAAM,CAAC,OAAO,EACnB,UAAU,QACV,QAAQ,EAAE,MAAM,CAAC,YAAY,EAC7B,mBAAmB,EAAE,EAAE,EACvB,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,YAElB,wBAAC,mBAAI,IAAC,KAAK,EAAE,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,aAC1D,QAAQ,CAAC,EAAE,KAAK,EAAE,YAAY,EAAE,CAAC,EAClC,uBAAC,iBAAU,IACT,MAAM,EAAC,wBAAwB,EAC/B,IAAI,EAAE,KAAK,EACX,SAAS,EAAE,IAAA,iCAAc,EAAC;wBACxB,MAAM;wBACN,UAAU;wBACV,eAAe;wBACf,YAAY;wBACZ,OAAO;wBACP,eAAe;wBACf,eAAe;qBAChB,CAAC,EACF,YAAY,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,EAC/B,iBAAiB,EAAE,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,EACnE,iBAAiB,EAAE,UAAU,CAAC,SAAS,EACvC,gBAAgB,EAAE,GAAG,EAAE,CAAC,UAAU,CAAC,SAAS,EAC5C,YAAY,EAAE,CAAC,EACf,YAAY,EAAE,KAAK,EACnB,8BAA8B,EAAE,KAAK,EACrC,QAAQ,EAAE,MAAM,CAAC,gBAAgB,EACjC,mBAAmB,EAAE,EAAE,EACvB,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,EAClB,UAAU,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE;wBACvB,MAAM,GAAG,GAAG,CACV,uBAAC,cAAO,IACN,IAAI,EAAE,IAAI,EACV,QAAQ,EAAE,WAAW,CAAC,IAAI,CAAC,EAC3B,KAAK,EAAE,YAAY,EACnB,SAAS,EAAE,UAAU,CAAC,SAAS,EAC/B,KAAK,EAAE,KAAK,EACZ,YAAY,EAAE,YAAY,EAC1B,OAAO,EAAE,OAAO,EAChB,eAAe,EAAE,eAAe,EAChC,eAAe,EAAE,eAAe,EAChC,eAAe,EAAE,eAAe,GAChC,CACH,CAAC;wBACF,IAAI,WAAW;4BACb,OAAO,CACL,uBAAC,gBAAQ,IAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,QAAQ,EAAE,WAAW,YACzC,GAAG,GACK,CACZ,CAAC;wBACJ,OAAO,GAAG,CAAC;oBACb,CAAC,GACD,IACG,GACI,CACd,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"body.js","sourceRoot":"","sources":["../../../../../src/components/roster/parts/body.tsx"],"names":[],"mappings":";;;;AACA,gDAAkD;AAElD,2CAA6C;AAE7C,oBACE,KAGC;IAED,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,YAAY,EAAE,KAAK,EAAE,aAAa,EAAE,aAAa,EAAE,GAAG,KAAK,CAAC;IACtF,iFAAiF;IACjF,IAAI,QAAQ,CAAC,KAAK,IAAI,CAAC,IAAI,QAAQ,CAAC,MAAM,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IAC7D,OAAO,CACL,uBAAC,8BAAgB,IACf,MAAM,EAAE,MAAM,EACd,YAAY,EAAE,YAAY,EAC1B,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE,uBAAC,aAAa,IAAC,KAAK,EAAE,KAAK,EAAE,YAAY,EAAE,YAAY,GAAI,EACrE,QAAQ,EAAE,uBAAC,0BAAc,OAAK,KAAK,GAAI,GACvC,CACH,CAAC;AACJ,CAAC"}
@@ -1,5 +1,3 @@
1
- import type { RosterTick } from '../roster.types';
2
- export declare function RosterHeaderCell({ tick }: {
3
- tick: RosterTick;
4
- }): import("react/jsx-runtime").JSX.Element;
1
+ import type { HeaderCellInput } from '../roster.types';
2
+ export declare function RosterHeaderCell({ tick }: HeaderCellInput): import("react/jsx-runtime").JSX.Element;
5
3
  //# sourceMappingURL=header-cell.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"header-cell.d.ts","sourceRoot":"","sources":["../../../../../src/components/roster/parts/header-cell.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAElD,wBAAgB,gBAAgB,CAAC,EAAE,IAAI,EAAE,EAAE;IAAE,IAAI,EAAE,UAAU,CAAA;CAAE,2CAM9D"}
1
+ {"version":3,"file":"header-cell.d.ts","sourceRoot":"","sources":["../../../../../src/components/roster/parts/header-cell.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAEvD,wBAAgB,gBAAgB,CAAC,EAAE,IAAI,EAAE,EAAE,eAAe,2CAMzD"}
@@ -1 +1 @@
1
- {"version":3,"file":"header-cell.js","sourceRoot":"","sources":["../../../../../src/components/roster/parts/header-cell.tsx"],"names":[],"mappings":";;;;AAAA,+CAAoC;AAGpC,0BAAiC,EAAE,IAAI,EAAwB;IAC7D,OAAO,CACL,uBAAC,mBAAI,IAAC,aAAa,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,YAC1E,IAAI,CAAC,KAAK,GACN,CACR,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"header-cell.js","sourceRoot":"","sources":["../../../../../src/components/roster/parts/header-cell.tsx"],"names":[],"mappings":";;;;AAAA,+CAAoC;AAGpC,0BAAiC,EAAE,IAAI,EAAmB;IACxD,OAAO,CACL,uBAAC,mBAAI,IAAC,aAAa,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,YAC1E,IAAI,CAAC,KAAK,GACN,CACR,CAAC;AACJ,CAAC"}
@@ -1,3 +1,3 @@
1
1
  import type { HeaderInput } from '../roster.types';
2
- export declare function RosterHeader({ ticks, contentWidth, scroll, headerCellZone }: HeaderInput): import("react/jsx-runtime").JSX.Element;
2
+ export declare function RosterHeader({ ticks, contentWidth, scroll, headerCellComponent: HeaderCellComponent, }: HeaderInput): import("react/jsx-runtime").JSX.Element;
3
3
  //# sourceMappingURL=header.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"header.d.ts","sourceRoot":"","sources":["../../../../../src/components/roster/parts/header.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAEnD,wBAAgB,YAAY,CAAC,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,EAAE,cAAc,EAAE,EAAE,WAAW,2CAaxF"}
1
+ {"version":3,"file":"header.d.ts","sourceRoot":"","sources":["../../../../../src/components/roster/parts/header.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAEnD,wBAAgB,YAAY,CAAC,EAC3B,KAAK,EACL,YAAY,EACZ,MAAM,EACN,mBAAmB,EAAE,mBAAmB,GACzC,EAAE,WAAW,2CAab"}
@@ -7,7 +7,7 @@ exports.RosterHeader = RosterHeader;
7
7
  const jsx_runtime_1 = require("react/jsx-runtime");
8
8
  const react_native_1 = require("react-native");
9
9
  const react_native_reanimated_1 = __importDefault(require("react-native-reanimated"));
10
- function RosterHeader({ ticks, contentWidth, scroll, headerCellZone }) {
11
- return ((0, jsx_runtime_1.jsx)(react_native_reanimated_1.default.View, { testID: "roster-header", style: [{ width: contentWidth, height: 40 }, scroll.headerStyle], children: ticks.map((tick) => ((0, jsx_runtime_1.jsx)(react_native_1.View, { style: { position: 'absolute', left: tick.x, top: 0 }, children: headerCellZone({ tick }) }, tick.time))) }));
10
+ function RosterHeader({ ticks, contentWidth, scroll, headerCellComponent: HeaderCellComponent, }) {
11
+ return ((0, jsx_runtime_1.jsx)(react_native_reanimated_1.default.View, { testID: "roster-header", style: [{ width: contentWidth, height: 40 }, scroll.headerStyle], children: ticks.map((tick) => ((0, jsx_runtime_1.jsx)(react_native_1.View, { style: { position: 'absolute', left: tick.x, top: 0 }, children: (0, jsx_runtime_1.jsx)(HeaderCellComponent, { tick: tick }) }, tick.time))) }));
12
12
  }
13
13
  //# sourceMappingURL=header.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"header.js","sourceRoot":"","sources":["../../../../../src/components/roster/parts/header.tsx"],"names":[],"mappings":";;;;;;;AAAA,+CAAoC;AACpC,sFAA+C;AAG/C,sBAA6B,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,EAAE,cAAc,EAAe;IACvF,OAAO,CACL,uBAAC,iCAAQ,CAAC,IAAI,IACZ,MAAM,EAAC,eAAe,EACtB,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,WAAW,CAAC,YAE/D,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CACnB,uBAAC,mBAAI,IAAiB,KAAK,EAAE,EAAE,QAAQ,EAAE,UAAU,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,YACxE,cAAc,CAAC,EAAE,IAAI,EAAE,CAAC,IADhB,IAAI,CAAC,IAAI,CAEb,CACR,CAAC,GACY,CACjB,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"header.js","sourceRoot":"","sources":["../../../../../src/components/roster/parts/header.tsx"],"names":[],"mappings":";;;;;;;AAAA,+CAAoC;AACpC,sFAA+C;AAG/C,sBAA6B,EAC3B,KAAK,EACL,YAAY,EACZ,MAAM,EACN,mBAAmB,EAAE,mBAAmB,GAC5B;IACZ,OAAO,CACL,uBAAC,iCAAQ,CAAC,IAAI,IACZ,MAAM,EAAC,eAAe,EACtB,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,WAAW,CAAC,YAE/D,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CACnB,uBAAC,mBAAI,IAAiB,KAAK,EAAE,EAAE,QAAQ,EAAE,UAAU,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,YACzE,uBAAC,mBAAmB,IAAC,IAAI,EAAE,IAAI,GAAI,IAD1B,IAAI,CAAC,IAAI,CAEb,CACR,CAAC,GACY,CACjB,CAAC;AACJ,CAAC"}
@@ -1,3 +1,3 @@
1
1
  import type { LabelColumnInput } from '../roster.types';
2
- export declare function RosterLaneLabelColumn({ labels, projection, scroll, laneLabelZone, }: LabelColumnInput): import("react/jsx-runtime").JSX.Element;
2
+ export declare function RosterLaneLabelColumn({ labels, projection, scroll, laneLabelComponent: LaneLabelComponent, }: LabelColumnInput): import("react/jsx-runtime").JSX.Element;
3
3
  //# sourceMappingURL=lane-label-column.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"lane-label-column.d.ts","sourceRoot":"","sources":["../../../../../src/components/roster/parts/lane-label-column.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAExD,wBAAgB,qBAAqB,CAAC,EACpC,MAAM,EACN,UAAU,EACV,MAAM,EACN,aAAa,GACd,EAAE,gBAAgB,2CAqBlB"}
1
+ {"version":3,"file":"lane-label-column.d.ts","sourceRoot":"","sources":["../../../../../src/components/roster/parts/lane-label-column.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAExD,wBAAgB,qBAAqB,CAAC,EACpC,MAAM,EACN,UAAU,EACV,MAAM,EACN,kBAAkB,EAAE,kBAAkB,GACvC,EAAE,gBAAgB,2CAqBlB"}
@@ -7,12 +7,12 @@ exports.RosterLaneLabelColumn = RosterLaneLabelColumn;
7
7
  const jsx_runtime_1 = require("react/jsx-runtime");
8
8
  const react_native_1 = require("react-native");
9
9
  const react_native_reanimated_1 = __importDefault(require("react-native-reanimated"));
10
- function RosterLaneLabelColumn({ labels, projection, scroll, laneLabelZone, }) {
10
+ function RosterLaneLabelColumn({ labels, projection, scroll, laneLabelComponent: LaneLabelComponent, }) {
11
11
  return ((0, jsx_runtime_1.jsx)(react_native_reanimated_1.default.View, { testID: "roster-labels", style: [{ height: labels.length * projection.rowHeight }, scroll.labelStyle], children: labels.map((label, index) => ((0, jsx_runtime_1.jsx)(react_native_1.View, { style: {
12
12
  position: 'absolute',
13
13
  top: index * projection.rowHeight,
14
14
  height: projection.rowHeight,
15
15
  width: '100%',
16
- }, children: laneLabelZone(label) }, label.lane.id))) }));
16
+ }, children: (0, jsx_runtime_1.jsx)(LaneLabelComponent, { ...label }) }, label.lane.id))) }));
17
17
  }
18
18
  //# sourceMappingURL=lane-label-column.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"lane-label-column.js","sourceRoot":"","sources":["../../../../../src/components/roster/parts/lane-label-column.tsx"],"names":[],"mappings":";;;;;;;AAAA,+CAAoC;AACpC,sFAA+C;AAG/C,+BAAsC,EACpC,MAAM,EACN,UAAU,EACV,MAAM,EACN,aAAa,GACI;IACjB,OAAO,CACL,uBAAC,iCAAQ,CAAC,IAAI,IACZ,MAAM,EAAC,eAAe,EACtB,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,GAAG,UAAU,CAAC,SAAS,EAAE,EAAE,MAAM,CAAC,UAAU,CAAC,YAE3E,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,CAC5B,uBAAC,mBAAI,IAEH,KAAK,EAAE;gBACL,QAAQ,EAAE,UAAU;gBACpB,GAAG,EAAE,KAAK,GAAG,UAAU,CAAC,SAAS;gBACjC,MAAM,EAAE,UAAU,CAAC,SAAS;gBAC5B,KAAK,EAAE,MAAM;aACd,YAEA,aAAa,CAAC,KAAK,CAAC,IARhB,KAAK,CAAC,IAAI,CAAC,EAAE,CASb,CACR,CAAC,GACY,CACjB,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"lane-label-column.js","sourceRoot":"","sources":["../../../../../src/components/roster/parts/lane-label-column.tsx"],"names":[],"mappings":";;;;;;;AAAA,+CAAoC;AACpC,sFAA+C;AAG/C,+BAAsC,EACpC,MAAM,EACN,UAAU,EACV,MAAM,EACN,kBAAkB,EAAE,kBAAkB,GACrB;IACjB,OAAO,CACL,uBAAC,iCAAQ,CAAC,IAAI,IACZ,MAAM,EAAC,eAAe,EACtB,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,GAAG,UAAU,CAAC,SAAS,EAAE,EAAE,MAAM,CAAC,UAAU,CAAC,YAE3E,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,CAC5B,uBAAC,mBAAI,IAEH,KAAK,EAAE;gBACL,QAAQ,EAAE,UAAU;gBACpB,GAAG,EAAE,KAAK,GAAG,UAAU,CAAC,SAAS;gBACjC,MAAM,EAAE,UAAU,CAAC,SAAS;gBAC5B,KAAK,EAAE,MAAM;aACd,YAED,uBAAC,kBAAkB,OAAK,KAAK,GAAI,IAR5B,KAAK,CAAC,IAAI,CAAC,EAAE,CASb,CACR,CAAC,GACY,CACjB,CAAC;AACJ,CAAC"}
@@ -0,0 +1,7 @@
1
+ import { type ProfilerOnRenderCallback } from 'react';
2
+ import type { BodyInput } from '../roster.types';
3
+ export declare function RosterLaneList({ lanes, geometryFor, projection, scroll, press, contentWidth, viewport, window, intervalComponent, gapComponent, highlightSource, onIntervalHover, incompleteLabel, onRowRender, }: Omit<BodyInput, 'ticks' | 'gridComponent'> & {
4
+ /** Development-only Profiler hook used by the gallery; not a supported customization point. */
5
+ onRowRender?: ProfilerOnRenderCallback;
6
+ }): import("react/jsx-runtime").JSX.Element;
7
+ //# sourceMappingURL=lane-list.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lane-list.d.ts","sourceRoot":"","sources":["../../../../../src/components/roster/parts/lane-list.tsx"],"names":[],"mappings":"AACA,OAAO,EAAY,KAAK,wBAAwB,EAAY,MAAM,OAAO,CAAC;AAE1E,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAGjD,wBAAgB,cAAc,CAAC,EAC7B,KAAK,EACL,WAAW,EACX,UAAU,EACV,MAAM,EACN,KAAK,EACL,YAAY,EACZ,QAAQ,EACR,MAAM,EACN,iBAAiB,EACjB,YAAY,EACZ,eAAe,EACf,eAAe,EACf,eAAe,EACf,WAAW,GACZ,EAAE,IAAI,CAAC,SAAS,EAAE,OAAO,GAAG,eAAe,CAAC,GAAG;IAC9C,+FAA+F;IAC/F,WAAW,CAAC,EAAE,wBAAwB,CAAC;CACxC,2CAmDA"}
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.RosterLaneList = RosterLaneList;
4
+ const jsx_runtime_1 = require("react/jsx-runtime");
5
+ const list_1 = require("@legendapp/list");
6
+ const react_1 = require("react");
7
+ const lane_1 = require("../lanes/lane");
8
+ const body_content_key_1 = require("../utils/body-content-key");
9
+ function RosterLaneList({ lanes, geometryFor, projection, scroll, press, contentWidth, viewport, window, intervalComponent, gapComponent, highlightSource, onIntervalHover, incompleteLabel, onRowRender, }) {
10
+ const [initialScrollOffset] = (0, react_1.useState)(() => scroll.y.get());
11
+ return ((0, jsx_runtime_1.jsx)(list_1.LegendList, { testID: "roster-vertical-scroll", initialScrollOffset: initialScrollOffset, data: lanes, extraData: (0, body_content_key_1.bodyContentKey)({
12
+ window,
13
+ projection,
14
+ highlightSource,
15
+ intervalComponent,
16
+ gapComponent,
17
+ onIntervalHover,
18
+ incompleteLabel,
19
+ }), keyExtractor: (lane) => lane.id, estimatedListSize: { width: contentWidth, height: viewport.height }, estimatedItemSize: projection.rowHeight, getFixedItemSize: () => projection.rowHeight, drawDistance: 0, recycleItems: false, maintainVisibleContentPosition: false, onScroll: scroll.onVerticalScroll, scrollEventThrottle: 16, style: { flex: 1 }, renderItem: ({ item }) => {
20
+ const row = ((0, jsx_runtime_1.jsx)(lane_1.LaneRow, { lane: item, geometry: geometryFor(item), width: contentWidth, rowHeight: projection.rowHeight, press: press, intervalComponent: intervalComponent, gapComponent: gapComponent, highlightSource: highlightSource, onIntervalHover: onIntervalHover, incompleteLabel: incompleteLabel }));
21
+ if (onRowRender)
22
+ return ((0, jsx_runtime_1.jsx)(react_1.Profiler, { id: item.id, onRender: onRowRender, children: row }));
23
+ return row;
24
+ } }));
25
+ }
26
+ //# sourceMappingURL=lane-list.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lane-list.js","sourceRoot":"","sources":["../../../../../src/components/roster/parts/lane-list.tsx"],"names":[],"mappings":";;;;AAAA,0CAA6C;AAC7C,iCAA0E;AAC1E,wCAAwC;AAExC,gEAA2D;AAE3D,wBAA+B,EAC7B,KAAK,EACL,WAAW,EACX,UAAU,EACV,MAAM,EACN,KAAK,EACL,YAAY,EACZ,QAAQ,EACR,MAAM,EACN,iBAAiB,EACjB,YAAY,EACZ,eAAe,EACf,eAAe,EACf,eAAe,EACf,WAAW,GAIZ;IACC,MAAM,CAAC,mBAAmB,CAAC,GAAG,IAAA,gBAAQ,EAAC,GAAG,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;IAC7D,OAAO,CACL,uBAAC,iBAAU,IACT,MAAM,EAAC,wBAAwB,EAC/B,mBAAmB,EAAE,mBAAmB,EACxC,IAAI,EAAE,KAAK,EACX,SAAS,EAAE,IAAA,iCAAc,EAAC;YACxB,MAAM;YACN,UAAU;YACV,eAAe;YACf,iBAAiB;YACjB,YAAY;YACZ,eAAe;YACf,eAAe;SAChB,CAAC,EACF,YAAY,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,EAC/B,iBAAiB,EAAE,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,EACnE,iBAAiB,EAAE,UAAU,CAAC,SAAS,EACvC,gBAAgB,EAAE,GAAG,EAAE,CAAC,UAAU,CAAC,SAAS,EAC5C,YAAY,EAAE,CAAC,EACf,YAAY,EAAE,KAAK,EACnB,8BAA8B,EAAE,KAAK,EACrC,QAAQ,EAAE,MAAM,CAAC,gBAAgB,EACjC,mBAAmB,EAAE,EAAE,EACvB,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,EAClB,UAAU,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE;YACvB,MAAM,GAAG,GAAG,CACV,uBAAC,cAAO,IACN,IAAI,EAAE,IAAI,EACV,QAAQ,EAAE,WAAW,CAAC,IAAI,CAAC,EAC3B,KAAK,EAAE,YAAY,EACnB,SAAS,EAAE,UAAU,CAAC,SAAS,EAC/B,KAAK,EAAE,KAAK,EACZ,iBAAiB,EAAE,iBAAiB,EACpC,YAAY,EAAE,YAAY,EAC1B,eAAe,EAAE,eAAe,EAChC,eAAe,EAAE,eAAe,EAChC,eAAe,EAAE,eAAe,GAChC,CACH,CAAC;YACF,IAAI,WAAW;gBACb,OAAO,CACL,uBAAC,gBAAQ,IAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,QAAQ,EAAE,WAAW,YACzC,GAAG,GACK,CACZ,CAAC;YACJ,OAAO,GAAG,CAAC;QACb,CAAC,GACD,CACH,CAAC;AACJ,CAAC"}
@@ -1,8 +1,15 @@
1
- import type { ReactNode, RefObject } from 'react';
1
+ import type { ComponentType, ReactNode, RefObject } from 'react';
2
2
  import type { LayoutChangeEvent, NativeScrollEvent, NativeSyntheticEvent, ScrollView, StyleProp, ViewStyle } from 'react-native';
3
3
  import type { SharedValue } from 'react-native-reanimated';
4
4
  import type { Coverage, Lane, LaneComparator, LaneFlag, LaneGeometry, Projection, Rect, Source, Window, WindowSpec } from '../../core';
5
5
  import type { GapInput, IntervalInput } from '../layers/layers.types';
6
+ import type { SelectionLayoutProps } from './selection/selection-layout.types';
7
+ /** A selected interval: the rect input plus its absolute bounds and the view zone for formatting. */
8
+ export type IntervalDetailInput = IntervalInput & {
9
+ start: number;
10
+ end: number;
11
+ viewTimezone: string;
12
+ };
6
13
  export type RosterProjection = Extract<Projection, {
7
14
  orientation: 'horizontal';
8
15
  }>;
@@ -23,6 +30,8 @@ export type RosterScroll = {
23
30
  labelStyle: StyleProp<ViewStyle>;
24
31
  };
25
32
  export type RosterInput = {
33
+ /** Retain interval selection on press, default false. Lives on RosterInput for hook consumers. */
34
+ selectable?: boolean;
26
35
  lanes: Lane[];
27
36
  windowSpec: WindowSpec;
28
37
  minuteStep?: number;
@@ -40,6 +49,10 @@ export type RosterInput = {
40
49
  pxPerMinute?: number;
41
50
  };
42
51
  export type RosterModel = {
52
+ /** Current interval with fresh lane, layer, and rect references and its absolute bounds, or null. */
53
+ selection: Omit<IntervalDetailInput, 'highlighted' | 'viewTimezone'> | null;
54
+ /** Close the selected interval details. */
55
+ dismissSelection: () => void;
43
56
  window: Window;
44
57
  projection: RosterProjection;
45
58
  orderedLanes: Lane[];
@@ -69,20 +82,21 @@ export type LaneLabelInput = {
69
82
  incompleteLabel: string;
70
83
  neverSetLabel: string;
71
84
  };
85
+ export type HeaderCellInput = {
86
+ tick: RosterTick;
87
+ };
72
88
  export type GridInput = {
73
89
  ticks: RosterTick[];
74
90
  contentWidth: number;
75
91
  };
76
92
  export type HeaderInput = Pick<RosterModel, 'ticks' | 'projection' | 'scroll' | 'contentWidth'> & {
77
93
  /** Time label filler, positioned by the header. */
78
- headerCellZone: (input: {
79
- tick: RosterTick;
80
- }) => ReactNode;
94
+ headerCellComponent: ComponentType<HeaderCellInput>;
81
95
  };
82
96
  export type LabelColumnInput = Pick<RosterModel, 'projection' | 'scroll'> & {
83
97
  labels: LaneLabelInput[];
84
98
  /** Lane label filler, positioned at the fixed row height. */
85
- laneLabelZone: (input: LaneLabelInput) => ReactNode;
99
+ laneLabelComponent: ComponentType<LaneLabelInput>;
86
100
  };
87
101
  export type BodyInput = Pick<RosterModel, 'geometryFor' | 'projection' | 'scroll' | 'press' | 'ticks' | 'contentWidth' | 'viewport' | 'window'> & {
88
102
  lanes: Lane[];
@@ -90,11 +104,11 @@ export type BodyInput = Pick<RosterModel, 'geometryFor' | 'projection' | 'scroll
90
104
  onIntervalHover?: (rect: Rect, lane: Lane) => void;
91
105
  incompleteLabel?: string;
92
106
  /** Covered rect view; position it using the final rect bounds, as RosterInterval does. */
93
- intervalZone: (input: IntervalInput) => ReactNode;
107
+ intervalComponent: ComponentType<IntervalInput>;
94
108
  /** Removed rect filler, placed inside a pressable by LaneRow. */
95
- gapZone: (input: GapInput) => ReactNode;
109
+ gapComponent: ComponentType<GapInput>;
96
110
  /** Noninteractive tick lines behind every lane, sized to the content width. */
97
- gridZone: (input: GridInput) => ReactNode;
111
+ gridComponent: ComponentType<GridInput>;
98
112
  };
99
113
  /**
100
114
  * Chrome style props and their NativeWind class twins. Class props resolve only
@@ -117,30 +131,43 @@ export type RosterStyleProps = {
117
131
  /** Width of the corner and lane label column, default 180. */
118
132
  laneLabelWidth?: number;
119
133
  };
120
- export type RosterProps = RosterInput & RosterStyleProps & {
134
+ export type RosterProps = Omit<RosterInput, 'selectable'> & RosterStyleProps & {
135
+ /**
136
+ * Selected interval content; absent means interval presses retain no selection.
137
+ * Lives on RosterProps because the chassis mounts content and enables useRoster selection.
138
+ */
139
+ intervalDetailComponent?: ComponentType<IntervalDetailInput>;
140
+ /**
141
+ * Presentation strategy for the body and selected details; defaults to RosterSelectionPopover.
142
+ * Lives on RosterProps because only the chassis mounts the layout, not useRoster.
143
+ */
144
+ selectionLayout?: ComponentType<SelectionLayoutProps>;
145
+ /**
146
+ * Native portal host name; defaults to a unique useId name for this roster.
147
+ * Lives on RosterProps because only the chassis mounts the layout, not useRoster.
148
+ */
149
+ portalHost?: string;
121
150
  incompleteLabel?: string;
122
151
  neverSetLabel?: string;
123
152
  /** Label, differing lane zone, effective flag, and completeness notice. */
124
- laneLabelZone?: (input: LaneLabelInput) => ReactNode;
153
+ laneLabelComponent?: ComponentType<LaneLabelInput>;
125
154
  /** Time label within one positioned header tick. */
126
- headerCellZone?: (input: {
127
- tick: RosterTick;
128
- }) => ReactNode;
155
+ headerCellComponent?: ComponentType<HeaderCellInput>;
129
156
  /** Covered rect view; use rect bounds for absolute position, rect.z for stacking, and pointerEvents="none" for row hit testing. */
130
- intervalZone?: (input: IntervalInput) => ReactNode;
157
+ intervalComponent?: ComponentType<IntervalInput>;
131
158
  /** Removed rect content; LaneRow supplies the invisible pressable. */
132
- gapZone?: (input: GapInput) => ReactNode;
159
+ gapComponent?: ComponentType<GapInput>;
133
160
  /** Tick lines behind the lanes; RosterGrid draws one hairline per tick. */
134
- gridZone?: (input: GridInput) => ReactNode;
161
+ gridComponent?: ComponentType<GridInput>;
135
162
  /** Empty roster content, conventionally the text No lanes. */
136
- emptyZone?: () => ReactNode;
163
+ emptyZone?: ReactNode;
137
164
  /** Top-left cell above the lane labels; RosterCorner renders nothing. */
138
- cornerZone?: () => ReactNode;
165
+ cornerZone?: ReactNode;
139
166
  /** Frozen time header, supplied with ticks, scale, and shared scrolling. */
140
- headerZone?: (input: HeaderInput) => ReactNode;
167
+ headerComponent?: ComponentType<HeaderInput>;
141
168
  /** Frozen labels, supplied with ordered lanes and per-lane flag and completeness. */
142
- laneLabelColumnZone?: (input: LabelColumnInput) => ReactNode;
169
+ laneLabelColumnComponent?: ComponentType<LabelColumnInput>;
143
170
  /** Virtualized lane body, supplied with geometry, projection, scrolling, and press resolution. */
144
- bodyZone?: (input: BodyInput) => ReactNode;
171
+ bodyComponent?: ComponentType<BodyInput>;
145
172
  };
146
173
  //# sourceMappingURL=roster.types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"roster.types.d.ts","sourceRoot":"","sources":["../../../../src/components/roster/roster.types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"roster.types.d.ts","sourceRoot":"","sources":["../../../../src/components/roster/roster.types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import type { SelectionLayoutProps } from './selection-layout.types';
2
+ /** Native selection presentation with a local portal destination and shared scroll translation. */
3
+ export declare function RosterSelectionPopover({ anchorZone, contentZone, targetBounds, open, onDismiss, portalHost, scroll, }: SelectionLayoutProps): import("react/jsx-runtime").JSX.Element;
4
+ //# sourceMappingURL=selection-layout.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"selection-layout.d.ts","sourceRoot":"","sources":["../../../../../src/components/roster/selection/selection-layout.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAIrE,mGAAmG;AACnG,wBAAgB,sBAAsB,CAAC,EACrC,UAAU,EACV,WAAW,EACX,YAAY,EACZ,IAAI,EACJ,SAAS,EACT,UAAU,EACV,MAAM,GACP,EAAE,oBAAoB,2CAwEtB"}
@@ -0,0 +1,82 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.RosterSelectionPopover = RosterSelectionPopover;
37
+ const jsx_runtime_1 = require("react/jsx-runtime");
38
+ const react_1 = require("react");
39
+ const react_native_1 = require("react-native");
40
+ const react_native_reanimated_1 = __importStar(require("react-native-reanimated"));
41
+ const portal_1 = require("../../primitives/portal");
42
+ const overlay = { position: 'absolute', top: 0, left: 0, right: 0, bottom: 0 };
43
+ /** Native selection presentation with a local portal destination and shared scroll translation. */
44
+ function RosterSelectionPopover({ anchorZone, contentZone, targetBounds, open, onDismiss, portalHost, scroll, }) {
45
+ const name = (0, react_1.useId)();
46
+ const [viewport, setViewport] = (0, react_1.useState)({ width: 0, height: 0 });
47
+ const [content, setContent] = (0, react_1.useState)({ width: 0, height: 0 });
48
+ const maxWidth = Math.max(0, viewport.width - 8);
49
+ const maxHeight = Math.max(0, viewport.height - 8);
50
+ const size = { maxWidth, maxHeight, flexShrink: 1 };
51
+ const { x, y } = scroll;
52
+ const position = (0, react_native_reanimated_1.useAnimatedStyle)(() => {
53
+ const below = targetBounds ? targetBounds.y + targetBounds.height + 4 - y.get() : 0;
54
+ const above = targetBounds ? targetBounds.y - content.height - 4 - y.get() : 0;
55
+ const maxTop = Math.max(0, viewport.height - content.height);
56
+ return {
57
+ left: Math.max(0, Math.min((targetBounds?.x ?? 0) - x.get(), viewport.width - content.width)),
58
+ top: below >= 0 && below <= maxTop ? below : above >= 0 && above <= maxTop ? above : 0,
59
+ };
60
+ });
61
+ (0, react_1.useEffect)(() => {
62
+ if (!open)
63
+ return;
64
+ const subscription = react_native_1.BackHandler.addEventListener('hardwareBackPress', () => {
65
+ onDismiss();
66
+ return true;
67
+ });
68
+ return () => subscription.remove();
69
+ }, [open, onDismiss]);
70
+ let detailZone = null;
71
+ if (open && targetBounds && maxWidth > 0 && maxHeight > 0) {
72
+ detailZone = ((0, jsx_runtime_1.jsx)(portal_1.Portal, { hostName: portalHost, name: name, children: (0, jsx_runtime_1.jsx)(react_native_reanimated_1.default.View, { style: [{ position: 'absolute', maxWidth, maxHeight }, position], children: (0, jsx_runtime_1.jsx)(react_native_1.View, { accessibilityRole: "summary", onStartShouldSetResponder: () => true, style: size, onLayout: ({ nativeEvent }) => setContent({
73
+ width: nativeEvent.layout.width,
74
+ height: nativeEvent.layout.height,
75
+ }), children: (0, jsx_runtime_1.jsx)(react_native_1.ScrollView, { style: size, nestedScrollEnabled: true, children: (0, jsx_runtime_1.jsx)(react_native_1.ScrollView, { horizontal: true, style: { maxWidth, flexGrow: 0, flexShrink: 0 }, nestedScrollEnabled: true, children: contentZone }) }) }) }) }));
76
+ }
77
+ return ((0, jsx_runtime_1.jsxs)(react_native_1.View, { style: { flex: 1, minHeight: 0 }, onLayout: ({ nativeEvent }) => setViewport({
78
+ width: nativeEvent.layout.width,
79
+ height: nativeEvent.layout.height,
80
+ }), children: [anchorZone, (0, jsx_runtime_1.jsx)(react_native_1.View, { pointerEvents: "box-none", style: overlay, children: (0, jsx_runtime_1.jsx)(portal_1.PortalHost, { name: portalHost }) }), detailZone] }));
81
+ }
82
+ //# sourceMappingURL=selection-layout.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"selection-layout.js","sourceRoot":"","sources":["../../../../../src/components/roster/selection/selection-layout.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,25 @@
1
+ import type { ReactNode } from 'react';
2
+ import type { RosterScroll } from '../roster.types';
3
+ /** Presentation-only contract shared by native, web, and consumer strategies. */
4
+ export type SelectionLayoutProps = {
5
+ /** Mounted body node, rendered once beneath or beside the details. */
6
+ anchorZone: ReactNode;
7
+ /** Mounted detail node, or null when closed. */
8
+ contentZone: ReactNode;
9
+ /** Interval bounds in body-content coordinates, before scroll translation. */
10
+ targetBounds: {
11
+ x: number;
12
+ y: number;
13
+ width: number;
14
+ height: number;
15
+ } | null;
16
+ /** Whether the detail presentation is open. */
17
+ open: boolean;
18
+ /** Report outside press, hardware back, Escape, or a presentation close action. */
19
+ onDismiss: () => void;
20
+ /** Unique native destination name owned by this selection layout. */
21
+ portalHost: string;
22
+ /** Shared offsets follow body scrolling without updating React state. */
23
+ scroll: Pick<RosterScroll, 'x' | 'y' | 'headerStyle' | 'labelStyle'>;
24
+ };
25
+ //# sourceMappingURL=selection-layout.types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"selection-layout.types.d.ts","sourceRoot":"","sources":["../../../../../src/components/roster/selection/selection-layout.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAEpD,iFAAiF;AACjF,MAAM,MAAM,oBAAoB,GAAG;IACjC,sEAAsE;IACtE,UAAU,EAAE,SAAS,CAAC;IACtB,gDAAgD;IAChD,WAAW,EAAE,SAAS,CAAC;IACvB,8EAA8E;IAC9E,YAAY,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IAC7E,+CAA+C;IAC/C,IAAI,EAAE,OAAO,CAAC;IACd,mFAAmF;IACnF,SAAS,EAAE,MAAM,IAAI,CAAC;IACtB,qEAAqE;IACrE,UAAU,EAAE,MAAM,CAAC;IACnB,yEAAyE;IACzE,MAAM,EAAE,IAAI,CAAC,YAAY,EAAE,GAAG,GAAG,GAAG,GAAG,aAAa,GAAG,YAAY,CAAC,CAAC;CACtE,CAAC"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=selection-layout.types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"selection-layout.types.js","sourceRoot":"","sources":["../../../../../src/components/roster/selection/selection-layout.types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,4 @@
1
+ import type { SelectionLayoutProps } from './selection-layout.types';
2
+ /** Web selection presentation; Radix owns outside press, Escape, and collisions. */
3
+ export declare function RosterSelectionPopover({ anchorZone, contentZone, targetBounds, open, onDismiss, scroll, }: SelectionLayoutProps): import("react/jsx-runtime").JSX.Element;
4
+ //# sourceMappingURL=selection-layout.web.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"selection-layout.web.d.ts","sourceRoot":"","sources":["../../../../../src/components/roster/selection/selection-layout.web.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAErE,oFAAoF;AACpF,wBAAgB,sBAAsB,CAAC,EACrC,UAAU,EACV,WAAW,EACX,YAAY,EACZ,IAAI,EACJ,SAAS,EACT,MAAM,GACP,EAAE,oBAAoB,2CA0EtB"}
@@ -0,0 +1,52 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.RosterSelectionPopover = RosterSelectionPopover;
7
+ const jsx_runtime_1 = require("react/jsx-runtime");
8
+ const react_popover_1 = require("@radix-ui/react-popover");
9
+ const react_1 = require("react");
10
+ const react_native_reanimated_1 = __importDefault(require("react-native-reanimated"));
11
+ /** Web selection presentation; Radix owns outside press, Escape, and collisions. */
12
+ function RosterSelectionPopover({ anchorZone, contentZone, targetBounds, open, onDismiss, scroll, }) {
13
+ const bodyRef = (0, react_1.useRef)(null);
14
+ const returnFocusRef = (0, react_1.useRef)(null);
15
+ const keyboardDismissRef = (0, react_1.useRef)(false);
16
+ (0, react_1.useEffect)(() => {
17
+ if (open && targetBounds && bodyRef.current?.contains(document.activeElement)) {
18
+ returnFocusRef.current = document.activeElement;
19
+ }
20
+ }, [open, targetBounds]);
21
+ return ((0, jsx_runtime_1.jsxs)(react_popover_1.Root, { open: open, onOpenChange: (next) => {
22
+ if (!next)
23
+ onDismiss();
24
+ }, children: [(0, jsx_runtime_1.jsxs)("div", { ref: bodyRef, style: {
25
+ position: 'relative',
26
+ display: 'flex',
27
+ flexDirection: 'column',
28
+ flex: 1,
29
+ minHeight: 0,
30
+ }, children: [anchorZone, (0, jsx_runtime_1.jsx)(react_native_reanimated_1.default.View, { style: [{ position: 'absolute', top: 0, left: 0 }, scroll.headerStyle], children: (0, jsx_runtime_1.jsx)(react_native_reanimated_1.default.View, { style: scroll.labelStyle, children: (0, jsx_runtime_1.jsx)(react_popover_1.Anchor, { asChild: true, children: (0, jsx_runtime_1.jsx)("div", { "data-testid": "roster-selection-target", style: {
31
+ position: 'absolute',
32
+ left: targetBounds?.x ?? 0,
33
+ top: targetBounds ? targetBounds.y + targetBounds.height : 0,
34
+ width: 0,
35
+ height: 0,
36
+ pointerEvents: 'none',
37
+ } }) }) }) })] }), (0, jsx_runtime_1.jsx)(react_popover_1.Portal, { children: (0, jsx_runtime_1.jsx)(react_popover_1.Content, { onOpenAutoFocus: () => {
38
+ returnFocusRef.current = document.activeElement;
39
+ keyboardDismissRef.current = false;
40
+ }, onEscapeKeyDown: () => {
41
+ keyboardDismissRef.current = true;
42
+ }, onCloseAutoFocus: (event) => {
43
+ event.preventDefault();
44
+ if (keyboardDismissRef.current && returnFocusRef.current instanceof HTMLElement) {
45
+ returnFocusRef.current.focus({ preventScroll: true });
46
+ }
47
+ }, onInteractOutside: (event) => {
48
+ if (bodyRef.current?.contains(event.target))
49
+ event.preventDefault();
50
+ }, sideOffset: 4, align: "start", updatePositionStrategy: "always", "aria-label": "Interval details", style: { zIndex: 1000 }, children: contentZone }) })] }));
51
+ }
52
+ //# sourceMappingURL=selection-layout.web.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"selection-layout.web.js","sourceRoot":"","sources":["../../../../../src/components/roster/selection/selection-layout.web.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ import type { Dispatch, SetStateAction } from 'react';
2
+ import type { Lane, Window } from '../../core';
3
+ import type { RosterInput, RosterModel, RosterProjection } from './roster.types';
4
+ export type SelectedInterval = NonNullable<RosterModel['selection']>;
5
+ export declare function useRosterPress(input: RosterInput, window: Window, projection: RosterProjection, width: number, selection: RosterModel['selection'], setSelected: Dispatch<SetStateAction<SelectedInterval | null>>): (lane: Lane, pointX: number, pointY: number) => void;
6
+ //# sourceMappingURL=use-roster-press.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-roster-press.d.ts","sourceRoot":"","sources":["../../../../src/components/roster/use-roster-press.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AAEtD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAG/C,OAAO,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAEjF,MAAM,MAAM,gBAAgB,GAAG,WAAW,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC,CAAC;AAGrE,wBAAgB,cAAc,CAC5B,KAAK,EAAE,WAAW,EAClB,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,gBAAgB,EAC5B,KAAK,EAAE,MAAM,EACb,SAAS,EAAE,WAAW,CAAC,WAAW,CAAC,EACnC,WAAW,EAAE,QAAQ,CAAC,cAAc,CAAC,gBAAgB,GAAG,IAAI,CAAC,CAAC,UAMhC,IAAI,UAAU,MAAM,UAAU,MAAM,KAAG,IAAI,CAmD1E"}