@rio-cloud/rio-uikit 1.1.0 → 1.2.1

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 (128) hide show
  1. package/.DS_Store +0 -0
  2. package/DropdownHeader.d.ts +2 -0
  3. package/DropdownHeader.js +2 -0
  4. package/FeedbackInlineButtons.d.ts +2 -0
  5. package/FeedbackInlineButtons.js +2 -0
  6. package/FeedbackRating.d.ts +2 -0
  7. package/FeedbackRating.js +2 -0
  8. package/FeedbackReactions.d.ts +2 -0
  9. package/FeedbackReactions.js +2 -0
  10. package/MapAdditionalLayerSettings.d.ts +2 -0
  11. package/MapAdditionalLayerSettings.js +2 -0
  12. package/MapSettingsDropdownHeader.d.ts +2 -0
  13. package/MapSettingsDropdownHeader.js +2 -0
  14. package/SmoothScrollbars.d.ts +2 -0
  15. package/SmoothScrollbars.js +2 -0
  16. package/components/.DS_Store +0 -0
  17. package/components/assetTree/TreeLeaf.js +1 -1
  18. package/components/assetTree/TreeNode.js +1 -1
  19. package/components/assetTree/TreeRoot.js +1 -1
  20. package/components/checkbox/Checkbox.js +1 -1
  21. package/components/feedback/FeedbackInlineButtons.d.ts +13 -0
  22. package/components/feedback/FeedbackInlineButtons.js +9 -0
  23. package/components/feedback/FeedbackRating.d.ts +65 -0
  24. package/components/feedback/FeedbackRating.js +23 -0
  25. package/components/feedback/FeedbackReactions.d.ts +71 -0
  26. package/components/feedback/FeedbackReactions.js +26 -0
  27. package/components/listMenu/ListMenu.d.ts +5 -1
  28. package/components/listMenu/ListMenu.js +2 -2
  29. package/components/map/.DS_Store +0 -0
  30. package/components/map/components/.DS_Store +0 -0
  31. package/components/map/components/features/settings/MapSettingsItem.d.ts +1 -0
  32. package/components/map/components/features/settings/MapSettingsItem.js +14 -11
  33. package/components/map/components/features/settings/MapSettingsTile.d.ts +3 -2
  34. package/components/map/components/features/settings/MapSettingsTile.js +40 -5
  35. package/components/map/components/features/settings/builtinSettings/MapAdditionalLayerSettings.d.ts +9 -0
  36. package/components/map/components/features/settings/builtinSettings/MapAdditionalLayerSettings.js +15 -0
  37. package/components/map/components/features/settings/builtinSettings/MapClusterSettings.d.ts +3 -0
  38. package/components/map/components/features/settings/builtinSettings/MapClusterSettings.js +8 -2
  39. package/components/map/components/features/settings/builtinSettings/MapLayerSettings.js +15 -9
  40. package/components/map/components/features/settings/builtinSettings/MapTypeSettings.d.ts +6 -0
  41. package/components/map/components/features/settings/builtinSettings/MapTypeSettings.js +20 -2
  42. package/components/map/components/features/settings/buttons/MapCenterMarkerButton.js +2 -2
  43. package/components/map/components/features/settings/items/MapCustomerPoiSettingsItem.d.ts +2 -0
  44. package/components/map/components/features/settings/items/MapLayerIncidentsItem.d.ts +2 -0
  45. package/components/map/components/features/settings/items/MapLayerRoadRestrictionsItem.d.ts +2 -0
  46. package/components/map/components/features/settings/items/MapLayerTrafficItem.d.ts +2 -0
  47. package/components/map/components/features/settings/items/MapSettingsDropdownHeader.d.ts +4 -0
  48. package/components/map/components/features/settings/items/MapSettingsDropdownHeader.js +9 -0
  49. package/components/map/components/features/settings/items/MapWorkshopPoiSettingsItem.d.ts +2 -0
  50. package/components/map/icons/MapIcon.d.ts +1 -2
  51. package/components/map/icons/MapIcon.js +3 -1
  52. package/components/mapMarker/ClusterMapMarker.d.ts +4 -0
  53. package/components/mapMarker/ClusterMapMarker.js +2 -2
  54. package/components/mapMarker/SingleMapMarker.d.ts +4 -0
  55. package/components/mapMarker/SingleMapMarker.js +3 -3
  56. package/components/selects/DropdownHeader.d.ts +1 -0
  57. package/components/selects/DropdownHeader.js +2 -2
  58. package/components/selects/Multiselect.js +2 -2
  59. package/components/selects/MultiselectToggleFilter.js +1 -1
  60. package/components/states/CustomState.js +2 -2
  61. package/hooks/useAfterMount.js +8 -4
  62. package/lib/.DS_Store +0 -0
  63. package/lib/es/.DS_Store +0 -0
  64. package/lib/es/DropdownHeader.d.ts +2 -0
  65. package/lib/es/DropdownHeader.js +7 -0
  66. package/lib/es/FeedbackInlineButtons.d.ts +2 -0
  67. package/lib/es/FeedbackInlineButtons.js +7 -0
  68. package/lib/es/FeedbackRating.d.ts +2 -0
  69. package/lib/es/FeedbackRating.js +7 -0
  70. package/lib/es/FeedbackReactions.d.ts +2 -0
  71. package/lib/es/FeedbackReactions.js +7 -0
  72. package/lib/es/MapAdditionalLayerSettings.d.ts +2 -0
  73. package/lib/es/MapAdditionalLayerSettings.js +7 -0
  74. package/lib/es/MapSettingsDropdownHeader.d.ts +2 -0
  75. package/lib/es/MapSettingsDropdownHeader.js +7 -0
  76. package/lib/es/SmoothScrollbars.d.ts +2 -0
  77. package/lib/es/SmoothScrollbars.js +7 -0
  78. package/lib/es/components/.DS_Store +0 -0
  79. package/lib/es/components/assetTree/TreeLeaf.js +1 -1
  80. package/lib/es/components/assetTree/TreeNode.js +1 -1
  81. package/lib/es/components/assetTree/TreeRoot.js +1 -1
  82. package/lib/es/components/checkbox/Checkbox.js +1 -1
  83. package/lib/es/components/feedback/FeedbackInlineButtons.d.ts +13 -0
  84. package/lib/es/components/feedback/FeedbackInlineButtons.js +11 -0
  85. package/lib/es/components/feedback/FeedbackRating.d.ts +65 -0
  86. package/lib/es/components/feedback/FeedbackRating.js +25 -0
  87. package/lib/es/components/feedback/FeedbackReactions.d.ts +71 -0
  88. package/lib/es/components/feedback/FeedbackReactions.js +28 -0
  89. package/lib/es/components/listMenu/ListMenu.d.ts +5 -1
  90. package/lib/es/components/listMenu/ListMenu.js +2 -2
  91. package/lib/es/components/map/components/features/settings/MapSettingsItem.d.ts +1 -0
  92. package/lib/es/components/map/components/features/settings/MapSettingsItem.js +13 -10
  93. package/lib/es/components/map/components/features/settings/MapSettingsTile.d.ts +3 -2
  94. package/lib/es/components/map/components/features/settings/MapSettingsTile.js +39 -4
  95. package/lib/es/components/map/components/features/settings/builtinSettings/MapAdditionalLayerSettings.d.ts +9 -0
  96. package/lib/es/components/map/components/features/settings/builtinSettings/MapAdditionalLayerSettings.js +17 -0
  97. package/lib/es/components/map/components/features/settings/builtinSettings/MapClusterSettings.d.ts +3 -0
  98. package/lib/es/components/map/components/features/settings/builtinSettings/MapClusterSettings.js +8 -2
  99. package/lib/es/components/map/components/features/settings/builtinSettings/MapLayerSettings.js +14 -8
  100. package/lib/es/components/map/components/features/settings/builtinSettings/MapTypeSettings.d.ts +6 -0
  101. package/lib/es/components/map/components/features/settings/builtinSettings/MapTypeSettings.js +20 -2
  102. package/lib/es/components/map/components/features/settings/buttons/MapCenterMarkerButton.js +1 -1
  103. package/lib/es/components/map/components/features/settings/items/MapCustomerPoiSettingsItem.d.ts +2 -0
  104. package/lib/es/components/map/components/features/settings/items/MapLayerIncidentsItem.d.ts +2 -0
  105. package/lib/es/components/map/components/features/settings/items/MapLayerRoadRestrictionsItem.d.ts +2 -0
  106. package/lib/es/components/map/components/features/settings/items/MapLayerTrafficItem.d.ts +2 -0
  107. package/lib/es/components/map/components/features/settings/items/MapSettingsDropdownHeader.d.ts +4 -0
  108. package/lib/es/components/map/components/features/settings/items/MapSettingsDropdownHeader.js +11 -0
  109. package/lib/es/components/map/components/features/settings/items/MapWorkshopPoiSettingsItem.d.ts +2 -0
  110. package/lib/es/components/map/icons/MapIcon.d.ts +1 -2
  111. package/lib/es/components/map/icons/MapIcon.js +3 -1
  112. package/lib/es/components/mapMarker/ClusterMapMarker.d.ts +4 -0
  113. package/lib/es/components/mapMarker/ClusterMapMarker.js +2 -2
  114. package/lib/es/components/mapMarker/SingleMapMarker.d.ts +4 -0
  115. package/lib/es/components/mapMarker/SingleMapMarker.js +3 -3
  116. package/lib/es/components/selects/DropdownHeader.d.ts +1 -0
  117. package/lib/es/components/selects/DropdownHeader.js +2 -2
  118. package/lib/es/components/selects/Multiselect.js +1 -1
  119. package/lib/es/components/selects/MultiselectToggleFilter.js +1 -1
  120. package/lib/es/components/states/CustomState.js +2 -2
  121. package/lib/es/hooks/useAfterMount.js +8 -4
  122. package/lib/es/utils/deviceUtils.d.ts +1 -0
  123. package/lib/es/utils/deviceUtils.js +3 -1
  124. package/lib/es/version.json +1 -1
  125. package/package.json +1 -1
  126. package/utils/deviceUtils.d.ts +1 -0
  127. package/utils/deviceUtils.js +1 -0
  128. package/version.json +1 -1
