@pingux/astro 2.0.0-alpha.5 → 2.0.0-alpha.6

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 (46) hide show
  1. package/CHANGELOG.md +14 -0
  2. package/lib/cjs/components/Badge/Badge.stories.js +2 -2
  3. package/lib/cjs/components/Badge/Badge.styles.js +4 -17
  4. package/lib/cjs/components/Button/Button.stories.js +15 -3
  5. package/lib/cjs/components/CodeView/CodeView.stories.js +3 -12
  6. package/lib/cjs/components/ColorField/ColorField.js +1 -0
  7. package/lib/cjs/components/ColorField/ColorField.test.js +15 -0
  8. package/lib/cjs/components/CopyText/CopyButton.js +2 -1
  9. package/lib/cjs/components/Icon/Icon.stories.js +1 -1
  10. package/lib/cjs/components/IconButton/IconButton.styles.js +1 -1
  11. package/lib/cjs/components/ListItem/ListItem.js +30 -15
  12. package/lib/cjs/components/ListItem/ListItem.stories.js +90 -26
  13. package/lib/cjs/components/ListItem/ListItem.test.js +46 -11
  14. package/lib/cjs/components/ListView/ListView.js +7 -1
  15. package/lib/cjs/components/ListViewItem/ListViewItem.js +4 -2
  16. package/lib/cjs/components/ListViewItem/ListViewItem.styles.js +2 -2
  17. package/lib/cjs/components/Menu/Menu.js +16 -5
  18. package/lib/cjs/components/Menu/Menu.stories.js +13 -2
  19. package/lib/cjs/components/SwitchField/SwitchField.js +4 -2
  20. package/lib/cjs/recipes/LinkedListView.stories.js +1 -1
  21. package/lib/cjs/recipes/ListAndPanel.stories.js +107 -57
  22. package/lib/cjs/styles/colors.js +3 -1
  23. package/lib/cjs/utils/devUtils/props/hoverProps.js +54 -0
  24. package/lib/components/Badge/Badge.stories.js +2 -2
  25. package/lib/components/Badge/Badge.styles.js +3 -15
  26. package/lib/components/Button/Button.stories.js +11 -1
  27. package/lib/components/CodeView/CodeView.stories.js +3 -12
  28. package/lib/components/ColorField/ColorField.js +1 -0
  29. package/lib/components/ColorField/ColorField.test.js +15 -0
  30. package/lib/components/CopyText/CopyButton.js +2 -1
  31. package/lib/components/Icon/Icon.stories.js +1 -1
  32. package/lib/components/IconButton/IconButton.styles.js +2 -2
  33. package/lib/components/ListItem/ListItem.js +30 -13
  34. package/lib/components/ListItem/ListItem.stories.js +68 -8
  35. package/lib/components/ListItem/ListItem.test.js +46 -11
  36. package/lib/components/ListView/ListView.js +7 -1
  37. package/lib/components/ListViewItem/ListViewItem.js +4 -2
  38. package/lib/components/ListViewItem/ListViewItem.styles.js +2 -2
  39. package/lib/components/Menu/Menu.js +16 -5
  40. package/lib/components/Menu/Menu.stories.js +14 -2
  41. package/lib/components/SwitchField/SwitchField.js +4 -2
  42. package/lib/recipes/LinkedListView.stories.js +1 -1
  43. package/lib/recipes/ListAndPanel.stories.js +72 -22
  44. package/lib/styles/colors.js +3 -1
  45. package/lib/utils/devUtils/props/hoverProps.js +44 -0
  46. package/package.json +1 -1
@@ -9,7 +9,7 @@ import MoreVertIcon from 'mdi-react/MoreVertIcon';
9
9
  import PencilIcon from 'mdi-react/PencilIcon';
10
10
  import PlusIcon from 'mdi-react/PlusIcon';
11
11
  import { useOverlayPanelState } from '../hooks';
12
- import { Box, Icon, IconButton, Link, ListView, Menu, OverlayPanel, PopoverMenu, SearchField, Separator, SwitchField, Tab, Tabs, Text } from '../index';
12
+ import { Box, Icon, IconButton, Link, ListItem, ListView, Menu, OverlayPanel, PopoverMenu, SearchField, Separator, SwitchField, Tab, Tabs, Text } from '..';
13
13
  import { jsx as ___EmotionJSX } from "@emotion/react";
