@panneau/lists 5.0.0-alpha.16 → 5.0.0-alpha.17

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (42) hide show
  1. package/dist/ListView.d.ts +7 -1
  2. package/dist/ListView.d.ts.map +1 -1
  3. package/dist/ListView.js +37 -31
  4. package/dist/ListView.js.map +1 -1
  5. package/dist/actions/ActionButton.d.ts +7 -1
  6. package/dist/actions/ActionButton.d.ts.map +1 -1
  7. package/dist/actions/ActionButton.js +74 -72
  8. package/dist/actions/ActionButton.js.map +1 -1
  9. package/dist/actions/Actions.css +12 -0
  10. package/dist/actions/Actions.module.js +6 -2
  11. package/dist/actions/Actions.module.js.map +1 -1
  12. package/dist/actions/RowActions.d.ts +21 -4
  13. package/dist/actions/RowActions.d.ts.map +1 -1
  14. package/dist/actions/RowActions.js +149 -84
  15. package/dist/actions/RowActions.js.map +1 -1
  16. package/dist/actions/fit.d.ts +25 -0
  17. package/dist/actions/fit.d.ts.map +1 -0
  18. package/dist/actions/fit.js +197 -0
  19. package/dist/actions/fit.js.map +1 -0
  20. package/dist/actions/icons.d.ts +5 -0
  21. package/dist/actions/icons.d.ts.map +1 -1
  22. package/dist/actions/icons.js +15 -1
  23. package/dist/actions/icons.js.map +1 -1
  24. package/dist/displays/Displays.css +6 -1
  25. package/dist/displays/Displays.module.js +4 -2
  26. package/dist/displays/Displays.module.js.map +1 -1
  27. package/dist/displays/displays.d.ts +3 -2
  28. package/dist/displays/displays.d.ts.map +1 -1
  29. package/dist/displays/displays.js +91 -39
  30. package/dist/displays/displays.js.map +1 -1
  31. package/dist/layouts/CardsLayout.d.ts.map +1 -1
  32. package/dist/layouts/CardsLayout.js +90 -93
  33. package/dist/layouts/CardsLayout.js.map +1 -1
  34. package/dist/layouts/GalleryLayout.css +7 -0
  35. package/dist/layouts/GalleryLayout.d.ts.map +1 -1
  36. package/dist/layouts/GalleryLayout.js +76 -53
  37. package/dist/layouts/GalleryLayout.js.map +1 -1
  38. package/dist/layouts/GalleryLayout.module.js.map +1 -1
  39. package/dist/layouts/TableLayout.d.ts.map +1 -1
  40. package/dist/layouts/TableLayout.js +120 -93
  41. package/dist/layouts/TableLayout.js.map +1 -1
  42. package/package.json +7 -7
@@ -1,5 +1,6 @@
1
1
  import { messages } from "../messages.js";
2
2
  import { ItemTitle } from "./ItemTitle.js";
3
+ import { RowActionsFit, fitContent, useRowActionsFit } from "../actions/fit.js";
3
4
  import GalleryLayout_module_default from "./GalleryLayout.module.js";
4
5
  import { c } from "react/compiler-runtime";
5
6
  import { Checkbox, Icon, usePanneauIntl } from "@panneau/ui";
@@ -12,25 +13,33 @@ import { ImageOff } from "lucide-react";
12
13
  * placeholder.
13
14
  */
