@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,148 @@
|
|
|
1
|
+
import '../../../assets/Drawer.css';
|
|
2
|
+
import { jsxs as v, jsx as T } from "react/jsx-runtime";
|
|
3
|
+
import p from "react";
|
|
4
|
+
import { t as f } from "../../../do-classnames-DSDFCvzy.js";
|
|
5
|
+
class E extends p.Component {
|
|
6
|
+
drawerRef;
|
|
7
|
+
static defaultProps = {
|
|
8
|
+
isScrolling: !1
|
|
9
|
+
};
|
|
10
|
+
constructor(e) {
|
|
11
|
+
super(e), this.state = {
|
|
12
|
+
isDrawerCollapsed: !1,
|
|
13
|
+
drawerSize: {
|
|
14
|
+
value: e.defaultSize.value,
|
|
15
|
+
unit: e.defaultSize.unit
|
|
16
|
+
}
|
|
17
|
+
}, this.drawerRef = p.createRef();
|
|
18
|
+
}
|
|
19
|
+
// Lifecycle
|
|
20
|
+
componentDidUpdate = (e, t) => {
|
|
21
|
+
const { onCollapse: r, onExpand: i } = this.props, { isDrawerCollapsed: o } = this.state;
|
|
22
|
+
o && !t.isDrawerCollapsed && r && r(), !o && t.isDrawerCollapsed && i && i();
|
|
23
|
+
};
|
|
24
|
+
// Handlers
|
|
25
|
+
clickHandler = (e) => {
|
|
26
|
+
const { defaultSize: t, maxSize: r } = this.props, { drawerSize: i } = this.state;
|
|
27
|
+
document.body.style.cursor = "", document.removeEventListener("mousemove", this.onDrag), e.detail === 2 && this.setState({
|
|
28
|
+
drawerSize: i === t ? r : t,
|
|
29
|
+
isDrawerCollapsed: !1
|
|
30
|
+
});
|
|
31
|
+
};
|
|
32
|
+
// Direct Actions
|
|
33
|
+
setBorder = (e) => {
|
|
34
|
+
const t = "var(--drawer-border)", r = {};
|
|
35
|
+
return e && e.forEach((i) => {
|
|
36
|
+
i === "TOP" && (r.borderTop = t), i === "LEFT" && (r.borderLeft = t), i === "BOTTOM" && (r.borderBottom = t), i === "RIGHT" && (r.borderRight = t);
|
|
37
|
+
}), r;
|
|
38
|
+
};
|
|
39
|
+
setUnit = (e) => e.unit === "AUTO" ? "auto" : e.unit === "PIXEL" ? `${e.value}px` : `${e.value}%`;
|
|
40
|
+
expandDrawer = () => {
|
|
41
|
+
const { defaultSize: e } = this.props;
|
|
42
|
+
this.setState({
|
|
43
|
+
drawerSize: e,
|
|
44
|
+
isDrawerCollapsed: !1
|
|
45
|
+
});
|
|
46
|
+
};
|
|
47
|
+
collapseDrawer = () => {
|
|
48
|
+
const { minSize: e } = this.props;
|
|
49
|
+
this.setState({
|
|
50
|
+
drawerSize: e,
|
|
51
|
+
isDrawerCollapsed: !0
|
|
52
|
+
});
|
|
53
|
+
};
|
|
54
|
+
onGrab = () => {
|
|
55
|
+
document.body.style.cursor = "ns-resize", document.addEventListener("mousemove", this.onDrag);
|
|
56
|
+
};
|
|
57
|
+
onDrag = (e) => {
|
|
58
|
+
const { direction: t, pin: r, minSize: i, maxSize: o } = this.props, { drawerRef: n } = this, { clientX: c, clientY: u } = e;
|
|
59
|
+
if (!n.current) return;
|
|
60
|
+
const s = n.current.getBoundingClientRect(), l = n.current.parentElement?.getBoundingClientRect();
|
|
61
|
+
if (!l) return;
|
|
62
|
+
let a = 0;
|
|
63
|
+
const m = t === "VERTICAL" ? l.height : l.width;
|
|
64
|
+
if (r === "TOP") {
|
|
65
|
+
const d = l.bottom - s.top;
|
|
66
|
+
a = Math.min(u - s.top, d);
|
|
67
|
+
} else if (r === "BOTTOM") {
|
|
68
|
+
const d = s.bottom - l.top;
|
|
69
|
+
a = Math.min(s.bottom - u, d);
|
|
70
|
+
} else if (r === "LEFT") {
|
|
71
|
+
const d = l.right - s.left;
|
|
72
|
+
a = Math.min(c - s.left, d);
|
|
73
|
+
} else if (r === "RIGHT") {
|
|
74
|
+
const d = s.right - l.left;
|
|
75
|
+
a = Math.min(s.right - c, d);
|
|
76
|
+
}
|
|
77
|
+
a = Math.max(0, a);
|
|
78
|
+
const h = i.unit === "PERCENT" ? (i.value ?? 0) * m / 100 : i.value ?? 0, w = o.unit === "PERCENT" ? (o.value ?? 100) * m / 100 : o.value ?? 1 / 0;
|
|
79
|
+
a = Math.max(h, Math.min(a, w)), this.setState({
|
|
80
|
+
drawerSize: {
|
|
81
|
+
value: o.unit === "PERCENT" ? a / m * 100 : a,
|
|
82
|
+
unit: o.unit
|
|
83
|
+
},
|
|
84
|
+
isDrawerCollapsed: a <= h
|
|
85
|
+
}), document.body.style.cursor = t === "VERTICAL" ? "ns-resize" : "ew-resize", document.addEventListener("mouseup", () => {
|
|
86
|
+
document.body.style.cursor = "", document.removeEventListener("mousemove", this.onDrag);
|
|
87
|
+
});
|
|
88
|
+
};
|
|
89
|
+
// Render
|
|
90
|
+
render() {
|
|
91
|
+
const {
|
|
92
|
+
id: e,
|
|
93
|
+
pin: t,
|
|
94
|
+
children: r,
|
|
95
|
+
direction: i,
|
|
96
|
+
border: o,
|
|
97
|
+
maxSize: n,
|
|
98
|
+
minSize: c,
|
|
99
|
+
isScrolling: u
|
|
100
|
+
} = this.props, { drawerSize: s } = this.state;
|
|
101
|
+
return /* @__PURE__ */ v(
|
|
102
|
+
"div",
|
|
103
|
+
{
|
|
104
|
+
id: e,
|
|
105
|
+
style: {
|
|
106
|
+
...this.setBorder(o),
|
|
107
|
+
...i === "VERTICAL" ? {
|
|
108
|
+
height: this.setUnit(s),
|
|
109
|
+
maxHeight: this.setUnit(n),
|
|
110
|
+
minHeight: this.setUnit(c)
|
|
111
|
+
} : {
|
|
112
|
+
width: this.setUnit(s),
|
|
113
|
+
maxWidth: this.setUnit(n),
|
|
114
|
+
minWidth: this.setUnit(c)
|
|
115
|
+
}
|
|
116
|
+
},
|
|
117
|
+
className: f(["drawer", u && "drawer--scrolling"]),
|
|
118
|
+
ref: this.drawerRef,
|
|
119
|
+
children: [
|
|
120
|
+
/* @__PURE__ */ T(
|
|
121
|
+
"div",
|
|
122
|
+
{
|
|
123
|
+
className: f([
|
|
124
|
+
"drawer__knob",
|
|
125
|
+
t === "TOP" && "drawer__knob--top",
|
|
126
|
+
t === "LEFT" && "drawer__knob--left",
|
|
127
|
+
t === "BOTTOM" && "drawer__knob--bottom",
|
|
128
|
+
t === "RIGHT" && "drawer__knob--right"
|
|
129
|
+
]),
|
|
130
|
+
onMouseDown: this.onGrab,
|
|
131
|
+
onClick: this.clickHandler,
|
|
132
|
+
role: "separator",
|
|
133
|
+
"aria-orientation": i === "VERTICAL" ? "vertical" : "horizontal",
|
|
134
|
+
"aria-valuemin": c.value,
|
|
135
|
+
"aria-valuemax": n.value,
|
|
136
|
+
"aria-valuenow": s.value
|
|
137
|
+
}
|
|
138
|
+
),
|
|
139
|
+
r
|
|
140
|
+
]
|
|
141
|
+
}
|
|
142
|
+
);
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
export {
|
|
146
|
+
E as default
|
|
147
|
+
};
|
|
148
|
+
//# sourceMappingURL=Drawer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Drawer.js","sources":["../../../../src/components/slots/drawer/Drawer.tsx"],"sourcesContent":["import React from 'react'\nimport { doClassnames } from '@a_ng_d/figmug-utils'\nimport './drawer.scss'\n\ninterface Unit {\n value?: number\n unit: 'PIXEL' | 'PERCENT' | 'AUTO'\n}\n\nexport type DrawerProps = {\n /**\n * HTML id attribute\n */\n id?: string\n /**\n * Direction of the drawer layout\n */\n direction: 'VERTICAL' | 'HORIZONTAL'\n /**\n * Position of the drawer\n */\n pin: 'TOP' | 'BOTTOM' | 'LEFT' | 'RIGHT'\n /**\n * Default size of the drawer\n */\n defaultSize: Unit\n /**\n * Maximum allowed size\n */\n maxSize: Unit\n /**\n * Minimum allowed size\n */\n minSize: Unit\n /**\n * Array of border positions\n */\n border?: Array<'TOP' | 'LEFT' | 'BOTTOM' | 'RIGHT'>\n /**\n * Whether the content is scrollable\n * @default false\n */\n isScrolling?: boolean\n /**\n * Drawer content\n */\n children?: React.ReactNode\n /**\n * Callback when drawer collapses\n */\n onCollapse?: () => void\n /**\n * Callback when drawer expands\n */\n onExpand?: () => void\n}\n\nexport type DrawerState = {\n isDrawerCollapsed: boolean\n drawerSize: {\n value?: number\n unit: 'PIXEL' | 'PERCENT' | 'AUTO'\n }\n}\n\nexport default class Drawer extends React.Component<DrawerProps, DrawerState> {\n drawerRef: React.RefObject<HTMLDivElement>\n\n static defaultProps: Partial<DrawerProps> = {\n isScrolling: false,\n }\n\n constructor(props: DrawerProps) {\n super(props)\n this.state = {\n isDrawerCollapsed: false,\n drawerSize: {\n value: props.defaultSize.value,\n unit: props.defaultSize.unit,\n },\n }\n this.drawerRef = React.createRef()\n }\n\n // Lifecycle\n componentDidUpdate = (\n _: Readonly<DrawerProps>,\n prevState: Readonly<DrawerState>\n ) => {\n const { onCollapse, onExpand } = this.props\n const { isDrawerCollapsed } = this.state\n\n if (isDrawerCollapsed && !prevState.isDrawerCollapsed)\n onCollapse && onCollapse()\n if (!isDrawerCollapsed && prevState.isDrawerCollapsed)\n onExpand && onExpand()\n }\n\n // Handlers\n clickHandler = (e: React.MouseEvent<HTMLDivElement>) => {\n const { defaultSize, maxSize } = this.props\n const { drawerSize } = this.state\n\n document.body.style.cursor = ''\n document.removeEventListener('mousemove', this.onDrag)\n\n if (e.detail === 2)\n this.setState({\n drawerSize: drawerSize === defaultSize ? maxSize : defaultSize,\n isDrawerCollapsed: false,\n })\n }\n\n // Direct Actions\n setBorder = (\n orientation: Array<'TOP' | 'LEFT' | 'BOTTOM' | 'RIGHT'> | undefined\n ) => {\n const property = 'var(--drawer-border)' as React.CSSProperties\n const styles: { [key: string]: React.CSSProperties } = {}\n\n if (!orientation) return styles\n orientation.forEach((entry) => {\n if (entry === 'TOP') styles.borderTop = property\n if (entry === 'LEFT') styles.borderLeft = property\n if (entry === 'BOTTOM') styles.borderBottom = property\n if (entry === 'RIGHT') styles.borderRight = property\n })\n return styles\n }\n\n setUnit = (size: Unit) => {\n if (size.unit === 'AUTO') return 'auto'\n return size.unit === 'PIXEL' ? `${size.value}px` : `${size.value}%`\n }\n\n expandDrawer = () => {\n const { defaultSize } = this.props\n\n this.setState({\n drawerSize: defaultSize,\n isDrawerCollapsed: false,\n })\n }\n\n collapseDrawer = () => {\n const { minSize } = this.props\n\n this.setState({\n drawerSize: minSize,\n isDrawerCollapsed: true,\n })\n }\n\n onGrab = () => {\n document.body.style.cursor = 'ns-resize'\n document.addEventListener('mousemove', this.onDrag)\n }\n\n onDrag = (e: MouseEvent) => {\n const { direction, pin, minSize, maxSize } = this.props\n const { drawerRef } = this\n const { clientX, clientY } = e\n\n if (!drawerRef.current) return\n\n const rect = drawerRef.current.getBoundingClientRect()\n const parentRect = drawerRef.current.parentElement?.getBoundingClientRect()\n\n if (!parentRect) return\n\n let delta = 0\n const parentSize =\n direction === 'VERTICAL' ? parentRect.height : parentRect.width\n\n if (pin === 'TOP') {\n const maxDelta = parentRect.bottom - rect.top\n delta = Math.min(clientY - rect.top, maxDelta)\n } else if (pin === 'BOTTOM') {\n const maxDelta = rect.bottom - parentRect.top\n delta = Math.min(rect.bottom - clientY, maxDelta)\n } else if (pin === 'LEFT') {\n const maxDelta = parentRect.right - rect.left\n delta = Math.min(clientX - rect.left, maxDelta)\n } else if (pin === 'RIGHT') {\n const maxDelta = rect.right - parentRect.left\n delta = Math.min(rect.right - clientX, maxDelta)\n }\n\n delta = Math.max(0, delta)\n\n const minPixels =\n minSize.unit === 'PERCENT'\n ? ((minSize.value ?? 0) * parentSize) / 100\n : (minSize.value ?? 0)\n const maxPixels =\n maxSize.unit === 'PERCENT'\n ? ((maxSize.value ?? 100) * parentSize) / 100\n : (maxSize.value ?? Infinity)\n\n delta = Math.max(minPixels, Math.min(delta, maxPixels))\n\n this.setState({\n drawerSize: {\n value: maxSize.unit === 'PERCENT' ? (delta / parentSize) * 100 : delta,\n unit: maxSize.unit,\n },\n isDrawerCollapsed: delta <= minPixels,\n })\n\n document.body.style.cursor =\n direction === 'VERTICAL' ? 'ns-resize' : 'ew-resize'\n document.addEventListener('mouseup', () => {\n document.body.style.cursor = ''\n document.removeEventListener('mousemove', this.onDrag)\n })\n }\n\n // Render\n render() {\n const {\n id,\n pin,\n children,\n direction,\n border,\n maxSize,\n minSize,\n isScrolling,\n } = this.props\n const { drawerSize } = this.state\n\n return (\n <div\n id={id}\n style={{\n ...this.setBorder(border),\n ...(direction === 'VERTICAL'\n ? {\n height: this.setUnit(drawerSize),\n maxHeight: this.setUnit(maxSize),\n minHeight: this.setUnit(minSize),\n }\n : {\n width: this.setUnit(drawerSize),\n maxWidth: this.setUnit(maxSize),\n minWidth: this.setUnit(minSize),\n }),\n }}\n className={doClassnames(['drawer', isScrolling && 'drawer--scrolling'])}\n ref={this.drawerRef}\n >\n <div\n className={doClassnames([\n 'drawer__knob',\n pin === 'TOP' && 'drawer__knob--top',\n pin === 'LEFT' && 'drawer__knob--left',\n pin === 'BOTTOM' && 'drawer__knob--bottom',\n pin === 'RIGHT' && 'drawer__knob--right',\n ])}\n onMouseDown={this.onGrab}\n onClick={this.clickHandler}\n role=\"separator\"\n aria-orientation={\n direction === 'VERTICAL' ? 'vertical' : 'horizontal'\n }\n aria-valuemin={minSize.value}\n aria-valuemax={maxSize.value}\n aria-valuenow={drawerSize.value}\n />\n {children}\n </div>\n )\n }\n}\n"],"names":["Drawer","React","props","_","prevState","onCollapse","onExpand","isDrawerCollapsed","defaultSize","maxSize","drawerSize","orientation","property","styles","entry","size","minSize","direction","pin","drawerRef","clientX","clientY","rect","parentRect","delta","parentSize","maxDelta","minPixels","maxPixels","id","children","border","isScrolling","jsxs","doClassnames","jsx"],"mappings":"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"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
|
|
2
|
+
export interface FormItemProps {
|
|
3
|
+
/**
|
|
4
|
+
* HTML id attribute
|
|
5
|
+
*/
|
|
6
|
+
id?: string;
|
|
7
|
+
/**
|
|
8
|
+
* Label text for the form item
|
|
9
|
+
*/
|
|
10
|
+
label?: string;
|
|
11
|
+
/**
|
|
12
|
+
* Helper or error message configuration
|
|
13
|
+
*/
|
|
14
|
+
helper?: {
|
|
15
|
+
/** Type of message */
|
|
16
|
+
type: 'INFO' | 'ERROR';
|
|
17
|
+
/** Message text */
|
|
18
|
+
message: string;
|
|
19
|
+
};
|
|
20
|
+
/**
|
|
21
|
+
* Whether to fill available width
|
|
22
|
+
* @default true
|
|
23
|
+
*/
|
|
24
|
+
shouldFill?: boolean;
|
|
25
|
+
/**
|
|
26
|
+
* Whether to align content to baseline
|
|
27
|
+
* @default false
|
|
28
|
+
*/
|
|
29
|
+
isBaseline?: boolean;
|
|
30
|
+
/**
|
|
31
|
+
* Whether to use multi-line layout
|
|
32
|
+
* @default false
|
|
33
|
+
*/
|
|
34
|
+
isMultiLine?: boolean;
|
|
35
|
+
/**
|
|
36
|
+
* Whether the item is blocked
|
|
37
|
+
* @default false
|
|
38
|
+
*/
|
|
39
|
+
isBlocked?: boolean;
|
|
40
|
+
/**
|
|
41
|
+
* Whether to show a "New" badge
|
|
42
|
+
* @default false
|
|
43
|
+
*/
|
|
44
|
+
isNew?: boolean;
|
|
45
|
+
/**
|
|
46
|
+
* Form input element
|
|
47
|
+
*/
|
|
48
|
+
children: React.ReactNode;
|
|
49
|
+
}
|
|
50
|
+
declare const FormItem: (props: FormItemProps) => import("react/jsx-runtime").JSX.Element;
|
|
51
|
+
export default FormItem;
|
|
52
|
+
//# sourceMappingURL=FormItem.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FormItem.d.ts","sourceRoot":"","sources":["../../../../src/components/slots/form-item/FormItem.tsx"],"names":[],"mappings":";AAIA,OAAO,kBAAkB,CAAA;AAEzB,MAAM,WAAW,aAAa;IAC5B;;OAEG;IACH,EAAE,CAAC,EAAE,MAAM,CAAA;IACX;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAA;IACd;;OAEG;IACH,MAAM,CAAC,EAAE;QACP,sBAAsB;QACtB,IAAI,EAAE,MAAM,GAAG,OAAO,CAAA;QACtB,mBAAmB;QACnB,OAAO,EAAE,MAAM,CAAA;KAChB,CAAA;IACD;;;OAGG;IACH,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB;;;OAGG;IACH,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB;;;OAGG;IACH,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB;;;OAGG;IACH,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB;;;OAGG;IACH,KAAK,CAAC,EAAE,OAAO,CAAA;IACf;;OAEG;IACH,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;CAC1B;AAED,QAAA,MAAM,QAAQ,UAAW,aAAa,4CAoErC,CAAA;AAED,eAAe,QAAQ,CAAA"}
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
import '../../../assets/FormItem.css';
|
|
2
|
+
import { jsxs as o, jsx as e } from "react/jsx-runtime";
|
|
3
|
+
import p from "../../../styles/texts/texts.module.js";
|
|
4
|
+
import h from "../../tags/chip/Chip.js";
|
|
5
|
+
import _ from "../../dialogs/message/Message.js";
|
|
6
|
+
import { t as m } from "../../../do-classnames-DSDFCvzy.js";
|
|
7
|
+
const w = (s) => {
|
|
8
|
+
const {
|
|
9
|
+
id: i,
|
|
10
|
+
label: l,
|
|
11
|
+
helper: r,
|
|
12
|
+
shouldFill: t = !0,
|
|
13
|
+
isBaseline: a = !1,
|
|
14
|
+
isMultiLine: n = !1,
|
|
15
|
+
isBlocked: d = !1,
|
|
16
|
+
isNew: f = !1,
|
|
17
|
+
children: c
|
|
18
|
+
} = s;
|
|
19
|
+
return /* @__PURE__ */ o(
|
|
20
|
+
"div",
|
|
21
|
+
{
|
|
22
|
+
className: m([
|
|
23
|
+
"form-item",
|
|
24
|
+
t && "form-item--fill",
|
|
25
|
+
a && "form-item--baseline",
|
|
26
|
+
n && "form-item--multiline",
|
|
27
|
+
d && "form-item--blocked"
|
|
28
|
+
]),
|
|
29
|
+
role: "group",
|
|
30
|
+
"aria-describedby": r ? `${i}-helper` : void 0,
|
|
31
|
+
children: [
|
|
32
|
+
/* @__PURE__ */ o(
|
|
33
|
+
"div",
|
|
34
|
+
{
|
|
35
|
+
className: "form-item__row",
|
|
36
|
+
role: "presentation",
|
|
37
|
+
children: [
|
|
38
|
+
l !== void 0 && /* @__PURE__ */ e(
|
|
39
|
+
"label",
|
|
40
|
+
{
|
|
41
|
+
className: m([p.type, "form-item__label"]),
|
|
42
|
+
htmlFor: i,
|
|
43
|
+
id: `${i}-label`,
|
|
44
|
+
children: l
|
|
45
|
+
}
|
|
46
|
+
),
|
|
47
|
+
/* @__PURE__ */ e(
|
|
48
|
+
"div",
|
|
49
|
+
{
|
|
50
|
+
className: "form-item__input",
|
|
51
|
+
role: "presentation",
|
|
52
|
+
children: c
|
|
53
|
+
}
|
|
54
|
+
),
|
|
55
|
+
f && /* @__PURE__ */ e(
|
|
56
|
+
"div",
|
|
57
|
+
{
|
|
58
|
+
className: "form-item__chip",
|
|
59
|
+
role: "presentation",
|
|
60
|
+
children: /* @__PURE__ */ e(h, { children: "New" })
|
|
61
|
+
}
|
|
62
|
+
)
|
|
63
|
+
]
|
|
64
|
+
}
|
|
65
|
+
),
|
|
66
|
+
r !== void 0 && /* @__PURE__ */ e(
|
|
67
|
+
"div",
|
|
68
|
+
{
|
|
69
|
+
className: "form-item__helper",
|
|
70
|
+
id: `${i}-helper`,
|
|
71
|
+
role: "alert",
|
|
72
|
+
"aria-live": "polite",
|
|
73
|
+
children: /* @__PURE__ */ e(
|
|
74
|
+
_,
|
|
75
|
+
{
|
|
76
|
+
icon: r.type === "INFO" ? "info" : "warning",
|
|
77
|
+
messages: [r.message]
|
|
78
|
+
}
|
|
79
|
+
)
|
|
80
|
+
}
|
|
81
|
+
)
|
|
82
|
+
]
|
|
83
|
+
}
|
|
84
|
+
);
|
|
85
|
+
};
|
|
86
|
+
export {
|
|
87
|
+
w as default
|
|
88
|
+
};
|
|
89
|
+
//# sourceMappingURL=FormItem.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FormItem.js","sources":["../../../../src/components/slots/form-item/FormItem.tsx"],"sourcesContent":["import texts from '@styles/texts/texts.module.scss'\nimport Chip from '@components/tags/chip/Chip'\nimport Message from '@components/dialogs/message/Message'\nimport { doClassnames } from '@a_ng_d/figmug-utils'\nimport './form-item.scss'\n\nexport interface FormItemProps {\n /**\n * HTML id attribute\n */\n id?: string\n /**\n * Label text for the form item\n */\n label?: string\n /**\n * Helper or error message configuration\n */\n helper?: {\n /** Type of message */\n type: 'INFO' | 'ERROR'\n /** Message text */\n message: string\n }\n /**\n * Whether to fill available width\n * @default true\n */\n shouldFill?: boolean\n /**\n * Whether to align content to baseline\n * @default false\n */\n isBaseline?: boolean\n /**\n * Whether to use multi-line layout\n * @default false\n */\n isMultiLine?: boolean\n /**\n * Whether the item is blocked\n * @default false\n */\n isBlocked?: boolean\n /**\n * Whether to show a \"New\" badge\n * @default false\n */\n isNew?: boolean\n /**\n * Form input element\n */\n children: React.ReactNode\n}\n\nconst FormItem = (props: FormItemProps) => {\n const {\n id,\n label,\n helper,\n shouldFill = true,\n isBaseline = false,\n isMultiLine = false,\n isBlocked = false,\n isNew = false,\n children,\n } = props\n\n return (\n <div\n className={doClassnames([\n 'form-item',\n shouldFill && 'form-item--fill',\n isBaseline && 'form-item--baseline',\n isMultiLine && 'form-item--multiline',\n isBlocked && 'form-item--blocked',\n ])}\n role=\"group\"\n aria-describedby={helper ? `${id}-helper` : undefined}\n >\n <div\n className=\"form-item__row\"\n role=\"presentation\"\n >\n {label !== undefined && (\n <label\n className={doClassnames([texts.type, 'form-item__label'])}\n htmlFor={id}\n id={`${id}-label`}\n >\n {label}\n </label>\n )}\n <div\n className=\"form-item__input\"\n role=\"presentation\"\n >\n {children}\n </div>\n {isNew && (\n <div\n className=\"form-item__chip\"\n role=\"presentation\"\n >\n <Chip>New</Chip>\n </div>\n )}\n </div>\n {helper !== undefined && (\n <div\n className=\"form-item__helper\"\n id={`${id}-helper`}\n role=\"alert\"\n aria-live=\"polite\"\n >\n <Message\n icon={helper.type === 'INFO' ? 'info' : 'warning'}\n messages={[helper.message]}\n />\n </div>\n )}\n </div>\n )\n}\n\nexport default FormItem\n"],"names":["FormItem","props","id","label","helper","shouldFill","isBaseline","isMultiLine","isBlocked","isNew","children","jsxs","doClassnames","jsx","texts","Chip","Message"],"mappings":";;;;;AAuDA,MAAMA,IAAW,CAACC,MAAyB;AACzC,QAAM;AAAA,IACJ,IAAAC;AAAA,IACA,OAAAC;AAAA,IACA,QAAAC;AAAA,IACA,YAAAC,IAAa;AAAA,IACb,YAAAC,IAAa;AAAA,IACb,aAAAC,IAAc;AAAA,IACd,WAAAC,IAAY;AAAA,IACZ,OAAAC,IAAQ;AAAA,IACR,UAAAC;AAAA,EAAA,IACET;AAEJ,SACE,gBAAAU;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAWC,EAAa;AAAA,QACtB;AAAA,QACAP,KAAc;AAAA,QACdC,KAAc;AAAA,QACdC,KAAe;AAAA,QACfC,KAAa;AAAA,MAAA,CACd;AAAA,MACD,MAAK;AAAA,MACL,oBAAkBJ,IAAS,GAAGF,CAAE,YAAY;AAAA,MAE5C,UAAA;AAAA,QAAA,gBAAAS;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,WAAU;AAAA,YACV,MAAK;AAAA,YAEJ,UAAA;AAAA,cAAAR,MAAU,UACT,gBAAAU;AAAA,gBAAC;AAAA,gBAAA;AAAA,kBACC,WAAWD,EAAa,CAACE,EAAM,MAAM,kBAAkB,CAAC;AAAA,kBACxD,SAASZ;AAAA,kBACT,IAAI,GAAGA,CAAE;AAAA,kBAER,UAAAC;AAAA,gBAAA;AAAA,cAAA;AAAA,cAGL,gBAAAU;AAAA,gBAAC;AAAA,gBAAA;AAAA,kBACC,WAAU;AAAA,kBACV,MAAK;AAAA,kBAEJ,UAAAH;AAAA,gBAAA;AAAA,cAAA;AAAA,cAEFD,KACC,gBAAAI;AAAA,gBAAC;AAAA,gBAAA;AAAA,kBACC,WAAU;AAAA,kBACV,MAAK;AAAA,kBAEL,UAAA,gBAAAA,EAACE,KAAK,UAAA,MAAA,CAAG;AAAA,gBAAA;AAAA,cAAA;AAAA,YACX;AAAA,UAAA;AAAA,QAAA;AAAA,QAGHX,MAAW,UACV,gBAAAS;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,WAAU;AAAA,YACV,IAAI,GAAGX,CAAE;AAAA,YACT,MAAK;AAAA,YACL,aAAU;AAAA,YAEV,UAAA,gBAAAW;AAAA,cAACG;AAAA,cAAA;AAAA,gBACC,MAAMZ,EAAO,SAAS,SAAS,SAAS;AAAA,gBACxC,UAAU,CAACA,EAAO,OAAO;AAAA,cAAA;AAAA,YAAA;AAAA,UAC3B;AAAA,QAAA;AAAA,MACF;AAAA,IAAA;AAAA,EAAA;AAIR;"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { DrawerProps } from '../drawer/Drawer';
|
|
2
|
+
|
|
3
|
+
export type LayoutProps = {
|
|
4
|
+
/**
|
|
5
|
+
* HTML id attribute
|
|
6
|
+
*/
|
|
7
|
+
id?: string;
|
|
8
|
+
/**
|
|
9
|
+
* Array of column configurations
|
|
10
|
+
*/
|
|
11
|
+
column: Array<{
|
|
12
|
+
/** Content node */
|
|
13
|
+
node?: React.ReactElement;
|
|
14
|
+
/** Type modifier for styling */
|
|
15
|
+
typeModifier?: 'LIST' | 'DISTRIBUTED' | 'CENTERED' | 'BLANK' | 'DRAWER' | 'FIXED';
|
|
16
|
+
/** Fixed width value */
|
|
17
|
+
fixedWidth?: string;
|
|
18
|
+
/** Drawer configuration (when typeModifier is DRAWER) */
|
|
19
|
+
drawerOptions?: DrawerProps;
|
|
20
|
+
}>;
|
|
21
|
+
/**
|
|
22
|
+
* Whether to use full width
|
|
23
|
+
* @default false
|
|
24
|
+
*/
|
|
25
|
+
isFullWidth?: boolean;
|
|
26
|
+
/**
|
|
27
|
+
* Whether to use full height
|
|
28
|
+
* @default false
|
|
29
|
+
*/
|
|
30
|
+
isFullHeight?: boolean;
|
|
31
|
+
};
|
|
32
|
+
declare const Layout: (props: LayoutProps) => import("react/jsx-runtime").JSX.Element;
|
|
33
|
+
export default Layout;
|
|
34
|
+
//# sourceMappingURL=Layout.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Layout.d.ts","sourceRoot":"","sources":["../../../../src/components/slots/layout/Layout.tsx"],"names":[],"mappings":";AACA,OAAe,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AACtD,OAAO,eAAe,CAAA;AAEtB,MAAM,MAAM,WAAW,GAAG;IACxB;;OAEG;IACH,EAAE,CAAC,EAAE,MAAM,CAAA;IACX;;OAEG;IACH,MAAM,EAAE,KAAK,CAAC;QACZ,mBAAmB;QACnB,IAAI,CAAC,EAAE,KAAK,CAAC,YAAY,CAAA;QACzB,gCAAgC;QAChC,YAAY,CAAC,EACT,MAAM,GACN,aAAa,GACb,UAAU,GACV,OAAO,GACP,QAAQ,GACR,OAAO,CAAA;QACX,wBAAwB;QACxB,UAAU,CAAC,EAAE,MAAM,CAAA;QACnB,yDAAyD;QACzD,aAAa,CAAC,EAAE,WAAW,CAAA;KAC5B,CAAC,CAAA;IACF;;;OAGG;IACH,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB;;;OAGG;IACH,YAAY,CAAC,EAAE,OAAO,CAAA;CACvB,CAAA;AAED,QAAA,MAAM,MAAM,UAAW,WAAW,4CA4CjC,CAAA;AAED,eAAe,MAAM,CAAA"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import '../../../assets/Layout.css';
|
|
2
|
+
import { jsx as l } from "react/jsx-runtime";
|
|
3
|
+
import { t as d } from "../../../do-classnames-DSDFCvzy.js";
|
|
4
|
+
import s from "../drawer/Drawer.js";
|
|
5
|
+
const c = (e) => {
|
|
6
|
+
const { id: r, column: t, isFullWidth: a = !1, isFullHeight: n = !1 } = e;
|
|
7
|
+
return /* @__PURE__ */ l(
|
|
8
|
+
"div",
|
|
9
|
+
{
|
|
10
|
+
id: r,
|
|
11
|
+
className: d([
|
|
12
|
+
"layout",
|
|
13
|
+
a && "layout--full-width",
|
|
14
|
+
n && "layout--full-height"
|
|
15
|
+
]),
|
|
16
|
+
role: "main",
|
|
17
|
+
children: t.map(
|
|
18
|
+
(o, i) => o.node !== void 0 && (o.typeModifier === "DRAWER" && o.drawerOptions !== void 0 ? /* @__PURE__ */ l(s, { ...o.drawerOptions, children: o.node }) : /* @__PURE__ */ l(
|
|
19
|
+
"div",
|
|
20
|
+
{
|
|
21
|
+
className: d([
|
|
22
|
+
"layout__block",
|
|
23
|
+
o.typeModifier === "LIST" && "layout__block--list",
|
|
24
|
+
o.typeModifier === "DISTRIBUTED" && "layout__block--distributed",
|
|
25
|
+
o.typeModifier === "CENTERED" && "layout__block--centered",
|
|
26
|
+
o.typeModifier === "BLANK" && "layout__block--blank",
|
|
27
|
+
o.typeModifier === "FIXED" && "layout__block--fixed"
|
|
28
|
+
]),
|
|
29
|
+
style: {
|
|
30
|
+
width: o.fixedWidth !== void 0 ? o.fixedWidth : void 0
|
|
31
|
+
},
|
|
32
|
+
role: "region",
|
|
33
|
+
"aria-label": `Content section ${i + 1}`,
|
|
34
|
+
children: o.node
|
|
35
|
+
},
|
|
36
|
+
i
|
|
37
|
+
))
|
|
38
|
+
)
|
|
39
|
+
}
|
|
40
|
+
);
|
|
41
|
+
};
|
|
42
|
+
export {
|
|
43
|
+
c as default
|
|
44
|
+
};
|
|
45
|
+
//# sourceMappingURL=Layout.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Layout.js","sources":["../../../../src/components/slots/layout/Layout.tsx"],"sourcesContent":["import { doClassnames } from '@a_ng_d/figmug-utils'\nimport Drawer, { DrawerProps } from '../drawer/Drawer'\nimport './layout.scss'\n\nexport type LayoutProps = {\n /**\n * HTML id attribute\n */\n id?: string\n /**\n * Array of column configurations\n */\n column: Array<{\n /** Content node */\n node?: React.ReactElement\n /** Type modifier for styling */\n typeModifier?:\n | 'LIST'\n | 'DISTRIBUTED'\n | 'CENTERED'\n | 'BLANK'\n | 'DRAWER'\n | 'FIXED'\n /** Fixed width value */\n fixedWidth?: string\n /** Drawer configuration (when typeModifier is DRAWER) */\n drawerOptions?: DrawerProps\n }>\n /**\n * Whether to use full width\n * @default false\n */\n isFullWidth?: boolean\n /**\n * Whether to use full height\n * @default false\n */\n isFullHeight?: boolean\n}\n\nconst Layout = (props: LayoutProps) => {\n const { id, column, isFullWidth = false, isFullHeight = false } = props\n\n return (\n <div\n id={id}\n className={doClassnames([\n 'layout',\n isFullWidth && 'layout--full-width',\n isFullHeight && 'layout--full-height',\n ])}\n role=\"main\"\n >\n {column.map(\n (item, index) =>\n item.node !== undefined &&\n (item.typeModifier === 'DRAWER' &&\n item.drawerOptions !== undefined ? (\n <Drawer {...item.drawerOptions}>{item.node}</Drawer>\n ) : (\n <div\n key={index}\n className={doClassnames([\n 'layout__block',\n item.typeModifier === 'LIST' && 'layout__block--list',\n item.typeModifier === 'DISTRIBUTED' &&\n 'layout__block--distributed',\n item.typeModifier === 'CENTERED' && 'layout__block--centered',\n item.typeModifier === 'BLANK' && 'layout__block--blank',\n item.typeModifier === 'FIXED' && 'layout__block--fixed',\n ])}\n style={{\n width:\n item.fixedWidth !== undefined ? item.fixedWidth : undefined,\n }}\n role=\"region\"\n aria-label={`Content section ${index + 1}`}\n >\n {item.node}\n </div>\n ))\n )}\n </div>\n )\n}\n\nexport default Layout\n"],"names":["Layout","props","id","column","isFullWidth","isFullHeight","jsx","doClassnames","item","index","Drawer"],"mappings":";;;AAwCA,MAAMA,IAAS,CAACC,MAAuB;AACrC,QAAM,EAAE,IAAAC,GAAI,QAAAC,GAAQ,aAAAC,IAAc,IAAO,cAAAC,IAAe,OAAUJ;AAElE,SACE,gBAAAK;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,IAAAJ;AAAA,MACA,WAAWK,EAAa;AAAA,QACtB;AAAA,QACAH,KAAe;AAAA,QACfC,KAAgB;AAAA,MAAA,CACjB;AAAA,MACD,MAAK;AAAA,MAEJ,UAAAF,EAAO;AAAA,QACN,CAACK,GAAMC,MACLD,EAAK,SAAS,WACbA,EAAK,iBAAiB,YACvBA,EAAK,kBAAkB,2BACpBE,GAAA,EAAQ,GAAGF,EAAK,eAAgB,UAAAA,EAAK,MAAK,IAE3C,gBAAAF;AAAA,UAAC;AAAA,UAAA;AAAA,YAEC,WAAWC,EAAa;AAAA,cACtB;AAAA,cACAC,EAAK,iBAAiB,UAAU;AAAA,cAChCA,EAAK,iBAAiB,iBACpB;AAAA,cACFA,EAAK,iBAAiB,cAAc;AAAA,cACpCA,EAAK,iBAAiB,WAAW;AAAA,cACjCA,EAAK,iBAAiB,WAAW;AAAA,YAAA,CAClC;AAAA,YACD,OAAO;AAAA,cACL,OACEA,EAAK,eAAe,SAAYA,EAAK,aAAa;AAAA,YAAA;AAAA,YAEtD,MAAK;AAAA,YACL,cAAY,mBAAmBC,IAAQ,CAAC;AAAA,YAEvC,UAAAD,EAAK;AAAA,UAAA;AAAA,UAjBDC;AAAA,QAAA;AAAA,MAkBP;AAAA,IAEN;AAAA,EAAA;AAGN;"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { default as React } from 'react';
|
|
2
|
+
|
|
3
|
+
export interface ListProps {
|
|
4
|
+
/**
|
|
5
|
+
* HTML id attribute
|
|
6
|
+
*/
|
|
7
|
+
id?: string;
|
|
8
|
+
/**
|
|
9
|
+
* List item elements
|
|
10
|
+
*/
|
|
11
|
+
children?: React.ReactNode;
|
|
12
|
+
/**
|
|
13
|
+
* Custom padding value
|
|
14
|
+
*/
|
|
15
|
+
padding?: string;
|
|
16
|
+
/**
|
|
17
|
+
* Whether to show a border on scroll
|
|
18
|
+
* @default false
|
|
19
|
+
*/
|
|
20
|
+
isTopBorderEnabled?: boolean;
|
|
21
|
+
/**
|
|
22
|
+
* Whether to show loading state
|
|
23
|
+
* @default false
|
|
24
|
+
*/
|
|
25
|
+
isLoading?: boolean;
|
|
26
|
+
/**
|
|
27
|
+
* Whether the list contains message items
|
|
28
|
+
* @default false
|
|
29
|
+
*/
|
|
30
|
+
isMessage?: boolean;
|
|
31
|
+
/**
|
|
32
|
+
* Whether to use alternate styling
|
|
33
|
+
* @default false
|
|
34
|
+
*/
|
|
35
|
+
isAlternate?: boolean;
|
|
36
|
+
/**
|
|
37
|
+
* Whether to use full width
|
|
38
|
+
* @default false
|
|
39
|
+
*/
|
|
40
|
+
isFullWidth?: boolean;
|
|
41
|
+
/**
|
|
42
|
+
* Whether to use full height
|
|
43
|
+
* @default false
|
|
44
|
+
*/
|
|
45
|
+
isFullHeight?: boolean;
|
|
46
|
+
}
|
|
47
|
+
export declare const List: (props: ListProps) => import("react/jsx-runtime").JSX.Element;
|
|
48
|
+
export default List;
|
|
49
|
+
//# sourceMappingURL=List.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"List.d.ts","sourceRoot":"","sources":["../../../../src/components/slots/list/List.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAmB,MAAM,OAAO,CAAA;AAGvC,OAAO,aAAa,CAAA;AAEpB,MAAM,WAAW,SAAS;IACxB;;OAEG;IACH,EAAE,CAAC,EAAE,MAAM,CAAA;IACX;;OAEG;IACH,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAC1B;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB;;;OAGG;IACH,kBAAkB,CAAC,EAAE,OAAO,CAAA;IAC5B;;;OAGG;IACH,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB;;;OAGG;IACH,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB;;;OAGG;IACH,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB;;;OAGG;IACH,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB;;;OAGG;IACH,YAAY,CAAC,EAAE,OAAO,CAAA;CACvB;AAED,eAAO,MAAM,IAAI,UAAW,SAAS,4CAqDpC,CAAA;AACD,eAAe,IAAI,CAAA"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import '../../../assets/List.css';
|
|
2
|
+
import { jsx as s } from "react/jsx-runtime";
|
|
3
|
+
import { useState as h } from "react";
|
|
4
|
+
import { Icon as g } from "../../assets/icon/Icon.js";
|
|
5
|
+
import { t as T } from "../../../do-classnames-DSDFCvzy.js";
|
|
6
|
+
const x = (i) => {
|
|
7
|
+
const {
|
|
8
|
+
id: r,
|
|
9
|
+
children: a,
|
|
10
|
+
isLoading: e = !1,
|
|
11
|
+
isMessage: o = !1,
|
|
12
|
+
padding: n,
|
|
13
|
+
isTopBorderEnabled: d = !1,
|
|
14
|
+
isAlternate: f = !1,
|
|
15
|
+
isFullWidth: p = !1,
|
|
16
|
+
isFullHeight: u = !1
|
|
17
|
+
} = i, [c, l] = h(!1), m = (t) => {
|
|
18
|
+
t.preventDefault(), t.currentTarget.scrollTop > 0 && d ? l(!0) : l(!1);
|
|
19
|
+
};
|
|
20
|
+
return /* @__PURE__ */ s(
|
|
21
|
+
"ul",
|
|
22
|
+
{
|
|
23
|
+
id: r,
|
|
24
|
+
style: {
|
|
25
|
+
padding: n,
|
|
26
|
+
listStyleType: "none"
|
|
27
|
+
},
|
|
28
|
+
className: T([
|
|
29
|
+
"list",
|
|
30
|
+
e && "list--loading",
|
|
31
|
+
o && "list--message",
|
|
32
|
+
c && "list--top-border",
|
|
33
|
+
f && "list--alternate",
|
|
34
|
+
p && "list--full-width",
|
|
35
|
+
u && "list--full-height"
|
|
36
|
+
]),
|
|
37
|
+
onScroll: m,
|
|
38
|
+
"aria-busy": e,
|
|
39
|
+
children: e ? /* @__PURE__ */ s("li", { children: /* @__PURE__ */ s(
|
|
40
|
+
g,
|
|
41
|
+
{
|
|
42
|
+
type: "PICTO",
|
|
43
|
+
iconName: "spinner",
|
|
44
|
+
role: "status",
|
|
45
|
+
"aria-hidden": "true"
|
|
46
|
+
}
|
|
47
|
+
) }) : a
|
|
48
|
+
}
|
|
49
|
+
);
|
|
50
|
+
};
|
|
51
|
+
export {
|
|
52
|
+
x as List,
|
|
53
|
+
x as default
|
|
54
|
+
};
|
|
55
|
+
//# sourceMappingURL=List.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"List.js","sources":["../../../../src/components/slots/list/List.tsx"],"sourcesContent":["import React, { useState } from 'react'\nimport Icon from '@components/assets/icon/Icon'\nimport { doClassnames } from '@a_ng_d/figmug-utils'\nimport './list.scss'\n\nexport interface ListProps {\n /**\n * HTML id attribute\n */\n id?: string\n /**\n * List item elements\n */\n children?: React.ReactNode\n /**\n * Custom padding value\n */\n padding?: string\n /**\n * Whether to show a border on scroll\n * @default false\n */\n isTopBorderEnabled?: boolean\n /**\n * Whether to show loading state\n * @default false\n */\n isLoading?: boolean\n /**\n * Whether the list contains message items\n * @default false\n */\n isMessage?: boolean\n /**\n * Whether to use alternate styling\n * @default false\n */\n isAlternate?: boolean\n /**\n * Whether to use full width\n * @default false\n */\n isFullWidth?: boolean\n /**\n * Whether to use full height\n * @default false\n */\n isFullHeight?: boolean\n}\n\nexport const List = (props: ListProps) => {\n const {\n id,\n children,\n isLoading = false,\n isMessage = false,\n padding,\n isTopBorderEnabled = false,\n isAlternate = false,\n isFullWidth = false,\n isFullHeight = false,\n } = props\n const [hasTopBorder, setTopBorder] = useState(false)\n\n const onScroll = (e: React.UIEvent<HTMLUListElement>) => {\n e.preventDefault()\n if (e.currentTarget.scrollTop > 0 && isTopBorderEnabled) setTopBorder(true)\n else setTopBorder(false)\n }\n\n return (\n <ul\n id={id}\n style={{\n padding: padding,\n listStyleType: 'none',\n }}\n className={doClassnames([\n 'list',\n isLoading && 'list--loading',\n isMessage && 'list--message',\n hasTopBorder && 'list--top-border',\n isAlternate && 'list--alternate',\n isFullWidth && 'list--full-width',\n isFullHeight && 'list--full-height',\n ])}\n onScroll={onScroll}\n aria-busy={isLoading}\n >\n {isLoading ? (\n <li>\n <Icon\n type=\"PICTO\"\n iconName=\"spinner\"\n role=\"status\"\n aria-hidden=\"true\"\n />\n </li>\n ) : (\n children\n )}\n </ul>\n )\n}\nexport default List\n"],"names":["List","props","id","children","isLoading","isMessage","padding","isTopBorderEnabled","isAlternate","isFullWidth","isFullHeight","hasTopBorder","setTopBorder","useState","onScroll","e","jsx","doClassnames","Icon"],"mappings":";;;;AAkDO,MAAMA,IAAO,CAACC,MAAqB;AACxC,QAAM;AAAA,IACJ,IAAAC;AAAA,IACA,UAAAC;AAAA,IACA,WAAAC,IAAY;AAAA,IACZ,WAAAC,IAAY;AAAA,IACZ,SAAAC;AAAA,IACA,oBAAAC,IAAqB;AAAA,IACrB,aAAAC,IAAc;AAAA,IACd,aAAAC,IAAc;AAAA,IACd,cAAAC,IAAe;AAAA,EAAA,IACbT,GACE,CAACU,GAAcC,CAAY,IAAIC,EAAS,EAAK,GAE7CC,IAAW,CAACC,MAAuC;AACvD,IAAAA,EAAE,eAAA,GACEA,EAAE,cAAc,YAAY,KAAKR,MAAiC,EAAI,MACxD,EAAK;AAAA,EACzB;AAEA,SACE,gBAAAS;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,IAAAd;AAAA,MACA,OAAO;AAAA,QACL,SAAAI;AAAA,QACA,eAAe;AAAA,MAAA;AAAA,MAEjB,WAAWW,EAAa;AAAA,QACtB;AAAA,QACAb,KAAa;AAAA,QACbC,KAAa;AAAA,QACbM,KAAgB;AAAA,QAChBH,KAAe;AAAA,QACfC,KAAe;AAAA,QACfC,KAAgB;AAAA,MAAA,CACjB;AAAA,MACD,UAAAI;AAAA,MACA,aAAWV;AAAA,MAEV,UAAAA,sBACE,MAAA,EACC,UAAA,gBAAAY;AAAA,QAACE;AAAA,QAAA;AAAA,UACC,MAAK;AAAA,UACL,UAAS;AAAA,UACT,MAAK;AAAA,UACL,eAAY;AAAA,QAAA;AAAA,MAAA,GAEhB,IAEAf;AAAA,IAAA;AAAA,EAAA;AAIR;"}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
|
|
2
|
+
export interface PopInProps {
|
|
3
|
+
/**
|
|
4
|
+
* HTML id attribute
|
|
5
|
+
*/
|
|
6
|
+
id?: string;
|
|
7
|
+
/**
|
|
8
|
+
* Type of popin layout
|
|
9
|
+
* @default 'POPIN'
|
|
10
|
+
*/
|
|
11
|
+
type?: 'POPIN' | 'PANEL';
|
|
12
|
+
/**
|
|
13
|
+
* Title text
|
|
14
|
+
*/
|
|
15
|
+
title: string;
|
|
16
|
+
/**
|
|
17
|
+
* Optional tag to display next to the title
|
|
18
|
+
*/
|
|
19
|
+
tag?: string;
|
|
20
|
+
/**
|
|
21
|
+
* Configuration for action buttons
|
|
22
|
+
*/
|
|
23
|
+
actions?: {
|
|
24
|
+
/** Primary action button */
|
|
25
|
+
primary?: {
|
|
26
|
+
label: string;
|
|
27
|
+
state?: 'DEFAULT' | 'DISABLED' | 'LOADING';
|
|
28
|
+
isAutofocus?: boolean;
|
|
29
|
+
feature?: string;
|
|
30
|
+
action: React.MouseEventHandler & React.KeyboardEventHandler;
|
|
31
|
+
};
|
|
32
|
+
/** Destructive action button */
|
|
33
|
+
destructive?: {
|
|
34
|
+
label: string;
|
|
35
|
+
state?: 'DEFAULT' | 'DISABLED' | 'LOADING';
|
|
36
|
+
feature?: string;
|
|
37
|
+
isAutofocus?: boolean;
|
|
38
|
+
action: React.ReactEventHandler | (() => void);
|
|
39
|
+
};
|
|
40
|
+
/** Secondary action button */
|
|
41
|
+
secondary?: {
|
|
42
|
+
label: string;
|
|
43
|
+
state?: 'DEFAULT' | 'DISABLED' | 'LOADING';
|
|
44
|
+
feature?: string;
|
|
45
|
+
isAutofocus?: boolean;
|
|
46
|
+
action: React.MouseEventHandler & React.KeyboardEventHandler;
|
|
47
|
+
};
|
|
48
|
+
};
|
|
49
|
+
/**
|
|
50
|
+
* Select/checkbox configuration
|
|
51
|
+
*/
|
|
52
|
+
select?: {
|
|
53
|
+
/** Label text */
|
|
54
|
+
label: string;
|
|
55
|
+
/** Current state */
|
|
56
|
+
state: boolean;
|
|
57
|
+
/** Change handler */
|
|
58
|
+
action: React.ChangeEventHandler<HTMLInputElement> | undefined;
|
|
59
|
+
};
|
|
60
|
+
/**
|
|
61
|
+
* Optional indicator text
|
|
62
|
+
*/
|
|
63
|
+
indicator?: string;
|
|
64
|
+
/**
|
|
65
|
+
* Whether the popin is in loading state
|
|
66
|
+
* @default false
|
|
67
|
+
*/
|
|
68
|
+
isLoading?: boolean;
|
|
69
|
+
/**
|
|
70
|
+
* Whether to use message layout
|
|
71
|
+
* @default false
|
|
72
|
+
*/
|
|
73
|
+
isMessage?: boolean;
|
|
74
|
+
/**
|
|
75
|
+
* Popin content
|
|
76
|
+
*/
|
|
77
|
+
children?: React.ReactNode;
|
|
78
|
+
/**
|
|
79
|
+
* Close handler
|
|
80
|
+
*/
|
|
81
|
+
onClose: React.MouseEventHandler & React.KeyboardEventHandler;
|
|
82
|
+
}
|
|
83
|
+
declare const PopIn: (props: PopInProps) => import("react/jsx-runtime").JSX.Element;
|
|
84
|
+
export default PopIn;
|
|
85
|
+
//# sourceMappingURL=Popin.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Popin.d.ts","sourceRoot":"","sources":["../../../../src/components/slots/popin/Popin.tsx"],"names":[],"mappings":";AAMA,OAAO,cAAc,CAAA;AAErB,MAAM,WAAW,UAAU;IACzB;;OAEG;IACH,EAAE,CAAC,EAAE,MAAM,CAAA;IACX;;;OAGG;IACH,IAAI,CAAC,EAAE,OAAO,GAAG,OAAO,CAAA;IACxB;;OAEG;IACH,KAAK,EAAE,MAAM,CAAA;IACb;;OAEG;IACH,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ;;OAEG;IACH,OAAO,CAAC,EAAE;QACR,4BAA4B;QAC5B,OAAO,CAAC,EAAE;YACR,KAAK,EAAE,MAAM,CAAA;YACb,KAAK,CAAC,EAAE,SAAS,GAAG,UAAU,GAAG,SAAS,CAAA;YAC1C,WAAW,CAAC,EAAE,OAAO,CAAA;YACrB,OAAO,CAAC,EAAE,MAAM,CAAA;YAChB,MAAM,EAAE,KAAK,CAAC,iBAAiB,GAAG,KAAK,CAAC,oBAAoB,CAAA;SAC7D,CAAA;QACD,gCAAgC;QAChC,WAAW,CAAC,EAAE;YACZ,KAAK,EAAE,MAAM,CAAA;YACb,KAAK,CAAC,EAAE,SAAS,GAAG,UAAU,GAAG,SAAS,CAAA;YAC1C,OAAO,CAAC,EAAE,MAAM,CAAA;YAChB,WAAW,CAAC,EAAE,OAAO,CAAA;YACrB,MAAM,EAAE,KAAK,CAAC,iBAAiB,GAAG,CAAC,MAAM,IAAI,CAAC,CAAA;SAC/C,CAAA;QACD,8BAA8B;QAC9B,SAAS,CAAC,EAAE;YACV,KAAK,EAAE,MAAM,CAAA;YACb,KAAK,CAAC,EAAE,SAAS,GAAG,UAAU,GAAG,SAAS,CAAA;YAC1C,OAAO,CAAC,EAAE,MAAM,CAAA;YAChB,WAAW,CAAC,EAAE,OAAO,CAAA;YACrB,MAAM,EAAE,KAAK,CAAC,iBAAiB,GAAG,KAAK,CAAC,oBAAoB,CAAA;SAC7D,CAAA;KACF,CAAA;IACD;;OAEG;IACH,MAAM,CAAC,EAAE;QACP,iBAAiB;QACjB,KAAK,EAAE,MAAM,CAAA;QACb,oBAAoB;QACpB,KAAK,EAAE,OAAO,CAAA;QACd,qBAAqB;QACrB,MAAM,EAAE,KAAK,CAAC,kBAAkB,CAAC,gBAAgB,CAAC,GAAG,SAAS,CAAA;KAC/D,CAAA;IACD;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB;;;OAGG;IACH,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB;;;OAGG;IACH,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB;;OAEG;IACH,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAC1B;;OAEG;IACH,OAAO,EAAE,KAAK,CAAC,iBAAiB,GAAG,KAAK,CAAC,oBAAoB,CAAA;CAC9D;AAED,QAAA,MAAM,KAAK,UAAW,UAAU,4CAoK/B,CAAA;AAED,eAAe,KAAK,CAAA"}
|