@dxos/react-list 0.1.5 → 0.1.10

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.
@@ -1 +1 @@
1
- {"version":3,"file":"List.d.ts","sourceRoot":"","sources":["../../../../src/components/List/List.tsx"],"names":[],"mappings":"AAMA,OAAO,EAAE,IAAI,EAAE,SAAS,EAAS,MAAM,cAAc,CAAC;AACtD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAuBjD,MAAM,WAAW,SAAS;IACxB,QAAQ,EAAE,SAAS,CAAC;IACpB,MAAM,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,CAAC;CACjC;AAgED,eAAO,MAAM,IAAI,yBAA0B,SAAS,gBAanD,CAAC"}
1
+ {"version":3,"file":"List.d.ts","sourceRoot":"","sources":["../../../../src/components/List/List.tsx"],"names":[],"mappings":"AAMA,OAAO,EAAE,IAAI,EAAE,SAAS,EAAS,MAAM,cAAc,CAAC;AACtD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAuBjD,MAAM,WAAW,SAAS;IACxB,QAAQ,EAAE,SAAS,CAAC;IACpB,MAAM,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,CAAC;CACjC;AAiED,eAAO,MAAM,IAAI,yBAA0B,SAAS,gBAanD,CAAC"}
@@ -81,6 +81,7 @@ const ListLoaded = ({ space, list, listItems: propsListItems }) => {
81
81
  };
82
82
  return acc;
83
83
  }, {}),
84
+ onChangePeriod: 300,
84
85
  onAction,
85
86
  createListItemId
86
87
  } }));
