@react-spectrum/list 3.0.0-alpha.3 → 3.0.0-alpha.4

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.js CHANGED
@@ -4,7 +4,7 @@ import { Virtualizer } from "@react-aria/virtualizer";
4
4
  import { useProvider } from "@react-spectrum/provider";
5
5
  import { ProgressCircle } from "@react-spectrum/progress";
6
6
  import { useLocale, useCollator, useMessageFormatter } from "@react-aria/i18n";
7
- import { useHover } from "@react-aria/interactions";
7
+ import { useHover, usePress } from "@react-aria/interactions";
8
8
  import { useFocusRing } from "@react-aria/focus";
9
9
  import _react, { useContext, useRef, useMemo } from "react";
10
10
  import { mergeProps } from "@react-aria/utils";
@@ -29,24 +29,29 @@ function $parcel$interopDefault(a) {
29
29
  // ASSET: /Users/govett/dev/react-spectrum-v3/packages/@react-spectrum/list/src/listview.css
30
30
  var $ebb597d7e6956599eca07e96d462420$exports = {};
31
31
  $ebb597d7e6956599eca07e96d462420$exports = {
32
- "react-spectrum-ListView": "_react-spectrum-ListView_a5592",
33
- "react-spectrum-ListView--quiet": "_react-spectrum-ListView--quiet_a5592",
34
- "react-spectrum-ListViewItem": "_react-spectrum-ListViewItem_a5592",
35
- "is-hovered": "_is-hovered_a5592",
36
- "is-focused": "_is-focused_a5592",
37
- "focus-ring": "_focus-ring_a5592",
38
- "react-spectrum-ListViewItem-selected": "_react-spectrum-ListViewItem-selected_a5592",
39
- "react-spectrum-ListView--compact": "_react-spectrum-ListView--compact_a5592",
40
- "react-spectrum-ListView--spacious": "_react-spectrum-ListView--spacious_a5592",
41
- "react-spectrum-ListViewItem-grid": "_react-spectrum-ListViewItem-grid_a5592",
42
- "react-spectrum-ListViewItem-checkbox": "_react-spectrum-ListViewItem-checkbox_a5592",
43
- "react-spectrum-ListViewItem-icon": "_react-spectrum-ListViewItem-icon_a5592",
44
- "react-spectrum-ListViewItem-image": "_react-spectrum-ListViewItem-image_a5592",
45
- "react-spectrum-ListViewItem-content": "_react-spectrum-ListViewItem-content_a5592",
46
- "react-spectrum-ListViewItem-description": "_react-spectrum-ListViewItem-description_a5592",
47
- "react-spectrum-ListViewItem-actions": "_react-spectrum-ListViewItem-actions_a5592",
48
- "react-spectrum-ListView-centeredWrapper": "_react-spectrum-ListView-centeredWrapper_a5592",
49
- "react-spectrum-ListViewItem-parentIndicator": "_react-spectrum-ListViewItem-parentIndicator_a5592"
32
+ "react-spectrum-ListView": "_react-spectrum-ListView_42387",
33
+ "react-spectrum-ListView--quiet": "_react-spectrum-ListView--quiet_42387",
34
+ "react-spectrum-ListViewItem": "_react-spectrum-ListViewItem_42387",
35
+ "react-spectrum-ListView--emphasized": "_react-spectrum-ListView--emphasized_42387",
36
+ "is-selected": "_is-selected_42387",
37
+ "is-hovered": "_is-hovered_42387",
38
+ "is-active": "_is-active_42387",
39
+ "is-previous-selected": "_is-previous-selected_42387",
40
+ "is-focused": "_is-focused_42387",
41
+ "focus-ring": "_focus-ring_42387",
42
+ "has-checkbox": "_has-checkbox_42387",
43
+ "react-spectrum-ListView--compact": "_react-spectrum-ListView--compact_42387",
44
+ "react-spectrum-ListView--spacious": "_react-spectrum-ListView--spacious_42387",
45
+ "react-spectrum-ListViewItem-grid": "_react-spectrum-ListViewItem-grid_42387",
46
+ "react-spectrum-ListViewItem-checkbox": "_react-spectrum-ListViewItem-checkbox_42387",
47
+ "react-spectrum-ListViewItem-icon": "_react-spectrum-ListViewItem-icon_42387",
48
+ "react-spectrum-ListViewItem-image": "_react-spectrum-ListViewItem-image_42387",
49
+ "react-spectrum-ListViewItem-content": "_react-spectrum-ListViewItem-content_42387",
50
+ "react-spectrum-ListViewItem-description": "_react-spectrum-ListViewItem-description_42387",
51
+ "react-spectrum-ListViewItem-actions": "_react-spectrum-ListViewItem-actions_42387",
52
+ "react-spectrum-ListViewItem-actionmenu": "_react-spectrum-ListViewItem-actionmenu_42387",
53
+ "react-spectrum-ListView-centeredWrapper": "_react-spectrum-ListView-centeredWrapper_42387",
54
+ "react-spectrum-ListViewItem-parentIndicator": "_react-spectrum-ListViewItem-parentIndicator_42387"
50
55
  };
51
56
  // ASSET: /Users/govett/dev/react-spectrum-v3/packages/@react-spectrum/list/intl/ar-AE.json
52
57
  var $b85ce4af889dd6c3d521a587c1900ce$exports = {};
@@ -154,7 +159,9 @@ var $ebb597d7e6956599eca07e96d462420$$interop$default = $parcel$interopDefault($
154
159
 
155
160
  function $ac0abb3242b77613ec5573307b88e112$export$ListViewItem(props) {
156
161
  let {
157
- item
162
+ item,
163
+ onAction,
164
+ isEmphasized
158
165
  } = props;
159
166
  let cellNode = [...item.childNodes][0];
160
167
  let {
@@ -175,18 +182,26 @@ function $ac0abb3242b77613ec5573307b88e112$export$ListViewItem(props) {
175
182
  isFocusVisible,
176
183
  focusProps
177
184
  } = useFocusRing();
178
- let isDisabled = state.disabledKeys.has(item.key);
185
+ let allowsInteraction = state.selectionManager.selectionMode !== 'none' || onAction;
186
+ let isDisabled = !allowsInteraction || state.disabledKeys.has(item.key);
179
187
  let {
180
188
  hoverProps,
181
189
  isHovered
182
190
  } = useHover({
183
191
  isDisabled
184
192
  });
193
+ let {
194
+ pressProps,
195
+ isPressed
196
+ } = usePress({
197
+ isDisabled
198
+ });
185
199
  let {
186
200
  rowProps
187
201
  } = useGridRow({
188
202
  node: item,
189
- isVirtualized: true
203
+ isVirtualized: true,
204
+ onAction: onAction ? () => onAction(item.key) : null
190
205
  }, state, rowRef);
191
206
  let {
192
207
  gridCellProps
@@ -194,7 +209,7 @@ function $ac0abb3242b77613ec5573307b88e112$export$ListViewItem(props) {
194
209
  node: cellNode,
195
210
  focusMode: 'cell'
196
211
  }, state, cellRef);
197
- const mergedProps = mergeProps(rowProps, hoverProps, focusWithinProps, focusProps);
212
+ const mergedProps = mergeProps(gridCellProps, hoverProps, focusWithinProps, focusProps);
198
213
  let {
199
214
  checkboxProps
200
215
  } = useGridSelectionCheckbox(_babelRuntimeHelpersEsmExtends({}, props, {
@@ -212,22 +227,27 @@ function $ac0abb3242b77613ec5573307b88e112$export$ListViewItem(props) {
212
227
  });
213
228
  }
214
229
 
215
- let showCheckbox = state.selectionManager.selectionMode !== 'none';
216
- return /*#__PURE__*/_react.createElement("div", _babelRuntimeHelpersEsmExtends({}, mergedProps, {
230
+ let showCheckbox = state.selectionManager.selectionMode !== 'none' && state.selectionManager.selectionBehavior === 'toggle';
231
+ let isSelected = state.selectionManager.isSelected(item.key);
232
+ return /*#__PURE__*/_react.createElement("div", _babelRuntimeHelpersEsmExtends({}, mergeProps(rowProps, pressProps), {
217
233
  ref: rowRef
218
234
  }), /*#__PURE__*/_react.createElement("div", _babelRuntimeHelpersEsmExtends({
219
235
  className: classNames($ebb597d7e6956599eca07e96d462420$$interop$default, 'react-spectrum-ListViewItem', {
236
+ 'is-active': isPressed,
220
237
  'is-focused': isFocusVisibleWithin,
221
238
  'focus-ring': isFocusVisible,
222
- 'is-hovered': isHovered
239
+ 'is-hovered': isHovered,
240
+ 'is-selected': isSelected,
241
+ 'is-previous-selected': state.selectionManager.isSelected(item.prevKey),
242
+ 'react-spectrum-ListViewItem--highlightSelection': state.selectionManager.selectionBehavior === 'replace' && (isSelected || state.selectionManager.isSelected(item.nextKey))
223
243
  }),
224
244
  ref: cellRef
225
- }, gridCellProps), /*#__PURE__*/_react.createElement(Grid, {
245
+ }, mergedProps), /*#__PURE__*/_react.createElement(Grid, {
226
246
  UNSAFE_className: $ebb597d7e6956599eca07e96d462420$$interop$default['react-spectrum-ListViewItem-grid']
227
247
  }, showCheckbox && /*#__PURE__*/_react.createElement(Checkbox, _babelRuntimeHelpersEsmExtends({
228
248
  UNSAFE_className: $ebb597d7e6956599eca07e96d462420$$interop$default['react-spectrum-ListViewItem-checkbox']
229
249
  }, checkboxProps, {
230
- isEmphasized: true
250
+ isEmphasized: isEmphasized
231
251
  })), /*#__PURE__*/_react.createElement(SlotProvider, {
232
252
  slots: {
233
253
  content: {
@@ -258,6 +278,10 @@ function $ac0abb3242b77613ec5573307b88e112$export$ListViewItem(props) {
258
278
  UNSAFE_className: $ebb597d7e6956599eca07e96d462420$$interop$default['react-spectrum-ListViewItem-actions'],
259
279
  isQuiet: true,
260
280
  density: 'compact'
281
+ },
282
+ actionMenu: {
283
+ UNSAFE_className: $ebb597d7e6956599eca07e96d462420$$interop$default['react-spectrum-ListViewItem-actionmenu'],
284
+ isQuiet: true
261
285
  }
262
286
  }
263
287
  }, typeof item.rendered === 'string' ? /*#__PURE__*/_react.createElement(Content, null, item.rendered) : item.rendered, /*#__PURE__*/_react.createElement(ClearSlots, null, chevron)))));
@@ -303,7 +327,22 @@ const $cef2d30b40f481de186f4529c10639c$var$intlMessages = {
303
327
 
304
328
  const $cef2d30b40f481de186f4529c10639c$export$ListViewContext = /*#__PURE__*/_react.createContext(null);
305
329
 
306
- function $cef2d30b40f481de186f4529c10639c$export$useListLayout(state) {
330
+ const $cef2d30b40f481de186f4529c10639c$var$ROW_HEIGHTS = {
331
+ compact: {
332
+ medium: 32,
333
+ large: 40
334
+ },
335
+ regular: {
336
+ medium: 40,
337
+ large: 50
338
+ },
339
+ spacious: {
340
+ medium: 48,
341
+ large: 60
342
+ }
343
+ };
344
+
345
+ function $cef2d30b40f481de186f4529c10639c$export$useListLayout(state, density) {
307
346
  let {
308
347
  scale
309
348
  } = useProvider();
@@ -312,10 +351,10 @@ function $cef2d30b40f481de186f4529c10639c$export$useListLayout(state) {
312
351
  sensitivity: 'base'
313
352
  });
314
353
  let layout = useMemo(() => new ListLayout({
315
- estimatedRowHeight: scale === 'large' ? 40 : 32,
354
+ estimatedRowHeight: $cef2d30b40f481de186f4529c10639c$var$ROW_HEIGHTS[density][scale],
316
355
  padding: 0,
317
356
  collator
318
- }), [collator, scale]);
357
+ }), [collator, scale, density]);
319
358
  layout.collection = state.collection;
320
359
  layout.disabledKeys = state.disabledKeys;
321
360
  return layout;
@@ -326,7 +365,8 @@ function $cef2d30b40f481de186f4529c10639c$var$ListView(props, ref) {
326
365
  density = 'regular',
327
366
  loadingState,
328
367
  isQuiet,
329
- transitionDuration = 0
368
+ transitionDuration = 0,
369
+ onAction
330
370
  } = props;
331
371
  let domRef = useDOMRef(ref);
332
372
  let {
@@ -361,15 +401,19 @@ function $cef2d30b40f481de186f4529c10639c$var$ListView(props, ref) {
361
401
  }))
362
402
  }), [collection]);
363
403
  let state = useGridState(_babelRuntimeHelpersEsmExtends({}, props, {
364
- collection: gridCollection
404
+ collection: gridCollection,
405
+ focusMode: 'cell',
406
+ selectionBehavior: props.selectionStyle === 'highlight' ? 'replace' : 'toggle'
365
407
  }));
366
- let layout = $cef2d30b40f481de186f4529c10639c$export$useListLayout(state);
408
+ let layout = $cef2d30b40f481de186f4529c10639c$export$useListLayout(state, props.density || 'regular');
367
409
  let keyboardDelegate = useMemo(() => new GridKeyboardDelegate({
368
410
  collection: state.collection,
369
411
  disabledKeys: state.disabledKeys,
370
412
  ref: domRef,
371
413
  direction,
372
414
  collator,
415
+ // Focus the ListView cell instead of the row so that focus doesn't change with left/right arrow keys when there aren't any
416
+ // focusable children in the cell.
373
417
  focusMode: 'cell'
374
418
  }), [state, domRef, direction, collator]);
375
419
  let {
@@ -396,7 +440,7 @@ function $cef2d30b40f481de186f4529c10639c$var$ListView(props, ref) {
396
440
  ref: domRef,
397
441
  focusedKey: focusedKey,
398
442
  scrollDirection: "vertical",
399
- className: classNames($ebb597d7e6956599eca07e96d462420$$interop$default, 'react-spectrum-ListView', "react-spectrum-ListView--" + density, {
443
+ className: classNames($ebb597d7e6956599eca07e96d462420$$interop$default, 'react-spectrum-ListView', "react-spectrum-ListView--" + density, 'react-spectrum-ListView--emphasized', {
400
444
  'react-spectrum-ListView--quiet': isQuiet
401
445
  }, styleProps.className),
402
446
  layout: layout,
@@ -405,7 +449,9 @@ function $cef2d30b40f481de186f4529c10639c$var$ListView(props, ref) {
405
449
  }), (type, item) => {
406
450
  if (type === 'item') {
407
451
  return /*#__PURE__*/_react.createElement($ac0abb3242b77613ec5573307b88e112$export$ListViewItem, {
408
- item: item
452
+ item: item,
453
+ onAction: onAction,
454
+ isEmphasized: true
409
455
  });
410
456
  } else if (type === 'loader') {
411
457
  return /*#__PURE__*/_react.createElement($cef2d30b40f481de186f4529c10639c$var$CenteredWrapper, null, /*#__PURE__*/_react.createElement(ProgressCircle, {
@@ -1 +1 @@
1
- {"mappings":"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","sources":["./node_modules/@parcel/scope-hoisting/lib/helpers.js","./packages/@react-spectrum/list/src/listview.css","./packages/@react-spectrum/list/intl/ar-AE.json","./packages/@react-spectrum/list/intl/bg-BG.json","./packages/@react-spectrum/list/intl/cs-CZ.json","./packages/@react-spectrum/list/intl/da-DK.json","./packages/@react-spectrum/list/intl/de-DE.json","./packages/@react-spectrum/list/intl/el-GR.json","./packages/@react-spectrum/list/intl/en-US.json","./packages/@react-spectrum/list/intl/es-ES.json","./packages/@react-spectrum/list/intl/et-EE.json","./packages/@react-spectrum/list/intl/fi-FI.json","./packages/@react-spectrum/list/intl/fr-FR.json","./packages/@react-spectrum/list/intl/he-IL.json","./packages/@react-spectrum/list/intl/hr-HR.json","./packages/@react-spectrum/list/intl/hu-HU.json","./packages/@react-spectrum/list/intl/it-IT.json","./packages/@react-spectrum/list/intl/ja-JP.json","./packages/@react-spectrum/list/intl/ko-KR.json","./packages/@react-spectrum/list/intl/lt-LT.json","./packages/@react-spectrum/list/intl/lv-LV.json","./packages/@react-spectrum/list/intl/nb-NO.json","./packages/@react-spectrum/list/intl/nl-NL.json","./packages/@react-spectrum/list/intl/pl-PL.json","./packages/@react-spectrum/list/intl/pt-BR.json","./packages/@react-spectrum/list/intl/pt-PT.json","./packages/@react-spectrum/list/intl/ro-RO.json","./packages/@react-spectrum/list/intl/ru-RU.json","./packages/@react-spectrum/list/intl/sk-SK.json","./packages/@react-spectrum/list/intl/sl-SI.json","./packages/@react-spectrum/list/intl/sr-SP.json","./packages/@react-spectrum/list/intl/sv-SE.json","./packages/@react-spectrum/list/intl/tr-TR.json","./packages/@react-spectrum/list/intl/uk-UA.json","./packages/@react-spectrum/list/intl/zh-CN.json","./packages/@react-spectrum/list/intl/zh-TW.json","./packages/@react-spectrum/list/src/ListViewItem.tsx","./packages/@react-spectrum/list/src/ListView.tsx"],"sourcesContent":["function $parcel$interopDefault(a) {\n return a && a.__esModule ? a.default : a;\n}\n\nfunction $parcel$defineInteropFlag(a) {\n Object.defineProperty(a, '__esModule', {value: true});\n}\n\nfunction $parcel$exportWildcard(dest, source) {\n Object.keys(source).forEach(function(key) {\n if (key === 'default' || key === '__esModule') {\n return;\n }\n\n Object.defineProperty(dest, key, {\n enumerable: true,\n get: function get() {\n return source[key];\n },\n });\n });\n\n return dest;\n}\n\nfunction $parcel$missingModule(name) {\n var err = new Error(\"Cannot find module '\" + name + \"'\");\n err.code = 'MODULE_NOT_FOUND';\n throw err;\n}\n\nvar $parcel$global =\n typeof globalThis !== 'undefined'\n ? globalThis\n : typeof self !== 'undefined'\n ? self\n : typeof window !== 'undefined'\n ? window\n : typeof global !== 'undefined'\n ? global\n : {};\n","\n:root {\n --spectrum-listview-item-compact-padding-y: var(--spectrum-global-dimension-size-50);\n --spectrum-listview-item-regular-padding-y: var(--spectrum-global-dimension-size-75);\n --spectrum-listview-item-spacious-padding-y: var(--spectrum-global-dimension-size-100);\n}\n\n.react-spectrum-ListView {\n box-sizing: border-box;\n border-color: var(--spectrum-table-border-color, var(--spectrum-alias-border-color-mid));\n border-style: solid;\n position: relative;\n border-width: var(--spectrum-table-border-size, var(--spectrum-alias-border-size-thin));\n border-radius: var(--spectrum-table-border-radius, var(--spectrum-alias-border-radius-regular));\n overflow: auto;\n vertical-align: var(--spectrum-table-cell-vertical-alignment);\n border-collapse: separate;\n border-spacing: 0;\n transform: translate3d(0, 0, 0);\n padding: 0;\n background-color: var(--spectrum-table-background-color, var(--spectrum-global-color-gray-50));\n outline: 0;\n}\n\n.react-spectrum-ListView--quiet {\n background-color: var(--spectrum-alias-background-color-transparent);\n border-width: 0;\n}\n\n.react-spectrum-ListViewItem {\n display: grid; /* TODO: define grid areas */\n border-bottom: 1px solid var(--spectrum-tabel-cell-border-color, var(--spectrum-global-color-gray-300));\n box-sizing: border-box;\n font-size: var(--spectrum-table-cell-text-size, var(--spectrum-alias-font-size-default));\n font-weight: var(--spectrum-table-cell-text-font-weight, var(--spectrum-global-font-weight-regular));\n line-height: calc(var(--spectrum-table-cell-text-size, var(--spectrum-alias-font-size-default)) * var(--spectrum-table-cell-text-line-height, var(--spectrum-alias-body-text-line-height)) - 1px);\n padding: var(--spectrum-listview-item-regular-padding-y) var(--spectrum-global-dimension-size-150);\n transition: background-color var(--spectrum-global-animation-duration-100) ease-in-out;\n position: relative;\n /*background-color: var(--spectrum-table-background-color, var(--spectrum-global-color-gray-50));*/\n color: var(--spectrum-table-cell-text-color, var(--spectrum-alias-text-color));\n outline: 0;\n\n .react-spectrum-ListView--quiet & {\n border-bottom: 0;\n }\n\n &.is-hovered,\n &.is-focused {\n background-color: var(--spectrum-table-row-background-color-hover);\n\n .react-spectrum-ListView--quiet & {\n border-radius: var(--spectrum-table-border-radius, var(--spectrum-alias-border-radius-regular));\n }\n }\n\n &:focus-ring {\n background-color: var(--spectrum-table-row-background-color-hover);\n box-shadow: inset 0 0 0 2px var(--spectrum-table-cell-border-color-key-focus);\n border-radius: var(--spectrum-table-cell-border-radius-key-focus);\n }\n}\n\n.react-spectrum-ListViewItem-selected {\n background-color: var(--spectrum-table-row-background-color-selected, var(--spectrum-alias-highlight-selected));\n &.is-hovered {\n background-color: var(--spectrum-table-quiet-row-background-color-selected-hover);\n }\n}\n\n.react-spectrum-ListView--compact .react-spectrum-ListViewItem {\n padding-top: var(--spectrum-listview-item-compact-padding-y);\n padding-bottom: var(--spectrum-listview-item-compact-padding-y);\n}\n\n.react-spectrum-ListView--spacious .react-spectrum-ListViewItem {\n padding-top: var(--spectrum-listview-item-spacious-padding-y);\n padding-bottom: var(--spectrum-listview-item-spacious-padding-y);\n}\n\n.react-spectrum-ListViewItem-grid {\n display: grid;\n grid-template-columns: auto auto auto 1fr auto auto;\n grid-template-rows: 1fr auto;\n grid-template-areas:\n \"checkbox icon image content actions chevron\"\n \"checkbox icon image description actions chevron\"\n ;\n align-items: center;\n}\n\n.react-spectrum-ListViewItem-checkbox {\n grid-area: checkbox;\n align-items: center;\n justify-items: center;\n}\n\n.react-spectrum-ListViewItem-icon,\n.react-spectrum-ListViewItem-image {\n grid-area: image;\n align-items: center;\n justify-items: center;\n\n [dir=\"ltr\"] & {\n padding-right: var(--spectrum-global-dimension-size-100);\n }\n [dir=\"rtl\"] & {\n padding-left: var(--spectrum-global-dimension-size-100);\n }\n}\n\n.react-spectrum-ListViewItem-image {\n border-radius: var(--spectrum-global-dimension-size-25);\n width: var(--spectrum-global-dimension-size-400);\n height: var(--spectrum-global-dimension-size-400);\n}\n\n.react-spectrum-ListViewItem-content,\n.react-spectrum-ListViewItem-description {\n flex-grow: 1;\n}\n\n.react-spectrum-ListViewItem-content {\n grid-area: content;\n}\n\n.react-spectrum-ListViewItem-description {\n grid-area: description;\n}\n\n.react-spectrum-ListViewItem-actions {\n grid-area: actions;\n flex-grow: 0;\n flex-shrink: 0;\n}\n\n.react-spectrum-ListView-centeredWrapper {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 100%;\n height: 100%;\n}\n\n.react-spectrum-ListViewItem-parentIndicator {\n grid-area: chevron;\n\n [dir=\"ltr\"] & {\n padding-left: var(--spectrum-global-dimension-size-75);\n }\n [dir=\"rtl\"] & {\n padding-right: var(--spectrum-global-dimension-size-75);\n }\n}\n","{\n \"loading\": \"جارٍ التحميل...\",\n \"loadingMore\": \"جارٍ تحميل المزيد...\"\n}\n","{\n \"loading\": \"Зареждане...\",\n \"loadingMore\": \"Зареждане на още...\"\n}\n","{\n \"loading\": \"Načítání...\",\n \"loadingMore\": \"Načítání dalších...\"\n}\n","{\n \"loading\": \"Indlæser...\",\n \"loadingMore\": \"Indlæser flere...\"\n}\n","{\n \"loading\": \"Laden...\",\n \"loadingMore\": \"Mehr laden ...\"\n}\n","{\n \"loading\": \"Φόρτωση...\",\n \"loadingMore\": \"Φόρτωση περισσότερων...\"\n}\n","{\n \"loading\": \"Loading…\",\n \"loadingMore\": \"Loading more…\"\n}\n","{\n \"loading\": \"Cargando…\",\n \"loadingMore\": \"Cargando más…\"\n}\n","{\n \"loading\": \"Laadimine...\",\n \"loadingMore\": \"Laadi rohkem...\"\n}\n","{\n \"loading\": \"Ladataan…\",\n \"loadingMore\": \"Ladataan lisää…\"\n}\n","{\n \"loading\": \"Chargement...\",\n \"loadingMore\": \"Chargement supplémentaire...\"\n}\n","{\n \"loading\": \"טוען...\",\n \"loadingMore\": \"טוען עוד...\"\n}\n","{\n \"loading\": \"Učitavam...\",\n \"loadingMore\": \"Učitavam još...\"\n}\n","{\n \"loading\": \"Betöltés folyamatban…\",\n \"loadingMore\": \"Továbbiak betöltése folyamatban…\"\n}\n","{\n \"loading\": \"Caricamento...\",\n \"loadingMore\": \"Caricamento altri...\"\n}\n","{\n \"loading\": \"読み込み中...\",\n \"loadingMore\": \"さらに読み込み中...\"\n}\n","{\n \"loading\": \"로드 중…\",\n \"loadingMore\": \"추가 로드 중…\"\n}\n","{\n \"loading\": \"Įkeliama...\",\n \"loadingMore\": \"Įkeliama daugiau...\"\n}\n","{\n \"loading\": \"Notiek ielāde...\",\n \"loadingMore\": \"Tiek ielādēts vēl...\"\n}\n","{\n \"loading\": \"Laster inn ...\",\n \"loadingMore\": \"Laster inn flere ...\"\n}\n","{\n \"loading\": \"Laden...\",\n \"loadingMore\": \"Meer laden...\"\n}\n","{\n \"loading\": \"Ładowanie...\",\n \"loadingMore\": \"Wczytywanie większej liczby...\"\n}\n","{\n \"loading\": \"Carregando...\",\n \"loadingMore\": \"Carregando mais...\"\n}\n","{\n \"loading\": \"A carregar...\",\n \"loadingMore\": \"A carregar mais...\"\n}\n","{\n \"loading\": \"Se încarcă...\",\n \"loadingMore\": \"Se încarcă mai multe...\"\n}\n","{\n \"loading\": \"Загрузка...\",\n \"loadingMore\": \"Дополнительная загрузка...\"\n}\n","{\n \"loading\": \"Načítava sa...\",\n \"loadingMore\": \"Načítava sa viac...\"\n}\n","{\n \"loading\": \"Nalaganje ...\",\n \"loadingMore\": \"Nalaganje več vsebine ...\"\n}\n","{\n \"loading\": \"Učitavam...\",\n \"loadingMore\": \"Učitavam još...\"\n}\n","{\n \"loading\": \"Läser in...\",\n \"loadingMore\": \"Läser in mer...\"\n}\n","{\n \"loading\": \"Yükleniyor...\",\n \"loadingMore\": \"Daha fazla yükleniyor...\"\n}\n","{\n \"loading\": \"Завантаження…\",\n \"loadingMore\": \"Завантаження інших об’єктів...\"\n}\n","{\n \"loading\": \"正在加载...\",\n \"loadingMore\": \"正在加载更多...\"\n}\n","{\n \"loading\": \"載入中…\",\n \"loadingMore\": \"正在載入更多…\"\n}\n","/*\n * Copyright 2021 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\nimport {Checkbox} from '@react-spectrum/checkbox';\nimport ChevronLeftMedium from '@spectrum-icons/ui/ChevronLeftMedium';\nimport ChevronRightMedium from '@spectrum-icons/ui/ChevronRightMedium';\nimport {classNames, ClearSlots, SlotProvider} from '@react-spectrum/utils';\nimport {Content} from '@react-spectrum/view';\nimport {Grid} from '@react-spectrum/layout';\nimport listStyles from './listview.css';\nimport {ListViewContext} from './ListView';\nimport {mergeProps} from '@react-aria/utils';\nimport React, {useContext, useRef} from 'react';\nimport {useFocusRing} from '@react-aria/focus';\nimport {useGridCell, useGridRow, useGridSelectionCheckbox} from '@react-aria/grid';\nimport {useHover} from '@react-aria/interactions';\nimport {useLocale} from '@react-aria/i18n';\n\nexport function ListViewItem(props) {\n let {\n item\n } = props;\n let cellNode = [...item.childNodes][0];\n let {state} = useContext(ListViewContext);\n let {direction} = useLocale();\n let rowRef = useRef<HTMLDivElement>();\n let cellRef = useRef<HTMLDivElement>();\n let {\n isFocusVisible: isFocusVisibleWithin,\n focusProps: focusWithinProps\n } = useFocusRing({within: true});\n let {isFocusVisible, focusProps} = useFocusRing();\n let isDisabled = state.disabledKeys.has(item.key);\n let {hoverProps, isHovered} = useHover({isDisabled});\n let {rowProps} = useGridRow({\n node: item,\n isVirtualized: true\n }, state, rowRef);\n let {gridCellProps} = useGridCell({\n node: cellNode,\n focusMode: 'cell'\n }, state, cellRef);\n const mergedProps = mergeProps(\n rowProps,\n hoverProps,\n focusWithinProps,\n focusProps\n );\n let {checkboxProps} = useGridSelectionCheckbox({...props, key: item.key}, state);\n\n let chevron = null;\n if (item.props.hasChildItems) {\n chevron = direction === 'ltr'\n ? (\n <ChevronRightMedium\n aria-hidden=\"true\"\n UNSAFE_className={listStyles['react-spectrum-ListViewItem-parentIndicator']} />\n )\n : (\n <ChevronLeftMedium\n aria-hidden=\"true\"\n UNSAFE_className={listStyles['react-spectrum-ListViewItem-parentIndicator']} />\n );\n }\n\n let showCheckbox = state.selectionManager.selectionMode !== 'none';\n return (\n <div\n {...mergedProps}\n ref={rowRef}>\n <div\n className={\n classNames(\n listStyles,\n 'react-spectrum-ListViewItem',\n {\n 'is-focused': isFocusVisibleWithin,\n 'focus-ring': isFocusVisible,\n 'is-hovered': isHovered\n }\n )\n }\n ref={cellRef}\n {...gridCellProps}>\n <Grid UNSAFE_className={listStyles['react-spectrum-ListViewItem-grid']}>\n {showCheckbox && (\n <Checkbox\n UNSAFE_className={listStyles['react-spectrum-ListViewItem-checkbox']}\n {...checkboxProps}\n isEmphasized />\n )}\n <SlotProvider\n slots={{\n content: {UNSAFE_className: listStyles['react-spectrum-ListViewItem-content']},\n text: {UNSAFE_className: listStyles['react-spectrum-ListViewItem-content']},\n description: {UNSAFE_className: listStyles['react-spectrum-ListViewItem-description']},\n icon: {UNSAFE_className: listStyles['react-spectrum-ListViewItem-icon'], size: 'M'},\n image: {UNSAFE_className: listStyles['react-spectrum-ListViewItem-image']},\n link: {UNSAFE_className: listStyles['react-spectrum-ListViewItem-content'], isQuiet: true},\n actionButton: {UNSAFE_className: listStyles['react-spectrum-ListViewItem-actions'], isQuiet: true},\n actionGroup: {\n UNSAFE_className: listStyles['react-spectrum-ListViewItem-actions'],\n isQuiet: true,\n density: 'compact'\n }\n }}>\n {typeof item.rendered === 'string' ? <Content>{item.rendered}</Content> : item.rendered}\n <ClearSlots>\n {chevron}\n </ClearSlots>\n </SlotProvider>\n </Grid>\n </div>\n </div>\n );\n}\n","/*\n * Copyright 2021 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\nimport {\n AriaLabelingProps,\n CollectionBase,\n DOMProps,\n DOMRef,\n LoadingState,\n MultipleSelection,\n StyleProps\n} from '@react-types/shared';\nimport {classNames, useDOMRef, useStyleProps} from '@react-spectrum/utils';\nimport {GridCollection, useGridState} from '@react-stately/grid';\nimport {GridKeyboardDelegate, useGrid} from '@react-aria/grid';\n// @ts-ignore\nimport intlMessages from '../intl/*.json';\nimport {ListLayout} from '@react-stately/layout';\nimport {ListState, useListState} from '@react-stately/list';\nimport listStyles from './listview.css';\nimport {ListViewItem} from './ListViewItem';\nimport {ProgressCircle} from '@react-spectrum/progress';\nimport React, {ReactElement, useContext, useMemo} from 'react';\nimport {useCollator, useLocale, useMessageFormatter} from '@react-aria/i18n';\nimport {useProvider} from '@react-spectrum/provider';\nimport {Virtualizer} from '@react-aria/virtualizer';\n\n\nexport const ListViewContext = React.createContext(null);\n\nexport function useListLayout<T>(state: ListState<T>) {\n let {scale} = useProvider();\n let collator = useCollator({usage: 'search', sensitivity: 'base'});\n let layout = useMemo(() =>\n new ListLayout<T>({\n estimatedRowHeight: scale === 'large' ? 40 : 32,\n padding: 0,\n collator\n })\n , [collator, scale]);\n\n layout.collection = state.collection;\n layout.disabledKeys = state.disabledKeys;\n return layout;\n}\n\ninterface ListViewProps<T> extends CollectionBase<T>, DOMProps, AriaLabelingProps, StyleProps, MultipleSelection {\n /**\n * Sets the amount of vertical padding within each cell.\n * @default 'regular'\n */\n density?: 'compact' | 'regular' | 'spacious',\n isQuiet?: boolean,\n loadingState?: LoadingState,\n renderEmptyState?: () => JSX.Element,\n transitionDuration?: number\n}\n\nfunction ListView<T extends object>(props: ListViewProps<T>, ref: DOMRef<HTMLDivElement>) {\n let {\n density = 'regular',\n loadingState,\n isQuiet,\n transitionDuration = 0\n } = props;\n let domRef = useDOMRef(ref);\n let {collection} = useListState(props);\n let formatMessage = useMessageFormatter(intlMessages);\n\n let {styleProps} = useStyleProps(props);\n let {direction} = useLocale();\n let collator = useCollator({usage: 'search', sensitivity: 'base'});\n let gridCollection = useMemo(() => new GridCollection({\n columnCount: 1,\n items: [...collection].map(item => ({\n ...item,\n hasChildNodes: true,\n childNodes: [{\n key: `cell-${item.key}`,\n type: 'cell',\n index: 0,\n value: null,\n level: 0,\n rendered: null,\n textValue: item.textValue,\n hasChildNodes: false,\n childNodes: []\n }]\n }))\n }), [collection]);\n let state = useGridState({\n ...props,\n collection: gridCollection\n });\n let layout = useListLayout(state);\n let keyboardDelegate = useMemo(() => new GridKeyboardDelegate({\n collection: state.collection,\n disabledKeys: state.disabledKeys,\n ref: domRef,\n direction,\n collator,\n focusMode: 'cell'\n }), [state, domRef, direction, collator]);\n let {gridProps} = useGrid({\n ...props,\n isVirtualized: true,\n keyboardDelegate\n }, state, domRef);\n\n // Sync loading state into the layout.\n layout.isLoading = loadingState === 'loading';\n\n let focusedKey = state.selectionManager.focusedKey;\n let focusedItem = gridCollection.getItem(state.selectionManager.focusedKey);\n if (focusedItem?.parentKey != null) {\n focusedKey = focusedItem.parentKey;\n }\n\n return (\n <ListViewContext.Provider value={{state, keyboardDelegate}}>\n <Virtualizer\n {...gridProps}\n {...styleProps}\n ref={domRef}\n focusedKey={focusedKey}\n scrollDirection=\"vertical\"\n className={\n classNames(\n listStyles,\n 'react-spectrum-ListView',\n `react-spectrum-ListView--${density}`,\n {\n 'react-spectrum-ListView--quiet': isQuiet\n },\n styleProps.className\n )\n }\n layout={layout}\n collection={gridCollection}\n transitionDuration={transitionDuration}>\n {(type, item) => {\n if (type === 'item') {\n return (\n <ListViewItem item={item} />\n );\n } else if (type === 'loader') {\n return (\n <CenteredWrapper>\n <ProgressCircle\n isIndeterminate\n aria-label={state.collection.size > 0 ? formatMessage('loadingMore') : formatMessage('loading')} />\n </CenteredWrapper>\n );\n } else if (type === 'placeholder') {\n let emptyState = props.renderEmptyState ? props.renderEmptyState() : null;\n if (emptyState == null) {\n return null;\n }\n\n return (\n <CenteredWrapper>\n {emptyState}\n </CenteredWrapper>\n );\n }\n\n }}\n </Virtualizer>\n </ListViewContext.Provider>\n );\n}\n\n\nfunction CenteredWrapper({children}) {\n let {state} = useContext(ListViewContext);\n return (\n <div\n role=\"row\"\n aria-rowindex={state.collection.size + 1}\n className={classNames(listStyles, 'react-spectrum-ListView-centeredWrapper')}>\n <div role=\"gridcell\">\n {children}\n </div>\n </div>\n );\n}\n\nconst _ListView = React.forwardRef(ListView) as <T>(props: ListViewProps<T> & {ref?: DOMRef<HTMLDivElement>}) => ReactElement;\nexport {_ListView as ListView};\n"],"names":["$parcel$interopDefault","a","__esModule","default","JSON","parse","ListViewItem","props","item","cellNode","childNodes","state","useContext","direction","useLocale","rowRef","useRef","cellRef","isFocusVisible","isFocusVisibleWithin","focusProps","focusWithinProps","useFocusRing","within","isDisabled","disabledKeys","has","key","hoverProps","isHovered","useHover","rowProps","useGridRow","node","isVirtualized","gridCellProps","useGridCell","focusMode","mergedProps","mergeProps","checkboxProps","useGridSelectionCheckbox","chevron","hasChildItems","showCheckbox","selectionManager","selectionMode","classNames","content","UNSAFE_className","text","description","icon","size","image","link","isQuiet","actionButton","actionGroup","density","rendered","ListViewContext","React","createContext","useListLayout","scale","useProvider","collator","useCollator","usage","sensitivity","layout","useMemo","ListLayout","estimatedRowHeight","padding","collection","ListView","ref","loadingState","transitionDuration","domRef","useDOMRef","useListState","formatMessage","useMessageFormatter","intlMessages","styleProps","useStyleProps","gridCollection","GridCollection","columnCount","items","map","hasChildNodes","type","index","value","level","textValue","useGridState","keyboardDelegate","GridKeyboardDelegate","gridProps","useGrid","isLoading","focusedKey","focusedItem","getItem","parentKey","className","emptyState","renderEmptyState","CenteredWrapper","children","_ListView","forwardRef"],"version":3,"file":"module.js.map"}
1
+ {"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAAA,SAASA,sBAAT,CAAgCC,CAAhC,EAAmC;AACjC,SAAOA,CAAC,IAAIA,CAAC,CAACC,UAAP,GAAoBD,CAAC,CAACE,OAAtB,GAAgCF,CAAvC;AACD;;;;ACFD,2CAAiB;AACf,6BAA2B,gCADZ;AAEf,oCAAkC,uCAFnB;AAGf,iCAA+B,oCAHhB;AAIf,yCAAuC,4CAJxB;AAKf,iBAAe,oBALA;AAMf,gBAAc,mBANC;AAOf,eAAa,kBAPE;AAQf,0BAAwB,6BART;AASf,gBAAc,mBATC;AAUf,gBAAc,mBAVC;AAWf,kBAAgB,qBAXD;AAYf,sCAAoC,yCAZrB;AAaf,uCAAqC,0CAbtB;AAcf,sCAAoC,yCAdrB;AAef,0CAAwC,6CAfzB;AAgBf,sCAAoC,yCAhBrB;AAiBf,uCAAqC,0CAjBtB;AAkBf,yCAAuC,4CAlBxB;AAmBf,6CAA2C,gDAnB5B;AAoBf,yCAAuC,4CApBxB;AAqBf,4CAA0C,+CArB3B;AAsBf,6CAA2C,gDAtB5B;AAuBf,iDAA+C;AAvBhC,CAAjB;;;ACAA,2CAAiBG,IAAI,CAACC,KAAL,CAAW,4EAAX,CAAjB;;;ACAA,4CAAiBD,IAAI,CAACC,KAAL,CAAW,wEAAX,CAAjB;;;ACAA,0CAAiBD,IAAI,CAACC,KAAL,CAAW,uEAAX,CAAjB;;;ACAA,yCAAiBD,IAAI,CAACC,KAAL,CAAW,qEAAX,CAAjB;;;ACAA,yCAAiBD,IAAI,CAACC,KAAL,CAAW,+DAAX,CAAjB;;;ACAA,4CAAiBD,IAAI,CAACC,KAAL,CAAW,0EAAX,CAAjB;;;ACAA,4CAAiBD,IAAI,CAACC,KAAL,CAAW,8DAAX,CAAjB;;;ACAA,4CAAiBD,IAAI,CAACC,KAAL,CAAW,+DAAX,CAAjB;;;ACAA,2CAAiBD,IAAI,CAACC,KAAL,CAAW,oEAAX,CAAjB;;;ACAA,4CAAiBD,IAAI,CAACC,KAAL,CAAW,iEAAX,CAAjB;;;ACAA,2CAAiBD,IAAI,CAACC,KAAL,CAAW,kFAAX,CAAjB;;;ACAA,4CAAiBD,IAAI,CAACC,KAAL,CAAW,2DAAX,CAAjB;;;ACAA,0CAAiBD,IAAI,CAACC,KAAL,CAAW,mEAAX,CAAjB;;;ACAA,uCAAiBD,IAAI,CAACC,KAAL,CAAW,8FAAX,CAAjB;;;ACAA,sCAAiBD,IAAI,CAACC,KAAL,CAAW,2EAAX,CAAjB;;;ACAA,4CAAiBD,IAAI,CAACC,KAAL,CAAW,4DAAX,CAAjB;;;ACAA,4CAAiBD,IAAI,CAACC,KAAL,CAAW,sDAAX,CAAjB;;;ACAA,2CAAiBD,IAAI,CAACC,KAAL,CAAW,uEAAX,CAAjB;;;ACAA,0CAAiBD,IAAI,CAACC,KAAL,CAAW,6EAAX,CAAjB;;;ACAA,qCAAiBD,IAAI,CAACC,KAAL,CAAW,2EAAX,CAAjB;;;ACAA,2CAAiBD,IAAI,CAACC,KAAL,CAAW,8DAAX,CAAjB;;;ACAA,4CAAiBD,IAAI,CAACC,KAAL,CAAW,mFAAX,CAAjB;;;ACAA,uCAAiBD,IAAI,CAACC,KAAL,CAAW,wEAAX,CAAjB;;;ACAA,2CAAiBD,IAAI,CAACC,KAAL,CAAW,wEAAX,CAAjB;;;ACAA,yCAAiBD,IAAI,CAACC,KAAL,CAAW,6EAAX,CAAjB;;;ACAA,0CAAiBD,IAAI,CAACC,KAAL,CAAW,8EAAX,CAAjB;;;ACAA,yCAAiBD,IAAI,CAACC,KAAL,CAAW,0EAAX,CAAjB;;;ACAA,0CAAiBD,IAAI,CAACC,KAAL,CAAW,+EAAX,CAAjB;;;ACAA,2CAAiBD,IAAI,CAACC,KAAL,CAAW,mEAAX,CAAjB;;;ACAA,4CAAiBD,IAAI,CAACC,KAAL,CAAW,mEAAX,CAAjB;;;ACAA,2CAAiBD,IAAI,CAACC,KAAL,CAAW,8EAAX,CAAjB;;;ACAA,yCAAiBD,IAAI,CAACC,KAAL,CAAW,oFAAX,CAAjB;;;ACAA,2CAAiBD,IAAI,CAACC,KAAL,CAAW,yDAAX,CAAjB;;;ACAA,4CAAiBD,IAAI,CAACC,KAAL,CAAW,oDAAX,CAAjB;;;AC0BO,SAASC,qDAAT,CAAsBC,KAAtB,EAA6B;AAClC,MAAI;AACFC,IAAAA,IADE;AAEFC,IAAAA,QAFE;AAGFC,IAAAA;AAHE,MAIAH,KAJJ;AAKA,MAAII,QAAQ,GAAG,CAAC,GAAGH,IAAI,CAACI,UAAT,EAAqB,CAArB,CAAf;AACA,MAAI;AAACC,IAAAA;AAAD,MAAUC,UAAU,yDAAxB;AACA,MAAI;AAACC,IAAAA;AAAD,MAAcC,SAAS,EAA3B;AACA,MAAIC,MAAM,GAAGC,MAAM,EAAnB;AACA,MAAIC,OAAO,GAAID,MAAM,EAArB;AACA,MAAI;AACFE,IAAAA,cAAc,EAAEC,oBADd;AAEFC,IAAAA,UAAU,EAAEC;AAFV,MAGAC,YAAY,CAAC;AAACC,IAAAA,MAAM,EAAE;AAAT,GAAD,CAHhB;AAIA,MAAI;AAACL,IAAAA,cAAD;AAAiBE,IAAAA;AAAjB,MAA+BE,YAAY,EAA/C;AACA,MAAIE,iBAAiB,GAAGb,KAAK,CAACc,gBAAN,CAAuBC,aAAvB,KAAyC,MAAzC,IAAmDnB,QAA3E;AACA,MAAIoB,UAAU,GAAG,CAACH,iBAAD,IAAsBb,KAAK,CAACiB,YAAN,CAAmBC,GAAnB,CAAuBvB,IAAI,CAACwB,GAA5B,CAAvC;AACA,MAAI;AAACC,IAAAA,UAAD;AAAaC,IAAAA;AAAb,MAA0BC,QAAQ,CAAC;AAACN,IAAAA;AAAD,GAAD,CAAtC;AACA,MAAI;AAACO,IAAAA,UAAD;AAAaC,IAAAA;AAAb,MAA0BC,QAAQ,CAAC;AAACT,IAAAA;AAAD,GAAD,CAAtC;AACA,MAAI;AAACU,IAAAA;AAAD,MAAaC,UAAU,CAAC;AAC1BC,IAAAA,IAAI,EAAEjC,IADoB;AAE1BkC,IAAAA,aAAa,EAAE,IAFW;AAG1BjC,IAAAA,QAAQ,EAAEA,QAAQ,GAAG,MAAMA,QAAQ,CAACD,IAAI,CAACwB,GAAN,CAAjB,GAA8B;AAHtB,GAAD,EAIxBnB,KAJwB,EAIjBI,MAJiB,CAA3B;AAKA,MAAI;AAAC0B,IAAAA;AAAD,MAAkBC,WAAW,CAAC;AAChCH,IAAAA,IAAI,EAAE9B,QAD0B;AAEhCkC,IAAAA,SAAS,EAAE;AAFqB,GAAD,EAG9BhC,KAH8B,EAGvBM,OAHuB,CAAjC;AAIA,QAAM2B,WAAW,GAAGC,UAAU,CAC5BJ,aAD4B,EAE5BV,UAF4B,EAG5BV,gBAH4B,EAI5BD,UAJ4B,CAA9B;AAMA,MAAI;AAAC0B,IAAAA;AAAD,MAAkBC,wBAAwB,oCAAK1C,KAAL;AAAYyB,IAAAA,GAAG,EAAExB,IAAI,CAACwB;AAAtB,MAA4BnB,KAA5B,CAA9C;AAEA,MAAIqC,OAAO,GAAG,IAAd;;AACA,MAAI1C,IAAI,CAACD,KAAL,CAAW4C,aAAf,EAA8B;AAC5BD,IAAAA,OAAO,GAAGnC,SAAS,KAAK,KAAd,gBAEN,qBAAC,kCAAD;AACE,qBAAY,MADd;AAEE,MAAA,gBAAgB,EAAE,kDAAW,6CAAX;AAFpB,MAFM,gBAON,qBAAC,iCAAD;AACE,qBAAY,MADd;AAEE,MAAA,gBAAgB,EAAE,kDAAW,6CAAX;AAFpB,MAPJ;AAWD;;AAED,MAAIqC,YAAY,GAAGvC,KAAK,CAACc,gBAAN,CAAuBC,aAAvB,KAAyC,MAAzC,IAAmDf,KAAK,CAACc,gBAAN,CAAuB0B,iBAAvB,KAA6C,QAAnH;AACA,MAAIC,UAAU,GAAGzC,KAAK,CAACc,gBAAN,CAAuB2B,UAAvB,CAAkC9C,IAAI,CAACwB,GAAvC,CAAjB;AACA,sBACE,+DACMe,UAAU,CAACR,QAAD,EAAWH,UAAX,CADhB;AAEE,IAAA,GAAG,EAAEnB;AAFP,mBAGE;AACE,IAAA,SAAS,EACPsC,UAAU,oDAER,6BAFQ,EAGR;AACE,mBAAalB,SADf;AAEE,oBAAchB,oBAFhB;AAGE,oBAAcD,cAHhB;AAIE,oBAAcc,SAJhB;AAKE,qBAAeoB,UALjB;AAME,8BAAwBzC,KAAK,CAACc,gBAAN,CAAuB2B,UAAvB,CAAkC9C,IAAI,CAACgD,OAAvC,CAN1B;AAOE,yDAAmD3C,KAAK,CAACc,gBAAN,CAAuB0B,iBAAvB,KAA6C,SAA7C,KAA2DC,UAAU,IAAIzC,KAAK,CAACc,gBAAN,CAAuB2B,UAAvB,CAAkC9C,IAAI,CAACiD,OAAvC,CAAzE;AAPrD,KAHQ,CAFd;AAgBE,IAAA,GAAG,EAAEtC;AAhBP,KAiBM2B,WAjBN,gBAkBE,qBAAC,IAAD;AAAM,IAAA,gBAAgB,EAAE,kDAAW,kCAAX;AAAxB,KACGM,YAAY,iBACX,qBAAC,QAAD;AACE,IAAA,gBAAgB,EAAE,kDAAW,sCAAX;AADpB,KAEMJ,aAFN;AAGE,IAAA,YAAY,EAAEtC;AAHhB,KAFJ,eAOE,qBAAC,YAAD;AACE,IAAA,KAAK,EAAE;AACLgD,MAAAA,OAAO,EAAE;AAACC,QAAAA,gBAAgB,EAAE,kDAAW,qCAAX;AAAnB,OADJ;AAELC,MAAAA,IAAI,EAAE;AAACD,QAAAA,gBAAgB,EAAE,kDAAW,qCAAX;AAAnB,OAFD;AAGLE,MAAAA,WAAW,EAAE;AAACF,QAAAA,gBAAgB,EAAE,kDAAW,yCAAX;AAAnB,OAHR;AAILG,MAAAA,IAAI,EAAE;AAACH,QAAAA,gBAAgB,EAAE,kDAAW,kCAAX,CAAnB;AAAmEI,QAAAA,IAAI,EAAE;AAAzE,OAJD;AAKLC,MAAAA,KAAK,EAAE;AAACL,QAAAA,gBAAgB,EAAE,kDAAW,mCAAX;AAAnB,OALF;AAMLM,MAAAA,IAAI,EAAE;AAACN,QAAAA,gBAAgB,EAAE,kDAAW,qCAAX,CAAnB;AAAsEO,QAAAA,OAAO,EAAE;AAA/E,OAND;AAOLC,MAAAA,YAAY,EAAE;AAACR,QAAAA,gBAAgB,EAAE,kDAAW,qCAAX,CAAnB;AAAsEO,QAAAA,OAAO,EAAE;AAA/E,OAPT;AAQLE,MAAAA,WAAW,EAAE;AACXT,QAAAA,gBAAgB,EAAE,kDAAW,qCAAX,CADP;AAEXO,QAAAA,OAAO,EAAE,IAFE;AAGXG,QAAAA,OAAO,EAAE;AAHE,OARR;AAaLC,MAAAA,UAAU,EAAE;AAACX,QAAAA,gBAAgB,EAAE,kDAAW,wCAAX,CAAnB;AAAyEO,QAAAA,OAAO,EAAE;AAAlF;AAbP;AADT,KAgBG,OAAO1D,IAAI,CAAC+D,QAAZ,KAAyB,QAAzB,gBAAoC,qBAAC,OAAD,QAAU/D,IAAI,CAAC+D,QAAf,CAApC,GAAyE/D,IAAI,CAAC+D,QAhBjF,eAiBE,qBAAC,UAAD,QACGrB,OADH,CAjBF,CAPF,CAlBF,CAHF,CADF;AAsDD;;AC9GD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAaO,MAAMsB,uDAAe,gBAAGC,MAAK,CAACC,aAAN,CAAoB,IAApB,CAAxB;;AAEP,MAAMC,gDAAW,GAAG;AAClBC,EAAAA,OAAO,EAAE;AACPC,IAAAA,MAAM,EAAE,EADD;AAEPC,IAAAA,KAAK,EAAE;AAFA,GADS;AAKlBC,EAAAA,OAAO,EAAE;AACPF,IAAAA,MAAM,EAAE,EADD;AAEPC,IAAAA,KAAK,EAAE;AAFA,GALS;AASlBE,EAAAA,QAAQ,EAAE;AACRH,IAAAA,MAAM,EAAE,EADA;AAERC,IAAAA,KAAK,EAAE;AAFC;AATQ,CAApB;;AAeO,SAASG,qDAAT,CAA0BpE,KAA1B,EAA+CwD,OAA/C,EAAqF;AAC1F,MAAI;AAACa,IAAAA;AAAD,MAAUC,WAAW,EAAzB;AACA,MAAIC,QAAQ,GAAGC,WAAW,CAAC;AAACC,IAAAA,KAAK,EAAE,QAAR;AAAkBC,IAAAA,WAAW,EAAE;AAA/B,GAAD,CAA1B;AACA,MAAIC,MAAM,GAAGC,OAAO,CAAC,MACjB,IAAIC,UAAJ,CAAkB;AAChBC,IAAAA,kBAAkB,EAAEhB,gDAAW,CAACN,OAAD,CAAX,CAAqBa,KAArB,CADJ;AAEhBU,IAAAA,OAAO,EAAE,CAFO;AAGhBR,IAAAA;AAHgB,GAAlB,CADgB,EAMhB,CAACA,QAAD,EAAWF,KAAX,EAAkBb,OAAlB,CANgB,CAApB;AAQAmB,EAAAA,MAAM,CAACK,UAAP,GAAoBhF,KAAK,CAACgF,UAA1B;AACAL,EAAAA,MAAM,CAAC1D,YAAP,GAAsBjB,KAAK,CAACiB,YAA5B;AACA,SAAO0D,MAAP;AACD;;AAeD,SAASM,6CAAT,CAAoCvF,KAApC,EAA6DwF,GAA7D,EAA0F;AACxF,MAAI;AACF1B,IAAAA,OAAO,GAAG,SADR;AAEF2B,IAAAA,YAFE;AAGF9B,IAAAA,OAHE;AAIF+B,IAAAA,kBAAkB,GAAG,CAJnB;AAKFxF,IAAAA;AALE,MAMAF,KANJ;AAOA,MAAI2F,MAAM,GAAGC,SAAS,CAACJ,GAAD,CAAtB;AACA,MAAI;AAACF,IAAAA;AAAD,MAAeO,YAAY,CAAC7F,KAAD,CAA/B;AACA,MAAI8F,aAAa,GAAGC,mBAAmB,CAACC,iDAAD,CAAvC;AAEA,MAAI;AAACC,IAAAA;AAAD,MAAeC,aAAa,CAAClG,KAAD,CAAhC;AACA,MAAI;AAACQ,IAAAA;AAAD,MAAcC,SAAS,EAA3B;AACA,MAAIoE,QAAQ,GAAGC,WAAW,CAAC;AAACC,IAAAA,KAAK,EAAE,QAAR;AAAkBC,IAAAA,WAAW,EAAE;AAA/B,GAAD,CAA1B;AACA,MAAImB,cAAc,GAAGjB,OAAO,CAAC,MAAM,IAAIkB,cAAJ,CAAmB;AACpDC,IAAAA,WAAW,EAAE,CADuC;AAEpDC,IAAAA,KAAK,EAAE,CAAC,GAAGhB,UAAJ,EAAgBiB,GAAhB,CAAoBtG,IAAI,uCAC1BA,IAD0B;AAE7BuG,MAAAA,aAAa,EAAE,IAFc;AAG7BnG,MAAAA,UAAU,EAAE,CAAC;AACXoB,QAAAA,GAAG,YAAUxB,IAAI,CAACwB,GADP;AAEXgF,QAAAA,IAAI,EAAE,MAFK;AAGXC,QAAAA,KAAK,EAAE,CAHI;AAIXC,QAAAA,KAAK,EAAE,IAJI;AAKXC,QAAAA,KAAK,EAAE,CALI;AAMX5C,QAAAA,QAAQ,EAAE,IANC;AAOX6C,QAAAA,SAAS,EAAE5G,IAAI,CAAC4G,SAPL;AAQXL,QAAAA,aAAa,EAAE,KARJ;AASXnG,QAAAA,UAAU,EAAE;AATD,OAAD;AAHiB,MAAxB;AAF6C,GAAnB,CAAP,EAiBxB,CAACiF,UAAD,CAjBwB,CAA5B;AAkBA,MAAIhF,KAAK,GAAGwG,YAAY,oCACnB9G,KADmB;AAEtBsF,IAAAA,UAAU,EAAEa,cAFU;AAGtB7D,IAAAA,SAAS,EAAE,MAHW;AAItBQ,IAAAA,iBAAiB,EAAE9C,KAAK,CAAC+G,cAAN,KAAyB,WAAzB,GAAuC,SAAvC,GAAmD;AAJhD,KAAxB;AAMA,MAAI9B,MAAM,GAAGP,qDAAa,CAACpE,KAAD,EAAQN,KAAK,CAAC8D,OAAN,IAAiB,SAAzB,CAA1B;AACA,MAAIkD,gBAAgB,GAAG9B,OAAO,CAAC,MAAM,IAAI+B,oBAAJ,CAAyB;AAC5D3B,IAAAA,UAAU,EAAEhF,KAAK,CAACgF,UAD0C;AAE5D/D,IAAAA,YAAY,EAAEjB,KAAK,CAACiB,YAFwC;AAG5DiE,IAAAA,GAAG,EAAEG,MAHuD;AAI5DnF,IAAAA,SAJ4D;AAK5DqE,IAAAA,QAL4D;AAM5D;AACA;AACAvC,IAAAA,SAAS,EAAE;AARiD,GAAzB,CAAP,EAS1B,CAAChC,KAAD,EAAQqF,MAAR,EAAgBnF,SAAhB,EAA2BqE,QAA3B,CAT0B,CAA9B;AAUA,MAAI;AAACqC,IAAAA;AAAD,MAAcC,OAAO,oCACpBnH,KADoB;AAEvBmC,IAAAA,aAAa,EAAE,IAFQ;AAGvB6E,IAAAA;AAHuB,MAItB1G,KAJsB,EAIfqF,MAJe,CAAzB,CAlDwF,CAwDxF;;AACAV,EAAAA,MAAM,CAACmC,SAAP,GAAmB3B,YAAY,KAAK,SAApC;AAEA,MAAI4B,UAAU,GAAG/G,KAAK,CAACc,gBAAN,CAAuBiG,UAAxC;AACA,MAAIC,WAAW,GAAGnB,cAAc,CAACoB,OAAf,CAAuBjH,KAAK,CAACc,gBAAN,CAAuBiG,UAA9C,CAAlB;;AACA,MAAI,CAAAC,WAAW,QAAX,YAAAA,WAAW,CAAEE,SAAb,KAA0B,IAA9B,EAAoC;AAClCH,IAAAA,UAAU,GAAGC,WAAW,CAACE,SAAzB;AACD;;AAED,sBACE,qBAAC,uDAAD,CAAiB,QAAjB;AAA0B,IAAA,KAAK,EAAE;AAAClH,MAAAA,KAAD;AAAQ0G,MAAAA;AAAR;AAAjC,kBACE,qBAAC,WAAD,qCACME,SADN,EAEMjB,UAFN;AAGE,IAAA,GAAG,EAAEN,MAHP;AAIE,IAAA,UAAU,EAAE0B,UAJd;AAKE,IAAA,eAAe,EAAC,UALlB;AAME,IAAA,SAAS,EACPrE,UAAU,oDAER,yBAFQ,gCAGoBc,OAHpB,EAIR,qCAJQ,EAKR;AACE,wCAAkCH;AADpC,KALQ,EAQRsC,UAAU,CAACwB,SARH,CAPd;AAkBE,IAAA,MAAM,EAAExC,MAlBV;AAmBE,IAAA,UAAU,EAAEkB,cAnBd;AAoBE,IAAA,kBAAkB,EAAET;AApBtB,MAqBG,CAACe,IAAD,EAAOxG,IAAP,KAAgB;AACf,QAAIwG,IAAI,KAAK,MAAb,EAAqB;AACnB,0BACE;AAAc,QAAA,IAAI,EAAExG,IAApB;AAA0B,QAAA,QAAQ,EAAEC,QAApC;AAA8C,QAAA,YAAY;AAA1D,QADF;AAGD,KAJD,MAIO,IAAIuG,IAAI,KAAK,QAAb,EAAuB;AAC5B,0BACE,qBAAC,oDAAD,qBACE,qBAAC,cAAD;AACE,QAAA,eAAe,MADjB;AAEE,sBAAYnG,KAAK,CAACgF,UAAN,CAAiB9B,IAAjB,GAAwB,CAAxB,GAA4BsC,aAAa,CAAC,aAAD,CAAzC,GAA2DA,aAAa,CAAC,SAAD;AAFtF,QADF,CADF;AAOD,KARM,MAQA,IAAIW,IAAI,KAAK,aAAb,EAA4B;AACjC,UAAIiB,UAAU,GAAG1H,KAAK,CAAC2H,gBAAN,GAAyB3H,KAAK,CAAC2H,gBAAN,EAAzB,GAAoD,IAArE;;AACA,UAAID,UAAU,IAAI,IAAlB,EAAwB;AACtB,eAAO,IAAP;AACD;;AAED,0BACE,qBAAC,oDAAD,QACGA,UADH,CADF;AAKD;AAEF,GA/CH,CADF,CADF;AAqDD;;AAGD,SAASE,oDAAT,OAAqC;AAAA,MAAZ;AAACC,IAAAA;AAAD,GAAY;AACnC,MAAI;AAACvH,IAAAA;AAAD,MAAUC,UAAU,CAAC0D,uDAAD,CAAxB;AACA,sBACE;AACE,IAAA,IAAI,EAAC,KADP;AAEE,qBAAe3D,KAAK,CAACgF,UAAN,CAAiB9B,IAAjB,GAAwB,CAFzC;AAGE,IAAA,SAAS,EAAER,UAAU,oDAAa,yCAAb;AAHvB,kBAIE;AAAK,IAAA,IAAI,EAAC;AAAV,KACG6E,QADH,CAJF,CADF;AAUD;;OAED,MAAMC,QAAS,gBAAG5D,MAAK,CAAC6D,UAAN,CAAiBxC,6CAAjB,CAAlB","sources":["./node_modules/@parcel/scope-hoisting/lib/helpers.js","./packages/@react-spectrum/list/src/listview.css","./packages/@react-spectrum/list/intl/ar-AE.json","./packages/@react-spectrum/list/intl/bg-BG.json","./packages/@react-spectrum/list/intl/cs-CZ.json","./packages/@react-spectrum/list/intl/da-DK.json","./packages/@react-spectrum/list/intl/de-DE.json","./packages/@react-spectrum/list/intl/el-GR.json","./packages/@react-spectrum/list/intl/en-US.json","./packages/@react-spectrum/list/intl/es-ES.json","./packages/@react-spectrum/list/intl/et-EE.json","./packages/@react-spectrum/list/intl/fi-FI.json","./packages/@react-spectrum/list/intl/fr-FR.json","./packages/@react-spectrum/list/intl/he-IL.json","./packages/@react-spectrum/list/intl/hr-HR.json","./packages/@react-spectrum/list/intl/hu-HU.json","./packages/@react-spectrum/list/intl/it-IT.json","./packages/@react-spectrum/list/intl/ja-JP.json","./packages/@react-spectrum/list/intl/ko-KR.json","./packages/@react-spectrum/list/intl/lt-LT.json","./packages/@react-spectrum/list/intl/lv-LV.json","./packages/@react-spectrum/list/intl/nb-NO.json","./packages/@react-spectrum/list/intl/nl-NL.json","./packages/@react-spectrum/list/intl/pl-PL.json","./packages/@react-spectrum/list/intl/pt-BR.json","./packages/@react-spectrum/list/intl/pt-PT.json","./packages/@react-spectrum/list/intl/ro-RO.json","./packages/@react-spectrum/list/intl/ru-RU.json","./packages/@react-spectrum/list/intl/sk-SK.json","./packages/@react-spectrum/list/intl/sl-SI.json","./packages/@react-spectrum/list/intl/sr-SP.json","./packages/@react-spectrum/list/intl/sv-SE.json","./packages/@react-spectrum/list/intl/tr-TR.json","./packages/@react-spectrum/list/intl/uk-UA.json","./packages/@react-spectrum/list/intl/zh-CN.json","./packages/@react-spectrum/list/intl/zh-TW.json","./packages/@react-spectrum/list/src/ListViewItem.tsx","./packages/@react-spectrum/list/src/ListView.tsx"],"sourcesContent":["function $parcel$interopDefault(a) {\n return a && a.__esModule ? a.default : a;\n}\n\nfunction $parcel$defineInteropFlag(a) {\n Object.defineProperty(a, '__esModule', {value: true});\n}\n\nfunction $parcel$exportWildcard(dest, source) {\n Object.keys(source).forEach(function(key) {\n if (key === 'default' || key === '__esModule') {\n return;\n }\n\n Object.defineProperty(dest, key, {\n enumerable: true,\n get: function get() {\n return source[key];\n },\n });\n });\n\n return dest;\n}\n\nfunction $parcel$missingModule(name) {\n var err = new Error(\"Cannot find module '\" + name + \"'\");\n err.code = 'MODULE_NOT_FOUND';\n throw err;\n}\n\nvar $parcel$global =\n typeof globalThis !== 'undefined'\n ? globalThis\n : typeof self !== 'undefined'\n ? self\n : typeof window !== 'undefined'\n ? window\n : typeof global !== 'undefined'\n ? global\n : {};\n","\n:root {\n --spectrum-listview-item-compact-padding-y: var(--spectrum-global-dimension-size-50);\n --spectrum-listview-item-regular-padding-y: var(--spectrum-global-dimension-size-75);\n --spectrum-listview-item-spacious-padding-y: var(--spectrum-global-dimension-size-100);\n --spectrum-listview-border-width: var(--spectrum-table-border-size, var(--spectrum-alias-border-size-thin));\n --spectrum-listview-border-radius: var(--spectrum-table-border-radius, var(--spectrum-alias-border-radius-regular));\n --spectrum-listview-item-start-end-border-radius: calc(var(--spectrum-listview-border-radius) - var(--spectrum-listview-border-width));\n}\n\n.react-spectrum-ListView {\n box-sizing: border-box;\n border-color: var(--spectrum-table-border-color, var(--spectrum-alias-border-color-mid));\n border-style: solid;\n position: relative;\n border-width: var(--spectrum-listview-border-width);\n border-radius: var(--spectrum-listview-border-radius);\n overflow: auto;\n vertical-align: var(--spectrum-table-cell-vertical-alignment);\n border-collapse: separate;\n border-spacing: 0;\n transform: translate3d(0, 0, 0);\n padding: 0;\n background-color: var(--spectrum-table-background-color, var(--spectrum-global-color-gray-50));\n outline: 0;\n\n [role=\"row\"] {\n outline: none;\n }\n}\n\n.react-spectrum-ListView--quiet {\n background-color: var(--spectrum-alias-background-color-transparent);\n border-width: 0;\n}\n\n.react-spectrum-ListViewItem {\n display: grid; /* TODO: define grid areas */\n border: 1px solid transparent;\n border-bottom-color: var(--spectrum-table-cell-border-color, var(--spectrum-global-color-gray-300));\n box-sizing: border-box;\n font-size: var(--spectrum-table-cell-text-size, var(--spectrum-alias-font-size-default));\n font-weight: var(--spectrum-table-cell-text-font-weight, var(--spectrum-global-font-weight-regular));\n line-height: calc(var(--spectrum-table-cell-text-size, var(--spectrum-alias-font-size-default)) * var(--spectrum-table-cell-text-line-height, var(--spectrum-alias-body-text-line-height)) - 1px);\n padding: var(--spectrum-listview-item-regular-padding-y) var(--spectrum-global-dimension-size-150);\n transition: background-color var(--spectrum-global-animation-duration-100) ease-in-out;\n position: relative;\n /*background-color: var(--spectrum-table-background-color, var(--spectrum-global-color-gray-50));*/\n color: var(--spectrum-table-cell-text-color, var(--spectrum-alias-text-color));\n outline: 0;\n min-height: var(--spectrum-global-dimension-size-500);\n\n .react-spectrum-ListView--emphasized & {\n &.is-selected {\n background-color: var(--spectrum-table-row-background-color-selected);\n border-color: var(--spectrum-global-color-blue-500);\n &.is-hovered,\n &.is-active {\n background-color: var(--spectrum-table-row-background-color-selected);\n }\n\n /* avoid double border for adjacent selected items */\n &.is-previous-selected { \n &:not(.is-focused) {\n border-top-color: transparent;\n }\n }\n }\n }\n\n &.is-hovered,\n &.is-focused {\n background-color: var(--spectrum-table-row-background-color-hover);\n }\n\n &:focus-ring {\n background-color: var(--spectrum-table-row-background-color-hover);\n box-shadow: inset 0 0 0 1px var(--spectrum-table-cell-border-color-key-focus);\n border-color: var(--spectrum-global-color-blue-500);\n }\n\n &.is-active {\n background-color: var(--spectrum-table-row-background-color-down);\n }\n\n &.is-selected {\n background-color: var(--spectrum-table-row-background-color-hover);\n\n &.is-hovered,\n &.is-active {\n background-color: var(--spectrum-table-row-background-color-hover);\n }\n }\n\n &.has-checkbox {\n /* have to eliminate vertical padding to allow proper vertical alignment */\n padding-top: 0px;\n padding-bottom: 0px;\n }\n \n /* give first and last items border-radius to match listview container */\n div:first-child > div[role=\"row\"] > & {\n border-start-start-radius: var(--spectrum-listview-item-start-end-border-radius);\n border-start-end-radius: var(--spectrum-listview-item-start-end-border-radius);\n }\n div:last-child > div[role=\"row\"] > & {\n border-end-start-radius: var(--spectrum-listview-item-start-end-border-radius);\n border-end-end-radius: var(--spectrum-listview-item-start-end-border-radius);\n }\n}\n\n.react-spectrum-ListView--compact .react-spectrum-ListViewItem {\n padding-top: var(--spectrum-listview-item-compact-padding-y);\n padding-bottom: var(--spectrum-listview-item-compact-padding-y);\n min-height: var(--spectrum-global-dimension-size-400);\n}\n\n.react-spectrum-ListView--spacious .react-spectrum-ListViewItem {\n padding-top: var(--spectrum-listview-item-spacious-padding-y);\n padding-bottom: var(--spectrum-listview-item-spacious-padding-y);\n min-height: var(--spectrum-global-dimension-size-600);\n}\n\n.react-spectrum-ListViewItem-grid {\n display: grid;\n grid-template-columns: auto auto auto 1fr auto auto;\n grid-template-rows: 1fr auto;\n grid-template-areas:\n \"checkbox icon image content actions actionmenu chevron\"\n \"checkbox icon image description actions actionmenu chevron\"\n ;\n align-items: center;\n}\n\n.react-spectrum-ListViewItem-checkbox {\n grid-area: checkbox;\n align-items: center;\n justify-items: center;\n min-height: 0;\n height: 100%;\n > span {\n margin: 0;\n }\n}\n\n.react-spectrum-ListViewItem-icon,\n.react-spectrum-ListViewItem-image {\n grid-area: image;\n align-items: center;\n justify-items: center;\n\n [dir=\"ltr\"] & {\n padding-right: var(--spectrum-global-dimension-size-100);\n }\n [dir=\"rtl\"] & {\n padding-left: var(--spectrum-global-dimension-size-100);\n }\n}\n\n.react-spectrum-ListViewItem-image {\n border-radius: var(--spectrum-global-dimension-size-25);\n width: var(--spectrum-global-dimension-size-400);\n height: var(--spectrum-global-dimension-size-400);\n}\n\n.react-spectrum-ListViewItem-content,\n.react-spectrum-ListViewItem-description {\n flex-grow: 1;\n}\n\n.react-spectrum-ListViewItem-content {\n grid-area: content;\n}\n\n.react-spectrum-ListViewItem-description {\n grid-area: description;\n}\n\n.react-spectrum-ListViewItem-actions {\n grid-area: actions;\n flex-grow: 0;\n flex-shrink: 0;\n}\n\n.react-spectrum-ListViewItem-actionmenu {\n grid-area: actionmenu;\n}\n\n.react-spectrum-ListView-centeredWrapper {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 100%;\n height: 100%;\n}\n\n.react-spectrum-ListViewItem-parentIndicator {\n grid-area: chevron;\n\n [dir=\"ltr\"] & {\n padding-left: var(--spectrum-global-dimension-size-75);\n }\n [dir=\"rtl\"] & {\n padding-right: var(--spectrum-global-dimension-size-75);\n }\n}\n","{\n \"loading\": \"جارٍ التحميل...\",\n \"loadingMore\": \"جارٍ تحميل المزيد...\"\n}\n","{\n \"loading\": \"Зареждане...\",\n \"loadingMore\": \"Зареждане на още...\"\n}\n","{\n \"loading\": \"Načítání...\",\n \"loadingMore\": \"Načítání dalších...\"\n}\n","{\n \"loading\": \"Indlæser...\",\n \"loadingMore\": \"Indlæser flere...\"\n}\n","{\n \"loading\": \"Laden...\",\n \"loadingMore\": \"Mehr laden ...\"\n}\n","{\n \"loading\": \"Φόρτωση...\",\n \"loadingMore\": \"Φόρτωση περισσότερων...\"\n}\n","{\n \"loading\": \"Loading…\",\n \"loadingMore\": \"Loading more…\"\n}\n","{\n \"loading\": \"Cargando…\",\n \"loadingMore\": \"Cargando más…\"\n}\n","{\n \"loading\": \"Laadimine...\",\n \"loadingMore\": \"Laadi rohkem...\"\n}\n","{\n \"loading\": \"Ladataan…\",\n \"loadingMore\": \"Ladataan lisää…\"\n}\n","{\n \"loading\": \"Chargement...\",\n \"loadingMore\": \"Chargement supplémentaire...\"\n}\n","{\n \"loading\": \"טוען...\",\n \"loadingMore\": \"טוען עוד...\"\n}\n","{\n \"loading\": \"Učitavam...\",\n \"loadingMore\": \"Učitavam još...\"\n}\n","{\n \"loading\": \"Betöltés folyamatban…\",\n \"loadingMore\": \"Továbbiak betöltése folyamatban…\"\n}\n","{\n \"loading\": \"Caricamento...\",\n \"loadingMore\": \"Caricamento altri...\"\n}\n","{\n \"loading\": \"読み込み中...\",\n \"loadingMore\": \"さらに読み込み中...\"\n}\n","{\n \"loading\": \"로드 중…\",\n \"loadingMore\": \"추가 로드 중…\"\n}\n","{\n \"loading\": \"Įkeliama...\",\n \"loadingMore\": \"Įkeliama daugiau...\"\n}\n","{\n \"loading\": \"Notiek ielāde...\",\n \"loadingMore\": \"Tiek ielādēts vēl...\"\n}\n","{\n \"loading\": \"Laster inn ...\",\n \"loadingMore\": \"Laster inn flere ...\"\n}\n","{\n \"loading\": \"Laden...\",\n \"loadingMore\": \"Meer laden...\"\n}\n","{\n \"loading\": \"Ładowanie...\",\n \"loadingMore\": \"Wczytywanie większej liczby...\"\n}\n","{\n \"loading\": \"Carregando...\",\n \"loadingMore\": \"Carregando mais...\"\n}\n","{\n \"loading\": \"A carregar...\",\n \"loadingMore\": \"A carregar mais...\"\n}\n","{\n \"loading\": \"Se încarcă...\",\n \"loadingMore\": \"Se încarcă mai multe...\"\n}\n","{\n \"loading\": \"Загрузка...\",\n \"loadingMore\": \"Дополнительная загрузка...\"\n}\n","{\n \"loading\": \"Načítava sa...\",\n \"loadingMore\": \"Načítava sa viac...\"\n}\n","{\n \"loading\": \"Nalaganje ...\",\n \"loadingMore\": \"Nalaganje več vsebine ...\"\n}\n","{\n \"loading\": \"Učitavam...\",\n \"loadingMore\": \"Učitavam još...\"\n}\n","{\n \"loading\": \"Läser in...\",\n \"loadingMore\": \"Läser in mer...\"\n}\n","{\n \"loading\": \"Yükleniyor...\",\n \"loadingMore\": \"Daha fazla yükleniyor...\"\n}\n","{\n \"loading\": \"Завантаження…\",\n \"loadingMore\": \"Завантаження інших об’єктів...\"\n}\n","{\n \"loading\": \"正在加载...\",\n \"loadingMore\": \"正在加载更多...\"\n}\n","{\n \"loading\": \"載入中…\",\n \"loadingMore\": \"正在載入更多…\"\n}\n","/*\n * Copyright 2021 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\nimport {Checkbox} from '@react-spectrum/checkbox';\nimport ChevronLeftMedium from '@spectrum-icons/ui/ChevronLeftMedium';\nimport ChevronRightMedium from '@spectrum-icons/ui/ChevronRightMedium';\nimport {classNames, ClearSlots, SlotProvider} from '@react-spectrum/utils';\nimport {Content} from '@react-spectrum/view';\nimport {Grid} from '@react-spectrum/layout';\nimport listStyles from './listview.css';\nimport {ListViewContext} from './ListView';\nimport {mergeProps} from '@react-aria/utils';\nimport React, {useContext, useRef} from 'react';\nimport {useFocusRing} from '@react-aria/focus';\nimport {useGridCell, useGridRow, useGridSelectionCheckbox} from '@react-aria/grid';\nimport {useHover, usePress} from '@react-aria/interactions';\nimport {useLocale} from '@react-aria/i18n';\n\nexport function ListViewItem(props) {\n let {\n item,\n onAction,\n isEmphasized\n } = props;\n let cellNode = [...item.childNodes][0];\n let {state} = useContext(ListViewContext);\n let {direction} = useLocale();\n let rowRef = useRef<HTMLDivElement>();\n let cellRef = useRef<HTMLDivElement>();\n let {\n isFocusVisible: isFocusVisibleWithin,\n focusProps: focusWithinProps\n } = useFocusRing({within: true});\n let {isFocusVisible, focusProps} = useFocusRing();\n let allowsInteraction = state.selectionManager.selectionMode !== 'none' || onAction;\n let isDisabled = !allowsInteraction || state.disabledKeys.has(item.key);\n let {hoverProps, isHovered} = useHover({isDisabled});\n let {pressProps, isPressed} = usePress({isDisabled});\n let {rowProps} = useGridRow({\n node: item,\n isVirtualized: true,\n onAction: onAction ? () => onAction(item.key) : null\n }, state, rowRef);\n let {gridCellProps} = useGridCell({\n node: cellNode,\n focusMode: 'cell'\n }, state, cellRef);\n const mergedProps = mergeProps(\n gridCellProps,\n hoverProps,\n focusWithinProps,\n focusProps\n );\n let {checkboxProps} = useGridSelectionCheckbox({...props, key: item.key}, state);\n\n let chevron = null;\n if (item.props.hasChildItems) {\n chevron = direction === 'ltr'\n ? (\n <ChevronRightMedium\n aria-hidden=\"true\"\n UNSAFE_className={listStyles['react-spectrum-ListViewItem-parentIndicator']} />\n )\n : (\n <ChevronLeftMedium\n aria-hidden=\"true\"\n UNSAFE_className={listStyles['react-spectrum-ListViewItem-parentIndicator']} />\n );\n }\n\n let showCheckbox = state.selectionManager.selectionMode !== 'none' && state.selectionManager.selectionBehavior === 'toggle';\n let isSelected = state.selectionManager.isSelected(item.key);\n return (\n <div\n {...mergeProps(rowProps, pressProps)}\n ref={rowRef}>\n <div\n className={\n classNames(\n listStyles,\n 'react-spectrum-ListViewItem',\n {\n 'is-active': isPressed,\n 'is-focused': isFocusVisibleWithin,\n 'focus-ring': isFocusVisible,\n 'is-hovered': isHovered,\n 'is-selected': isSelected,\n 'is-previous-selected': state.selectionManager.isSelected(item.prevKey),\n 'react-spectrum-ListViewItem--highlightSelection': state.selectionManager.selectionBehavior === 'replace' && (isSelected || state.selectionManager.isSelected(item.nextKey))\n }\n )\n }\n ref={cellRef}\n {...mergedProps}>\n <Grid UNSAFE_className={listStyles['react-spectrum-ListViewItem-grid']}>\n {showCheckbox && (\n <Checkbox\n UNSAFE_className={listStyles['react-spectrum-ListViewItem-checkbox']}\n {...checkboxProps}\n isEmphasized={isEmphasized} />\n )}\n <SlotProvider\n slots={{\n content: {UNSAFE_className: listStyles['react-spectrum-ListViewItem-content']},\n text: {UNSAFE_className: listStyles['react-spectrum-ListViewItem-content']},\n description: {UNSAFE_className: listStyles['react-spectrum-ListViewItem-description']},\n icon: {UNSAFE_className: listStyles['react-spectrum-ListViewItem-icon'], size: 'M'},\n image: {UNSAFE_className: listStyles['react-spectrum-ListViewItem-image']},\n link: {UNSAFE_className: listStyles['react-spectrum-ListViewItem-content'], isQuiet: true},\n actionButton: {UNSAFE_className: listStyles['react-spectrum-ListViewItem-actions'], isQuiet: true},\n actionGroup: {\n UNSAFE_className: listStyles['react-spectrum-ListViewItem-actions'],\n isQuiet: true,\n density: 'compact'\n },\n actionMenu: {UNSAFE_className: listStyles['react-spectrum-ListViewItem-actionmenu'], isQuiet: true}\n }}>\n {typeof item.rendered === 'string' ? <Content>{item.rendered}</Content> : item.rendered}\n <ClearSlots>\n {chevron}\n </ClearSlots>\n </SlotProvider>\n </Grid>\n </div>\n </div>\n );\n}\n","/*\n * Copyright 2021 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\nimport {\n AriaLabelingProps,\n CollectionBase,\n DOMProps,\n DOMRef,\n LoadingState,\n MultipleSelection,\n SpectrumSelectionProps,\n StyleProps\n} from '@react-types/shared';\nimport {classNames, useDOMRef, useStyleProps} from '@react-spectrum/utils';\nimport {GridCollection, useGridState} from '@react-stately/grid';\nimport {GridKeyboardDelegate, useGrid} from '@react-aria/grid';\n// @ts-ignore\nimport intlMessages from '../intl/*.json';\nimport {ListLayout} from '@react-stately/layout';\nimport {ListState, useListState} from '@react-stately/list';\nimport listStyles from './listview.css';\nimport {ListViewItem} from './ListViewItem';\nimport {ProgressCircle} from '@react-spectrum/progress';\nimport React, {ReactElement, useContext, useMemo} from 'react';\nimport {useCollator, useLocale, useMessageFormatter} from '@react-aria/i18n';\nimport {useProvider} from '@react-spectrum/provider';\nimport {Virtualizer} from '@react-aria/virtualizer';\n\n\nexport const ListViewContext = React.createContext(null);\n\nconst ROW_HEIGHTS = {\n compact: {\n medium: 32,\n large: 40\n },\n regular: {\n medium: 40,\n large: 50\n },\n spacious: {\n medium: 48,\n large: 60\n }\n};\n\nexport function useListLayout<T>(state: ListState<T>, density: ListViewProps<T>['density']) {\n let {scale} = useProvider();\n let collator = useCollator({usage: 'search', sensitivity: 'base'});\n let layout = useMemo(() =>\n new ListLayout<T>({\n estimatedRowHeight: ROW_HEIGHTS[density][scale],\n padding: 0,\n collator\n })\n , [collator, scale, density]);\n\n layout.collection = state.collection;\n layout.disabledKeys = state.disabledKeys;\n return layout;\n}\n\ninterface ListViewProps<T> extends CollectionBase<T>, DOMProps, AriaLabelingProps, StyleProps, MultipleSelection, SpectrumSelectionProps {\n /**\n * Sets the amount of vertical padding within each cell.\n * @default 'regular'\n */\n density?: 'compact' | 'regular' | 'spacious',\n isQuiet?: boolean,\n loadingState?: LoadingState,\n renderEmptyState?: () => JSX.Element,\n transitionDuration?: number,\n onAction?: (key: string) => void\n}\n\nfunction ListView<T extends object>(props: ListViewProps<T>, ref: DOMRef<HTMLDivElement>) {\n let {\n density = 'regular',\n loadingState,\n isQuiet,\n transitionDuration = 0,\n onAction\n } = props;\n let domRef = useDOMRef(ref);\n let {collection} = useListState(props);\n let formatMessage = useMessageFormatter(intlMessages);\n\n let {styleProps} = useStyleProps(props);\n let {direction} = useLocale();\n let collator = useCollator({usage: 'search', sensitivity: 'base'});\n let gridCollection = useMemo(() => new GridCollection({\n columnCount: 1,\n items: [...collection].map(item => ({\n ...item,\n hasChildNodes: true,\n childNodes: [{\n key: `cell-${item.key}`,\n type: 'cell',\n index: 0,\n value: null,\n level: 0,\n rendered: null,\n textValue: item.textValue,\n hasChildNodes: false,\n childNodes: []\n }]\n }))\n }), [collection]);\n let state = useGridState({\n ...props,\n collection: gridCollection,\n focusMode: 'cell',\n selectionBehavior: props.selectionStyle === 'highlight' ? 'replace' : 'toggle'\n });\n let layout = useListLayout(state, props.density || 'regular');\n let keyboardDelegate = useMemo(() => new GridKeyboardDelegate({\n collection: state.collection,\n disabledKeys: state.disabledKeys,\n ref: domRef,\n direction,\n collator,\n // Focus the ListView cell instead of the row so that focus doesn't change with left/right arrow keys when there aren't any\n // focusable children in the cell.\n focusMode: 'cell'\n }), [state, domRef, direction, collator]);\n let {gridProps} = useGrid({\n ...props,\n isVirtualized: true,\n keyboardDelegate\n }, state, domRef);\n\n // Sync loading state into the layout.\n layout.isLoading = loadingState === 'loading';\n\n let focusedKey = state.selectionManager.focusedKey;\n let focusedItem = gridCollection.getItem(state.selectionManager.focusedKey);\n if (focusedItem?.parentKey != null) {\n focusedKey = focusedItem.parentKey;\n }\n\n return (\n <ListViewContext.Provider value={{state, keyboardDelegate}}>\n <Virtualizer\n {...gridProps}\n {...styleProps}\n ref={domRef}\n focusedKey={focusedKey}\n scrollDirection=\"vertical\"\n className={\n classNames(\n listStyles,\n 'react-spectrum-ListView',\n `react-spectrum-ListView--${density}`,\n 'react-spectrum-ListView--emphasized',\n {\n 'react-spectrum-ListView--quiet': isQuiet\n },\n styleProps.className\n )\n }\n layout={layout}\n collection={gridCollection}\n transitionDuration={transitionDuration}>\n {(type, item) => {\n if (type === 'item') {\n return (\n <ListViewItem item={item} onAction={onAction} isEmphasized />\n );\n } else if (type === 'loader') {\n return (\n <CenteredWrapper>\n <ProgressCircle\n isIndeterminate\n aria-label={state.collection.size > 0 ? formatMessage('loadingMore') : formatMessage('loading')} />\n </CenteredWrapper>\n );\n } else if (type === 'placeholder') {\n let emptyState = props.renderEmptyState ? props.renderEmptyState() : null;\n if (emptyState == null) {\n return null;\n }\n\n return (\n <CenteredWrapper>\n {emptyState}\n </CenteredWrapper>\n );\n }\n\n }}\n </Virtualizer>\n </ListViewContext.Provider>\n );\n}\n\n\nfunction CenteredWrapper({children}) {\n let {state} = useContext(ListViewContext);\n return (\n <div\n role=\"row\"\n aria-rowindex={state.collection.size + 1}\n className={classNames(listStyles, 'react-spectrum-ListView-centeredWrapper')}>\n <div role=\"gridcell\">\n {children}\n </div>\n </div>\n );\n}\n\nconst _ListView = React.forwardRef(ListView) as <T>(props: ListViewProps<T> & {ref?: DOMRef<HTMLDivElement>}) => ReactElement;\nexport {_ListView as ListView};\n"],"names":["$parcel$interopDefault","a","__esModule","default","JSON","parse","ListViewItem","props","item","onAction","isEmphasized","cellNode","childNodes","state","useContext","direction","useLocale","rowRef","useRef","cellRef","isFocusVisible","isFocusVisibleWithin","focusProps","focusWithinProps","useFocusRing","within","allowsInteraction","selectionManager","selectionMode","isDisabled","disabledKeys","has","key","hoverProps","isHovered","useHover","pressProps","isPressed","usePress","rowProps","useGridRow","node","isVirtualized","gridCellProps","useGridCell","focusMode","mergedProps","mergeProps","checkboxProps","useGridSelectionCheckbox","chevron","hasChildItems","showCheckbox","selectionBehavior","isSelected","classNames","prevKey","nextKey","content","UNSAFE_className","text","description","icon","size","image","link","isQuiet","actionButton","actionGroup","density","actionMenu","rendered","ListViewContext","React","createContext","ROW_HEIGHTS","compact","medium","large","regular","spacious","useListLayout","scale","useProvider","collator","useCollator","usage","sensitivity","layout","useMemo","ListLayout","estimatedRowHeight","padding","collection","ListView","ref","loadingState","transitionDuration","domRef","useDOMRef","useListState","formatMessage","useMessageFormatter","intlMessages","styleProps","useStyleProps","gridCollection","GridCollection","columnCount","items","map","hasChildNodes","type","index","value","level","textValue","useGridState","selectionStyle","keyboardDelegate","GridKeyboardDelegate","gridProps","useGrid","isLoading","focusedKey","focusedItem","getItem","parentKey","className","emptyState","renderEmptyState","CenteredWrapper","children","_ListView","forwardRef"],"version":3,"file":"module.js.map"}
package/dist/types.d.ts CHANGED
@@ -1,6 +1,6 @@
1
- import { AriaLabelingProps, CollectionBase, DOMProps, LoadingState, MultipleSelection, StyleProps } from "@react-types/shared";
1
+ import { AriaLabelingProps, CollectionBase, DOMProps, LoadingState, MultipleSelection, SpectrumSelectionProps, StyleProps } from "@react-types/shared";
2
2
  import React from "react";
3
- interface ListViewProps<T> extends CollectionBase<T>, DOMProps, AriaLabelingProps, StyleProps, MultipleSelection {
3
+ interface ListViewProps<T> extends CollectionBase<T>, DOMProps, AriaLabelingProps, StyleProps, MultipleSelection, SpectrumSelectionProps {
4
4
  /**
5
5
  * Sets the amount of vertical padding within each cell.
6
6
  * @default 'regular'
@@ -10,6 +10,7 @@ interface ListViewProps<T> extends CollectionBase<T>, DOMProps, AriaLabelingProp
10
10
  loadingState?: LoadingState;
11
11
  renderEmptyState?: () => JSX.Element;
12
12
  transitionDuration?: number;
13
+ onAction?: (key: string) => void;
13
14
  }
14
15
  export const ListView: <T>(props: ListViewProps<T> & {
15
16
  ref?: React.Ref<import("@react-types/shared").DOMRefValue<HTMLDivElement>>;
@@ -1 +1 @@
1
- {"mappings":"A;A;ACsDA,wBAAwB,CAAC,CAAE,SAAQ,eAAe,CAAC,CAAC,EAAE,QAAQ,EAAE,iBAAiB,EAAE,UAAU,EAAE,iBAAiB;IAC9G;A;A;OAGG;IACH,OAAO,CAAC,EAAE,SAAS,GAAG,SAAS,GAAG,UAAU,CAAC;IAC7C,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,gBAAgB,CAAC,EAAE,MAAM,IAAI,OAAO,CAAC;IACrC,kBAAkB,CAAC,EAAE,MAAM,CAAA;CAC5B;AAmID,OAAA,MAAM;A;6MAAuH,CAAC;AClM9H,OAAO,EAAC,IAAI,EAAC,MAAM,4BAA4B,CAAC","sources":["./packages/@react-spectrum/list/src/packages/@react-spectrum/list/src/ListViewItem.tsx","./packages/@react-spectrum/list/src/packages/@react-spectrum/list/src/ListView.tsx","./packages/@react-spectrum/list/src/packages/@react-spectrum/list/src/index.ts"],"sourcesContent":[null,null,null],"names":[],"version":3,"file":"types.d.ts.map"}
1
+ {"mappings":"A;A;ACsEA,wBAAwB,CAAC,CAAE,SAAQ,eAAe,CAAC,CAAC,EAAE,QAAQ,EAAE,iBAAiB,EAAE,UAAU,EAAE,iBAAiB,EAAE,sBAAsB;IACtI;A;A;OAGG;IACH,OAAO,CAAC,EAAE,SAAS,GAAG,SAAS,GAAG,UAAU,CAAC;IAC7C,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,gBAAgB,CAAC,EAAE,MAAM,IAAI,OAAO,CAAC;IACrC,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAA;CACjC;AAyID,OAAA,MAAM;A;6MAAuH,CAAC;ACzN9H,OAAO,EAAC,IAAI,EAAC,MAAM,4BAA4B,CAAC","sources":["./packages/@react-spectrum/list/src/packages/@react-spectrum/list/src/ListViewItem.tsx","./packages/@react-spectrum/list/src/packages/@react-spectrum/list/src/ListView.tsx","./packages/@react-spectrum/list/src/packages/@react-spectrum/list/src/index.ts"],"sourcesContent":[null,null,null],"names":[],"version":3,"file":"types.d.ts.map"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@react-spectrum/list",
3
- "version": "3.0.0-alpha.3",
3
+ "version": "3.0.0-alpha.4",
4
4
  "description": "Spectrum UI components in React",
5
5
  "license": "Apache-2.0",
6
6
  "main": "dist/main.js",
@@ -33,29 +33,29 @@
33
33
  "dependencies": {
34
34
  "@babel/runtime": "^7.6.2",
35
35
  "@react-aria/focus": "^3.4.1",
36
- "@react-aria/grid": "^3.0.0",
37
- "@react-aria/i18n": "^3.3.2",
38
- "@react-aria/interactions": "^3.5.1",
39
- "@react-aria/listbox": "^3.3.1",
36
+ "@react-aria/grid": "^3.1.0",
37
+ "@react-aria/i18n": "^3.3.3",
38
+ "@react-aria/interactions": "^3.7.0",
39
+ "@react-aria/listbox": "^3.4.0",
40
40
  "@react-aria/separator": "^3.1.3",
41
- "@react-aria/utils": "^3.8.2",
42
- "@react-aria/virtualizer": "^3.3.4",
41
+ "@react-aria/utils": "^3.10.0",
42
+ "@react-aria/virtualizer": "^3.3.5",
43
43
  "@react-spectrum/button": "^3.5.1",
44
44
  "@react-spectrum/checkbox": "^3.2.3",
45
45
  "@react-spectrum/layout": "^3.2.1",
46
46
  "@react-spectrum/listbox": "^3.5.3",
47
47
  "@react-spectrum/progress": "^3.1.3",
48
48
  "@react-spectrum/text": "^3.1.3",
49
- "@react-spectrum/textfield": "^3.1.7",
50
- "@react-spectrum/utils": "^3.6.2",
49
+ "@react-spectrum/textfield": "^3.3.0",
50
+ "@react-spectrum/utils": "^3.6.3",
51
51
  "@react-spectrum/view": "^3.1.3",
52
52
  "@react-stately/collections": "^3.3.4",
53
- "@react-stately/grid": "^3.0.0",
53
+ "@react-stately/grid": "^3.1.0",
54
54
  "@react-stately/layout": "^3.4.0",
55
- "@react-stately/list": "^3.3.0",
56
- "@react-stately/virtualizer": "^3.1.5",
55
+ "@react-stately/list": "^3.4.0",
56
+ "@react-stately/virtualizer": "^3.1.6",
57
57
  "@react-types/listbox": "^3.2.1",
58
- "@react-types/shared": "^3.8.0",
58
+ "@react-types/shared": "^3.10.0",
59
59
  "@spectrum-icons/ui": "^3.2.1"
60
60
  },
61
61
  "devDependencies": {
@@ -69,5 +69,5 @@
69
69
  "publishConfig": {
70
70
  "access": "public"
71
71
  },
72
- "gitHead": "9397d0262111f7207cb1ee2cbdda86cd5d180298"
72
+ "gitHead": "896eabe5521a0349a675c4773ed7629addd4b8c4"
73
73
  }
package/src/ListView.tsx CHANGED
@@ -16,6 +16,7 @@ import {
16
16
  DOMRef,
17
17
  LoadingState,
18
18
  MultipleSelection,
19
+ SpectrumSelectionProps,
19
20
  StyleProps
20
21
  } from '@react-types/shared';
21
22
  import {classNames, useDOMRef, useStyleProps} from '@react-spectrum/utils';
@@ -36,23 +37,38 @@ import {Virtualizer} from '@react-aria/virtualizer';
36
37
 
37
38
  export const ListViewContext = React.createContext(null);
38
39
 
39
- export function useListLayout<T>(state: ListState<T>) {
40
+ const ROW_HEIGHTS = {
41
+ compact: {
42
+ medium: 32,
43
+ large: 40
44
+ },
45
+ regular: {
46
+ medium: 40,
47
+ large: 50
48
+ },
49
+ spacious: {
50
+ medium: 48,
51
+ large: 60
52
+ }
53
+ };
54
+
55
+ export function useListLayout<T>(state: ListState<T>, density: ListViewProps<T>['density']) {
40
56
  let {scale} = useProvider();
41
57
  let collator = useCollator({usage: 'search', sensitivity: 'base'});
42
58
  let layout = useMemo(() =>
43
59
  new ListLayout<T>({
44
- estimatedRowHeight: scale === 'large' ? 40 : 32,
60
+ estimatedRowHeight: ROW_HEIGHTS[density][scale],
45
61
  padding: 0,
46
62
  collator
47
63
  })
48
- , [collator, scale]);
64
+ , [collator, scale, density]);
49
65
 
50
66
  layout.collection = state.collection;
51
67
  layout.disabledKeys = state.disabledKeys;
52
68
  return layout;
53
69
  }
54
70
 
55
- interface ListViewProps<T> extends CollectionBase<T>, DOMProps, AriaLabelingProps, StyleProps, MultipleSelection {
71
+ interface ListViewProps<T> extends CollectionBase<T>, DOMProps, AriaLabelingProps, StyleProps, MultipleSelection, SpectrumSelectionProps {
56
72
  /**
57
73
  * Sets the amount of vertical padding within each cell.
58
74
  * @default 'regular'
@@ -61,7 +77,8 @@ interface ListViewProps<T> extends CollectionBase<T>, DOMProps, AriaLabelingProp
61
77
  isQuiet?: boolean,
62
78
  loadingState?: LoadingState,
63
79
  renderEmptyState?: () => JSX.Element,
64
- transitionDuration?: number
80
+ transitionDuration?: number,
81
+ onAction?: (key: string) => void
65
82
  }
66
83
 
67
84
  function ListView<T extends object>(props: ListViewProps<T>, ref: DOMRef<HTMLDivElement>) {
@@ -69,7 +86,8 @@ function ListView<T extends object>(props: ListViewProps<T>, ref: DOMRef<HTMLDiv
69
86
  density = 'regular',
70
87
  loadingState,
71
88
  isQuiet,
72
- transitionDuration = 0
89
+ transitionDuration = 0,
90
+ onAction
73
91
  } = props;
74
92
  let domRef = useDOMRef(ref);
75
93
  let {collection} = useListState(props);
@@ -98,15 +116,19 @@ function ListView<T extends object>(props: ListViewProps<T>, ref: DOMRef<HTMLDiv
98
116
  }), [collection]);
99
117
  let state = useGridState({
100
118
  ...props,
101
- collection: gridCollection
119
+ collection: gridCollection,
120
+ focusMode: 'cell',
121
+ selectionBehavior: props.selectionStyle === 'highlight' ? 'replace' : 'toggle'
102
122
  });
103
- let layout = useListLayout(state);
123
+ let layout = useListLayout(state, props.density || 'regular');
104
124
  let keyboardDelegate = useMemo(() => new GridKeyboardDelegate({
105
125
  collection: state.collection,
106
126
  disabledKeys: state.disabledKeys,
107
127
  ref: domRef,
108
128
  direction,
109
129
  collator,
130
+ // Focus the ListView cell instead of the row so that focus doesn't change with left/right arrow keys when there aren't any
131
+ // focusable children in the cell.
110
132
  focusMode: 'cell'
111
133
  }), [state, domRef, direction, collator]);
112
134
  let {gridProps} = useGrid({
@@ -137,6 +159,7 @@ function ListView<T extends object>(props: ListViewProps<T>, ref: DOMRef<HTMLDiv
137
159
  listStyles,
138
160
  'react-spectrum-ListView',
139
161
  `react-spectrum-ListView--${density}`,
162
+ 'react-spectrum-ListView--emphasized',
140
163
  {
141
164
  'react-spectrum-ListView--quiet': isQuiet
142
165
  },
@@ -149,7 +172,7 @@ function ListView<T extends object>(props: ListViewProps<T>, ref: DOMRef<HTMLDiv
149
172
  {(type, item) => {
150
173
  if (type === 'item') {
151
174
  return (
152
- <ListViewItem item={item} />
175
+ <ListViewItem item={item} onAction={onAction} isEmphasized />
153
176
  );
154
177
  } else if (type === 'loader') {
155
178
  return (