@mittwald/flow-react-components 1.6.0-next.5 → 1.6.0-next.50
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/AGENTS.md +132 -88
- package/USAGE.md +7 -2
- package/dist/assets/component-index.json +1 -1
- package/dist/assets/doc-properties.json +1 -1
- package/dist/css/all-layered.css +1 -1
- package/dist/css/all.css +1 -1
- package/dist/js/_virtual/_18.locale.mjs +14 -0
- package/dist/js/default.mjs +4 -3
- package/dist/js/flr-universal.mjs +2 -1
- package/dist/js/node_modules/.pnpm/{@lezer_lr@1.4.10 → @lezer_lr@1.4.11}/node_modules/@lezer/lr/dist/index.mjs +40 -28
- package/dist/js/node_modules/.pnpm/@lezer_lr@1.4.11/node_modules/@lezer/lr/dist/index.mjs.map +1 -0
- package/dist/js/packages/components/src/components/AccentBox/AccentBox.mjs +3 -2
- package/dist/js/packages/components/src/components/AccentBox/AccentBox.mjs.map +1 -1
- package/dist/js/packages/components/src/components/Accordion/Accordion.mjs +3 -2
- package/dist/js/packages/components/src/components/Accordion/Accordion.mjs.map +1 -1
- package/dist/js/packages/components/src/components/Action/models/ActionState.mjs +2 -2
- package/dist/js/packages/components/src/components/ActionGroup/ActionGroup.mjs +3 -3
- package/dist/js/packages/components/src/components/ActionGroup/ActionGroup.mjs.map +1 -1
- package/dist/js/packages/components/src/components/Activity/Activity.mjs +1 -1
- package/dist/js/packages/components/src/components/Activity/Activity.mjs.map +1 -1
- package/dist/js/packages/components/src/components/Alert/Alert.mjs +3 -2
- package/dist/js/packages/components/src/components/Alert/Alert.mjs.map +1 -1
- package/dist/js/packages/components/src/components/AlertBadge/AlertBadge.mjs +1 -1
- package/dist/js/packages/components/src/components/AlertBadge/AlertBadge.mjs.map +1 -1
- package/dist/js/packages/components/src/components/AlertBadge/AlertBadge.module.mjs.map +1 -1
- package/dist/js/packages/components/src/components/Badge/Badge.mjs +2 -2
- package/dist/js/packages/components/src/components/Badge/Badge.mjs.map +1 -1
- package/dist/js/packages/components/src/components/Badge/Badge.module.mjs.map +1 -1
- package/dist/js/packages/components/src/components/Calendar/components/RangeCalendar/helpers/useCalendarDateRangePresets.mjs +1 -1
- package/dist/js/packages/components/src/components/CartesianChart/CartesianChart.mjs +6 -8
- package/dist/js/packages/components/src/components/CartesianChart/CartesianChart.mjs.map +1 -1
- package/dist/js/packages/components/src/components/CartesianChart/components/YAxis/YAxis.mjs +23 -5
- package/dist/js/packages/components/src/components/CartesianChart/components/YAxis/YAxis.mjs.map +1 -1
- package/dist/js/packages/components/src/components/CartesianChart/hooks/useTickLabelWidth.mjs +67 -0
- package/dist/js/packages/components/src/components/CartesianChart/hooks/useTickLabelWidth.mjs.map +1 -0
- package/dist/js/packages/components/src/components/Checkbox/Checkbox.mjs +2 -2
- package/dist/js/packages/components/src/components/Checkbox/Checkbox.mjs.map +1 -1
- package/dist/js/packages/components/src/components/CodeBlock/CodeBlock.mjs +3 -3
- package/dist/js/packages/components/src/components/CodeBlock/CodeBlock.mjs.map +1 -1
- package/dist/js/packages/components/src/components/CodeEditor/CodeEditor.mjs +41 -12
- package/dist/js/packages/components/src/components/CodeEditor/CodeEditor.mjs.map +1 -1
- package/dist/js/packages/components/src/components/CodeEditor/hooks/useCodeEditorExtensions.mjs +29 -16
- package/dist/js/packages/components/src/components/CodeEditor/hooks/useCodeEditorExtensions.mjs.map +1 -1
- package/dist/js/packages/components/src/components/CodeEditor/languages/dotEnv/dotEnv.mjs +1 -1
- package/dist/js/packages/components/src/components/ComboBox/ComboBox.mjs +3 -2
- package/dist/js/packages/components/src/components/ComboBox/ComboBox.mjs.map +1 -1
- package/dist/js/packages/components/src/components/CountryOptions/CountryOptions.mjs +5 -1
- package/dist/js/packages/components/src/components/CountryOptions/CountryOptions.mjs.map +1 -1
- package/dist/js/packages/components/src/components/DatePicker/DatePicker.mjs +2 -1
- package/dist/js/packages/components/src/components/DatePicker/DatePicker.mjs.map +1 -1
- package/dist/js/packages/components/src/components/DateRangePicker/DateRangePicker.mjs +2 -1
- package/dist/js/packages/components/src/components/DateRangePicker/DateRangePicker.mjs.map +1 -1
- package/dist/js/packages/components/src/components/DeprecationWarningProvider/DeprecationWarningProvider.mjs +40 -8
- package/dist/js/packages/components/src/components/DeprecationWarningProvider/DeprecationWarningProvider.mjs.map +1 -1
- package/dist/js/packages/components/src/components/DonutChart/DonutChart.mjs.map +1 -1
- package/dist/js/packages/components/src/components/Heading/Heading.mjs +2 -0
- package/dist/js/packages/components/src/components/Heading/Heading.mjs.map +1 -1
- package/dist/js/packages/components/src/components/Heading/Heading.module.mjs.map +1 -1
- package/dist/js/packages/components/src/components/Icon/Icon.module.mjs.map +1 -1
- package/dist/js/packages/components/src/components/IllustratedMessage/IllustratedMessage.mjs +3 -2
- package/dist/js/packages/components/src/components/IllustratedMessage/IllustratedMessage.mjs.map +1 -1
- package/dist/js/packages/components/src/components/Label/Label.mjs +0 -4
- package/dist/js/packages/components/src/components/Label/Label.mjs.map +1 -1
- package/dist/js/packages/components/src/components/Link/Link.mjs.map +1 -1
- package/dist/js/packages/components/src/components/List/List.mjs +27 -23
- package/dist/js/packages/components/src/components/List/List.mjs.map +1 -1
- package/dist/js/packages/components/src/components/List/components/Header/components/ActiveFilters/ActiveFilters.mjs +5 -2
- package/dist/js/packages/components/src/components/List/components/Header/components/ActiveFilters/ActiveFilters.mjs.map +1 -1
- package/dist/js/packages/components/src/components/List/components/Header/components/AllFiltersModal/AllFiltersModal.mjs +2 -2
- package/dist/js/packages/components/src/components/List/components/Header/components/AllFiltersModal/AllFiltersModal.mjs.map +1 -1
- package/dist/js/packages/components/src/components/List/components/Header/components/AllFiltersModal/FilterAccordionDateRange.mjs +5 -3
- package/dist/js/packages/components/src/components/List/components/Header/components/AllFiltersModal/FilterAccordionDateRange.mjs.map +1 -1
- package/dist/js/packages/components/src/components/List/components/Header/components/DateTimeRangeFields/DateTimeRangeFields.mjs +101 -0
- package/dist/js/packages/components/src/components/List/components/Header/components/DateTimeRangeFields/DateTimeRangeFields.mjs.map +1 -0
- package/dist/js/packages/components/src/components/List/components/Header/components/DateTimeRangeFields/DateTimeRangeFields.module.mjs +13 -0
- package/dist/js/packages/components/src/components/List/components/Header/components/DateTimeRangeFields/DateTimeRangeFields.module.mjs.map +1 -0
- package/dist/js/packages/components/src/components/List/components/Header/components/FilterContextMenu/DateRangeFilterPopover.mjs +16 -9
- package/dist/js/packages/components/src/components/List/components/Header/components/FilterContextMenu/DateRangeFilterPopover.mjs.map +1 -1
- package/dist/js/packages/components/src/components/List/components/Header/components/FilterContextMenu/FilterContextMenus.module.mjs +6 -2
- package/dist/js/packages/components/src/components/List/components/Header/components/FilterContextMenu/FilterContextMenus.module.mjs.map +1 -1
- package/dist/js/packages/components/src/components/List/components/Header/components/SearchField/SearchField.mjs +4 -2
- package/dist/js/packages/components/src/components/List/components/Header/components/SearchField/SearchField.mjs.map +1 -1
- package/dist/js/packages/components/src/components/List/components/Items/Items.mjs +27 -1
- package/dist/js/packages/components/src/components/List/components/Items/Items.mjs.map +1 -1
- package/dist/js/packages/components/src/components/List/components/Items/components/Item/Item.mjs +1 -1
- package/dist/js/packages/components/src/components/List/components/Items/components/Item/Item.mjs.map +1 -1
- package/dist/js/packages/components/src/components/List/components/Items/components/Item/hooks/useGridItemProps.mjs +1 -2
- package/dist/js/packages/components/src/components/List/components/Items/components/Item/hooks/useGridItemProps.mjs.map +1 -1
- package/dist/js/packages/components/src/components/List/components/Items/views/GridList/GridList.mjs +3 -0
- package/dist/js/packages/components/src/components/List/components/Items/views/GridList/GridList.mjs.map +1 -1
- package/dist/js/packages/components/src/components/List/components/ListItemView/ListItemView.mjs +46 -44
- package/dist/js/packages/components/src/components/List/components/ListItemView/ListItemView.mjs.map +1 -1
- package/dist/js/packages/components/src/components/List/components/ListItemView/components/ListItemViewContent/ListItemViewContent.mjs +25 -25
- package/dist/js/packages/components/src/components/List/components/ListItemView/components/ListItemViewContent/ListItemViewContent.mjs.map +1 -1
- package/dist/js/packages/components/src/components/List/components/ListSummary/ListSummary.mjs +5 -9
- package/dist/js/packages/components/src/components/List/components/ListSummary/ListSummary.mjs.map +1 -1
- package/dist/js/packages/components/src/components/List/components/Table/Table.mjs +29 -13
- package/dist/js/packages/components/src/components/List/components/Table/Table.mjs.map +1 -1
- package/dist/js/packages/components/src/components/List/components/Table/components/Row.mjs +31 -0
- package/dist/js/packages/components/src/components/List/components/Table/components/Row.mjs.map +1 -0
- package/dist/js/packages/components/src/components/List/hooks/useLatestOnAction.mjs +21 -0
- package/dist/js/packages/components/src/components/List/hooks/useLatestOnAction.mjs.map +1 -0
- package/dist/js/packages/components/src/components/List/hooks/useListSelector.mjs +18 -0
- package/dist/js/packages/components/src/components/List/hooks/useListSelector.mjs.map +1 -0
- package/dist/js/packages/components/src/components/List/listContext.mjs +32 -2
- package/dist/js/packages/components/src/components/List/listContext.mjs.map +1 -1
- package/dist/js/packages/components/src/components/List/model/List.mjs +1 -0
- package/dist/js/packages/components/src/components/List/model/List.mjs.map +1 -1
- package/dist/js/packages/components/src/components/List/model/ListViewMode.mjs +2 -2
- package/dist/js/packages/components/src/components/List/model/ReactTable.mjs +2 -2
- package/dist/js/packages/components/src/components/List/model/filter/DateRangeFilter.mjs +15 -2
- package/dist/js/packages/components/src/components/List/model/filter/DateRangeFilter.mjs.map +1 -1
- package/dist/js/packages/components/src/components/List/model/filter/resolveDateRangeFilterValue.mjs +16 -0
- package/dist/js/packages/components/src/components/List/model/filter/resolveDateRangeFilterValue.mjs.map +1 -0
- package/dist/js/packages/components/src/components/List/model/item/ItemView.mjs +20 -7
- package/dist/js/packages/components/src/components/List/model/item/ItemView.mjs.map +1 -1
- package/dist/js/packages/components/src/components/List/model/loading/IncrementalLoaderState.mjs +2 -2
- package/dist/js/packages/components/src/components/List/model/table/Table.mjs +11 -1
- package/dist/js/packages/components/src/components/List/model/table/Table.mjs.map +1 -1
- package/dist/js/packages/components/src/components/List/model/table/TableBody.mjs +5 -1
- package/dist/js/packages/components/src/components/List/model/table/TableBody.mjs.map +1 -1
- package/dist/js/packages/components/src/components/List/model/table/TableCell.mjs +1 -1
- package/dist/js/packages/components/src/components/List/model/table/TableCell.mjs.map +1 -1
- package/dist/js/packages/components/src/components/List/model/table/TableColumn.mjs +4 -0
- package/dist/js/packages/components/src/components/List/model/table/TableColumn.mjs.map +1 -1
- package/dist/js/packages/components/src/components/List/model/table/TableHeader.mjs +8 -1
- package/dist/js/packages/components/src/components/List/model/table/TableHeader.mjs.map +1 -1
- package/dist/js/packages/components/src/components/List/model/table/TableRow.mjs +28 -1
- package/dist/js/packages/components/src/components/List/model/table/TableRow.mjs.map +1 -1
- package/dist/js/packages/components/src/components/Markdown/Markdown.mjs +25 -7
- package/dist/js/packages/components/src/components/Markdown/Markdown.mjs.map +1 -1
- package/dist/js/packages/components/src/components/Markdown/components/SkeletonBlocks.mjs +1 -1
- package/dist/js/packages/components/src/components/Markdown/components/SkeletonBlocks.mjs.map +1 -1
- package/dist/js/packages/components/src/components/Markdown/lib/isExternalHref.mjs +8 -0
- package/dist/js/packages/components/src/components/Markdown/lib/isExternalHref.mjs.map +1 -0
- package/dist/js/packages/components/src/components/MenuItem/MenuItem.mjs +32 -3
- package/dist/js/packages/components/src/components/MenuItem/MenuItem.mjs.map +1 -1
- package/dist/js/packages/components/src/components/MenuItem/MenuItem.module.mjs +1 -3
- package/dist/js/packages/components/src/components/MessageThread/MessageThread.mjs +1 -1
- package/dist/js/packages/components/src/components/MessageThread/MessageThread.mjs.map +1 -1
- package/dist/js/packages/components/src/components/Modal/Modal.mjs +9 -2
- package/dist/js/packages/components/src/components/Modal/Modal.mjs.map +1 -1
- package/dist/js/packages/components/src/components/Navigation/Navigation.module.mjs +1 -3
- package/dist/js/packages/components/src/components/NumberField/NumberField.mjs +2 -3
- package/dist/js/packages/components/src/components/NumberField/NumberField.mjs.map +1 -1
- package/dist/js/packages/components/src/components/Option/Option.module.mjs +1 -3
- package/dist/js/packages/components/src/components/Overlay/components/OverlayContent.mjs +2 -1
- package/dist/js/packages/components/src/components/Overlay/components/OverlayContent.mjs.map +1 -1
- package/dist/js/packages/components/src/components/PasswordCreationField/PasswordCreationField.mjs +3 -3
- package/dist/js/packages/components/src/components/PasswordCreationField/PasswordCreationField.mjs.map +1 -1
- package/dist/js/packages/components/src/components/Popover/components/NonModalPopoverContent/NonModalPopoverContent.mjs +1 -1
- package/dist/js/packages/components/src/components/Popover/components/NonModalPopoverContent/NonModalPopoverContent.mjs.map +1 -1
- package/dist/js/packages/components/src/components/Popover/components/PopoverContent/PopoverContent.mjs +4 -2
- package/dist/js/packages/components/src/components/Popover/components/PopoverContent/PopoverContent.mjs.map +1 -1
- package/dist/js/packages/components/src/components/ProgressBar/ProgressBar.mjs.map +1 -1
- package/dist/js/packages/components/src/components/ProgressBar/components/ProgressBarLegend.mjs +5 -4
- package/dist/js/packages/components/src/components/ProgressBar/components/ProgressBarLegend.mjs.map +1 -1
- package/dist/js/packages/components/src/components/RadioGroup/RadioGroup.mjs +2 -3
- package/dist/js/packages/components/src/components/RadioGroup/RadioGroup.mjs.map +1 -1
- package/dist/js/packages/components/src/components/Rating/Rating.mjs +12 -11
- package/dist/js/packages/components/src/components/Rating/Rating.mjs.map +1 -1
- package/dist/js/packages/components/src/components/SearchField/SearchField.mjs +2 -3
- package/dist/js/packages/components/src/components/SearchField/SearchField.mjs.map +1 -1
- package/dist/js/packages/components/src/components/Section/Section.mjs +9 -5
- package/dist/js/packages/components/src/components/Section/Section.mjs.map +1 -1
- package/dist/js/packages/components/src/components/Section/components/SectionHeader/SectionHeader.mjs +0 -4
- package/dist/js/packages/components/src/components/Section/components/SectionHeader/SectionHeader.mjs.map +1 -1
- package/dist/js/packages/components/src/components/Section/context.mjs +47 -0
- package/dist/js/packages/components/src/components/Section/context.mjs.map +1 -0
- package/dist/js/packages/components/src/components/SegmentedControl/SegmentedControl.mjs +2 -3
- package/dist/js/packages/components/src/components/SegmentedControl/SegmentedControl.mjs.map +1 -1
- package/dist/js/packages/components/src/components/Select/Select.mjs +2 -3
- package/dist/js/packages/components/src/components/Select/Select.mjs.map +1 -1
- package/dist/js/packages/components/src/components/Slider/Slider.mjs +47 -41
- package/dist/js/packages/components/src/components/Slider/Slider.mjs.map +1 -1
- package/dist/js/packages/components/src/components/Table/Table.mjs +3 -0
- package/dist/js/packages/components/src/components/Table/Table.mjs.map +1 -1
- package/dist/js/packages/components/src/components/Table/Table.module.mjs.map +1 -1
- package/dist/js/packages/components/src/components/Table/components/TableCell/TableCell.mjs +5 -12
- package/dist/js/packages/components/src/components/Table/components/TableCell/TableCell.mjs.map +1 -1
- package/dist/js/packages/components/src/components/Table/components/TableColumn/TableColumn.mjs +4 -2
- package/dist/js/packages/components/src/components/Table/components/TableColumn/TableColumn.mjs.map +1 -1
- package/dist/js/packages/components/src/components/Table/components/TableHeader/TableHeader.mjs +7 -1
- package/dist/js/packages/components/src/components/Table/components/TableHeader/TableHeader.mjs.map +1 -1
- package/dist/js/packages/components/src/components/Table/components/TableHeader/context.mjs +14 -0
- package/dist/js/packages/components/src/components/Table/components/TableHeader/context.mjs.map +1 -0
- package/dist/js/packages/components/src/components/Tabs/Tabs.mjs +6 -8
- package/dist/js/packages/components/src/components/Tabs/Tabs.mjs.map +1 -1
- package/dist/js/packages/components/src/components/Tabs/Tabs.module.mjs.map +1 -1
- package/dist/js/packages/components/src/components/Tabs/components/TabTitle/TabTitle.module.mjs.map +1 -1
- package/dist/js/packages/components/src/components/Text/Text.module.mjs.map +1 -1
- package/dist/js/packages/components/src/components/TextField/TextField.mjs +11 -8
- package/dist/js/packages/components/src/components/TextField/TextField.mjs.map +1 -1
- package/dist/js/packages/components/src/components/TranslationProvider/useLocalizedStringFormatter.mjs +15 -2
- package/dist/js/packages/components/src/components/TranslationProvider/useLocalizedStringFormatter.mjs.map +1 -1
- package/dist/js/packages/components/src/components/Wrap/Wrap.mjs.map +1 -1
- package/dist/js/packages/components/src/integrations/react-hook-form/components/Field/Field.mjs +1 -1
- package/dist/js/packages/components/src/integrations/react-hook-form/components/Form/Form.mjs +4 -1
- package/dist/js/packages/components/src/integrations/react-hook-form/components/Form/Form.mjs.map +1 -1
- package/dist/js/packages/components/src/integrations/react-hook-form/components/FormRootError/FormRootError.mjs +1 -1
- package/dist/js/packages/components/src/integrations/react-hook-form/components/FormSettingsProvider/FormSettingsProvider.mjs.map +1 -1
- package/dist/js/packages/components/src/lib/controller/overlay/OverlayController.mjs +10 -158
- package/dist/js/packages/components/src/lib/controller/overlay/OverlayController.mjs.map +1 -1
- package/dist/js/packages/components/src/lib/controller/overlay/useCloseOverlayConfirmationController.mjs +1 -0
- package/dist/js/packages/components/src/lib/controller/overlay/useCloseOverlayConfirmationController.mjs.map +1 -1
- package/dist/js/packages/components/src/lib/hooks/dom/useVirtualKeyboardVisible.mjs +8 -4
- package/dist/js/packages/components/src/lib/hooks/dom/useVirtualKeyboardVisible.mjs.map +1 -1
- package/dist/js/packages/components/src/lib/object/isPlainObjectDeepEqual.mjs +29 -0
- package/dist/js/packages/components/src/lib/object/isPlainObjectDeepEqual.mjs.map +1 -0
- package/dist/js/packages/components/src/lib/propsContext/components/ClearPropsContext.mjs +2 -1
- package/dist/js/packages/components/src/lib/propsContext/components/ClearPropsContext.mjs.map +1 -1
- package/dist/js/packages/components/src/lib/propsContext/components/PropsContextProvider.mjs +14 -3
- package/dist/js/packages/components/src/lib/propsContext/components/PropsContextProvider.mjs.map +1 -1
- package/dist/js/packages/components/src/lib/slotContext/SlotContextProvider.mjs +9 -4
- package/dist/js/packages/components/src/lib/slotContext/SlotContextProvider.mjs.map +1 -1
- package/dist/js/packages/components/src/views/DatePickerView.mjs +16 -0
- package/dist/js/packages/components/src/views/DatePickerView.mjs.map +1 -0
- package/dist/js/packages/components/src/views/LabelView.mjs +16 -0
- package/dist/js/packages/components/src/views/LabelView.mjs.map +1 -0
- package/dist/js/packages/components/src/views/TimeFieldView.mjs +16 -0
- package/dist/js/packages/components/src/views/TimeFieldView.mjs.map +1 -0
- package/dist/js/packages/components-base/src/index.mjs +5 -2
- package/dist/js/packages/components-base/src/list/filter/ListDateRangeFilter.mjs +1 -0
- package/dist/js/packages/components-base/src/list/filter/ListDateRangeFilter.mjs.map +1 -1
- package/dist/js/packages/components-base/src/list/filter/ListFilter.mjs +4 -1
- package/dist/js/packages/components-base/src/list/filter/ListFilter.mjs.map +1 -1
- package/dist/js/packages/components-base/src/list/filter/dateRange.mjs +37 -13
- package/dist/js/packages/components-base/src/list/filter/dateRange.mjs.map +1 -1
- package/dist/js/packages/components-base/src/list/filter/dateTimeRangeFields.mjs +55 -0
- package/dist/js/packages/components-base/src/list/filter/dateTimeRangeFields.mjs.map +1 -0
- package/dist/js/packages/components-base/src/list/filter/formatDateRange.mjs +27 -0
- package/dist/js/packages/components-base/src/list/filter/formatDateRange.mjs.map +1 -0
- package/dist/js/packages/components-base/src/list/loading/ListLoaderState.mjs +10 -5
- package/dist/js/packages/components-base/src/list/loading/ListLoaderState.mjs.map +1 -1
- package/dist/js/packages/components-base/src/overlay/OverlayState.mjs +196 -0
- package/dist/js/packages/components-base/src/overlay/OverlayState.mjs.map +1 -0
- package/dist/js/packages/design-tokens/dist/json-runtime/all-dark.mjs +1 -1
- package/dist/js/packages/design-tokens/dist/json-runtime/all-dark.mjs.map +1 -1
- package/dist/js/packages/design-tokens/dist/json-runtime/all-light.mjs +1 -1
- package/dist/js/packages/design-tokens/dist/json-runtime/all-light.mjs.map +1 -1
- package/dist/types/_bundled/flow-components-base/index.d.ts +4 -1
- package/dist/types/_bundled/flow-components-base/list/filter/ListFilter.d.ts +2 -0
- package/dist/types/_bundled/flow-components-base/list/filter/dateRange.d.ts +24 -1
- package/dist/types/_bundled/flow-components-base/list/filter/dateTimeRangeFields.d.ts +34 -0
- package/dist/types/_bundled/flow-components-base/list/filter/formatDateRange.d.ts +7 -0
- package/dist/types/_bundled/flow-components-base/list/loading/ListLoaderState.d.ts +5 -0
- package/dist/types/_bundled/flow-components-base/overlay/OverlayState.d.ts +94 -0
- package/dist/types/components/AlertBadge/AlertBadge.d.ts +2 -2
- package/dist/types/components/Badge/Badge.d.ts +2 -2
- package/dist/types/components/CartesianChart/hooks/useTickLabelWidth.d.ts +1 -0
- package/dist/types/components/CodeBlock/CodeBlock.d.ts +1 -1
- package/dist/types/components/DonutChart/DonutChart.d.ts +1 -4
- package/dist/types/components/Link/Link.d.ts +1 -1
- package/dist/types/components/List/components/Header/components/DateTimeRangeFields/DateTimeRangeFields.d.ts +8 -0
- package/dist/types/components/List/components/Items/components/Item/Item.d.ts +2 -0
- package/dist/types/components/List/components/Items/components/Item/hooks/useGridItemProps.d.ts +1 -0
- package/dist/types/components/List/components/ListSummary/ListSummary.d.ts +3 -2
- package/dist/types/components/List/components/Table/components/Row.d.ts +13 -0
- package/dist/types/components/List/hooks/useLatestOnAction.d.ts +7 -0
- package/dist/types/components/List/hooks/useListSelector.d.ts +6 -0
- package/dist/types/components/List/index.d.ts +2 -0
- package/dist/types/components/List/listContext.d.ts +16 -0
- package/dist/types/components/List/model/filter/DateRangeFilter.d.ts +15 -8
- package/dist/types/components/List/model/filter/resolveDateRangeFilterValue.d.ts +11 -0
- package/dist/types/components/List/model/filter/types.d.ts +23 -1
- package/dist/types/components/List/model/item/ItemView.d.ts +34 -11
- package/dist/types/components/List/model/table/Table.d.ts +7 -0
- package/dist/types/components/List/model/table/TableBody.d.ts +1 -0
- package/dist/types/components/List/model/table/TableColumn.d.ts +1 -0
- package/dist/types/components/List/model/table/TableHeader.d.ts +1 -0
- package/dist/types/components/List/model/table/TableRow.d.ts +14 -0
- package/dist/types/components/List/model/table/types.d.ts +17 -1
- package/dist/types/components/List/typedList.d.ts +1 -0
- package/dist/types/components/Markdown/lib/isExternalHref.d.ts +1 -0
- package/dist/types/components/ProgressBar/ProgressBar.d.ts +1 -4
- package/dist/types/components/Rating/Rating.d.ts +5 -5
- package/dist/types/components/Section/context.d.ts +28 -0
- package/dist/types/components/Table/components/TableCell/TableCell.d.ts +4 -1
- package/dist/types/components/Table/components/TableHeader/context.d.ts +6 -0
- package/dist/types/components/Wrap/Wrap.d.ts +5 -0
- package/dist/types/index/flr-universal.d.ts +1 -1
- package/dist/types/integrations/react-hook-form/components/FormSettingsProvider/FormSettingsProvider.d.ts +7 -1
- package/dist/types/lib/controller/overlay/OverlayController.d.ts +8 -74
- package/dist/types/lib/dev/hydrateServerMarkup.d.ts +2 -0
- package/dist/types/lib/hooks/dom/useVirtualKeyboardVisible.d.ts +4 -1
- package/dist/types/lib/object/isPlainObjectDeepEqual.d.ts +8 -0
- package/package.json +12 -12
- package/dist/js/node_modules/.pnpm/@lezer_lr@1.4.10/node_modules/@lezer/lr/dist/index.mjs.map +0 -1
- package/dist/js/packages/components/src/lib/date/transformDateValueToFormattedDate.mjs +0 -10
- package/dist/js/packages/components/src/lib/date/transformDateValueToFormattedDate.mjs.map +0 -1
- package/dist/types/lib/date/transformDateValueToDateTime.d.ts +0 -3
- package/dist/types/lib/date/transformDateValueToFormattedDate.d.ts +0 -2
|
@@ -2,7 +2,9 @@ export { ActionState, actionStateDurations, type ActionStateValue, } from "./act
|
|
|
2
2
|
export { toArray, type ItemType } from "./lib/array";
|
|
3
3
|
export { ListFilter } from "./list/filter/ListFilter";
|
|
4
4
|
export { ListDateRangeFilter } from "./list/filter/ListDateRangeFilter";
|
|
5
|
-
export { applyDateRangeColumnDef, dateRangeFilterFn, isListDateRange, type ListDateParts, type ListDateRange, } from "./list/filter/dateRange";
|
|
5
|
+
export { applyDateRangeColumnDef, dateRangeFilterFn, isListDateRange, listDateToDateTime, resolveListDateRange, type ListDateParts, type ListDateRange, } from "./list/filter/dateRange";
|
|
6
|
+
export { formatListDateRange, type ListDateRangeTextFormat, } from "./list/filter/formatDateRange";
|
|
7
|
+
export { getListDateTimeRangeUpdate, isListDateTimeRangeEndBeforeStart, isListDateValid, listDateTimeRangeFieldsFromValue, toListCalendarDate, toListTime, type ListDateTimeRange, type ListDateTimeRangeFields, type ListDateTimeRangeLimits, } from "./list/filter/dateTimeRangeFields";
|
|
6
8
|
export { ListFilterValue } from "./list/filter/ListFilterValue";
|
|
7
9
|
export type { FilterMatcher, FilterMode, FilterUpdatedCallback, ListFilterShape, } from "./list/filter/types";
|
|
8
10
|
export { getListColumn, type ListModelContext } from "./list/ListModelContext";
|
|
@@ -21,3 +23,4 @@ export type { ListSortingShape, SortingDefaultMode, SortingFn, } from "./list/so
|
|
|
21
23
|
export { ListViewMode } from "./list/viewMode/ListViewMode";
|
|
22
24
|
export type { ListViewModeOptions, ListViewModeValue, } from "./list/viewMode/types";
|
|
23
25
|
export { customPropertyPrefix, type CustomPropertyName, type PropertyName, type PropertyValue, type PropertyValueRenderMethod, } from "./list/types";
|
|
26
|
+
export { OverlayState, type AnyOverlayOpenStateHandler, type DisposerFn, type OverlayCloseHandler, type OverlayCloseOptions, type OverlayOpenHandler, type OverlayOpenStateHandler, type OverlayStateOptions, } from "./overlay/OverlayState";
|
|
@@ -83,6 +83,8 @@ export declare class ListFilter<T = never, TProp extends PropertyName<T> = never
|
|
|
83
83
|
isActive(): boolean;
|
|
84
84
|
deactivateValue(value: ListFilterValue<TRendered>): void;
|
|
85
85
|
private callOnChangedHandlers;
|
|
86
|
+
/** Tells the listeners — the list resetting its batches among them. */
|
|
87
|
+
protected notifyFilterUpdated(values: unknown[]): void;
|
|
86
88
|
hasChanges(): boolean;
|
|
87
89
|
isStoringAvailable(): boolean;
|
|
88
90
|
resetValues(): void;
|
|
@@ -1,9 +1,16 @@
|
|
|
1
1
|
import type { ColumnDef, Row } from "@tanstack/table-core";
|
|
2
|
-
|
|
2
|
+
import { DateTime } from "luxon";
|
|
3
|
+
/**
|
|
4
|
+
* A calendar date, in whichever shape it reached the filter — with a time of
|
|
5
|
+
* day when the filter narrows down by minute.
|
|
6
|
+
*/
|
|
3
7
|
export interface ListDateParts {
|
|
4
8
|
readonly year: number;
|
|
5
9
|
readonly month: number;
|
|
6
10
|
readonly day: number;
|
|
11
|
+
readonly hour?: number;
|
|
12
|
+
readonly minute?: number;
|
|
13
|
+
readonly second?: number;
|
|
7
14
|
}
|
|
8
15
|
export interface ListDateRange {
|
|
9
16
|
readonly start?: ListDateParts;
|
|
@@ -11,6 +18,22 @@ export interface ListDateRange {
|
|
|
11
18
|
}
|
|
12
19
|
/** A range needs both ends present to be one, even if either may be unset. */
|
|
13
20
|
export declare const isListDateRange: (value: unknown) => value is ListDateRange;
|
|
21
|
+
/**
|
|
22
|
+
* The date as a local point in time. A `ZonedDateTime` is the instant it names;
|
|
23
|
+
* anything else is read field by field, since after crossing the remote
|
|
24
|
+
* boundary a `CalendarDate` is a plain object.
|
|
25
|
+
*/
|
|
26
|
+
export declare const listDateToDateTime: (date: ListDateParts) => DateTime;
|
|
27
|
+
/**
|
|
28
|
+
* Resolves a range to the instants it spans, for filtering on the server side.
|
|
29
|
+
* Both bounds are inclusive: a date covers its whole day and a date with time
|
|
30
|
+
* its whole minute, in the user's local time zone. A missing side has no
|
|
31
|
+
* bound.
|
|
32
|
+
*/
|
|
33
|
+
export declare const resolveListDateRange: (range: ListDateRange) => {
|
|
34
|
+
start?: Date;
|
|
35
|
+
end?: Date;
|
|
36
|
+
};
|
|
14
37
|
/**
|
|
15
38
|
* Whether a row's date falls inside the selected range.
|
|
16
39
|
*
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { CalendarDate, type CalendarDateTime, Time } from "@internationalized/date";
|
|
2
|
+
import { type ListDateParts, type ListDateRange } from "./dateRange";
|
|
3
|
+
export interface ListDateTimeRangeFields {
|
|
4
|
+
readonly startDate: CalendarDate | null;
|
|
5
|
+
readonly startTime: Time | null;
|
|
6
|
+
readonly endDate: CalendarDate | null;
|
|
7
|
+
readonly endTime: Time | null;
|
|
8
|
+
}
|
|
9
|
+
export interface ListDateTimeRangeLimits {
|
|
10
|
+
readonly minValue?: ListDateParts | null;
|
|
11
|
+
readonly maxValue?: ListDateParts | null;
|
|
12
|
+
readonly isDateUnavailable?: (date: CalendarDate) => boolean;
|
|
13
|
+
}
|
|
14
|
+
type Bound = CalendarDate | CalendarDateTime;
|
|
15
|
+
export interface ListDateTimeRange {
|
|
16
|
+
readonly start?: Bound;
|
|
17
|
+
readonly end?: Bound;
|
|
18
|
+
}
|
|
19
|
+
export declare const toListCalendarDate: (value?: ListDateParts | null) => CalendarDate | null;
|
|
20
|
+
export declare const toListTime: (value?: {
|
|
21
|
+
readonly hour?: number;
|
|
22
|
+
readonly minute?: number;
|
|
23
|
+
} | null) => Time | null;
|
|
24
|
+
export declare const listDateTimeRangeFieldsFromValue: (value: ListDateRange | null) => ListDateTimeRangeFields;
|
|
25
|
+
/** Not while a year is still being typed: "2" would read as an early end. */
|
|
26
|
+
export declare const isListDateTimeRangeEndBeforeStart: (fields: ListDateTimeRangeFields) => boolean;
|
|
27
|
+
export declare const isListDateValid: (date: CalendarDate | null, limits?: ListDateTimeRangeLimits) => boolean;
|
|
28
|
+
/**
|
|
29
|
+
* The range the fields stand for, or `undefined` while it must not be applied:
|
|
30
|
+
* an invalid input keeps the last valid range, and an unchanged one needs no
|
|
31
|
+
* update. `null` clears the filter.
|
|
32
|
+
*/
|
|
33
|
+
export declare const getListDateTimeRangeUpdate: (fields: ListDateTimeRangeFields, applied: ListDateRange | null, limits?: ListDateTimeRangeLimits) => ListDateTimeRange | null | undefined;
|
|
34
|
+
export {};
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { type ListDateRange } from "./dateRange";
|
|
2
|
+
/** Formats the text of an open range ("from {date}", "until {date}"). */
|
|
3
|
+
export type ListDateRangeTextFormat = (key: "dateRange.from" | "dateRange.until", values: {
|
|
4
|
+
date: string;
|
|
5
|
+
}) => string;
|
|
6
|
+
/** The active filter chip's text: an end with time shows its time. */
|
|
7
|
+
export declare const formatListDateRange: (value: ListDateRange, locale: string, format: ListDateRangeTextFormat) => string;
|
|
@@ -32,6 +32,11 @@ export declare class ListLoaderState<T> {
|
|
|
32
32
|
private readonly getItemId?;
|
|
33
33
|
constructor(options?: ListLoaderStateOptions<T>);
|
|
34
34
|
reset(): void;
|
|
35
|
+
/**
|
|
36
|
+
* Keeps the current batch when `data` holds the same items in the same order.
|
|
37
|
+
* A loader that builds a new array on every fetch — a refetch whose items its
|
|
38
|
+
* data layer reuses — would otherwise re-render the whole list for nothing.
|
|
39
|
+
*/
|
|
35
40
|
setDataBatch(index: number, data: ListData<T>): void;
|
|
36
41
|
setBatchLoadingState(index: number, state: BatchLoadingState): void;
|
|
37
42
|
setMetadata(metadata?: unknown): void;
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
export type OverlayOpenHandler = () => unknown;
|
|
2
|
+
export type OverlayCloseHandler = () => unknown;
|
|
3
|
+
export type OverlayOpenStateHandler = (isOpen: boolean) => unknown;
|
|
4
|
+
export type AnyOverlayOpenStateHandler = OverlayOpenHandler | OverlayCloseHandler | OverlayOpenStateHandler;
|
|
5
|
+
export type DisposerFn = () => void;
|
|
6
|
+
export interface OverlayCloseOptions {
|
|
7
|
+
/** Close without asking, even when the overlay requires confirmation. */
|
|
8
|
+
bypassConfirmation?: boolean;
|
|
9
|
+
}
|
|
10
|
+
export interface OverlayStateOptions {
|
|
11
|
+
isDefaultOpen?: boolean;
|
|
12
|
+
/**
|
|
13
|
+
* Whether closing the overlay must be confirmed while no source has an
|
|
14
|
+
* opinion (`setConfirmOnCloseSource`).
|
|
15
|
+
*/
|
|
16
|
+
confirmOnClose?: boolean;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Whether an overlay is open, and whether closing it has to be confirmed first.
|
|
20
|
+
* Each binding adds its subscription and its lifecycle: React's
|
|
21
|
+
* `OverlayController` subclasses it, Vue's adapter wraps it in refs.
|
|
22
|
+
*
|
|
23
|
+
* `TCloseOptions` lets a binding pass more on a close than the state reads —
|
|
24
|
+
* React's `overlay`, resolved by `Action` before the close arrives here.
|
|
25
|
+
*/
|
|
26
|
+
export declare class OverlayState<TCloseOptions extends OverlayCloseOptions = OverlayCloseOptions> {
|
|
27
|
+
isOpen: boolean;
|
|
28
|
+
isContentSuspended: boolean;
|
|
29
|
+
private onOpenHandlers;
|
|
30
|
+
private onCloseHandlers;
|
|
31
|
+
private onOpenChangeHandlers;
|
|
32
|
+
showConfirmationModal: boolean;
|
|
33
|
+
closeIsConfirmed: boolean;
|
|
34
|
+
private readonly confirmOnCloseFromOptions;
|
|
35
|
+
/**
|
|
36
|
+
* Every mounted component that has an opinion on close confirmation
|
|
37
|
+
* contributes one entry here – e.g. a `Modal` with a `confirmOnClose` prop
|
|
38
|
+
* and a `Form` tracking its dirty state. Combining them instead of assigning
|
|
39
|
+
* a single flag keeps them from overwriting each other.
|
|
40
|
+
*/
|
|
41
|
+
private confirmOnCloseSources;
|
|
42
|
+
/**
|
|
43
|
+
* Active grants that allow closing without a confirmation. Each entry is
|
|
44
|
+
* scoped to an ongoing operation that legitimately closes the overlay – e.g.
|
|
45
|
+
* a `Form` submit – and is dropped again when that operation has finished, so
|
|
46
|
+
* an operation that does _not_ close the overlay leaves the confirmation
|
|
47
|
+
* armed.
|
|
48
|
+
*/
|
|
49
|
+
private closeWithoutConfirmationGrants;
|
|
50
|
+
/**
|
|
51
|
+
* The open state a `setOpen` call is currently applying. Handlers run before
|
|
52
|
+
* `isOpen` is assigned, so a handler that calls `setOpen` again would not be
|
|
53
|
+
* caught by the equality check at the top and would recurse.
|
|
54
|
+
*/
|
|
55
|
+
private openStateInFlight;
|
|
56
|
+
constructor(options?: OverlayStateOptions);
|
|
57
|
+
/** Whether closing this overlay currently requires a confirmation. */
|
|
58
|
+
get confirmOnCloseEnabled(): boolean;
|
|
59
|
+
private withdrawUnneededConfirmation;
|
|
60
|
+
private addOpenStateHandler;
|
|
61
|
+
private executeHandlers;
|
|
62
|
+
private executeOnClose;
|
|
63
|
+
private executeOnOpen;
|
|
64
|
+
private executeOnOpenChange;
|
|
65
|
+
addOnClose(handler: OverlayCloseHandler): DisposerFn;
|
|
66
|
+
addOnOpen(handler: OverlayOpenHandler): DisposerFn;
|
|
67
|
+
addOnOpenChange(handler: OverlayOpenStateHandler): DisposerFn;
|
|
68
|
+
open(): void;
|
|
69
|
+
close(options?: TCloseOptions): void;
|
|
70
|
+
toggle(): void;
|
|
71
|
+
setOpen(toOpen: boolean, options?: TCloseOptions): void;
|
|
72
|
+
/**
|
|
73
|
+
* Sets the open state without running any handler. Use it to mirror a
|
|
74
|
+
* controlled `isOpen` prop, whose change comes from the consumer – notifying
|
|
75
|
+
* them of their own state would echo it back. Closing this way drops a
|
|
76
|
+
* pending close confirmation as well.
|
|
77
|
+
*/
|
|
78
|
+
syncOpen(toOpen: boolean): void;
|
|
79
|
+
/** A closed overlay has no close left to confirm. */
|
|
80
|
+
private assignOpenState;
|
|
81
|
+
private applyOpenState;
|
|
82
|
+
setIsContentSuspended(to: boolean): void;
|
|
83
|
+
/**
|
|
84
|
+
* Allows closing this overlay without a confirmation until the returned
|
|
85
|
+
* disposer is called. Use it around an operation that may legitimately close
|
|
86
|
+
* the overlay – e.g. a `Form` submit, where a "discard unsaved changes?"
|
|
87
|
+
* prompt would be nonsense – and dispose it as soon as that operation has
|
|
88
|
+
* finished. An operation that ends without closing the overlay therefore
|
|
89
|
+
* leaves the confirmation armed (#2775).
|
|
90
|
+
*/
|
|
91
|
+
grantCloseWithoutConfirmation(): DisposerFn;
|
|
92
|
+
confirmClose(): void;
|
|
93
|
+
cancelConfirmation(): void;
|
|
94
|
+
}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { PropsWithChildren } from 'react';
|
|
2
2
|
import { PropsWithStatus, PropsWithClassName } from '../../lib/types/props';
|
|
3
3
|
import { FlowComponentProps } from '../../lib/componentFactory/flowComponent';
|
|
4
|
-
export interface AlertBadgeProps extends PropsWithChildren, PropsWithStatus, FlowComponentProps
|
|
4
|
+
export interface AlertBadgeProps extends PropsWithChildren, PropsWithStatus, FlowComponentProps<HTMLSpanElement>, PropsWithClassName {
|
|
5
5
|
}
|
|
6
6
|
/** @flr-generate all */
|
|
7
|
-
export declare const AlertBadge: import('react').FunctionComponent<AlertBadgeProps & import('react').RefAttributes<
|
|
7
|
+
export declare const AlertBadge: import('react').FunctionComponent<AlertBadgeProps & import('react').RefAttributes<HTMLSpanElement>>;
|
|
8
8
|
export default AlertBadge;
|
|
@@ -4,7 +4,7 @@ import { FlowComponentProps } from '../../lib/componentFactory/flowComponent';
|
|
|
4
4
|
import { PressEvent } from '@react-types/shared';
|
|
5
5
|
export declare const badgeColors: readonly ["neutral", "blue", "navy", "violet", "teal", "lilac", "green", "orange", "red", "dark", "light", "dark-static", "light-static"];
|
|
6
6
|
export type BadgeColors = (typeof badgeColors)[number];
|
|
7
|
-
export interface BadgeProps extends PropsWithChildren, FlowComponentProps
|
|
7
|
+
export interface BadgeProps extends PropsWithChildren, FlowComponentProps<HTMLSpanElement>, PropsWithClassName {
|
|
8
8
|
/** Handler that is called when the badge is pressed. */
|
|
9
9
|
onPress?: (e: PressEvent) => void;
|
|
10
10
|
/** Handler that is called when the badges close icon is pressed. */
|
|
@@ -15,5 +15,5 @@ export interface BadgeProps extends PropsWithChildren, FlowComponentProps, Props
|
|
|
15
15
|
isDisabled?: boolean;
|
|
16
16
|
}
|
|
17
17
|
/** @flr-generate all */
|
|
18
|
-
export declare const Badge: import('react').FunctionComponent<BadgeProps & import('react').RefAttributes<
|
|
18
|
+
export declare const Badge: import('react').FunctionComponent<BadgeProps & import('react').RefAttributes<HTMLSpanElement>>;
|
|
19
19
|
export default Badge;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -8,7 +8,7 @@ export interface CodeBlockProps extends PropsWithClassName, PropsWithChildren, P
|
|
|
8
8
|
* Controls truncation of long code blocks. `false` disables it, `true`
|
|
9
9
|
* truncates after 8 lines, and a number sets the maximum line count.
|
|
10
10
|
*
|
|
11
|
-
* @default
|
|
11
|
+
* @default false
|
|
12
12
|
*/
|
|
13
13
|
truncateLines?: boolean | number;
|
|
14
14
|
}
|
|
@@ -15,10 +15,7 @@ export interface DonutChartProps extends Omit<Aria.ProgressBarProps, "children"
|
|
|
15
15
|
size?: "m" | "l";
|
|
16
16
|
/** Divides the fill of the donut chart into segments */
|
|
17
17
|
segments?: DonutChartSegment[];
|
|
18
|
-
/**
|
|
19
|
-
* Whether the legend component is shown when segments are used. @default:
|
|
20
|
-
* true
|
|
21
|
-
*/
|
|
18
|
+
/** Whether the legend component is shown when segments are used. @default true */
|
|
22
19
|
showLegend?: boolean;
|
|
23
20
|
/** The position of the legend. @default "right" */
|
|
24
21
|
legendPosition?: "top" | "left" | "bottom" | "right";
|
|
@@ -2,7 +2,7 @@ import { ComponentProps, ComponentType, CSSProperties, PropsWithChildren } from
|
|
|
2
2
|
import { FlowComponentProps } from '../../lib/componentFactory/flowComponent';
|
|
3
3
|
import { AlphaColor, PropsWithClassName } from '../../lib/types/props';
|
|
4
4
|
import * as Aria from "react-aria-components";
|
|
5
|
-
export interface LinkProps extends PropsWithChildren<Omit<Aria.LinkProps, "children" | "slot" | "className">>, FlowComponentProps<HTMLAnchorElement>, PropsWithClassName {
|
|
5
|
+
export interface LinkProps extends PropsWithChildren<Omit<Aria.LinkProps, "children" | "slot" | "className" | "aria-current">>, FlowComponentProps<HTMLAnchorElement>, PropsWithClassName {
|
|
6
6
|
/** Whether the link should be styled for being displayed inside a text. */
|
|
7
7
|
inline?: boolean;
|
|
8
8
|
/** An alternative link component. */
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { FC } from 'react';
|
|
2
|
+
import { AnyDateRangeFilter } from '../../../../model/filter/types';
|
|
3
|
+
interface Props {
|
|
4
|
+
filter: AnyDateRangeFilter;
|
|
5
|
+
className?: string;
|
|
6
|
+
}
|
|
7
|
+
export declare const DateTimeRangeFields: FC<Props>;
|
|
8
|
+
export default DateTimeRangeFields;
|
|
@@ -7,6 +7,8 @@ interface Props extends PropsWithChildren {
|
|
|
7
7
|
triggerRef?: Ref<HTMLDivElement>;
|
|
8
8
|
list: ListModel<never>;
|
|
9
9
|
isTile: boolean;
|
|
10
|
+
/** Stable invoker of the list's latest `onAction` */
|
|
11
|
+
onAction?: (data: never) => void;
|
|
10
12
|
}
|
|
11
13
|
export declare const Item: import('react').MemoExoticComponent<(props: Props) => import('react').JSX.Element | null>;
|
|
12
14
|
interface ItemContainerProps extends PropsWithChildren {
|
package/dist/types/components/List/components/Items/components/Item/hooks/useGridItemProps.d.ts
CHANGED
|
@@ -2,6 +2,7 @@ import { PropsWithChildren } from 'react';
|
|
|
2
2
|
import { default as List } from '../../../../../model/List';
|
|
3
3
|
interface P extends PropsWithChildren {
|
|
4
4
|
data: never;
|
|
5
|
+
onAction?: (data: never) => void;
|
|
5
6
|
}
|
|
6
7
|
export declare const useGridItemProps: (props: P, list: List<never>) => {
|
|
7
8
|
gridItemProps: {
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { PropsWithChildren } from 'react';
|
|
2
2
|
import { FlowComponentProps } from '../../../../lib/componentFactory/flowComponent';
|
|
3
|
-
|
|
4
|
-
|
|
3
|
+
import { PropsWithClassName } from '../../../../lib/types/props';
|
|
4
|
+
export interface ListSummaryProps extends PropsWithClassName, FlowComponentProps, PropsWithChildren {
|
|
5
|
+
/** Whether the summary is placed above or underneath the list @default "top" */
|
|
5
6
|
position?: "top" | "bottom";
|
|
6
7
|
}
|
|
7
8
|
/** @flr-generate all */
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { Ref } from 'react';
|
|
2
|
+
import { Key } from 'react-aria-components';
|
|
3
|
+
import { default as ListModel } from '../../../model/List';
|
|
4
|
+
interface Props {
|
|
5
|
+
id: Key;
|
|
6
|
+
data: never;
|
|
7
|
+
list: ListModel<never>;
|
|
8
|
+
/** Stable invoker of the list's latest `onAction` */
|
|
9
|
+
onAction?: (data: never) => void;
|
|
10
|
+
triggerRef?: Ref<HTMLTableRowElement>;
|
|
11
|
+
}
|
|
12
|
+
export declare const Row: import('react').MemoExoticComponent<(props: Props) => import('react').JSX.Element | null>;
|
|
13
|
+
export default Row;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { default as List } from '../model/List';
|
|
2
|
+
/**
|
|
3
|
+
* A stable invoker of the list's latest `onAction`, or `undefined` without one.
|
|
4
|
+
* An event handler only ever needs to be the latest one, so items and rows do
|
|
5
|
+
* not re-render for an inline `onAction`.
|
|
6
|
+
*/
|
|
7
|
+
export declare const useLatestOnAction: (list: List<never>) => ((data: never) => void | undefined) | undefined;
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { default as List } from '../model/List';
|
|
2
|
+
/**
|
|
3
|
+
* A value read from the list model, re-rendering only when it changes. The
|
|
4
|
+
* selector has to return a primitive or a value that keeps its identity.
|
|
5
|
+
*/
|
|
6
|
+
export declare const useListSelector: <R, T = never>(selector: (list: List<T>) => R) => R;
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
export type { RenderItemFn } from './model/item/types';
|
|
2
2
|
export type { AsyncDataLoader, AsyncResourceFactory, DataLoaderOptions, DataLoaderResult, } from './model/loading/types';
|
|
3
3
|
export type { SortingFn } from './model/sorting/types';
|
|
4
|
+
export type { DateRangeFilterOptions, DateRangeFilterValue, } from './model/filter/types';
|
|
5
|
+
export { resolveDateRangeFilterValue } from './model/filter/resolveDateRangeFilterValue';
|
|
4
6
|
export { SortingFunctions } from './model/sorting/SortingFunctions';
|
|
5
7
|
export * from './components/Items/views/GridList';
|
|
6
8
|
export * from './components/Items/views/GridListItem';
|
|
@@ -3,4 +3,20 @@ interface ListContext {
|
|
|
3
3
|
list: List<never>;
|
|
4
4
|
}
|
|
5
5
|
export declare const listContext: import('react').Context<ListContext>;
|
|
6
|
+
/**
|
|
7
|
+
* Hands the committed list model to `useListSelector` without changing the
|
|
8
|
+
* context value. The model is rebuilt on every render of `List`; read from
|
|
9
|
+
* `listContext`, it re-renders every consumer, including the ones inside items
|
|
10
|
+
* that skip their own render. A selector re-renders only when the value it
|
|
11
|
+
* reads changes.
|
|
12
|
+
*/
|
|
13
|
+
export declare class ListContextStore {
|
|
14
|
+
private list;
|
|
15
|
+
private readonly listeners;
|
|
16
|
+
constructor(list: List<never>);
|
|
17
|
+
static useNew(list: List<never>): ListContextStore;
|
|
18
|
+
readonly getList: () => List<never>;
|
|
19
|
+
readonly subscribe: (listener: () => void) => (() => void);
|
|
20
|
+
}
|
|
21
|
+
export declare const listStoreContext: import('react').Context<ListContextStore>;
|
|
6
22
|
export {};
|
|
@@ -1,9 +1,7 @@
|
|
|
1
1
|
import { ListDateRangeFilter, ListModelContext } from '../../../../_bundled/flow-components-base/index';
|
|
2
|
-
import { FilterShape } from './types';
|
|
2
|
+
import { DateRangeFilterOptions, DateRangeFilterValue, FilterShape } from './types';
|
|
3
3
|
import { PropertyName } from '../types';
|
|
4
4
|
import { RangeCalendarProps } from '../../../Calendar';
|
|
5
|
-
import { DateValue } from '@internationalized/date';
|
|
6
|
-
import { DateRange, RangeValue } from 'react-aria-components';
|
|
7
5
|
import { ReactNode } from 'react';
|
|
8
6
|
import { List } from '../List';
|
|
9
7
|
import { FilterValue } from './FilterValue';
|
|
@@ -12,14 +10,23 @@ import { FilterValue } from './FilterValue';
|
|
|
12
10
|
*
|
|
13
11
|
* The column, the comparison and the stored value are `ListDateRangeFilter` in
|
|
14
12
|
* `@mittwald/flow-components-base`, so the Vue binding filters the same dates
|
|
15
|
-
* the same way. What is left here
|
|
16
|
-
* Flow's `RangeCalendar` props
|
|
13
|
+
* the same way. What is left here are the options of the fields that pick the
|
|
14
|
+
* range: Flow's `RangeCalendar` props, or with `granularity: "minute"` those of
|
|
15
|
+
* the date and time fields.
|
|
17
16
|
*/
|
|
18
17
|
export declare class DateRangeFilter<T = never, TProp extends PropertyName<T> = never> extends ListDateRangeFilter<T, TProp, ReactNode> {
|
|
19
|
-
readonly dateRangeOptions?:
|
|
18
|
+
readonly dateRangeOptions?: DateRangeFilterOptions;
|
|
20
19
|
constructor(context: ListModelContext<T>, shape: FilterShape<T, TProp, never>);
|
|
21
|
-
|
|
22
|
-
|
|
20
|
+
get granularity(): "day" | "minute";
|
|
21
|
+
get rangeCalendarProps(): RangeCalendarProps;
|
|
22
|
+
get dateTimeRangeOptions(): {
|
|
23
|
+
granularity: "minute";
|
|
24
|
+
minValue?: import('@internationalized/date').DateValue | null;
|
|
25
|
+
maxValue?: import('@internationalized/date').DateValue | null;
|
|
26
|
+
isDateUnavailable?: (date: import('@internationalized/date').DateValue) => boolean;
|
|
27
|
+
} | undefined;
|
|
28
|
+
getValue(): DateRangeFilterValue | null;
|
|
29
|
+
setValue(range: DateRangeFilterValue | null): void;
|
|
23
30
|
/** The list this filter belongs to — `context`, typed as React's `List`. */
|
|
24
31
|
get list(): List<T>;
|
|
25
32
|
get values(): FilterValue[];
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { DateRangeFilterValue } from './types';
|
|
2
|
+
/**
|
|
3
|
+
* Resolves the value of a date range filter to the instants it spans, for
|
|
4
|
+
* filtering on the server side. Both bounds are inclusive: a date covers its
|
|
5
|
+
* whole day and a date with time its whole minute, in the user's local time
|
|
6
|
+
* zone. A missing side has no bound.
|
|
7
|
+
*/
|
|
8
|
+
export declare const resolveDateRangeFilterValue: (range: DateRangeFilterValue) => {
|
|
9
|
+
start?: Date;
|
|
10
|
+
end?: Date;
|
|
11
|
+
};
|
|
@@ -3,8 +3,30 @@ import { PropertyName } from '../types';
|
|
|
3
3
|
import { RangeCalendarProps } from '../../../Calendar';
|
|
4
4
|
import { ListFilterShape } from '../../../../_bundled/flow-components-base/index';
|
|
5
5
|
import { ReactNode } from 'react';
|
|
6
|
+
import { DateValue } from '@internationalized/date';
|
|
6
7
|
export type { FilterMatcher, FilterMode, FilterUpdatedCallback, } from '../../../../_bundled/flow-components-base/index';
|
|
7
8
|
export interface FilterShape<T, TProp extends PropertyName<T>, TMatcherValue> extends ListFilterShape<T, TProp, TMatcherValue, ReactNode> {
|
|
8
|
-
dateRangeOptions?:
|
|
9
|
+
dateRangeOptions?: DateRangeFilterOptions;
|
|
10
|
+
}
|
|
11
|
+
export type DateRangeFilterOptions = ({
|
|
12
|
+
/**
|
|
13
|
+
* Whether the filter narrows down by date only, or by date and time.
|
|
14
|
+
*
|
|
15
|
+
* @default "day"
|
|
16
|
+
*/
|
|
17
|
+
granularity?: "day";
|
|
18
|
+
} & RangeCalendarProps) | {
|
|
19
|
+
granularity: "minute";
|
|
20
|
+
minValue?: DateValue | null;
|
|
21
|
+
maxValue?: DateValue | null;
|
|
22
|
+
isDateUnavailable?: (date: DateValue) => boolean;
|
|
23
|
+
};
|
|
24
|
+
/**
|
|
25
|
+
* A date covers its whole day, a date with time its whole minute. A missing
|
|
26
|
+
* side has no bound.
|
|
27
|
+
*/
|
|
28
|
+
export interface DateRangeFilterValue {
|
|
29
|
+
start?: DateValue;
|
|
30
|
+
end?: DateValue;
|
|
9
31
|
}
|
|
10
32
|
export type AnyDateRangeFilter = DateRangeFilter | DateRangeFilter<any, any>;
|
|
@@ -2,7 +2,15 @@ import { DependencyList, HTMLAttributeAnchorTarget, ReactElement, ReactNode } fr
|
|
|
2
2
|
import { RenderItemFn } from './types';
|
|
3
3
|
import { default as List } from '../List';
|
|
4
4
|
export interface ItemViewShape<T> {
|
|
5
|
+
/**
|
|
6
|
+
* Runs on every render of the list to tell whether the item changed, so it
|
|
7
|
+
* should be cheap and pure.
|
|
8
|
+
*/
|
|
5
9
|
textValue?: (data: T) => string;
|
|
10
|
+
/**
|
|
11
|
+
* Runs on every render of the list to tell whether the item changed, so it
|
|
12
|
+
* should be cheap and pure.
|
|
13
|
+
*/
|
|
6
14
|
href?: (data: T) => string;
|
|
7
15
|
target?: HTMLAttributeAnchorTarget;
|
|
8
16
|
defaultExpanded?: (data: T) => boolean;
|
|
@@ -14,14 +22,23 @@ export interface ItemViewShape<T> {
|
|
|
14
22
|
showTiles?: boolean;
|
|
15
23
|
tileMaxWidth?: number;
|
|
16
24
|
/**
|
|
17
|
-
*
|
|
25
|
+
* Everything the render function reads besides the item's data.
|
|
18
26
|
*
|
|
19
|
-
*
|
|
20
|
-
*
|
|
21
|
-
* inline in JSX
|
|
22
|
-
*
|
|
23
|
-
*
|
|
24
|
-
*
|
|
27
|
+
* With `renderDependencies`, an item re-renders only when its data or one of
|
|
28
|
+
* these values changes. The render function's identity no longer counts, so a
|
|
29
|
+
* function written inline in JSX keeps the item from re-rendering on every
|
|
30
|
+
* render of its parent. List every value it reads from outside the item,
|
|
31
|
+
* including state read through the `list` argument — one left out keeps the
|
|
32
|
+
* item on the value it last rendered.
|
|
33
|
+
*
|
|
34
|
+
* Without it, an item re-renders whenever its render function changes
|
|
35
|
+
* identity, which an inline function does on every render of its parent.
|
|
36
|
+
*/
|
|
37
|
+
renderDependencies?: DependencyList;
|
|
38
|
+
/**
|
|
39
|
+
* @deprecated Use `renderDependencies` instead. `dependencies` only adds to
|
|
40
|
+
* the render function's identity, so an inline render function still
|
|
41
|
+
* re-renders the item on every render of its parent.
|
|
25
42
|
*/
|
|
26
43
|
dependencies?: DependencyList;
|
|
27
44
|
}
|
|
@@ -35,15 +52,21 @@ export declare class ItemView<T> {
|
|
|
35
52
|
readonly showTiles?: boolean;
|
|
36
53
|
readonly showList?: boolean;
|
|
37
54
|
readonly tileMaxWidth: number;
|
|
55
|
+
readonly renderDependencies?: DependencyList;
|
|
38
56
|
readonly dependencies?: DependencyList;
|
|
39
57
|
private readonly renderFn?;
|
|
58
|
+
private lastComparison?;
|
|
40
59
|
constructor(list: List<T>, shape?: ItemViewShape<T>);
|
|
41
60
|
private static fallbackRenderItemFn;
|
|
42
61
|
/**
|
|
43
|
-
* Whether `other` would render
|
|
44
|
-
*
|
|
45
|
-
* and the dependencies
|
|
62
|
+
* Whether `other` would render the item holding `data` identically. The
|
|
63
|
+
* render function counts by its `renderDependencies` where given, otherwise
|
|
64
|
+
* by its identity and the deprecated `dependencies`. `textValue` and `href`
|
|
65
|
+
* count by what they return for `data`, so inline functions do not re-render
|
|
66
|
+
* the item. `defaultExpanded` is read on mount only, so it does not count at
|
|
67
|
+
* all.
|
|
46
68
|
*/
|
|
47
|
-
|
|
69
|
+
rendersSameFor(other: ItemView<T> | undefined, data: T): boolean;
|
|
70
|
+
private rendersSameContentAs;
|
|
48
71
|
render(data: T): ReactNode;
|
|
49
72
|
}
|
|
@@ -8,4 +8,11 @@ export declare class Table<T> {
|
|
|
8
8
|
readonly body: TableBody<T>;
|
|
9
9
|
readonly componentProps: TableSupportedComponentProps;
|
|
10
10
|
constructor(list: List<T>, shape?: TableShape<T>);
|
|
11
|
+
/**
|
|
12
|
+
* Whether `other` would render the table identically, rows aside. Like
|
|
13
|
+
* `TableRow.rendersSameAs`, it only holds for rows that declare
|
|
14
|
+
* `renderDependencies`. Props count by identity, one by one, including the
|
|
15
|
+
* list's own.
|
|
16
|
+
*/
|
|
17
|
+
rendersSameAs(other?: Table<T>): boolean;
|
|
11
18
|
}
|
|
@@ -1,9 +1,23 @@
|
|
|
1
1
|
import { TableRowShape, TableRowSupportedComponentProps } from './types';
|
|
2
2
|
import { TableCell } from './TableCell';
|
|
3
3
|
import { TableBody } from './TableBody';
|
|
4
|
+
import { DependencyList } from 'react';
|
|
4
5
|
export declare class TableRow<T> {
|
|
5
6
|
readonly tableBody: TableBody<T>;
|
|
6
7
|
readonly cells: TableCell<T>[];
|
|
7
8
|
readonly componentProps: TableRowSupportedComponentProps;
|
|
9
|
+
readonly renderDependencies?: DependencyList;
|
|
10
|
+
private lastComparison?;
|
|
8
11
|
constructor(tableBody: TableBody<T>, shape?: TableRowShape<T>);
|
|
12
|
+
/**
|
|
13
|
+
* Whether `other` would render a row identically. Only rows that declare
|
|
14
|
+
* `renderDependencies` can tell, since the cells' render functions count by
|
|
15
|
+
* those instead of their identity. Rows without them always re-render. Row
|
|
16
|
+
* and cell props count by identity, one by one.
|
|
17
|
+
*
|
|
18
|
+
* Every row of a render shares one model, so the result is cached for the
|
|
19
|
+
* last `other`.
|
|
20
|
+
*/
|
|
21
|
+
rendersSameAs(other?: TableRow<T>): boolean;
|
|
22
|
+
private compareWith;
|
|
9
23
|
}
|