@mittwald/flow-react-components 1.4.0-next.5 → 1.4.0-next.7

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 (114) hide show
  1. package/dist/assets/component-index.json +1 -1
  2. package/dist/assets/doc-properties.json +1 -1
  3. package/dist/css/all-layered.css +1 -1
  4. package/dist/css/all.css +1 -1
  5. package/dist/js/_virtual/_13.locale.mjs +5 -505
  6. package/dist/js/_virtual/_14.locale.mjs +505 -5
  7. package/dist/js/_virtual/_15.locale.mjs +9 -3
  8. package/dist/js/_virtual/_16.locale.mjs +3 -59
  9. package/dist/js/_virtual/_17.locale.mjs +63 -3
  10. package/dist/js/_virtual/_18.locale.mjs +3 -9
  11. package/dist/js/_virtual/_19.locale.mjs +5 -5
  12. package/dist/js/_virtual/_20.locale.mjs +5 -11
  13. package/dist/js/_virtual/_21.locale.mjs +15 -3
  14. package/dist/js/_virtual/_22.locale.mjs +3 -15
  15. package/dist/js/_virtual/_23.locale.mjs +15 -3
  16. package/dist/js/_virtual/_24.locale.mjs +3 -33
  17. package/dist/js/_virtual/_25.locale.mjs +29 -5
  18. package/dist/js/_virtual/_26.locale.mjs +9 -3
  19. package/dist/js/_virtual/_27.locale.mjs +3 -3
  20. package/dist/js/_virtual/_28.locale.mjs +3 -93
  21. package/dist/js/_virtual/_29.locale.mjs +93 -3
  22. package/dist/js/_virtual/_30.locale.mjs +3 -9
  23. package/dist/js/_virtual/_31.locale.mjs +5 -5
  24. package/dist/js/_virtual/_32.locale.mjs +5 -7
  25. package/dist/js/_virtual/_33.locale.mjs +7 -13
  26. package/dist/js/_virtual/_34.locale.mjs +23 -0
  27. package/dist/js/packages/components/src/components/ContextMenu/ContextMenu.mjs +9 -6
  28. package/dist/js/packages/components/src/components/ContextMenu/ContextMenu.mjs.map +1 -1
  29. package/dist/js/packages/components/src/components/ContextMenu/ContextMenu.module.mjs +4 -2
  30. package/dist/js/packages/components/src/components/ContextMenu/ContextMenu.module.mjs.map +1 -1
  31. package/dist/js/packages/components/src/components/ContextMenu/components/ContextMenuSelectAll/ContextMenuSelectAll.mjs +86 -0
  32. package/dist/js/packages/components/src/components/ContextMenu/components/ContextMenuSelectAll/ContextMenuSelectAll.mjs.map +1 -0
  33. package/dist/js/packages/components/src/components/CountryOptions/CountryOptions.mjs +1 -1
  34. package/dist/js/packages/components/src/components/FileCard/components/DeleteButton/DeleteButton.mjs +1 -1
  35. package/dist/js/packages/components/src/components/ImageCropper/ImageCropper.mjs +1 -1
  36. package/dist/js/packages/components/src/components/Kbd/Kbd.mjs +1 -1
  37. package/dist/js/packages/components/src/components/Label/Label.mjs +33 -25
  38. package/dist/js/packages/components/src/components/Label/Label.mjs.map +1 -1
  39. package/dist/js/packages/components/src/components/Label/Label.module.mjs +4 -2
  40. package/dist/js/packages/components/src/components/Label/Label.module.mjs.map +1 -1
  41. package/dist/js/packages/components/src/components/LightBox/LightBox.mjs +1 -1
  42. package/dist/js/packages/components/src/components/LightBox/components/LightBoxGallery/Controls.mjs +1 -1
  43. package/dist/js/packages/components/src/components/LightBox/components/LightBoxGallery/LightBoxGallery.mjs +1 -1
  44. package/dist/js/packages/components/src/components/LightBox/components/LightBoxGalleryItem/LightBoxGalleryItem.mjs +1 -1
  45. package/dist/js/packages/components/src/components/Link/components/LinkIcon/LinkIcon.mjs +1 -1
  46. package/dist/js/packages/components/src/components/List/components/EmptySearchResultView/EmptySearchResultView.mjs +1 -1
  47. package/dist/js/packages/components/src/components/List/components/EmptyView/EmptyView.mjs +1 -1
  48. package/dist/js/packages/components/src/components/List/components/Footer/Footer.mjs +1 -1
  49. package/dist/js/packages/components/src/components/List/components/Footer/components/PaginationInfos/PaginationInfos.mjs +1 -1
  50. package/dist/js/packages/components/src/components/List/components/Footer/components/ShowNextBatchButton/ShowNextBatchButton.mjs +1 -1
  51. package/dist/js/packages/components/src/components/List/components/Header/components/ActiveFilters/ActiveFilters.mjs +1 -1
  52. package/dist/js/packages/components/src/components/List/components/Header/components/AllFiltersModal/AllFiltersModal.mjs +1 -1
  53. package/dist/js/packages/components/src/components/List/components/Header/components/AllFiltersModal/FilterAccordionCheckboxGroup.mjs +15 -3
  54. package/dist/js/packages/components/src/components/List/components/Header/components/AllFiltersModal/FilterAccordionCheckboxGroup.mjs.map +1 -1
  55. package/dist/js/packages/components/src/components/List/components/Header/components/AllFiltersModal/FilterAccordionCheckboxGroup.module.mjs +9 -0
  56. package/dist/js/packages/components/src/components/List/components/Header/components/AllFiltersModal/FilterAccordionCheckboxGroup.module.mjs.map +1 -0
  57. package/dist/js/packages/components/src/components/List/components/Header/components/AllFiltersModal/FilterAccordionDateRange.mjs +1 -1
  58. package/dist/js/packages/components/src/components/List/components/Header/components/AllFiltersModal/FilterAccordionRadioGroup.mjs +1 -1
  59. package/dist/js/packages/components/src/components/List/components/Header/components/AllFiltersModal/SortingAccordion.mjs +1 -1
  60. package/dist/js/packages/components/src/components/List/components/Header/components/AllFiltersModal/ViewModeAccordion.mjs +1 -1
  61. package/dist/js/packages/components/src/components/List/components/Header/components/FilterContextMenu/DateRangeFilterPopover.mjs +1 -1
  62. package/dist/js/packages/components/src/components/List/components/Header/components/FilterContextMenu/FilterContextMenu.mjs +3 -0
  63. package/dist/js/packages/components/src/components/List/components/Header/components/FilterContextMenu/FilterContextMenu.mjs.map +1 -1
  64. package/dist/js/packages/components/src/components/List/components/Header/components/FilterContextMenu/FilterMenuItem.mjs +1 -1
  65. package/dist/js/packages/components/src/components/List/components/Header/components/FilterContextMenu/FilterMenuItem.mjs.map +1 -1
  66. package/dist/js/packages/components/src/components/List/components/Header/components/SortingContextMenu/SortingContextMenu.mjs +1 -1
  67. package/dist/js/packages/components/src/components/List/components/Header/components/ViewModeContextMenu/ViewModeContextMenu.mjs +1 -1
  68. package/dist/js/packages/components/src/components/List/components/Header/components/ViewModeContextMenu/ViewModeMenuItem.mjs +1 -1
  69. package/dist/js/packages/components/src/components/List/components/Items/components/Item/components/AccordionButton.mjs +1 -1
  70. package/dist/js/packages/components/src/components/List/components/Items/components/Item/components/OptionsButton/OptionsButton.mjs +1 -1
  71. package/dist/js/packages/components/src/components/List/hooks/useAriaAnnounceSearchState.mjs +1 -1
  72. package/dist/js/packages/components/src/components/List/model/filter/Filter.mjs +21 -0
  73. package/dist/js/packages/components/src/components/List/model/filter/Filter.mjs.map +1 -1
  74. package/dist/js/packages/components/src/components/List/views/EmptyView/EmptyView.mjs +1 -1
  75. package/dist/js/packages/components/src/components/MarkdownEditor/components/ModeButton.mjs +1 -1
  76. package/dist/js/packages/components/src/components/MarkdownEditor/components/ToolbarButton.mjs +1 -1
  77. package/dist/js/packages/components/src/components/MarkdownEditor/lib/useFileUpload.mjs +1 -1
  78. package/dist/js/packages/components/src/components/MenuItem/MenuItem.mjs +2 -1
  79. package/dist/js/packages/components/src/components/MenuItem/MenuItem.mjs.map +1 -1
  80. package/dist/js/packages/components/src/components/MenuItem/MenuItem.module.mjs +3 -1
  81. package/dist/js/packages/components/src/components/MenuItem/MenuItem.module.mjs.map +1 -1
  82. package/dist/js/packages/components/src/components/MenuItem/components/MenuItemContent/MenuItemContent.mjs +4 -3
  83. package/dist/js/packages/components/src/components/MenuItem/components/MenuItemContent/MenuItemContent.mjs.map +1 -1
  84. package/dist/js/packages/components/src/components/Message/Message.mjs +1 -1
  85. package/dist/js/packages/components/src/components/MessageThread/components/MessageSeparator/MessageSeparator.mjs +1 -1
  86. package/dist/js/packages/components/src/components/Modal/Modal.mjs +1 -1
  87. package/dist/js/packages/components/src/components/Modal/components/ConfirmUnsavedChangesModal/ConfirmUnsavedChangesModal.mjs +1 -1
  88. package/dist/js/packages/components/src/components/Notification/Notification.mjs +1 -1
  89. package/dist/js/packages/components/src/components/PasswordCreationField/PasswordCreationField.mjs +1 -1
  90. package/dist/js/packages/components/src/components/PasswordCreationField/components/PasswordGenerateButton/PasswordGenerateButton.mjs +1 -1
  91. package/dist/js/packages/components/src/components/PasswordCreationField/components/TogglePasswordVisibilityButton/TogglePasswordVisibilityButton.mjs +1 -1
  92. package/dist/js/packages/components/src/components/PasswordCreationField/components/ValidationResultButton/ValidationResultButton.mjs +1 -1
  93. package/dist/js/packages/components/src/components/PasswordCreationField/components/ValidationResultEntry/ValidationResultEntry.mjs +1 -1
  94. package/dist/js/packages/components/src/components/PasswordCreationField/lib/ariaAnnounce.mjs +1 -1
  95. package/dist/js/packages/components/src/components/Rating/components/RatingSegment/RatingSegment.mjs +1 -1
  96. package/dist/js/packages/components/src/components/SearchField/SearchField.mjs +1 -1
  97. package/dist/js/packages/components/src/components/Slider/Slider.mjs +1 -1
  98. package/dist/js/packages/components/src/components/TabNavigation/TabNavigation.mjs +1 -1
  99. package/dist/js/packages/components/src/components/Tabs/components/FallbackTab/FallbackTab.mjs +1 -1
  100. package/dist/js/packages/components/src/components/TextArea/TextArea.mjs +1 -1
  101. package/dist/js/packages/components/src/components/TextField/TextField.mjs +1 -1
  102. package/dist/js/packages/components/src/integrations/react-hook-form/components/Field/Field.mjs +1 -1
  103. package/dist/js/packages/design-tokens/dist/json-runtime/all-dark.mjs +4 -0
  104. package/dist/js/packages/design-tokens/dist/json-runtime/all-dark.mjs.map +1 -1
  105. package/dist/js/packages/design-tokens/dist/json-runtime/all-light.mjs +4 -0
  106. package/dist/js/packages/design-tokens/dist/json-runtime/all-light.mjs.map +1 -1
  107. package/dist/types/components/ContextMenu/ContextMenu.d.ts +5 -0
  108. package/dist/types/components/ContextMenu/components/ContextMenuSelectAll/ContextMenuSelectAll.d.ts +7 -0
  109. package/dist/types/components/List/model/filter/Filter.d.ts +6 -0
  110. package/dist/types/components/List/typedList.d.ts +3 -3
  111. package/dist/types/components/MenuItem/MenuItem.d.ts +5 -0
  112. package/dist/types/components/MenuItem/components/MenuItemContent/MenuItemContent.d.ts +1 -0
  113. package/dist/types/lib/theming/hooks/useDesignTokens.d.ts +4 -0
  114. package/package.json +9 -9
