@mittwald/flow-react-components 0.2.0-alpha.738 → 0.2.0-alpha.739

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 (16) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/dist/assets/doc-properties.json +3607 -3588
  3. package/dist/js/_virtual/_.locale.json@8d5024994f97657f895a4e2a188d2d8a.mjs +2 -0
  4. package/dist/js/_virtual/_.locale.json@8d5024994f97657f895a4e2a188d2d8a.mjs.map +1 -1
  5. package/dist/js/components/src/components/List/components/Header/components/AllFiltersModal/FilterAccordion.mjs +41 -14
  6. package/dist/js/components/src/components/List/components/Header/components/AllFiltersModal/FilterAccordion.mjs.map +1 -1
  7. package/dist/js/components/src/components/List/components/Header/components/FilterContextMenu/FilterContextMenu.mjs +3 -2
  8. package/dist/js/components/src/components/List/components/Header/components/FilterContextMenu/FilterContextMenu.mjs.map +1 -1
  9. package/dist/js/components/src/components/List/components/Header/components/FilterContextMenu/FilterMenuItem.mjs +4 -2
  10. package/dist/js/components/src/components/List/components/Header/components/FilterContextMenu/FilterMenuItem.mjs.map +1 -1
  11. package/dist/types/components/List/components/Header/components/AllFiltersModal/FilterAccordion.d.ts.map +1 -1
  12. package/dist/types/components/List/components/Header/components/FilterContextMenu/FilterContextMenu.d.ts.map +1 -1
  13. package/dist/types/components/List/components/Header/components/FilterContextMenu/FilterMenuItem.d.ts +2 -0
  14. package/dist/types/components/List/components/Header/components/FilterContextMenu/FilterMenuItem.d.ts.map +1 -1
  15. package/dist/types/components/List/stories/Default.stories.d.ts.map +1 -1
  16. package/package.json +6 -6
