@unoff/ui 1.21.0
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/LICENSE +21 -0
- package/README.md +880 -0
- package/dist/assets/Accordion.css +1 -0
- package/dist/assets/ActionsItem.css +1 -0
- package/dist/assets/ActionsList.css +1 -0
- package/dist/assets/Avatar.css +1 -0
- package/dist/assets/Bar.css +1 -0
- package/dist/assets/Button.css +1 -0
- package/dist/assets/Card.css +1 -0
- package/dist/assets/Chip.css +1 -0
- package/dist/assets/ColorChip.css +1 -0
- package/dist/assets/ColorItem.css +1 -0
- package/dist/assets/Consent.css +1 -0
- package/dist/assets/Dialog.css +1 -0
- package/dist/assets/DraggableItem.css +1 -0
- package/dist/assets/DraggableWindow.css +1 -0
- package/dist/assets/Drawer.css +1 -0
- package/dist/assets/Dropdown.css +1 -0
- package/dist/assets/Dropzone.css +1 -0
- package/dist/assets/FormItem.css +1 -0
- package/dist/assets/Icon.css +1 -0
- package/dist/assets/IconChip.css +1 -0
- package/dist/assets/Input.css +1 -0
- package/dist/assets/InputsBar.css +1 -0
- package/dist/assets/KeyboardShortcutItem.css +1 -0
- package/dist/assets/Knob.css +1 -0
- package/dist/assets/Layout.css +1 -0
- package/dist/assets/List.css +1 -0
- package/dist/assets/MembersList.css +1 -0
- package/dist/assets/Menu.css +1 -0
- package/dist/assets/Message.css +1 -0
- package/dist/assets/MultipleSlider.css +1 -0
- package/dist/assets/Notification.css +1 -0
- package/dist/assets/Popin.css +1 -0
- package/dist/assets/Section.css +1 -0
- package/dist/assets/SectionTitle.css +1 -0
- package/dist/assets/Select.css +1 -0
- package/dist/assets/SemanticMessage.css +1 -0
- package/dist/assets/SimpleItem.css +1 -0
- package/dist/assets/SimpleSlider.css +1 -0
- package/dist/assets/SortableList.css +1 -0
- package/dist/assets/Tabs.css +1 -0
- package/dist/assets/Text.css +1 -0
- package/dist/assets/Thumbnail.css +1 -0
- package/dist/assets/Tooltip.css +1 -0
- package/dist/assets/styles/icons/icons.css +1 -0
- package/dist/assets/styles/icons/styles/figma.css +1 -0
- package/dist/assets/styles/icons/styles/framer.css +1 -0
- package/dist/assets/styles/icons/styles/penpot.css +1 -0
- package/dist/assets/styles/icons/styles/sketch.css +1 -0
- package/dist/assets/styles/layouts.css +1 -0
- package/dist/assets/styles/texts/styles/figma.css +1 -0
- package/dist/assets/styles/texts/styles/framer.css +1 -0
- package/dist/assets/styles/texts/styles/penpot.css +1 -0
- package/dist/assets/styles/texts/styles/sketch.css +1 -0
- package/dist/assets/styles/texts/texts.css +1 -0
- package/dist/assets/styles/tokens/figma-types.css +1 -0
- package/dist/assets/styles/tokens/framer-types.css +1 -0
- package/dist/assets/styles/tokens/modules/figma-colors.css +1 -0
- package/dist/assets/styles/tokens/modules/figma-types.css +1 -0
- package/dist/assets/styles/tokens/modules/framer-colors.css +1 -0
- package/dist/assets/styles/tokens/modules/framer-types.css +1 -0
- package/dist/assets/styles/tokens/modules/globals.css +1 -0
- package/dist/assets/styles/tokens/modules/penpot-colors.css +1 -0
- package/dist/assets/styles/tokens/modules/penpot-types.css +1 -0
- package/dist/assets/styles/tokens/modules/sketch-colors.css +1 -0
- package/dist/assets/styles/tokens/modules/sketch-types.css +1 -0
- package/dist/assets/styles/tokens/penpot-types.css +1 -0
- package/dist/assets/styles/tokens/sketch-types.css +1 -0
- package/dist/components/actions/accordion/Accordion.d.ts +59 -0
- package/dist/components/actions/accordion/Accordion.d.ts.map +1 -0
- package/dist/components/actions/accordion/Accordion.js +104 -0
- package/dist/components/actions/accordion/Accordion.js.map +1 -0
- package/dist/components/actions/button/Button.d.ts +148 -0
- package/dist/components/actions/button/Button.d.ts.map +1 -0
- package/dist/components/actions/button/Button.figma.d.ts +2 -0
- package/dist/components/actions/button/Button.figma.d.ts.map +1 -0
- package/dist/components/actions/button/Button.figma.js +43 -0
- package/dist/components/actions/button/Button.figma.js.map +1 -0
- package/dist/components/actions/button/Button.js +306 -0
- package/dist/components/actions/button/Button.js.map +1 -0
- package/dist/components/actions/card/Card.d.ts +39 -0
- package/dist/components/actions/card/Card.d.ts.map +1 -0
- package/dist/components/actions/card/Card.js +99 -0
- package/dist/components/actions/card/Card.js.map +1 -0
- package/dist/components/actions/knob/Knob.d.ts +93 -0
- package/dist/components/actions/knob/Knob.d.ts.map +1 -0
- package/dist/components/actions/knob/Knob.js +179 -0
- package/dist/components/actions/knob/Knob.js.map +1 -0
- package/dist/components/actions/menu/Menu.d.ts +104 -0
- package/dist/components/actions/menu/Menu.d.ts.map +1 -0
- package/dist/components/actions/menu/Menu.js +200 -0
- package/dist/components/actions/menu/Menu.js.map +1 -0
- package/dist/components/assets/avatar/Avatar.d.ts +30 -0
- package/dist/components/assets/avatar/Avatar.d.ts.map +1 -0
- package/dist/components/assets/avatar/Avatar.js +54 -0
- package/dist/components/assets/avatar/Avatar.js.map +1 -0
- package/dist/components/assets/icon/Icon.d.ts +28 -0
- package/dist/components/assets/icon/Icon.d.ts.map +1 -0
- package/dist/components/assets/icon/Icon.figma.d.ts +2 -0
- package/dist/components/assets/icon/Icon.figma.d.ts.map +1 -0
- package/dist/components/assets/icon/Icon.figma.js +27 -0
- package/dist/components/assets/icon/Icon.figma.js.map +1 -0
- package/dist/components/assets/icon/Icon.js +35 -0
- package/dist/components/assets/icon/Icon.js.map +1 -0
- package/dist/components/assets/section-title/SectionTitle.d.ts +22 -0
- package/dist/components/assets/section-title/SectionTitle.d.ts.map +1 -0
- package/dist/components/assets/section-title/SectionTitle.js +42 -0
- package/dist/components/assets/section-title/SectionTitle.js.map +1 -0
- package/dist/components/assets/text/Text.d.ts +34 -0
- package/dist/components/assets/text/Text.d.ts.map +1 -0
- package/dist/components/assets/text/Text.js +35 -0
- package/dist/components/assets/text/Text.js.map +1 -0
- package/dist/components/assets/thumbnail/Thumbnail.d.ts +25 -0
- package/dist/components/assets/thumbnail/Thumbnail.d.ts.map +1 -0
- package/dist/components/assets/thumbnail/Thumbnail.js +67 -0
- package/dist/components/assets/thumbnail/Thumbnail.js.map +1 -0
- package/dist/components/dialogs/consent/Consent.d.ts +85 -0
- package/dist/components/dialogs/consent/Consent.d.ts.map +1 -0
- package/dist/components/dialogs/consent/Consent.js +402 -0
- package/dist/components/dialogs/consent/Consent.js.map +1 -0
- package/dist/components/dialogs/dialog/Dialog.d.ts +81 -0
- package/dist/components/dialogs/dialog/Dialog.d.ts.map +1 -0
- package/dist/components/dialogs/dialog/Dialog.js +58 -0
- package/dist/components/dialogs/dialog/Dialog.js.map +1 -0
- package/dist/components/dialogs/message/Message.d.ts +25 -0
- package/dist/components/dialogs/message/Message.d.ts.map +1 -0
- package/dist/components/dialogs/message/Message.js +141 -0
- package/dist/components/dialogs/message/Message.js.map +1 -0
- package/dist/components/dialogs/notification/Notification.d.ts +22 -0
- package/dist/components/dialogs/notification/Notification.d.ts.map +1 -0
- package/dist/components/dialogs/notification/Notification.js +38 -0
- package/dist/components/dialogs/notification/Notification.js.map +1 -0
- package/dist/components/dialogs/semantic-message/SemanticMessage.d.ts +40 -0
- package/dist/components/dialogs/semantic-message/SemanticMessage.d.ts.map +1 -0
- package/dist/components/dialogs/semantic-message/SemanticMessage.js +71 -0
- package/dist/components/dialogs/semantic-message/SemanticMessage.js.map +1 -0
- package/dist/components/inputs/dropdown/Dropdown.d.ts +123 -0
- package/dist/components/inputs/dropdown/Dropdown.d.ts.map +1 -0
- package/dist/components/inputs/dropdown/Dropdown.figma.d.ts +2 -0
- package/dist/components/inputs/dropdown/Dropdown.figma.d.ts.map +1 -0
- package/dist/components/inputs/dropdown/Dropdown.figma.js +28 -0
- package/dist/components/inputs/dropdown/Dropdown.figma.js.map +1 -0
- package/dist/components/inputs/dropdown/Dropdown.js +307 -0
- package/dist/components/inputs/dropdown/Dropdown.js.map +1 -0
- package/dist/components/inputs/dropzone/Dropzone.d.ts +78 -0
- package/dist/components/inputs/dropzone/Dropzone.d.ts.map +1 -0
- package/dist/components/inputs/dropzone/Dropzone.js +222 -0
- package/dist/components/inputs/dropzone/Dropzone.js.map +1 -0
- package/dist/components/inputs/input/Input.d.ts +203 -0
- package/dist/components/inputs/input/Input.d.ts.map +1 -0
- package/dist/components/inputs/input/Input.figma.d.ts +2 -0
- package/dist/components/inputs/input/Input.figma.d.ts.map +1 -0
- package/dist/components/inputs/input/Input.figma.js +35 -0
- package/dist/components/inputs/input/Input.figma.js.map +1 -0
- package/dist/components/inputs/input/Input.js +713 -0
- package/dist/components/inputs/input/Input.js.map +1 -0
- package/dist/components/inputs/inputs-bar/InputsBar.d.ts +18 -0
- package/dist/components/inputs/inputs-bar/InputsBar.d.ts.map +1 -0
- package/dist/components/inputs/inputs-bar/InputsBar.js +15 -0
- package/dist/components/inputs/inputs-bar/InputsBar.js.map +1 -0
- package/dist/components/inputs/multiple-slider/MultipleSlider.d.ts +125 -0
- package/dist/components/inputs/multiple-slider/MultipleSlider.d.ts.map +1 -0
- package/dist/components/inputs/multiple-slider/MultipleSlider.js +417 -0
- package/dist/components/inputs/multiple-slider/MultipleSlider.js.map +1 -0
- package/dist/components/inputs/multiple-slider/actions/addStop.d.ts +8 -0
- package/dist/components/inputs/multiple-slider/actions/addStop.d.ts.map +1 -0
- package/dist/components/inputs/multiple-slider/actions/deleteStop.d.ts +8 -0
- package/dist/components/inputs/multiple-slider/actions/deleteStop.d.ts.map +1 -0
- package/dist/components/inputs/multiple-slider/actions/shiftLeftStop.d.ts +5 -0
- package/dist/components/inputs/multiple-slider/actions/shiftLeftStop.d.ts.map +1 -0
- package/dist/components/inputs/multiple-slider/actions/shiftRightStop.d.ts +5 -0
- package/dist/components/inputs/multiple-slider/actions/shiftRightStop.d.ts.map +1 -0
- package/dist/components/inputs/select/Select.d.ts +112 -0
- package/dist/components/inputs/select/Select.d.ts.map +1 -0
- package/dist/components/inputs/select/Select.js +313 -0
- package/dist/components/inputs/select/Select.js.map +1 -0
- package/dist/components/inputs/simple-slider/SimpleSlider.d.ts +93 -0
- package/dist/components/inputs/simple-slider/SimpleSlider.d.ts.map +1 -0
- package/dist/components/inputs/simple-slider/SimpleSlider.js +166 -0
- package/dist/components/inputs/simple-slider/SimpleSlider.js.map +1 -0
- package/dist/components/lists/actions-item/ActionsItem.d.ts +64 -0
- package/dist/components/lists/actions-item/ActionsItem.d.ts.map +1 -0
- package/dist/components/lists/actions-item/ActionsItem.js +115 -0
- package/dist/components/lists/actions-item/ActionsItem.js.map +1 -0
- package/dist/components/lists/actions-list/ActionsList.d.ts +79 -0
- package/dist/components/lists/actions-list/ActionsList.d.ts.map +1 -0
- package/dist/components/lists/actions-list/ActionsList.js +384 -0
- package/dist/components/lists/actions-list/ActionsList.js.map +1 -0
- package/dist/components/lists/color-item/ColorItem.d.ts +27 -0
- package/dist/components/lists/color-item/ColorItem.d.ts.map +1 -0
- package/dist/components/lists/color-item/ColorItem.js +70 -0
- package/dist/components/lists/color-item/ColorItem.js.map +1 -0
- package/dist/components/lists/draggable-item/DraggableItem.d.ts +110 -0
- package/dist/components/lists/draggable-item/DraggableItem.d.ts.map +1 -0
- package/dist/components/lists/draggable-item/DraggableItem.js +176 -0
- package/dist/components/lists/draggable-item/DraggableItem.js.map +1 -0
- package/dist/components/lists/keyboard-shortcut-item/KeyboardShortcutItem.d.ts +19 -0
- package/dist/components/lists/keyboard-shortcut-item/KeyboardShortcutItem.d.ts.map +1 -0
- package/dist/components/lists/keyboard-shortcut-item/KeyboardShortcutItem.js +75 -0
- package/dist/components/lists/keyboard-shortcut-item/KeyboardShortcutItem.js.map +1 -0
- package/dist/components/lists/members-list/MembersList.d.ts +32 -0
- package/dist/components/lists/members-list/MembersList.d.ts.map +1 -0
- package/dist/components/lists/members-list/MembersList.js +117 -0
- package/dist/components/lists/members-list/MembersList.js.map +1 -0
- package/dist/components/lists/sortable-list/SortableList.d.ts +103 -0
- package/dist/components/lists/sortable-list/SortableList.d.ts.map +1 -0
- package/dist/components/lists/sortable-list/SortableList.js +148 -0
- package/dist/components/lists/sortable-list/SortableList.js.map +1 -0
- package/dist/components/lists/tabs/Tabs.d.ts +48 -0
- package/dist/components/lists/tabs/Tabs.d.ts.map +1 -0
- package/dist/components/lists/tabs/Tabs.figma.d.ts +2 -0
- package/dist/components/lists/tabs/Tabs.figma.d.ts.map +1 -0
- package/dist/components/lists/tabs/Tabs.figma.js +31 -0
- package/dist/components/lists/tabs/Tabs.figma.js.map +1 -0
- package/dist/components/lists/tabs/Tabs.js +165 -0
- package/dist/components/lists/tabs/Tabs.js.map +1 -0
- package/dist/components/slots/bar/Bar.d.ts +65 -0
- package/dist/components/slots/bar/Bar.d.ts.map +1 -0
- package/dist/components/slots/bar/Bar.js +100 -0
- package/dist/components/slots/bar/Bar.js.map +1 -0
- package/dist/components/slots/draggable-window/DraggableWindow.d.ts +25 -0
- package/dist/components/slots/draggable-window/DraggableWindow.d.ts.map +1 -0
- package/dist/components/slots/draggable-window/DraggableWindow.js +100 -0
- package/dist/components/slots/draggable-window/DraggableWindow.js.map +1 -0
- package/dist/components/slots/drawer/Drawer.d.ts +78 -0
- package/dist/components/slots/drawer/Drawer.d.ts.map +1 -0
- package/dist/components/slots/drawer/Drawer.js +148 -0
- package/dist/components/slots/drawer/Drawer.js.map +1 -0
- package/dist/components/slots/form-item/FormItem.d.ts +52 -0
- package/dist/components/slots/form-item/FormItem.d.ts.map +1 -0
- package/dist/components/slots/form-item/FormItem.js +89 -0
- package/dist/components/slots/form-item/FormItem.js.map +1 -0
- package/dist/components/slots/layout/Layout.d.ts +34 -0
- package/dist/components/slots/layout/Layout.d.ts.map +1 -0
- package/dist/components/slots/layout/Layout.js +45 -0
- package/dist/components/slots/layout/Layout.js.map +1 -0
- package/dist/components/slots/list/List.d.ts +49 -0
- package/dist/components/slots/list/List.d.ts.map +1 -0
- package/dist/components/slots/list/List.js +55 -0
- package/dist/components/slots/list/List.js.map +1 -0
- package/dist/components/slots/popin/Popin.d.ts +85 -0
- package/dist/components/slots/popin/Popin.d.ts.map +1 -0
- package/dist/components/slots/popin/Popin.js +182 -0
- package/dist/components/slots/popin/Popin.js.map +1 -0
- package/dist/components/slots/section/Section.d.ts +32 -0
- package/dist/components/slots/section/Section.d.ts.map +1 -0
- package/dist/components/slots/section/Section.js +49 -0
- package/dist/components/slots/section/Section.js.map +1 -0
- package/dist/components/slots/simple-item/SimpleItem.d.ts +45 -0
- package/dist/components/slots/simple-item/SimpleItem.d.ts.map +1 -0
- package/dist/components/slots/simple-item/SimpleItem.js +100 -0
- package/dist/components/slots/simple-item/SimpleItem.js.map +1 -0
- package/dist/components/tags/chip/Chip.d.ts +43 -0
- package/dist/components/tags/chip/Chip.d.ts.map +1 -0
- package/dist/components/tags/chip/Chip.figma.d.ts +2 -0
- package/dist/components/tags/chip/Chip.figma.d.ts.map +1 -0
- package/dist/components/tags/chip/Chip.figma.js +18 -0
- package/dist/components/tags/chip/Chip.figma.js.map +1 -0
- package/dist/components/tags/chip/Chip.js +88 -0
- package/dist/components/tags/chip/Chip.js.map +1 -0
- package/dist/components/tags/color-chip/ColorChip.d.ts +36 -0
- package/dist/components/tags/color-chip/ColorChip.d.ts.map +1 -0
- package/dist/components/tags/color-chip/ColorChip.js +39 -0
- package/dist/components/tags/color-chip/ColorChip.js.map +1 -0
- package/dist/components/tags/icon-chip/IconChip.d.ts +42 -0
- package/dist/components/tags/icon-chip/IconChip.d.ts.map +1 -0
- package/dist/components/tags/icon-chip/IconChip.js +54 -0
- package/dist/components/tags/icon-chip/IconChip.js.map +1 -0
- package/dist/components/tags/tooltip/Tooltip.d.ts +25 -0
- package/dist/components/tags/tooltip/Tooltip.d.ts.map +1 -0
- package/dist/components/tags/tooltip/Tooltip.js +72 -0
- package/dist/components/tags/tooltip/Tooltip.js.map +1 -0
- package/dist/do-classnames-DSDFCvzy.js +5 -0
- package/dist/do-classnames-DSDFCvzy.js.map +1 -0
- package/dist/do-map-2nhWP1KI.js +8 -0
- package/dist/do-map-2nhWP1KI.js.map +1 -0
- package/dist/index.d.ts +61 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +113 -0
- package/dist/index.js.map +1 -0
- package/dist/index_react-CmuCVQet.js +13799 -0
- package/dist/index_react-CmuCVQet.js.map +1 -0
- package/dist/styles/icons/icons.module.js +115 -0
- package/dist/styles/icons/icons.module.js.map +1 -0
- package/dist/styles/layouts.module.js +37 -0
- package/dist/styles/layouts.module.js.map +1 -0
- package/dist/styles/texts/texts.module.js +23 -0
- package/dist/styles/texts/texts.module.js.map +1 -0
- package/dist/styles/tokens/modules/figma-colors.module.js +9 -0
- package/dist/styles/tokens/modules/figma-colors.module.js.map +1 -0
- package/dist/styles/tokens/modules/figma-types.module.js +9 -0
- package/dist/styles/tokens/modules/figma-types.module.js.map +1 -0
- package/dist/styles/tokens/modules/framer-colors.module.js +9 -0
- package/dist/styles/tokens/modules/framer-colors.module.js.map +1 -0
- package/dist/styles/tokens/modules/framer-types.module.js +9 -0
- package/dist/styles/tokens/modules/framer-types.module.js.map +1 -0
- package/dist/styles/tokens/modules/globals.module.js +9 -0
- package/dist/styles/tokens/modules/globals.module.js.map +1 -0
- package/dist/styles/tokens/modules/penpot-colors.module.js +9 -0
- package/dist/styles/tokens/modules/penpot-colors.module.js.map +1 -0
- package/dist/styles/tokens/modules/penpot-types.module.js +9 -0
- package/dist/styles/tokens/modules/penpot-types.module.js.map +1 -0
- package/dist/styles/tokens/modules/sketch-colors.module.js +9 -0
- package/dist/styles/tokens/modules/sketch-colors.module.js.map +1 -0
- package/dist/styles/tokens/modules/sketch-types.module.js +9 -0
- package/dist/styles/tokens/modules/sketch-types.module.js.map +1 -0
- package/dist/tests/setup.d.ts +2 -0
- package/dist/tests/setup.d.ts.map +1 -0
- package/dist/types/consent.types.d.ts +10 -0
- package/dist/types/consent.types.d.ts.map +1 -0
- package/dist/types/consent.types.js +2 -0
- package/dist/types/consent.types.js.map +1 -0
- package/dist/types/icon.types.d.ts +2 -0
- package/dist/types/icon.types.d.ts.map +1 -0
- package/dist/types/icon.types.js +2 -0
- package/dist/types/icon.types.js.map +1 -0
- package/dist/types/list.types.d.ts +14 -0
- package/dist/types/list.types.d.ts.map +1 -0
- package/dist/types/list.types.js +2 -0
- package/dist/types/list.types.js.map +1 -0
- package/package.json +108 -0
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
import '../../../assets/Accordion.css';
|
|
2
|
+
import { jsxs as n, jsx as i } from "react/jsx-runtime";
|
|
3
|
+
import w from "../../tags/chip/Chip.js";
|
|
4
|
+
import N from "../../assets/section-title/SectionTitle.js";
|
|
5
|
+
import { t as g } from "../../../do-classnames-DSDFCvzy.js";
|
|
6
|
+
import l from "../button/Button.js";
|
|
7
|
+
const E = (s) => {
|
|
8
|
+
const {
|
|
9
|
+
label: a,
|
|
10
|
+
indicator: p,
|
|
11
|
+
icon: m = "plus",
|
|
12
|
+
helper: _,
|
|
13
|
+
helpers: r,
|
|
14
|
+
isExpanded: c,
|
|
15
|
+
isBlocked: e = !1,
|
|
16
|
+
isNew: d = !1,
|
|
17
|
+
children: h,
|
|
18
|
+
onAdd: t,
|
|
19
|
+
onEmpty: f
|
|
20
|
+
} = s, u = (o) => {
|
|
21
|
+
o.stopPropagation(), t(o);
|
|
22
|
+
}, v = (o) => {
|
|
23
|
+
o.stopPropagation(), f(o);
|
|
24
|
+
};
|
|
25
|
+
return /* @__PURE__ */ n(
|
|
26
|
+
"div",
|
|
27
|
+
{
|
|
28
|
+
className: g([
|
|
29
|
+
"accordion",
|
|
30
|
+
c && "accordion--expanded",
|
|
31
|
+
e && "accordion--blocked"
|
|
32
|
+
]),
|
|
33
|
+
onMouseDown: (o) => {
|
|
34
|
+
o.target.dataset.feature === void 0 && !c && !e && t(o);
|
|
35
|
+
},
|
|
36
|
+
children: [
|
|
37
|
+
/* @__PURE__ */ n("div", { className: "accordion__row", children: [
|
|
38
|
+
/* @__PURE__ */ i(
|
|
39
|
+
"div",
|
|
40
|
+
{
|
|
41
|
+
className: "accordion__row__left",
|
|
42
|
+
role: "presentation",
|
|
43
|
+
children: /* @__PURE__ */ i(
|
|
44
|
+
N,
|
|
45
|
+
{
|
|
46
|
+
label: a,
|
|
47
|
+
indicator: p,
|
|
48
|
+
helper: _
|
|
49
|
+
}
|
|
50
|
+
)
|
|
51
|
+
}
|
|
52
|
+
),
|
|
53
|
+
/* @__PURE__ */ n(
|
|
54
|
+
"div",
|
|
55
|
+
{
|
|
56
|
+
className: "accordion__row__right",
|
|
57
|
+
role: "group",
|
|
58
|
+
children: [
|
|
59
|
+
c ? /* @__PURE__ */ i(
|
|
60
|
+
l,
|
|
61
|
+
{
|
|
62
|
+
type: "icon",
|
|
63
|
+
icon: "minus",
|
|
64
|
+
iconClassName: "accordion__row__icon",
|
|
65
|
+
helper: r?.empty !== void 0 ? {
|
|
66
|
+
label: r.empty
|
|
67
|
+
} : void 0,
|
|
68
|
+
action: (o) => v(o)
|
|
69
|
+
}
|
|
70
|
+
) : /* @__PURE__ */ i(
|
|
71
|
+
l,
|
|
72
|
+
{
|
|
73
|
+
type: "icon",
|
|
74
|
+
icon: m,
|
|
75
|
+
iconClassName: "accordion__row__icon",
|
|
76
|
+
helper: r?.add !== void 0 ? {
|
|
77
|
+
label: r.add
|
|
78
|
+
} : void 0,
|
|
79
|
+
isDisabled: e,
|
|
80
|
+
isBlocked: e,
|
|
81
|
+
action: (o) => u(o)
|
|
82
|
+
}
|
|
83
|
+
),
|
|
84
|
+
(e || d) && /* @__PURE__ */ i(w, { children: d ? "New" : "Pro" })
|
|
85
|
+
]
|
|
86
|
+
}
|
|
87
|
+
)
|
|
88
|
+
] }),
|
|
89
|
+
c && /* @__PURE__ */ i(
|
|
90
|
+
"div",
|
|
91
|
+
{
|
|
92
|
+
id: `accordion-content-${a}`,
|
|
93
|
+
role: "region",
|
|
94
|
+
children: h
|
|
95
|
+
}
|
|
96
|
+
)
|
|
97
|
+
]
|
|
98
|
+
}
|
|
99
|
+
);
|
|
100
|
+
};
|
|
101
|
+
export {
|
|
102
|
+
E as default
|
|
103
|
+
};
|
|
104
|
+
//# sourceMappingURL=Accordion.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Accordion.js","sources":["../../../../src/components/actions/accordion/Accordion.tsx"],"sourcesContent":["import { IconList } from '@tps/icon.types'\nimport Chip from '@components/tags/chip/Chip'\nimport SectionTitle from '@components/assets/section-title/SectionTitle'\nimport { doClassnames } from '@a_ng_d/figmug-utils'\nimport Button from '../button/Button'\nimport './accordion.scss'\n\nexport interface AccordionProps {\n /**\n * Title label of the accordion\n */\n label: string\n /**\n * Optional indicator (number or text) displayed next to the label\n */\n indicator?: string | number\n /**\n * Icon to display in the add button\n * @default 'plus'\n */\n icon?: IconList\n /**\n * Helper text displayed near the title\n */\n helper?: string\n /**\n * Helper texts for the action buttons\n */\n helpers?: {\n /** Helper text for the add button */\n add?: string\n /** Helper text for the empty button */\n empty?: string\n }\n /**\n * Whether the accordion is expanded\n */\n isExpanded: boolean\n /**\n * Whether the accordion is blocked (disabled)\n * @default false\n */\n isBlocked?: boolean\n /**\n * Whether to show a \"New\" badge\n * @default false\n */\n isNew?: boolean\n /**\n * Content to display when accordion is expanded\n */\n children?: React.ReactNode\n /**\n * Callback fired when the add button is clicked\n */\n onAdd: (\n event: React.MouseEvent<Element> | React.KeyboardEvent<Element>\n ) => void\n /**\n * Callback fired when the empty button is clicked\n */\n onEmpty: (\n event: React.MouseEvent<Element> | React.KeyboardEvent<Element>\n ) => void\n}\n\nconst Accordion = (props: AccordionProps) => {\n const {\n label,\n indicator,\n icon = 'plus',\n helper,\n helpers,\n isExpanded,\n isBlocked = false,\n isNew = false,\n children,\n onAdd,\n onEmpty,\n } = props\n\n const handleAdd = (\n event: React.MouseEvent<Element> | React.KeyboardEvent<Element>\n ) => {\n event.stopPropagation()\n onAdd(event)\n }\n\n const handleEmpty = (\n event: React.MouseEvent<Element> | React.KeyboardEvent<Element>\n ) => {\n event.stopPropagation()\n onEmpty(event)\n }\n\n return (\n <div\n className={doClassnames([\n 'accordion',\n isExpanded && 'accordion--expanded',\n isBlocked && 'accordion--blocked',\n ])}\n onMouseDown={(e) => {\n if (\n (e.target as HTMLElement).dataset.feature === undefined &&\n !isExpanded &&\n !isBlocked\n )\n onAdd(e as React.MouseEvent<HTMLDivElement, MouseEvent>)\n }}\n >\n <div className=\"accordion__row\">\n <div\n className=\"accordion__row__left\"\n role=\"presentation\"\n >\n <SectionTitle\n label={label}\n indicator={indicator}\n helper={helper}\n />\n </div>\n <div\n className=\"accordion__row__right\"\n role=\"group\"\n >\n {isExpanded ? (\n <Button\n type=\"icon\"\n icon=\"minus\"\n iconClassName=\"accordion__row__icon\"\n helper={\n helpers?.empty !== undefined\n ? {\n label: helpers.empty,\n }\n : undefined\n }\n action={(e) => handleEmpty(e)}\n />\n ) : (\n <Button\n type=\"icon\"\n icon={icon}\n iconClassName=\"accordion__row__icon\"\n helper={\n helpers?.add !== undefined\n ? {\n label: helpers.add,\n }\n : undefined\n }\n isDisabled={isBlocked}\n isBlocked={isBlocked}\n action={(e) => handleAdd(e)}\n />\n )}\n {(isBlocked || isNew) && <Chip>{isNew ? 'New' : 'Pro'}</Chip>}\n </div>\n </div>\n {isExpanded && (\n <div\n id={`accordion-content-${label}`}\n role=\"region\"\n >\n {children}\n </div>\n )}\n </div>\n )\n}\n\nexport default Accordion\n"],"names":["Accordion","props","label","indicator","icon","helper","helpers","isExpanded","isBlocked","isNew","children","onAdd","onEmpty","handleAdd","event","handleEmpty","jsxs","doClassnames","e","jsx","SectionTitle","Button","Chip"],"mappings":";;;;;AAkEA,MAAMA,IAAY,CAACC,MAA0B;AAC3C,QAAM;AAAA,IACJ,OAAAC;AAAA,IACA,WAAAC;AAAA,IACA,MAAAC,IAAO;AAAA,IACP,QAAAC;AAAA,IACA,SAAAC;AAAA,IACA,YAAAC;AAAA,IACA,WAAAC,IAAY;AAAA,IACZ,OAAAC,IAAQ;AAAA,IACR,UAAAC;AAAA,IACA,OAAAC;AAAA,IACA,SAAAC;AAAA,EAAA,IACEX,GAEEY,IAAY,CAChBC,MACG;AACH,IAAAA,EAAM,gBAAA,GACNH,EAAMG,CAAK;AAAA,EACb,GAEMC,IAAc,CAClBD,MACG;AACH,IAAAA,EAAM,gBAAA,GACNF,EAAQE,CAAK;AAAA,EACf;AAEA,SACE,gBAAAE;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAWC,EAAa;AAAA,QACtB;AAAA,QACAV,KAAc;AAAA,QACdC,KAAa;AAAA,MAAA,CACd;AAAA,MACD,aAAa,CAACU,MAAM;AAClB,QACGA,EAAE,OAAuB,QAAQ,YAAY,UAC9C,CAACX,KACD,CAACC,KAEDG,EAAMO,CAAiD;AAAA,MAC3D;AAAA,MAEA,UAAA;AAAA,QAAA,gBAAAF,EAAC,OAAA,EAAI,WAAU,kBACb,UAAA;AAAA,UAAA,gBAAAG;AAAA,YAAC;AAAA,YAAA;AAAA,cACC,WAAU;AAAA,cACV,MAAK;AAAA,cAEL,UAAA,gBAAAA;AAAA,gBAACC;AAAA,gBAAA;AAAA,kBACC,OAAAlB;AAAA,kBACA,WAAAC;AAAA,kBACA,QAAAE;AAAA,gBAAA;AAAA,cAAA;AAAA,YACF;AAAA,UAAA;AAAA,UAEF,gBAAAW;AAAA,YAAC;AAAA,YAAA;AAAA,cACC,WAAU;AAAA,cACV,MAAK;AAAA,cAEJ,UAAA;AAAA,gBAAAT,IACC,gBAAAY;AAAA,kBAACE;AAAA,kBAAA;AAAA,oBACC,MAAK;AAAA,oBACL,MAAK;AAAA,oBACL,eAAc;AAAA,oBACd,QACEf,GAAS,UAAU,SACf;AAAA,sBACE,OAAOA,EAAQ;AAAA,oBAAA,IAEjB;AAAA,oBAEN,QAAQ,CAACY,MAAMH,EAAYG,CAAC;AAAA,kBAAA;AAAA,gBAAA,IAG9B,gBAAAC;AAAA,kBAACE;AAAA,kBAAA;AAAA,oBACC,MAAK;AAAA,oBACL,MAAAjB;AAAA,oBACA,eAAc;AAAA,oBACd,QACEE,GAAS,QAAQ,SACb;AAAA,sBACE,OAAOA,EAAQ;AAAA,oBAAA,IAEjB;AAAA,oBAEN,YAAYE;AAAA,oBACZ,WAAAA;AAAA,oBACA,QAAQ,CAACU,MAAML,EAAUK,CAAC;AAAA,kBAAA;AAAA,gBAAA;AAAA,iBAG5BV,KAAaC,MAAU,gBAAAU,EAACG,GAAA,EAAM,UAAAb,IAAQ,QAAQ,MAAA,CAAM;AAAA,cAAA;AAAA,YAAA;AAAA,UAAA;AAAA,QACxD,GACF;AAAA,QACCF,KACC,gBAAAY;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,IAAI,qBAAqBjB,CAAK;AAAA,YAC9B,MAAK;AAAA,YAEJ,UAAAQ;AAAA,UAAA;AAAA,QAAA;AAAA,MACH;AAAA,IAAA;AAAA,EAAA;AAIR;"}
|
|
@@ -0,0 +1,148 @@
|
|
|
1
|
+
import { default as React } from 'react';
|
|
2
|
+
import { IconList } from '../../../types/icon.types';
|
|
3
|
+
|
|
4
|
+
export interface ButtonProps {
|
|
5
|
+
/**
|
|
6
|
+
* Visual style of the button
|
|
7
|
+
*/
|
|
8
|
+
type: 'primary' | 'secondary' | 'tertiary' | 'destructive' | 'alternative' | 'icon';
|
|
9
|
+
/**
|
|
10
|
+
* Size of the button
|
|
11
|
+
* @default 'default'
|
|
12
|
+
*/
|
|
13
|
+
size?: 'small' | 'default' | 'large';
|
|
14
|
+
/**
|
|
15
|
+
* Icon name to display in the button
|
|
16
|
+
*/
|
|
17
|
+
icon?: IconList;
|
|
18
|
+
/**
|
|
19
|
+
* Custom CSS class for the icon
|
|
20
|
+
*/
|
|
21
|
+
iconClassName?: string;
|
|
22
|
+
/**
|
|
23
|
+
* Custom icon element to replace the default icon
|
|
24
|
+
*/
|
|
25
|
+
customIcon?: React.ReactElement;
|
|
26
|
+
/**
|
|
27
|
+
* Text label of the button
|
|
28
|
+
*/
|
|
29
|
+
label?: string;
|
|
30
|
+
/**
|
|
31
|
+
* Visual state of the button
|
|
32
|
+
* @default 'default'
|
|
33
|
+
*/
|
|
34
|
+
state?: 'default' | 'selected';
|
|
35
|
+
/**
|
|
36
|
+
* URL for link buttons
|
|
37
|
+
*/
|
|
38
|
+
url?: string;
|
|
39
|
+
/**
|
|
40
|
+
* Helper tooltip configuration
|
|
41
|
+
*/
|
|
42
|
+
helper?: {
|
|
43
|
+
/** Tooltip content */
|
|
44
|
+
label: string | React.ReactNode;
|
|
45
|
+
/** Tooltip position */
|
|
46
|
+
pin?: 'TOP' | 'BOTTOM';
|
|
47
|
+
/** Tooltip display type */
|
|
48
|
+
type?: 'MULTI_LINE' | 'SINGLE_LINE';
|
|
49
|
+
};
|
|
50
|
+
/**
|
|
51
|
+
* Preview tooltip configuration with image
|
|
52
|
+
*/
|
|
53
|
+
preview?: {
|
|
54
|
+
/** Preview image URL */
|
|
55
|
+
image: string;
|
|
56
|
+
/** Preview text */
|
|
57
|
+
text: string | React.ReactNode;
|
|
58
|
+
/** Preview position */
|
|
59
|
+
pin?: 'TOP' | 'BOTTOM';
|
|
60
|
+
};
|
|
61
|
+
/**
|
|
62
|
+
* Warning tooltip configuration
|
|
63
|
+
*/
|
|
64
|
+
warning?: {
|
|
65
|
+
/** Warning message */
|
|
66
|
+
label: string | React.ReactNode;
|
|
67
|
+
/** Warning position */
|
|
68
|
+
pin?: 'TOP' | 'BOTTOM';
|
|
69
|
+
/** Warning display type */
|
|
70
|
+
type?: 'MULTI_LINE' | 'SINGLE_LINE';
|
|
71
|
+
};
|
|
72
|
+
/**
|
|
73
|
+
* Feature identifier for tracking
|
|
74
|
+
*/
|
|
75
|
+
feature?: string;
|
|
76
|
+
/**
|
|
77
|
+
* Whether the button has multiple actions
|
|
78
|
+
* @default false
|
|
79
|
+
*/
|
|
80
|
+
hasMultipleActions?: boolean;
|
|
81
|
+
/**
|
|
82
|
+
* Whether the button should render as a link
|
|
83
|
+
* @default false
|
|
84
|
+
*/
|
|
85
|
+
isLink?: boolean;
|
|
86
|
+
/**
|
|
87
|
+
* Whether the button should auto-focus on mount
|
|
88
|
+
* @default false
|
|
89
|
+
*/
|
|
90
|
+
isAutofocus?: boolean;
|
|
91
|
+
/**
|
|
92
|
+
* Reflow configuration for responsive behavior
|
|
93
|
+
* @default { isEnabled: false, icon: 'adjust' }
|
|
94
|
+
*/
|
|
95
|
+
shouldReflow?: {
|
|
96
|
+
/** Whether reflow is enabled */
|
|
97
|
+
isEnabled: boolean;
|
|
98
|
+
/** Icon to show when reflowed */
|
|
99
|
+
icon: IconList;
|
|
100
|
+
};
|
|
101
|
+
/**
|
|
102
|
+
* Whether the button is in loading state
|
|
103
|
+
* @default false
|
|
104
|
+
*/
|
|
105
|
+
isLoading?: boolean;
|
|
106
|
+
/**
|
|
107
|
+
* Whether the button is blocked (shows unblock action)
|
|
108
|
+
* @default false
|
|
109
|
+
*/
|
|
110
|
+
isBlocked?: boolean;
|
|
111
|
+
/**
|
|
112
|
+
* Whether the button is disabled
|
|
113
|
+
* @default false
|
|
114
|
+
*/
|
|
115
|
+
isDisabled?: boolean;
|
|
116
|
+
/**
|
|
117
|
+
* Whether to show a "New" badge
|
|
118
|
+
* @default false
|
|
119
|
+
*/
|
|
120
|
+
isNew?: boolean;
|
|
121
|
+
/**
|
|
122
|
+
* Click handler for the button
|
|
123
|
+
*/
|
|
124
|
+
action?: React.MouseEventHandler & React.KeyboardEventHandler;
|
|
125
|
+
/**
|
|
126
|
+
* Handler called when unblock is clicked
|
|
127
|
+
*/
|
|
128
|
+
onUnblock?: React.MouseEventHandler & React.KeyboardEventHandler;
|
|
129
|
+
}
|
|
130
|
+
interface ButtonStates {
|
|
131
|
+
isTooltipVisible: boolean;
|
|
132
|
+
documentWidth: number;
|
|
133
|
+
}
|
|
134
|
+
export default class Button extends React.Component<ButtonProps, ButtonStates> {
|
|
135
|
+
buttonRef: React.RefObject<HTMLButtonElement>;
|
|
136
|
+
static defaultProps: Partial<ButtonProps>;
|
|
137
|
+
constructor(props: ButtonProps);
|
|
138
|
+
componentDidMount: () => void;
|
|
139
|
+
componentWillUnmount: () => void;
|
|
140
|
+
handleResize: () => void;
|
|
141
|
+
Status: () => import("react/jsx-runtime").JSX.Element | undefined;
|
|
142
|
+
Button: () => import("react/jsx-runtime").JSX.Element;
|
|
143
|
+
LinkButton: () => import("react/jsx-runtime").JSX.Element;
|
|
144
|
+
Icon: () => import("react/jsx-runtime").JSX.Element;
|
|
145
|
+
render(): import("react/jsx-runtime").JSX.Element;
|
|
146
|
+
}
|
|
147
|
+
export {};
|
|
148
|
+
//# sourceMappingURL=Button.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Button.d.ts","sourceRoot":"","sources":["../../../../src/components/actions/button/Button.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Button.figma.d.ts","sourceRoot":"","sources":["../../../../src/components/actions/button/Button.figma.tsx"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { jsx as a } from "react/jsx-runtime";
|
|
2
|
+
import { i as e } from "../../../index_react-CmuCVQet.js";
|
|
3
|
+
import i from "./Button.js";
|
|
4
|
+
e.figma.connect(
|
|
5
|
+
i,
|
|
6
|
+
"https://www.figma.com/design/QlBdsfEcaUsGBzqA20xbNi/Unoff?node-id=1:4605",
|
|
7
|
+
{
|
|
8
|
+
props: {
|
|
9
|
+
type: e.figma.enum("type", {
|
|
10
|
+
PRIMARY: "primary",
|
|
11
|
+
SECONDARY: "secondary",
|
|
12
|
+
TERTIARY: "tertiary",
|
|
13
|
+
DESTRUCTIVE: "destructive",
|
|
14
|
+
ALTERNATIVE: "alternative",
|
|
15
|
+
INACTIVE: "alternative",
|
|
16
|
+
ICON: "icon"
|
|
17
|
+
}),
|
|
18
|
+
state: e.figma.boolean("isSelected", {
|
|
19
|
+
true: "selected",
|
|
20
|
+
false: "default"
|
|
21
|
+
}),
|
|
22
|
+
isBlocked: e.figma.boolean("isDisabled"),
|
|
23
|
+
label: e.figma.string("label"),
|
|
24
|
+
icon: e.figma.boolean("hasIcon", {
|
|
25
|
+
true: "adjust",
|
|
26
|
+
false: void 0
|
|
27
|
+
}),
|
|
28
|
+
hasMultipleActions: e.figma.boolean("hasMultipleActions")
|
|
29
|
+
},
|
|
30
|
+
example: (t) => /* @__PURE__ */ a(
|
|
31
|
+
i,
|
|
32
|
+
{
|
|
33
|
+
type: t.type,
|
|
34
|
+
state: t.state,
|
|
35
|
+
isBlocked: t.isBlocked,
|
|
36
|
+
label: t.label,
|
|
37
|
+
icon: t.icon,
|
|
38
|
+
hasMultipleActions: t.hasMultipleActions
|
|
39
|
+
}
|
|
40
|
+
)
|
|
41
|
+
}
|
|
42
|
+
);
|
|
43
|
+
//# sourceMappingURL=Button.figma.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Button.figma.js","sources":["../../../../src/components/actions/button/Button.figma.tsx"],"sourcesContent":["import { figma } from '@figma/code-connect'\nimport Button from './Button'\n\nfigma.connect(\n Button,\n 'https://www.figma.com/design/QlBdsfEcaUsGBzqA20xbNi/Unoff?node-id=1:4605',\n {\n props: {\n type: figma.enum('type', {\n PRIMARY: 'primary',\n SECONDARY: 'secondary',\n TERTIARY: 'tertiary',\n DESTRUCTIVE: 'destructive',\n ALTERNATIVE: 'alternative',\n INACTIVE: 'alternative',\n ICON: 'icon',\n }),\n state: figma.boolean('isSelected', {\n true: 'selected',\n false: 'default',\n }),\n isBlocked: figma.boolean('isDisabled'),\n label: figma.string('label'),\n icon: figma.boolean('hasIcon', {\n true: 'adjust',\n false: undefined,\n }),\n hasMultipleActions: figma.boolean('hasMultipleActions'),\n },\n example: (props) => (\n <Button\n type={props.type}\n state={props.state}\n isBlocked={props.isBlocked}\n label={props.label}\n icon={props.icon}\n hasMultipleActions={props.hasMultipleActions}\n />\n ),\n }\n)\n"],"names":["figma","Button","props","jsx"],"mappings":";;;AAGAA,EAAAA,MAAM;AAAA,EACJC;AAAA,EACA;AAAA,EACA;AAAA,IACE,OAAO;AAAA,MACL,MAAMD,EAAAA,MAAM,KAAK,QAAQ;AAAA,QACvB,SAAS;AAAA,QACT,WAAW;AAAA,QACX,UAAU;AAAA,QACV,aAAa;AAAA,QACb,aAAa;AAAA,QACb,UAAU;AAAA,QACV,MAAM;AAAA,MAAA,CACP;AAAA,MACD,OAAOA,EAAAA,MAAM,QAAQ,cAAc;AAAA,QACjC,MAAM;AAAA,QACN,OAAO;AAAA,MAAA,CACR;AAAA,MACD,WAAWA,EAAAA,MAAM,QAAQ,YAAY;AAAA,MACrC,OAAOA,EAAAA,MAAM,OAAO,OAAO;AAAA,MAC3B,MAAMA,EAAAA,MAAM,QAAQ,WAAW;AAAA,QAC7B,MAAM;AAAA,QACN,OAAO;AAAA,MAAA,CACR;AAAA,MACD,oBAAoBA,EAAAA,MAAM,QAAQ,oBAAoB;AAAA,IAAA;AAAA,IAExD,SAAS,CAACE,MACR,gBAAAC;AAAA,MAACF;AAAA,MAAA;AAAA,QACC,MAAMC,EAAM;AAAA,QACZ,OAAOA,EAAM;AAAA,QACb,WAAWA,EAAM;AAAA,QACjB,OAAOA,EAAM;AAAA,QACb,MAAMA,EAAM;AAAA,QACZ,oBAAoBA,EAAM;AAAA,MAAA;AAAA,IAAA;AAAA,EAC5B;AAGN;"}
|
|
@@ -0,0 +1,306 @@
|
|
|
1
|
+
import '../../../assets/Button.css';
|
|
2
|
+
import { jsxs as m, jsx as e } from "react/jsx-runtime";
|
|
3
|
+
import I from "react";
|
|
4
|
+
import g from "../../../styles/layouts.module.js";
|
|
5
|
+
import E from "../../tags/tooltip/Tooltip.js";
|
|
6
|
+
import _ from "../../tags/icon-chip/IconChip.js";
|
|
7
|
+
import S from "../../tags/chip/Chip.js";
|
|
8
|
+
import { Icon as N } from "../../assets/icon/Icon.js";
|
|
9
|
+
import { t as w } from "../../../do-classnames-DSDFCvzy.js";
|
|
10
|
+
class P extends I.Component {
|
|
11
|
+
buttonRef = I.createRef();
|
|
12
|
+
static defaultProps = {
|
|
13
|
+
size: "default",
|
|
14
|
+
state: "default",
|
|
15
|
+
hasMultipleActions: !1,
|
|
16
|
+
isLink: !1,
|
|
17
|
+
shouldReflow: { isEnabled: !1, icon: "adjust" },
|
|
18
|
+
isAutofocus: !1,
|
|
19
|
+
isLoading: !1,
|
|
20
|
+
isBlocked: !1,
|
|
21
|
+
isDisabled: !1,
|
|
22
|
+
isNew: !1
|
|
23
|
+
};
|
|
24
|
+
constructor(s) {
|
|
25
|
+
super(s), this.state = {
|
|
26
|
+
isTooltipVisible: !1,
|
|
27
|
+
documentWidth: document.documentElement.clientWidth
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
// Lifecycle
|
|
31
|
+
componentDidMount = () => {
|
|
32
|
+
const { isAutofocus: s } = this.props;
|
|
33
|
+
s && setTimeout(() => {
|
|
34
|
+
this.buttonRef.current && this.buttonRef.current.focus();
|
|
35
|
+
}, 1), window.addEventListener("resize", this.handleResize);
|
|
36
|
+
};
|
|
37
|
+
componentWillUnmount = () => {
|
|
38
|
+
window.removeEventListener("resize", this.handleResize);
|
|
39
|
+
};
|
|
40
|
+
// Handlers
|
|
41
|
+
handleResize = () => {
|
|
42
|
+
this.setState({ documentWidth: document.documentElement.clientWidth });
|
|
43
|
+
};
|
|
44
|
+
// Templates
|
|
45
|
+
Status = () => {
|
|
46
|
+
const { type: s, warning: i, preview: c, isBlocked: t, isNew: a, onUnblock: u } = this.props;
|
|
47
|
+
if (i || t || a)
|
|
48
|
+
return /* @__PURE__ */ m("div", { className: "button__status", children: [
|
|
49
|
+
i !== void 0 && /* @__PURE__ */ e(
|
|
50
|
+
_,
|
|
51
|
+
{
|
|
52
|
+
iconType: "PICTO",
|
|
53
|
+
iconName: "warning",
|
|
54
|
+
text: i.label,
|
|
55
|
+
pin: i.pin,
|
|
56
|
+
type: i.type
|
|
57
|
+
}
|
|
58
|
+
),
|
|
59
|
+
(t || a) && s !== "icon" && /* @__PURE__ */ e(
|
|
60
|
+
S,
|
|
61
|
+
{
|
|
62
|
+
preview: c,
|
|
63
|
+
isSolo: !0,
|
|
64
|
+
action: t ? u : void 0,
|
|
65
|
+
children: a ? "New" : "Pro"
|
|
66
|
+
}
|
|
67
|
+
)
|
|
68
|
+
] });
|
|
69
|
+
};
|
|
70
|
+
Button = () => {
|
|
71
|
+
const {
|
|
72
|
+
type: s,
|
|
73
|
+
icon: i,
|
|
74
|
+
size: c,
|
|
75
|
+
helper: t,
|
|
76
|
+
feature: a,
|
|
77
|
+
hasMultipleActions: u,
|
|
78
|
+
isLoading: o,
|
|
79
|
+
isDisabled: p,
|
|
80
|
+
isBlocked: l,
|
|
81
|
+
action: d,
|
|
82
|
+
label: r,
|
|
83
|
+
shouldReflow: b
|
|
84
|
+
} = this.props, { isTooltipVisible: v, documentWidth: T } = this.state, n = b?.isEnabled && T <= 460, y = () => n ? void 0 : r, L = () => n ? r : t?.label, h = () => n ? r !== void 0 : t !== void 0, k = () => n && b?.icon !== void 0 ? b.icon : i;
|
|
85
|
+
return /* @__PURE__ */ m("div", { className: g["snackbar--medium"], children: [
|
|
86
|
+
/* @__PURE__ */ m(
|
|
87
|
+
"button",
|
|
88
|
+
{
|
|
89
|
+
role: "button",
|
|
90
|
+
className: w([
|
|
91
|
+
"button",
|
|
92
|
+
`button--${s}`,
|
|
93
|
+
`button--${c}`,
|
|
94
|
+
o && "button--loading",
|
|
95
|
+
l && "button--blocked"
|
|
96
|
+
]),
|
|
97
|
+
"data-feature": a,
|
|
98
|
+
disabled: p || l,
|
|
99
|
+
"aria-label": typeof (y() || t?.label) == "string" ? y() || t?.label : void 0,
|
|
100
|
+
"aria-disabled": p || l,
|
|
101
|
+
"aria-busy": o,
|
|
102
|
+
onKeyDown: (f) => {
|
|
103
|
+
(f.key === " " || f.key === "Enter") && (!p || !l) && d?.(f), f.key === "Escape" && f.target.blur();
|
|
104
|
+
},
|
|
105
|
+
onMouseDown: p || l ? void 0 : d,
|
|
106
|
+
onMouseEnter: () => {
|
|
107
|
+
h() && this.setState({ isTooltipVisible: !0 });
|
|
108
|
+
},
|
|
109
|
+
onMouseLeave: () => {
|
|
110
|
+
h() && this.setState({ isTooltipVisible: !1 });
|
|
111
|
+
},
|
|
112
|
+
onFocus: () => {
|
|
113
|
+
h() && this.setState({ isTooltipVisible: !0 });
|
|
114
|
+
},
|
|
115
|
+
onBlur: () => {
|
|
116
|
+
h() && this.setState({ isTooltipVisible: !1 });
|
|
117
|
+
},
|
|
118
|
+
tabIndex: 0,
|
|
119
|
+
ref: this.buttonRef,
|
|
120
|
+
children: [
|
|
121
|
+
k() !== void 0 && /* @__PURE__ */ e(
|
|
122
|
+
"span",
|
|
123
|
+
{
|
|
124
|
+
className: "button__icon",
|
|
125
|
+
"aria-hidden": "true",
|
|
126
|
+
children: /* @__PURE__ */ e(
|
|
127
|
+
N,
|
|
128
|
+
{
|
|
129
|
+
type: "PICTO",
|
|
130
|
+
iconName: k()
|
|
131
|
+
}
|
|
132
|
+
)
|
|
133
|
+
}
|
|
134
|
+
),
|
|
135
|
+
y() !== void 0 && /* @__PURE__ */ e("span", { className: "button__label", children: y() }),
|
|
136
|
+
o && /* @__PURE__ */ e(
|
|
137
|
+
"div",
|
|
138
|
+
{
|
|
139
|
+
className: "button__loader",
|
|
140
|
+
"aria-hidden": "true",
|
|
141
|
+
children: /* @__PURE__ */ e(
|
|
142
|
+
N,
|
|
143
|
+
{
|
|
144
|
+
type: "PICTO",
|
|
145
|
+
iconName: "spinner",
|
|
146
|
+
customClassName: "button__spinner"
|
|
147
|
+
}
|
|
148
|
+
)
|
|
149
|
+
}
|
|
150
|
+
),
|
|
151
|
+
u && /* @__PURE__ */ e(
|
|
152
|
+
"span",
|
|
153
|
+
{
|
|
154
|
+
className: "button__caret",
|
|
155
|
+
"aria-hidden": "true",
|
|
156
|
+
children: /* @__PURE__ */ e(
|
|
157
|
+
N,
|
|
158
|
+
{
|
|
159
|
+
type: "PICTO",
|
|
160
|
+
iconName: "chevron-down"
|
|
161
|
+
}
|
|
162
|
+
)
|
|
163
|
+
}
|
|
164
|
+
),
|
|
165
|
+
v && h() && /* @__PURE__ */ e(
|
|
166
|
+
E,
|
|
167
|
+
{
|
|
168
|
+
pin: t?.pin || "BOTTOM",
|
|
169
|
+
type: t?.type || "SINGLE_LINE",
|
|
170
|
+
children: L()
|
|
171
|
+
}
|
|
172
|
+
)
|
|
173
|
+
]
|
|
174
|
+
}
|
|
175
|
+
),
|
|
176
|
+
this.Status()
|
|
177
|
+
] });
|
|
178
|
+
};
|
|
179
|
+
LinkButton = () => {
|
|
180
|
+
const { type: s, size: i, feature: c, label: t, url: a } = this.props;
|
|
181
|
+
return /* @__PURE__ */ e(
|
|
182
|
+
"button",
|
|
183
|
+
{
|
|
184
|
+
role: "link",
|
|
185
|
+
className: w([
|
|
186
|
+
"button",
|
|
187
|
+
`button--${s}`,
|
|
188
|
+
`button--${i}`
|
|
189
|
+
]),
|
|
190
|
+
"data-feature": c,
|
|
191
|
+
ref: this.buttonRef,
|
|
192
|
+
"aria-label": t,
|
|
193
|
+
tabIndex: 0,
|
|
194
|
+
children: /* @__PURE__ */ e(
|
|
195
|
+
"a",
|
|
196
|
+
{
|
|
197
|
+
href: a,
|
|
198
|
+
target: "_blank",
|
|
199
|
+
rel: "noreferrer",
|
|
200
|
+
className: "button__label",
|
|
201
|
+
"aria-label": t,
|
|
202
|
+
children: t
|
|
203
|
+
}
|
|
204
|
+
)
|
|
205
|
+
}
|
|
206
|
+
);
|
|
207
|
+
};
|
|
208
|
+
Icon = () => {
|
|
209
|
+
const {
|
|
210
|
+
size: s,
|
|
211
|
+
icon: i,
|
|
212
|
+
iconClassName: c,
|
|
213
|
+
customIcon: t,
|
|
214
|
+
feature: a,
|
|
215
|
+
state: u,
|
|
216
|
+
helper: o,
|
|
217
|
+
warning: p,
|
|
218
|
+
isLoading: l,
|
|
219
|
+
isDisabled: d,
|
|
220
|
+
isBlocked: r,
|
|
221
|
+
isNew: b,
|
|
222
|
+
action: v
|
|
223
|
+
} = this.props, { isTooltipVisible: T } = this.state;
|
|
224
|
+
return /* @__PURE__ */ m("div", { className: g["snackbar--medium"], children: [
|
|
225
|
+
/* @__PURE__ */ m(
|
|
226
|
+
"button",
|
|
227
|
+
{
|
|
228
|
+
role: "button",
|
|
229
|
+
"data-feature": a,
|
|
230
|
+
className: w([
|
|
231
|
+
"icon-button",
|
|
232
|
+
`icon-button--${s}`,
|
|
233
|
+
u === "selected" && "icon-button--selected",
|
|
234
|
+
b && "icon-button--new",
|
|
235
|
+
l && "button--loading"
|
|
236
|
+
]),
|
|
237
|
+
disabled: d || r,
|
|
238
|
+
"aria-label": typeof o?.label == "string" ? o.label : i,
|
|
239
|
+
"aria-disabled": d || r,
|
|
240
|
+
"aria-pressed": u === "selected",
|
|
241
|
+
"aria-busy": l,
|
|
242
|
+
onKeyDown: (n) => {
|
|
243
|
+
(n.key === " " || n.key === "Enter") && !(d || r) && v?.(n), n.key === "Escape" && n.target.blur();
|
|
244
|
+
},
|
|
245
|
+
onMouseDown: d || r ? void 0 : v,
|
|
246
|
+
onMouseEnter: () => {
|
|
247
|
+
o !== void 0 && this.setState({ isTooltipVisible: !0 });
|
|
248
|
+
},
|
|
249
|
+
onMouseLeave: () => {
|
|
250
|
+
o !== void 0 && this.setState({ isTooltipVisible: !1 });
|
|
251
|
+
},
|
|
252
|
+
onFocus: () => {
|
|
253
|
+
o !== void 0 && this.setState({ isTooltipVisible: !0 });
|
|
254
|
+
},
|
|
255
|
+
onBlur: () => {
|
|
256
|
+
o !== void 0 && this.setState({ isTooltipVisible: !1 });
|
|
257
|
+
},
|
|
258
|
+
tabIndex: 0,
|
|
259
|
+
ref: this.buttonRef,
|
|
260
|
+
children: [
|
|
261
|
+
t === void 0 ? /* @__PURE__ */ e(
|
|
262
|
+
N,
|
|
263
|
+
{
|
|
264
|
+
type: "PICTO",
|
|
265
|
+
iconName: l ? "spinner" : i,
|
|
266
|
+
customClassName: c !== void 0 ? c : void 0
|
|
267
|
+
}
|
|
268
|
+
) : /* @__PURE__ */ e(
|
|
269
|
+
"div",
|
|
270
|
+
{
|
|
271
|
+
style: {
|
|
272
|
+
opacity: d || r ? 0.5 : 1,
|
|
273
|
+
pointerEvents: "none",
|
|
274
|
+
width: "100%",
|
|
275
|
+
height: "100%",
|
|
276
|
+
display: "flex",
|
|
277
|
+
alignItems: "center",
|
|
278
|
+
justifyContent: "center"
|
|
279
|
+
},
|
|
280
|
+
children: t
|
|
281
|
+
}
|
|
282
|
+
),
|
|
283
|
+
T && o !== void 0 && u !== "selected" && /* @__PURE__ */ e(
|
|
284
|
+
E,
|
|
285
|
+
{
|
|
286
|
+
pin: o?.pin || "BOTTOM",
|
|
287
|
+
type: o?.type || "SINGLE_LINE",
|
|
288
|
+
children: o?.label
|
|
289
|
+
}
|
|
290
|
+
)
|
|
291
|
+
]
|
|
292
|
+
}
|
|
293
|
+
),
|
|
294
|
+
p !== void 0 && this.Status()
|
|
295
|
+
] });
|
|
296
|
+
};
|
|
297
|
+
// Render
|
|
298
|
+
render() {
|
|
299
|
+
const { type: s, isLink: i } = this.props;
|
|
300
|
+
return s !== "icon" ? i ? this.LinkButton() : this.Button() : this.Icon();
|
|
301
|
+
}
|
|
302
|
+
}
|
|
303
|
+
export {
|
|
304
|
+
P as default
|
|
305
|
+
};
|
|
306
|
+
//# sourceMappingURL=Button.js.map
|