@@ -1,22 +1,16 @@
1
1
  "use client"
2
2
  /* */
3
- //#region \0.locale.json@72ba2ce40f190df671686fec50c04ddf
3
+ //#region \0.locale.json@16189d7d260d7331b0e0a1936d5c7c52
4
4
  var __locale_default = {
5
5
  "de-DE": {
6
- "validation.max": "Maximale Anzahl von {number} erreicht",
7
- "validation.maxLength": "Bitte gib höchstens {number} Zeichen ein",
8
- "validation.min": "Minimale Anzahl von {number} noch nicht erreicht",
9
- "validation.minLength": "Bitte gib mindestens {number} Zeichen ein",
10
- "validation.pattern": "Entspricht nicht dem erwarteten Format: {pattern}",
11
- "validation.required": "Dieses Feld ist erforderlich"
6
+ "characters": "{maxCount, select, 0 {{count}} other {{count}/{maxCount}}} Zeichen",
7
+ "password.hide": "Passwort verbergen",
8
+ "password.show": "Passwort anzeigen"
12
9
  },
13
10
  "en-US": {
14
- "validation.max": "Maximum number of {number} reached",
15
- "validation.maxLength": "Please enter at most {number} characters",
16
- "validation.min": "Minimum number of {number} has not yet been reached",
17
- "validation.minLength": "Please enter at least {number} characters",
18
- "validation.pattern": "Does not match the expected format: {pattern}",
19
- "validation.required": "This field is required"
11
+ "characters": "{maxCount, select, 0 {{count}} other {{count}/{maxCount}}} characters",
12
+ "password.hide": "Show password",
13
+ "password.show": "Hide password"
20
14
  }
21
15
  };
22
16
  //#endregion
@@ -0,0 +1,23 @@
1
+ "use client"
2
+ /* */
3
+ //#region \0.locale.json@72ba2ce40f190df671686fec50c04ddf
4
+ var __locale_default = {
5
+ "de-DE": {
6
+ "validation.max": "Maximale Anzahl von {number} erreicht",
7
+ "validation.maxLength": "Bitte gib höchstens {number} Zeichen ein",
8
+ "validation.min": "Minimale Anzahl von {number} noch nicht erreicht",
9
+ "validation.minLength": "Bitte gib mindestens {number} Zeichen ein",
10
+ "validation.pattern": "Entspricht nicht dem erwarteten Format: {pattern}",
11
+ "validation.required": "Dieses Feld ist erforderlich"
12
+ },
13
+ "en-US": {
14
+ "validation.max": "Maximum number of {number} reached",
15
+ "validation.maxLength": "Please enter at most {number} characters",
16
+ "validation.min": "Minimum number of {number} has not yet been reached",
17
+ "validation.minLength": "Please enter at least {number} characters",
18
+ "validation.pattern": "Does not match the expected format: {pattern}",
19
+ "validation.required": "This field is required"
20
+ }
21
+ };
22
+ //#endregion
23
+ export { __locale_default as default };
@@ -10,16 +10,19 @@ import { closesOnSelect, getAriaSelectionMode, getMenuItemSelectionVariant } fro
10
10
  import ContextMenuContentView from "../../views/ContextMenuContentView.mjs";
11
11
  import ContextMenu_module_default from "./ContextMenu.module.mjs";
12
12
  import { OverlayContentSuspendWatcher } from "../../lib/controller/overlay/OverlayContentSuspendWatcher.mjs";
13
- import { jsx } from "react/jsx-runtime";
13
+ import { ContextMenuSelectAll } from "./components/ContextMenuSelectAll/ContextMenuSelectAll.mjs";
14
+ import { jsx, jsxs } from "react/jsx-runtime";
14
15
  //#region src/components/ContextMenu/ContextMenu.tsx
15
16
  /** @flr-generate all */