@@ -3,6 +3,7 @@
3
3
  const locales = {"de-DE": { "list.filters": `Filter`,
4
4
  "list.filters.all": `Alle Filter`,
5
5
  "list.filters.clear": `Filter entfernen`,
6
+ "list.filters.clearSelection": `Auswahl aufheben`,
6
7
  "list.filters.reset": `Filter zurücksetzen`,
7
8
  "list.filters.store": `Filter speichern`,
8
9
  "list.noResult.heading": `Keine Suchergebnisse gefunden`,
@@ -25,6 +26,7 @@ const locales = {"de-DE": { "list.filters": `Filter`,
25
26
  },"en-US": { "list.filters": `Filters`,
26
27
  "list.filters.all": `All filters`,
27
28
  "list.filters.clear": `Clear filters`,
29
+ "list.filters.clearSelection": `Clear selection`,
28
30
  "list.filters.reset": `Reset filters`,
29
31
  "list.filters.store": `Store filters`,
30
32
  "list.noResult.heading": `No search results found`,
@@ -1 +1 @@
1
- {"version":3,"file":"_.locale.json@8d5024994f97657f895a4e2a188d2d8a.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"_.locale.json@8d5024994f97657f895a4e2a188d2d8a.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -9,27 +9,54 @@ import RadioGroupView from '../../../../../../views/RadioGroupView.mjs';
9
9
  import RadioView from '../../../../../../views/RadioView.mjs';
10
10
  import CheckboxGroupView from '../../../../../../views/CheckboxGroupView.mjs';
11
11
  import CheckboxView from '../../../../../../views/CheckboxView.mjs';
12
+ import ButtonView from '../../../../../../views/ButtonView.mjs';
13
+ import { Flex } from '../../../../../Flex/Flex.mjs';
14
+ import { useLocalizedStringFormatter } from 'react-aria';
15
+ import locales from '../../../../../../../../_virtual/_.locale.json@8d5024994f97657f895a4e2a188d2d8a.mjs';
12
16
 
13
17
  const FilterAccordion = (props) => {
14
18
  const { filter } = props;
15
19
  const activeKeys = filter.values.filter((v) => v.isActive).map((v) => v.id);
20
+ const name = filter.name ?? filter.property;
21
+ const stringFormatter = useLocalizedStringFormatter(locales);
16
22
  return /* @__PURE__ */ jsxs(AccordionView, { children: [
17
- /* @__PURE__ */ jsx(HeadingView, { children: filter.name ?? filter.property }),
23
+ /* @__PURE__ */ jsx(HeadingView, { children: name }),
18
24
  /* @__PURE__ */ jsxs(ContentView, { children: [
19
- filter.mode === "one" && /* @__PURE__ */ jsx(RadioGroupView, { value: activeKeys[0], m: [1, 1], children: filter.values.map((v) => /* @__PURE__ */ jsx(
20
- RadioView,
21
- {
22
- value: v.id,
23
- onPress: () => {
24
- if (!v.isActive) {
25
- v.toggle();
26
- }
25
+ filter.mode === "one" && /* @__PURE__ */ jsxs(Flex, { direction: "column", gap: "m", children: [
26
+ /* @__PURE__ */ jsx(
27
+ RadioGroupView,
28
+ {
29
+ value: activeKeys[0],
30
+ m: [1, 1],
31
+ "aria-label": name,
32
+ children: filter.values.map((v) => /* @__PURE__ */ jsx(
33
+ RadioView,
34
+ {
35
+ value: v.id,
36
+ onPress: () => {
37
+ if (!v.isActive) {
38
+ v.toggle();
39
+ }
40
+ },
41
+ children: v.render()
42
+ },
43
+ v.id
44
+ ))
27
45
  },
28
- children: v.render()
29
- },
30
- v.id
31
- )) }),
32
- filter.mode !== "one" && /* @__PURE__ */ jsx(CheckboxGroupView, { value: activeKeys, m: [1, 1], children: filter.values.map((v) => /* @__PURE__ */ jsx(CheckboxView, { value: v.id, onPress: () => v.toggle(), children: v.render() }, v.id)) })
46
+ activeKeys[0]
47
+ ),
48
+ activeKeys.length > 0 && /* @__PURE__ */ jsx(
49
+ ButtonView,
50
+ {
51
+ size: "s",
52
+ color: "secondary",
53
+ variant: "soft",
54
+ onPress: () => filter.clear(),
55
+ children: stringFormatter.format("list.filters.clearSelection")
56
+ }
57
+ )
58
+ ] }),
59
+ filter.mode !== "one" && /* @__PURE__ */ jsx(CheckboxGroupView, { value: activeKeys, m: [1, 1], "aria-label": name, children: filter.values.map((v) => /* @__PURE__ */ jsx(CheckboxView, { value: v.id, onPress: () => v.toggle(), children: v.render() }, v.id)) })
33
60
  ] })
34
61
  ] });
35
62
  };
@@ -1 +1 @@
1
- {"version":3,"file":"FilterAccordion.mjs","sources":["../../../../../../../../../../src/components/List/components/Header/components/AllFiltersModal/FilterAccordion.tsx"],"sourcesContent":["import React, { type FC } from \"react\";\nimport AccordionView from \"@/views/AccordionView\";\nimport HeadingView from \"@/views/HeadingView\";\nimport ContentView from \"@/views/ContentView\";\nimport RadioGroupView from \"@/views/RadioGroupView\";\nimport RadioView from \"@/views/RadioView\";\nimport CheckboxGroupView from \"@/views/CheckboxGroupView\";\nimport CheckboxView from \"@/views/CheckboxView\";\nimport type { Filter } from \"@/components/List/model/filter/Filter\";\n\ninterface Props {\n filter: Filter<never, never, never>;\n}\n\nexport const FilterAccordion: FC<Props> = (props) => {\n const { filter } = props;\n\n const activeKeys = filter.values.filter((v) => v.isActive).map((v) => v.id);\n\n return (\n <AccordionView>\n <HeadingView>{filter.name ?? filter.property}</HeadingView>\n <ContentView>\n {filter.mode === \"one\" && (\n <RadioGroupView value={activeKeys[0]} m={[1, 1]}>\n {filter.values.map((v) => (\n <RadioView\n key={v.id}\n value={v.id}\n onPress={() => {\n if (!v.isActive) {\n v.toggle();\n }\n }}\n >\n {v.render()}\n </RadioView>\n ))}\n </RadioGroupView>\n )}\n {filter.mode !== \"one\" && (\n <CheckboxGroupView value={activeKeys} m={[1, 1]}>\n {filter.values.map((v) => (\n <CheckboxView key={v.id} value={v.id} onPress={() => v.toggle()}>\n {v.render()}\n </CheckboxView>\n ))}\n </CheckboxGroupView>\n )}\n </ContentView>\n </AccordionView>\n );\n};\n"],"names":[],"mappings":";;;;;;;;;;AAcO,MAAM,eAAA,GAA6B,CAAC,KAAA,KAAU;AACnD,EAAA,MAAM,EAAE,QAAO,GAAI,KAAA;AAEnB,EAAA,MAAM,UAAA,GAAa,MAAA,CAAO,MAAA,CAAO,MAAA,CAAO,CAAC,CAAA,KAAM,CAAA,CAAE,QAAQ,CAAA,CAAE,GAAA,CAAI,CAAC,CAAA,KAAM,EAAE,EAAE,CAAA;AAE1E,EAAA,4BACG,aAAA,EAAA,EACC,QAAA,EAAA;AAAA,oBAAA,GAAA,CAAC,WAAA,EAAA,EAAa,QAAA,EAAA,MAAA,CAAO,IAAA,IAAQ,MAAA,CAAO,QAAA,EAAS,CAAA;AAAA,yBAC5C,WAAA,EAAA,EACE,QAAA,EAAA;AAAA,MAAA,MAAA,CAAO,SAAS,KAAA,oBACf,GAAA,CAAC,cAAA,EAAA,EAAe,KAAA,EAAO,WAAW,CAAC,CAAA,EAAG,CAAA,EAAG,CAAC,GAAG,CAAC,CAAA,EAC3C,iBAAO,MAAA,CAAO,GAAA,CAAI,CAAC,CAAA,qBAClB,GAAA;AAAA,QAAC,SAAA;AAAA,QAAA;AAAA,UAEC,OAAO,CAAA,CAAE,EAAA;AAAA,UACT,SAAS,MAAM;AACb,YAAA,IAAI,CAAC,EAAE,QAAA,EAAU;AACf,cAAA,CAAA,CAAE,MAAA,EAAO;AAAA,YACX;AAAA,UACF,CAAA;AAAA,UAEC,YAAE,MAAA;AAAO,SAAA;AAAA,QARL,CAAA,CAAE;AAAA,OAUV,CAAA,EACH,CAAA;AAAA,MAED,MAAA,CAAO,IAAA,KAAS,KAAA,oBACf,GAAA,CAAC,qBAAkB,KAAA,EAAO,UAAA,EAAY,CAAA,EAAG,CAAC,CAAA,EAAG,CAAC,CAAA,EAC3C,QAAA,EAAA,MAAA,CAAO,OAAO,GAAA,CAAI,CAAC,CAAA,qBAClB,GAAA,CAAC,YAAA,EAAA,EAAwB,KAAA,EAAO,CAAA,CAAE,EAAA,EAAI,SAAS,MAAM,CAAA,CAAE,MAAA,EAAO,EAC3D,YAAE,MAAA,EAAO,EAAA,EADO,CAAA,CAAE,EAErB,CACD,CAAA,EACH;AAAA,KAAA,EAEJ;AAAA,GAAA,EACF,CAAA;AAEJ;;;;"}
1
+ {"version":3,"file":"FilterAccordion.mjs","sources":["../../../../../../../../../../src/components/List/components/Header/components/AllFiltersModal/FilterAccordion.tsx"],"sourcesContent":["import React, { type FC } from \"react\";\nimport AccordionView from \"@/views/AccordionView\";\nimport HeadingView from \"@/views/HeadingView\";\nimport ContentView from \"@/views/ContentView\";\nimport RadioGroupView from \"@/views/RadioGroupView\";\nimport RadioView from \"@/views/RadioView\";\nimport CheckboxGroupView from \"@/views/CheckboxGroupView\";\nimport CheckboxView from \"@/views/CheckboxView\";\nimport type { Filter } from \"@/components/List/model/filter/Filter\";\nimport ButtonView from \"@/views/ButtonView\";\nimport { Flex } from \"@/components/Flex\";\nimport { useLocalizedStringFormatter } from \"react-aria\";\nimport locales from \"../../../../locales/*.locale.json\";\n\ninterface Props {\n filter: Filter<never, never, never>;\n}\n\nexport const FilterAccordion: FC<Props> = (props) => {\n const { filter } = props;\n\n const activeKeys = filter.values.filter((v) => v.isActive).map((v) => v.id);\n\n const name = filter.name ?? filter.property;\n\n const stringFormatter = useLocalizedStringFormatter(locales);\n\n return (\n <AccordionView>\n <HeadingView>{name}</HeadingView>\n <ContentView>\n {filter.mode === \"one\" && (\n <Flex direction=\"column\" gap=\"m\">\n <RadioGroupView\n value={activeKeys[0]}\n m={[1, 1]}\n key={activeKeys[0]}\n aria-label={name}\n >\n {filter.values.map((v) => (\n <RadioView\n key={v.id}\n value={v.id}\n onPress={() => {\n if (!v.isActive) {\n v.toggle();\n }\n }}\n >\n {v.render()}\n </RadioView>\n ))}\n </RadioGroupView>\n {activeKeys.length > 0 && (\n <ButtonView\n size=\"s\"\n color=\"secondary\"\n variant=\"soft\"\n onPress={() => filter.clear()}\n >\n {stringFormatter.format(\"list.filters.clearSelection\")}\n </ButtonView>\n )}\n </Flex>\n )}\n {filter.mode !== \"one\" && (\n <CheckboxGroupView value={activeKeys} m={[1, 1]} aria-label={name}>\n {filter.values.map((v) => (\n <CheckboxView key={v.id} value={v.id} onPress={() => v.toggle()}>\n {v.render()}\n </CheckboxView>\n ))}\n </CheckboxGroupView>\n )}\n </ContentView>\n </AccordionView>\n );\n};\n"],"names":[],"mappings":";;;;;;;;;;;;;;AAkBO,MAAM,eAAA,GAA6B,CAAC,KAAA,KAAU;AACnD,EAAA,MAAM,EAAE,QAAO,GAAI,KAAA;AAEnB,EAAA,MAAM,UAAA,GAAa,MAAA,CAAO,MAAA,CAAO,MAAA,CAAO,CAAC,CAAA,KAAM,CAAA,CAAE,QAAQ,CAAA,CAAE,GAAA,CAAI,CAAC,CAAA,KAAM,EAAE,EAAE,CAAA;AAE1E,EAAA,MAAM,IAAA,GAAO,MAAA,CAAO,IAAA,IAAQ,MAAA,CAAO,QAAA;AAEnC,EAAA,MAAM,eAAA,GAAkB,4BAA4B,OAAO,CAAA;AAE3D,EAAA,4BACG,aAAA,EAAA,EACC,QAAA,EAAA;AAAA,oBAAA,GAAA,CAAC,eAAa,QAAA,EAAA,IAAA,EAAK,CAAA;AAAA,yBAClB,WAAA,EAAA,EACE,QAAA,EAAA;AAAA,MAAA,MAAA,CAAO,SAAS,KAAA,oBACf,IAAA,CAAC,QAAK,SAAA,EAAU,QAAA,EAAS,KAAI,GAAA,EAC3B,QAAA,EAAA;AAAA,wBAAA,GAAA;AAAA,UAAC,cAAA;AAAA,UAAA;AAAA,YACC,KAAA,EAAO,WAAW,CAAC,CAAA;AAAA,YACnB,CAAA,EAAG,CAAC,CAAA,EAAG,CAAC,CAAA;AAAA,YAER,YAAA,EAAY,IAAA;AAAA,YAEX,QAAA,EAAA,MAAA,CAAO,MAAA,CAAO,GAAA,CAAI,CAAC,CAAA,qBAClB,GAAA;AAAA,cAAC,SAAA;AAAA,cAAA;AAAA,gBAEC,OAAO,CAAA,CAAE,EAAA;AAAA,gBACT,SAAS,MAAM;AACb,kBAAA,IAAI,CAAC,EAAE,QAAA,EAAU;AACf,oBAAA,CAAA,CAAE,MAAA,EAAO;AAAA,kBACX;AAAA,gBACF,CAAA;AAAA,gBAEC,YAAE,MAAA;AAAO,eAAA;AAAA,cARL,CAAA,CAAE;AAAA,aAUV;AAAA,WAAA;AAAA,UAfI,WAAW,CAAC;AAAA,SAgBnB;AAAA,QACC,UAAA,CAAW,SAAS,CAAA,oBACnB,GAAA;AAAA,UAAC,UAAA;AAAA,UAAA;AAAA,YACC,IAAA,EAAK,GAAA;AAAA,YACL,KAAA,EAAM,WAAA;AAAA,YACN,OAAA,EAAQ,MAAA;AAAA,YACR,OAAA,EAAS,MAAM,MAAA,CAAO,KAAA,EAAM;AAAA,YAE3B,QAAA,EAAA,eAAA,CAAgB,OAAO,6BAA6B;AAAA;AAAA;AACvD,OAAA,EAEJ,CAAA;AAAA,MAED,MAAA,CAAO,IAAA,KAAS,KAAA,oBACf,GAAA,CAAC,qBAAkB,KAAA,EAAO,UAAA,EAAY,CAAA,EAAG,CAAC,GAAG,CAAC,CAAA,EAAG,YAAA,EAAY,IAAA,EAC1D,iBAAO,MAAA,CAAO,GAAA,CAAI,CAAC,CAAA,yBACjB,YAAA,EAAA,EAAwB,KAAA,EAAO,CAAA,CAAE,EAAA,EAAI,SAAS,MAAM,CAAA,CAAE,MAAA,EAAO,EAC3D,YAAE,MAAA,EAAO,EAAA,EADO,CAAA,CAAE,EAErB,CACD,CAAA,EACH;AAAA,KAAA,EAEJ;AAAA,GAAA,EACF,CAAA;AAEJ;;;;"}
@@ -17,7 +17,8 @@ import ContextMenuView from '../../../../../../views/ContextMenuView.mjs';
17
17
  const FilterContextMenu = (props) => {
18
18
  const { filter } = props;
19
19
  const { values, mode, name, property } = filter;
20
- const filterItems = values.map((v) => /* @__PURE__ */ jsx(FilterMenuItem, { filterValue: v }, v.id));
20
+ const selectionMode = mode === "one" ? "single" : "multiple";
21
+ const filterItems = values.map((v) => /* @__PURE__ */ jsx(FilterMenuItem, { filterValue: v, selectionMode }, v.id));
21
22
  const activeFilterKeys = values.filter((v) => v.isActive).map((v) => v.id);
22
23
  return /* @__PURE__ */ jsxs(ContextMenuTriggerView, { children: [
23
24
  /* @__PURE__ */ jsxs(
@@ -35,7 +36,7 @@ const FilterContextMenu = (props) => {
35
36
  /* @__PURE__ */ jsx(
36
37
  ContextMenuView,
37
38
  {
38
- selectionMode: mode === "one" ? "single" : "multiple",
39
+ selectionMode,
39
40
  selectedKeys: activeFilterKeys,
40
41
  children: filterItems
41
42
  }
@@ -1 +1 @@
1
- {"version":3,"file":"FilterContextMenu.mjs","sources":["../../../../../../../../../../src/components/List/components/Header/components/FilterContextMenu/FilterContextMenu.tsx"],"sourcesContent":["import type { FC } from \"react\";\nimport type { Filter } from \"@/components/List/model/filter/Filter\";\nimport { IconFilter } from \"@/components/Icon/components/icons\";\nimport TextView from \"@/views/TextView\";\nimport ButtonView from \"@/views/ButtonView\";\nimport { FilterMenuItem } from \"@/components/List/components/Header/components/FilterContextMenu/FilterMenuItem\";\nimport styles from \"@/components/List/components/Header/Header.module.css\";\nimport ContextMenuTriggerView from \"@/views/ContextMenuTriggerView\";\nimport ContextMenuView from \"@/views/ContextMenuView\";\n\ninterface Props {\n filter: Filter<never, never, never>;\n}\n\nexport const FilterContextMenu: FC<Props> = (props) => {\n const { filter } = props;\n\n const { values, mode, name, property } = filter;\n\n const filterItems = values.map((v) => (\n <FilterMenuItem filterValue={v} key={v.id} />\n ));\n\n const activeFilterKeys = values.filter((v) => v.isActive).map((v) => v.id);\n\n return (\n <ContextMenuTriggerView>\n <ButtonView\n className={styles.hideOnMobile}\n variant=\"outline\"\n color=\"secondary\"\n >\n <TextView>{name ?? property}</TextView>\n <IconFilter />\n </ButtonView>\n <ContextMenuView\n selectionMode={mode === \"one\" ? \"single\" : \"multiple\"}\n selectedKeys={activeFilterKeys}\n >\n {filterItems}\n </ContextMenuView>\n </ContextMenuTriggerView>\n );\n};\n"],"names":["styles"],"mappings":";;;;;;;;;;;;;;AAcO,MAAM,iBAAA,GAA+B,CAAC,KAAA,KAAU;AACrD,EAAA,MAAM,EAAE,QAAO,GAAI,KAAA;AAEnB,EAAA,MAAM,EAAE,MAAA,EAAQ,IAAA,EAAM,IAAA,EAAM,UAAS,GAAI,MAAA;AAEzC,EAAA,MAAM,WAAA,GAAc,MAAA,CAAO,GAAA,CAAI,CAAC,CAAA,qBAC9B,GAAA,CAAC,cAAA,EAAA,EAAe,WAAA,EAAa,CAAA,EAAA,EAAQ,CAAA,CAAE,EAAI,CAC5C,CAAA;AAED,EAAA,MAAM,gBAAA,GAAmB,MAAA,CAAO,MAAA,CAAO,CAAC,CAAA,KAAM,CAAA,CAAE,QAAQ,CAAA,CAAE,GAAA,CAAI,CAAC,CAAA,KAAM,CAAA,CAAE,EAAE,CAAA;AAEzE,EAAA,4BACG,sBAAA,EAAA,EACC,QAAA,EAAA;AAAA,oBAAA,IAAA;AAAA,MAAC,UAAA;AAAA,MAAA;AAAA,QACC,WAAWA,YAAA,CAAO,YAAA;AAAA,QAClB,OAAA,EAAQ,SAAA;AAAA,QACR,KAAA,EAAM,WAAA;AAAA,QAEN,QAAA,EAAA;AAAA,0BAAA,GAAA,CAAC,QAAA,EAAA,EAAU,kBAAQ,QAAA,EAAS,CAAA;AAAA,8BAC3B,UAAA,EAAA,EAAW;AAAA;AAAA;AAAA,KACd;AAAA,oBACA,GAAA;AAAA,MAAC,eAAA;AAAA,MAAA;AAAA,QACC,aAAA,EAAe,IAAA,KAAS,KAAA,GAAQ,QAAA,GAAW,UAAA;AAAA,QAC3C,YAAA,EAAc,gBAAA;AAAA,QAEb,QAAA,EAAA;AAAA;AAAA;AACH,GAAA,EACF,CAAA;AAEJ;;;;"}
1
+ {"version":3,"file":"FilterContextMenu.mjs","sources":["../../../../../../../../../../src/components/List/components/Header/components/FilterContextMenu/FilterContextMenu.tsx"],"sourcesContent":["import type { FC } from \"react\";\nimport type { Filter } from \"@/components/List/model/filter/Filter\";\nimport { IconFilter } from \"@/components/Icon/components/icons\";\nimport TextView from \"@/views/TextView\";\nimport ButtonView from \"@/views/ButtonView\";\nimport { FilterMenuItem } from \"@/components/List/components/Header/components/FilterContextMenu/FilterMenuItem\";\nimport styles from \"@/components/List/components/Header/Header.module.css\";\nimport ContextMenuTriggerView from \"@/views/ContextMenuTriggerView\";\nimport ContextMenuView from \"@/views/ContextMenuView\";\n\ninterface Props {\n filter: Filter<never, never, never>;\n}\n\nexport const FilterContextMenu: FC<Props> = (props) => {\n const { filter } = props;\n\n const { values, mode, name, property } = filter;\n\n const selectionMode = mode === \"one\" ? \"single\" : \"multiple\";\n\n const filterItems = values.map((v) => (\n <FilterMenuItem filterValue={v} key={v.id} selectionMode={selectionMode} />\n ));\n\n const activeFilterKeys = values.filter((v) => v.isActive).map((v) => v.id);\n\n return (\n <ContextMenuTriggerView>\n <ButtonView\n className={styles.hideOnMobile}\n variant=\"outline\"\n color=\"secondary\"\n >\n <TextView>{name ?? property}</TextView>\n <IconFilter />\n </ButtonView>\n <ContextMenuView\n selectionMode={selectionMode}\n selectedKeys={activeFilterKeys}\n >\n {filterItems}\n </ContextMenuView>\n </ContextMenuTriggerView>\n );\n};\n"],"names":["styles"],"mappings":";;;;;;;;;;;;;;AAcO,MAAM,iBAAA,GAA+B,CAAC,KAAA,KAAU;AACrD,EAAA,MAAM,EAAE,QAAO,GAAI,KAAA;AAEnB,EAAA,MAAM,EAAE,MAAA,EAAQ,IAAA,EAAM,IAAA,EAAM,UAAS,GAAI,MAAA;AAEzC,EAAA,MAAM,aAAA,GAAgB,IAAA,KAAS,KAAA,GAAQ,QAAA,GAAW,UAAA;AAElD,EAAA,MAAM,WAAA,GAAc,MAAA,CAAO,GAAA,CAAI,CAAC,CAAA,qBAC9B,GAAA,CAAC,cAAA,EAAA,EAAe,WAAA,EAAa,CAAA,EAAc,aAAA,EAAA,EAAN,CAAA,CAAE,EAAkC,CAC1E,CAAA;AAED,EAAA,MAAM,gBAAA,GAAmB,MAAA,CAAO,MAAA,CAAO,CAAC,CAAA,KAAM,CAAA,CAAE,QAAQ,CAAA,CAAE,GAAA,CAAI,CAAC,CAAA,KAAM,CAAA,CAAE,EAAE,CAAA;AAEzE,EAAA,4BACG,sBAAA,EAAA,EACC,QAAA,EAAA;AAAA,oBAAA,IAAA;AAAA,MAAC,UAAA;AAAA,MAAA;AAAA,QACC,WAAWA,YAAA,CAAO,YAAA;AAAA,QAClB,OAAA,EAAQ,SAAA;AAAA,QACR,KAAA,EAAM,WAAA;AAAA,QAEN,QAAA,EAAA;AAAA,0BAAA,GAAA,CAAC,QAAA,EAAA,EAAU,kBAAQ,QAAA,EAAS,CAAA;AAAA,8BAC3B,UAAA,EAAA,EAAW;AAAA;AAAA;AAAA,KACd;AAAA,oBACA,GAAA;AAAA,MAAC,eAAA;AAAA,MAAA;AAAA,QACC,aAAA;AAAA,QACA,YAAA,EAAc,gBAAA;AAAA,QAEb,QAAA,EAAA;AAAA;AAAA;AACH,GAAA,EACF,CAAA;AAEJ;;;;"}
@@ -5,13 +5,15 @@ import MenuItemView from '../../../../../../views/MenuItemView.mjs';
5
5
  import 'react';
6
6
 
7
7
  const FilterMenuItem = (props) => {
8
- const { filterValue } = props;
8
+ const { filterValue, selectionMode } = props;
9
9
  return /* @__PURE__ */ jsx(
10
10
  MenuItemView,
11
11
  {
12
12
  id: filterValue.id,
13
13
  onAction: () => {
14
- filterValue.toggle();
14
+ if (selectionMode === "multiple" || !filterValue.isActive) {
15
+ filterValue.toggle();
16
+ }
15
17
  },
16
18
  children: filterValue.render()
17
19
  }
@@ -1 +1 @@
1
- {"version":3,"file":"FilterMenuItem.mjs","sources":["../../../../../../../../../../src/components/List/components/Header/components/FilterContextMenu/FilterMenuItem.tsx"],"sourcesContent":["import MenuItemView from \"@/views/MenuItemView\";\nimport { type FC } from \"react\";\nimport type { FilterValue } from \"@/components/List/model/filter/FilterValue\";\n\ninterface Props {\n filterValue: FilterValue;\n}\n\nexport const FilterMenuItem: FC<Props> = (props) => {\n const { filterValue } = props;\n\n return (\n <MenuItemView\n id={filterValue.id}\n onAction={() => {\n filterValue.toggle();\n }}\n >\n {filterValue.render()}\n </MenuItemView>\n );\n};\n"],"names":[],"mappings":";;;;AAQO,MAAM,cAAA,GAA4B,CAAC,KAAA,KAAU;AAClD,EAAA,MAAM,EAAE,aAAY,GAAI,KAAA;AAExB,EAAA,uBACE,GAAA;AAAA,IAAC,YAAA;AAAA,IAAA;AAAA,MACC,IAAI,WAAA,CAAY,EAAA;AAAA,MAChB,UAAU,MAAM;AACd,QAAA,WAAA,CAAY,MAAA,EAAO;AAAA,MACrB,CAAA;AAAA,MAEC,sBAAY,MAAA;AAAO;AAAA,GACtB;AAEJ;;;;"}
1
+ {"version":3,"file":"FilterMenuItem.mjs","sources":["../../../../../../../../../../src/components/List/components/Header/components/FilterContextMenu/FilterMenuItem.tsx"],"sourcesContent":["import MenuItemView from \"@/views/MenuItemView\";\nimport { type FC } from \"react\";\nimport type { FilterValue } from \"@/components/List/model/filter/FilterValue\";\nimport type { ContextMenuSelectionMode } from \"@/components/ContextMenu/lib\";\n\ninterface Props {\n filterValue: FilterValue;\n selectionMode?: ContextMenuSelectionMode;\n}\n\nexport const FilterMenuItem: FC<Props> = (props) => {\n const { filterValue, selectionMode } = props;\n\n return (\n <MenuItemView\n id={filterValue.id}\n onAction={() => {\n if (selectionMode === \"multiple\" || !filterValue.isActive) {\n filterValue.toggle();\n }\n }}\n >\n {filterValue.render()}\n </MenuItemView>\n );\n};\n"],"names":[],"mappings":";;;;AAUO,MAAM,cAAA,GAA4B,CAAC,KAAA,KAAU;AAClD,EAAA,MAAM,EAAE,WAAA,EAAa,aAAA,EAAc,GAAI,KAAA;AAEvC,EAAA,uBACE,GAAA;AAAA,IAAC,YAAA;AAAA,IAAA;AAAA,MACC,IAAI,WAAA,CAAY,EAAA;AAAA,MAChB,UAAU,MAAM;AACd,QAAA,IAAI,aAAA,KAAkB,UAAA,IAAc,CAAC,WAAA,CAAY,QAAA,EAAU;AACzD,UAAA,WAAA,CAAY,MAAA,EAAO;AAAA,QACrB;AAAA,MACF,CAAA;AAAA,MAEC,sBAAY,MAAA;AAAO;AAAA,GACtB;AAEJ;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"FilterAccordion.d.ts","sourceRoot":"","sources":["../../../../../../../../src/components/List/components/Header/components/AllFiltersModal/FilterAccordion.tsx"],"names":[],"mappings":"AAAA,OAAc,EAAE,KAAK,EAAE,EAAE,MAAM,OAAO,CAAC;AAQvC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,uCAAuC,CAAC;AAEpE,UAAU,KAAK;IACb,MAAM,EAAE,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;CACrC;AAED,eAAO,MAAM,eAAe,EAAE,EAAE,CAAC,KAAK,CAsCrC,CAAC"}
1
+ {"version":3,"file":"FilterAccordion.d.ts","sourceRoot":"","sources":["../../../../../../../../src/components/List/components/Header/components/AllFiltersModal/FilterAccordion.tsx"],"names":[],"mappings":"AAAA,OAAc,EAAE,KAAK,EAAE,EAAE,MAAM,OAAO,CAAC;AAQvC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,uCAAuC,CAAC;AAMpE,UAAU,KAAK;IACb,MAAM,EAAE,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;CACrC;AAED,eAAO,MAAM,eAAe,EAAE,EAAE,CAAC,KAAK,CA2DrC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"FilterContextMenu.d.ts","sourceRoot":"","sources":["../../../../../../../../src/components/List/components/Header/components/FilterContextMenu/FilterContextMenu.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;AAChC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,uCAAuC,CAAC;AASpE,UAAU,KAAK;IACb,MAAM,EAAE,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;CACrC;AAED,eAAO,MAAM,iBAAiB,EAAE,EAAE,CAAC,KAAK,CA6BvC,CAAC"}
1
+ {"version":3,"file":"FilterContextMenu.d.ts","sourceRoot":"","sources":["../../../../../../../../src/components/List/components/Header/components/FilterContextMenu/FilterContextMenu.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;AAChC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,uCAAuC,CAAC;AASpE,UAAU,KAAK;IACb,MAAM,EAAE,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;CACrC;AAED,eAAO,MAAM,iBAAiB,EAAE,EAAE,CAAC,KAAK,CA+BvC,CAAC"}
@@ -1,7 +1,9 @@
1
1
  import { FC } from 'react';
2
2
  import { FilterValue } from '../../../../model/filter/FilterValue';
3
+ import { ContextMenuSelectionMode } from '../../../../../ContextMenu/lib';
3
4
  interface Props {
4
5
  filterValue: FilterValue;
6
+ selectionMode?: ContextMenuSelectionMode;
5
7
  }
6
8
  export declare const FilterMenuItem: FC<Props>;
7
9
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"FilterMenuItem.d.ts","sourceRoot":"","sources":["../../../../../../../../src/components/List/components/Header/components/FilterContextMenu/FilterMenuItem.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,EAAE,MAAM,OAAO,CAAC;AAChC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,4CAA4C,CAAC;AAE9E,UAAU,KAAK;IACb,WAAW,EAAE,WAAW,CAAC;CAC1B;AAED,eAAO,MAAM,cAAc,EAAE,EAAE,CAAC,KAAK,CAapC,CAAC"}
1
+ {"version":3,"file":"FilterMenuItem.d.ts","sourceRoot":"","sources":["../../../../../../../../src/components/List/components/Header/components/FilterContextMenu/FilterMenuItem.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,EAAE,MAAM,OAAO,CAAC;AAChC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,4CAA4C,CAAC;AAC9E,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,8BAA8B,CAAC;AAE7E,UAAU,KAAK;IACb,WAAW,EAAE,WAAW,CAAC;IACzB,aAAa,CAAC,EAAE,wBAAwB,CAAC;CAC1C;AAED,eAAO,MAAM,cAAc,EAAE,EAAE,CAAC,KAAK,CAepC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"Default.stories.d.ts","sourceRoot":"","sources":["../../../../../src/components/List/stories/Default.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,IAAI,MAAM,SAAS,CAAC;AAuD3B,QAAA,MAAM,IAAI,EAAE,IAAI,CAAC,OAAO,IAAI,CA2G3B,CAAC;AAEF,eAAe,IAAI,CAAC;AAEpB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,IAAI,CAAC,CAAC;AAEnC,eAAO,MAAM,OAAO,EAAE,KAAU,CAAC;AAEjC,eAAO,MAAM,WAAW,EAAE,KAwCzB,CAAC;AAEF,eAAO,MAAM,iBAAiB,EAAE,KAwC/B,CAAC;AACF,eAAO,MAAM,aAAa,EAAE,KAyC3B,CAAC;AAMF,eAAO,MAAM,WAAW,EAAE,KA8CzB,CAAC;AAEF,eAAO,MAAM,oBAAoB,EAAE,KAqElC,CAAC"}
1
+ {"version":3,"file":"Default.stories.d.ts","sourceRoot":"","sources":["../../../../../src/components/List/stories/Default.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,IAAI,MAAM,SAAS,CAAC;AAuD3B,QAAA,MAAM,IAAI,EAAE,IAAI,CAAC,OAAO,IAAI,CA0G3B,CAAC;AAEF,eAAe,IAAI,CAAC;AAEpB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,IAAI,CAAC,CAAC;AAEnC,eAAO,MAAM,OAAO,EAAE,KAAU,CAAC;AAEjC,eAAO,MAAM,WAAW,EAAE,KAwCzB,CAAC;AAEF,eAAO,MAAM,iBAAiB,EAAE,KAwC/B,CAAC;AACF,eAAO,MAAM,aAAa,EAAE,KAyC3B,CAAC;AAMF,eAAO,MAAM,WAAW,EAAE,KA8CzB,CAAC;AAEF,eAAO,MAAM,oBAAoB,EAAE,KAqElC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mittwald/flow-react-components",
3
- "version": "0.2.0-alpha.738",
3
+ "version": "0.2.0-alpha.739",
4
4
  "type": "module",
5
5
  "description": "A React implementation of Flow, mittwald’s design system",
6
6
  "homepage": "https://mittwald.github.io/flow",
@@ -57,9 +57,9 @@
57
57
  },
58
58
  "dependencies": {
59
59
  "@internationalized/string-compiler": "^3.2.6",
60
- "@mittwald/flow-icons": "0.2.0-alpha.738",
60
+ "@mittwald/flow-icons": "0.2.0-alpha.739",
61
61
  "@mittwald/password-tools-js": "3.0.0-alpha.18",
62
- "@mittwald/react-tunnel": "0.2.0-alpha.738",
62
+ "@mittwald/react-tunnel": "0.2.0-alpha.739",
63
63
  "@mittwald/react-use-promise": "^4.2.2",
64
64
  "@react-aria/form": "^3.1.3",
65
65
  "@react-aria/live-announcer": "^3.4.4",
@@ -104,7 +104,7 @@
104
104
  "@faker-js/faker": "^10.2.0",
105
105
  "@internationalized/date": "^3.10.1",
106
106
  "@mittwald/flow-core": "",
107
- "@mittwald/flow-design-tokens": "0.2.0-alpha.738",
107
+ "@mittwald/flow-design-tokens": "0.2.0-alpha.739",
108
108
  "@mittwald/flow-icons-base": "",
109
109
  "@mittwald/react-use-promise": "^4.2.2",
110
110
  "@mittwald/remote-dom-react": "1.2.2-mittwald.10",
@@ -157,7 +157,7 @@
157
157
  },
158
158
  "peerDependencies": {
159
159
  "@internationalized/date": "^3.10.0",
160
- "@mittwald/flow-icons-pro": "0.2.0-alpha.737",
160
+ "@mittwald/flow-icons-pro": "0.2.0-alpha.738",
161
161
  "@mittwald/react-use-promise": "^4.2.2",
162
162
  "next": "*",
163
163
  "react": "^19.2.0",
@@ -178,5 +178,5 @@
178
178
  "optional": true
179
179
  }
180
180
  },
181
- "gitHead": "e817358098e2bbe058c685f0dba5889b71dccaf5"
181
+ "gitHead": "f1eafbab5caa6fce6981a957a06b4a006dbae3dc"
182
182
  }