@workday/canvas-kit-preview-react 7.0.0-alpha.140-next.6 → 7.0.0-alpha.256-next.2
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/dist/commonjs/form-field/lib/FormField.d.ts +2 -11
- package/dist/commonjs/form-field/lib/FormField.d.ts.map +1 -1
- package/dist/commonjs/form-field/lib/FormFieldHint.d.ts +1 -1
- package/dist/commonjs/form-field/lib/FormFieldHint.d.ts.map +1 -1
- package/dist/commonjs/form-field/lib/FormFieldHint.js +2 -3
- package/dist/commonjs/form-field/lib/FormFieldInput.d.ts +1 -1
- package/dist/commonjs/form-field/lib/FormFieldLabel.d.ts.map +1 -1
- package/dist/commonjs/form-field/lib/FormFieldLabel.js +3 -9
- package/dist/commonjs/index.d.ts +2 -1
- package/dist/commonjs/index.d.ts.map +1 -1
- package/dist/commonjs/index.js +2 -2
- package/dist/commonjs/menu/lib/Menu.d.ts +37 -13
- package/dist/commonjs/menu/lib/Menu.d.ts.map +1 -1
- package/dist/commonjs/menu/lib/Menu.js +42 -22
- package/dist/commonjs/menu/lib/MenuItem.d.ts +35 -13
- package/dist/commonjs/menu/lib/MenuItem.d.ts.map +1 -1
- package/dist/commonjs/menu/lib/MenuItem.js +24 -10
- package/dist/commonjs/pill/lib/Pill.d.ts +0 -10
- package/dist/commonjs/pill/lib/Pill.d.ts.map +1 -1
- package/dist/commonjs/segmented-control/index.d.ts +3 -0
- package/dist/commonjs/segmented-control/index.d.ts.map +1 -0
- package/dist/commonjs/segmented-control/index.js +14 -0
- package/dist/commonjs/segmented-control/lib/SegmentedControl.d.ts +1004 -0
- package/dist/commonjs/segmented-control/lib/SegmentedControl.d.ts.map +1 -0
- package/dist/commonjs/segmented-control/lib/SegmentedControl.js +22 -0
- package/dist/commonjs/segmented-control/lib/SegmentedControlItem.d.ts +103 -0
- package/dist/commonjs/segmented-control/lib/SegmentedControlItem.d.ts.map +1 -0
- package/dist/commonjs/segmented-control/lib/SegmentedControlItem.js +130 -0
- package/dist/commonjs/segmented-control/lib/SegmentedControlList.d.ts +66 -0
- package/dist/commonjs/segmented-control/lib/SegmentedControlList.d.ts.map +1 -0
- package/dist/commonjs/{breadcrumbs/lib/Breadcrumbs/Dropdown/MenuItemLink.js → segmented-control/lib/SegmentedControlList.js} +21 -28
- package/dist/commonjs/segmented-control/lib/hooks/useSegmentedControlItem.d.ts +60 -0
- package/dist/commonjs/segmented-control/lib/hooks/useSegmentedControlItem.d.ts.map +1 -0
- package/dist/commonjs/segmented-control/lib/hooks/useSegmentedControlItem.js +23 -0
- package/dist/commonjs/segmented-control/lib/hooks/useSegmentedControlModel.d.ts +1052 -0
- package/dist/commonjs/segmented-control/lib/hooks/useSegmentedControlModel.d.ts.map +1 -0
- package/dist/commonjs/segmented-control/lib/hooks/useSegmentedControlModel.js +74 -0
- package/dist/commonjs/select/index.d.ts.map +1 -1
- package/dist/commonjs/status-indicator/index.d.ts +2 -0
- package/dist/commonjs/status-indicator/index.d.ts.map +1 -0
- package/dist/commonjs/{breadcrumbs → status-indicator}/index.js +1 -1
- package/dist/commonjs/status-indicator/lib/StatusIndicator.d.ts +42 -0
- package/dist/commonjs/status-indicator/lib/StatusIndicator.d.ts.map +1 -0
- package/dist/commonjs/status-indicator/lib/StatusIndicator.js +55 -0
- package/dist/commonjs/status-indicator/lib/StatusIndicatorIcon.d.ts +73 -0
- package/dist/commonjs/status-indicator/lib/StatusIndicatorIcon.d.ts.map +1 -0
- package/dist/commonjs/status-indicator/lib/StatusIndicatorIcon.js +98 -0
- package/dist/commonjs/status-indicator/lib/StatusIndicatorLabel.d.ts +5 -0
- package/dist/commonjs/status-indicator/lib/StatusIndicatorLabel.d.ts.map +1 -0
- package/dist/commonjs/{breadcrumbs/lib/Breadcrumbs/Nav.js → status-indicator/lib/StatusIndicatorLabel.js} +10 -6
- package/dist/commonjs/status-indicator/lib/hooks/index.d.ts +2 -0
- package/dist/commonjs/status-indicator/lib/hooks/index.d.ts.map +1 -0
- package/dist/commonjs/status-indicator/lib/hooks/index.js +13 -0
- package/dist/commonjs/status-indicator/lib/hooks/useStatusIndicatorModel.d.ts +75 -0
- package/dist/commonjs/status-indicator/lib/hooks/useStatusIndicatorModel.d.ts.map +1 -0
- package/dist/commonjs/status-indicator/lib/hooks/useStatusIndicatorModel.js +34 -0
- package/dist/commonjs/text-area/lib/TextArea.d.ts +2 -11
- package/dist/commonjs/text-area/lib/TextArea.d.ts.map +1 -1
- package/dist/commonjs/text-area/lib/TextAreaField.d.ts +1 -1
- package/dist/commonjs/text-area/lib/TextAreaField.d.ts.map +1 -1
- package/dist/commonjs/text-area/lib/TextAreaField.js +15 -7
- package/dist/commonjs/text-input/lib/TextInput.d.ts +2 -11
- package/dist/commonjs/text-input/lib/TextInput.d.ts.map +1 -1
- package/dist/commonjs/text-input/lib/TextInputField.d.ts +1 -1
- package/dist/commonjs/text-input/lib/TextInputField.d.ts.map +1 -1
- package/dist/commonjs/text-input/lib/TextInputField.js +14 -7
- package/dist/es6/form-field/lib/FormField.d.ts +2 -11
- package/dist/es6/form-field/lib/FormField.d.ts.map +1 -1
- package/dist/es6/form-field/lib/FormFieldHint.d.ts +1 -1
- package/dist/es6/form-field/lib/FormFieldHint.d.ts.map +1 -1
- package/dist/es6/form-field/lib/FormFieldHint.js +4 -5
- package/dist/es6/form-field/lib/FormFieldInput.d.ts +1 -1
- package/dist/es6/form-field/lib/FormFieldLabel.d.ts.map +1 -1
- package/dist/es6/form-field/lib/FormFieldLabel.js +5 -11
- package/dist/es6/index.d.ts +2 -1
- package/dist/es6/index.d.ts.map +1 -1
- package/dist/es6/index.js +2 -2
- package/dist/es6/menu/lib/Menu.d.ts +37 -13
- package/dist/es6/menu/lib/Menu.d.ts.map +1 -1
- package/dist/es6/menu/lib/Menu.js +41 -21
- package/dist/es6/menu/lib/MenuItem.d.ts +35 -13
- package/dist/es6/menu/lib/MenuItem.d.ts.map +1 -1
- package/dist/es6/menu/lib/MenuItem.js +23 -9
- package/dist/es6/pill/lib/Pill.d.ts +0 -10
- package/dist/es6/pill/lib/Pill.d.ts.map +1 -1
- package/dist/es6/segmented-control/index.d.ts +3 -0
- package/dist/es6/segmented-control/index.d.ts.map +1 -0
- package/dist/es6/segmented-control/index.js +2 -0
- package/dist/es6/segmented-control/lib/SegmentedControl.d.ts +1004 -0
- package/dist/es6/segmented-control/lib/SegmentedControl.d.ts.map +1 -0
- package/dist/es6/segmented-control/lib/SegmentedControl.js +16 -0
- package/dist/es6/segmented-control/lib/SegmentedControlItem.d.ts +103 -0
- package/dist/es6/segmented-control/lib/SegmentedControlItem.d.ts.map +1 -0
- package/dist/es6/segmented-control/lib/SegmentedControlItem.js +108 -0
- package/dist/es6/segmented-control/lib/SegmentedControlList.d.ts +66 -0
- package/dist/es6/segmented-control/lib/SegmentedControlList.d.ts.map +1 -0
- package/dist/es6/segmented-control/lib/SegmentedControlList.js +44 -0
- package/dist/es6/segmented-control/lib/hooks/useSegmentedControlItem.d.ts +60 -0
- package/dist/es6/segmented-control/lib/hooks/useSegmentedControlItem.d.ts.map +1 -0
- package/dist/es6/segmented-control/lib/hooks/useSegmentedControlItem.js +20 -0
- package/dist/es6/segmented-control/lib/hooks/useSegmentedControlModel.d.ts +1052 -0
- package/dist/es6/segmented-control/lib/hooks/useSegmentedControlModel.d.ts.map +1 -0
- package/dist/es6/segmented-control/lib/hooks/useSegmentedControlModel.js +68 -0
- package/dist/es6/select/index.d.ts.map +1 -1
- package/dist/es6/status-indicator/index.d.ts +2 -0
- package/dist/es6/status-indicator/index.d.ts.map +1 -0
- package/dist/es6/status-indicator/index.js +1 -0
- package/dist/es6/status-indicator/lib/StatusIndicator.d.ts +42 -0
- package/dist/es6/status-indicator/lib/StatusIndicator.d.ts.map +1 -0
- package/dist/es6/status-indicator/lib/StatusIndicator.js +49 -0
- package/dist/es6/status-indicator/lib/StatusIndicatorIcon.d.ts +73 -0
- package/dist/es6/status-indicator/lib/StatusIndicatorIcon.d.ts.map +1 -0
- package/dist/es6/status-indicator/lib/StatusIndicatorIcon.js +92 -0
- package/dist/es6/status-indicator/lib/StatusIndicatorLabel.d.ts +5 -0
- package/dist/es6/status-indicator/lib/StatusIndicatorLabel.d.ts.map +1 -0
- package/dist/es6/{breadcrumbs/lib/Breadcrumbs/Nav.js → status-indicator/lib/StatusIndicatorLabel.js} +9 -4
- package/dist/es6/status-indicator/lib/hooks/index.d.ts +2 -0
- package/dist/es6/status-indicator/lib/hooks/index.d.ts.map +1 -0
- package/dist/es6/status-indicator/lib/hooks/index.js +1 -0
- package/dist/es6/status-indicator/lib/hooks/useStatusIndicatorModel.d.ts +75 -0
- package/dist/es6/status-indicator/lib/hooks/useStatusIndicatorModel.d.ts.map +1 -0
- package/dist/es6/status-indicator/lib/hooks/useStatusIndicatorModel.js +31 -0
- package/dist/es6/text-area/lib/TextArea.d.ts +2 -11
- package/dist/es6/text-area/lib/TextArea.d.ts.map +1 -1
- package/dist/es6/text-area/lib/TextAreaField.d.ts +1 -1
- package/dist/es6/text-area/lib/TextAreaField.d.ts.map +1 -1
- package/dist/es6/text-area/lib/TextAreaField.js +15 -7
- package/dist/es6/text-input/lib/TextInput.d.ts +2 -11
- package/dist/es6/text-input/lib/TextInput.d.ts.map +1 -1
- package/dist/es6/text-input/lib/TextInputField.d.ts +1 -1
- package/dist/es6/text-input/lib/TextInputField.d.ts.map +1 -1
- package/dist/es6/text-input/lib/TextInputField.js +14 -7
- package/form-field/lib/FormFieldHint.tsx +23 -30
- package/form-field/lib/FormFieldLabel.tsx +14 -24
- package/index.ts +2 -3
- package/menu/lib/Menu.tsx +73 -26
- package/menu/lib/MenuItem.tsx +51 -16
- package/package.json +6 -5
- package/segmented-control/LICENSE +126 -0
- package/segmented-control/README.md +6 -0
- package/segmented-control/index.ts +2 -0
- package/segmented-control/lib/SegmentedControl.tsx +21 -0
- package/segmented-control/lib/SegmentedControlItem.tsx +175 -0
- package/segmented-control/lib/SegmentedControlList.tsx +49 -0
- package/segmented-control/lib/hooks/useSegmentedControlItem.tsx +37 -0
- package/segmented-control/lib/hooks/useSegmentedControlModel.tsx +75 -0
- package/segmented-control/package.json +6 -0
- package/select/index.ts +0 -1
- package/{breadcrumbs → status-indicator}/LICENSE +1 -1
- package/status-indicator/README.md +12 -0
- package/status-indicator/index.ts +1 -0
- package/status-indicator/lib/StatusIndicator.tsx +49 -0
- package/status-indicator/lib/StatusIndicatorIcon.tsx +88 -0
- package/status-indicator/lib/StatusIndicatorLabel.tsx +28 -0
- package/status-indicator/lib/hooks/index.ts +1 -0
- package/status-indicator/lib/hooks/useStatusIndicatorModel.tsx +29 -0
- package/status-indicator/package.json +6 -0
- package/text-area/lib/TextAreaField.tsx +1 -1
- package/text-input/lib/TextInputField.tsx +1 -1
- package/breadcrumbs/README.md +0 -7
- package/breadcrumbs/index.ts +0 -1
- package/breadcrumbs/lib/Breadcrumbs/Dropdown/Button.tsx +0 -85
- package/breadcrumbs/lib/Breadcrumbs/Dropdown/Menu.tsx +0 -152
- package/breadcrumbs/lib/Breadcrumbs/Dropdown/MenuItemLink.tsx +0 -63
- package/breadcrumbs/lib/Breadcrumbs/Dropdown/hooks.ts +0 -109
- package/breadcrumbs/lib/Breadcrumbs/Dropdown/index.tsx +0 -38
- package/breadcrumbs/lib/Breadcrumbs/List/Collapsible.tsx +0 -66
- package/breadcrumbs/lib/Breadcrumbs/List/CurrentItem.tsx +0 -64
- package/breadcrumbs/lib/Breadcrumbs/List/Link.tsx +0 -88
- package/breadcrumbs/lib/Breadcrumbs/List/ListItem.tsx +0 -30
- package/breadcrumbs/lib/Breadcrumbs/List/hooks.ts +0 -114
- package/breadcrumbs/lib/Breadcrumbs/List/index.tsx +0 -26
- package/breadcrumbs/lib/Breadcrumbs/List/styles.ts +0 -12
- package/breadcrumbs/lib/Breadcrumbs/Nav.tsx +0 -14
- package/breadcrumbs/lib/Breadcrumbs/hooks.ts +0 -13
- package/breadcrumbs/lib/Breadcrumbs/index.tsx +0 -15
- package/breadcrumbs/lib/Breadcrumbs/types.ts +0 -7
- package/breadcrumbs/package.json +0 -6
- package/dist/commonjs/breadcrumbs/index.d.ts +0 -2
- package/dist/commonjs/breadcrumbs/index.d.ts.map +0 -1
- package/dist/commonjs/breadcrumbs/lib/Breadcrumbs/Dropdown/Button.d.ts +0 -20
- package/dist/commonjs/breadcrumbs/lib/Breadcrumbs/Dropdown/Button.d.ts.map +0 -1
- package/dist/commonjs/breadcrumbs/lib/Breadcrumbs/Dropdown/Button.js +0 -69
- package/dist/commonjs/breadcrumbs/lib/Breadcrumbs/Dropdown/Menu.d.ts +0 -38
- package/dist/commonjs/breadcrumbs/lib/Breadcrumbs/Dropdown/Menu.d.ts.map +0 -1
- package/dist/commonjs/breadcrumbs/lib/Breadcrumbs/Dropdown/Menu.js +0 -94
- package/dist/commonjs/breadcrumbs/lib/Breadcrumbs/Dropdown/MenuItemLink.d.ts +0 -14
- package/dist/commonjs/breadcrumbs/lib/Breadcrumbs/Dropdown/MenuItemLink.d.ts.map +0 -1
- package/dist/commonjs/breadcrumbs/lib/Breadcrumbs/Dropdown/hooks.d.ts +0 -13
- package/dist/commonjs/breadcrumbs/lib/Breadcrumbs/Dropdown/hooks.d.ts.map +0 -1
- package/dist/commonjs/breadcrumbs/lib/Breadcrumbs/Dropdown/hooks.js +0 -77
- package/dist/commonjs/breadcrumbs/lib/Breadcrumbs/Dropdown/index.d.ts +0 -8
- package/dist/commonjs/breadcrumbs/lib/Breadcrumbs/Dropdown/index.d.ts.map +0 -1
- package/dist/commonjs/breadcrumbs/lib/Breadcrumbs/Dropdown/index.js +0 -37
- package/dist/commonjs/breadcrumbs/lib/Breadcrumbs/List/Collapsible.d.ts +0 -16
- package/dist/commonjs/breadcrumbs/lib/Breadcrumbs/List/Collapsible.d.ts.map +0 -1
- package/dist/commonjs/breadcrumbs/lib/Breadcrumbs/List/Collapsible.js +0 -78
- package/dist/commonjs/breadcrumbs/lib/Breadcrumbs/List/CurrentItem.d.ts +0 -11
- package/dist/commonjs/breadcrumbs/lib/Breadcrumbs/List/CurrentItem.d.ts.map +0 -1
- package/dist/commonjs/breadcrumbs/lib/Breadcrumbs/List/CurrentItem.js +0 -49
- package/dist/commonjs/breadcrumbs/lib/Breadcrumbs/List/Link.d.ts +0 -19
- package/dist/commonjs/breadcrumbs/lib/Breadcrumbs/List/Link.d.ts.map +0 -1
- package/dist/commonjs/breadcrumbs/lib/Breadcrumbs/List/Link.js +0 -66
- package/dist/commonjs/breadcrumbs/lib/Breadcrumbs/List/ListItem.d.ts +0 -4
- package/dist/commonjs/breadcrumbs/lib/Breadcrumbs/List/ListItem.d.ts.map +0 -1
- package/dist/commonjs/breadcrumbs/lib/Breadcrumbs/List/ListItem.js +0 -43
- package/dist/commonjs/breadcrumbs/lib/Breadcrumbs/List/hooks.d.ts +0 -19
- package/dist/commonjs/breadcrumbs/lib/Breadcrumbs/List/hooks.d.ts.map +0 -1
- package/dist/commonjs/breadcrumbs/lib/Breadcrumbs/List/hooks.js +0 -116
- package/dist/commonjs/breadcrumbs/lib/Breadcrumbs/List/index.d.ts +0 -4
- package/dist/commonjs/breadcrumbs/lib/Breadcrumbs/List/index.d.ts.map +0 -1
- package/dist/commonjs/breadcrumbs/lib/Breadcrumbs/List/index.js +0 -26
- package/dist/commonjs/breadcrumbs/lib/Breadcrumbs/List/styles.d.ts +0 -3
- package/dist/commonjs/breadcrumbs/lib/Breadcrumbs/List/styles.d.ts.map +0 -1
- package/dist/commonjs/breadcrumbs/lib/Breadcrumbs/List/styles.js +0 -16
- package/dist/commonjs/breadcrumbs/lib/Breadcrumbs/Nav.d.ts +0 -11
- package/dist/commonjs/breadcrumbs/lib/Breadcrumbs/Nav.d.ts.map +0 -1
- package/dist/commonjs/breadcrumbs/lib/Breadcrumbs/hooks.d.ts +0 -5
- package/dist/commonjs/breadcrumbs/lib/Breadcrumbs/hooks.d.ts.map +0 -1
- package/dist/commonjs/breadcrumbs/lib/Breadcrumbs/hooks.js +0 -12
- package/dist/commonjs/breadcrumbs/lib/Breadcrumbs/index.d.ts +0 -9
- package/dist/commonjs/breadcrumbs/lib/Breadcrumbs/index.d.ts.map +0 -1
- package/dist/commonjs/breadcrumbs/lib/Breadcrumbs/index.js +0 -17
- package/dist/commonjs/breadcrumbs/lib/Breadcrumbs/types.d.ts +0 -8
- package/dist/commonjs/breadcrumbs/lib/Breadcrumbs/types.d.ts.map +0 -1
- package/dist/commonjs/breadcrumbs/lib/Breadcrumbs/types.js +0 -2
- package/dist/es6/breadcrumbs/index.d.ts +0 -2
- package/dist/es6/breadcrumbs/index.d.ts.map +0 -1
- package/dist/es6/breadcrumbs/index.js +0 -1
- package/dist/es6/breadcrumbs/lib/Breadcrumbs/Dropdown/Button.d.ts +0 -20
- package/dist/es6/breadcrumbs/lib/Breadcrumbs/Dropdown/Button.d.ts.map +0 -1
- package/dist/es6/breadcrumbs/lib/Breadcrumbs/Dropdown/Button.js +0 -63
- package/dist/es6/breadcrumbs/lib/Breadcrumbs/Dropdown/Menu.d.ts +0 -38
- package/dist/es6/breadcrumbs/lib/Breadcrumbs/Dropdown/Menu.d.ts.map +0 -1
- package/dist/es6/breadcrumbs/lib/Breadcrumbs/Dropdown/Menu.js +0 -87
- package/dist/es6/breadcrumbs/lib/Breadcrumbs/Dropdown/MenuItemLink.d.ts +0 -14
- package/dist/es6/breadcrumbs/lib/Breadcrumbs/Dropdown/MenuItemLink.d.ts.map +0 -1
- package/dist/es6/breadcrumbs/lib/Breadcrumbs/Dropdown/MenuItemLink.js +0 -51
- package/dist/es6/breadcrumbs/lib/Breadcrumbs/Dropdown/hooks.d.ts +0 -13
- package/dist/es6/breadcrumbs/lib/Breadcrumbs/Dropdown/hooks.d.ts.map +0 -1
- package/dist/es6/breadcrumbs/lib/Breadcrumbs/Dropdown/hooks.js +0 -72
- package/dist/es6/breadcrumbs/lib/Breadcrumbs/Dropdown/index.d.ts +0 -8
- package/dist/es6/breadcrumbs/lib/Breadcrumbs/Dropdown/index.d.ts.map +0 -1
- package/dist/es6/breadcrumbs/lib/Breadcrumbs/Dropdown/index.js +0 -30
- package/dist/es6/breadcrumbs/lib/Breadcrumbs/List/Collapsible.d.ts +0 -16
- package/dist/es6/breadcrumbs/lib/Breadcrumbs/List/Collapsible.d.ts.map +0 -1
- package/dist/es6/breadcrumbs/lib/Breadcrumbs/List/Collapsible.js +0 -55
- package/dist/es6/breadcrumbs/lib/Breadcrumbs/List/CurrentItem.d.ts +0 -11
- package/dist/es6/breadcrumbs/lib/Breadcrumbs/List/CurrentItem.d.ts.map +0 -1
- package/dist/es6/breadcrumbs/lib/Breadcrumbs/List/CurrentItem.js +0 -42
- package/dist/es6/breadcrumbs/lib/Breadcrumbs/List/Link.d.ts +0 -19
- package/dist/es6/breadcrumbs/lib/Breadcrumbs/List/Link.d.ts.map +0 -1
- package/dist/es6/breadcrumbs/lib/Breadcrumbs/List/Link.js +0 -59
- package/dist/es6/breadcrumbs/lib/Breadcrumbs/List/ListItem.d.ts +0 -4
- package/dist/es6/breadcrumbs/lib/Breadcrumbs/List/ListItem.d.ts.map +0 -1
- package/dist/es6/breadcrumbs/lib/Breadcrumbs/List/ListItem.js +0 -36
- package/dist/es6/breadcrumbs/lib/Breadcrumbs/List/hooks.d.ts +0 -19
- package/dist/es6/breadcrumbs/lib/Breadcrumbs/List/hooks.d.ts.map +0 -1
- package/dist/es6/breadcrumbs/lib/Breadcrumbs/List/hooks.js +0 -91
- package/dist/es6/breadcrumbs/lib/Breadcrumbs/List/index.d.ts +0 -4
- package/dist/es6/breadcrumbs/lib/Breadcrumbs/List/index.d.ts.map +0 -1
- package/dist/es6/breadcrumbs/lib/Breadcrumbs/List/index.js +0 -20
- package/dist/es6/breadcrumbs/lib/Breadcrumbs/List/styles.d.ts +0 -3
- package/dist/es6/breadcrumbs/lib/Breadcrumbs/List/styles.d.ts.map +0 -1
- package/dist/es6/breadcrumbs/lib/Breadcrumbs/List/styles.js +0 -12
- package/dist/es6/breadcrumbs/lib/Breadcrumbs/Nav.d.ts +0 -11
- package/dist/es6/breadcrumbs/lib/Breadcrumbs/Nav.d.ts.map +0 -1
- package/dist/es6/breadcrumbs/lib/Breadcrumbs/hooks.d.ts +0 -5
- package/dist/es6/breadcrumbs/lib/Breadcrumbs/hooks.d.ts.map +0 -1
- package/dist/es6/breadcrumbs/lib/Breadcrumbs/hooks.js +0 -8
- package/dist/es6/breadcrumbs/lib/Breadcrumbs/index.d.ts +0 -9
- package/dist/es6/breadcrumbs/lib/Breadcrumbs/index.d.ts.map +0 -1
- package/dist/es6/breadcrumbs/lib/Breadcrumbs/index.js +0 -14
- package/dist/es6/breadcrumbs/lib/Breadcrumbs/types.d.ts +0 -8
- package/dist/es6/breadcrumbs/lib/Breadcrumbs/types.d.ts.map +0 -1
- package/dist/es6/breadcrumbs/lib/Breadcrumbs/types.js +0 -1
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
|
|
3
|
+
import {createElemPropsHook, createSubcomponent} from '@workday/canvas-kit-react/common';
|
|
4
|
+
|
|
5
|
+
import {SystemIcon, SystemIconProps} from '@workday/canvas-kit-react/icon';
|
|
6
|
+
import {useStatusIndicatorModel} from './hooks';
|
|
7
|
+
|
|
8
|
+
export interface StatusIndicatorIconProps extends SystemIconProps {}
|
|
9
|
+
|
|
10
|
+
import {colors} from '@workday/canvas-kit-react/tokens';
|
|
11
|
+
|
|
12
|
+
export const statusIndicatorColors = {
|
|
13
|
+
gray: {
|
|
14
|
+
high: {
|
|
15
|
+
text: colors.frenchVanilla100,
|
|
16
|
+
background: colors.licorice300,
|
|
17
|
+
},
|
|
18
|
+
low: {
|
|
19
|
+
text: colors.licorice400,
|
|
20
|
+
background: colors.soap300,
|
|
21
|
+
},
|
|
22
|
+
},
|
|
23
|
+
orange: {
|
|
24
|
+
high: {
|
|
25
|
+
text: colors.licorice500,
|
|
26
|
+
background: colors.cantaloupe400,
|
|
27
|
+
},
|
|
28
|
+
low: {
|
|
29
|
+
text: colors.toastedMarshmallow600,
|
|
30
|
+
background: colors.cantaloupe100,
|
|
31
|
+
},
|
|
32
|
+
},
|
|
33
|
+
blue: {
|
|
34
|
+
high: {
|
|
35
|
+
text: colors.frenchVanilla100,
|
|
36
|
+
background: colors.blueberry400,
|
|
37
|
+
},
|
|
38
|
+
low: {
|
|
39
|
+
text: colors.blueberry500,
|
|
40
|
+
background: colors.blueberry100,
|
|
41
|
+
},
|
|
42
|
+
},
|
|
43
|
+
green: {
|
|
44
|
+
high: {
|
|
45
|
+
text: colors.frenchVanilla100,
|
|
46
|
+
background: colors.greenApple600,
|
|
47
|
+
},
|
|
48
|
+
low: {
|
|
49
|
+
text: colors.greenApple600,
|
|
50
|
+
background: colors.greenApple100,
|
|
51
|
+
},
|
|
52
|
+
},
|
|
53
|
+
red: {
|
|
54
|
+
high: {
|
|
55
|
+
text: colors.frenchVanilla100,
|
|
56
|
+
background: colors.cinnamon500,
|
|
57
|
+
},
|
|
58
|
+
low: {
|
|
59
|
+
text: colors.cinnamon600,
|
|
60
|
+
background: colors.cinnamon100,
|
|
61
|
+
},
|
|
62
|
+
},
|
|
63
|
+
transparent: {
|
|
64
|
+
high: {
|
|
65
|
+
text: colors.frenchVanilla100,
|
|
66
|
+
background: colors.blackPepper600,
|
|
67
|
+
},
|
|
68
|
+
low: {
|
|
69
|
+
text: colors.frenchVanilla100,
|
|
70
|
+
background: colors.blackPepper600,
|
|
71
|
+
},
|
|
72
|
+
},
|
|
73
|
+
};
|
|
74
|
+
|
|
75
|
+
const useStatusIndicatorIcon = createElemPropsHook(useStatusIndicatorModel)(({state}) => {
|
|
76
|
+
const colors = statusIndicatorColors[state.variant][state.emphasis];
|
|
77
|
+
return {
|
|
78
|
+
color: colors.text,
|
|
79
|
+
colorHover: colors.background,
|
|
80
|
+
};
|
|
81
|
+
});
|
|
82
|
+
|
|
83
|
+
export const StatusIndicatorIcon = createSubcomponent('span')({
|
|
84
|
+
modelHook: useStatusIndicatorModel,
|
|
85
|
+
elemPropsHook: useStatusIndicatorIcon,
|
|
86
|
+
})<StatusIndicatorIconProps>((elemProps, Element, model) => {
|
|
87
|
+
return <SystemIcon as={Element} size={20} role="img" {...elemProps} />;
|
|
88
|
+
});
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
|
|
3
|
+
import {createComponent} from '@workday/canvas-kit-react/common';
|
|
4
|
+
import {Text, TextProps} from '@workday/canvas-kit-react/text';
|
|
5
|
+
|
|
6
|
+
export interface StatusIndicatorLabelProps extends TextProps {}
|
|
7
|
+
|
|
8
|
+
export const StatusIndicatorLabel = createComponent('span')({
|
|
9
|
+
displayName: 'StatusIndicator.Label',
|
|
10
|
+
Component: ({children, ...elemProps}: StatusIndicatorLabelProps, ref, Element) => {
|
|
11
|
+
return (
|
|
12
|
+
<Text
|
|
13
|
+
whiteSpace="nowrap"
|
|
14
|
+
overflow="hidden"
|
|
15
|
+
textOverflow="ellipsis"
|
|
16
|
+
typeLevel="subtext.large"
|
|
17
|
+
fontWeight="bold"
|
|
18
|
+
textTransform="capitalize"
|
|
19
|
+
ref={ref}
|
|
20
|
+
color="inherit"
|
|
21
|
+
as={Element}
|
|
22
|
+
{...elemProps}
|
|
23
|
+
>
|
|
24
|
+
{children}
|
|
25
|
+
</Text>
|
|
26
|
+
);
|
|
27
|
+
},
|
|
28
|
+
});
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './useStatusIndicatorModel';
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import {createModelHook} from '@workday/canvas-kit-react/common';
|
|
2
|
+
|
|
3
|
+
export type StatusIndicatorVariant = 'gray' | 'orange' | 'blue' | 'green' | 'red' | 'transparent';
|
|
4
|
+
|
|
5
|
+
export type StatusIndicatorEmphasis = 'high' | 'low';
|
|
6
|
+
|
|
7
|
+
export const useStatusIndicatorModel = createModelHook({
|
|
8
|
+
defaultConfig: {
|
|
9
|
+
/**
|
|
10
|
+
* Defines the emphasis of the `StatusIndicator`.
|
|
11
|
+
* `high` emphasis will create more contrast between the background and text colors.
|
|
12
|
+
* `low` emphasis will create less contrast between the background and text colors.
|
|
13
|
+
* @default 'low'
|
|
14
|
+
*/
|
|
15
|
+
|
|
16
|
+
emphasis: 'low' as StatusIndicatorEmphasis,
|
|
17
|
+
/**
|
|
18
|
+
* Defines the color of the `StatusIndicator`.
|
|
19
|
+
* @default 'gray'
|
|
20
|
+
*/
|
|
21
|
+
variant: 'gray' as StatusIndicatorVariant,
|
|
22
|
+
},
|
|
23
|
+
})(config => {
|
|
24
|
+
const state = {
|
|
25
|
+
...config,
|
|
26
|
+
};
|
|
27
|
+
|
|
28
|
+
return {state, events: {}};
|
|
29
|
+
});
|
|
@@ -15,7 +15,6 @@ import {FormField} from '@workday/canvas-kit-preview-react/form-field';
|
|
|
15
15
|
import {useTextInputModel} from '@workday/canvas-kit-preview-react/text-input';
|
|
16
16
|
|
|
17
17
|
const baseStyles: CSSProperties = {
|
|
18
|
-
...type.levels.subtext.large,
|
|
19
18
|
transition: '0.2s box-shadow, 0.2s border-color',
|
|
20
19
|
resize: 'both',
|
|
21
20
|
'&::webkit-resizer': {
|
|
@@ -59,6 +58,7 @@ export const TextAreaField = createSubcomponent('textarea')({
|
|
|
59
58
|
return (
|
|
60
59
|
<FormField.Input
|
|
61
60
|
as={Element}
|
|
61
|
+
{...type.levels.subtext.large}
|
|
62
62
|
css={[baseStyles, focusStyles]}
|
|
63
63
|
{...elemProps}
|
|
64
64
|
border={`1px solid ${inputColors.border}`}
|
|
@@ -16,7 +16,6 @@ import {FormField} from '@workday/canvas-kit-preview-react/form-field';
|
|
|
16
16
|
import {useTextInputField, useTextInputModel} from './hooks';
|
|
17
17
|
|
|
18
18
|
const baseStyles: CSSProperties = {
|
|
19
|
-
...type.levels.subtext.large,
|
|
20
19
|
transition: '0.2s box-shadow, 0.2s border-color',
|
|
21
20
|
'&::placeholder': {
|
|
22
21
|
color: inputColors.placeholder,
|
|
@@ -60,6 +59,7 @@ export const TextInputField = createSubcomponent('input')({
|
|
|
60
59
|
return (
|
|
61
60
|
<FormField.Input
|
|
62
61
|
as="input"
|
|
62
|
+
{...type.levels.subtext.large}
|
|
63
63
|
css={[baseStyles, focusStyles]}
|
|
64
64
|
padding={space.xxs}
|
|
65
65
|
margin={0}
|
package/breadcrumbs/README.md
DELETED
package/breadcrumbs/index.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export * from './lib/Breadcrumbs';
|
|
@@ -1,85 +0,0 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
import {BaseButton} from '@workday/canvas-kit-react/button';
|
|
3
|
-
import {relatedActionsIcon} from '@workday/canvas-system-icons-web';
|
|
4
|
-
import {CanvasSystemIcon} from '@workday/design-assets-types';
|
|
5
|
-
import {createComponent, EmotionCanvasTheme, useTheme} from '@workday/canvas-kit-react/common';
|
|
6
|
-
import {colors, space} from '@workday/canvas-kit-react/tokens';
|
|
7
|
-
|
|
8
|
-
export interface DropdownButtonProps extends React.HTMLAttributes<HTMLButtonElement> {
|
|
9
|
-
/**
|
|
10
|
-
* The accessibility label for the button
|
|
11
|
-
*/
|
|
12
|
-
'aria-label': string;
|
|
13
|
-
/**
|
|
14
|
-
* The Canvas System Icon for the button
|
|
15
|
-
*
|
|
16
|
-
* @default relatedActionsIcon
|
|
17
|
-
*/
|
|
18
|
-
buttonIcon?: CanvasSystemIcon;
|
|
19
|
-
/**
|
|
20
|
-
* The boolean to determine whether the button should be in a 'toggled' state
|
|
21
|
-
*/
|
|
22
|
-
toggled: boolean;
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
export const DropdownButton = createComponent('button')({
|
|
26
|
-
displayName: 'DropdownButton',
|
|
27
|
-
Component: (
|
|
28
|
-
{buttonIcon = relatedActionsIcon, toggled, ...elemProps}: DropdownButtonProps,
|
|
29
|
-
ref,
|
|
30
|
-
Element
|
|
31
|
-
) => {
|
|
32
|
-
const theme = useTheme();
|
|
33
|
-
return (
|
|
34
|
-
<BaseButton
|
|
35
|
-
as={Element}
|
|
36
|
-
ref={ref}
|
|
37
|
-
aria-pressed={undefined} // removing aria-pressed from button and opting for aria-expanded
|
|
38
|
-
aria-expanded={toggled}
|
|
39
|
-
aria-haspopup
|
|
40
|
-
aria-controls="menu"
|
|
41
|
-
size="small"
|
|
42
|
-
height={space.l}
|
|
43
|
-
width={space.l}
|
|
44
|
-
padding={space.zero}
|
|
45
|
-
colors={getDropdownColors(toggled, theme)}
|
|
46
|
-
{...elemProps}
|
|
47
|
-
>
|
|
48
|
-
<BaseButton.Icon icon={buttonIcon} />
|
|
49
|
-
</BaseButton>
|
|
50
|
-
);
|
|
51
|
-
},
|
|
52
|
-
});
|
|
53
|
-
|
|
54
|
-
const getDropdownColors = (toggled: boolean, theme: EmotionCanvasTheme) => {
|
|
55
|
-
const {
|
|
56
|
-
canvas: {
|
|
57
|
-
palette: {primary: themePrimary},
|
|
58
|
-
},
|
|
59
|
-
} = theme;
|
|
60
|
-
|
|
61
|
-
return {
|
|
62
|
-
default: {
|
|
63
|
-
icon: toggled ? themePrimary.main : colors.blackPepper400,
|
|
64
|
-
label: themePrimary.main,
|
|
65
|
-
},
|
|
66
|
-
hover: {
|
|
67
|
-
background: colors.soap200,
|
|
68
|
-
icon: toggled ? themePrimary.dark : colors.blackPepper500,
|
|
69
|
-
label: themePrimary.dark,
|
|
70
|
-
},
|
|
71
|
-
active: {
|
|
72
|
-
background: colors.soap300,
|
|
73
|
-
icon: toggled ? themePrimary.dark : colors.blackPepper500,
|
|
74
|
-
label: themePrimary.dark,
|
|
75
|
-
},
|
|
76
|
-
focus: {
|
|
77
|
-
icon: toggled ? themePrimary.main : colors.blackPepper500,
|
|
78
|
-
label: themePrimary.main,
|
|
79
|
-
},
|
|
80
|
-
disabled: {
|
|
81
|
-
icon: toggled ? themePrimary.main : colors.blackPepper400,
|
|
82
|
-
label: themePrimary.main,
|
|
83
|
-
},
|
|
84
|
-
};
|
|
85
|
-
};
|
|
@@ -1,152 +0,0 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
import {styled} from '@workday/canvas-kit-react/common';
|
|
3
|
-
import {
|
|
4
|
-
borderRadius,
|
|
5
|
-
colors,
|
|
6
|
-
commonColors,
|
|
7
|
-
depth,
|
|
8
|
-
space,
|
|
9
|
-
type,
|
|
10
|
-
} from '@workday/canvas-kit-react/tokens';
|
|
11
|
-
|
|
12
|
-
// types
|
|
13
|
-
import {Breadcrumb} from '../types';
|
|
14
|
-
// local components
|
|
15
|
-
import {DropdownMenuItemLink} from './MenuItemLink';
|
|
16
|
-
import {Box, BoxProps} from '@workday/canvas-kit-react/layout';
|
|
17
|
-
|
|
18
|
-
export interface DropdownMenuProps {
|
|
19
|
-
/**
|
|
20
|
-
* The active dropdown item in the menu
|
|
21
|
-
*/
|
|
22
|
-
activeDropdownItem: Breadcrumb;
|
|
23
|
-
/**
|
|
24
|
-
* The HTML `id` of the element that labels the Menu. It should match the id of the menu button.
|
|
25
|
-
*/
|
|
26
|
-
'aria-labelledby': string;
|
|
27
|
-
/**
|
|
28
|
-
* An array of Breadcrumb items to render in the dropdown menu
|
|
29
|
-
*/
|
|
30
|
-
dropdownItems: Breadcrumb[];
|
|
31
|
-
/**
|
|
32
|
-
* A function to set the active dropdown item
|
|
33
|
-
*/
|
|
34
|
-
setActiveDropdownItem: React.Dispatch<React.SetStateAction<Breadcrumb>>;
|
|
35
|
-
/**
|
|
36
|
-
* The ref of the rendered HTMLAnchorElement
|
|
37
|
-
*/
|
|
38
|
-
activeDropdownItemRef: React.RefObject<HTMLAnchorElement>;
|
|
39
|
-
/**
|
|
40
|
-
* A function to return the focus to the dropdown button
|
|
41
|
-
*/
|
|
42
|
-
resetFocus: () => void;
|
|
43
|
-
/**
|
|
44
|
-
* A function to toggle the focus to the previous list item
|
|
45
|
-
*/
|
|
46
|
-
toggleActiveItemUp: () => void;
|
|
47
|
-
/**
|
|
48
|
-
* A function to toggle the focus to the next list item
|
|
49
|
-
*/
|
|
50
|
-
toggleActiveItemDown: () => void;
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
const StyledDropdownMenu = styled(Box)<BoxProps>({
|
|
54
|
-
...type.levels.subtext.large,
|
|
55
|
-
...depth[3],
|
|
56
|
-
backgroundColor: commonColors.background,
|
|
57
|
-
border: `1px solid ${colors.soap500}`,
|
|
58
|
-
borderRadius: borderRadius.m,
|
|
59
|
-
boxSizing: 'border-box',
|
|
60
|
-
display: 'inline-block',
|
|
61
|
-
marginTop: space.xxxs,
|
|
62
|
-
maxHeight: 200,
|
|
63
|
-
outline: 'none',
|
|
64
|
-
overflowY: 'auto',
|
|
65
|
-
position: 'relative',
|
|
66
|
-
width: 'max-content',
|
|
67
|
-
});
|
|
68
|
-
|
|
69
|
-
const StyledMenuList = styled('ul')({
|
|
70
|
-
boxSizing: 'border-box',
|
|
71
|
-
listStyle: 'none',
|
|
72
|
-
margin: `${space.xxs} 0`,
|
|
73
|
-
padding: 0,
|
|
74
|
-
width: 280,
|
|
75
|
-
wordBreak: 'break-word',
|
|
76
|
-
wordWrap: 'break-word', // Needed for IE11
|
|
77
|
-
});
|
|
78
|
-
|
|
79
|
-
const MenuList = (elemProps: React.HTMLAttributes<HTMLUListElement>) => {
|
|
80
|
-
return <StyledMenuList role="menu" {...elemProps} />;
|
|
81
|
-
};
|
|
82
|
-
|
|
83
|
-
export const DropdownMenu = ({
|
|
84
|
-
activeDropdownItemRef,
|
|
85
|
-
activeDropdownItem,
|
|
86
|
-
dropdownItems = [],
|
|
87
|
-
resetFocus,
|
|
88
|
-
setActiveDropdownItem,
|
|
89
|
-
toggleActiveItemDown,
|
|
90
|
-
toggleActiveItemUp,
|
|
91
|
-
...elemProps
|
|
92
|
-
}: DropdownMenuProps) => {
|
|
93
|
-
const handleItemKeyUp = (event: React.KeyboardEvent<HTMLLIElement>) => {
|
|
94
|
-
switch (event.key) {
|
|
95
|
-
case 'ArrowUp':
|
|
96
|
-
case 'Up': // IE/Edge specific value
|
|
97
|
-
case 'ArrowLeft':
|
|
98
|
-
case 'Left': // IE/Edge specific value
|
|
99
|
-
toggleActiveItemUp();
|
|
100
|
-
break;
|
|
101
|
-
case 'ArrowDown':
|
|
102
|
-
case 'Down': // IE/Edge specific value
|
|
103
|
-
case 'ArrowRight':
|
|
104
|
-
case 'Right': // IE/Edge specific value
|
|
105
|
-
toggleActiveItemDown();
|
|
106
|
-
break;
|
|
107
|
-
default:
|
|
108
|
-
break;
|
|
109
|
-
}
|
|
110
|
-
};
|
|
111
|
-
|
|
112
|
-
const handleItemKeyDown = (event: React.KeyboardEvent<HTMLLIElement>, item: Breadcrumb) => {
|
|
113
|
-
switch (event.key) {
|
|
114
|
-
case 'Tab':
|
|
115
|
-
event.preventDefault();
|
|
116
|
-
break;
|
|
117
|
-
case 'Enter':
|
|
118
|
-
event.preventDefault();
|
|
119
|
-
if (item.onAction) {
|
|
120
|
-
item.onAction(item.link);
|
|
121
|
-
resetFocus();
|
|
122
|
-
break;
|
|
123
|
-
}
|
|
124
|
-
window.location.href = item.link;
|
|
125
|
-
break;
|
|
126
|
-
default:
|
|
127
|
-
break;
|
|
128
|
-
}
|
|
129
|
-
};
|
|
130
|
-
|
|
131
|
-
return (
|
|
132
|
-
<StyledDropdownMenu>
|
|
133
|
-
<MenuList {...elemProps}>
|
|
134
|
-
{dropdownItems.map((item, i) => {
|
|
135
|
-
const {index, link, text, ...elemProps} = item;
|
|
136
|
-
const isFocused = index === activeDropdownItem.index;
|
|
137
|
-
return (
|
|
138
|
-
<li onKeyUp={handleItemKeyUp} onKeyDown={e => handleItemKeyDown(e, item)} key={i}>
|
|
139
|
-
<DropdownMenuItemLink
|
|
140
|
-
ref={isFocused ? activeDropdownItemRef : null}
|
|
141
|
-
href={link}
|
|
142
|
-
{...elemProps}
|
|
143
|
-
>
|
|
144
|
-
{text}
|
|
145
|
-
</DropdownMenuItemLink>
|
|
146
|
-
</li>
|
|
147
|
-
);
|
|
148
|
-
})}
|
|
149
|
-
</MenuList>
|
|
150
|
-
</StyledDropdownMenu>
|
|
151
|
-
);
|
|
152
|
-
};
|
|
@@ -1,63 +0,0 @@
|
|
|
1
|
-
import React, {forwardRef} from 'react';
|
|
2
|
-
import {styled} from '@workday/canvas-kit-react/common';
|
|
3
|
-
import {colors, commonColors, type, typeColors, space} from '@workday/canvas-kit-react/tokens';
|
|
4
|
-
|
|
5
|
-
interface DropdownMenuItemLinkProps extends React.HTMLAttributes<HTMLAnchorElement> {
|
|
6
|
-
/**
|
|
7
|
-
* The href url of the anchor tag
|
|
8
|
-
*/
|
|
9
|
-
href: string;
|
|
10
|
-
/**
|
|
11
|
-
* A handler function for overriding hard-redirects with links
|
|
12
|
-
*/
|
|
13
|
-
onAction?: (href: string) => void;
|
|
14
|
-
}
|
|
15
|
-
|
|
16
|
-
const MenuItemLink = styled('a')({
|
|
17
|
-
...type.levels.subtext.large,
|
|
18
|
-
boxSizing: 'border-box',
|
|
19
|
-
textAlign: 'left',
|
|
20
|
-
color: colors.blackPepper300,
|
|
21
|
-
cursor: 'pointer',
|
|
22
|
-
display: 'block',
|
|
23
|
-
outline: 'none',
|
|
24
|
-
padding: `${space.xxs} ${space.s}`,
|
|
25
|
-
textDecoration: 'none',
|
|
26
|
-
transition: 'background-color color 80ms',
|
|
27
|
-
'&:hover': {
|
|
28
|
-
backgroundColor: commonColors.hoverBackground,
|
|
29
|
-
},
|
|
30
|
-
'&:focus': {
|
|
31
|
-
backgroundColor: commonColors.focusBackground,
|
|
32
|
-
color: typeColors.inverse,
|
|
33
|
-
outline: 'none',
|
|
34
|
-
},
|
|
35
|
-
});
|
|
36
|
-
|
|
37
|
-
export const DropdownMenuItemLink = forwardRef(
|
|
38
|
-
(
|
|
39
|
-
{children, href, onAction, onClick, ...elemProps}: DropdownMenuItemLinkProps,
|
|
40
|
-
ref: React.Ref<HTMLAnchorElement>
|
|
41
|
-
) => {
|
|
42
|
-
const handleClick = (event: React.MouseEvent<HTMLAnchorElement, MouseEvent>) => {
|
|
43
|
-
event.preventDefault();
|
|
44
|
-
// allow an override to the hard redirect
|
|
45
|
-
if (onAction) {
|
|
46
|
-
onAction(href);
|
|
47
|
-
} else {
|
|
48
|
-
// default to hard redirecting
|
|
49
|
-
window.location.href = href;
|
|
50
|
-
}
|
|
51
|
-
// don't block the onClick event if it's provided
|
|
52
|
-
if (onClick) {
|
|
53
|
-
onClick(event);
|
|
54
|
-
}
|
|
55
|
-
};
|
|
56
|
-
|
|
57
|
-
return (
|
|
58
|
-
<MenuItemLink ref={ref} href={href} role="menuitem" onClick={handleClick} {...elemProps}>
|
|
59
|
-
{children}
|
|
60
|
-
</MenuItemLink>
|
|
61
|
-
);
|
|
62
|
-
}
|
|
63
|
-
);
|
|
@@ -1,109 +0,0 @@
|
|
|
1
|
-
import {useState, useLayoutEffect} from 'react';
|
|
2
|
-
import {useUniqueId, changeFocus} from '@workday/canvas-kit-react/common';
|
|
3
|
-
import {
|
|
4
|
-
useCloseOnOutsideClick,
|
|
5
|
-
useCloseOnEscape,
|
|
6
|
-
usePopupModel,
|
|
7
|
-
useReturnFocus,
|
|
8
|
-
usePopupTarget,
|
|
9
|
-
usePopupPopper,
|
|
10
|
-
} from '@workday/canvas-kit-react/popup';
|
|
11
|
-
|
|
12
|
-
import {DropdownButtonProps} from './Button';
|
|
13
|
-
import {DropdownMenuProps} from './Menu';
|
|
14
|
-
import {Breadcrumb} from '../types';
|
|
15
|
-
|
|
16
|
-
export const useFocusActiveItemElement = <E extends HTMLElement>(
|
|
17
|
-
activeDropdownItemRef: React.RefObject<E>
|
|
18
|
-
) => {
|
|
19
|
-
useLayoutEffect(() => {
|
|
20
|
-
if (activeDropdownItemRef.current) {
|
|
21
|
-
return activeDropdownItemRef.current.focus();
|
|
22
|
-
}
|
|
23
|
-
});
|
|
24
|
-
};
|
|
25
|
-
|
|
26
|
-
const initialActiveItem = {
|
|
27
|
-
index: 0,
|
|
28
|
-
link: '',
|
|
29
|
-
text: '',
|
|
30
|
-
width: 0,
|
|
31
|
-
} as Breadcrumb;
|
|
32
|
-
|
|
33
|
-
interface UseDropdown {
|
|
34
|
-
dropdownButtonProps: Omit<DropdownButtonProps, 'aria-label'>;
|
|
35
|
-
dropdownMenuProps: DropdownMenuProps;
|
|
36
|
-
popperProps: ReturnType<typeof usePopupPopper>;
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
export const useDropdown = (
|
|
40
|
-
activeDropdownItemRef: React.RefObject<HTMLAnchorElement>,
|
|
41
|
-
items: Breadcrumb[],
|
|
42
|
-
buttonId?: string
|
|
43
|
-
): UseDropdown => {
|
|
44
|
-
// state
|
|
45
|
-
const [activeDropdownItem, setActiveDropdownItem] = useState(initialActiveItem);
|
|
46
|
-
// behaviors
|
|
47
|
-
const model = usePopupModel({
|
|
48
|
-
initialFocusRef: activeDropdownItemRef,
|
|
49
|
-
});
|
|
50
|
-
|
|
51
|
-
useCloseOnOutsideClick(model);
|
|
52
|
-
useCloseOnEscape(model);
|
|
53
|
-
useReturnFocus(model);
|
|
54
|
-
useFocusActiveItemElement(activeDropdownItemRef);
|
|
55
|
-
|
|
56
|
-
const handleButtonKeyUp = (e: React.KeyboardEvent<HTMLButtonElement>) => {
|
|
57
|
-
if (e.key === 'Enter') {
|
|
58
|
-
setActiveDropdownItem(items[0]);
|
|
59
|
-
}
|
|
60
|
-
};
|
|
61
|
-
|
|
62
|
-
const resetMenuFocus = () => {
|
|
63
|
-
model.events.hide();
|
|
64
|
-
changeFocus(model.state.targetRef.current);
|
|
65
|
-
};
|
|
66
|
-
|
|
67
|
-
const findActiveDropdownItemByIndex = (index: number) => {
|
|
68
|
-
return items.filter(item => item.index === index)[0];
|
|
69
|
-
};
|
|
70
|
-
|
|
71
|
-
const toggleActiveItemUp = () => {
|
|
72
|
-
const previousItem = findActiveDropdownItemByIndex(activeDropdownItem.index - 1);
|
|
73
|
-
if (!previousItem) {
|
|
74
|
-
return resetMenuFocus();
|
|
75
|
-
}
|
|
76
|
-
return setActiveDropdownItem(previousItem);
|
|
77
|
-
};
|
|
78
|
-
|
|
79
|
-
const toggleActiveItemDown = () => {
|
|
80
|
-
const nextItem = findActiveDropdownItemByIndex(activeDropdownItem.index + 1);
|
|
81
|
-
if (!nextItem) {
|
|
82
|
-
return setActiveDropdownItem(items[0]);
|
|
83
|
-
}
|
|
84
|
-
return setActiveDropdownItem(nextItem);
|
|
85
|
-
};
|
|
86
|
-
|
|
87
|
-
const uniqueButtonId = useUniqueId(buttonId);
|
|
88
|
-
|
|
89
|
-
const dropdownButtonProps = usePopupTarget(model, {
|
|
90
|
-
id: uniqueButtonId,
|
|
91
|
-
toggled: model.state.visibility !== 'hidden',
|
|
92
|
-
onKeyUp: handleButtonKeyUp,
|
|
93
|
-
});
|
|
94
|
-
|
|
95
|
-
const dropdownMenuProps = {
|
|
96
|
-
'aria-labelledby': uniqueButtonId,
|
|
97
|
-
dropdownItems: items,
|
|
98
|
-
activeDropdownItem,
|
|
99
|
-
activeDropdownItemRef,
|
|
100
|
-
setActiveDropdownItem,
|
|
101
|
-
resetFocus: resetMenuFocus,
|
|
102
|
-
toggleActiveItemUp,
|
|
103
|
-
toggleActiveItemDown,
|
|
104
|
-
};
|
|
105
|
-
|
|
106
|
-
const popperProps = usePopupPopper(model);
|
|
107
|
-
|
|
108
|
-
return {dropdownButtonProps, dropdownMenuProps, popperProps};
|
|
109
|
-
};
|
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
import {Breadcrumb} from '../types';
|
|
3
|
-
import {Popper} from '@workday/canvas-kit-react/popup';
|
|
4
|
-
|
|
5
|
-
import {useRTL} from '../hooks';
|
|
6
|
-
import {useDropdown} from './hooks';
|
|
7
|
-
import {DropdownButton, DropdownButtonProps} from './Button';
|
|
8
|
-
import {DropdownMenu} from './Menu';
|
|
9
|
-
|
|
10
|
-
export interface DropdownProps extends Pick<DropdownButtonProps, 'buttonIcon'> {
|
|
11
|
-
buttonAriaLabel: string;
|
|
12
|
-
items?: Breadcrumb[];
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
export const Dropdown = ({buttonAriaLabel, buttonIcon, items = []}: DropdownProps) => {
|
|
16
|
-
// refs
|
|
17
|
-
const activeDropdownItemRef = React.useRef<HTMLAnchorElement>(null);
|
|
18
|
-
// behaviors
|
|
19
|
-
const {dropdownButtonProps, dropdownMenuProps, popperProps} = useDropdown(
|
|
20
|
-
activeDropdownItemRef,
|
|
21
|
-
items
|
|
22
|
-
);
|
|
23
|
-
const {shouldUseRTL} = useRTL();
|
|
24
|
-
const placement = shouldUseRTL ? 'bottom-end' : 'bottom-start';
|
|
25
|
-
|
|
26
|
-
return (
|
|
27
|
-
<>
|
|
28
|
-
<DropdownButton
|
|
29
|
-
aria-label={buttonAriaLabel}
|
|
30
|
-
buttonIcon={buttonIcon}
|
|
31
|
-
{...dropdownButtonProps}
|
|
32
|
-
/>
|
|
33
|
-
<Popper placement={placement} {...popperProps}>
|
|
34
|
-
<DropdownMenu {...dropdownMenuProps} />
|
|
35
|
-
</Popper>
|
|
36
|
-
</>
|
|
37
|
-
);
|
|
38
|
-
};
|