16
17
  var ContextMenu = flowComponent("ContextMenu", (props) => {
17
- const { children, onAction, selectionMode, selectedKeys, defaultSelectedKeys, disabledKeys, onSelectionChange, renderEmptyState, ref, controller: overlayControllerFromProps, ...rest } = props;
18
+ const { children, onAction, selectionMode, selectedKeys, defaultSelectedKeys, disabledKeys, onSelectionChange, renderEmptyState, showSelectAll, ref, controller: overlayControllerFromProps, ...rest } = props;
18
19
  const overlayControllerFromContext = useOverlayController("ContextMenu", { reuseControllerFromContext: true });
19
20
  const overlayController = overlayControllerFromProps ?? overlayControllerFromContext;
21
+ const selectionVariant = getMenuItemSelectionVariant(selectionMode);
22
+ const selectAll = showSelectAll && selectionMode === "multiple" && /* @__PURE__ */ jsx(ContextMenuSelectAll, {});
20
23
  const propsContext = {
21
24
  MenuItem: {
22
- selectionVariant: getMenuItemSelectionVariant(selectionMode),
25
+ selectionVariant,
23
26
  Avatar: { size: "l" }
24
27
  },
25
28
  Section: {
@@ -38,7 +41,7 @@ var ContextMenu = flowComponent("ContextMenu", (props) => {
38
41
  children: /* @__PURE__ */ jsx(OverlayContextProvider, {
39
42
  type: "ContextMenu",
40
43
  controller: overlayController,
41
- children: /* @__PURE__ */ jsx(ContextMenuContentView, {
44
+ children: /* @__PURE__ */ jsxs(ContextMenuContentView, {
42
45
  className: ContextMenu_module_default.contextMenu,
43
46
  onAction,
44
47
  selectionMode: getAriaSelectionMode(selectionMode),
@@ -48,13 +51,13 @@ var ContextMenu = flowComponent("ContextMenu", (props) => {
48
51
  onSelectionChange,
49
52
  renderEmptyState,
50
53
  ref,
51
- children: /* @__PURE__ */ jsx(PropsContextProvider, {
54
+ children: [selectAll, /* @__PURE__ */ jsx(PropsContextProvider, {
52
55
  props: propsContext,
53
56
  children: /* @__PURE__ */ jsx(Action, {
54
57
  closeOverlay: closesOnSelect(selectionMode),
55
58
  children
56
59
  })
57
- })
60
+ })]
58
61
  })
59
62
  })
60
63
  })
@@ -1 +1 @@
1
- {"version":3,"file":"ContextMenu.mjs","names":[],"sources":["../../../../../../../src/components/ContextMenu/ContextMenu.tsx"],"sourcesContent":["import { Action } from \"@/components/Action\";\nimport type { ContextMenuSelectionMode } from \"@/components/ContextMenu/lib\";\nimport {\n getAriaSelectionMode,\n closesOnSelect,\n getMenuItemSelectionVariant,\n} from \"@/components/ContextMenu/lib\";\nimport type { MenuItemProps } from \"@/components/MenuItem\";\nimport { Popover, type PopoverProps } from \"@/components/Popover/Popover\";\nimport type { FlowComponentProps } from \"@/lib/componentFactory/flowComponent\";\nimport { flowComponent } from \"@/lib/componentFactory/flowComponent\";\nimport { useOverlayController } from \"@/lib/controller\";\nimport { OverlayContextProvider } from \"@/lib/controller/overlay/OverlayContextProvider\";\nimport type { PropsContext } from \"@/lib/propsContext\";\nimport { PropsContextProvider } from \"@/lib/propsContext\";\nimport ContextMenuContentView from \"@/views/ContextMenuContentView\";\nimport type * as Aria from \"react-aria-components\";\nimport styles from \"./ContextMenu.module.scss\";\nimport { OverlayContentSuspendWatcher } from \"@/lib/controller/overlay/OverlayContentSuspendWatcher\";\n\nexport interface ContextMenuProps\n extends\n Omit<PopoverProps, \"withTip\" | \"modality\">,\n Pick<\n Aria.MenuProps<MenuItemProps>,\n | \"onAction\"\n | \"selectedKeys\"\n | \"defaultSelectedKeys\"\n | \"onSelectionChange\"\n | \"disabledKeys\"\n | \"renderEmptyState\"\n >,\n FlowComponentProps {\n /** The type of selection that is allowed in the context menu. */\n selectionMode?: ContextMenuSelectionMode;\n /** Sets the context menu to a fixed width. */\n width?: string | number;\n}\n\n/** @flr-generate all */\nexport const ContextMenu = flowComponent(\"ContextMenu\", (props) => {\n const {\n children,\n onAction,\n selectionMode,\n selectedKeys,\n defaultSelectedKeys,\n disabledKeys,\n onSelectionChange,\n renderEmptyState,\n ref,\n controller: overlayControllerFromProps,\n ...rest\n } = props;\n\n const overlayControllerFromContext = useOverlayController(\"ContextMenu\", {\n reuseControllerFromContext: true,\n });\n\n const overlayController =\n overlayControllerFromProps ?? overlayControllerFromContext;\n\n const selectionVariant = getMenuItemSelectionVariant(selectionMode);\n\n const propsContext: PropsContext = {\n MenuItem: {\n selectionVariant,\n Avatar: {\n size: \"l\",\n },\n },\n\n Section: {\n MenuItem: {\n Avatar: {\n size: \"l\",\n },\n },\n renderContextMenuSection: true,\n },\n\n ContextMenuSection: {\n MenuItem: {\n Avatar: {\n size: \"l\",\n },\n },\n },\n };\n\n return (\n <OverlayContentSuspendWatcher overlayController={overlayController}>\n <Popover\n {...rest}\n className={styles.popover}\n controller={overlayController}\n isDialogContent={false}\n >\n <OverlayContextProvider\n type=\"ContextMenu\"\n controller={overlayController}\n >\n <ContextMenuContentView\n className={styles.contextMenu}\n onAction={onAction}\n selectionMode={getAriaSelectionMode(selectionMode)}\n selectedKeys={selectedKeys}\n defaultSelectedKeys={defaultSelectedKeys}\n disabledKeys={disabledKeys}\n onSelectionChange={onSelectionChange}\n renderEmptyState={renderEmptyState}\n ref={ref}\n >\n <PropsContextProvider props={propsContext}>\n <Action closeOverlay={closesOnSelect(selectionMode)}>\n {children}\n </Action>\n </PropsContextProvider>\n </ContextMenuContentView>\n </OverlayContextProvider>\n </Popover>\n </OverlayContentSuspendWatcher>\n );\n});\n\nexport default ContextMenu;\n"],"mappings":";;;;;;;;;;;;;;;AAwCA,IAAa,cAAc,cAAc,gBAAgB,UAAU;CACjE,MAAM,EACJ,UACA,UACA,eACA,cACA,qBACA,cACA,mBACA,kBACA,KACA,YAAY,4BACZ,GAAG,SACD;CAEJ,MAAM,+BAA+B,qBAAqB,eAAe,EACvE,4BAA4B,KAC9B,CAAC;CAED,MAAM,oBACJ,8BAA8B;CAIhC,MAAM,eAA6B;EACjC,UAAU;GACR,kBAJqB,4BAA4B,aAIjD;GACA,QAAQ,EACN,MAAM,IACR;EACF;EAEA,SAAS;GACP,UAAU,EACR,QAAQ,EACN,MAAM,IACR,EACF;GACA,0BAA0B;EAC5B;EAEA,oBAAoB,EAClB,UAAU,EACR,QAAQ,EACN,MAAM,IACR,EACF,EACF;CACF;CAEA,OACE,oBAAC,8BAAD;EAAiD;EAC/C,UAAA,oBAAC,SAAD;GACE,GAAI;GACJ,WAAW,2BAAO;GAClB,YAAY;GACZ,iBAAiB;GAEjB,UAAA,oBAAC,wBAAD;IACE,MAAK;IACL,YAAY;IAEZ,UAAA,oBAAC,wBAAD;KACE,WAAW,2BAAO;KACR;KACV,eAAe,qBAAqB,aAAa;KACnC;KACO;KACP;KACK;KACD;KACb;KAEL,UAAA,oBAAC,sBAAD;MAAsB,OAAO;MAC3B,UAAA,oBAAC,QAAD;OAAQ,cAAc,eAAe,aAAa;OAC/C;MACK,CAAA;KACY,CAAA;IACA,CAAA;GACF,CAAA;EACjB,CAAA;CACmB,CAAA;AAElC,CAAC"}
1
+ {"version":3,"file":"ContextMenu.mjs","names":[],"sources":["../../../../../../../src/components/ContextMenu/ContextMenu.tsx"],"sourcesContent":["import { Action } from \"@/components/Action\";\nimport type { ContextMenuSelectionMode } from \"@/components/ContextMenu/lib\";\nimport {\n getAriaSelectionMode,\n closesOnSelect,\n getMenuItemSelectionVariant,\n} from \"@/components/ContextMenu/lib\";\nimport type { MenuItemProps } from \"@/components/MenuItem\";\nimport { Popover, type PopoverProps } from \"@/components/Popover/Popover\";\nimport type { FlowComponentProps } from \"@/lib/componentFactory/flowComponent\";\nimport { flowComponent } from \"@/lib/componentFactory/flowComponent\";\nimport { useOverlayController } from \"@/lib/controller\";\nimport { OverlayContextProvider } from \"@/lib/controller/overlay/OverlayContextProvider\";\nimport type { PropsContext } from \"@/lib/propsContext\";\nimport { PropsContextProvider } from \"@/lib/propsContext\";\nimport ContextMenuContentView from \"@/views/ContextMenuContentView\";\nimport type * as Aria from \"react-aria-components\";\nimport styles from \"./ContextMenu.module.scss\";\nimport { OverlayContentSuspendWatcher } from \"@/lib/controller/overlay/OverlayContentSuspendWatcher\";\nimport { ContextMenuSelectAll } from \"@/components/ContextMenu/components/ContextMenuSelectAll/ContextMenuSelectAll\";\n\nexport interface ContextMenuProps\n extends\n Omit<PopoverProps, \"withTip\" | \"modality\">,\n Pick<\n Aria.MenuProps<MenuItemProps>,\n | \"onAction\"\n | \"selectedKeys\"\n | \"defaultSelectedKeys\"\n | \"onSelectionChange\"\n | \"disabledKeys\"\n | \"renderEmptyState\"\n >,\n FlowComponentProps {\n /** The type of selection that is allowed in the context menu. */\n selectionMode?: ContextMenuSelectionMode;\n /** Sets the context menu to a fixed width. */\n width?: string | number;\n /**\n * Adds a first entry that selects or deselects all items at once. Only\n * applies to `selectionMode=\"multiple\"`.\n */\n showSelectAll?: boolean;\n}\n\n/** @flr-generate all */\nexport const ContextMenu = flowComponent(\"ContextMenu\", (props) => {\n const {\n children,\n onAction,\n selectionMode,\n selectedKeys,\n defaultSelectedKeys,\n disabledKeys,\n onSelectionChange,\n renderEmptyState,\n showSelectAll,\n ref,\n controller: overlayControllerFromProps,\n ...rest\n } = props;\n\n const overlayControllerFromContext = useOverlayController(\"ContextMenu\", {\n reuseControllerFromContext: true,\n });\n\n const overlayController =\n overlayControllerFromProps ?? overlayControllerFromContext;\n\n const selectionVariant = getMenuItemSelectionVariant(selectionMode);\n\n const selectAll = showSelectAll && selectionMode === \"multiple\" && (\n <ContextMenuSelectAll />\n );\n\n const propsContext: PropsContext = {\n MenuItem: {\n selectionVariant,\n Avatar: {\n size: \"l\",\n },\n },\n\n Section: {\n MenuItem: {\n Avatar: {\n size: \"l\",\n },\n },\n renderContextMenuSection: true,\n },\n\n ContextMenuSection: {\n MenuItem: {\n Avatar: {\n size: \"l\",\n },\n },\n },\n };\n\n return (\n <OverlayContentSuspendWatcher overlayController={overlayController}>\n <Popover\n {...rest}\n className={styles.popover}\n controller={overlayController}\n isDialogContent={false}\n >\n <OverlayContextProvider\n type=\"ContextMenu\"\n controller={overlayController}\n >\n <ContextMenuContentView\n className={styles.contextMenu}\n onAction={onAction}\n selectionMode={getAriaSelectionMode(selectionMode)}\n selectedKeys={selectedKeys}\n defaultSelectedKeys={defaultSelectedKeys}\n disabledKeys={disabledKeys}\n onSelectionChange={onSelectionChange}\n renderEmptyState={renderEmptyState}\n ref={ref}\n >\n {selectAll}\n <PropsContextProvider props={propsContext}>\n <Action closeOverlay={closesOnSelect(selectionMode)}>\n {children}\n </Action>\n </PropsContextProvider>\n </ContextMenuContentView>\n </OverlayContextProvider>\n </Popover>\n </OverlayContentSuspendWatcher>\n );\n});\n\nexport default ContextMenu;\n"],"mappings":";;;;;;;;;;;;;;;;AA8CA,IAAa,cAAc,cAAc,gBAAgB,UAAU;CACjE,MAAM,EACJ,UACA,UACA,eACA,cACA,qBACA,cACA,mBACA,kBACA,eACA,KACA,YAAY,4BACZ,GAAG,SACD;CAEJ,MAAM,+BAA+B,qBAAqB,eAAe,EACvE,4BAA4B,KAC9B,CAAC;CAED,MAAM,oBACJ,8BAA8B;CAEhC,MAAM,mBAAmB,4BAA4B,aAAa;CAElE,MAAM,YAAY,iBAAiB,kBAAkB,cACnD,oBAAC,sBAAD,CAAuB,CAAA;CAGzB,MAAM,eAA6B;EACjC,UAAU;GACR;GACA,QAAQ,EACN,MAAM,IACR;EACF;EAEA,SAAS;GACP,UAAU,EACR,QAAQ,EACN,MAAM,IACR,EACF;GACA,0BAA0B;EAC5B;EAEA,oBAAoB,EAClB,UAAU,EACR,QAAQ,EACN,MAAM,IACR,EACF,EACF;CACF;CAEA,OACE,oBAAC,8BAAD;EAAiD;EAC/C,UAAA,oBAAC,SAAD;GACE,GAAI;GACJ,WAAW,2BAAO;GAClB,YAAY;GACZ,iBAAiB;GAEjB,UAAA,oBAAC,wBAAD;IACE,MAAK;IACL,YAAY;IAEZ,UAAA,qBAAC,wBAAD;KACE,WAAW,2BAAO;KACR;KACV,eAAe,qBAAqB,aAAa;KACnC;KACO;KACP;KACK;KACD;KACb;KATP,UAAA,CAWG,WACD,oBAAC,sBAAD;MAAsB,OAAO;MAC3B,UAAA,oBAAC,QAAD;OAAQ,cAAc,eAAe,aAAa;OAC/C;MACK,CAAA;KACY,CAAA,CACA;;GACF,CAAA;EACjB,CAAA;CACmB,CAAA;AAElC,CAAC"}
@@ -4,12 +4,14 @@
4
4
  var contextMenu = "flow--context-menu";
5
5
  var section = "flow--context-menu--section";
6
6
  var popover = "flow--context-menu--popover";
7
+ var selectAll = "flow--context-menu--select-all";
7
8
  var ContextMenu_module_default = {
8
9
  contextMenu,
9
10
  section,
10
- popover
11
+ popover,
12
+ selectAll
11
13
  };
12
14
  //#endregion
13
- export { contextMenu, ContextMenu_module_default as default, popover, section };
15
+ export { contextMenu, ContextMenu_module_default as default, popover, section, selectAll };
14
16
 
15
17
  //# sourceMappingURL=ContextMenu.module.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"ContextMenu.module.mjs","names":[],"sources":["../../../../../../../src/components/ContextMenu/ContextMenu.module.scss"],"sourcesContent":[".contextMenu {\n display: flex;\n flex-direction: column;\n row-gap: var(--menu--item-to-item-spacing);\n padding: var(--popover--padding--s);\n\n // A consumer-placed `Separator`. Its `flow--separator` class also covers the\n // vertical `<div>` variant, which must not get this block margin.\n // stylelint-disable-next-line selector-max-type -- see above\n > hr {\n margin-block: var(--popover--spacing);\n }\n\n &:focus-visible {\n outline: none;\n }\n}\n\n.section {\n display: flex;\n flex-direction: column;\n row-gap: var(--menu--item-to-item-spacing);\n\n &:has(:global(.flow--avatar)) {\n align-items: center;\n padding-top: var(--menu--item-to-item-spacing);\n }\n}\n\n.popover {\n max-width: fit-content;\n}\n"],"mappings":""}
1
+ {"version":3,"file":"ContextMenu.module.mjs","names":[],"sources":["../../../../../../../src/components/ContextMenu/ContextMenu.module.scss"],"sourcesContent":[".contextMenu {\n display: flex;\n flex-direction: column;\n row-gap: var(--menu--item-to-item-spacing);\n padding: var(--popover--padding--s);\n\n // A consumer-placed `Separator`. Its `flow--separator` class also covers the\n // vertical `<div>` variant, which must not get this block margin.\n // stylelint-disable-next-line selector-max-type -- see above\n > hr {\n margin-block: var(--popover--spacing);\n }\n\n &:focus-visible {\n outline: none;\n }\n}\n\n.section {\n display: flex;\n flex-direction: column;\n row-gap: var(--menu--item-to-item-spacing);\n\n &:has(:global(.flow--avatar)) {\n align-items: center;\n padding-top: var(--menu--item-to-item-spacing);\n }\n}\n\n.popover {\n max-width: fit-content;\n}\n\n.selectAll {\n margin-block-end: var(--menu--select-all-to-item-spacing);\n}\n"],"mappings":""}
@@ -0,0 +1,86 @@
1
+ "use client"
2
+ /* */
3
+ import { useLocalizedStringFormatter } from "../../../TranslationProvider/useLocalizedStringFormatter.mjs";
4
+ import { Text } from "../../../Text/Text.mjs";
5
+ import MenuItem_module_default from "../../../MenuItem/MenuItem.module.mjs";
6
+ import { MenuItemContent } from "../../../MenuItem/components/MenuItemContent/MenuItemContent.mjs";
7
+ import ContextMenu_module_default from "../../ContextMenu.module.mjs";
8
+ import __locale_default from "../../../../../../../_virtual/_13.locale.mjs";
9
+ import { useContext, useRef } from "react";
10
+ import { jsx } from "react/jsx-runtime";
11
+ import * as Aria from "react-aria-components";
12
+ //#region src/components/ContextMenu/components/ContextMenuSelectAll/ContextMenuSelectAll.tsx
13
+ var selectAllSectionId = "flow--context-menu--select-all";
14
+ /**
15
+ * Keys that share the menu's selection: enabled items at the top level and in
16
+ * sections without a selection mode of their own.
17
+ */
18
+ var getSelectableKeys = (state) => {
19
+ const keys = [];
20
+ const collect = (nodes) => {
21
+ for (const node of nodes) if (node.type === "item") {
22
+ if (!state.selectionManager.isDisabled(node.key)) keys.push(node.key);
23
+ } else if (node.type === "section" && node.key !== selectAllSectionId && node.props?.selectionMode === void 0) collect(state.collection.getChildren?.(node.key) ?? node.childNodes);
24
+ };
25
+ collect(state.collection);
26
+ return keys;
27
+ };
28
+ /**
29
+ * Rendered by the visible menu item. The collection renders the item's element
30
+ * a second time outside the menu, where `MenuStateContext` is missing.
31
+ */
32
+ var SelectAllMenuItemContent = (props) => {
33
+ const { selectAll, ...renderProps } = props;
34
+ const state = useContext(Aria.MenuStateContext);
35
+ const formatter = useLocalizedStringFormatter(__locale_default, "ContextMenu");
36
+ const selectionManager = state?.selectionManager;
37
+ const keys = state ? getSelectableKeys(state) : [];
38
+ const selectedCount = keys.filter((key) => selectionManager?.isSelected(key)).length;
39
+ const isEverySelected = keys.length > 0 && selectedCount === keys.length;
40
+ const isIndeterminate = selectedCount > 0 && !isEverySelected;
41
+ selectAll.current = {
42
+ isEverySelected,
43
+ toggle: () => {
44
+ if (!selectionManager) return;
45
+ const keySet = new Set(keys);
46
+ const otherSelectedKeys = [...selectionManager.selectedKeys].filter((key) => !keySet.has(key));
47
+ selectionManager.setSelectedKeys(isEverySelected ? otherSelectedKeys : [...otherSelectedKeys, ...keys]);
48
+ }
49
+ };
50
+ return /* @__PURE__ */ jsx(MenuItemContent, {
51
+ ...renderProps,
52
+ selectionMode: "multiple",
53
+ isSelected: isEverySelected,
54
+ isIndeterminate,
55
+ children: /* @__PURE__ */ jsx(Text, { children: formatter.format(isEverySelected ? "deselectAll" : "selectAll") })
56
+ });
57
+ };
58
+ var SelectAllMenuItem = () => {
59
+ const selectAll = useRef(void 0);
60
+ const formatter = useLocalizedStringFormatter(__locale_default, "ContextMenu");
61
+ return /* @__PURE__ */ jsx(Aria.MenuItem, {
62
+ id: `${selectAllSectionId}--item`,
63
+ textValue: formatter.format("selectAll"),
64
+ shouldCloseOnSelect: false,
65
+ onAction: () => selectAll.current?.toggle(),
66
+ className: MenuItem_module_default.menuItem,
67
+ children: (renderProps) => /* @__PURE__ */ jsx(SelectAllMenuItemContent, {
68
+ ...renderProps,
69
+ selectAll
70
+ })
71
+ });
72
+ };
73
+ /**
74
+ * The entry lives in a section without selection, so pressing it runs its
75
+ * action only and sets the whole selection in one change.
76
+ */
77
+ var ContextMenuSelectAll = () => /* @__PURE__ */ jsx(Aria.MenuSection, {
78
+ id: selectAllSectionId,
79
+ selectionMode: "none",
80
+ className: ContextMenu_module_default.selectAll,
81
+ children: /* @__PURE__ */ jsx(SelectAllMenuItem, {})
82
+ });
83
+ //#endregion
84
+ export { ContextMenuSelectAll, ContextMenuSelectAll as default };
85
+
86
+ //# sourceMappingURL=ContextMenuSelectAll.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ContextMenuSelectAll.mjs","names":[],"sources":["../../../../../../../../../src/components/ContextMenu/components/ContextMenuSelectAll/ContextMenuSelectAll.tsx"],"sourcesContent":["import * as Aria from \"react-aria-components\";\nimport { useContext, useRef, type FC } from \"react\";\nimport type { Key, Node } from \"@react-types/shared\";\nimport type { TreeState } from \"react-stately\";\nimport { MenuItemContent } from \"@/components/MenuItem/components/MenuItemContent/MenuItemContent\";\nimport menuItemStyles from \"@/components/MenuItem/MenuItem.module.scss\";\nimport { Text } from \"@/components/Text\";\nimport { useLocalizedStringFormatter } from \"@/components/TranslationProvider/useLocalizedStringFormatter\";\nimport locales from \"../../locales/*.locale.json\";\nimport styles from \"../../ContextMenu.module.scss\";\n\nconst selectAllSectionId = \"flow--context-menu--select-all\";\n\n/**\n * Keys that share the menu's selection: enabled items at the top level and in\n * sections without a selection mode of their own.\n */\nconst getSelectableKeys = (state: TreeState<unknown>): Key[] => {\n const keys: Key[] = [];\n\n const collect = (nodes: Iterable<Node<unknown>>) => {\n for (const node of nodes) {\n if (node.type === \"item\") {\n if (!state.selectionManager.isDisabled(node.key)) {\n keys.push(node.key);\n }\n } else if (\n node.type === \"section\" &&\n node.key !== selectAllSectionId &&\n node.props?.selectionMode === undefined\n ) {\n collect(state.collection.getChildren?.(node.key) ?? node.childNodes);\n }\n }\n };\n\n collect(state.collection);\n return keys;\n};\n\ninterface SelectAll {\n isEverySelected: boolean;\n toggle: () => void;\n}\n\n/**\n * Rendered by the visible menu item. The collection renders the item's element\n * a second time outside the menu, where `MenuStateContext` is missing.\n */\nconst SelectAllMenuItemContent: FC<\n Aria.MenuItemRenderProps & { selectAll: { current?: SelectAll } }\n> = (props) => {\n const { selectAll, ...renderProps } = props;\n const state = useContext(Aria.MenuStateContext);\n const formatter = useLocalizedStringFormatter(locales, \"ContextMenu\");\n\n const selectionManager = state?.selectionManager;\n const keys = state ? getSelectableKeys(state) : [];\n const selectedCount = keys.filter((key) =>\n selectionManager?.isSelected(key),\n ).length;\n const isEverySelected = keys.length > 0 && selectedCount === keys.length;\n const isIndeterminate = selectedCount > 0 && !isEverySelected;\n\n selectAll.current = {\n isEverySelected,\n toggle: () => {\n if (!selectionManager) {\n return;\n }\n const keySet = new Set(keys);\n const otherSelectedKeys = [...selectionManager.selectedKeys].filter(\n (key) => !keySet.has(key),\n );\n selectionManager.setSelectedKeys(\n isEverySelected ? otherSelectedKeys : [...otherSelectedKeys, ...keys],\n );\n },\n };\n\n return (\n <MenuItemContent\n {...renderProps}\n selectionMode=\"multiple\"\n isSelected={isEverySelected}\n isIndeterminate={isIndeterminate}\n >\n <Text>\n {formatter.format(isEverySelected ? \"deselectAll\" : \"selectAll\")}\n </Text>\n </MenuItemContent>\n );\n};\n\nconst SelectAllMenuItem: FC = () => {\n const selectAll = useRef<SelectAll>(undefined);\n const formatter = useLocalizedStringFormatter(locales, \"ContextMenu\");\n\n return (\n <Aria.MenuItem\n id={`${selectAllSectionId}--item`}\n textValue={formatter.format(\"selectAll\")}\n shouldCloseOnSelect={false}\n onAction={() => selectAll.current?.toggle()}\n className={menuItemStyles.menuItem}\n >\n {(renderProps) => (\n <SelectAllMenuItemContent {...renderProps} selectAll={selectAll} />\n )}\n </Aria.MenuItem>\n );\n};\n\n/**\n * The entry lives in a section without selection, so pressing it runs its\n * action only and sets the whole selection in one change.\n */\nexport const ContextMenuSelectAll: FC = () => (\n <Aria.MenuSection\n id={selectAllSectionId}\n selectionMode=\"none\"\n className={styles.selectAll}\n >\n <SelectAllMenuItem />\n </Aria.MenuSection>\n);\n\nexport default ContextMenuSelectAll;\n"],"mappings":";;;;;;;;;;;;AAWA,IAAM,qBAAqB;;;;;AAM3B,IAAM,qBAAqB,UAAqC;CAC9D,MAAM,OAAc,CAAC;CAErB,MAAM,WAAW,UAAmC;EAClD,KAAK,MAAM,QAAQ,OACjB,IAAI,KAAK,SAAS,QACZ;OAAA,CAAC,MAAM,iBAAiB,WAAW,KAAK,GAAG,GAC7C,KAAK,KAAK,KAAK,GAAG;EAAA,OAEf,IACL,KAAK,SAAS,aACd,KAAK,QAAQ,sBACb,KAAK,OAAO,kBAAkB,KAAA,GAE9B,QAAQ,MAAM,WAAW,cAAc,KAAK,GAAG,KAAK,KAAK,UAAU;CAGzE;CAEA,QAAQ,MAAM,UAAU;CACxB,OAAO;AACT;;;;;AAWA,IAAM,4BAED,UAAU;CACb,MAAM,EAAE,WAAW,GAAG,gBAAgB;CACtC,MAAM,QAAQ,WAAW,KAAK,gBAAgB;CAC9C,MAAM,YAAY,4BAA4B,kBAAS,aAAa;CAEpE,MAAM,mBAAmB,OAAO;CAChC,MAAM,OAAO,QAAQ,kBAAkB,KAAK,IAAI,CAAC;CACjD,MAAM,gBAAgB,KAAK,QAAQ,QACjC,kBAAkB,WAAW,GAAG,CAClC,CAAC,CAAC;CACF,MAAM,kBAAkB,KAAK,SAAS,KAAK,kBAAkB,KAAK;CAClE,MAAM,kBAAkB,gBAAgB,KAAK,CAAC;CAE9C,UAAU,UAAU;EAClB;EACA,cAAc;GACZ,IAAI,CAAC,kBACH;GAEF,MAAM,SAAS,IAAI,IAAI,IAAI;GAC3B,MAAM,oBAAoB,CAAC,GAAG,iBAAiB,YAAY,CAAC,CAAC,QAC1D,QAAQ,CAAC,OAAO,IAAI,GAAG,CAC1B;GACA,iBAAiB,gBACf,kBAAkB,oBAAoB,CAAC,GAAG,mBAAmB,GAAG,IAAI,CACtE;EACF;CACF;CAEA,OACE,oBAAC,iBAAD;EACE,GAAI;EACJ,eAAc;EACd,YAAY;EACK;EAEjB,UAAA,oBAAC,MAAD,EAAA,UACG,UAAU,OAAO,kBAAkB,gBAAgB,WAAW,EAC3D,CAAA;CACS,CAAA;AAErB;AAEA,IAAM,0BAA8B;CAClC,MAAM,YAAY,OAAkB,KAAA,CAAS;CAC7C,MAAM,YAAY,4BAA4B,kBAAS,aAAa;CAEpE,OACE,oBAAC,KAAK,UAAN;EACE,IAAI,GAAG,mBAAmB;EAC1B,WAAW,UAAU,OAAO,WAAW;EACvC,qBAAqB;EACrB,gBAAgB,UAAU,SAAS,OAAO;EAC1C,WAAW,wBAAe;EAExB,WAAA,gBACA,oBAAC,0BAAD;GAA0B,GAAI;GAAwB;EAAY,CAAA;CAEvD,CAAA;AAEnB;;;;;AAMA,IAAa,6BACX,oBAAC,KAAK,aAAN;CACE,IAAI;CACJ,eAAc;CACd,WAAW,2BAAO;CAElB,UAAA,oBAAC,mBAAD,CAAoB,CAAA;AACJ,CAAA"}
@@ -1,7 +1,7 @@
1
1
  "use client"
2
2
  /* */
3
3
  import { useLocalizedStringFormatter } from "../TranslationProvider/useLocalizedStringFormatter.mjs";
4
- import __locale_default from "../../../../../_virtual/_13.locale.mjs";
4
+ import __locale_default from "../../../../../_virtual/_14.locale.mjs";
5
5
  import OptionView from "../../views/OptionView.mjs";
6
6
  import { useMemo } from "react";
7
7
  import { jsx } from "react/jsx-runtime";
@@ -3,7 +3,7 @@
3
3
  import { IconClose } from "../../../Icon/components/icons/IconClose.mjs";
4
4
  import { useLocalizedStringFormatter } from "../../../TranslationProvider/useLocalizedStringFormatter.mjs";
5
5
  import { Button } from "../../../Button/Button.mjs";
6
- import __locale_default from "../../../../../../../_virtual/_15.locale.mjs";
6
+ import __locale_default from "../../../../../../../_virtual/_16.locale.mjs";
7
7
  import { jsx } from "react/jsx-runtime";
8
8
  //#region src/components/FileCard/components/DeleteButton/DeleteButton.tsx
9
9
  var DeleteButton = (props) => {
@@ -7,7 +7,7 @@ import { IllustratedMessage } from "../IllustratedMessage/IllustratedMessage.mjs
7
7
  import ImageCropper_module_default from "./ImageCropper.module.mjs";
8
8
  import { Slider } from "../Slider/Slider.mjs";
9
9
  import { getCroppedImageFile } from "./lib/getCroppedImageFile.mjs";
10
- import __locale_default from "../../../../../_virtual/_19.locale.mjs";
10
+ import __locale_default from "../../../../../_virtual/_20.locale.mjs";
11
11
  import { useImageSrc } from "../../lib/hooks/useImageSrc.mjs";
12
12
  import clsx from "clsx";
13
13
  import { useEffect, useRef, useState } from "react";
@@ -2,7 +2,7 @@
2
2
  /* */
3
3
  import { flowComponent } from "../../lib/componentFactory/flowComponent.mjs";
4
4
  import { useLocalizedStringFormatter as useLocalizedStringFormatter$1 } from "../TranslationProvider/useLocalizedStringFormatter.mjs";
5
- import __locale_default from "../../../../../_virtual/_30.locale.mjs";
5
+ import __locale_default from "../../../../../_virtual/_31.locale.mjs";
6
6
  import Kbd_module_default from "./Kbd.module.mjs";
7
7
  import clsx from "clsx";
8
8
  import { Fragment } from "react";
@@ -15,6 +15,8 @@ import * as Aria from "react-aria-components";
15
15
  /** @flr-generate all */
16
16
  var Label = flowComponent("Label", (props) => {
17
17
  const { children, className, optional, isDisabled, ref, unstyled = false, ...rest } = props;
18
+ const [labelProps, labelRef] = Aria.useContextProps(rest, ref, Aria.LabelContext);
19
+ const { id, ...rootProps } = labelProps;
18
20
  const stringFormatter = useLocalizedStringFormatter(__locale_default, "Label");
19
21
  const rootClassName = unstyled ? className : clsx(Label_module_default.label, isDisabled && Label_module_default.disabled, className);
20
22
  const optionalMarker = /* @__PURE__ */ jsx("span", {
@@ -42,31 +44,37 @@ var Label = flowComponent("Label", (props) => {
42
44
  };
43
45
  return /* @__PURE__ */ jsx(PropsContextProvider, {
44
46
  props: propsContext,
45
- children: /* @__PURE__ */ jsxs(Aria.Label, {
46
- ...rest,
47
- className: rootClassName,
48
- ref,
49
- children: [
50
- children,
51
- optional && optionalMarker,
52
- /* @__PURE__ */ jsx(UiComponentTunnelExit, {
53
- id: "contextualHelp",
54
- component: "Label",
55
- children: (children) => {
56
- if (React.Children.count(children) >= 1) return children;
57
- }
58
- }),
59
- /* @__PURE__ */ jsx(UiComponentTunnelExit, {
60
- id: "right",
61
- component: "Label",
62
- children: (children) => {
63
- if (React.Children.count(children) >= 1) return /* @__PURE__ */ jsx("div", {
64
- className: Label_module_default.right,
65
- children
66
- });
67
- }
68
- })
69
- ]
47
+ children: /* @__PURE__ */ jsx(Aria.LabelContext.Provider, {
48
+ value: null,
49
+ children: /* @__PURE__ */ jsxs(Aria.Label, {
50
+ ...rootProps,
51
+ className: rootClassName,
52
+ ref: labelRef,
53
+ children: [
54
+ /* @__PURE__ */ jsxs("span", {
55
+ id,
56
+ className: Label_module_default.text,
57
+ children: [children, optional && optionalMarker]
58
+ }),
59
+ /* @__PURE__ */ jsx(UiComponentTunnelExit, {
60
+ id: "contextualHelp",
61
+ component: "Label",
62
+ children: (children) => {
63
+ if (React.Children.count(children) >= 1) return children;
64
+ }
65
+ }),
66
+ /* @__PURE__ */ jsx(UiComponentTunnelExit, {
67
+ id: "right",
68
+ component: "Label",
69
+ children: (children) => {
70
+ if (React.Children.count(children) >= 1) return /* @__PURE__ */ jsx("div", {
71
+ className: Label_module_default.right,
72
+ children
73
+ });
74
+ }
75
+ })
76
+ ]
77
+ })
70
78
  })
71
79
  });
72
80
  });
@@ -1 +1 @@
1
- {"version":3,"file":"Label.mjs","names":[],"sources":["../../../../../../../src/components/Label/Label.tsx"],"sourcesContent":["import type { PropsWithChildren } from \"react\";\nimport React from \"react\";\nimport styles from \"./Label.module.scss\";\nimport * as Aria from \"react-aria-components\";\nimport clsx from \"clsx\";\nimport {\n overlayTriggersTunneledTo,\n type PropsContext,\n PropsContextProvider,\n} from \"@/lib/propsContext\";\nimport { useLocalizedStringFormatter } from \"@/components/TranslationProvider/useLocalizedStringFormatter\";\nimport locales from \"./locales/*.locale.json\";\nimport type { FlowComponentProps } from \"@/lib/componentFactory/flowComponent\";\nimport { flowComponent } from \"@/lib/componentFactory/flowComponent\";\nimport { UiComponentTunnelExit } from \"@/components/UiComponentTunnel/UiComponentTunnelExit\";\n\nexport interface LabelProps\n extends\n PropsWithChildren<Omit<Aria.LabelProps, \"children\">>,\n FlowComponentProps<HTMLLabelElement> {\n /** Whether the label should show an \"optional\" indicator. */\n optional?: boolean;\n /** Whether the label should be displayed as disabled. */\n isDisabled?: boolean;\n /** @internal */\n unstyled?: boolean;\n}\n\n/** @flr-generate all */\nexport const Label = flowComponent(\"Label\", (props) => {\n const {\n children,\n className,\n optional,\n isDisabled,\n ref,\n unstyled = false,\n ...rest\n } = props;\n\n const stringFormatter = useLocalizedStringFormatter(locales, \"Label\");\n\n const rootClassName = unstyled\n ? className\n : clsx(styles.label, isDisabled && styles.disabled, className);\n\n const optionalMarker = (\n <span className={styles.optional}>\n {stringFormatter.format(\"optional\")}\n </span>\n );\n\n const rightTunnel = {\n id: \"right\",\n component: \"Label\",\n } as const;\n\n const propsContext: PropsContext = {\n ...overlayTriggersTunneledTo(rightTunnel),\n // The contextual help sits next to the label text, not with the actions.\n ContextualHelpTrigger: {\n tunnel: {\n id: \"contextualHelp\",\n component: \"Label\",\n },\n },\n Button: {\n tunnel: rightTunnel,\n size: \"s\",\n },\n Action: {\n tunnel: rightTunnel,\n Button: {\n tunnel: null,\n },\n },\n };\n\n return (\n <PropsContextProvider props={propsContext}>\n <Aria.Label {...rest} className={rootClassName} ref={ref}>\n {children}\n {optional && optionalMarker}\n <UiComponentTunnelExit id=\"contextualHelp\" component=\"Label\">\n {(children) => {\n if (React.Children.count(children) >= 1) {\n return children;\n }\n\n return undefined;\n }}\n </UiComponentTunnelExit>\n <UiComponentTunnelExit id=\"right\" component=\"Label\">\n {(children) => {\n if (React.Children.count(children) >= 1) {\n return <div className={styles.right}>{children}</div>;\n }\n\n return undefined;\n }}\n </UiComponentTunnelExit>\n </Aria.Label>\n </PropsContextProvider>\n );\n});\n\nexport default Label;\n"],"mappings":";;;;;;;;;;;;;;;AA6BA,IAAa,QAAQ,cAAc,UAAU,UAAU;CACrD,MAAM,EACJ,UACA,WACA,UACA,YACA,KACA,WAAW,OACX,GAAG,SACD;CAEJ,MAAM,kBAAkB,4BAA4B,kBAAS,OAAO;CAEpE,MAAM,gBAAgB,WAClB,YACA,KAAK,qBAAO,OAAO,cAAc,qBAAO,UAAU,SAAS;CAE/D,MAAM,iBACJ,oBAAC,QAAD;EAAM,WAAW,qBAAO;EACrB,UAAA,gBAAgB,OAAO,UAAU;CAC9B,CAAA;CAGR,MAAM,cAAc;EAClB,IAAI;EACJ,WAAW;CACb;CAEA,MAAM,eAA6B;EACjC,GAAG,0BAA0B,WAAW;EAExC,uBAAuB,EACrB,QAAQ;GACN,IAAI;GACJ,WAAW;EACb,EACF;EACA,QAAQ;GACN,QAAQ;GACR,MAAM;EACR;EACA,QAAQ;GACN,QAAQ;GACR,QAAQ,EACN,QAAQ,KACV;EACF;CACF;CAEA,OACE,oBAAC,sBAAD;EAAsB,OAAO;EAC3B,UAAA,qBAAC,KAAK,OAAN;GAAY,GAAI;GAAM,WAAW;GAAoB;GAArD,UAAA;IACG;IACA,YAAY;IACb,oBAAC,uBAAD;KAAuB,IAAG;KAAiB,WAAU;KACjD,WAAA,aAAa;MACb,IAAI,MAAM,SAAS,MAAM,QAAQ,KAAK,GACpC,OAAO;KAIX;IACqB,CAAA;IACvB,oBAAC,uBAAD;KAAuB,IAAG;KAAQ,WAAU;KACxC,WAAA,aAAa;MACb,IAAI,MAAM,SAAS,MAAM,QAAQ,KAAK,GACpC,OAAO,oBAAC,OAAD;OAAK,WAAW,qBAAO;OAAQ;MAAc,CAAA;KAIxD;IACqB,CAAA;GACb;;CACQ,CAAA;AAE1B,CAAC"}
1
+ {"version":3,"file":"Label.mjs","names":[],"sources":["../../../../../../../src/components/Label/Label.tsx"],"sourcesContent":["import type { PropsWithChildren } from \"react\";\nimport React from \"react\";\nimport styles from \"./Label.module.scss\";\nimport * as Aria from \"react-aria-components\";\nimport clsx from \"clsx\";\nimport {\n overlayTriggersTunneledTo,\n type PropsContext,\n PropsContextProvider,\n} from \"@/lib/propsContext\";\nimport { useLocalizedStringFormatter } from \"@/components/TranslationProvider/useLocalizedStringFormatter\";\nimport locales from \"./locales/*.locale.json\";\nimport type { FlowComponentProps } from \"@/lib/componentFactory/flowComponent\";\nimport { flowComponent } from \"@/lib/componentFactory/flowComponent\";\nimport { UiComponentTunnelExit } from \"@/components/UiComponentTunnel/UiComponentTunnelExit\";\n\nexport interface LabelProps\n extends\n PropsWithChildren<Omit<Aria.LabelProps, \"children\">>,\n FlowComponentProps<HTMLLabelElement> {\n /** Whether the label should show an \"optional\" indicator. */\n optional?: boolean;\n /** Whether the label should be displayed as disabled. */\n isDisabled?: boolean;\n /** @internal */\n unstyled?: boolean;\n}\n\n/** @flr-generate all */\nexport const Label = flowComponent(\"Label\", (props) => {\n const {\n children,\n className,\n optional,\n isDisabled,\n ref,\n unstyled = false,\n ...rest\n } = props;\n\n const [labelProps, labelRef] = Aria.useContextProps(\n rest,\n ref,\n Aria.LabelContext,\n );\n const { id, ...rootProps } = labelProps;\n\n const stringFormatter = useLocalizedStringFormatter(locales, \"Label\");\n\n const rootClassName = unstyled\n ? className\n : clsx(styles.label, isDisabled && styles.disabled, className);\n\n const optionalMarker = (\n <span className={styles.optional}>\n {stringFormatter.format(\"optional\")}\n </span>\n );\n\n const rightTunnel = {\n id: \"right\",\n component: \"Label\",\n } as const;\n\n const propsContext: PropsContext = {\n ...overlayTriggersTunneledTo(rightTunnel),\n // The contextual help sits next to the label text, not with the actions.\n ContextualHelpTrigger: {\n tunnel: {\n id: \"contextualHelp\",\n component: \"Label\",\n },\n },\n Button: {\n tunnel: rightTunnel,\n size: \"s\",\n },\n Action: {\n tunnel: rightTunnel,\n Button: {\n tunnel: null,\n },\n },\n };\n\n return (\n <PropsContextProvider props={propsContext}>\n {/* The context is already merged into `labelProps` above. */}\n <Aria.LabelContext.Provider value={null}>\n <Aria.Label {...rootProps} className={rootClassName} ref={labelRef}>\n {/*\n * Fields point `aria-labelledby` at the label's id, and the name\n * computation takes every descendant's name, buttons included. The\n * id sits on this span so the tunnelled buttons stay out of it.\n */}\n <span id={id} className={styles.text}>\n {children}\n {optional && optionalMarker}\n </span>\n <UiComponentTunnelExit id=\"contextualHelp\" component=\"Label\">\n {(children) => {\n if (React.Children.count(children) >= 1) {\n return children;\n }\n\n return undefined;\n }}\n </UiComponentTunnelExit>\n <UiComponentTunnelExit id=\"right\" component=\"Label\">\n {(children) => {\n if (React.Children.count(children) >= 1) {\n return <div className={styles.right}>{children}</div>;\n }\n\n return undefined;\n }}\n </UiComponentTunnelExit>\n </Aria.Label>\n </Aria.LabelContext.Provider>\n </PropsContextProvider>\n );\n});\n\nexport default Label;\n"],"mappings":";;;;;;;;;;;;;;;AA6BA,IAAa,QAAQ,cAAc,UAAU,UAAU;CACrD,MAAM,EACJ,UACA,WACA,UACA,YACA,KACA,WAAW,OACX,GAAG,SACD;CAEJ,MAAM,CAAC,YAAY,YAAY,KAAK,gBAClC,MACA,KACA,KAAK,YACP;CACA,MAAM,EAAE,IAAI,GAAG,cAAc;CAE7B,MAAM,kBAAkB,4BAA4B,kBAAS,OAAO;CAEpE,MAAM,gBAAgB,WAClB,YACA,KAAK,qBAAO,OAAO,cAAc,qBAAO,UAAU,SAAS;CAE/D,MAAM,iBACJ,oBAAC,QAAD;EAAM,WAAW,qBAAO;EACrB,UAAA,gBAAgB,OAAO,UAAU;CAC9B,CAAA;CAGR,MAAM,cAAc;EAClB,IAAI;EACJ,WAAW;CACb;CAEA,MAAM,eAA6B;EACjC,GAAG,0BAA0B,WAAW;EAExC,uBAAuB,EACrB,QAAQ;GACN,IAAI;GACJ,WAAW;EACb,EACF;EACA,QAAQ;GACN,QAAQ;GACR,MAAM;EACR;EACA,QAAQ;GACN,QAAQ;GACR,QAAQ,EACN,QAAQ,KACV;EACF;CACF;CAEA,OACE,oBAAC,sBAAD;EAAsB,OAAO;EAE3B,UAAA,oBAAC,KAAK,aAAa,UAAnB;GAA4B,OAAO;GACjC,UAAA,qBAAC,KAAK,OAAN;IAAY,GAAI;IAAW,WAAW;IAAe,KAAK;IAA1D,UAAA;KAME,qBAAC,QAAD;MAAU;MAAI,WAAW,qBAAO;MAAhC,UAAA,CACG,UACA,YAAY,cACT;;KACN,oBAAC,uBAAD;MAAuB,IAAG;MAAiB,WAAU;MACjD,WAAA,aAAa;OACb,IAAI,MAAM,SAAS,MAAM,QAAQ,KAAK,GACpC,OAAO;MAIX;KACqB,CAAA;KACvB,oBAAC,uBAAD;MAAuB,IAAG;MAAQ,WAAU;MACxC,WAAA,aAAa;OACb,IAAI,MAAM,SAAS,MAAM,QAAQ,KAAK,GACpC,OAAO,oBAAC,OAAD;QAAK,WAAW,qBAAO;QAAQ;OAAc,CAAA;MAIxD;KACqB,CAAA;IACb;;EACc,CAAA;CACR,CAAA;AAE1B,CAAC"}
@@ -5,13 +5,15 @@ var label = "flow--label";
5
5
  var disabled = "flow--label--disabled";
6
6
  var optional = "flow--label--optional";
7
7
  var right = "flow--label--right";
8
+ var text = "flow--label--text";
8
9
  var Label_module_default = {
9
10
  label,
10
11
  disabled,
11
12
  optional,
12
- right
13
+ right,
14
+ text
13
15
  };
14
16
  //#endregion
15
- export { Label_module_default as default, disabled, label, optional, right };
17
+ export { Label_module_default as default, disabled, label, optional, right, text };
16
18
 
17
19
  //# sourceMappingURL=Label.module.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"Label.module.mjs","names":[],"sources":["../../../../../../../src/components/Label/Label.module.scss"],"sourcesContent":[".label {\n color: var(--label--color--default);\n font-size: var(--label--font-size);\n font-weight: var(--label--font-weight);\n display: flex;\n align-items: center;\n column-gap: var(--label--spacing);\n flex-wrap: wrap;\n\n &.disabled {\n color: var(--label--color--disabled);\n }\n\n & .optional {\n order: 0;\n }\n\n & .right {\n margin-inline-start: auto;\n }\n}\n"],"mappings":""}
1
+ {"version":3,"file":"Label.module.mjs","names":[],"sources":["../../../../../../../src/components/Label/Label.module.scss"],"sourcesContent":[".label {\n color: var(--label--color--default);\n font-size: var(--label--font-size);\n font-weight: var(--label--font-weight);\n display: flex;\n align-items: center;\n column-gap: var(--label--spacing);\n flex-wrap: wrap;\n\n &.disabled {\n color: var(--label--color--disabled);\n }\n\n & .optional {\n order: 0;\n }\n\n & .right {\n margin-inline-start: auto;\n }\n}\n\n// Carries the id only; its content stays laid out by the label.\n.text {\n display: contents;\n}\n"],"mappings":""}
@@ -7,7 +7,7 @@ import { UiComponentTunnelExit } from "../UiComponentTunnel/UiComponentTunnelExi
7
7
  import { useOverlayController } from "../../lib/controller/overlay/useOverlayController.mjs";
8
8
  import ButtonView from "../../views/ButtonView.mjs";
9
9
  import DivView from "../../views/DivView.mjs";
10
- import __locale_default from "../../../../../_virtual/_20.locale.mjs";
10
+ import __locale_default from "../../../../../_virtual/_21.locale.mjs";
11
11
  import { Overlay } from "../Overlay/Overlay.mjs";
12
12
  import LightBox_module_default from "./LightBox.module.mjs";
13
13
  import clsx from "clsx";
@@ -2,7 +2,7 @@
2
2
  /* */
3
3
  import { useLocalizedStringFormatter } from "../../../TranslationProvider/useLocalizedStringFormatter.mjs";
4
4
  import LightBoxGallery_module_default from "./LightBoxGallery.module.mjs";
5
- import __locale_default from "../../../../../../../_virtual/_20.locale.mjs";
5
+ import __locale_default from "../../../../../../../_virtual/_21.locale.mjs";
6
6
  import clsx from "clsx";
7
7
  import { jsx } from "react/jsx-runtime";
8
8
  //#region src/components/LightBox/components/LightBoxGallery/Controls.tsx
@@ -5,7 +5,7 @@ import { IconChevronLeft } from "../../../Icon/components/icons/IconChevronLeft.
5
5
  import { IconChevronRight } from "../../../Icon/components/icons/IconChevronRight.mjs";
6
6
  import { Button } from "../../../Button/Button.mjs";
7
7
  import LightBoxGallery_module_default from "./LightBoxGallery.module.mjs";
8
- import __locale_default from "../../../../../../../_virtual/_20.locale.mjs";
8
+ import __locale_default from "../../../../../../../_virtual/_21.locale.mjs";
9
9
  import { Controls } from "./Controls.mjs";
10
10
  import clsx from "clsx";
11
11
  import React, { useEffect, useRef, useState } from "react";
@@ -7,7 +7,7 @@ import { Button } from "../../../Button/Button.mjs";
7
7
  import { UiComponentTunnelExit } from "../../../UiComponentTunnel/UiComponentTunnelExit.mjs";
8
8
  import { useOverlayController } from "../../../../lib/controller/overlay/useOverlayController.mjs";
9
9
  import LightBoxGallery_module_default from "../LightBoxGallery/LightBoxGallery.module.mjs";
10
- import __locale_default from "../../../../../../../_virtual/_20.locale.mjs";
10
+ import __locale_default from "../../../../../../../_virtual/_21.locale.mjs";
11
11
  import { jsx, jsxs } from "react/jsx-runtime";
12
12
  import { useLocalizedStringFormatter } from "react-aria";
13
13
  //#region src/components/LightBox/components/LightBoxGalleryItem/LightBoxGalleryItem.tsx
@@ -3,7 +3,7 @@
3
3
  import { IconDownload } from "../../../Icon/components/icons/IconDownload.mjs";
4
4
  import { IconExternalLink } from "../../../Icon/components/icons/IconExternalLink.mjs";
5
5
  import { useLocalizedStringFormatter } from "../../../TranslationProvider/useLocalizedStringFormatter.mjs";
6
- import __locale_default from "../../../../../../../_virtual/_14.locale.mjs";
6
+ import __locale_default from "../../../../../../../_virtual/_15.locale.mjs";
7
7
  import LinkIcon_module_default from "./LinkIcon.module.mjs";
8
8
  import { Fragment, jsx, jsxs } from "react/jsx-runtime";
9
9
  //#region src/components/Link/components/LinkIcon/LinkIcon.tsx
@@ -2,7 +2,7 @@
2
2
  /* */
3
3
  import { IconSearch } from "../../../Icon/components/icons/IconSearch.mjs";
4
4
  import { useLocalizedStringFormatter } from "../../../TranslationProvider/useLocalizedStringFormatter.mjs";
5
- import __locale_default from "../../../../../../../_virtual/_16.locale.mjs";
5
+ import __locale_default from "../../../../../../../_virtual/_17.locale.mjs";
6
6
  import IllustratedMessageView from "../../../../views/IllustratedMessageView.mjs";
7
7
  import HeadingView from "../../../../views/HeadingView.mjs";
8
8
  import TextView from "../../../../views/TextView.mjs";
@@ -2,7 +2,7 @@
2
2
  /* */
3
3
  import { IconUnorderedList } from "../../../Icon/components/icons/IconUnorderedList.mjs";
4
4
  import { useLocalizedStringFormatter } from "../../../TranslationProvider/useLocalizedStringFormatter.mjs";
5
- import __locale_default from "../../../../../../../_virtual/_16.locale.mjs";
5
+ import __locale_default from "../../../../../../../_virtual/_17.locale.mjs";
6
6
  import IllustratedMessageView from "../../../../views/IllustratedMessageView.mjs";
7
7
  import HeadingView from "../../../../views/HeadingView.mjs";
8
8
  import TextView from "../../../../views/TextView.mjs";
@@ -3,7 +3,7 @@
3
3
  import { useLocalizedStringFormatter } from "../../../TranslationProvider/useLocalizedStringFormatter.mjs";
4
4
  import DivView from "../../../../views/DivView.mjs";
5
5
  import LoadingSpinnerView from "../../../../views/LoadingSpinnerView.mjs";
6
- import __locale_default from "../../../../../../../_virtual/_16.locale.mjs";
6
+ import __locale_default from "../../../../../../../_virtual/_17.locale.mjs";
7
7
  import { useList } from "../../hooks/useList.mjs";
8
8
  import Footer_module_default from "./Footer.module.mjs";
9
9
  import { PaginationInfos } from "./components/PaginationInfos/PaginationInfos.mjs";
@@ -1,7 +1,7 @@
1
1
  "use client"
2
2
  /* */
3
3
  import { useLocalizedStringFormatter } from "../../../../../TranslationProvider/useLocalizedStringFormatter.mjs";
4
- import __locale_default from "../../../../../../../../../_virtual/_16.locale.mjs";
4
+ import __locale_default from "../../../../../../../../../_virtual/_17.locale.mjs";
5
5
  import TextView from "../../../../../../views/TextView.mjs";
6
6
  import { useList } from "../../../../hooks/useList.mjs";
7
7
  import SkeletonView from "../../../../../../views/SkeletonView.mjs";
@@ -2,7 +2,7 @@
2
2
  /* */
3
3
  import { useLocalizedStringFormatter } from "../../../../../TranslationProvider/useLocalizedStringFormatter.mjs";
4
4
  import ButtonView from "../../../../../../views/ButtonView.mjs";
5
- import __locale_default from "../../../../../../../../../_virtual/_16.locale.mjs";
5
+ import __locale_default from "../../../../../../../../../_virtual/_17.locale.mjs";
6
6
  import { useList } from "../../../../hooks/useList.mjs";
7
7
  import { jsx } from "react/jsx-runtime";
8
8
  //#region src/components/List/components/Footer/components/ShowNextBatchButton/ShowNextBatchButton.tsx
@@ -6,7 +6,7 @@ import { IconUndo } from "../../../../../Icon/components/icons/IconUndo.mjs";
6
6
  import { useLocalizedStringFormatter } from "../../../../../TranslationProvider/useLocalizedStringFormatter.mjs";
7
7
  import ButtonView from "../../../../../../views/ButtonView.mjs";
8
8
  import DivView from "../../../../../../views/DivView.mjs";
9
- import __locale_default from "../../../../../../../../../_virtual/_16.locale.mjs";
9
+ import __locale_default from "../../../../../../../../../_virtual/_17.locale.mjs";
10
10
  import TextView from "../../../../../../views/TextView.mjs";
11
11
  import { useList } from "../../../../hooks/useList.mjs";
12
12
  import ActiveFilters_module_default from "./ActiveFilters.module.mjs";
@@ -5,7 +5,7 @@ import { useLocalizedStringFormatter } from "../../../../../TranslationProvider/
5
5
  import { useOverlayController } from "../../../../../../lib/controller/overlay/useOverlayController.mjs";
6
6
  import ButtonView from "../../../../../../views/ButtonView.mjs";
7
7
  import SkeletonTextView from "../../../../../../views/SkeletonTextView.mjs";
8
- import __locale_default from "../../../../../../../../../_virtual/_16.locale.mjs";
8
+ import __locale_default from "../../../../../../../../../_virtual/_17.locale.mjs";
9
9
  import HeadingView from "../../../../../../views/HeadingView.mjs";
10
10
  import TextView from "../../../../../../views/TextView.mjs";
11
11
  import { useList } from "../../../../hooks/useList.mjs";
@@ -1,15 +1,27 @@
1
1
  "use client"
2
2
  /* */
3
+ import { useLocalizedStringFormatter } from "../../../../../TranslationProvider/useLocalizedStringFormatter.mjs";
4
+ import __locale_default from "../../../../../../../../../_virtual/_17.locale.mjs";
3
5
  import CheckboxGroupView from "../../../../../../views/CheckboxGroupView.mjs";
4
6
  import CheckboxView from "../../../../../../views/CheckboxView.mjs";
7
+ import FilterAccordionCheckboxGroup_module_default from "./FilterAccordionCheckboxGroup.module.mjs";
5
8
  import "react";
6
- import { jsx } from "react/jsx-runtime";
9
+ import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
7
10
  //#region src/components/List/components/Header/components/AllFiltersModal/FilterAccordionCheckboxGroup.tsx
8
11
  var FilterAccordionCheckboxGroup = (props) => {
9
12
  const { filter } = props;
13
+ const formatter = useLocalizedStringFormatter(__locale_default, "List");
10
14
  const activeKeys = filter.values.filter((v) => v.isActive).map((v) => v.id);
11
15
  const name = filter.name ?? filter.property;
12
- return /* @__PURE__ */ jsx(CheckboxGroupView, {
16
+ const isEveryValueActive = filter.isEveryValueActive();
17
+ const selectAllCheckbox = filter.isSelectAllAvailable && /* @__PURE__ */ jsx(CheckboxView, {
18
+ className: FilterAccordionCheckboxGroup_module_default.selectAllCheckbox,
19
+ isSelected: isEveryValueActive,
20
+ isIndeterminate: filter.isActive() && !isEveryValueActive,
21
+ onChange: () => isEveryValueActive ? filter.deselectAll() : filter.selectAll(),
22
+ children: formatter.format(isEveryValueActive ? "filters.deselectAll" : "filters.selectAll")
23
+ });
24
+ return /* @__PURE__ */ jsxs(Fragment$1, { children: [selectAllCheckbox, /* @__PURE__ */ jsx(CheckboxGroupView, {
13
25
  value: activeKeys,
14
26
  m: [1, 1],
15
27
  "aria-label": name,
@@ -18,7 +30,7 @@ var FilterAccordionCheckboxGroup = (props) => {
18
30
  onPress: () => v.toggle(),
19
31
  children: v.render()
20
32
  }, v.id))
21
- });
33
+ })] });
22
34
  };
23
35
  //#endregion
24
36
  export { FilterAccordionCheckboxGroup };