@@ -7,17 +7,23 @@ import union from 'lodash/fp/union';
7
7
  import noop from 'lodash/fp/noop';
8
8
  import MapSettingsPanel from '../MapSettingsPanel';
9
9
  import MapSettingsTile from '../MapSettingsTile';
10
- import { MapIcon, LAYER_ACTIVE, LAYER_INACTIVE } from '../../../../icons/MapIcon';
10
+ import { MapIcon } from '../../../../icons/MapIcon';
11
11
  const MapLayerSettings = (props) => {
12
+ var _a;
12
13
  const { activeBuiltinLayers = [], activeLayers = [], layers = [], onMapLayerChange = noop } = props, remainingProps = __rest(props, ["activeBuiltinLayers", "activeLayers", "layers", "onMapLayerChange"]);
13
14
  const allActiveLayer = union(activeBuiltinLayers, activeLayers);
14
- return (_jsx(MapSettingsTile, Object.assign({ className: 'MapLayerSettings', isActive: !isEmpty(allActiveLayer), activeIcon: _jsx(MapIcon, { name: LAYER_ACTIVE, className: 'MapLayerIcon' }), inactiveIcon: _jsx(MapIcon, { name: LAYER_INACTIVE, className: 'MapLayerIconInactive' }), panel: _jsx(MapSettingsPanel, { children: map(layer => {
15
- var _a;
16
- return React.cloneElement(layer, {
17
- key: (_a = layer === null || layer === void 0 ? void 0 : layer.key) !== null && _a !== void 0 ? _a : `MapLayerSettings_${crypto.randomUUID()}`,
18
- activeBuiltinLayers,
19
- onMapLayerChange,
20
- });
21
- }, layers) }) }, remainingProps)));
15
+ const hasLabels = !!((_a = layers.at(0)) === null || _a === void 0 ? void 0 : _a.props.label);
16
+ const isActive = !isEmpty(allActiveLayer);
17
+ // Inject onMapLayerChange from the MapContext which will be handled
18
+ // in the main Map component.
19
+ const enrichedLayers = map(layer => {
20
+ var _a;
21
+ return React.cloneElement(layer, {
22
+ key: (_a = layer === null || layer === void 0 ? void 0 : layer.key) !== null && _a !== void 0 ? _a : `MapLayerSettings_${crypto.randomUUID()}`,
23
+ activeBuiltinLayers,
24
+ onMapLayerChange,
25
+ });
26
+ }, layers);
27
+ return (_jsx(MapSettingsTile, Object.assign({ className: 'MapLayerSettings', isActive: isActive, activeIcon: isActive ? (_jsx(MapIcon, { name: 'rioglyph-construction text-color-primary', className: 'MapLayerIcon' })) : undefined, inactiveIcon: !isActive ? (_jsx(MapIcon, { name: 'rioglyph-construction text-color-gray', className: 'MapLayerIconInactive' })) : undefined, items: hasLabels ? enrichedLayers : undefined, panel: !hasLabels && _jsx(MapSettingsPanel, { children: enrichedLayers }) }, remainingProps)));
22
28
  };
23
29
  export default MapLayerSettings;
@@ -4,7 +4,13 @@ export type MapTypeSettingsProps = {
4
4
  mapType?: string;
5
5
  enableNightMap?: boolean;
6
6
  onMapTypeChange?: () => MapType;
7
+ defaultTypeLabel?: string | JSX.Element;
8
+ truckTypeLabel?: string | JSX.Element;
9
+ terrainTypeLabel?: string | JSX.Element;
10
+ satelliteTypeLabel?: string | JSX.Element;
11
+ nightTypeLabel?: string | JSX.Element;
7
12
  tooltip?: string | React.ReactNode;
13
+ dropdownHeaderText?: string | JSX.Element;
8
14
  };
9
15
  declare const MapTypeSettings: (props: MapTypeSettingsProps) => import("react/jsx-runtime").JSX.Element;
10
16
  export default MapTypeSettings;
@@ -2,13 +2,15 @@ import { __rest } from "tslib";
2
2
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
3
  import { useMemo } from 'react';
4
4
  import noop from 'lodash/fp/noop';
5
+ import compact from 'lodash/fp/compact';
5
6
  import { MAP_TYPE_DEFAULT, MAP_TYPE_FLEET_STYLE, MAP_TYPE_NIGHT, MAP_TYPE_SATELLITE, MAP_TYPE_TERRAIN, } from '../../../constants';
6
7
  import MapSettingsPanel from '../MapSettingsPanel';
7
8
  import MapSettingsItem from '../MapSettingsItem';
8
9
  import MapSettingsTile from '../MapSettingsTile';
9
10
  import { MapIcon, MAP_TYPE_FLAT_ACTIVE, MAP_TYPE_FLAT_INACTIVE, MAP_TYPE_FLAT_TRUCK_ACTIVE, MAP_TYPE_FLAT_TRUCK_INACTIVE, MAP_TYPE_SATELLITE_ACTIVE, MAP_TYPE_SATELLITE_INACTIVE, MAP_TYPE_TERRAIN_ACTIVE, MAP_TYPE_TERRAIN_INACTIVE, MAP_TYPE_NIGHT_ACTIVE, MAP_TYPE_NIGHT_INACTIVE, } from '../../../../icons/MapIcon';