14
15
  function GalleryLayout(t0) {
15
- const $ = c(34);
16
+ const $ = c(41);
16
17
  const { items, columns, renderValue, getItemLabel, getItemHref, getItemImage, isCurrent, selectable, isSelected, onToggle, renderActions, label, pageSelection } = t0;
17
18
  const intl = usePanneauIntl();
18
19
  const [title] = columns;
19
20
  let t1;
20
- if ($[0] !== pageSelection || $[1] !== selectable) {
21
- t1 = selectable ? /* @__PURE__ */ jsx("div", {
22
- className: GalleryLayout_module_default.pageSelection,
23
- children: pageSelection
24
- }) : null;
25
- $[0] = pageSelection;
26
- $[1] = selectable;
21
+ if ($[0] !== columns || $[1] !== items) {
22
+ t1 = fitContent(items, columns);
23
+ $[0] = columns;
24
+ $[1] = items;
27
25
  $[2] = t1;
28
26
  } else t1 = $[2];
27
+ const [fitLevel, measureList] = useRowActionsFit(t1);
29
28
  let t2;
30
- if ($[3] !== getItemHref || $[4] !== getItemImage || $[5] !== getItemLabel || $[6] !== intl || $[7] !== isCurrent || $[8] !== isSelected || $[9] !== items || $[10] !== onToggle || $[11] !== renderActions || $[12] !== renderValue || $[13] !== selectable || $[14] !== title) {
31
- let t3;
32
- if ($[16] !== getItemHref || $[17] !== getItemImage || $[18] !== getItemLabel || $[19] !== intl || $[20] !== isCurrent || $[21] !== isSelected || $[22] !== onToggle || $[23] !== renderActions || $[24] !== renderValue || $[25] !== selectable || $[26] !== title) {
33
- t3 = (item) => {
29
+ if ($[3] !== pageSelection || $[4] !== selectable) {
30
+ t2 = selectable ? /* @__PURE__ */ jsx("div", {
31
+ className: GalleryLayout_module_default.pageSelection,
32
+ children: pageSelection
33
+ }) : null;
34
+ $[3] = pageSelection;
35
+ $[4] = selectable;
36
+ $[5] = t2;
37
+ } else t2 = $[5];
38
+ let t3;
39
+ if ($[6] !== getItemHref || $[7] !== getItemImage || $[8] !== getItemLabel || $[9] !== intl || $[10] !== isCurrent || $[11] !== isSelected || $[12] !== items || $[13] !== onToggle || $[14] !== renderActions || $[15] !== renderValue || $[16] !== selectable || $[17] !== title) {
40
+ let t4;
41
+ if ($[19] !== getItemHref || $[20] !== getItemImage || $[21] !== getItemLabel || $[22] !== intl || $[23] !== isCurrent || $[24] !== isSelected || $[25] !== onToggle || $[26] !== renderActions || $[27] !== renderValue || $[28] !== selectable || $[29] !== title) {
42
+ t4 = (item) => {
34
43
  const selected = selectable && isSelected(item);
35
44
  const actions = renderActions(item);
36
45
  const current = isCurrent?.(item) ?? false;
@@ -75,53 +84,67 @@ function GalleryLayout(t0) {
75
84
  })]
76
85
  }, item.id);
77
86
  };
78
- $[16] = getItemHref;
79
- $[17] = getItemImage;
80
- $[18] = getItemLabel;
81
- $[19] = intl;
82
- $[20] = isCurrent;
83
- $[21] = isSelected;
84
- $[22] = onToggle;
85
- $[23] = renderActions;
86
- $[24] = renderValue;
87
- $[25] = selectable;
88
- $[26] = title;
89
- $[27] = t3;
90
- } else t3 = $[27];
91
- t2 = items.map(t3);
92
- $[3] = getItemHref;
93
- $[4] = getItemImage;
94
- $[5] = getItemLabel;
95
- $[6] = intl;
96
- $[7] = isCurrent;
97
- $[8] = isSelected;
98
- $[9] = items;
99
- $[10] = onToggle;
100
- $[11] = renderActions;
101
- $[12] = renderValue;
102
- $[13] = selectable;
103
- $[14] = title;
104
- $[15] = t2;
105
- } else t2 = $[15];
106
- let t3;
107
- if ($[28] !== label || $[29] !== t2) {
108
- t3 = /* @__PURE__ */ jsx("ul", {
87
+ $[19] = getItemHref;
88
+ $[20] = getItemImage;
89
+ $[21] = getItemLabel;
90
+ $[22] = intl;
91
+ $[23] = isCurrent;
92
+ $[24] = isSelected;
93
+ $[25] = onToggle;
94
+ $[26] = renderActions;
95
+ $[27] = renderValue;
96
+ $[28] = selectable;
97
+ $[29] = title;
98
+ $[30] = t4;
99
+ } else t4 = $[30];
100
+ t3 = items.map(t4);
101
+ $[6] = getItemHref;
102
+ $[7] = getItemImage;
103
+ $[8] = getItemLabel;
104
+ $[9] = intl;
105
+ $[10] = isCurrent;
106
+ $[11] = isSelected;
107
+ $[12] = items;
108
+ $[13] = onToggle;
109
+ $[14] = renderActions;
110
+ $[15] = renderValue;
111
+ $[16] = selectable;
112
+ $[17] = title;
113
+ $[18] = t3;
114
+ } else t3 = $[18];
115
+ let t4;
116
+ if ($[31] !== label || $[32] !== t3) {
117
+ t4 = /* @__PURE__ */ jsx("ul", {
109
118
  className: GalleryLayout_module_default.gallery,
110
119
  "aria-label": label,
111
- children: t2
120
+ children: t3
112
121
  });
113
- $[28] = label;
114
- $[29] = t2;
115
- $[30] = t3;
116
- } else t3 = $[30];
117
- let t4;
118
- if ($[31] !== t1 || $[32] !== t3) {
119
- t4 = /* @__PURE__ */ jsxs("div", { children: [t1, t3] });
120
- $[31] = t1;
122
+ $[31] = label;
121
123
  $[32] = t3;
122
124
  $[33] = t4;
123
125
  } else t4 = $[33];
124
- return t4;
126
+ let t5;
127
+ if ($[34] !== measureList || $[35] !== t2 || $[36] !== t4) {
128
+ t5 = /* @__PURE__ */ jsxs("div", {
129
+ ref: measureList,
130
+ children: [t2, t4]
131
+ });
132
+ $[34] = measureList;
133
+ $[35] = t2;
134
+ $[36] = t4;
135
+ $[37] = t5;
136
+ } else t5 = $[37];
137
+ let t6;
138
+ if ($[38] !== fitLevel || $[39] !== t5) {
139
+ t6 = /* @__PURE__ */ jsx(RowActionsFit, {
140
+ value: fitLevel,
141
+ children: t5
142
+ });
143
+ $[38] = fitLevel;
144
+ $[39] = t5;
145
+ $[40] = t6;
146
+ } else t6 = $[40];
147
+ return t6;
125
148
  }
126
149
  //#endregion
127
150
  export { GalleryLayout };
@@ -1 +1 @@
1
- {"version":3,"file":"GalleryLayout.js","names":["ImageOff","Checkbox","Icon","usePanneauIntl","messages","ListLayoutProps","styles","ItemTitle","GalleryLayout","t0","$","_c","items","columns","renderValue","getItemLabel","getItemHref","getItemImage","isCurrent","selectable","isSelected","onToggle","renderActions","label","pageSelection","intl","title","t1","t2","t3","item","selected","actions","current","image","id","tile","undefined","media","placeholder","check","formatMessage","selectItem","caption","map","gallery","t4","_c","styles"],"sources":["../../src/layouts/GalleryLayout.tsx"],"sourcesContent":["import { ImageOff } from 'lucide-react';\n\nimport { Checkbox, Icon, usePanneauIntl } from '@panneau/ui';\n\nimport { messages } from '../messages';\nimport type { ListLayoutProps } from '../types';\nimport styles from './GalleryLayout.module.css';\nimport { ItemTitle } from './ItemTitle';\n\n/**\n * Items as a grid of images (decision 0044): the image of each item (`itemImage` of the\n * resource), its title under it, its checkbox and its actions. An item without an image shows a\n * placeholder.\n */\nexport function GalleryLayout({\n items,\n columns,\n renderValue,\n getItemLabel,\n getItemHref,\n getItemImage,\n isCurrent,\n selectable,\n isSelected,\n onToggle,\n renderActions,\n label,\n pageSelection,\n}: ListLayoutProps) {\n const intl = usePanneauIntl();\n const [title] = columns;\n return (\n <div>\n {selectable ? <div className={styles.pageSelection}>{pageSelection}</div> : null}\n <ul className={styles.gallery} aria-label={label}>\n {items.map((item) => {\n const selected = selectable && isSelected(item);\n const actions = renderActions(item);\n const current = isCurrent?.(item) ?? false;\n const image = getItemImage?.(item) ?? null;\n return (\n <li\n key={item.id}\n className={styles.tile}\n data-selected={selected || undefined}\n data-current={current || undefined}\n >\n <div className={styles.media}>\n {image !== null ? (\n <img src={image} alt=\"\" loading=\"lazy\" />\n ) : (\n <span className={styles.placeholder}>\n <Icon icon={ImageOff} size=\"lg\" />\n </span>\n )}\n {selectable ? (\n <span className={styles.check}>\n <Checkbox\n aria-label={intl.formatMessage(messages.selectItem, {\n item: getItemLabel(item),\n })}\n isSelected={selected}\n onChange={() => onToggle(item)}\n />\n </span>\n ) : null}\n </div>\n <div className={styles.caption}>\n <div className={styles.title}>\n <ItemTitle href={getItemHref?.(item) ?? null} current={current}>\n {title !== undefined\n ? renderValue(item, title)\n : getItemLabel(item)}\n </ItemTitle>\n </div>\n {actions !== null ? (\n <div className={styles.actions}>{actions}</div>\n ) : null}\n </div>\n </li>\n );\n })}\n </ul>\n </div>\n );\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"GalleryLayout.js","names":["ImageOff","Checkbox","Icon","usePanneauIntl","RowActionsFit","fitContent","useRowActionsFit","messages","ListLayoutProps","styles","ItemTitle","GalleryLayout","t0","$","_c","items","columns","renderValue","getItemLabel","getItemHref","getItemImage","isCurrent","selectable","isSelected","onToggle","renderActions","label","pageSelection","intl","title","t1","fitLevel","measureList","t2","t3","t4","item","selected","actions","current","image","id","tile","undefined","media","placeholder","check","formatMessage","selectItem","caption","map","gallery","t5","t6","_c","styles"],"sources":["../../src/layouts/GalleryLayout.tsx"],"sourcesContent":["import { ImageOff } from 'lucide-react';\n\nimport { Checkbox, Icon, usePanneauIntl } from '@panneau/ui';\n\nimport { RowActionsFit, fitContent, useRowActionsFit } from '../actions/fit';\nimport { messages } from '../messages';\nimport type { ListLayoutProps } from '../types';\nimport styles from './GalleryLayout.module.css';\nimport { ItemTitle } from './ItemTitle';\n\n/**\n * Items as a grid of images (decision 0044): the image of each item (`itemImage` of the\n * resource), its title under it, its checkbox and its actions. An item without an image shows a\n * placeholder.\n */\nexport function GalleryLayout({\n items,\n columns,\n renderValue,\n getItemLabel,\n getItemHref,\n getItemImage,\n isCurrent,\n selectable,\n isSelected,\n onToggle,\n renderActions,\n label,\n pageSelection,\n}: ListLayoutProps) {\n const intl = usePanneauIntl();\n const [title] = columns;\n const [fitLevel, measureList] = useRowActionsFit(fitContent(items, columns));\n return (\n <RowActionsFit value={fitLevel}>\n <div ref={measureList}>\n {selectable ? <div className={styles.pageSelection}>{pageSelection}</div> : null}\n <ul className={styles.gallery} aria-label={label}>\n {items.map((item) => {\n const selected = selectable && isSelected(item);\n const actions = renderActions(item);\n const current = isCurrent?.(item) ?? false;\n const image = getItemImage?.(item) ?? null;\n return (\n <li\n key={item.id}\n className={styles.tile}\n data-selected={selected || undefined}\n data-current={current || undefined}\n >\n <div className={styles.media}>\n {image !== null ? (\n <img src={image} alt=\"\" loading=\"lazy\" />\n ) : (\n <span className={styles.placeholder}>\n <Icon icon={ImageOff} size=\"lg\" />\n </span>\n )}\n {selectable ? (\n <span className={styles.check}>\n <Checkbox\n aria-label={intl.formatMessage(\n messages.selectItem,\n {\n item: getItemLabel(item),\n },\n )}\n isSelected={selected}\n onChange={() => onToggle(item)}\n />\n </span>\n ) : null}\n </div>\n <div className={styles.caption}>\n <div className={styles.title}>\n <ItemTitle\n href={getItemHref?.(item) ?? null}\n current={current}\n >\n {title !== undefined\n ? renderValue(item, title)\n : getItemLabel(item)}\n </ItemTitle>\n </div>\n {actions !== null ? (\n <div className={styles.actions}>{actions}</div>\n ) : null}\n </div>\n </li>\n );\n })}\n </ul>\n </div>\n </RowActionsFit>\n );\n}\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"GalleryLayout.module.js","names":[],"sources":["../../src/layouts/GalleryLayout.module.css"],"sourcesContent":[".gallery {\n display: grid;\n grid-template-columns: repeat(auto-fill, minmax(min(12rem, 100%), 1fr));\n gap: var(--panneau-space-3);\n margin: 0;\n padding: 0;\n list-style: none;\n}\n\n.tile {\n display: flex;\n flex-direction: column;\n overflow: hidden;\n background-color: var(--panneau-color-surface);\n border: var(--panneau-border-width) solid var(--panneau-color-border);\n border-radius: var(--panneau-radius-lg);\n}\n\n.tile[data-current] {\n border-color: var(--panneau-color-accent);\n box-shadow: inset 0 0 0 1px var(--panneau-color-accent);\n}\n\n.tile[data-selected] {\n background-color: var(--panneau-color-accent-subtle);\n border-color: var(--panneau-color-border-control);\n}\n\n.media {\n position: relative;\n aspect-ratio: 4 / 3;\n background-color: var(--panneau-color-surface-sunken);\n}\n\n.media img {\n display: block;\n width: 100%;\n height: 100%;\n object-fit: cover;\n}\n\n.placeholder {\n display: flex;\n align-items: center;\n justify-content: center;\n height: 100%;\n color: var(--panneau-color-text-muted);\n}\n\n.check {\n position: absolute;\n top: var(--panneau-space-2);\n left: var(--panneau-space-2);\n padding: 2px;\n background-color: var(--panneau-color-surface);\n border-radius: var(--panneau-radius-sm);\n}\n\n.caption {\n display: flex;\n align-items: flex-start;\n gap: var(--panneau-space-2);\n padding: var(--panneau-space-2) var(--panneau-space-3);\n}\n\n.title {\n flex: 1;\n min-width: 0;\n overflow-wrap: anywhere;\n}\n\n.actions {\n display: flex;\n flex-shrink: 0;\n gap: var(--panneau-space-1);\n}\n\n.pageSelection {\n margin-bottom: var(--panneau-space-2);\n}\n"],"mappings":""}
1
+ {"version":3,"file":"GalleryLayout.module.js","names":[],"sources":["../../src/layouts/GalleryLayout.module.css"],"sourcesContent":[".gallery {\n display: grid;\n grid-template-columns: repeat(auto-fill, minmax(min(12rem, 100%), 1fr));\n gap: var(--panneau-space-3);\n margin: 0;\n padding: 0;\n list-style: none;\n}\n\n.tile {\n display: flex;\n flex-direction: column;\n overflow: hidden;\n background-color: var(--panneau-color-surface);\n border: var(--panneau-border-width) solid var(--panneau-color-border);\n border-radius: var(--panneau-radius-lg);\n}\n\n.tile[data-current] {\n border-color: var(--panneau-color-accent);\n box-shadow: inset 0 0 0 1px var(--panneau-color-accent);\n}\n\n.tile[data-selected] {\n background-color: var(--panneau-color-accent-subtle);\n border-color: var(--panneau-color-border-control);\n}\n\n.media {\n position: relative;\n aspect-ratio: 4 / 3;\n background-color: var(--panneau-color-surface-sunken);\n}\n\n.media img {\n display: block;\n width: 100%;\n height: 100%;\n object-fit: cover;\n}\n\n.placeholder {\n display: flex;\n align-items: center;\n justify-content: center;\n height: 100%;\n color: var(--panneau-color-text-muted);\n}\n\n.check {\n position: absolute;\n top: var(--panneau-space-2);\n left: var(--panneau-space-2);\n padding: 2px;\n background-color: var(--panneau-color-surface);\n border-radius: var(--panneau-radius-sm);\n}\n\n.caption {\n display: flex;\n align-items: flex-start;\n gap: var(--panneau-space-2);\n padding: var(--panneau-space-2) var(--panneau-space-3);\n}\n\n.title {\n flex: 1;\n min-width: 0;\n overflow-wrap: anywhere;\n}\n\n.actions {\n display: flex;\n flex-shrink: 0;\n gap: var(--panneau-space-1);\n max-width: 100%;\n overflow: hidden;\n}\n\n/* On one line: the list measures what doesn't fit, and moves it to the menu (decision 0060). */\n.actions > * {\n flex-wrap: nowrap;\n}\n\n.pageSelection {\n margin-bottom: var(--panneau-space-2);\n}\n"],"mappings":""}
@@ -1 +1 @@
1
- {"version":3,"file":"TableLayout.d.ts","sourceRoot":"","sources":["../../src/layouts/TableLayout.tsx"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAI5D,mEAAmE;AACnE,wBAAgB,gBAAgB,CAC5B,IAAI,EAAE,SAAS,MAAM,EAAE,EACvB,MAAM,EAAE,UAAU,GACnB,WAAW,GAAG,YAAY,GAAG,IAAI,CAMnC;AASD;;;GAGG;AACH,wBAAgB,WAAW,CAAC,EACxB,KAAK,EACL,OAAO,EACP,WAAW,EACX,YAAY,EACZ,WAAW,EACX,SAAS,EACT,UAAU,EACV,UAAU,EACV,QAAQ,EACR,aAAa,EACb,IAAI,EACJ,MAAM,EACN,KAAK,EACL,aAAa,EACb,UAAU,GACb,EAAE,eAAe,+BA4HjB"}
1
+ {"version":3,"file":"TableLayout.d.ts","sourceRoot":"","sources":["../../src/layouts/TableLayout.tsx"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAI5D,mEAAmE;AACnE,wBAAgB,gBAAgB,CAC5B,IAAI,EAAE,SAAS,MAAM,EAAE,EACvB,MAAM,EAAE,UAAU,GACnB,WAAW,GAAG,YAAY,GAAG,IAAI,CAMnC;AASD;;;GAGG;AACH,wBAAgB,WAAW,CAAC,EACxB,KAAK,EACL,OAAO,EACP,WAAW,EACX,YAAY,EACZ,WAAW,EACX,SAAS,EACT,UAAU,EACV,UAAU,EACV,QAAQ,EACR,aAAa,EACb,IAAI,EACJ,MAAM,EACN,KAAK,EACL,aAAa,EACb,UAAU,GACb,EAAE,eAAe,+BAoIjB"}
@@ -1,5 +1,6 @@
1
1
  import { messages } from "../messages.js";
2
2
  import { ItemTitle } from "./ItemTitle.js";
3
+ import { RowActionsFit, fitContent, useRowActionsFit } from "../actions/fit.js";
3
4
  import { cx } from "../cx.js";
4
5
  import TableLayout_module_default from "./TableLayout.module.js";
5
6
  import { c } from "react/compiler-runtime";
@@ -22,7 +23,7 @@ function alignClass(column) {
22
23
  * block that shows the label of each value.
23
24
  */
24
25
  function TableLayout(t0) {
25
- const $ = c(56);
26
+ const $ = c(65);
26
27
  const { items, columns, renderValue, getItemLabel, getItemHref, isCurrent, selectable, isSelected, onToggle, renderActions, sort, onSort, label, pageSelection, renderCell } = t0;
27
28
  const intl = usePanneauIntl();
28
29
  let actions;
@@ -46,20 +47,28 @@ function TableLayout(t0) {
46
47
  }
47
48
  const hasActions = t1;
48
49
  let t2;
49
- if ($[6] !== pageSelection || $[7] !== selectable) {
50
- t2 = selectable ? /* @__PURE__ */ jsx("th", {
51
- className: TableLayout_module_default.check,
52
- children: pageSelection
53
- }) : null;
54
- $[6] = pageSelection;
55
- $[7] = selectable;
50
+ if ($[6] !== columns || $[7] !== items) {
51
+ t2 = fitContent(items, columns);
52
+ $[6] = columns;
53
+ $[7] = items;
56
54
  $[8] = t2;
57
55
  } else t2 = $[8];
56
+ const [fitLevel, measureList] = useRowActionsFit(t2);
58
57
  let t3;
59
- if ($[9] !== columns || $[10] !== onSort || $[11] !== sort) {
60
- let t4;
61
- if ($[13] !== onSort || $[14] !== sort) {
62
- t4 = (column) => {
58
+ if ($[9] !== pageSelection || $[10] !== selectable) {
59
+ t3 = selectable ? /* @__PURE__ */ jsx("th", {
60
+ className: TableLayout_module_default.check,
61
+ children: pageSelection
62
+ }) : null;
63
+ $[9] = pageSelection;
64
+ $[10] = selectable;
65
+ $[11] = t3;
66
+ } else t3 = $[11];
67
+ let t4;
68
+ if ($[12] !== columns || $[13] !== onSort || $[14] !== sort) {
69
+ let t5;
70
+ if ($[16] !== onSort || $[17] !== sort) {
71
+ t5 = (column) => {
63
72
  const direction = getSortDirection(sort, column);
64
73
  return /* @__PURE__ */ jsx("th", {
65
74
  scope: "col",
@@ -80,46 +89,46 @@ function TableLayout(t0) {
80
89
  }) : column.label ?? column.id
81
90
  }, column.id);
82
91
  };
83
- $[13] = onSort;
84
- $[14] = sort;
85
- $[15] = t4;
86
- } else t4 = $[15];
87
- t3 = columns.map(t4);
88
- $[9] = columns;
89
- $[10] = onSort;
90
- $[11] = sort;
91
- $[12] = t3;
92
- } else t3 = $[12];
93
- let t4;
94
- if ($[16] !== hasActions || $[17] !== intl) {
95
- t4 = hasActions ? /* @__PURE__ */ jsx("th", {
92
+ $[16] = onSort;
93
+ $[17] = sort;
94
+ $[18] = t5;
95
+ } else t5 = $[18];
96
+ t4 = columns.map(t5);
97
+ $[12] = columns;
98
+ $[13] = onSort;
99
+ $[14] = sort;
100
+ $[15] = t4;
101
+ } else t4 = $[15];
102
+ let t5;
103
+ if ($[19] !== hasActions || $[20] !== intl) {
104
+ t5 = hasActions ? /* @__PURE__ */ jsx("th", {
96
105
  className: TableLayout_module_default.actionsCell,
97
106
  children: /* @__PURE__ */ jsx("span", {
98
107
  className: TableLayout_module_default.visuallyHidden,
99
108
  children: intl.formatMessage(messages.actions)
100
109
  })
101
110
  }) : null;
102
- $[16] = hasActions;
103
- $[17] = intl;
104
- $[18] = t4;
105
- } else t4 = $[18];
106
- let t5;
107
- if ($[19] !== t2 || $[20] !== t3 || $[21] !== t4) {
108
- t5 = /* @__PURE__ */ jsx("thead", { children: /* @__PURE__ */ jsxs("tr", { children: [
109
- t2,
111
+ $[19] = hasActions;
112
+ $[20] = intl;
113
+ $[21] = t5;
114
+ } else t5 = $[21];
115
+ let t6;
116
+ if ($[22] !== t3 || $[23] !== t4 || $[24] !== t5) {
117
+ t6 = /* @__PURE__ */ jsx("thead", { children: /* @__PURE__ */ jsxs("tr", { children: [
110
118
  t3,
111
- t4
119
+ t4,
120
+ t5
112
121
  ] }) });
113
- $[19] = t2;
114
- $[20] = t3;
115
- $[21] = t4;
116
- $[22] = t5;
117
- } else t5 = $[22];
118
- let t6;
119
- if ($[23] !== actions || $[24] !== columns || $[25] !== getItemHref || $[26] !== getItemLabel || $[27] !== hasActions || $[28] !== intl || $[29] !== isCurrent || $[30] !== isSelected || $[31] !== items || $[32] !== onToggle || $[33] !== renderCell || $[34] !== renderValue || $[35] !== selectable) {
120
- let t7;
121
- if ($[37] !== actions || $[38] !== columns || $[39] !== getItemHref || $[40] !== getItemLabel || $[41] !== hasActions || $[42] !== intl || $[43] !== isCurrent || $[44] !== isSelected || $[45] !== onToggle || $[46] !== renderCell || $[47] !== renderValue || $[48] !== selectable) {
122
- t7 = (item_0, row) => {
122
+ $[22] = t3;
123
+ $[23] = t4;
124
+ $[24] = t5;
125
+ $[25] = t6;
126
+ } else t6 = $[25];
127
+ let t7;
128
+ if ($[26] !== actions || $[27] !== columns || $[28] !== getItemHref || $[29] !== getItemLabel || $[30] !== hasActions || $[31] !== intl || $[32] !== isCurrent || $[33] !== isSelected || $[34] !== items || $[35] !== onToggle || $[36] !== renderCell || $[37] !== renderValue || $[38] !== selectable) {
129
+ let t8;
130
+ if ($[40] !== actions || $[41] !== columns || $[42] !== getItemHref || $[43] !== getItemLabel || $[44] !== hasActions || $[45] !== intl || $[46] !== isCurrent || $[47] !== isSelected || $[48] !== onToggle || $[49] !== renderCell || $[50] !== renderValue || $[51] !== selectable) {
131
+ t8 = (item_0, row) => {
123
132
  const selected = selectable && isSelected(item_0);
124
133
  const href = getItemHref?.(item_0) ?? null;
125
134
  const current = isCurrent?.(item_0) ?? false;
@@ -156,58 +165,76 @@ function TableLayout(t0) {
156
165
  ]
157
166
  }, item_0.id);
158
167
  };
159
- $[37] = actions;
160
- $[38] = columns;
161
- $[39] = getItemHref;
162
- $[40] = getItemLabel;
163
- $[41] = hasActions;
164
- $[42] = intl;
165
- $[43] = isCurrent;
166
- $[44] = isSelected;
167
- $[45] = onToggle;
168
- $[46] = renderCell;
169
- $[47] = renderValue;
170
- $[48] = selectable;
171
- $[49] = t7;
172
- } else t7 = $[49];
173
- t6 = items.map(t7);
174
- $[23] = actions;
175
- $[24] = columns;
176
- $[25] = getItemHref;
177
- $[26] = getItemLabel;
178
- $[27] = hasActions;
179
- $[28] = intl;
180
- $[29] = isCurrent;
181
- $[30] = isSelected;
182
- $[31] = items;
183
- $[32] = onToggle;
184
- $[33] = renderCell;
185
- $[34] = renderValue;
186
- $[35] = selectable;
187
- $[36] = t6;
188
- } else t6 = $[36];
189
- let t7;
190
- if ($[50] !== t6) {
191
- t7 = /* @__PURE__ */ jsx("tbody", { children: t6 });
192
- $[50] = t6;
193
- $[51] = t7;
194
- } else t7 = $[51];
168
+ $[40] = actions;
169
+ $[41] = columns;
170
+ $[42] = getItemHref;
171
+ $[43] = getItemLabel;
172
+ $[44] = hasActions;
173
+ $[45] = intl;
174
+ $[46] = isCurrent;
175
+ $[47] = isSelected;
176
+ $[48] = onToggle;
177
+ $[49] = renderCell;
178
+ $[50] = renderValue;
179
+ $[51] = selectable;
180
+ $[52] = t8;
181
+ } else t8 = $[52];
182
+ t7 = items.map(t8);
183
+ $[26] = actions;
184
+ $[27] = columns;
185
+ $[28] = getItemHref;
186
+ $[29] = getItemLabel;
187
+ $[30] = hasActions;
188
+ $[31] = intl;
189
+ $[32] = isCurrent;
190
+ $[33] = isSelected;
191
+ $[34] = items;
192
+ $[35] = onToggle;
193
+ $[36] = renderCell;
194
+ $[37] = renderValue;
195
+ $[38] = selectable;
196
+ $[39] = t7;
197
+ } else t7 = $[39];
195
198
  let t8;
196
- if ($[52] !== label || $[53] !== t5 || $[54] !== t7) {
197
- t8 = /* @__PURE__ */ jsx("div", {
199
+ if ($[53] !== t7) {
200
+ t8 = /* @__PURE__ */ jsx("tbody", { children: t7 });
201
+ $[53] = t7;
202
+ $[54] = t8;
203
+ } else t8 = $[54];
204
+ let t9;
205
+ if ($[55] !== label || $[56] !== t6 || $[57] !== t8) {
206
+ t9 = /* @__PURE__ */ jsxs("table", {
207
+ className: TableLayout_module_default.table,
208
+ "aria-label": label,
209
+ children: [t6, t8]
210
+ });
211
+ $[55] = label;
212
+ $[56] = t6;
213
+ $[57] = t8;
214
+ $[58] = t9;
215
+ } else t9 = $[58];
216
+ let t10;
217
+ if ($[59] !== measureList || $[60] !== t9) {
218
+ t10 = /* @__PURE__ */ jsx("div", {
198
219
  className: TableLayout_module_default.scroller,
199
- children: /* @__PURE__ */ jsxs("table", {
200
- className: TableLayout_module_default.table,
201
- "aria-label": label,
202
- children: [t5, t7]
203
- })
220
+ ref: measureList,
221
+ children: t9
222
+ });
223
+ $[59] = measureList;
224
+ $[60] = t9;
225
+ $[61] = t10;
226
+ } else t10 = $[61];
227
+ let t11;
228
+ if ($[62] !== fitLevel || $[63] !== t10) {
229
+ t11 = /* @__PURE__ */ jsx(RowActionsFit, {
230
+ value: fitLevel,
231
+ children: t10
204
232
  });
205
- $[52] = label;
206
- $[53] = t5;
207
- $[54] = t7;
208
- $[55] = t8;
209
- } else t8 = $[55];
210
- return t8;
233
+ $[62] = fitLevel;
234
+ $[63] = t10;
235
+ $[64] = t11;
236
+ } else t11 = $[64];
237
+ return t11;
211
238
  }
212
239
  function _temp(node) {
213
240
  return node !== null;
@@ -1 +1 @@
1
- {"version":3,"file":"TableLayout.js","names":["ArrowDown","ArrowUp","ArrowUpDown","Checkbox","Icon","usePanneauIntl","cx","messages","ListColumn","ListLayoutProps","ItemTitle","styles","getSortDirection","sort","column","first","id","alignClass","align","center","end","undefined","TableLayout","t0","$","_c","items","columns","renderValue","getItemLabel","getItemHref","isCurrent","selectable","isSelected","onToggle","renderActions","onSort","label","pageSelection","renderCell","intl","actions","t1","t2","item","map","some","_temp","hasActions","check","t3","t4","direction","width","sortable","sorted","sortIcon","actionsCell","visuallyHidden","formatMessage","t5","t6","t7","item_0","row","selected","href","current","selectItem","column_0","index","content","title","cellLabel","t8","scroller","table","node","styles","_c"],"sources":["../../src/layouts/TableLayout.tsx"],"sourcesContent":["import { ArrowDown, ArrowUp, ArrowUpDown } from 'lucide-react';\n\nimport { Checkbox, Icon, usePanneauIntl } from '@panneau/ui';\n\nimport { cx } from '../cx';\nimport { messages } from '../messages';\nimport type { ListColumn, ListLayoutProps } from '../types';\nimport { ItemTitle } from './ItemTitle';\nimport styles from './TableLayout.module.css';\n\n/** The sort direction of a column, from the first `sort` value. */\nexport function getSortDirection(\n sort: readonly string[],\n column: ListColumn,\n): 'ascending' | 'descending' | null {\n const first = sort[0];\n if (first === column.id) {\n return 'ascending';\n }\n return first === `-${column.id}` ? 'descending' : null;\n}\n\nfunction alignClass(column: ListColumn): string | undefined {\n if (column.align === 'center') {\n return styles.center;\n }\n return column.align === 'end' ? styles.end : undefined;\n}\n\n/**\n * Items as a table, with sortable column headers. On narrow lists (phones), each row turns into a\n * block that shows the label of each value.\n */\nexport function TableLayout({\n items,\n columns,\n renderValue,\n getItemLabel,\n getItemHref,\n isCurrent,\n selectable,\n isSelected,\n onToggle,\n renderActions,\n sort,\n onSort,\n label,\n pageSelection,\n renderCell,\n}: ListLayoutProps) {\n const intl = usePanneauIntl();\n const actions = items.map((item) => renderActions(item));\n const hasActions = actions.some((node) => node !== null);\n return (\n <div className={styles.scroller}>\n <table className={styles.table} aria-label={label}>\n <thead>\n <tr>\n {selectable ? <th className={styles.check}>{pageSelection}</th> : null}\n {columns.map((column) => {\n const direction = getSortDirection(sort, column);\n return (\n <th\n key={column.id}\n scope=\"col\"\n className={alignClass(column)}\n style={\n column.width !== undefined\n ? { width: column.width }\n : undefined\n }\n aria-sort={\n column.sortable === true ? (direction ?? 'none') : undefined\n }\n >\n {column.sortable === true ? (\n <button\n type=\"button\"\n className={cx(\n styles.sort,\n direction !== null && styles.sorted,\n )}\n onClick={() => onSort(column)}\n >\n {column.label ?? column.id}\n <span className={styles.sortIcon}>\n <Icon\n icon={\n direction === 'ascending'\n ? ArrowUp\n : direction === 'descending'\n ? ArrowDown\n : ArrowUpDown\n }\n size=\"sm\"\n />\n </span>\n </button>\n ) : (\n (column.label ?? column.id)\n )}\n </th>\n );\n })}\n {hasActions ? (\n <th className={styles.actionsCell}>\n <span className={styles.visuallyHidden}>\n {intl.formatMessage(messages.actions)}\n </span>\n </th>\n ) : null}\n </tr>\n </thead>\n <tbody>\n {items.map((item, row) => {\n const selected = selectable && isSelected(item);\n const href = getItemHref?.(item) ?? null;\n const current = isCurrent?.(item) ?? false;\n return (\n <tr\n key={item.id}\n data-selected={selected || undefined}\n data-current={current || undefined}\n >\n {selectable ? (\n <td className={styles.check}>\n <Checkbox\n aria-label={intl.formatMessage(messages.selectItem, {\n item: getItemLabel(item),\n })}\n isSelected={selected}\n onChange={() => onToggle(item)}\n />\n </td>\n ) : null}\n {columns.map((column, index) => {\n const content =\n index === 0 ? (\n <ItemTitle href={href} current={current}>\n {renderValue(item, column)}\n </ItemTitle>\n ) : (\n renderValue(item, column)\n );\n return (\n <td\n key={column.id}\n className={cx(\n alignClass(column),\n index === 0 && styles.title,\n )}\n >\n <span className={styles.cellLabel}>\n {column.label ?? column.id}\n </span>\n <span>\n {renderCell !== undefined\n ? renderCell(item, column, content)\n : content}\n </span>\n </td>\n );\n })}\n {hasActions ? (\n <td className={styles.actionsCell}>{actions[row]}</td>\n ) : null}\n </tr>\n );\n })}\n </tbody>\n </table>\n </div>\n );\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"TableLayout.js","names":["ArrowDown","ArrowUp","ArrowUpDown","Checkbox","Icon","usePanneauIntl","RowActionsFit","fitContent","useRowActionsFit","cx","messages","ListColumn","ListLayoutProps","ItemTitle","styles","getSortDirection","sort","column","first","id","alignClass","align","center","end","undefined","TableLayout","t0","$","_c","items","columns","renderValue","getItemLabel","getItemHref","isCurrent","selectable","isSelected","onToggle","renderActions","onSort","label","pageSelection","renderCell","intl","actions","t1","t2","item","map","some","_temp","hasActions","fitLevel","measureList","t3","check","t4","t5","direction","width","sortable","sorted","sortIcon","actionsCell","visuallyHidden","formatMessage","t6","t7","t8","item_0","row","selected","href","current","selectItem","column_0","index","content","title","cellLabel","t9","table","t10","scroller","t11","node","styles","_c"],"sources":["../../src/layouts/TableLayout.tsx"],"sourcesContent":["import { ArrowDown, ArrowUp, ArrowUpDown } from 'lucide-react';\n\nimport { Checkbox, Icon, usePanneauIntl } from '@panneau/ui';\n\nimport { RowActionsFit, fitContent, useRowActionsFit } from '../actions/fit';\nimport { cx } from '../cx';\nimport { messages } from '../messages';\nimport type { ListColumn, ListLayoutProps } from '../types';\nimport { ItemTitle } from './ItemTitle';\nimport styles from './TableLayout.module.css';\n\n/** The sort direction of a column, from the first `sort` value. */\nexport function getSortDirection(\n sort: readonly string[],\n column: ListColumn,\n): 'ascending' | 'descending' | null {\n const first = sort[0];\n if (first === column.id) {\n return 'ascending';\n }\n return first === `-${column.id}` ? 'descending' : null;\n}\n\nfunction alignClass(column: ListColumn): string | undefined {\n if (column.align === 'center') {\n return styles.center;\n }\n return column.align === 'end' ? styles.end : undefined;\n}\n\n/**\n * Items as a table, with sortable column headers. On narrow lists (phones), each row turns into a\n * block that shows the label of each value.\n */\nexport function TableLayout({\n items,\n columns,\n renderValue,\n getItemLabel,\n getItemHref,\n isCurrent,\n selectable,\n isSelected,\n onToggle,\n renderActions,\n sort,\n onSort,\n label,\n pageSelection,\n renderCell,\n}: ListLayoutProps) {\n const intl = usePanneauIntl();\n const actions = items.map((item) => renderActions(item));\n const hasActions = actions.some((node) => node !== null);\n const [fitLevel, measureList] = useRowActionsFit(fitContent(items, columns));\n return (\n <RowActionsFit value={fitLevel}>\n <div className={styles.scroller} ref={measureList}>\n <table className={styles.table} aria-label={label}>\n <thead>\n <tr>\n {selectable ? <th className={styles.check}>{pageSelection}</th> : null}\n {columns.map((column) => {\n const direction = getSortDirection(sort, column);\n return (\n <th\n key={column.id}\n scope=\"col\"\n className={alignClass(column)}\n style={\n column.width !== undefined\n ? { width: column.width }\n : undefined\n }\n aria-sort={\n column.sortable === true\n ? (direction ?? 'none')\n : undefined\n }\n >\n {column.sortable === true ? (\n <button\n type=\"button\"\n className={cx(\n styles.sort,\n direction !== null && styles.sorted,\n )}\n onClick={() => onSort(column)}\n >\n {column.label ?? column.id}\n <span className={styles.sortIcon}>\n <Icon\n icon={\n direction === 'ascending'\n ? ArrowUp\n : direction === 'descending'\n ? ArrowDown\n : ArrowUpDown\n }\n size=\"sm\"\n />\n </span>\n </button>\n ) : (\n (column.label ?? column.id)\n )}\n </th>\n );\n })}\n {hasActions ? (\n <th className={styles.actionsCell}>\n <span className={styles.visuallyHidden}>\n {intl.formatMessage(messages.actions)}\n </span>\n </th>\n ) : null}\n </tr>\n </thead>\n <tbody>\n {items.map((item, row) => {\n const selected = selectable && isSelected(item);\n const href = getItemHref?.(item) ?? null;\n const current = isCurrent?.(item) ?? false;\n return (\n <tr\n key={item.id}\n data-selected={selected || undefined}\n data-current={current || undefined}\n >\n {selectable ? (\n <td className={styles.check}>\n <Checkbox\n aria-label={intl.formatMessage(\n messages.selectItem,\n {\n item: getItemLabel(item),\n },\n )}\n isSelected={selected}\n onChange={() => onToggle(item)}\n />\n </td>\n ) : null}\n {columns.map((column, index) => {\n const content =\n index === 0 ? (\n <ItemTitle href={href} current={current}>\n {renderValue(item, column)}\n </ItemTitle>\n ) : (\n renderValue(item, column)\n );\n return (\n <td\n key={column.id}\n className={cx(\n alignClass(column),\n index === 0 && styles.title,\n )}\n >\n <span className={styles.cellLabel}>\n {column.label ?? column.id}\n </span>\n <span>\n {renderCell !== undefined\n ? renderCell(item, column, content)\n : content}\n </span>\n </td>\n );\n })}\n {hasActions ? (\n <td className={styles.actionsCell}>{actions[row]}</td>\n ) : null}\n </tr>\n );\n })}\n </tbody>\n </table>\n </div>\n </RowActionsFit>\n );\n}\n"],"mappings":";;;;;;;;;;;AAYA,SAAgBe,iBACZC,MACAC,QACiC;CACjC,MAAMC,QAAQF,KAAK;CACnB,IAAIE,UAAUD,OAAOE,IACjB,OAAO;CAEX,OAAOD,UAAU,IAAID,OAAOE,OAAO,eAAe;AACtD;AAEA,SAASC,WAAWH,QAAwC;CACxD,IAAIA,OAAOI,UAAU,UACjB,OAAOP,2BAAOQ;CAElB,OAAOL,OAAOI,UAAU,QAAQP,2BAAOS,MAAMC,KAAAA;AACjD;;;;;AAMA,SAAOC,YAAAC,IAAA;CAAA,MAAAC,IAAAC,EAAA,EAAA;CAAqB,MAAA,EAAAC,OAAAC,SAAAC,aAAAC,cAAAC,aAAAC,WAAAC,YAAAC,YAAAC,UAAAC,eAAAtB,MAAAuB,QAAAC,OAAAC,eAAAC,eAAAhB;CAiBxB,MAAAiB,OAAatC,eAAe;CAAE,IAAAuC;CAAA,IAAAC;CAAA,IAAAlB,EAAA,OAAAE,SAAAF,EAAA,OAAAW,eAAA;EAAA,IAAAQ;EAAA,IAAAnB,EAAA,OAAAW,eAAA;GACJQ,MAAAC,SAAUT,cAAcS,IAAI;GAACpB,EAAA,KAAAW;GAAAX,EAAA,KAAAmB;EAAA,OAAAA,KAAAnB,EAAA;EAAvDiB,UAAgBf,MAAKmB,IAAKF,EAA6B;EACpCD,KAAAD,QAAOK,KAAMC,KAAuB;EAACvB,EAAA,KAAAE;EAAAF,EAAA,KAAAW;EAAAX,EAAA,KAAAiB;EAAAjB,EAAA,KAAAkB;CAAA,OAAA;EAAAD,UAAAjB,EAAA;EAAAkB,KAAAlB,EAAA;CAAA;CAAxD,MAAAwB,aAAmBN;CAAsC,IAAAC;CAAA,IAAAnB,EAAA,OAAAG,WAAAH,EAAA,OAAAE,OAAA;EACRiB,KAAAvC,WAAWsB,OAAOC,OAAO;EAACH,EAAA,KAAAG;EAAAH,EAAA,KAAAE;EAAAF,EAAA,KAAAmB;CAAA,OAAAA,KAAAnB,EAAA;CAA3E,MAAA,CAAAyB,UAAAC,eAAgC7C,iBAAiBsC,EAA0B;CAAE,IAAAQ;CAAA,IAAA3B,EAAA,OAAAc,iBAAAd,EAAA,QAAAQ,YAAA;EAOpDmB,KAAAnB,aAAa,oBAAA,MAAA;GAAe,WAAArB,2BAAMyC;GAASd,UAAAA;EAAmB,CAAA,IAA9D;EAAqEd,EAAA,KAAAc;EAAAd,EAAA,MAAAQ;EAAAR,EAAA,MAAA2B;CAAA,OAAAA,KAAA3B,EAAA;CAAA,IAAA6B;CAAA,IAAA7B,EAAA,QAAAG,WAAAH,EAAA,QAAAY,UAAAZ,EAAA,QAAAX,MAAA;EAAA,IAAAyC;EAAA,IAAA9B,EAAA,QAAAY,UAAAZ,EAAA,QAAAX,MAAA;GACzDyC,MAAAxC,WAAA;IACT,MAAAyC,YAAkB3C,iBAAiBC,MAAMC,MAAM;IAAE,OAE7C,oBAAA,MAAA;KAEU,OAAA;KACK,WAAAG,WAAWH,MAAM;KAExB,OAAAA,OAAM0C,UAAWnC,KAAAA,IAAjB,EAAAmC,OACe1C,OAAM0C,MACP,IAFdnC,KAAAA;KAKA,aAAAP,OAAM2C,aAAc,OACbF,aAAA,SADPlC,KAAAA;KAKHP,UAAAA,OAAM2C,aAAc,OACjB,qBAAA,UAAA;MACS,MAAA;MACM,WAAAnD,GACPK,2BAAME,MACN0C,cAAc,QAAQ5C,2BAAM+C,MAChC;MACS,eAAMtB,OAAOtB,MAAM;MANhC,UAAA,CAQKA,OAAMuB,SAAUvB,OAAME,IACvB,oBAAA,QAAA;OAAiB,WAAAL,2BAAMgD;OACnB,UAAA,oBAAC,MAAD;QAEQ,MAAAJ,cAAc,cAAdzD,UAEMyD,cAAc,eAAd1D,YAAAE;QAIL,MAAA;OAAI,CAAA;MAEV,CAAA,CACF;KAERe,CAAAA,IAAAA,OAAMuB,SAAUvB,OAAME;IAE1B,GAxCIF,OAAME,EAwCV;GAAA;GAEZQ,EAAA,MAAAY;GAAAZ,EAAA,MAAAX;GAAAW,EAAA,MAAA8B;EAAA,OAAAA,KAAA9B,EAAA;EA9CA6B,KAAA1B,QAAOkB,IAAKS,EA8CZ;EAAC9B,EAAA,MAAAG;EAAAH,EAAA,MAAAY;EAAAZ,EAAA,MAAAX;EAAAW,EAAA,MAAA6B;CAAA,OAAAA,KAAA7B,EAAA;CAAA,IAAA8B;CAAA,IAAA9B,EAAA,QAAAwB,cAAAxB,EAAA,QAAAgB,MAAA;EACDc,KAAAN,aACG,oBAAA,MAAA;GAAe,WAAArC,2BAAMiD;GACjB,UAAA,oBAAA,QAAA;IAAiB,WAAAjD,2BAAMkD;IAClBrB,UAAAA,KAAIsB,cAAevD,SAAQkC,OAAQ;GACjC,CAAA;EACN,CAAA,IALR;EAMOjB,EAAA,MAAAwB;EAAAxB,EAAA,MAAAgB;EAAAhB,EAAA,MAAA8B;CAAA,OAAAA,KAAA9B,EAAA;CAAA,IAAAuC;CAAA,IAAAvC,EAAA,QAAA2B,MAAA3B,EAAA,QAAA6B,MAAA7B,EAAA,QAAA8B,IAAA;EAxDhBS,KAAA,oBAAA,SAAA,EAAA,UACI,qBAAA,MAAA,EAAA,UAAA;GACKZ;GACAE;GA+CAC;EAOA,EAAA,CAAA,EACD,CAAA;EAAA9B,EAAA,MAAA2B;EAAA3B,EAAA,MAAA6B;EAAA7B,EAAA,MAAA8B;EAAA9B,EAAA,MAAAuC;CAAA,OAAAA,KAAAvC,EAAA;CAAA,IAAAwC;CAAA,IAAAxC,EAAA,QAAAiB,WAAAjB,EAAA,QAAAG,WAAAH,EAAA,QAAAM,eAAAN,EAAA,QAAAK,gBAAAL,EAAA,QAAAwB,cAAAxB,EAAA,QAAAgB,QAAAhB,EAAA,QAAAO,aAAAP,EAAA,QAAAS,cAAAT,EAAA,QAAAE,SAAAF,EAAA,QAAAU,YAAAV,EAAA,QAAAe,cAAAf,EAAA,QAAAI,eAAAJ,EAAA,QAAAQ,YAAA;EAAA,IAAAiC;EAAA,IAAAzC,EAAA,QAAAiB,WAAAjB,EAAA,QAAAG,WAAAH,EAAA,QAAAM,eAAAN,EAAA,QAAAK,gBAAAL,EAAA,QAAAwB,cAAAxB,EAAA,QAAAgB,QAAAhB,EAAA,QAAAO,aAAAP,EAAA,QAAAS,cAAAT,EAAA,QAAAU,YAAAV,EAAA,QAAAe,cAAAf,EAAA,QAAAI,eAAAJ,EAAA,QAAAQ,YAAA;GAEOiC,MAAAC,QAAAC,QAAA;IACP,MAAAC,WAAiBpC,cAAcC,WAAWW,MAAI;IAC9C,MAAAyB,OAAavC,cAAcc,MAAY,KAA1B;IACb,MAAA0B,UAAgBvC,YAAYa,MAAa,KAAzB;IAA2B,OAEvC,qBAAA,MAAA;KAEmB,iBAAAwB,YAAA/C,KAAAA;KACD,gBAAAiD,WAAAjD,KAAAA;KAHlB,UAAA;MAKKW,aACG,oBAAA,MAAA;OAAe,WAAArB,2BAAMyC;OACjB,UAAA,oBAAC,UAAD;QACgB,cAAAZ,KAAIsB,cACZvD,SAAQgE,YACR,EAAA3B,MACUf,aAAae,MAAI,EAC3B,CACJ;QACYwB,YAAAA;QACF,gBAAMlC,SAASU,MAAI;OAAC,CAAA;MAEjC,CAAA,IAZR;MAcAjB,QAAOkB,KAAK2B,UAAAC,UAAA;OACT,MAAAC,UACID,UAAU,IACN,oBAAC,WAAD;QAAiBJ;QAAeC;QAC3B1C,UAAAA,YAAYgB,QAAM9B,QAAM;OADnB,CAAA,IAIVc,YAAYgB,QAAM9B,QACtB;OAAE,OAEF,qBAAA,MAAA;QAEe,WAAAR,GACPW,WAAWH,QAAM,GACjB2D,UAAU,KAAK9D,2BAAMgE,KACzB;QALJ,UAAA,CAOI,oBAAA,QAAA;SAAiB,WAAAhE,2BAAMiE;SAClB9D,UAAAA,SAAMuB,SAAUvB,SAAME;QACpB,CAAA,GACP,oBAAA,QAAA,EAAA,UACKuB,eAAelB,KAAAA,IACVkB,WAAWK,QAAM9B,UAAQ4D,OACnB,IAFXA,QAGE,CAAA,CACN;OAdI5D,GAAAA,SAAME,EAcV;MAAA,CAEZ;MACAgC,aACG,oBAAA,MAAA;OAAe,WAAArC,2BAAMiD;OAAenB,UAAAA,QAAQ0B;MAAU,CAAA,IADzD;KAGA;IAjDIvB,GAAAA,OAAI5B,EAiDR;GAAA;GAEZQ,EAAA,MAAAiB;GAAAjB,EAAA,MAAAG;GAAAH,EAAA,MAAAM;GAAAN,EAAA,MAAAK;GAAAL,EAAA,MAAAwB;GAAAxB,EAAA,MAAAgB;GAAAhB,EAAA,MAAAO;GAAAP,EAAA,MAAAS;GAAAT,EAAA,MAAAU;GAAAV,EAAA,MAAAe;GAAAf,EAAA,MAAAI;GAAAJ,EAAA,MAAAQ;GAAAR,EAAA,MAAAyC;EAAA,OAAAA,KAAAzC,EAAA;EAzDAwC,KAAAtC,MAAKmB,IAAKoB,EAyDV;EAACzC,EAAA,MAAAiB;EAAAjB,EAAA,MAAAG;EAAAH,EAAA,MAAAM;EAAAN,EAAA,MAAAK;EAAAL,EAAA,MAAAwB;EAAAxB,EAAA,MAAAgB;EAAAhB,EAAA,MAAAO;EAAAP,EAAA,MAAAS;EAAAT,EAAA,MAAAE;EAAAF,EAAA,MAAAU;EAAAV,EAAA,MAAAe;EAAAf,EAAA,MAAAI;EAAAJ,EAAA,MAAAQ;EAAAR,EAAA,MAAAwC;CAAA,OAAAA,KAAAxC,EAAA;CAAA,IAAAyC;CAAA,IAAAzC,EAAA,QAAAwC,IAAA;EA1DNC,KAAA,oBAAA,SAAA,EAAA,UACKD,GA0DG,CAAA;EAAAxC,EAAA,MAAAwC;EAAAxC,EAAA,MAAAyC;CAAA,OAAAA,KAAAzC,EAAA;CAAA,IAAAqD;CAAA,IAAArD,EAAA,QAAAa,SAAAb,EAAA,QAAAuC,MAAAvC,EAAA,QAAAyC,IAAA;EAvHZY,KAAA,qBAAA,SAAA;GAAkB,WAAAlE,2BAAMmE;GAAoBzC,cAAAA;GAA5C,UAAA,CACI0B,IA2DAE,EA4DI;;EAAAzC,EAAA,MAAAa;EAAAb,EAAA,MAAAuC;EAAAvC,EAAA,MAAAyC;EAAAzC,EAAA,MAAAqD;CAAA,OAAAA,KAAArD,EAAA;CAAA,IAAAuD;CAAA,IAAAvD,EAAA,QAAA0B,eAAA1B,EAAA,QAAAqD,IAAA;EAzHZE,MAAA,oBAAA,OAAA;GAAgB,WAAApE,2BAAMqE;GAAgB9B,KAAAA;GAClC2B,UAAAA;EAyHE,CAAA;EAAArD,EAAA,MAAA0B;EAAA1B,EAAA,MAAAqD;EAAArD,EAAA,MAAAuD;CAAA,OAAAA,MAAAvD,EAAA;CAAA,IAAAyD;CAAA,IAAAzD,EAAA,QAAAyB,YAAAzB,EAAA,QAAAuD,KAAA;EA3HVE,MAAA,oBAAC,eAAD;GAAsBhC,OAAAA;GAClB8B,UAAAA;EADU,CAAA;EA4HEvD,EAAA,MAAAyB;EAAAzB,EAAA,MAAAuD;EAAAvD,EAAA,MAAAyD;CAAA,OAAAA,MAAAzD,EAAA;CAAA,OA5HhByD;AA4HgB;AAlJjB,SAAAlC,MAAAmC,MAAA;CAAA,OAmBuCA,SAAS;AAAI"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@panneau/lists",
3
- "version": "5.0.0-alpha.16",
3
+ "version": "5.0.0-alpha.17",
4
4
  "description": "Lists of Panneau: columns with displays, table and cards layouts, sorting, filters, search, pagination, selection and actions, driven by the list state of @panneau/core.",
5
5
  "type": "module",
6
6
  "license": "MIT",
@@ -37,14 +37,14 @@
37
37
  "react-intl": "^12.0.0"
38
38
  },
39
39
  "dependencies": {
40
- "@panneau/core": "5.0.0-alpha.16",
41
- "@panneau/fields": "5.0.0-alpha.16",
42
- "@panneau/intl": "5.0.0-alpha.16",
43
- "@panneau/protocol": "5.0.0-alpha.16",
44
- "@panneau/ui": "5.0.0-alpha.16",
40
+ "@panneau/core": "5.0.0-alpha.17",
41
+ "@panneau/fields": "5.0.0-alpha.17",
42
+ "@panneau/intl": "5.0.0-alpha.17",
43
+ "@panneau/protocol": "5.0.0-alpha.17",
44
+ "@panneau/ui": "5.0.0-alpha.17",
45
45
  "lucide-react": "^1.57.0"
46
46
  },
47
47
  "devDependencies": {
48
- "@panneau/data": "5.0.0-alpha.16"
48
+ "@panneau/data": "5.0.0-alpha.17"
49
49
  }
50
50
  }