@@ -1 +1 @@
1
- {"version":3,"file":"List.js","sourceRoot":"","sources":["../../../../src/components/List/List.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"List.js","sourceRoot":"","sources":["../../../../src/components/List/List.tsx"],"names":[],"mappings":";AAAA,EAAE;AACF,0BAA0B;AAC1B,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;AAEF,+CAA2C;AAG3C,qDAAiD;AACjD,qDAA4D;AAC5D,6CAAyC;AACzC,mDAAmD;AAEnD,uCAA6C;AAC7C,oDAS0B;AAa1B,MAAM,UAAU,GAAG,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,cAAc,EAAmB,EAAE,EAAE;;IACjF,MAAM,SAAS,GAAG,MAAA,IAAA,2BAAY,EAAC,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,MAAM,GAAG,QAAQ,GAAG,MAAM,CAAC,EAAE,IAAI,EAAE,sBAAc,EAAE,CAAC,CAAC,mCAAI,cAAc,CAAC;IAE7G,MAAM,QAAQ,GAAG,IAAA,mBAAW,EAC1B,KAAK,EAAE,MAAkB,EAAE,EAAE;QAC3B,IAAI,IAAA,uCAAuB,EAAC,MAAM,CAAC,EAAE;YACnC,MAAM,OAAO,GAAG,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;YAC1D,0CAA0C;YAC1C,OAAO,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,KAAK,CAAC,GAAG,CAAC,qBAAqB,EAAE,IAAI,CAAC,CAAC;SACxD;aAAM,IAAI,IAAA,uCAAuB,EAAC,MAAM,CAAC,EAAE;YAC1C,cAAc;SACf;aAAM,IAAI,IAAA,uCAAuB,EAAC,MAAM,CAAC,EAAE;YAC1C,MAAM,OAAO,GAAG,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;YAC1D,OAAO,OAAO,CAAC,GAAG,CACf,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAA6B,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;gBACjE,OAAO,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;YACrD,CAAC,CAAC,CACH,CAAC;SACH;aAAM;YACL,OAAO,OAAO,CAAC,GAAG,CACf,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAkC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;gBACtE,OAAO,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;YAClD,CAAC,CAAC,CACH,CAAC;SACH;IACH,CAAC,EACD,CAAC,IAAI,EAAE,SAAS,CAAC,CAClB,CAAC;IAEF,MAAM,gBAAgB,GAAG,IAAA,mBAAW,EAAC,KAAK,IAAI,EAAE;QAC9C,MAAM,QAAQ,GAAG,MAAM,CAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,QAAQ,CAAC,UAAU,CAAC;YAChD,KAAK,EAAE,0BAAW;YAClB,IAAI,EAAE,sBAAc;YACpB,MAAM,EAAE,IAAI,CAAC,EAAE;SAChB,CAAC,CAAA,CAAC;QACH,OAAO,QAAQ,CAAC,EAAE,CAAC;IACrB,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;IAEZ,OAAO,CACL,8BAAC,6BAAa,OACR;YACF,EAAE,EAAE,IAAI,CAAC,EAAE;YACX,KAAK,EAAE,MAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,mCAAI,EAAE;YACpC,WAAW,EAAE,MAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,aAAa,CAAC,mCAAI,EAAE;YAChD,KAAK,EAAE,CAAC,SAAS,aAAT,SAAS,cAAT,SAAS,GAAI,EAAE,CAAC;gBACtB,0CAA0C;iBACzC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC;iBACxD,MAAM,CAAC,CAAC,GAAc,EAAE,IAAI,EAAE,EAAE;gBAC/B,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG;oBACb,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC;oBAC9B,WAAW,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,aAAa,CAAC;oBAC1C,WAAW,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,aAAa,CAAC;iBAC3C,CAAC;gBACF,OAAO,GAAG,CAAC;YACb,CAAC,EAAE,EAAE,CAAC;YACR,cAAc,EAAE,GAAG;YACnB,QAAQ;YACR,gBAAgB;SACjB,GACD,CACH,CAAC;AACJ,CAAC,CAAC;AAEK,MAAM,IAAI,GAAG,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAa,EAAE,EAAE;;IACtD,MAAM,EAAE,CAAC,EAAE,GAAG,IAAA,4BAAc,EAAC,OAAO,CAAC,CAAC;IAEtC,MAAM,KAAK,GAAG,IAAA,uBAAQ,EAAC,QAAQ,CAAC,CAAC;IACjC,MAAM,IAAI,GAAG,CAAC,MAAA,IAAA,2BAAY,EAAC,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,QAAQ,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,mCAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IAC7E,MAAM,SAAS,GAAG,IAAA,2BAAY,EAAC,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,MAAM,GAAG,QAAQ,GAAG,MAAM,CAAC,EAAE,IAAI,EAAE,sBAAc,EAAE,CAAC,CAAC,CAAC;IAE3F,6EAA6E;IAC7E,OAAO,KAAK,IAAI,IAAI,IAAI,SAAS,CAAC,CAAC,CAAC,CAClC,8BAAC,UAAU,OAAK,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,GAAI,CAC/C,CAAC,CAAC,CAAC,CACF,8BAAC,kBAAO,IAAC,KAAK,EAAE,CAAC,CAAC,uBAAuB,CAAC,GAAI,CAC/C,CAAC;AACJ,CAAC,CAAC;AAbW,QAAA,IAAI,QAaf"}
@@ -1,13 +1,13 @@
1
1
  import { ComponentProps } from 'react';
2
- declare type ListId = string;
3
- declare type ListItemId = string;
2
+ type ListId = string;
3
+ type ListItemId = string;
4
4
  export interface ListItemProps {
5
5
  id: ListItemId;
6
6
  title?: string;
7
7
  description?: string;
8
8
  annotations?: Record<string, string | boolean>;
9
9
  }
10
- export declare type ListItems = Record<ListItemId, Omit<ListItemProps, 'id'>>;
10
+ export type ListItems = Record<ListItemId, Omit<ListItemProps, 'id'>>;
11
11
  interface SharedListActionProps {
12
12
  listId: ListId;
13
13
  }
@@ -26,7 +26,7 @@ export interface ListItemCreatedAction extends SharedListActionProps {
26
26
  export interface ListItemDeletedAction extends SharedListActionProps {
27
27
  deleted: Pick<ListItemProps, 'id'> & Partial<Omit<ListItemProps, 'id'>>;
28
28
  }
29
- export declare type ListAction = ListItemChangedAction | ListChangedAction | ListItemCreatedAction | ListItemDeletedAction;
29
+ export type ListAction = ListItemChangedAction | ListChangedAction | ListItemCreatedAction | ListItemDeletedAction;
30
30
  export declare const isListItemChangedAction: (o: any) => o is ListItemChangedAction;
31
31
  export declare const isListItemCreatedAction: (o: any) => o is ListItemCreatedAction;
32
32
  export declare const isListItemDeletedAction: (o: any) => o is ListItemDeletedAction;
@@ -39,14 +39,17 @@ export interface ListPrimitiveComponentProps extends ListPrimitiveProps, Omit<Co
39
39
  items: ListItems;
40
40
  onAction?: (action: ListAction) => void;
41
41
  createListItemId?: () => Promise<ListItemId>;
42
+ onChangePeriod?: number;
42
43
  }
43
44
  export interface ListItemPrimitiveComponentProps extends ListItemProps, Omit<ComponentProps<'li'>, 'id' | 'title'> {
44
45
  updateItem: (item: ListItemProps) => void;
45
46
  updateOrder: (id: ListItemId, delta: number) => void;
46
47
  deleteItem: (id: ListItemId) => void;
47
- isFirst?: boolean;
48
+ createItem: () => void;
49
+ orderIndex: number;
48
50
  isLast?: boolean;
51
+ autoFocus?: boolean;
49
52
  }
50
- export declare const ListPrimitive: ({ id: listId, title: propsTitle, description: propsDescription, items: propsItems, onAction, createListItemId, ...divProps }: ListPrimitiveComponentProps) => JSX.Element;
53
+ export declare const ListPrimitive: ({ id: listId, title: propsTitle, description: propsDescription, items: propsItems, onAction, createListItemId, onChangePeriod, ...divProps }: ListPrimitiveComponentProps) => JSX.Element;
51
54
  export {};
52
55
  //# sourceMappingURL=ListPrimitive.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ListPrimitive.d.ts","sourceRoot":"","sources":["../../../../src/components/ListPrimitive/ListPrimitive.tsx"],"names":[],"mappings":"AAMA,OAAc,EAAE,cAAc,EAAyB,MAAM,OAAO,CAAC;AAOrE,aAAK,MAAM,GAAG,MAAM,CAAC;AACrB,aAAK,UAAU,GAAG,MAAM,CAAC;AAEzB,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,UAAU,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC;CAChD;AAED,oBAAY,SAAS,GAAG,MAAM,CAAC,UAAU,EAAE,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC,CAAC;AAEtE,UAAU,qBAAqB;IAC7B,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,UAAU,yBAA0B,SAAQ,qBAAqB;IAC/D,UAAU,EAAE,UAAU,CAAC;CACxB;AAED,MAAM,WAAW,qBAAsB,SAAQ,yBAAyB;IACtE,IAAI,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC;CAC9B;AAED,MAAM,WAAW,iBAAkB,SAAQ,qBAAqB;IAC9D,IAAI,EAAE,OAAO,CAAC,kBAAkB,CAAC,CAAC;CACnC;AAED,MAAM,WAAW,qBAAsB,SAAQ,qBAAqB;IAClE,OAAO,EAAE,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC,CAAC;CACzE;AAED,MAAM,WAAW,qBAAsB,SAAQ,qBAAqB;IAClE,OAAO,EAAE,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC,CAAC;CACzE;AAED,oBAAY,UAAU,GAAG,qBAAqB,GAAG,iBAAiB,GAAG,qBAAqB,GAAG,qBAAqB,CAAC;AAEnH,eAAO,MAAM,uBAAuB,MAAO,GAAG,+BAAkD,CAAC;AACjG,eAAO,MAAM,uBAAuB,MAAO,GAAG,+BAA+C,CAAC;AAC9F,eAAO,MAAM,uBAAuB,MAAO,GAAG,+BAA+C,CAAC;AAE9F,MAAM,WAAW,kBAAkB;IACjC,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,2BAA4B,SAAQ,kBAAkB,EAAE,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC;IACxG,KAAK,EAAE,SAAS,CAAC;IACjB,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,UAAU,KAAK,IAAI,CAAC;IACxC,gBAAgB,CAAC,EAAE,MAAM,OAAO,CAAC,UAAU,CAAC,CAAC;CAC9C;AAED,MAAM,WAAW,+BAAgC,SAAQ,aAAa,EAAE,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,IAAI,GAAG,OAAO,CAAC;IAChH,UAAU,EAAE,CAAC,IAAI,EAAE,aAAa,KAAK,IAAI,CAAC;IAC1C,WAAW,EAAE,CAAC,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACrD,UAAU,EAAE,CAAC,EAAE,EAAE,UAAU,KAAK,IAAI,CAAC;IACrC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAmJD,eAAO,MAAM,aAAa,iIAQvB,2BAA2B,gBAmJ7B,CAAC"}
1
+ {"version":3,"file":"ListPrimitive.d.ts","sourceRoot":"","sources":["../../../../src/components/ListPrimitive/ListPrimitive.tsx"],"names":[],"mappings":"AAOA,OAAc,EAAE,cAAc,EAAiD,MAAM,OAAO,CAAC;AAe7F,KAAK,MAAM,GAAG,MAAM,CAAC;AACrB,KAAK,UAAU,GAAG,MAAM,CAAC;AAEzB,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,UAAU,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC;CAChD;AAED,MAAM,MAAM,SAAS,GAAG,MAAM,CAAC,UAAU,EAAE,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC,CAAC;AAEtE,UAAU,qBAAqB;IAC7B,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,UAAU,yBAA0B,SAAQ,qBAAqB;IAC/D,UAAU,EAAE,UAAU,CAAC;CACxB;AAED,MAAM,WAAW,qBAAsB,SAAQ,yBAAyB;IACtE,IAAI,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC;CAC9B;AAED,MAAM,WAAW,iBAAkB,SAAQ,qBAAqB;IAC9D,IAAI,EAAE,OAAO,CAAC,kBAAkB,CAAC,CAAC;CACnC;AAED,MAAM,WAAW,qBAAsB,SAAQ,qBAAqB;IAClE,OAAO,EAAE,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC,CAAC;CACzE;AAED,MAAM,WAAW,qBAAsB,SAAQ,qBAAqB;IAClE,OAAO,EAAE,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC,CAAC;CACzE;AAED,MAAM,MAAM,UAAU,GAAG,qBAAqB,GAAG,iBAAiB,GAAG,qBAAqB,GAAG,qBAAqB,CAAC;AAEnH,eAAO,MAAM,uBAAuB,MAAO,GAAG,+BAAkD,CAAC;AACjG,eAAO,MAAM,uBAAuB,MAAO,GAAG,+BAA+C,CAAC;AAC9F,eAAO,MAAM,uBAAuB,MAAO,GAAG,+BAA+C,CAAC;AAE9F,MAAM,WAAW,kBAAkB;IACjC,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,2BAA4B,SAAQ,kBAAkB,EAAE,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC;IACxG,KAAK,EAAE,SAAS,CAAC;IACjB,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,UAAU,KAAK,IAAI,CAAC;IACxC,gBAAgB,CAAC,EAAE,MAAM,OAAO,CAAC,UAAU,CAAC,CAAC;IAC7C,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,+BAAgC,SAAQ,aAAa,EAAE,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,IAAI,GAAG,OAAO,CAAC;IAChH,UAAU,EAAE,CAAC,IAAI,EAAE,aAAa,KAAK,IAAI,CAAC;IAC1C,WAAW,EAAE,CAAC,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACrD,UAAU,EAAE,CAAC,EAAE,EAAE,UAAU,KAAK,IAAI,CAAC;IACrC,UAAU,EAAE,MAAM,IAAI,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAwKD,eAAO,MAAM,aAAa,iJASvB,2BAA2B,gBAwL7B,CAAC"}
@@ -31,9 +31,9 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
31
31
  Object.defineProperty(exports, "__esModule", { value: true });
32
32
  exports.ListPrimitive = exports.isListItemDeletedAction = exports.isListItemCreatedAction = exports.isListItemChangedAction = void 0;
33
33
  const classnames_1 = __importDefault(require("classnames"));
34
+ const lodash_throttle_1 = __importDefault(require("lodash.throttle"));
34
35
  const phosphor_react_1 = require("phosphor-react");
35
36
  const react_1 = __importStar(require("react"));
36
- const react_ui_1 = require("@dxos/react-ui");
37
37
  const react_uikit_1 = require("@dxos/react-uikit");
38
38
  const hooks_1 = require("../../hooks");
39
39
  const isListItemChangedAction = (o) => 'listItemId' in o;
@@ -43,7 +43,7 @@ exports.isListItemCreatedAction = isListItemCreatedAction;
43
43
  const isListItemDeletedAction = (o) => 'deleted' in o;
44
44
  exports.isListItemDeletedAction = isListItemDeletedAction;
45
45
  const defaultCreateListItemId = async () => (0, react_uikit_1.randomString)(8);
46
- const ListItemPrimitive = ({ id, title: propsTitle, description: propsDescription, annotations: propsAnnotations, updateItem, deleteItem, updateOrder, isFirst, isLast }) => {
46
+ const ListItemPrimitive = ({ id, title: propsTitle, description: propsDescription, annotations: propsAnnotations, updateItem, deleteItem, createItem, updateOrder, orderIndex, isLast, autoFocus }) => {
47
47
  const checkId = `${id}__checkbox`;
48
48
  const labelId = `${id}__title`;
49
49
  const descriptionId = `${id}__description`;
@@ -78,23 +78,34 @@ const ListItemPrimitive = ({ id, title: propsTitle, description: propsDescriptio
78
78
  const onClickDelete = (0, react_1.useCallback)(() => {
79
79
  deleteItem(id);
80
80
  }, [deleteItem, id]);
81
- return (react_1.default.createElement("li", { key: id, className: 'flex items-center gap-2 pli-4', "aria-labelledby": labelId, ...(description && { 'aria-describedby': descriptionId }) },
81
+ const onKeyUp = (0, react_1.useCallback)((e) => {
82
+ var _a;
83
+ if (e.key === 'Enter') {
84
+ if (isLast) {
85
+ createItem();
86
+ }
87
+ else {
88
+ (_a = document.querySelector(`input[data-orderindex="${orderIndex + 1}"]`)) === null || _a === void 0 ? void 0 : _a.focus();
89
+ }
90
+ }
91
+ }, [orderIndex, isLast]);
92
+ return (react_1.default.createElement("li", { key: id, className: 'flex items-center gap-2 pli-4 mbe-2', "aria-labelledby": labelId, ...(description && { 'aria-describedby': descriptionId }) },
82
93
  react_1.default.createElement("input", { key: titleSession, ...{
83
94
  type: 'checkbox',
84
95
  id: checkId,
85
96
  ...(description && {
86
97
  'aria-describedby': descriptionId
87
98
  }),
88
- className: (0, classnames_1.default)((0, react_uikit_1.getSize)(4), 'text-primary-600 bg-neutral-50 rounded border-neutral-300 dark:bg-neutral-800 dark:border-neutral-600 cursor-pointer', react_uikit_1.defaultFocus, (0, react_ui_1.defaultHover)({})),
99
+ className: (0, classnames_1.default)((0, react_uikit_1.getSize)(5), 'text-primary-600 bg-neutral-50 rounded-full border-neutral-300 dark:bg-neutral-800 dark:border-neutral-600 cursor-pointer', react_uikit_1.defaultFocus, (0, react_uikit_1.defaultHover)({})),
89
100
  onChange: onChangeCheckbox,
90
101
  checked: isDone
91
102
  } }),
92
103
  react_1.default.createElement("label", { htmlFor: checkId, id: labelId, className: 'sr-only' }, title),
93
104
  react_1.default.createElement("span", { id: descriptionId, className: 'sr-only' }, description),
94
105
  react_1.default.createElement("div", { role: 'none', className: 'grow' },
95
- react_1.default.createElement(react_uikit_1.Input, { label: t('list item title label'), placeholder: t('list item title placeholder'), labelVisuallyHidden: true, initialValue: title, onChange: onChangeTitle, "data-itemid": id })),
96
- react_1.default.createElement(react_uikit_1.Button, { compact: true, onClick: onClickDelete },
97
- react_1.default.createElement(phosphor_react_1.Minus, null),
106
+ react_1.default.createElement(react_uikit_1.Input, { spacing: '', label: t('list item title label'), placeholder: t('list item title placeholder'), labelVisuallyHidden: true, initialValue: title, onChange: onChangeTitle, "data-itemid": id, borders: 'border-0', rounding: 'rounded', autoFocus: autoFocus, onKeyUp: onKeyUp, "data-orderindex": orderIndex })),
107
+ react_1.default.createElement(react_uikit_1.Button, { onClick: onClickDelete, variant: 'ghost', spacing: 'p-1', className: 'self-stretch' },
108
+ react_1.default.createElement(phosphor_react_1.Minus, { className: (0, react_uikit_1.getSize)(4) }),
98
109
  react_1.default.createElement("span", { className: 'sr-only' }, t('delete list item label')))));
99
110
  };
100
111
  const itemsEquivalent = (a, b) => {
@@ -109,33 +120,48 @@ const itemsEquivalent = (a, b) => {
109
120
  }
110
121
  return true;
111
122
  };
112
- const ListPrimitive = ({ id: listId, title: propsTitle, description: propsDescription, items: propsItems, onAction, createListItemId = defaultCreateListItemId, ...divProps }) => {
123
+ const ListPrimitive = ({ id: listId, title: propsTitle, description: propsDescription, items: propsItems, onAction, createListItemId = defaultCreateListItemId, onChangePeriod = 0, ...divProps }) => {
113
124
  const { t } = (0, react_uikit_1.useTranslation)('appkit');
114
125
  const [creating, setCreating] = (0, react_1.useState)(false);
126
+ const [autoFocus, setAutofocus] = (0, react_1.useState)(null);
115
127
  const rejectTextUpdatesWhenFocused = (0, react_1.useCallback)((a, b) => {
116
128
  var _a;
117
129
  return ((_a = document.activeElement) === null || _a === void 0 ? void 0 : _a.getAttribute('data-itemid')) === listId ? true : a === b;
118
130
  }, [listId]);
131
+ // Title
119
132
  const titleId = `${listId}__title`;
120
133
  const [title, setTitle, titleSession] = (0, hooks_1.usePropStatefully)(propsTitle !== null && propsTitle !== void 0 ? propsTitle : '', rejectTextUpdatesWhenFocused);
134
+ const propagateTitle = (0, react_1.useCallback)((nextValue) => {
135
+ return onAction === null || onAction === void 0 ? void 0 : onAction({ listId, next: { title: nextValue } });
136
+ }, [onAction]);
137
+ const throttledPropagateTitle = (0, react_1.useMemo)(() => (0, lodash_throttle_1.default)(propagateTitle, onChangePeriod), [propagateTitle]);
121
138
  const onChangeTitle = (0, react_1.useCallback)((nextValue) => {
122
139
  setTitle(nextValue);
123
- onAction === null || onAction === void 0 ? void 0 : onAction({ listId, next: { title: nextValue } });
140
+ throttledPropagateTitle(nextValue);
124
141
  }, [onAction, listId]);
142
+ // Description
125
143
  const descriptionId = `${listId}__description`;
126
144
  const [description, setDescription, _descriptionSession] = (0, hooks_1.usePropStatefully)(propsDescription !== null && propsDescription !== void 0 ? propsDescription : '', rejectTextUpdatesWhenFocused);
145
+ const propagateDescription = (0, react_1.useCallback)((nextValue) => onAction === null || onAction === void 0 ? void 0 : onAction({ listId, next: { description: nextValue } }), [onAction]);
146
+ const throttledPropagateDescription = (0, react_1.useMemo)(() => (0, lodash_throttle_1.default)(propagateDescription, onChangePeriod), [propagateDescription]);
127
147
  const _onChangeDescription = (0, react_1.useCallback)((nextValue) => {
128
148
  setDescription(nextValue);
129
- onAction === null || onAction === void 0 ? void 0 : onAction({ listId, next: { description: nextValue } });
149
+ throttledPropagateDescription(nextValue);
130
150
  }, [onAction, listId]);
151
+ // Items & order
131
152
  const [items, setItems, itemsSession] = (0, hooks_1.usePropStatefully)(propsItems !== null && propsItems !== void 0 ? propsItems : {}, itemsEquivalent);
132
153
  const order = Object.keys(items);
154
+ const propagateItem = (0, react_1.useCallback)(({ id, ...next }) => {
155
+ return onAction === null || onAction === void 0 ? void 0 : onAction({ listId, listItemId: id, next });
156
+ }, [listId, onAction]);
157
+ const throttledPropagateItem = (0, react_1.useMemo)(() => (0, lodash_throttle_1.default)(propagateItem, onChangePeriod), [propagateItem]);
133
158
  const updateItem = (0, react_1.useCallback)(({ id, ...next }) => {
134
159
  setItems(Object.assign(items, { [id]: { ...items[id], ...next } }));
135
- onAction === null || onAction === void 0 ? void 0 : onAction({ listId, listItemId: id, next });
136
- }, [items, onAction]);
160
+ 'title' in next && throttledPropagateItem({ id, title: next.title });
161
+ 'description' in next && throttledPropagateItem({ id, description: next.description });
162
+ 'annotations' in next && (onAction === null || onAction === void 0 ? void 0 : onAction({ listId, listItemId: id, next: { annotations: next.annotations } }));
163
+ }, [items, listId, onAction]);
137
164
  const updateOrder = (0, react_1.useCallback)((id, delta) => {
138
- const order = Object.keys(items);
139
165
  const fromIndex = order.indexOf(id);
140
166
  const toIndex = fromIndex + delta;
141
167
  const nextOrder = Array.from(order);
@@ -164,20 +190,22 @@ const ListPrimitive = ({ id: listId, title: propsTitle, description: propsDescri
164
190
  };
165
191
  const created = { id };
166
192
  setItems(next.items);
193
+ setAutofocus(id);
167
194
  onAction === null || onAction === void 0 ? void 0 : onAction({ listId, next: {}, created });
168
195
  })
169
196
  .finally(() => setCreating(false));
170
197
  }, [items, createListItemId, onAction]);
171
- return (react_1.default.createElement("div", { role: 'group', ...divProps, className: (0, classnames_1.default)((0, react_ui_1.defaultGroup)({ elevation: 3, spacing: '' }), 'plb-2', divProps.className), "aria-labelledby": titleId, ...(description && { 'aria-describedby': descriptionId }) },
198
+ // Render
199
+ return (react_1.default.createElement("div", { role: 'group', ...divProps, className: (0, classnames_1.default)((0, react_uikit_1.defaultGroup)({ elevation: 3, spacing: 'pbs-2 pbe-1' }), divProps.className), "aria-labelledby": titleId, ...(description && { 'aria-describedby': descriptionId }) },
172
200
  react_1.default.createElement("span", { id: titleId, className: 'sr-only' }, title),
173
201
  description && (react_1.default.createElement("span", { id: descriptionId, className: 'sr-only' }, description)),
174
- react_1.default.createElement(react_uikit_1.Input, { key: titleSession, label: t('list title label'), placeholder: t('list title placeholder'), labelVisuallyHidden: true, initialValue: title, onChange: onChangeTitle, className: 'mli-4', "data-itemid": listId }),
202
+ react_1.default.createElement(react_uikit_1.Input, { key: titleSession, label: t('list title label'), placeholder: t('list title placeholder'), labelVisuallyHidden: true, initialValue: title, onChange: onChangeTitle, "data-itemid": listId, spacing: 'mli-2 mbe-2', borders: 'border-0', rounding: 'rounded', typography: 'text-xl font-display font-semibold' }),
175
203
  react_1.default.createElement("ol", { className: 'contents' }, order.map((listItemId, index) => {
176
- return (react_1.default.createElement(ListItemPrimitive, { key: `${itemsSession}__${listItemId}`, isFirst: index === 0, isLast: index === order.length - 1, ...{ id: listItemId, updateItem, updateOrder, deleteItem }, ...items[listItemId] }));
204
+ return (react_1.default.createElement(ListItemPrimitive, { key: `${itemsSession}__${listItemId}`, orderIndex: index, isLast: index === order.length - 1, ...{ id: listItemId, updateItem, updateOrder, deleteItem, createItem }, ...items[listItemId], autoFocus: listItemId === autoFocus }));
177
205
  })),
178
206
  react_1.default.createElement("div", { role: 'none', className: 'mli-4 mlb-4' },
179
207
  react_1.default.createElement(react_uikit_1.Button, { className: 'is-full', onClick: createItem, disabled: creating },
180
- react_1.default.createElement(phosphor_react_1.Plus, null),
208
+ react_1.default.createElement(phosphor_react_1.Plus, { className: (0, react_uikit_1.getSize)(5) }),
181
209
  react_1.default.createElement("span", { className: 'sr-only' }, t('add list item label'))))));
182
210
  };
183
211
  exports.ListPrimitive = ListPrimitive;
@@ -1 +1 @@
1
- {"version":3,"file":"ListPrimitive.js","sourceRoot":"","sources":["../../../../src/components/ListPrimitive/ListPrimitive.tsx"],"names":[],"mappings":";AAAA,EAAE;AACF,0BAA0B;AAC1B,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEF,4DAA4B;AAC5B,mDAA6C;AAC7C,+CAAqE;AAErE,6CAA4D;AAC5D,mDAAuG;AAEvG,uCAAgD;AAwCzC,MAAM,uBAAuB,GAAG,CAAC,CAAM,EAA8B,EAAE,CAAC,YAAY,IAAI,CAAC,CAAC;AAApF,QAAA,uBAAuB,2BAA6D;AAC1F,MAAM,uBAAuB,GAAG,CAAC,CAAM,EAA8B,EAAE,CAAC,SAAS,IAAI,CAAC,CAAC;AAAjF,QAAA,uBAAuB,2BAA0D;AACvF,MAAM,uBAAuB,GAAG,CAAC,CAAM,EAA8B,EAAE,CAAC,SAAS,IAAI,CAAC,CAAC;AAAjF,QAAA,uBAAuB,2BAA0D;AAsB9F,MAAM,uBAAuB,GAAG,KAAK,IAAI,EAAE,CAAC,IAAA,0BAAY,EAAC,CAAC,CAAC,CAAC;AAE5D,MAAM,iBAAiB,GAAG,CAAC,EACzB,EAAE,EACF,KAAK,EAAE,UAAU,EACjB,WAAW,EAAE,gBAAgB,EAC7B,WAAW,EAAE,gBAAgB,EAC7B,UAAU,EACV,UAAU,EACV,WAAW,EACX,OAAO,EACP,MAAM,EAC0B,EAAE,EAAE;IACpC,MAAM,OAAO,GAAG,GAAG,EAAE,YAAY,CAAC;IAClC,MAAM,OAAO,GAAG,GAAG,EAAE,SAAS,CAAC;IAC/B,MAAM,aAAa,GAAG,GAAG,EAAE,eAAe,CAAC;IAE3C,MAAM,EAAE,CAAC,EAAE,GAAG,IAAA,4BAAc,EAAC,QAAQ,CAAC,CAAC;IAEvC,MAAM,4BAA4B,GAAG,IAAA,mBAAW,EAC9C,CAAC,CAAS,EAAE,CAAS,EAAE,EAAE;;QACvB,OAAO,CAAA,MAAA,QAAQ,CAAC,aAAa,0CAAE,YAAY,CAAC,aAAa,CAAC,MAAK,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;IACrF,CAAC,EACD,CAAC,EAAE,CAAC,CACL,CAAC;IAEF,MAAM,CAAC,KAAK,EAAE,QAAQ,EAAE,YAAY,CAAC,GAAG,IAAA,yBAAiB,EAAS,UAAU,aAAV,UAAU,cAAV,UAAU,GAAI,EAAE,EAAE,4BAA4B,CAAC,CAAC;IAElH,MAAM,CAAC,WAAW,EAAE,eAAe,EAAE,mBAAmB,CAAC,GAAG,IAAA,yBAAiB,EAC3E,gBAAgB,aAAhB,gBAAgB,cAAhB,gBAAgB,GAAI,EAAE,EACtB,4BAA4B,CAC7B,CAAC;IAEF,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,IAAA,gBAAQ,EAAC,gBAAgB,aAAhB,gBAAgB,cAAhB,gBAAgB,GAAI,EAAE,CAAC,CAAC;IACvE,MAAM,MAAM,GAAG,CAAA,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,KAAK,MAAK,MAAM,CAAC;IAE7C,MAAM,aAAa,GAAG,IAAA,mBAAW,EAAC,CAAC,SAAiB,EAAE,EAAE;QACtD,QAAQ,CAAC,SAAS,CAAC,CAAC;QACpB,UAAU,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;IACvC,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,MAAM,oBAAoB,GAAG,IAAA,mBAAW,EAAC,CAAC,SAAiB,EAAE,EAAE;QAC7D,eAAe,CAAC,SAAS,CAAC,CAAC;QAC3B,UAAU,CAAC,EAAE,EAAE,EAAE,WAAW,EAAE,SAAS,EAAE,CAAC,CAAC;IAC7C,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,MAAM,cAAc,GAAG,IAAA,mBAAW,EAAC,GAAG,EAAE;QACtC,WAAW,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;IACtB,CAAC,EAAE,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,CAAC;IACtB,MAAM,gBAAgB,GAAG,IAAA,mBAAW,EAAC,GAAG,EAAE;QACxC,WAAW,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;IACrB,CAAC,EAAE,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,CAAC;IAEtB,MAAM,gBAAgB,GAAG,IAAA,mBAAW,EAAC,GAAG,EAAE;QACxC,MAAM,eAAe,GAAG,EAAE,GAAG,WAAW,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;QAC5E,cAAc,CAAC,eAAe,CAAC,CAAC;QAChC,UAAU,CAAC,EAAE,EAAE,EAAE,WAAW,EAAE,eAAe,EAAE,CAAC,CAAC;IACnD,CAAC,EAAE,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC,CAAC;IAE1B,MAAM,aAAa,GAAG,IAAA,mBAAW,EAAC,GAAG,EAAE;QACrC,UAAU,CAAC,EAAE,CAAC,CAAC;IACjB,CAAC,EAAE,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,CAAC;IAErB,OAAO,CACL,sCACE,GAAG,EAAE,EAAE,EACP,SAAS,EAAC,+BAA+B,qBACxB,OAAO,KACpB,CAAC,WAAW,IAAI,EAAE,kBAAkB,EAAE,aAAa,EAAE,CAAC;QAE1D,yCACE,GAAG,EAAE,YAAY,KACb;gBACF,IAAI,EAAE,UAAU;gBAChB,EAAE,EAAE,OAAO;gBACX,GAAG,CAAC,WAAW,IAAI;oBACjB,kBAAkB,EAAE,aAAa;iBAClC,CAAC;gBACF,SAAS,EAAE,IAAA,oBAAE,EACX,IAAA,qBAAO,EAAC,CAAC,CAAC,EACV,sHAAsH,EACtH,0BAAY,EACZ,IAAA,uBAAY,EAAC,EAAE,CAAC,CACjB;gBACD,QAAQ,EAAE,gBAAgB;gBAC1B,OAAO,EAAE,MAAM;aAChB,GACD;QACF,yCAAO,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,SAAS,EAAC,SAAS,IACtD,KAAK,CACA;QACR,wCAAM,EAAE,EAAE,aAAa,EAAE,SAAS,EAAC,SAAS,IACzC,WAAW,CACP;QACP,uCAAK,IAAI,EAAC,MAAM,EAAC,SAAS,EAAC,MAAM;YAC/B,8BAAC,mBAAK,IACJ,KAAK,EAAE,CAAC,CAAC,uBAAuB,CAAC,EACjC,WAAW,EAAE,CAAC,CAAC,6BAA6B,CAAC,EAC7C,mBAAmB,QACnB,YAAY,EAAE,KAAK,EACnB,QAAQ,EAAE,aAAa,iBACV,EAAE,GACf,CAWE;QAYN,8BAAC,oBAAM,IAAC,OAAO,QAAC,OAAO,EAAE,aAAa;YACpC,8BAAC,sBAAK,OAAG;YACT,wCAAM,SAAS,EAAC,SAAS,IAAE,CAAC,CAAC,wBAAwB,CAAC,CAAQ,CACvD,CACN,CACN,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,eAAe,GAAG,CAAC,CAAY,EAAE,CAAY,EAAE,EAAE;;IACrD,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAC7B,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAC7B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;QACrC,MAAM,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QACrB,IAAI,GAAG,KAAK,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,IAAI,CAAA,MAAA,CAAC,CAAC,GAAG,CAAC,CAAC,WAAW,0CAAE,KAAK,OAAK,MAAA,CAAC,CAAC,GAAG,CAAC,CAAC,WAAW,0CAAE,KAAK,CAAA,EAAE;YAChH,OAAO,KAAK,CAAC;SACd;KACF;IACD,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AAEK,MAAM,aAAa,GAAG,CAAC,EAC5B,EAAE,EAAE,MAAM,EACV,KAAK,EAAE,UAAU,EACjB,WAAW,EAAE,gBAAgB,EAC7B,KAAK,EAAE,UAAU,EACjB,QAAQ,EACR,gBAAgB,GAAG,uBAAuB,EAC1C,GAAG,QAAQ,EACiB,EAAE,EAAE;IAChC,MAAM,EAAE,CAAC,EAAE,GAAG,IAAA,4BAAc,EAAC,QAAQ,CAAC,CAAC;IAEvC,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,IAAA,gBAAQ,EAAC,KAAK,CAAC,CAAC;IAEhD,MAAM,4BAA4B,GAAG,IAAA,mBAAW,EAC9C,CAAC,CAAS,EAAE,CAAS,EAAE,EAAE;;QACvB,OAAO,CAAA,MAAA,QAAQ,CAAC,aAAa,0CAAE,YAAY,CAAC,aAAa,CAAC,MAAK,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;IACzF,CAAC,EACD,CAAC,MAAM,CAAC,CACT,CAAC;IAEF,MAAM,OAAO,GAAG,GAAG,MAAM,SAAS,CAAC;IACnC,MAAM,CAAC,KAAK,EAAE,QAAQ,EAAE,YAAY,CAAC,GAAG,IAAA,yBAAiB,EAAC,UAAU,aAAV,UAAU,cAAV,UAAU,GAAI,EAAE,EAAE,4BAA4B,CAAC,CAAC;IAC1G,MAAM,aAAa,GAAG,IAAA,mBAAW,EAC/B,CAAC,SAAiB,EAAE,EAAE;QACpB,QAAQ,CAAC,SAAS,CAAC,CAAC;QACpB,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAG,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE,CAAC,CAAC;IACrD,CAAC,EACD,CAAC,QAAQ,EAAE,MAAM,CAAC,CACnB,CAAC;IAEF,MAAM,aAAa,GAAG,GAAG,MAAM,eAAe,CAAC;IAC/C,MAAM,CAAC,WAAW,EAAE,cAAc,EAAE,mBAAmB,CAAC,GAAG,IAAA,yBAAiB,EAC1E,gBAAgB,aAAhB,gBAAgB,cAAhB,gBAAgB,GAAI,EAAE,EACtB,4BAA4B,CAC7B,CAAC;IACF,MAAM,oBAAoB,GAAG,IAAA,mBAAW,EACtC,CAAC,SAAiB,EAAE,EAAE;QACpB,cAAc,CAAC,SAAS,CAAC,CAAC;QAC1B,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAG,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,WAAW,EAAE,SAAS,EAAE,EAAE,CAAC,CAAC;IAC3D,CAAC,EACD,CAAC,QAAQ,EAAE,MAAM,CAAC,CACnB,CAAC;IAEF,MAAM,CAAC,KAAK,EAAE,QAAQ,EAAE,YAAY,CAAC,GAAG,IAAA,yBAAiB,EAAC,UAAU,aAAV,UAAU,cAAV,UAAU,GAAI,EAAE,EAAE,eAAe,CAAC,CAAC;IAC7F,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAEjC,MAAM,UAAU,GAAG,IAAA,mBAAW,EAC5B,CAAC,EAAE,EAAE,EAAE,GAAG,IAAI,EAAkE,EAAE,EAAE;QAClF,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,GAAG,KAAK,CAAC,EAAE,CAAC,EAAE,GAAG,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC;QACpE,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAG,EAAE,MAAM,EAAE,UAAU,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;IAC/C,CAAC,EACD,CAAC,KAAK,EAAE,QAAQ,CAAC,CAClB,CAAC;IAEF,MAAM,WAAW,GAAG,IAAA,mBAAW,EAC7B,CAAC,EAAc,EAAE,KAAa,EAAE,EAAE;QAChC,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACjC,MAAM,SAAS,GAAG,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QACpC,MAAM,OAAO,GAAG,SAAS,GAAG,KAAK,CAAC;QAClC,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACpC,SAAS,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;QAC/B,SAAS,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;QACjC,MAAM,SAAS,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,GAAc,EAAE,UAAU,EAAE,EAAE;YAChE,GAAG,CAAC,UAAU,CAAC,GAAG,KAAK,CAAC,UAAU,CAAC,CAAC;YACpC,OAAO,GAAG,CAAC;QACb,CAAC,EAAE,EAAE,CAAC,CAAC;QACP,QAAQ,CAAC,SAAS,CAAC,CAAC;QACpB,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAG,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;IACnC,CAAC,EACD,CAAC,KAAK,EAAE,QAAQ,CAAC,CAClB,CAAC;IAEF,MAAM,UAAU,GAAG,IAAA,mBAAW,EAC5B,CAAC,EAAc,EAAE,EAAE;QACjB,IAAI,KAAK,CAAC,EAAE,CAAC,EAAE;YACb,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,WAAW,EAAE,GAAG,SAAS,EAAE,GAAG,KAAK,CAAC;YAClD,QAAQ,CAAC,SAAS,CAAC,CAAC;YACpB,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAG,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,GAAG,WAAW,EAAE,EAAE,CAAC,CAAC;SACnE;IACH,CAAC,EACD,CAAC,KAAK,EAAE,QAAQ,CAAC,CAClB,CAAC;IAEF,MAAM,UAAU,GAAG,IAAA,mBAAW,EAAC,GAAG,EAAE;QAClC,WAAW,CAAC,IAAI,CAAC,CAAC;QAClB,OAAO,gBAAgB,EAAE;aACtB,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE;YACX,MAAM,IAAI,GAAG;gBACX,KAAK,EAAE,EAAE,GAAG,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE;aAC9B,CAAC;YACF,MAAM,OAAO,GAAG,EAAE,EAAE,EAAE,CAAC;YACvB,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACrB,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAG,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC;QAC5C,CAAC,CAAC;aACD,OAAO,CAAC,GAAG,EAAE,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC;IACvC,CAAC,EAAE,CAAC,KAAK,EAAE,gBAAgB,EAAE,QAAQ,CAAC,CAAC,CAAC;IAExC,OAAO,CACL,uCACE,IAAI,EAAC,OAAO,KACR,QAAQ,EACZ,SAAS,EAAE,IAAA,oBAAE,EAAC,IAAA,uBAAY,EAAC,EAAE,SAAS,EAAE,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,EAAE,OAAO,EAAE,QAAQ,CAAC,SAAS,CAAC,qBACtE,OAAO,KACpB,CAAC,WAAW,IAAI,EAAE,kBAAkB,EAAE,aAAa,EAAE,CAAC;QAE1D,wCAAM,EAAE,EAAE,OAAO,EAAE,SAAS,EAAC,SAAS,IACnC,KAAK,CACD;QACN,WAAW,IAAI,CACd,wCAAM,EAAE,EAAE,aAAa,EAAE,SAAS,EAAC,SAAS,IACzC,WAAW,CACP,CACR;QACD,8BAAC,mBAAK,IACJ,GAAG,EAAE,YAAY,EACjB,KAAK,EAAE,CAAC,CAAC,kBAAkB,CAAC,EAC5B,WAAW,EAAE,CAAC,CAAC,wBAAwB,CAAC,EACxC,mBAAmB,QACnB,YAAY,EAAE,KAAK,EACnB,QAAQ,EAAE,aAAa,EACvB,SAAS,EAAC,OAAO,iBACJ,MAAM,GACnB;QAYF,sCAAI,SAAS,EAAC,UAAU,IACrB,KAAK,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,KAAK,EAAE,EAAE;YAC/B,OAAO,CACL,8BAAC,iBAAiB,IAChB,GAAG,EAAE,GAAG,YAAY,KAAK,UAAU,EAAE,EACrC,OAAO,EAAE,KAAK,KAAK,CAAC,EACpB,MAAM,EAAE,KAAK,KAAK,KAAK,CAAC,MAAM,GAAG,CAAC,KAC9B,EAAE,EAAE,EAAE,UAAU,EAAE,UAAU,EAAE,WAAW,EAAE,UAAU,EAAE,KACvD,KAAK,CAAC,UAAU,CAAC,GACrB,CACH,CAAC;QACJ,CAAC,CAAC,CACC;QACL,uCAAK,IAAI,EAAC,MAAM,EAAC,SAAS,EAAC,aAAa;YACtC,8BAAC,oBAAM,IAAC,SAAS,EAAC,SAAS,EAAC,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ;gBACjE,8BAAC,qBAAI,OAAG;gBACR,wCAAM,SAAS,EAAC,SAAS,IAAE,CAAC,CAAC,qBAAqB,CAAC,CAAQ,CACpD,CACL,CACF,CACP,CAAC;AACJ,CAAC,CAAC;AA3JW,QAAA,aAAa,iBA2JxB"}
1
+ {"version":3,"file":"ListPrimitive.js","sourceRoot":"","sources":["../../../../src/components/ListPrimitive/ListPrimitive.tsx"],"names":[],"mappings":";AAAA,EAAE;AACF,0BAA0B;AAC1B,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEF,4DAA4B;AAC5B,sEAAuC;AACvC,mDAA6C;AAC7C,+CAA6F;AAE7F,mDAS2B;AAE3B,uCAAgD;AAwCzC,MAAM,uBAAuB,GAAG,CAAC,CAAM,EAA8B,EAAE,CAAC,YAAY,IAAI,CAAC,CAAC;AAApF,QAAA,uBAAuB,2BAA6D;AAC1F,MAAM,uBAAuB,GAAG,CAAC,CAAM,EAA8B,EAAE,CAAC,SAAS,IAAI,CAAC,CAAC;AAAjF,QAAA,uBAAuB,2BAA0D;AACvF,MAAM,uBAAuB,GAAG,CAAC,CAAM,EAA8B,EAAE,CAAC,SAAS,IAAI,CAAC,CAAC;AAAjF,QAAA,uBAAuB,2BAA0D;AAyB9F,MAAM,uBAAuB,GAAG,KAAK,IAAI,EAAE,CAAC,IAAA,0BAAY,EAAC,CAAC,CAAC,CAAC;AAE5D,MAAM,iBAAiB,GAAG,CAAC,EACzB,EAAE,EACF,KAAK,EAAE,UAAU,EACjB,WAAW,EAAE,gBAAgB,EAC7B,WAAW,EAAE,gBAAgB,EAC7B,UAAU,EACV,UAAU,EACV,UAAU,EACV,WAAW,EACX,UAAU,EACV,MAAM,EACN,SAAS,EACuB,EAAE,EAAE;IACpC,MAAM,OAAO,GAAG,GAAG,EAAE,YAAY,CAAC;IAClC,MAAM,OAAO,GAAG,GAAG,EAAE,SAAS,CAAC;IAC/B,MAAM,aAAa,GAAG,GAAG,EAAE,eAAe,CAAC;IAE3C,MAAM,EAAE,CAAC,EAAE,GAAG,IAAA,4BAAc,EAAC,QAAQ,CAAC,CAAC;IAEvC,MAAM,4BAA4B,GAAG,IAAA,mBAAW,EAC9C,CAAC,CAAS,EAAE,CAAS,EAAE,EAAE;;QACvB,OAAO,CAAA,MAAA,QAAQ,CAAC,aAAa,0CAAE,YAAY,CAAC,aAAa,CAAC,MAAK,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;IACrF,CAAC,EACD,CAAC,EAAE,CAAC,CACL,CAAC;IAEF,MAAM,CAAC,KAAK,EAAE,QAAQ,EAAE,YAAY,CAAC,GAAG,IAAA,yBAAiB,EAAS,UAAU,aAAV,UAAU,cAAV,UAAU,GAAI,EAAE,EAAE,4BAA4B,CAAC,CAAC;IAElH,MAAM,CAAC,WAAW,EAAE,eAAe,EAAE,mBAAmB,CAAC,GAAG,IAAA,yBAAiB,EAC3E,gBAAgB,aAAhB,gBAAgB,cAAhB,gBAAgB,GAAI,EAAE,EACtB,4BAA4B,CAC7B,CAAC;IAEF,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,IAAA,gBAAQ,EAAC,gBAAgB,aAAhB,gBAAgB,cAAhB,gBAAgB,GAAI,EAAE,CAAC,CAAC;IACvE,MAAM,MAAM,GAAG,CAAA,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,KAAK,MAAK,MAAM,CAAC;IAE7C,MAAM,aAAa,GAAG,IAAA,mBAAW,EAAC,CAAC,SAAiB,EAAE,EAAE;QACtD,QAAQ,CAAC,SAAS,CAAC,CAAC;QACpB,UAAU,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;IACvC,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,MAAM,oBAAoB,GAAG,IAAA,mBAAW,EAAC,CAAC,SAAiB,EAAE,EAAE;QAC7D,eAAe,CAAC,SAAS,CAAC,CAAC;QAC3B,UAAU,CAAC,EAAE,EAAE,EAAE,WAAW,EAAE,SAAS,EAAE,CAAC,CAAC;IAC7C,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,MAAM,cAAc,GAAG,IAAA,mBAAW,EAAC,GAAG,EAAE;QACtC,WAAW,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;IACtB,CAAC,EAAE,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,CAAC;IACtB,MAAM,gBAAgB,GAAG,IAAA,mBAAW,EAAC,GAAG,EAAE;QACxC,WAAW,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;IACrB,CAAC,EAAE,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,CAAC;IAEtB,MAAM,gBAAgB,GAAG,IAAA,mBAAW,EAAC,GAAG,EAAE;QACxC,MAAM,eAAe,GAAG,EAAE,GAAG,WAAW,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;QAC5E,cAAc,CAAC,eAAe,CAAC,CAAC;QAChC,UAAU,CAAC,EAAE,EAAE,EAAE,WAAW,EAAE,eAAe,EAAE,CAAC,CAAC;IACnD,CAAC,EAAE,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC,CAAC;IAE1B,MAAM,aAAa,GAAG,IAAA,mBAAW,EAAC,GAAG,EAAE;QACrC,UAAU,CAAC,EAAE,CAAC,CAAC;IACjB,CAAC,EAAE,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,CAAC;IAErB,MAAM,OAAO,GAAG,IAAA,mBAAW,EACzB,CAAC,CAAkC,EAAE,EAAE;;QACrC,IAAI,CAAC,CAAC,GAAG,KAAK,OAAO,EAAE;YACrB,IAAI,MAAM,EAAE;gBACV,UAAU,EAAE,CAAC;aACd;iBAAM;gBACL,MAAC,QAAQ,CAAC,aAAa,CAAC,0BAA0B,UAAU,GAAG,CAAC,IAAI,CAA6B,0CAAE,KAAK,EAAE,CAAC;aAC5G;SACF;IACH,CAAC,EACD,CAAC,UAAU,EAAE,MAAM,CAAC,CACrB,CAAC;IAEF,OAAO,CACL,sCACE,GAAG,EAAE,EAAE,EACP,SAAS,EAAC,qCAAqC,qBAC9B,OAAO,KACpB,CAAC,WAAW,IAAI,EAAE,kBAAkB,EAAE,aAAa,EAAE,CAAC;QAE1D,yCACE,GAAG,EAAE,YAAY,KACb;gBACF,IAAI,EAAE,UAAU;gBAChB,EAAE,EAAE,OAAO;gBACX,GAAG,CAAC,WAAW,IAAI;oBACjB,kBAAkB,EAAE,aAAa;iBAClC,CAAC;gBACF,SAAS,EAAE,IAAA,oBAAE,EACX,IAAA,qBAAO,EAAC,CAAC,CAAC,EACV,2HAA2H,EAC3H,0BAAY,EACZ,IAAA,0BAAY,EAAC,EAAE,CAAC,CACjB;gBACD,QAAQ,EAAE,gBAAgB;gBAC1B,OAAO,EAAE,MAAM;aAChB,GACD;QACF,yCAAO,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,SAAS,EAAC,SAAS,IACtD,KAAK,CACA;QACR,wCAAM,EAAE,EAAE,aAAa,EAAE,SAAS,EAAC,SAAS,IACzC,WAAW,CACP;QACP,uCAAK,IAAI,EAAC,MAAM,EAAC,SAAS,EAAC,MAAM;YAC/B,8BAAC,mBAAK,IACJ,OAAO,EAAC,EAAE,EACV,KAAK,EAAE,CAAC,CAAC,uBAAuB,CAAC,EACjC,WAAW,EAAE,CAAC,CAAC,6BAA6B,CAAC,EAC7C,mBAAmB,QACnB,YAAY,EAAE,KAAK,EACnB,QAAQ,EAAE,aAAa,iBACV,EAAE,EACf,OAAO,EAAC,UAAU,EAClB,QAAQ,EAAC,SAAS,EAClB,SAAS,EAAE,SAAS,EACpB,OAAO,EAAE,OAAO,qBACC,UAAU,GAC3B,CAWE;QAYN,8BAAC,oBAAM,IAAC,OAAO,EAAE,aAAa,EAAE,OAAO,EAAC,OAAO,EAAC,OAAO,EAAC,KAAK,EAAC,SAAS,EAAC,cAAc;YACpF,8BAAC,sBAAK,IAAC,SAAS,EAAE,IAAA,qBAAO,EAAC,CAAC,CAAC,GAAI;YAChC,wCAAM,SAAS,EAAC,SAAS,IAAE,CAAC,CAAC,wBAAwB,CAAC,CAAQ,CACvD,CACN,CACN,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,eAAe,GAAG,CAAC,CAAY,EAAE,CAAY,EAAE,EAAE;;IACrD,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAC7B,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAC7B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;QACrC,MAAM,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QACrB,IAAI,GAAG,KAAK,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,IAAI,CAAA,MAAA,CAAC,CAAC,GAAG,CAAC,CAAC,WAAW,0CAAE,KAAK,OAAK,MAAA,CAAC,CAAC,GAAG,CAAC,CAAC,WAAW,0CAAE,KAAK,CAAA,EAAE;YAChH,OAAO,KAAK,CAAC;SACd;KACF;IACD,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AAEK,MAAM,aAAa,GAAG,CAAC,EAC5B,EAAE,EAAE,MAAM,EACV,KAAK,EAAE,UAAU,EACjB,WAAW,EAAE,gBAAgB,EAC7B,KAAK,EAAE,UAAU,EACjB,QAAQ,EACR,gBAAgB,GAAG,uBAAuB,EAC1C,cAAc,GAAG,CAAC,EAClB,GAAG,QAAQ,EACiB,EAAE,EAAE;IAChC,MAAM,EAAE,CAAC,EAAE,GAAG,IAAA,4BAAc,EAAC,QAAQ,CAAC,CAAC;IAEvC,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,IAAA,gBAAQ,EAAC,KAAK,CAAC,CAAC;IAChD,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,IAAA,gBAAQ,EAAgB,IAAI,CAAC,CAAC;IAEhE,MAAM,4BAA4B,GAAG,IAAA,mBAAW,EAC9C,CAAC,CAAS,EAAE,CAAS,EAAE,EAAE;;QACvB,OAAO,CAAA,MAAA,QAAQ,CAAC,aAAa,0CAAE,YAAY,CAAC,aAAa,CAAC,MAAK,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;IACzF,CAAC,EACD,CAAC,MAAM,CAAC,CACT,CAAC;IAEF,QAAQ;IAER,MAAM,OAAO,GAAG,GAAG,MAAM,SAAS,CAAC;IACnC,MAAM,CAAC,KAAK,EAAE,QAAQ,EAAE,YAAY,CAAC,GAAG,IAAA,yBAAiB,EAAC,UAAU,aAAV,UAAU,cAAV,UAAU,GAAI,EAAE,EAAE,4BAA4B,CAAC,CAAC;IAC1G,MAAM,cAAc,GAAG,IAAA,mBAAW,EAChC,CAAC,SAAiB,EAAE,EAAE;QACpB,OAAO,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAG,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE,CAAC,CAAC;IAC5D,CAAC,EACD,CAAC,QAAQ,CAAC,CACX,CAAC;IACF,MAAM,uBAAuB,GAAG,IAAA,eAAO,EAAC,GAAG,EAAE,CAAC,IAAA,yBAAQ,EAAC,cAAc,EAAE,cAAc,CAAC,EAAE,CAAC,cAAc,CAAC,CAAC,CAAC;IAC1G,MAAM,aAAa,GAAG,IAAA,mBAAW,EAC/B,CAAC,SAAiB,EAAE,EAAE;QACpB,QAAQ,CAAC,SAAS,CAAC,CAAC;QACpB,uBAAuB,CAAC,SAAS,CAAC,CAAC;IACrC,CAAC,EACD,CAAC,QAAQ,EAAE,MAAM,CAAC,CACnB,CAAC;IAEF,cAAc;IAEd,MAAM,aAAa,GAAG,GAAG,MAAM,eAAe,CAAC;IAC/C,MAAM,CAAC,WAAW,EAAE,cAAc,EAAE,mBAAmB,CAAC,GAAG,IAAA,yBAAiB,EAC1E,gBAAgB,aAAhB,gBAAgB,cAAhB,gBAAgB,GAAI,EAAE,EACtB,4BAA4B,CAC7B,CAAC;IACF,MAAM,oBAAoB,GAAG,IAAA,mBAAW,EACtC,CAAC,SAAiB,EAAE,EAAE,CAAC,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAG,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,WAAW,EAAE,SAAS,EAAE,EAAE,CAAC,EAC/E,CAAC,QAAQ,CAAC,CACX,CAAC;IACF,MAAM,6BAA6B,GAAG,IAAA,eAAO,EAC3C,GAAG,EAAE,CAAC,IAAA,yBAAQ,EAAC,oBAAoB,EAAE,cAAc,CAAC,EACpD,CAAC,oBAAoB,CAAC,CACvB,CAAC;IACF,MAAM,oBAAoB,GAAG,IAAA,mBAAW,EACtC,CAAC,SAAiB,EAAE,EAAE;QACpB,cAAc,CAAC,SAAS,CAAC,CAAC;QAC1B,6BAA6B,CAAC,SAAS,CAAC,CAAC;IAC3C,CAAC,EACD,CAAC,QAAQ,EAAE,MAAM,CAAC,CACnB,CAAC;IAEF,gBAAgB;IAEhB,MAAM,CAAC,KAAK,EAAE,QAAQ,EAAE,YAAY,CAAC,GAAG,IAAA,yBAAiB,EAAC,UAAU,aAAV,UAAU,cAAV,UAAU,GAAI,EAAE,EAAE,eAAe,CAAC,CAAC;IAC7F,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAEjC,MAAM,aAAa,GAAG,IAAA,mBAAW,EAC/B,CAAC,EAAE,EAAE,EAAE,GAAG,IAAI,EAAkE,EAAE,EAAE;QAClF,OAAO,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAG,EAAE,MAAM,EAAE,UAAU,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;IACtD,CAAC,EACD,CAAC,MAAM,EAAE,QAAQ,CAAC,CACnB,CAAC;IACF,MAAM,sBAAsB,GAAG,IAAA,eAAO,EAAC,GAAG,EAAE,CAAC,IAAA,yBAAQ,EAAC,aAAa,EAAE,cAAc,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC;IACvG,MAAM,UAAU,GAAG,IAAA,mBAAW,EAC5B,CAAC,EAAE,EAAE,EAAE,GAAG,IAAI,EAAkE,EAAE,EAAE;QAClF,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,GAAG,KAAK,CAAC,EAAE,CAAC,EAAE,GAAG,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC;QACpE,OAAO,IAAI,IAAI,IAAI,sBAAsB,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;QACrE,aAAa,IAAI,IAAI,IAAI,sBAAsB,CAAC,EAAE,EAAE,EAAE,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;QACvF,aAAa,IAAI,IAAI,KAAI,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAG,EAAE,MAAM,EAAE,UAAU,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC,CAAA,CAAC;IAC3G,CAAC,EACD,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,CAAC,CAC1B,CAAC;IAEF,MAAM,WAAW,GAAG,IAAA,mBAAW,EAC7B,CAAC,EAAc,EAAE,KAAa,EAAE,EAAE;QAChC,MAAM,SAAS,GAAG,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QACpC,MAAM,OAAO,GAAG,SAAS,GAAG,KAAK,CAAC;QAClC,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACpC,SAAS,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;QAC/B,SAAS,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;QACjC,MAAM,SAAS,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,GAAc,EAAE,UAAU,EAAE,EAAE;YAChE,GAAG,CAAC,UAAU,CAAC,GAAG,KAAK,CAAC,UAAU,CAAC,CAAC;YACpC,OAAO,GAAG,CAAC;QACb,CAAC,EAAE,EAAE,CAAC,CAAC;QACP,QAAQ,CAAC,SAAS,CAAC,CAAC;QACpB,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAG,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;IACnC,CAAC,EACD,CAAC,KAAK,EAAE,QAAQ,CAAC,CAClB,CAAC;IAEF,MAAM,UAAU,GAAG,IAAA,mBAAW,EAC5B,CAAC,EAAc,EAAE,EAAE;QACjB,IAAI,KAAK,CAAC,EAAE,CAAC,EAAE;YACb,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,WAAW,EAAE,GAAG,SAAS,EAAE,GAAG,KAAK,CAAC;YAClD,QAAQ,CAAC,SAAS,CAAC,CAAC;YACpB,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAG,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,GAAG,WAAW,EAAE,EAAE,CAAC,CAAC;SACnE;IACH,CAAC,EACD,CAAC,KAAK,EAAE,QAAQ,CAAC,CAClB,CAAC;IAEF,MAAM,UAAU,GAAG,IAAA,mBAAW,EAAC,GAAG,EAAE;QAClC,WAAW,CAAC,IAAI,CAAC,CAAC;QAClB,OAAO,gBAAgB,EAAE;aACtB,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE;YACX,MAAM,IAAI,GAAG;gBACX,KAAK,EAAE,EAAE,GAAG,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE;aAC9B,CAAC;YACF,MAAM,OAAO,GAAG,EAAE,EAAE,EAAE,CAAC;YACvB,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACrB,YAAY,CAAC,EAAE,CAAC,CAAC;YACjB,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAG,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC;QAC5C,CAAC,CAAC;aACD,OAAO,CAAC,GAAG,EAAE,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC;IACvC,CAAC,EAAE,CAAC,KAAK,EAAE,gBAAgB,EAAE,QAAQ,CAAC,CAAC,CAAC;IAExC,SAAS;IAET,OAAO,CACL,uCACE,IAAI,EAAC,OAAO,KACR,QAAQ,EACZ,SAAS,EAAE,IAAA,oBAAE,EAAC,IAAA,0BAAY,EAAC,EAAE,SAAS,EAAE,CAAC,EAAE,OAAO,EAAE,aAAa,EAAE,CAAC,EAAE,QAAQ,CAAC,SAAS,CAAC,qBACxE,OAAO,KACpB,CAAC,WAAW,IAAI,EAAE,kBAAkB,EAAE,aAAa,EAAE,CAAC;QAE1D,wCAAM,EAAE,EAAE,OAAO,EAAE,SAAS,EAAC,SAAS,IACnC,KAAK,CACD;QACN,WAAW,IAAI,CACd,wCAAM,EAAE,EAAE,aAAa,EAAE,SAAS,EAAC,SAAS,IACzC,WAAW,CACP,CACR;QACD,8BAAC,mBAAK,IACJ,GAAG,EAAE,YAAY,EACjB,KAAK,EAAE,CAAC,CAAC,kBAAkB,CAAC,EAC5B,WAAW,EAAE,CAAC,CAAC,wBAAwB,CAAC,EACxC,mBAAmB,QACnB,YAAY,EAAE,KAAK,EACnB,QAAQ,EAAE,aAAa,iBACV,MAAM,EACnB,OAAO,EAAC,aAAa,EACrB,OAAO,EAAC,UAAU,EAClB,QAAQ,EAAC,SAAS,EAClB,UAAU,EAAC,oCAAoC,GAC/C;QAYF,sCAAI,SAAS,EAAC,UAAU,IACrB,KAAK,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,KAAK,EAAE,EAAE;YAC/B,OAAO,CACL,8BAAC,iBAAiB,IAChB,GAAG,EAAE,GAAG,YAAY,KAAK,UAAU,EAAE,EACrC,UAAU,EAAE,KAAK,EACjB,MAAM,EAAE,KAAK,KAAK,KAAK,CAAC,MAAM,GAAG,CAAC,KAC9B,EAAE,EAAE,EAAE,UAAU,EAAE,UAAU,EAAE,WAAW,EAAE,UAAU,EAAE,UAAU,EAAE,KACnE,KAAK,CAAC,UAAU,CAAC,EACrB,SAAS,EAAE,UAAU,KAAK,SAAS,GACnC,CACH,CAAC;QACJ,CAAC,CAAC,CACC;QACL,uCAAK,IAAI,EAAC,MAAM,EAAC,SAAS,EAAC,aAAa;YACtC,8BAAC,oBAAM,IAAC,SAAS,EAAC,SAAS,EAAC,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ;gBACjE,8BAAC,qBAAI,IAAC,SAAS,EAAE,IAAA,qBAAO,EAAC,CAAC,CAAC,GAAI;gBAC/B,wCAAM,SAAS,EAAC,SAAS,IAAE,CAAC,CAAC,qBAAqB,CAAC,CAAQ,CACpD,CACL,CACF,CACP,CAAC;AACJ,CAAC,CAAC;AAjMW,QAAA,aAAa,iBAiMxB"}
@@ -2,7 +2,7 @@ import '@dxosTheme';
2
2
  import { ListPrimitiveComponentProps } from './ListPrimitive';
3
3
  declare const _default: {
4
4
  title: string;
5
- component: ({ id: listId, title: propsTitle, description: propsDescription, items: propsItems, onAction, createListItemId, ...divProps }: ListPrimitiveComponentProps) => JSX.Element;
5
+ component: ({ id: listId, title: propsTitle, description: propsDescription, items: propsItems, onAction, createListItemId, onChangePeriod, ...divProps }: ListPrimitiveComponentProps) => JSX.Element;
6
6
  argTypes: {};
7
7
  };
8
8
  export default _default;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dxos/react-list",
3
- "version": "0.1.5",
3
+ "version": "0.1.10",
4
4
  "description": "A list editing experience component for DXOS.",
5
5
  "homepage": "https://dxos.org",
6
6
  "bugs": "https://github.com/dxos/dxos/issues",
@@ -13,25 +13,27 @@
13
13
  "src"
14
14
  ],
15
15
  "dependencies": {
16
- "@dxos/client": "0.1.6",
17
- "@dxos/config": "0.1.6",
18
- "@dxos/object-model": "0.1.6",
19
- "@dxos/react-appkit": "0.1.6",
20
- "@dxos/react-async": "0.1.6",
21
- "@dxos/react-client": "0.1.6",
22
- "@dxos/react-ui": "0.1.6",
23
- "@dxos/react-uikit": "0.1.6",
24
16
  "classnames": "^2.3.2",
17
+ "lodash.throttle": "^4.1.1",
25
18
  "react": "^18.2.0",
26
- "react-dom": "^18.2.0"
19
+ "react-dom": "^18.2.0",
20
+ "@dxos/client": "0.1.10",
21
+ "@dxos/config": "0.1.10",
22
+ "@dxos/object-model": "0.1.10",
23
+ "@dxos/react-appkit": "0.1.10",
24
+ "@dxos/react-async": "0.1.10",
25
+ "@dxos/react-client": "0.1.10",
26
+ "@dxos/react-ui": "0.1.10",
27
+ "@dxos/react-uikit": "0.1.10"
27
28
  },
28
29
  "devDependencies": {
29
- "@dxos/async": "0.1.6",
30
- "@dxos/debug": "0.1.6",
31
- "@dxos/vite-plugin": "0.1.6",
30
+ "@types/lodash.throttle": "^4.1.1",
32
31
  "@types/react": "^18.0.21",
33
32
  "@types/react-dom": "^18.0.6",
34
- "phosphor-react": "^1.4.1"
33
+ "phosphor-react": "^1.4.1",
34
+ "@dxos/async": "0.1.10",
35
+ "@dxos/debug": "0.1.10",
36
+ "@dxos/vite-plugin": "0.1.10"
35
37
  },
36
38
  "peerDependencies": {
37
39
  "phosphor-react": "^1.4.1"
@@ -88,6 +88,7 @@ const ListLoaded = ({ space, list, listItems: propsListItems }: ListLoadedProps)
88
88
  };
89
89
  return acc;
90
90
  }, {}),
91
+ onChangePeriod: 300,
91
92
  onAction,
92
93
  createListItemId
93
94
  }}
@@ -3,11 +3,20 @@
3
3
  //
4
4
 
5
5
  import cx from 'classnames';
6
+ import throttle from 'lodash.throttle';
6
7
  import { Minus, Plus } from 'phosphor-react';
7
- import React, { ComponentProps, useCallback, useState } from 'react';
8
-
9
- import { defaultGroup, defaultHover } from '@dxos/react-ui';
10
- import { defaultFocus, Input, useTranslation, getSize, Button, randomString } from '@dxos/react-uikit';
8
+ import React, { ComponentProps, useCallback, useMemo, useState, KeyboardEvent } from 'react';
9
+
10
+ import {
11
+ defaultFocus,
12
+ Input,
13
+ useTranslation,
14
+ getSize,
15
+ Button,
16
+ randomString,
17
+ defaultGroup,
18
+ defaultHover
19
+ } from '@dxos/react-uikit';
11
20
 
12
21
  import { usePropStatefully } from '../../hooks';
13
22
 
@@ -63,14 +72,17 @@ export interface ListPrimitiveComponentProps extends ListPrimitiveProps, Omit<Co
63
72
  items: ListItems;
64
73
  onAction?: (action: ListAction) => void;
65
74
  createListItemId?: () => Promise<ListItemId>;
75
+ onChangePeriod?: number;
66
76
  }
67
77
 
68
78
  export interface ListItemPrimitiveComponentProps extends ListItemProps, Omit<ComponentProps<'li'>, 'id' | 'title'> {
69
79
  updateItem: (item: ListItemProps) => void;
70
80
  updateOrder: (id: ListItemId, delta: number) => void;
71
81
  deleteItem: (id: ListItemId) => void;
72
- isFirst?: boolean;
82
+ createItem: () => void;
83
+ orderIndex: number;
73
84
  isLast?: boolean;
85
+ autoFocus?: boolean;
74
86
  }
75
87
 
76
88
  const defaultCreateListItemId = async () => randomString(8);
@@ -82,9 +94,11 @@ const ListItemPrimitive = ({
82
94
  annotations: propsAnnotations,
83
95
  updateItem,
84
96
  deleteItem,
97
+ createItem,
85
98
  updateOrder,
86
- isFirst,
87
- isLast
99
+ orderIndex,
100
+ isLast,
101
+ autoFocus
88
102
  }: ListItemPrimitiveComponentProps) => {
89
103
  const checkId = `${id}__checkbox`;
90
104
  const labelId = `${id}__title`;
@@ -136,10 +150,23 @@ const ListItemPrimitive = ({
136
150
  deleteItem(id);
137
151
  }, [deleteItem, id]);
138
152
 
153
+ const onKeyUp = useCallback(
154
+ (e: KeyboardEvent<HTMLInputElement>) => {
155
+ if (e.key === 'Enter') {
156
+ if (isLast) {
157
+ createItem();
158
+ } else {
159
+ (document.querySelector(`input[data-orderindex="${orderIndex + 1}"]`) as HTMLElement | undefined)?.focus();
160
+ }
161
+ }
162
+ },
163
+ [orderIndex, isLast]
164
+ );
165
+
139
166
  return (
140
167
  <li
141
168
  key={id}
142
- className='flex items-center gap-2 pli-4'
169
+ className='flex items-center gap-2 pli-4 mbe-2'
143
170
  aria-labelledby={labelId}
144
171
  {...(description && { 'aria-describedby': descriptionId })}
145
172
  >
@@ -152,8 +179,8 @@ const ListItemPrimitive = ({
152
179
  'aria-describedby': descriptionId
153
180
  }),
154
181
  className: cx(
155
- getSize(4),
156
- 'text-primary-600 bg-neutral-50 rounded border-neutral-300 dark:bg-neutral-800 dark:border-neutral-600 cursor-pointer',
182
+ getSize(5),
183
+ 'text-primary-600 bg-neutral-50 rounded-full border-neutral-300 dark:bg-neutral-800 dark:border-neutral-600 cursor-pointer',
157
184
  defaultFocus,
158
185
  defaultHover({})
159
186
  ),
@@ -169,12 +196,18 @@ const ListItemPrimitive = ({
169
196
  </span>
170
197
  <div role='none' className='grow'>
171
198
  <Input
199
+ spacing=''
172
200
  label={t('list item title label')}
173
201
  placeholder={t('list item title placeholder')}
174
202
  labelVisuallyHidden
175
203
  initialValue={title}
176
204
  onChange={onChangeTitle}
177
205
  data-itemid={id}
206
+ borders='border-0'
207
+ rounding='rounded'
208
+ autoFocus={autoFocus}
209
+ onKeyUp={onKeyUp}
210
+ data-orderindex={orderIndex}
178
211
  />
179
212
  {/* TODO(thure): Re-enable this when descriptions become relevant */}
180
213
  {/* <Input */}
@@ -198,8 +231,8 @@ const ListItemPrimitive = ({
198
231
  {/* <span className='sr-only'>{t('move list item down label')}</span> */}
199
232
  {/* </Button> */}
200
233
  {/* </ButtonGroup> */}
201
- <Button compact onClick={onClickDelete}>
202
- <Minus />
234
+ <Button onClick={onClickDelete} variant='ghost' spacing='p-1' className='self-stretch'>
235
+ <Minus className={getSize(4)} />
203
236
  <span className='sr-only'>{t('delete list item label')}</span>
204
237
  </Button>
205
238
  </li>
@@ -225,11 +258,13 @@ export const ListPrimitive = ({
225
258
  items: propsItems,
226
259
  onAction,
227
260
  createListItemId = defaultCreateListItemId,
261
+ onChangePeriod = 0,
228
262
  ...divProps
229
263
  }: ListPrimitiveComponentProps) => {
230
264
  const { t } = useTranslation('appkit');
231
265
 
232
266
  const [creating, setCreating] = useState(false);
267
+ const [autoFocus, setAutofocus] = useState<string | null>(null);
233
268
 
234
269
  const rejectTextUpdatesWhenFocused = useCallback(
235
270
  (a: string, b: string) => {
@@ -238,43 +273,72 @@ export const ListPrimitive = ({
238
273
  [listId]
239
274
  );
240
275
 
276
+ // Title
277
+
241
278
  const titleId = `${listId}__title`;
242
279
  const [title, setTitle, titleSession] = usePropStatefully(propsTitle ?? '', rejectTextUpdatesWhenFocused);
280
+ const propagateTitle = useCallback(
281
+ (nextValue: string) => {
282
+ return onAction?.({ listId, next: { title: nextValue } });
283
+ },
284
+ [onAction]
285
+ );
286
+ const throttledPropagateTitle = useMemo(() => throttle(propagateTitle, onChangePeriod), [propagateTitle]);
243
287
  const onChangeTitle = useCallback(
244
288
  (nextValue: string) => {
245
289
  setTitle(nextValue);
246
- onAction?.({ listId, next: { title: nextValue } });
290
+ throttledPropagateTitle(nextValue);
247
291
  },
248
292
  [onAction, listId]
249
293
  );
250
294
 
295
+ // Description
296
+
251
297
  const descriptionId = `${listId}__description`;
252
298
  const [description, setDescription, _descriptionSession] = usePropStatefully(
253
299
  propsDescription ?? '',
254
300
  rejectTextUpdatesWhenFocused
255
301
  );
302
+ const propagateDescription = useCallback(
303
+ (nextValue: string) => onAction?.({ listId, next: { description: nextValue } }),
304
+ [onAction]
305
+ );
306
+ const throttledPropagateDescription = useMemo(
307
+ () => throttle(propagateDescription, onChangePeriod),
308
+ [propagateDescription]
309
+ );
256
310
  const _onChangeDescription = useCallback(
257
311
  (nextValue: string) => {
258
312
  setDescription(nextValue);
259
- onAction?.({ listId, next: { description: nextValue } });
313
+ throttledPropagateDescription(nextValue);
260
314
  },
261
315
  [onAction, listId]
262
316
  );
263
317
 
318
+ // Items & order
319
+
264
320
  const [items, setItems, itemsSession] = usePropStatefully(propsItems ?? {}, itemsEquivalent);
265
321
  const order = Object.keys(items);
266
322
 
323
+ const propagateItem = useCallback(
324
+ ({ id, ...next }: Pick<ListItemProps, 'id'> & Partial<Omit<ListItemProps, 'id'>>) => {
325
+ return onAction?.({ listId, listItemId: id, next });
326
+ },
327
+ [listId, onAction]
328
+ );
329
+ const throttledPropagateItem = useMemo(() => throttle(propagateItem, onChangePeriod), [propagateItem]);
267
330
  const updateItem = useCallback(
268
331
  ({ id, ...next }: Pick<ListItemProps, 'id'> & Partial<Omit<ListItemProps, 'id'>>) => {
269
332
  setItems(Object.assign(items, { [id]: { ...items[id], ...next } }));
270
- onAction?.({ listId, listItemId: id, next });
333
+ 'title' in next && throttledPropagateItem({ id, title: next.title });
334
+ 'description' in next && throttledPropagateItem({ id, description: next.description });
335
+ 'annotations' in next && onAction?.({ listId, listItemId: id, next: { annotations: next.annotations } });
271
336
  },
272
- [items, onAction]
337
+ [items, listId, onAction]
273
338
  );
274
339
 
275
340
  const updateOrder = useCallback(
276
341
  (id: ListItemId, delta: number) => {
277
- const order = Object.keys(items);
278
342
  const fromIndex = order.indexOf(id);
279
343
  const toIndex = fromIndex + delta;
280
344
  const nextOrder = Array.from(order);
@@ -310,16 +374,19 @@ export const ListPrimitive = ({
310
374
  };
311
375
  const created = { id };
312
376
  setItems(next.items);
377
+ setAutofocus(id);
313
378
  onAction?.({ listId, next: {}, created });
314
379
  })
315
380
  .finally(() => setCreating(false));
316
381
  }, [items, createListItemId, onAction]);
317
382
 
383
+ // Render
384
+
318
385
  return (
319
386
  <div
320
387
  role='group'
321
388
  {...divProps}
322
- className={cx(defaultGroup({ elevation: 3, spacing: '' }), 'plb-2', divProps.className)}
389
+ className={cx(defaultGroup({ elevation: 3, spacing: 'pbs-2 pbe-1' }), divProps.className)}
323
390
  aria-labelledby={titleId}
324
391
  {...(description && { 'aria-describedby': descriptionId })}
325
392
  >
@@ -338,8 +405,11 @@ export const ListPrimitive = ({
338
405
  labelVisuallyHidden
339
406
  initialValue={title}
340
407
  onChange={onChangeTitle}
341
- className='mli-4'
342
408
  data-itemid={listId}
409
+ spacing='mli-2 mbe-2'
410
+ borders='border-0'
411
+ rounding='rounded'
412
+ typography='text-xl font-display font-semibold'
343
413
  />
344
414
  {/* TODO(thure): Re-enable this when relevant */}
345
415
  {/* <Input */}
@@ -357,17 +427,18 @@ export const ListPrimitive = ({
357
427
  return (
358
428
  <ListItemPrimitive
359
429
  key={`${itemsSession}__${listItemId}`}
360
- isFirst={index === 0}
430
+ orderIndex={index}
361
431
  isLast={index === order.length - 1}
362
- {...{ id: listItemId, updateItem, updateOrder, deleteItem }}
432
+ {...{ id: listItemId, updateItem, updateOrder, deleteItem, createItem }}
363
433
  {...items[listItemId]}
434
+ autoFocus={listItemId === autoFocus}
364
435
  />
365
436
  );
366
437
  })}
367
438
  </ol>
368
439
  <div role='none' className='mli-4 mlb-4'>
369
440
  <Button className='is-full' onClick={createItem} disabled={creating}>
370
- <Plus />
441
+ <Plus className={getSize(5)} />
371
442
  <span className='sr-only'>{t('add list item label')}</span>
372
443
  </Button>
373
444
  </div>