14
14
  export default {
15
15
  title: 'Recipes/List with Panel'
@@ -137,7 +137,8 @@ var sx = {
137
137
  },
138
138
  listElement: {
139
139
  wrapper: {
140
- minHeight: '60px'
140
+ minHeight: '60px',
141
+ pl: '14px'
141
142
  },
142
143
  iconWrapper: {
143
144
  mr: 'auto',
@@ -151,7 +152,7 @@ var sx = {
151
152
  avatar: {
152
153
  width: '25px',
153
154
  height: '25px',
154
- mr: 'md'
155
+ mr: '14px'
155
156
  },
156
157
  title: {
157
158
  alignSelf: 'start',
@@ -164,15 +165,57 @@ var sx = {
164
165
  alignSelf: 'start'
165
166
  },
166
167
  menuWrapper: {
167
- alignSelf: 'center'
168
+ alignSelf: 'center',
169
+ pr: '4px'
168
170
  }
169
171
  }
170
172
  };
171
173
  var ListElement = function ListElement(_ref) {
172
174
  var item = _ref.item,
175
+ isHoverable = _ref.isHoverable,
173
176
  onClosePanel = _ref.onClosePanel;
174
- return ___EmotionJSX(Box, {
177
+ var _useState = useState(false),
178
+ _useState2 = _slicedToArray(_useState, 2),
179
+ isHovered = _useState2[0],
180
+ setIsHovered = _useState2[1];
181
+ var _useState3 = useState({}),
182
+ _useState4 = _slicedToArray(_useState3, 2),
183
+ mousePosition = _useState4[0],
184
+ setMousePosition = _useState4[1];
185
+ var listItemRef = useRef();
186
+ var handleMenuHoverEnd = function handleMenuHoverEnd() {
187
+ var currentPositionX = mousePosition.currentPositionX,
188
+ currentPositionY = mousePosition.currentPositionY;
189
+ var _listItemRef$current$ = listItemRef.current.getBoundingClientRect(),
190
+ height = _listItemRef$current$.height,
191
+ right = _listItemRef$current$.right,
192
+ top = _listItemRef$current$.top;
193
+ var hasMovedBackToRow = currentPositionY < top + height && currentPositionX < right;
194
+ if (hasMovedBackToRow) {
195
+ setIsHovered(true);
196
+ return;
197
+ }
198
+ setIsHovered(false);
199
+ };
200
+ var handleMouseMove = function handleMouseMove(e) {
201
+ setMousePosition({
202
+ currentPositionX: e.clientX,
203
+ currentPositionY: e.clientY
204
+ });
205
+ };
206
+ var handleHoveEnd = function handleHoveEnd() {
207
+ setIsHovered(false);
208
+ };
209
+ var handleHoveStart = function handleHoveStart() {
210
+ setIsHovered(true);
211
+ };
212
+ return ___EmotionJSX(ListItem, {
213
+ isHovered: isHoverable && isHovered,
175
214
  isRow: true,
215
+ onHoverEnd: handleHoveEnd,
216
+ onHoverStart: handleHoveStart,
217
+ onMouseMove: handleMouseMove,
218
+ ref: listItemRef,
176
219
  sx: sx.listElement.wrapper
177
220
  }, ___EmotionJSX(Box, {
178
221
  isRow: true,
@@ -201,7 +244,11 @@ var ListElement = function ListElement(_ref) {
201
244
  }, ___EmotionJSX(Icon, {
202
245
  icon: MoreVertIcon,
203
246
  size: "md"
204
- })), ___EmotionJSX(Menu, null, ___EmotionJSX(Item, {
247
+ })), ___EmotionJSX(Menu, {
248
+ onAction: handleHoveEnd,
249
+ onHoverEnd: handleMenuHoverEnd,
250
+ onHoverStart: handleHoveStart
251
+ }, ___EmotionJSX(Item, {
205
252
  key: "enable"
206
253
  }, "Enable user"), ___EmotionJSX(Item, {
207
254
  key: "disable"
@@ -216,14 +263,14 @@ var ListElement = function ListElement(_ref) {
216
263
  }))));
217
264
  };
218
265
  export var Default = function Default() {
219
- var _useState = useState(),
220
- _useState2 = _slicedToArray(_useState, 2),
221
- selectedItemId = _useState2[0],
222
- setSelectedItemId = _useState2[1];
223
- var _useState3 = useState(),
224
- _useState4 = _slicedToArray(_useState3, 2),
225
- selectedKeys = _useState4[0],
226
- setSelectedKeys = _useState4[1];
266
+ var _useState5 = useState(),
267
+ _useState6 = _slicedToArray(_useState5, 2),
268
+ selectedItemId = _useState6[0],
269
+ setSelectedItemId = _useState6[1];
270
+ var _useState7 = useState(),
271
+ _useState8 = _slicedToArray(_useState7, 2),
272
+ selectedKeys = _useState8[0],
273
+ setSelectedKeys = _useState8[1];
227
274
  var _useOverlayPanelState = useOverlayPanelState(),
228
275
  panelState = _useOverlayPanelState.state,
229
276
  onPanelClose = _useOverlayPanelState.onClose;
@@ -246,9 +293,7 @@ export var Default = function Default() {
246
293
  closePanelHandler();
247
294
  }
248
295
  };
249
- return ___EmotionJSX(Box, {
250
- sx: sx.wrapper
251
- }, ___EmotionJSX(Box, null, ___EmotionJSX(Box, {
296
+ var title = ___EmotionJSX(Box, null, ___EmotionJSX(Box, {
252
297
  align: "center",
253
298
  isRow: true,
254
299
  mb: "xs",
@@ -275,7 +320,10 @@ export var Default = function Default() {
275
320
  sx: {
276
321
  fontSize: '13px'
277
322
  }
278
- }, " Learn more"))), ___EmotionJSX(SearchField, {
323
+ }, " Learn more")));
324
+ return ___EmotionJSX(Box, {
325
+ sx: sx.wrapper
326
+ }, title, ___EmotionJSX(SearchField, {
279
327
  position: "fixed",
280
328
  mb: "lg",
281
329
  mt: "lg",
@@ -288,17 +336,19 @@ export var Default = function Default() {
288
336
  items: items,
289
337
  onSelectionChange: selectItemHandler,
290
338
  ref: panelTriggerRef,
291
- selectedKeys: selectedKeys
339
+ selectedKeys: selectedKeys,
340
+ isHoverable: false
292
341
  }, function (item) {
293
342
  return ___EmotionJSX(Item, {
294
343
  key: item.email,
295
344
  textValue: item.email,
296
- hasSeparator: true,
345
+ hasSeparator: item.hasSeparator,
297
346
  listItemProps: {
298
- pl: 15,
299
- minHeight: 75
347
+ minHeight: 75,
348
+ padding: 1
300
349
  }
301
350
  }, ___EmotionJSX(ListElement, {
351
+ isHoverable: true,
302
352
  item: item
303
353
  }));
304
354
  }), ___EmotionJSX(OverlayPanel, {
@@ -13,7 +13,9 @@ export var active = '#4462ED';
13
13
  export var critical = {
14
14
  bright: '#a31300',
15
15
  dark: '#a31300',
16
- light: '#ffebe7'
16
+ light: '#ffebe7',
17
+ primaryDark: chroma.mix('#a31300', '#000000', 0.2).hex(),
18
+ secondaryDark: chroma.mix('#a31300', '#000000', 0.4).hex()
17
19
  };
18
20
  export var success = {
19
21
  bright: '#00af18',
@@ -0,0 +1,44 @@
1
+ import _Object$keys from "@babel/runtime-corejs3/core-js-stable/object/keys";
2
+ import _Object$getOwnPropertySymbols from "@babel/runtime-corejs3/core-js-stable/object/get-own-property-symbols";
3
+ import _filterInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/filter";
4
+ import _Object$getOwnPropertyDescriptor from "@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptor";
5
+ import _forEachInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/for-each";
6
+ import _Object$getOwnPropertyDescriptors from "@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptors";
7
+ import _Object$defineProperties from "@babel/runtime-corejs3/core-js-stable/object/define-properties";
8
+ import _Object$defineProperty from "@babel/runtime-corejs3/core-js-stable/object/define-property";
9
+ import _defineProperty from "@babel/runtime-corejs3/helpers/esm/defineProperty";
10
+ function ownKeys(object, enumerableOnly) { var keys = _Object$keys(object); if (_Object$getOwnPropertySymbols) { var symbols = _Object$getOwnPropertySymbols(object); enumerableOnly && (symbols = _filterInstanceProperty(symbols).call(symbols, function (sym) { return _Object$getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
11
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var _context, _context2; var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? _forEachInstanceProperty(_context = ownKeys(Object(source), !0)).call(_context, function (key) { _defineProperty(target, key, source[key]); }) : _Object$getOwnPropertyDescriptors ? _Object$defineProperties(target, _Object$getOwnPropertyDescriptors(source)) : _forEachInstanceProperty(_context2 = ownKeys(Object(source))).call(_context2, function (key) { _Object$defineProperty(target, key, _Object$getOwnPropertyDescriptor(source, key)); }); } return target; }
12
+ import PropTypes from 'prop-types';
13
+ var descriptions = {
14
+ onHoverStart: 'Handler that is called when a hover interaction starts.',
15
+ onHoverEnd: 'Handler that is called when a hover interaction ends.',
16
+ onHoverChange: 'Handler that is called when the hover state changes.'
17
+ };
18
+ export var baseDocSettings = {
19
+ type: {
20
+ summary: 'func'
21
+ },
22
+ control: {
23
+ type: null
24
+ },
25
+ table: {
26
+ category: 'Hover Handlers'
27
+ }
28
+ };
29
+ export var onHoverArgTypes = {
30
+ 'onHoverStart': _objectSpread({
31
+ description: descriptions.onHoverStart
32
+ }, baseDocSettings),
33
+ 'onHoverEnd': _objectSpread({
34
+ description: descriptions.onHoverEnd
35
+ }, baseDocSettings),
36
+ 'onHoverChange': _objectSpread({
37
+ description: descriptions.onHoverChange
38
+ }, baseDocSettings)
39
+ };
40
+ export var onHoverPropTypes = {
41
+ onHoverStart: PropTypes.func,
42
+ onHoverEnd: PropTypes.func,
43
+ onHoverChange: PropTypes.func
44
+ };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pingux/astro",
3
- "version": "2.0.0-alpha.5",
3
+ "version": "2.0.0-alpha.6",
4
4
  "description": "PingUX themeable React component library",
5
5
  "repository": {
6
6
  "type": "git",