11
+ import MapSettingsDropdownHeader from '../items/MapSettingsDropdownHeader';
10
12
  const MapTypeSettings = (props) => {
11
- const { mapType, onMapTypeChange = noop, enableNightMap = true } = props, remainingProps = __rest(props, ["mapType", "onMapTypeChange", "enableNightMap"]);
13
+ const { mapType, onMapTypeChange = noop, enableNightMap = true, defaultTypeLabel, truckTypeLabel, terrainTypeLabel, satelliteTypeLabel, nightTypeLabel, dropdownHeaderText } = props, remainingProps = __rest(props, ["mapType", "onMapTypeChange", "enableNightMap", "defaultTypeLabel", "truckTypeLabel", "terrainTypeLabel", "satelliteTypeLabel", "nightTypeLabel", "dropdownHeaderText"]);
12
14
  const type = useMemo(() => ({
13
15
  isDefault: mapType === MAP_TYPE_DEFAULT,
14
16
  isFleetStyle: mapType === MAP_TYPE_FLEET_STYLE,
@@ -33,6 +35,22 @@ const MapTypeSettings = (props) => {
33
35
  return _jsx(MapIcon, { name: MAP_TYPE_NIGHT_INACTIVE });
34
36
  }
35
37
  };
36
- return (_jsx(MapSettingsTile, Object.assign({ className: 'MapTypeSettings', inactiveIcon: getIcon(type), panel: _jsxs(MapSettingsPanel, { children: [enableNightMap && (_jsx(MapSettingsItem, { className: 'MapTypeNight', onClick: () => onMapTypeChange(MAP_TYPE_NIGHT), isActive: type.isNight, activeIcon: _jsx(MapIcon, { name: MAP_TYPE_NIGHT_ACTIVE }), inactiveIcon: _jsx(MapIcon, { name: MAP_TYPE_NIGHT_INACTIVE }) })), _jsx(MapSettingsItem, { className: 'MapTypeSatelite', onClick: () => onMapTypeChange(MAP_TYPE_SATELLITE), isActive: type.isSatellite, activeIcon: _jsx(MapIcon, { name: MAP_TYPE_SATELLITE_ACTIVE }), inactiveIcon: _jsx(MapIcon, { name: MAP_TYPE_SATELLITE_INACTIVE }) }), _jsx(MapSettingsItem, { className: 'MapTypeTerrain', onClick: () => onMapTypeChange(MAP_TYPE_TERRAIN), isActive: type.isTerrain, activeIcon: _jsx(MapIcon, { name: MAP_TYPE_TERRAIN_ACTIVE }), inactiveIcon: _jsx(MapIcon, { name: MAP_TYPE_TERRAIN_INACTIVE }) }), _jsx(MapSettingsItem, { className: 'MapTypeFlatTruck', onClick: () => onMapTypeChange(MAP_TYPE_FLEET_STYLE), isActive: type.isFleetStyle, activeIcon: _jsx(MapIcon, { name: MAP_TYPE_FLAT_TRUCK_ACTIVE }), inactiveIcon: _jsx(MapIcon, { name: MAP_TYPE_FLAT_TRUCK_INACTIVE }) }), _jsx(MapSettingsItem, { className: 'MapTypeFlat', onClick: () => onMapTypeChange(MAP_TYPE_DEFAULT), isActive: type.isDefault, activeIcon: _jsx(MapIcon, { name: MAP_TYPE_FLAT_ACTIVE }), inactiveIcon: _jsx(MapIcon, { name: MAP_TYPE_FLAT_INACTIVE }) })] }) }, remainingProps)));
38
+ const dropdownHeader = dropdownHeaderText && (_jsx(MapSettingsDropdownHeader, { label: dropdownHeaderText }, 'mapTypeDropdownHeader'));
39
+ const mapTypeNight = (_jsx(MapSettingsItem, { className: 'MapTypeNight', onClick: () => onMapTypeChange(MAP_TYPE_NIGHT), isActive: type.isNight, activeIcon: _jsx(MapIcon, { name: MAP_TYPE_NIGHT_ACTIVE }), inactiveIcon: _jsx(MapIcon, { name: MAP_TYPE_NIGHT_INACTIVE }), label: nightTypeLabel }, 'MapTypeNight'));
40
+ const mapTypeSatellite = (_jsx(MapSettingsItem, { className: 'MapTypeSatellite', onClick: () => onMapTypeChange(MAP_TYPE_SATELLITE), isActive: type.isSatellite, activeIcon: _jsx(MapIcon, { name: MAP_TYPE_SATELLITE_ACTIVE }), inactiveIcon: _jsx(MapIcon, { name: MAP_TYPE_SATELLITE_INACTIVE }), label: satelliteTypeLabel }, 'MapTypeSatellite'));
41
+ const mapTypeTerrain = (_jsx(MapSettingsItem, { className: 'MapTypeTerrain', onClick: () => onMapTypeChange(MAP_TYPE_TERRAIN), isActive: type.isTerrain, activeIcon: _jsx(MapIcon, { name: MAP_TYPE_TERRAIN_ACTIVE }), inactiveIcon: _jsx(MapIcon, { name: MAP_TYPE_TERRAIN_INACTIVE }), label: terrainTypeLabel }, 'MapTypeTerrain'));
42
+ const mapTypeTruck = (_jsx(MapSettingsItem, { className: 'MapTypeFlatTruck', onClick: () => onMapTypeChange(MAP_TYPE_FLEET_STYLE), isActive: type.isFleetStyle, activeIcon: _jsx(MapIcon, { name: MAP_TYPE_FLAT_TRUCK_ACTIVE }), inactiveIcon: _jsx(MapIcon, { name: MAP_TYPE_FLAT_TRUCK_INACTIVE }), label: truckTypeLabel }, 'MapTypeFlatTruck'));
43
+ const mapTypeDefault = (_jsx(MapSettingsItem, { className: 'MapTypeFlat', onClick: () => onMapTypeChange(MAP_TYPE_DEFAULT), isActive: type.isDefault, activeIcon: _jsx(MapIcon, { name: MAP_TYPE_FLAT_ACTIVE }), inactiveIcon: _jsx(MapIcon, { name: MAP_TYPE_FLAT_INACTIVE }), label: defaultTypeLabel }, 'MapTypeFlat'));
44
+ const hasLabels = !!defaultTypeLabel || !!truckTypeLabel || !!terrainTypeLabel || !!satelliteTypeLabel || !!nightTypeLabel;
45
+ return (_jsx(MapSettingsTile, Object.assign({ className: 'MapTypeSettings', inactiveIcon: getIcon(type), items: hasLabels
46
+ ? compact([
47
+ dropdownHeader,
48
+ mapTypeNight,
49
+ mapTypeSatellite,
50
+ mapTypeTerrain,
51
+ mapTypeTruck,
52
+ mapTypeDefault,
53
+ ])
54
+ : undefined, panel: !hasLabels && (_jsxs(MapSettingsPanel, { children: [enableNightMap && mapTypeNight, mapTypeSatellite, mapTypeTerrain, mapTypeTruck, mapTypeDefault] })) }, remainingProps)));
37
55
  };
38
56
  export default MapTypeSettings;
@@ -3,9 +3,9 @@ import { jsx as _jsx } from "react/jsx-runtime";
3
3
  // @ts-ignore-next-line importsNotUsedAsValues
4
4
  import 'react';
5
5
  import MapSettingsTile from '../MapSettingsTile';
6
- import { MapIcon, CENTER_MARKER_ACTIVE, CENTER_MARKER_INACTIVE } from '../../../../icons/MapIcon';
6
+ import { MapIcon } from '../../../../icons/MapIcon';
7
7
  const MapCenterMarkerButton = (props) => {
8
8
  const { isActive = false, onToggle } = props, remainingProps = __rest(props, ["isActive", "onToggle"]);
9
- return (_jsx(MapSettingsTile, Object.assign({ className: 'MapCenterMarkerButton', isActive: isActive, activeIcon: _jsx(MapIcon, { name: CENTER_MARKER_ACTIVE, className: 'MapCenterMarkerButtonIcon' }), inactiveIcon: _jsx(MapIcon, { name: CENTER_MARKER_INACTIVE, className: 'MapCenterMarkerButtonIconInactive' }), onToggle: onToggle }, remainingProps)));
9
+ return (_jsx(MapSettingsTile, Object.assign({ className: 'MapCenterMarkerButton', isActive: isActive, activeIcon: isActive ? (_jsx(MapIcon, { name: 'rioglyph-position text-color-primary', className: 'MapCenterMarkerButtonIcon' })) : undefined, inactiveIcon: !isActive ? (_jsx(MapIcon, { name: 'rioglyph-position text-color-gray', className: 'MapCenterMarkerButtonIconInactive' })) : undefined, onToggle: onToggle }, remainingProps)));
10
10
  };
11
11
  export default MapCenterMarkerButton;
@@ -1,6 +1,8 @@
1
+ /// <reference types="react" />
1
2
  export type MapCustomerPoiSettingsItemProps = {
2
3
  onToggle?: (setIsShown: boolean) => void;
3
4
  isActive?: boolean;
5
+ label?: string | JSX.Element;
4
6
  };
5
7
  declare const MapCustomerPoiSettingsItem: (props: MapCustomerPoiSettingsItemProps) => import("react/jsx-runtime").JSX.Element;
6
8
  export default MapCustomerPoiSettingsItem;
@@ -1,5 +1,7 @@
1
+ /// <reference types="react" />
1
2
  export type MapLayerIncidentsItemProps = {
2
3
  activeBuiltinLayers?: string[];
4
+ label?: string | JSX.Element;
3
5
  onToggle?: () => void;
4
6
  onMapLayerChange?: (layer: string) => string;
5
7
  };
@@ -1,5 +1,7 @@
1
+ /// <reference types="react" />
1
2
  export type MapLayerRoadRestrictionsItemProps = {
2
3
  activeBuiltinLayers?: string[];
4
+ label?: string | JSX.Element;
3
5
  onToggle?: () => void;
4
6
  onMapLayerChange?: (layer: string) => string;
5
7
  };
@@ -1,5 +1,7 @@
1
+ /// <reference types="react" />
1
2
  export type MapLayerTrafficItemProps = {
2
3
  activeBuiltinLayers?: string[];
4
+ label?: string | JSX.Element;
3
5
  onToggle?: () => void;
4
6
  onMapLayerChange?: (layer: string) => string;
5
7
  };
@@ -0,0 +1,4 @@
1
+ import { type DropdownHeaderProps } from '../../../../../selects/DropdownHeader';
2
+ export type MapSettingsDropdownHeaderProps = DropdownHeaderProps & {};
3
+ declare const MapSettingsDropdownHeader: (props: MapSettingsDropdownHeaderProps) => import("react/jsx-runtime").JSX.Element;
4
+ export default MapSettingsDropdownHeader;
@@ -0,0 +1,9 @@
1
+ import { __rest } from "tslib";
2
+ import { jsx as _jsx } from "react/jsx-runtime";
3
+ import 'react';
4
+ import DropdownHeader from '../../../../../selects/DropdownHeader';
5
+ const MapSettingsDropdownHeader = (props) => {
6
+ const remainingProps = __rest(props, []);
7
+ return _jsx(DropdownHeader, Object.assign({ className: 'MapSettingsDropdownHeader' }, remainingProps));
8
+ };
9
+ export default MapSettingsDropdownHeader;
@@ -1,6 +1,8 @@
1
+ /// <reference types="react" />
1
2
  export type MapWorkshopPoiSettingsItemProps = {
2
3
  onToggle?: (setIsShown: boolean) => void;
3
4
  isActive?: boolean;
5
+ label?: string | JSX.Element;
4
6
  };
5
7
  declare const MapWorkshopPoiSettingsItem: (props: MapWorkshopPoiSettingsItemProps) => import("react/jsx-runtime").JSX.Element;
6
8
  export default MapWorkshopPoiSettingsItem;
@@ -1,11 +1,10 @@
1
- import React from 'react';
2
1
  export type MapIconProps = {
3
2
  name?: string;
4
3
  height?: number;
5
4
  width?: number;
6
5
  className?: string;
7
6
  };
8
- export declare const MapIcon: (props: MapIconProps) => React.FunctionComponentElement<any>;
7
+ export declare const MapIcon: (props: MapIconProps) => import("react/jsx-runtime").JSX.Element;
9
8
  export declare const ZOOM_IN = "zoomIn";
10
9
  export declare const ZOOM_OUT = "zoomOut";
11
10
  export declare const BOUNDING_BOX_ACTIVE = "boundingBoxActive";
@@ -3,7 +3,9 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
3
  import React from 'react';
4
4
  export const MapIcon = (props) => {
5
5
  const { className = '', name = '', height = 40, width = 40 } = props;
6
- // const fillColor = active ? '#30B4C0' : '#A7AFBB';
6
+ if (name.includes('rioglyph')) {
7
+ return (_jsx("div", Object.assign({ className: 'height-40 width-40 text-size-16 display-grid place-items-center hover-scale-110' }, { children: _jsx("span", { className: `rioglyph ${name} text-size-200pct` }) })));
8
+ }
7
9
  return React.cloneElement(icons[name], {
8
10
  className,
9
11
  height,
@@ -48,6 +48,10 @@ export type ClusterMapMarkerProps = {
48
48
  * Name of a rioglyph icon.
49
49
  */
50
50
  iconName?: string;
51
+ /**
52
+ * Marker cursor
53
+ */
54
+ cursor?: 'cursor-pointer' | 'cursor-grab' | 'cursor-not-allowed';
51
55
  };
52
56
  declare const ClusterMapMarker: (props: ClusterMapMarkerProps) => import("react/jsx-runtime").JSX.Element;
53
57
  export default ClusterMapMarker;
@@ -3,8 +3,8 @@ import 'react';
3
3
  import classNames from 'classnames';
4
4
  import { markerColorMapping } from '../map/utils/mapTypes';
5
5
  const ClusterMapMarker = (props) => {
6
- const { count, exceptionCount = 0, markerColor = 'bg-map-marker-asset', warningCount = 0, active = false, clickable = true, iconName, } = props;
7
- const clusterClasses = classNames('rio-map-cluster-circle', active && 'active');
6
+ const { count, exceptionCount = 0, markerColor = 'bg-map-marker-asset', warningCount = 0, active = false, clickable = true, iconName, cursor = 'cursor-pointer', } = props;
7
+ const clusterClasses = classNames('rio-map-cluster-circle', active && 'active', cursor);
8
8
  const classes = classNames(active && 'active', 'rio-map-marker', 'rio-map-marker-center-center', !clickable && 'not-clickable');
9
9
  const markerBackgroundColor = `var(${markerColorMapping[markerColor]})`;
10
10
  return (_jsx("div", Object.assign({ className: classes, style: { color: markerBackgroundColor }, "data-marker-type": markerColor.replace('bg-', 'cluster-') }, { children: _jsx("div", Object.assign({ className: 'rio-map-marker-translate' }, { children: _jsxs("div", Object.assign({ className: 'rio-map-cluster' }, { children: [_jsx("div", Object.assign({ className: clusterClasses }, { children: _jsxs("div", Object.assign({ className: 'rio-map-cluster-content' }, { children: [iconName && _jsx("div", { className: `rio-map-icon rioglyph rioglyph-${iconName}` }), _jsx("div", Object.assign({ className: 'rio-map-count' }, { children: count }))] })) })), exceptionCount > 0 && _jsx("div", Object.assign({ className: 'rio-map-bubble exception' }, { children: exceptionCount })), warningCount > 0 && _jsx("div", Object.assign({ className: 'rio-map-bubble warning' }, { children: warningCount }))] })) })) })));
@@ -114,6 +114,10 @@ export type SingleMapMarkerProps = {
114
114
  * Shows only the anchor without the rest of the marker.
115
115
  */
116
116
  anchorOnly?: boolean;
117
+ /**
118
+ * Marker cursor
119
+ */
120
+ cursor?: 'cursor-pointer' | 'cursor-grab' | 'cursor-not-allowed';
117
121
  };
118
122
  declare const SingleMapMarker: (props: SingleMapMarkerProps) => import("react/jsx-runtime").JSX.Element;
119
123
  export default SingleMapMarker;
@@ -16,11 +16,11 @@ const MapStateIndicator = (props) => {
16
16
  };
17
17
  const getIcons = (iconNames = []) => iconNames.map((name, index) => (_jsx("div", { className: `rio-map-icon rioglyph rioglyph-${name}` }, `rio-map-icon-${name}-${index}`)));
18
18
  const SingleMapMarker = (props) => {
19
- const { bearing = DEFAULT_BEARING, name, warningCount = 0, exceptionCount = 0, active = false, clickable = true, fixed = false, moving = false, pinging = false, anchorIconName, stateIconName, iconNames, markerColor = 'bg-map-marker-asset', textColor, anchorSize, markerOnHover = false, anchorOnly = !name && !iconNames, } = props;
19
+ const { bearing = DEFAULT_BEARING, name, warningCount = 0, exceptionCount = 0, active = false, clickable = true, fixed = false, moving = false, pinging = false, anchorIconName, stateIconName, iconNames, markerColor = 'bg-map-marker-asset', textColor, anchorSize, markerOnHover = false, anchorOnly = !name && !iconNames, cursor = 'cursor-pointer', } = props;
20
20
  const largeAnchor = anchorSize === 'lg';
21
21
  const classes = classNames(active && 'active', 'rio-map-marker', 'rio-map-marker-bottom-center', !clickable && 'not-clickable');
22
- const anchorClasses = classNames('rio-map-anchor', largeAnchor ? 'rio-map-anchor-lg' : '');
23
- const singleClasses = classNames('rio-map-single', fixed && 'fixed', moving && 'moving', textColor, markerOnHover && 'visible-on-hover', active && 'active', pinging && 'pinging');
22
+ const anchorClasses = classNames('rio-map-anchor', largeAnchor ? 'rio-map-anchor-lg' : '', cursor);
23
+ const singleClasses = classNames('rio-map-single', fixed && 'fixed', moving && 'moving', textColor, markerOnHover && 'visible-on-hover', active && 'active', pinging && 'pinging', cursor);
24
24
  const markerBackgroundColor = `var(${markerColorMapping[markerColor]})`;
25
25
  return (_jsx("div", Object.assign({ className: classes, style: { color: markerBackgroundColor }, "data-marker-type": markerColor.replace('bg-', 'single-') }, { children: _jsxs("div", Object.assign({ className: 'rio-map-marker-translate' }, { children: [!anchorOnly && (_jsxs(_Fragment, { children: [_jsxs("div", Object.assign({ className: singleClasses }, { children: [_jsx(MapStateIndicator, { moving: moving, bearing: bearing, stateIconName: stateIconName }), getIcons(iconNames), name && _jsx("div", Object.assign({ className: 'rio-map-name' }, { children: name })), exceptionCount > 0 && _jsx("div", Object.assign({ className: 'rio-map-bubble exception' }, { children: exceptionCount })), warningCount > 0 && _jsx("div", Object.assign({ className: 'rio-map-bubble warning' }, { children: warningCount }))] })), _jsx("div", { className: 'rio-map-anchor-arrow' })] })), _jsx("div", Object.assign({ className: anchorClasses }, { children: anchorIconName && largeAnchor && _jsx("span", { className: `rioglyph rioglyph-${anchorIconName}` }) }))] })) })));
26
26
  };
@@ -3,6 +3,7 @@ export type DropdownHeaderProps = {
3
3
  icon?: React.ReactNode;
4
4
  center?: boolean;
5
5
  label: string | React.ReactNode;
6
+ className?: string;
6
7
  };
7
8
  declare const DropdownHeader: (props: DropdownHeaderProps) => import("react/jsx-runtime").JSX.Element;
8
9
  export default DropdownHeader;
@@ -2,7 +2,7 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  // @ts-ignore-next-line importsNotUsedAsValues
3
3
  import 'react';
4
4
  const DropdownHeader = (props) => {
5
- const { icon, label, center = true } = props;
6
- return (_jsx("li", Object.assign({ className: `dropdown-header ${center ? 'center' : ''}` }, { children: _jsxs("span", Object.assign({ className: 'dropdown-header-text' }, { children: [icon && _jsx("span", Object.assign({ className: 'margin-right-5' }, { children: icon })), label] })) })));
5
+ const { icon, label, center = true, className = '' } = props;
6
+ return (_jsx("li", Object.assign({ className: `dropdown-header ${center ? 'center' : ''} ${className}` }, { children: _jsxs("span", Object.assign({ className: 'dropdown-header-text' }, { children: [icon && _jsx("span", Object.assign({ className: 'margin-right-5' }, { children: icon })), label] })) })));
7
7
  };
8
8
  export default DropdownHeader;
@@ -1,5 +1,5 @@
1
1
  import { __rest } from "tslib";
2
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
3
3
  // @ts-ignore-next-line importsNotUsedAsValues
4
4
  import { useRef, useState } from 'react';
5
5
  import classNames from 'classnames';
@@ -75,7 +75,7 @@ const Multiselect = (props) => {
75
75
  const wrapperClassNames = classNames('dropdown-toggle', 'form-control', 'text-left', bsSize === 'sm' && 'input-sm', bsSize === 'lg' && 'input-lg', multiline && 'height-auto', disabled && 'disabled');
76
76
  const showPlaceholder = isEmpty(selectedItemIds) && !showUnselectedItemIcons;
77
77
  const showFilter = useFilter && isOpen && !counterMessage && !renderCounterMessage;
78
- const toggleButton = (_jsxs("button", Object.assign({ type: 'button', id: id, name: name, className: wrapperClassNames, "data-toggle": 'dropdown', tabIndex: tabIndex, "aria-haspopup": 'true', "aria-expanded": isOpen, onClick: onToggle, onKeyDown: handleToggleKeyDown, ref: refToggle }, { children: [showPlaceholder ? _jsx(MultiselectTogglePlaceholder, { placeholder: placeholder }) : renderSelection(), showFilter && !multiline && renderFilter(), _jsx("span", { className: 'caret' })] })));
78
+ const toggleButton = (_jsxs("button", Object.assign({ type: 'button', id: id, name: name, className: wrapperClassNames, "data-toggle": 'dropdown', tabIndex: tabIndex, "aria-haspopup": 'true', "aria-expanded": isOpen, onClick: onToggle, onKeyDown: handleToggleKeyDown, ref: refToggle }, { children: [showPlaceholder ? (_jsxs(_Fragment, { children: [_jsx(MultiselectTogglePlaceholder, { placeholder: placeholder }), showFilter && renderFilter()] })) : (renderSelection()), showFilter && !multiline && renderFilter(), _jsx("span", { className: 'caret' })] })));
79
79
  if (!inputAddon && !errorMessage && !warningMessage) {
80
80
  return toggleButton;
81
81
  }
@@ -5,7 +5,7 @@ import classNames from 'classnames';
5
5
  import isEmpty from 'lodash/fp/isEmpty';
6
6
  const MultiselectToggleFilter = (props) => {
7
7
  const { isActive, selectedItemIds, filterValue, multiline, onFilterChange } = props;
8
- const inputClasses = classNames('multiselect-filter-input', isEmpty(selectedItemIds) && 'multiselect-filter-input-placeholder', isActive && 'multiselect-filter-input-active', multiline && 'padding-left-0');
8
+ const inputClasses = classNames('multiselect-filter-input', isEmpty(selectedItemIds) && 'multiselect-filter-input-placeholder', isActive && 'multiselect-filter-input-active');
9
9
  return (_jsx("input", { type: 'text', role: 'searchbox', className: inputClasses,
10
10
  // biome-ignore lint/a11y/noAutofocus: autofocus is intentionally set to allow instant typing to filter
11
11
  autoFocus: true, onChange: onFilterChange, defaultValue: filterValue }));
@@ -19,9 +19,9 @@ const renderButtons = (buttons) => {
19
19
  return (_jsx("div", Object.assign({ className: 'btn-toolbar margin-top-20' }, { children: _jsx(StateButton, Object.assign({}, buttons[0])) })));
20
20
  }
21
21
  if (buttons.length === 2) {
22
- return (_jsx("div", Object.assign({ className: 'btn-toolbar margin-top-20' }, { children: buttons.map((buttonProps, index) => (_jsx(StateButton, Object.assign({}, buttonProps), index))) })));
22
+ return (_jsx("div", Object.assign({ className: 'btn-toolbar margin-top-20 justify-content-center-xs' }, { children: buttons.map((buttonProps, index) => (_jsx(StateButton, Object.assign({}, buttonProps), index))) })));
23
23
  }
24
- return (_jsxs(_Fragment, { children: [_jsxs("div", Object.assign({ className: 'btn-toolbar margin-top-20' }, { children: [_jsx(StateButton, Object.assign({}, buttons[0]), '1'), _jsx(StateButton, Object.assign({}, buttons[1]), '2')] })), _jsx("div", Object.assign({ className: 'btn-toolbar' }, { children: buttons.map((buttonProps, index) => {
24
+ return (_jsxs(_Fragment, { children: [_jsxs("div", Object.assign({ className: 'btn-toolbar margin-top-20 justify-content-center-xs' }, { children: [_jsx(StateButton, Object.assign({}, buttons[0]), '1'), _jsx(StateButton, Object.assign({}, buttons[1]), '2')] })), _jsx("div", Object.assign({ className: 'btn-toolbar' }, { children: buttons.map((buttonProps, index) => {
25
25
  return index > 1 && _jsx(StateButton, Object.assign({}, buttonProps), index);
26
26
  }) }))] }));
27
27
  };
@@ -6,12 +6,16 @@ import { useEffect, useRef } from 'react';
6
6
  * @param deps The deps of the callback (the same as if you were using useCallback or useEffect).
7
7
  */
8
8
  const useAfterMount = (callback, deps) => {
9
- const componentJustMountedRef = useRef(true);
9
+ const hasMountedRef = useRef(false);
10
10
  useEffect(() => {
11
- if (!componentJustMountedRef.current) {
12
- return callback();
11
+ if (hasMountedRef.current) {
12
+ // Run the callback only after the first render and
13
+ // whenever the dependencies change afterwards
14
+ callback();
15
+ }
16
+ else {
17
+ hasMountedRef.current = true;
13
18
  }
14
- componentJustMountedRef.current = false;
15
19
  }, deps);
16
20
  };
17
21
  export default useAfterMount;
package/lib/.DS_Store CHANGED
Binary file
package/lib/es/.DS_Store CHANGED
Binary file
@@ -0,0 +1,2 @@
1
+ export { default } from './components/selects/DropdownHeader';
2
+ export * from './components/selects/DropdownHeader';
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.default = void 0;
4
+ const tslib_1 = require("tslib");
5
+ var DropdownHeader_1 = require("./components/selects/DropdownHeader");
6
+ Object.defineProperty(exports, "default", { enumerable: true, get: function () { return tslib_1.__importDefault(DropdownHeader_1).default; } });
7
+ tslib_1.__exportStar(require("./components/selects/DropdownHeader"), exports);
@@ -0,0 +1,2 @@
1
+ export { default } from './components/feedback/FeedbackInlineButtons';
2
+ export * from './components/feedback/FeedbackInlineButtons';
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.default = void 0;
4
+ const tslib_1 = require("tslib");
5
+ var FeedbackInlineButtons_1 = require("./components/feedback/FeedbackInlineButtons");
6
+ Object.defineProperty(exports, "default", { enumerable: true, get: function () { return tslib_1.__importDefault(FeedbackInlineButtons_1).default; } });
7
+ tslib_1.__exportStar(require("./components/feedback/FeedbackInlineButtons"), exports);
@@ -0,0 +1,2 @@
1
+ export { default } from './components/feedback/FeedbackRating';
2
+ export * from './components/feedback/FeedbackRating';
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.default = void 0;
4
+ const tslib_1 = require("tslib");
5
+ var FeedbackRating_1 = require("./components/feedback/FeedbackRating");
6
+ Object.defineProperty(exports, "default", { enumerable: true, get: function () { return tslib_1.__importDefault(FeedbackRating_1).default; } });
7
+ tslib_1.__exportStar(require("./components/feedback/FeedbackRating"), exports);
@@ -0,0 +1,2 @@
1
+ export { default } from './components/feedback/FeedbackReactions';
2
+ export * from './components/feedback/FeedbackReactions';
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.default = void 0;
4
+ const tslib_1 = require("tslib");
5
+ var FeedbackReactions_1 = require("./components/feedback/FeedbackReactions");
6
+ Object.defineProperty(exports, "default", { enumerable: true, get: function () { return tslib_1.__importDefault(FeedbackReactions_1).default; } });
7
+ tslib_1.__exportStar(require("./components/feedback/FeedbackReactions"), exports);
@@ -0,0 +1,2 @@
1
+ export { default } from './components/map/components/features/settings/builtinSettings/MapAdditionalLayerSettings';
2
+ export * from './components/map/components/features/settings/builtinSettings/MapAdditionalLayerSettings';
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.default = void 0;
4
+ const tslib_1 = require("tslib");
5
+ var MapAdditionalLayerSettings_1 = require("./components/map/components/features/settings/builtinSettings/MapAdditionalLayerSettings");
6
+ Object.defineProperty(exports, "default", { enumerable: true, get: function () { return tslib_1.__importDefault(MapAdditionalLayerSettings_1).default; } });
7
+ tslib_1.__exportStar(require("./components/map/components/features/settings/builtinSettings/MapAdditionalLayerSettings"), exports);
@@ -0,0 +1,2 @@
1
+ export { default } from './components/map/components/features/settings/items/MapSettingsDropdownHeader';
2
+ export * from './components/map/components/features/settings/items/MapSettingsDropdownHeader';
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.default = void 0;
4
+ const tslib_1 = require("tslib");
5
+ var MapSettingsDropdownHeader_1 = require("./components/map/components/features/settings/items/MapSettingsDropdownHeader");
6
+ Object.defineProperty(exports, "default", { enumerable: true, get: function () { return tslib_1.__importDefault(MapSettingsDropdownHeader_1).default; } });
7
+ tslib_1.__exportStar(require("./components/map/components/features/settings/items/MapSettingsDropdownHeader"), exports);
@@ -0,0 +1,2 @@
1
+ export { default } from './components/smoothScrollbars/SmoothScrollbars';
2
+ export * from './components/smoothScrollbars/SmoothScrollbars';
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.default = void 0;
4
+ const tslib_1 = require("tslib");
5
+ var SmoothScrollbars_1 = require("./components/smoothScrollbars/SmoothScrollbars");
6
+ Object.defineProperty(exports, "default", { enumerable: true, get: function () { return tslib_1.__importDefault(SmoothScrollbars_1).default; } });
7
+ tslib_1.__exportStar(require("./components/smoothScrollbars/SmoothScrollbars"), exports);
Binary file
@@ -11,6 +11,6 @@ const RadioButton_1 = tslib_1.__importDefault(require("../radiobutton/RadioButto
11
11
  const TreeLeaf = react_1.default.memo((props) => {
12
12
  const { item, hasMultiselect, showRadioButtons, isSelected, onSelectItem, onActiveItem } = props;
13
13
  const treeNodeClassNames = (0, classnames_1.default)('TreeLeaf', 'form-group margin-bottom-0', isSelected && 'active', item.className && item.className);
14
- return ((0, jsx_runtime_1.jsxs)("div", Object.assign({ className: treeNodeClassNames, "data-key": item.id }, { children: [hasMultiselect && (0, jsx_runtime_1.jsx)(Checkbox_1.default, { className: 'TreeCheckbox', checked: isSelected, onClick: onSelectItem }), !hasMultiselect && showRadioButtons && ((0, jsx_runtime_1.jsx)(RadioButton_1.default, { className: 'TreeRadioButton', checked: isSelected, onChange: onSelectItem })), (0, jsx_runtime_1.jsx)("span", Object.assign({ className: 'TreeLabel', onClick: onActiveItem }, { children: (0, jsx_runtime_1.jsxs)("span", Object.assign({ className: 'TreeLabelName' }, { children: [!item.subType && (0, jsx_runtime_1.jsx)("span", { className: `rioglyph rioglyph-${item.type}` }), item.subType && ((0, jsx_runtime_1.jsxs)("span", Object.assign({ className: 'rioglyph-icon-pair' }, { children: [(0, jsx_runtime_1.jsx)("span", { className: `rioglyph rioglyph-${item.type}` }), (0, jsx_runtime_1.jsx)("span", { className: `rioglyph rioglyph-${item.subType}` })] }))), (0, jsx_runtime_1.jsxs)("span", Object.assign({ className: 'TreeLabelNameText' }, { children: [(0, jsx_runtime_1.jsx)("span", Object.assign({ className: 'TreeLabelNameTextHeadline' }, { children: (0, isObject_1.default)(item.name) ? ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)("span", Object.assign({ className: 'text-light margin-right-3' }, { children: item.name.firstName })), (0, jsx_runtime_1.jsx)("span", { children: item.name.lastName })] })) : (item.name) })), item.info && (0, jsx_runtime_1.jsx)("span", Object.assign({ className: 'TreeLabelNameTextSubline' }, { children: item.info }))] }))] })) }))] })));
14
+ return ((0, jsx_runtime_1.jsxs)("div", Object.assign({ className: treeNodeClassNames, "data-key": item.id }, { children: [hasMultiselect && (0, jsx_runtime_1.jsx)(Checkbox_1.default, { className: 'TreeCheckbox', checked: isSelected, onClick: onSelectItem }), !hasMultiselect && showRadioButtons && ((0, jsx_runtime_1.jsx)(RadioButton_1.default, { className: 'TreeRadioButton', checked: isSelected, onChange: onSelectItem })), (0, jsx_runtime_1.jsxs)("span", Object.assign({ className: 'TreeLabel TreeLabelName', onClick: onActiveItem }, { children: [!item.subType && (0, jsx_runtime_1.jsx)("span", { className: `rioglyph rioglyph-${item.type}` }), item.subType && ((0, jsx_runtime_1.jsxs)("span", Object.assign({ className: 'rioglyph-icon-pair' }, { children: [(0, jsx_runtime_1.jsx)("span", { className: `rioglyph rioglyph-${item.type}` }), (0, jsx_runtime_1.jsx)("span", { className: `rioglyph rioglyph-${item.subType}` })] }))), (0, jsx_runtime_1.jsxs)("span", Object.assign({ className: 'TreeLabelNameText' }, { children: [(0, jsx_runtime_1.jsx)("span", Object.assign({ className: 'TreeLabelNameTextHeadline' }, { children: (0, isObject_1.default)(item.name) ? ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)("span", Object.assign({ className: 'text-light margin-right-3' }, { children: item.name.firstName })), (0, jsx_runtime_1.jsx)("span", { children: item.name.lastName })] })) : (item.name) })), item.info && (0, jsx_runtime_1.jsx)("span", Object.assign({ className: 'TreeLabelNameTextSubline' }, { children: item.info }))] }))] }))] })));
15
15
  });
16
16
  exports.default = TreeLeaf;
@@ -9,6 +9,6 @@ const TreeNode = react_1.default.memo((props) => {
9
9
  const { node, hasMultiselect = false, isSelected = false, isIndeterminate = false, onToggleNode, onSelect } = props;
10
10
  const treeNodeClassNames = (0, classnames_1.default)('TreeNode', 'from-group', isSelected && 'checked', node.className && node.className);
11
11
  const hasChildren = !!node.items.length;
12
- return ((0, jsx_runtime_1.jsxs)("div", Object.assign({ className: treeNodeClassNames, "data-key": node.id, onClick: () => hasChildren && onToggleNode(node.id) }, { children: [hasMultiselect && ((0, jsx_runtime_1.jsx)(Checkbox_1.default, { className: 'TreeCheckbox', checked: isSelected, disabled: node.disabled, indeterminate: isIndeterminate, onClick: () => onSelect(node, isIndeterminate) })), (0, jsx_runtime_1.jsxs)("span", Object.assign({ className: 'TreeLabel' }, { children: [(0, jsx_runtime_1.jsxs)("span", Object.assign({ className: 'TreeLabelName' }, { children: [node.icon && (0, jsx_runtime_1.jsx)("span", { className: `rioglyph ${node.icon}` }), (0, jsx_runtime_1.jsx)("span", Object.assign({ className: 'TreeLabelNameText' }, { children: (0, jsx_runtime_1.jsx)("span", Object.assign({ className: 'TreeLabelNameTextHeadline' }, { children: node.name })) })), (0, jsx_runtime_1.jsx)("span", Object.assign({ className: 'TreeLabelCount label label-muted label-filled label-condensed' }, { children: node.items.length }))] })), (0, jsx_runtime_1.jsx)("span", { className: `TreeLabelExpander rioglyph rioglyph-chevron-down ${hasChildren ? '' : 'text-color-light'}` })] }))] })));
12
+ return ((0, jsx_runtime_1.jsxs)("div", Object.assign({ className: treeNodeClassNames, "data-key": node.id, onClick: () => hasChildren && onToggleNode(node.id) }, { children: [hasMultiselect && ((0, jsx_runtime_1.jsx)(Checkbox_1.default, { className: 'TreeCheckbox', checked: isSelected, disabled: node.disabled, indeterminate: isIndeterminate, onClick: () => onSelect(node, isIndeterminate) })), (0, jsx_runtime_1.jsxs)("span", Object.assign({ className: 'TreeLabel TreeLabelName' }, { children: [node.icon && (0, jsx_runtime_1.jsx)("span", { className: `rioglyph ${node.icon}` }), (0, jsx_runtime_1.jsx)("span", Object.assign({ className: 'TreeLabelNameText' }, { children: (0, jsx_runtime_1.jsx)("span", Object.assign({ className: 'TreeLabelNameTextHeadline' }, { children: node.name })) })), (0, jsx_runtime_1.jsx)("span", Object.assign({ className: 'TreeLabelCount label label-muted label-filled label-condensed' }, { children: node.items.length })), (0, jsx_runtime_1.jsx)("span", { className: `TreeLabelExpander rioglyph rioglyph-chevron-down ${hasChildren ? '' : 'text-color-light'}` })] }))] })));
13
13
  });
14
14
  exports.default = TreeNode;
@@ -7,7 +7,7 @@ require("react");
7
7
  const classnames_1 = tslib_1.__importDefault(require("classnames"));
8
8
  const react_1 = require("@formkit/auto-animate/react");
9
9
  const TreeRoot = ({ maxHeight, disableAnimation, children }) => {
10
- const treeRootClasses = (0, classnames_1.default)('TreeRoot', 'user-select-none overflow-hidden');
10
+ const treeRootClasses = (0, classnames_1.default)('TreeRoot', 'user-select-none', maxHeight ? 'overflow-auto' : 'overflow-hidden');
11
11
  const [parent, enableAnimations] = (0, react_1.useAutoAnimate)();
12
12
  enableAnimations(!disableAnimation);
13
13
  return ((0, jsx_runtime_1.jsx)("div", Object.assign({ ref: parent, className: treeRootClasses, style: { maxHeight } }, { children: children })));
@@ -53,7 +53,7 @@ const Checkbox = (props) => {
53
53
  const renderCustomIcon = !!icon;
54
54
  const renderCustomContent = custom && children;
55
55
  const renderDefault = !icon && !custom;
56
- return ((0, jsx_runtime_1.jsxs)("label", Object.assign({}, remainingProps, { className: labelClassnames, tabIndex: tabIndex, htmlFor: id, onKeyDown: handleToggleKeyDown, ref: labelRef }, { children: [(0, jsx_runtime_1.jsx)("input", { id: id, name: name, type: 'checkbox', checked: checked, required: required, defaultChecked: defaultChecked, disabled: disabled, className: inputClassnames, onClick: onClick, onChange: onChange, ref: inputRef }), renderCustomIcon && ((0, jsx_runtime_1.jsx)(CheckboxIcon_1.CheckboxIcon, { icon: icon, iconSize: iconSize, iconLabelPosition: iconLabelPosition, text: text })), renderDefault && ((0, jsx_runtime_1.jsx)("span", Object.assign({ className: 'checkbox-text' }, { children: (0, jsx_runtime_1.jsx)("span", { children: text }) }))), renderCustomContent && children] })));
56
+ return ((0, jsx_runtime_1.jsxs)("label", Object.assign({}, remainingProps, { className: labelClassnames, tabIndex: tabIndex, htmlFor: id, onKeyDown: handleToggleKeyDown, ref: labelRef }, { children: [(0, jsx_runtime_1.jsx)("input", { id: id, name: name, type: 'checkbox', checked: checked, required: required, defaultChecked: defaultChecked, disabled: disabled, className: inputClassnames, onClick: onClick, onChange: onChange, ref: inputRef }), renderCustomIcon && ((0, jsx_runtime_1.jsx)(CheckboxIcon_1.CheckboxIcon, { icon: icon, iconSize: iconSize, iconLabelPosition: iconLabelPosition, text: text })), renderDefault && (0, jsx_runtime_1.jsx)("span", Object.assign({ className: 'checkbox-text' }, { children: text && (0, jsx_runtime_1.jsx)("span", { children: text }) })), renderCustomContent && children] })));
57
57
  };
58
58
  Checkbox.ICON_LABEL_VERTICAL = ICON_LABEL_VERTICAL;
59
59
  Checkbox.ICON_LABEL_HORIZONTAL = ICON_LABEL_HORIZONTAL;
@@ -0,0 +1,13 @@
1
+ import React, { type ComponentProps } from 'react';
2
+ type FeedbackInlineButtonsProps = ComponentProps<'div'> & {
3
+ /**
4
+ * Optional headline inlined with the buttons.
5
+ */
6
+ headline?: React.ReactNode;
7
+ /**
8
+ * List of buttons to be shown.
9
+ */
10
+ buttons?: React.ReactNode[];
11
+ };
12
+ declare const FeedbackInlineButtons: (props: FeedbackInlineButtonsProps) => import("react/jsx-runtime").JSX.Element;
13
+ export default FeedbackInlineButtons;
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ const jsx_runtime_1 = require("react/jsx-runtime");
5
+ // @ts-ignore-next-line importsNotUsedAsValues
6
+ require("react");
7
+ const FeedbackInlineButtons = (props) => {
8
+ const { buttons = [], headline } = props, remainingProps = tslib_1.__rest(props, ["buttons", "headline"]);
9
+ return ((0, jsx_runtime_1.jsxs)("div", Object.assign({}, remainingProps, { className: 'display-flex flex-wrap align-items-center column-gap-15 row-gap-5 user-select-none' }, { children: [headline && (0, jsx_runtime_1.jsx)("div", Object.assign({ className: 'text-color-dark' }, { children: headline })), (0, jsx_runtime_1.jsx)("div", Object.assign({ className: 'btn-toolbar gap-5' }, { children: buttons.map(button => button) }))] })));
10
+ };
11
+ exports.default = FeedbackInlineButtons;
@@ -0,0 +1,65 @@
1
+ import React, { type ComponentProps } from 'react';
2
+ import type { BUTTON_SIZE, BUTTON_STYLE, BUTTON_VARIANT } from '../button/Button';
3
+ type FeedbackRatingProps = ComponentProps<'div'> & {
4
+ /**
5
+ * Optional headline
6
+ */
7
+ headline?: React.ReactNode;
8
+ /**
9
+ * The amount of toggle buttons used to rate.
10
+ *
11
+ * @default 1
12
+ */
13
+ count: number;
14
+ /**
15
+ * Defines whether the buttons are round.
16
+ *
17
+ * @default false
18
+ */
19
+ circleButtons?: boolean;
20
+ /**
21
+ * Optional class names applied to all the buttons.
22
+ * If you need more control on styling individual buttons, see `buttonStyles`.
23
+ */
24
+ buttonClassName?: string;
25
+ /**
26
+ * Array of button labels that will be used instead of the index.
27
+ * There needs to be a label for each button defined.
28
+ */
29
+ buttonLabels?: React.ReactNode[];
30
+ /**
31
+ * Array of button styles to individually define the button size, style and variant.
32
+ * There needs to be a item for each button defined.
33
+ */
34
+ buttonStyles?: {
35
+ bsSize?: BUTTON_SIZE;
36
+ bsStyle?: BUTTON_STYLE;
37
+ variant?: BUTTON_VARIANT;
38
+ className?: string;
39
+ }[];
40
+ /**
41
+ * Left aligned label to name the lowest rating option.
42
+ */
43
+ leftLabel?: React.ReactNode;
44
+ /**
45
+ * Right aligned label to name the highest rating option.
46
+ */
47
+ rightLabel?: React.ReactNode;
48
+ /**
49
+ * Additional icon placed in front of the rating buttons.
50
+ */
51
+ leadingIcon?: React.ReactNode;
52
+ /**
53
+ * Additional icon placed after the rating buttons.
54
+ */
55
+ trailingIcon?: React.ReactNode;
56
+ /**
57
+ * Callback triggered when the rating changes.
58
+ *
59
+ * @param rating The rating value. Undefined, when a toggle is unchecked.
60
+ * @returns
61
+ */
62
+ onRatingChanged?: (rating: number | undefined) => void;
63
+ };
64
+ declare const FeedbackRating: (props: FeedbackRatingProps) => import("react/jsx-runtime").JSX.Element;
65
+ export default FeedbackRating;