@sima-land/ui-nucleons 45.0.0-alpha.5 → 45.0.0-alpha.7
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/_internal/custom-scrollbar/index.js +3 -2
- package/_internal/custom-scrollbar/index.js.map +1 -0
- package/_internal/dropdown-loading/index.js +2 -1
- package/_internal/dropdown-loading/index.js.map +1 -0
- package/_internal/page-scroll-lock/adapters/body-scroll-lock.js +5 -1
- package/_internal/page-scroll-lock/adapters/body-scroll-lock.js.map +1 -0
- package/_internal/page-scroll-lock/adapters/ui-nucleons.js +1 -0
- package/_internal/page-scroll-lock/adapters/ui-nucleons.js.map +1 -0
- package/_internal/page-scroll-lock/context.js +2 -1
- package/_internal/page-scroll-lock/context.js.map +1 -0
- package/_internal/page-scroll-lock/hook.js +1 -0
- package/_internal/page-scroll-lock/hook.js.map +1 -0
- package/_internal/page-scroll-lock/index.js +1 -0
- package/_internal/page-scroll-lock/index.js.map +1 -0
- package/_internal/page-scroll-lock/types.js +1 -0
- package/_internal/page-scroll-lock/types.js.map +1 -0
- package/_internal/utils/dropdown.js +1 -0
- package/_internal/utils/dropdown.js.map +1 -0
- package/alert/index.js +3 -2
- package/alert/index.js.map +1 -0
- package/arrow-button/index.js +3 -14
- package/arrow-button/index.js.map +1 -0
- package/autocomplete/autocomplete.js +28 -36
- package/autocomplete/autocomplete.js.map +1 -0
- package/autocomplete/index.js +1 -0
- package/autocomplete/index.js.map +1 -0
- package/autocomplete/types.js +1 -0
- package/autocomplete/types.js.map +1 -0
- package/autocomplete-deprecated/index.js +5 -16
- package/autocomplete-deprecated/index.js.map +1 -0
- package/avatar/avatar.d.ts +8 -0
- package/avatar/avatar.js +26 -0
- package/avatar/avatar.js.map +1 -0
- package/avatar/avatar.module.scss +13 -36
- package/avatar/index.d.ts +3 -30
- package/avatar/index.js +9 -37
- package/avatar/index.js.map +1 -0
- package/avatar/types.d.ts +18 -0
- package/avatar/types.js +3 -0
- package/avatar/types.js.map +1 -0
- package/avatar/utils.d.ts +28 -4
- package/avatar/utils.js +77 -13
- package/avatar/utils.js.map +1 -0
- package/avatar/utils.module.scss +9 -0
- package/base-input/base-input.js +9 -20
- package/base-input/base-input.js.map +1 -0
- package/base-input/index.js +1 -0
- package/base-input/index.js.map +1 -0
- package/base-input/types.js +1 -0
- package/base-input/types.js.map +1 -0
- package/base-input/utils.js +2 -1
- package/base-input/utils.js.map +1 -0
- package/base-input-deprecated/index.js +5 -16
- package/base-input-deprecated/index.js.map +1 -0
- package/bordered-layout/index.js +2 -1
- package/bordered-layout/index.js.map +1 -0
- package/bottom-bar/bottom-bar.js +3 -14
- package/bottom-bar/bottom-bar.js.map +1 -0
- package/bottom-bar/index.js +1 -0
- package/bottom-bar/index.js.map +1 -0
- package/bottom-bar/types.js +1 -0
- package/bottom-bar/types.js.map +1 -0
- package/box/index.js +1 -0
- package/box/index.js.map +1 -0
- package/button/button-util.scss +46 -0
- package/button/button.module.scss +17 -26
- package/button/index.d.ts +12 -2
- package/button/index.js +6 -17
- package/button/index.js.map +1 -0
- package/card/index.js +3 -14
- package/card/index.js.map +1 -0
- package/card/slots.js +7 -19
- package/card/slots.js.map +1 -0
- package/card/utils.js +1 -0
- package/card/utils.js.map +1 -0
- package/carousel/draggable.js +4 -3
- package/carousel/draggable.js.map +1 -0
- package/carousel/helpers/draggable-event.js +1 -0
- package/carousel/helpers/draggable-event.js.map +1 -0
- package/carousel/index.js +9 -4
- package/carousel/index.js.map +1 -0
- package/checkbox/index.js +4 -17
- package/checkbox/index.js.map +1 -0
- package/checkbox-field/index.d.ts +1 -0
- package/checkbox-field/index.js +6 -17
- package/checkbox-field/index.js.map +1 -0
- package/chips/index.js +2 -15
- package/chips/index.js.map +1 -0
- package/chips/item.js +2 -1
- package/chips/item.js.map +1 -0
- package/clean-buttons/index.d.ts +1 -0
- package/clean-buttons/index.js +5 -16
- package/clean-buttons/index.js.map +1 -0
- package/clean-buttons/types.js +1 -0
- package/clean-buttons/types.js.map +1 -0
- package/clean-buttons/utils.js +1 -0
- package/clean-buttons/utils.js.map +1 -0
- package/colors/index.d.ts +6 -4
- package/colors/index.js +7 -3
- package/colors/index.js.map +1 -0
- package/colors.scss +2 -0
- package/context/viewport.js +1 -0
- package/context/viewport.js.map +1 -0
- package/dot-nav/index.js +3 -2
- package/dot-nav/index.js.map +1 -0
- package/dropdown/index.js +3 -14
- package/dropdown/index.js.map +1 -0
- package/dropdown/utils.js +1 -0
- package/dropdown/utils.js.map +1 -0
- package/dropdown-item/index.js +3 -14
- package/dropdown-item/index.js.map +1 -0
- package/dropdown-item/types.js +1 -0
- package/dropdown-item/types.js.map +1 -0
- package/dropdown-item/utils.js +1 -0
- package/dropdown-item/utils.js.map +1 -0
- package/expandable/expandable-group.module.scss +1 -5
- package/expandable/index.d.ts +4 -34
- package/expandable/index.js +78 -24
- package/expandable/index.js.map +1 -0
- package/expandable/types.d.ts +39 -0
- package/expandable/types.js +3 -0
- package/expandable/types.js.map +1 -0
- package/expandable/utils.d.ts +22 -23
- package/expandable/utils.js +66 -80
- package/expandable/utils.js.map +1 -0
- package/field-block/index.js +2 -1
- package/field-block/index.js.map +1 -0
- package/field-grid/index.d.ts +6 -0
- package/field-grid/index.js +10 -4
- package/field-grid/index.js.map +1 -0
- package/file-icon/index.js +3 -14
- package/file-icon/index.js.map +1 -0
- package/group-overflow/index.js +6 -17
- package/group-overflow/index.js.map +1 -0
- package/group-overflow/utils.js +1 -0
- package/group-overflow/utils.js.map +1 -0
- package/helpers/bounds-of.js +1 -0
- package/helpers/bounds-of.js.map +1 -0
- package/helpers/center-of.js +1 -0
- package/helpers/center-of.js.map +1 -0
- package/helpers/create-container.js +1 -0
- package/helpers/create-container.js.map +1 -0
- package/helpers/define-slots.js +1 -0
- package/helpers/define-slots.js.map +1 -0
- package/helpers/events.js +1 -0
- package/helpers/events.js.map +1 -0
- package/helpers/find-child-element.js +1 -0
- package/helpers/find-child-element.js.map +1 -0
- package/helpers/find-offset-parent.js +1 -0
- package/helpers/find-offset-parent.js.map +1 -0
- package/helpers/find-sibling-index.js +1 -0
- package/helpers/find-sibling-index.js.map +1 -0
- package/helpers/fit-element-height.js +1 -0
- package/helpers/fit-element-height.js.map +1 -0
- package/helpers/format-date.js +1 -0
- package/helpers/format-date.js.map +1 -0
- package/helpers/format-number.js +1 -0
- package/helpers/format-number.js.map +1 -0
- package/helpers/get-date-interval-data.js +1 -0
- package/helpers/get-date-interval-data.js.map +1 -0
- package/helpers/get-declination.js +1 -0
- package/helpers/get-declination.js.map +1 -0
- package/helpers/get-fraction-depth.js +1 -0
- package/helpers/get-fraction-depth.js.map +1 -0
- package/helpers/get-no-index.js +1 -0
- package/helpers/get-no-index.js.map +1 -0
- package/helpers/get-relative-pos.js +1 -0
- package/helpers/get-relative-pos.js.map +1 -0
- package/helpers/get-scroll-parent.js +1 -0
- package/helpers/get-scroll-parent.js.map +1 -0
- package/helpers/is-browser.js +1 -0
- package/helpers/is-browser.js.map +1 -0
- package/helpers/is-fully-scrolled.js +1 -0
- package/helpers/is-fully-scrolled.js.map +1 -0
- package/helpers/is-touch-device.js +1 -0
- package/helpers/is-touch-device.js.map +1 -0
- package/helpers/layer.js +1 -0
- package/helpers/layer.js.map +1 -0
- package/helpers/max-index-of.js +1 -0
- package/helpers/max-index-of.js.map +1 -0
- package/helpers/media-query-list.js +1 -0
- package/helpers/media-query-list.js.map +1 -0
- package/helpers/on.js +1 -0
- package/helpers/on.js.map +1 -0
- package/helpers/point.js +1 -0
- package/helpers/point.js.map +1 -0
- package/helpers/rename.js +1 -0
- package/helpers/rename.js.map +1 -0
- package/helpers/scroll-to-child.js +1 -0
- package/helpers/scroll-to-child.js.map +1 -0
- package/helpers/styles.js +1 -0
- package/helpers/styles.js.map +1 -0
- package/helpers/with-prevent.js +1 -0
- package/helpers/with-prevent.js.map +1 -0
- package/hint/hint-view.js +5 -17
- package/hint/hint-view.js.map +1 -0
- package/hint/hint.js +5 -17
- package/hint/hint.js.map +1 -0
- package/hint/index.js +1 -0
- package/hint/index.js.map +1 -0
- package/hint/utils.js +23 -4
- package/hint/utils.js.map +1 -0
- package/hint-deprecated/index.js +2 -15
- package/hint-deprecated/index.js.map +1 -0
- package/hooks/breakpoint/index.js +2 -1
- package/hooks/breakpoint/index.js.map +1 -0
- package/hooks/breakpoint/types.js +1 -0
- package/hooks/breakpoint/types.js.map +1 -0
- package/hooks/breakpoint/utils.js +1 -0
- package/hooks/breakpoint/utils.js.map +1 -0
- package/hooks/identity.js +1 -0
- package/hooks/identity.js.map +1 -0
- package/hooks/index.js +1 -0
- package/hooks/index.js.map +1 -0
- package/hooks/intersection/index.js +1 -0
- package/hooks/intersection/index.js.map +1 -0
- package/hooks/intersection/test-utils.js +6 -2
- package/hooks/intersection/test-utils.js.map +1 -0
- package/hooks/keydown.js +1 -0
- package/hooks/keydown.js.map +1 -0
- package/hooks/media.js +1 -0
- package/hooks/media.js.map +1 -0
- package/hooks/styles.js +1 -0
- package/hooks/styles.js.map +1 -0
- package/info-text/index.js +4 -3
- package/info-text/index.js.map +1 -0
- package/input/index.js +29 -31
- package/input/index.js.map +1 -0
- package/input/utils.js +1 -0
- package/input/utils.js.map +1 -0
- package/layout/index.js +1 -0
- package/layout/index.js.map +1 -0
- package/layout/layout.js +3 -14
- package/layout/layout.js.map +1 -0
- package/layout/legacy.js +2 -15
- package/layout/legacy.js.map +1 -0
- package/layout/types.js +1 -0
- package/layout/types.js.map +1 -0
- package/link/index.js +3 -14
- package/link/index.js.map +1 -0
- package/loading-overlay/index.js +2 -1
- package/loading-overlay/index.js.map +1 -0
- package/masked-field/index.js +9 -16
- package/masked-field/index.js.map +1 -0
- package/masked-input/hook.js +1 -0
- package/masked-input/hook.js.map +1 -0
- package/masked-input/index.js +1 -0
- package/masked-input/index.js.map +1 -0
- package/masked-input/masked-input.js +9 -17
- package/masked-input/masked-input.js.map +1 -0
- package/masked-input/types.js +1 -0
- package/masked-input/types.js.map +1 -0
- package/masked-input/utils.js +1 -0
- package/masked-input/utils.js.map +1 -0
- package/modal/index.js +3 -2
- package/modal/index.js.map +1 -0
- package/modal/slots.js +7 -19
- package/modal/slots.js.map +1 -0
- package/modal/utils.js +1 -0
- package/modal/utils.js.map +1 -0
- package/modal-overlay/index.js +6 -14
- package/modal-overlay/index.js.map +1 -0
- package/modal-overlay/utils.js +1 -0
- package/modal-overlay/utils.js.map +1 -0
- package/no-index/index.js +1 -0
- package/no-index/index.js.map +1 -0
- package/no-index-mark/index.js +1 -0
- package/no-index-mark/index.js.map +1 -0
- package/package.json +2 -4
- package/pagination/index.d.ts +1 -1
- package/pagination/index.js +3 -1
- package/pagination/index.js.map +1 -0
- package/pagination/pagination-item.js +3 -14
- package/pagination/pagination-item.js.map +1 -0
- package/pagination/pagination.d.ts +1 -1
- package/pagination/pagination.js +40 -20
- package/pagination/pagination.js.map +1 -0
- package/pagination/pagination.module.scss +5 -4
- package/pagination/types.js +1 -0
- package/pagination/types.js.map +1 -0
- package/pagination/utils.d.ts +12 -0
- package/pagination/utils.js +16 -1
- package/pagination/utils.js.map +1 -0
- package/pagination-deprecated/base-pagination.js +4 -17
- package/pagination-deprecated/base-pagination.js.map +1 -0
- package/pagination-deprecated/index.js +1 -0
- package/pagination-deprecated/index.js.map +1 -0
- package/pagination-deprecated/page-button.js +2 -15
- package/pagination-deprecated/page-button.js.map +1 -0
- package/pagination-deprecated/utils.js +1 -0
- package/pagination-deprecated/utils.js.map +1 -0
- package/panel/index.js +2 -1
- package/panel/index.js.map +1 -0
- package/phone-input/index.js +1 -0
- package/phone-input/index.js.map +1 -0
- package/phone-input/phone-input.js +19 -24
- package/phone-input/phone-input.js.map +1 -0
- package/phone-input/presets.js +2 -1
- package/phone-input/presets.js.map +1 -0
- package/phone-input/types.js +1 -0
- package/phone-input/types.js.map +1 -0
- package/phone-input/utils.js +1 -0
- package/phone-input/utils.js.map +1 -0
- package/phone-input-deprecated/index.js +20 -22
- package/phone-input-deprecated/index.js.map +1 -0
- package/plate/index.js +3 -14
- package/plate/index.js.map +1 -0
- package/popup/index.js +1 -0
- package/popup/index.js.map +1 -0
- package/popup/popup-view.js +3 -14
- package/popup/popup-view.js.map +1 -0
- package/popup/popup.js +9 -18
- package/popup/popup.js.map +1 -0
- package/popup/utils.js +1 -0
- package/popup/utils.js.map +1 -0
- package/portal/index.js +1 -0
- package/portal/index.js.map +1 -0
- package/price/index.js +2 -1
- package/price/index.js.map +1 -0
- package/price/utils.js +1 -0
- package/price/utils.js.map +1 -0
- package/radio-button/index.js +3 -14
- package/radio-button/index.js.map +1 -0
- package/range/index.js +3 -2
- package/range/index.js.map +1 -0
- package/rating/index.js +3 -16
- package/rating/index.js.map +1 -0
- package/rating/types.js +1 -0
- package/rating/types.js.map +1 -0
- package/rating/utils.js +1 -0
- package/rating/utils.js.map +1 -0
- package/screen/index.js +4 -3
- package/screen/index.js.map +1 -0
- package/screen/slots.js +26 -35
- package/screen/slots.js.map +1 -0
- package/screen/utils.js +1 -0
- package/screen/utils.js.map +1 -0
- package/select/index.js +1 -0
- package/select/index.js.map +1 -0
- package/select/parts/block.js +15 -5
- package/select/parts/block.js.map +1 -0
- package/select/parts/button.js +4 -15
- package/select/parts/button.js.map +1 -0
- package/select/parts/menu.js +3 -14
- package/select/parts/menu.js.map +1 -0
- package/select/select.js +25 -20
- package/select/select.js.map +1 -0
- package/select/types.js +1 -0
- package/select/types.js.map +1 -0
- package/select/utils.js +1 -0
- package/select/utils.js.map +1 -0
- package/select-deprecated/index.js +6 -17
- package/select-deprecated/index.js.map +1 -0
- package/side-page/index.js +10 -17
- package/side-page/index.js.map +1 -0
- package/side-page/slots.js +5 -17
- package/side-page/slots.js.map +1 -0
- package/spinner/index.js +3 -2
- package/spinner/index.js.map +1 -0
- package/stepper/index.js +5 -16
- package/stepper/index.js.map +1 -0
- package/stroked-svg/index.js +2 -15
- package/stroked-svg/index.js.map +1 -0
- package/styling/borders.js +1 -0
- package/styling/borders.js.map +1 -0
- package/styling/colors.d.ts +5 -5
- package/styling/colors.js +1 -0
- package/styling/colors.js.map +1 -0
- package/styling/fonts.js +1 -0
- package/styling/fonts.js.map +1 -0
- package/styling/shadows.js +1 -0
- package/styling/shadows.js.map +1 -0
- package/styling/shapes.js +1 -0
- package/styling/shapes.js.map +1 -0
- package/styling/sizes.js +1 -0
- package/styling/sizes.js.map +1 -0
- package/styling/utils.js +1 -0
- package/styling/utils.js.map +1 -0
- package/super-ellipse-clip-path/index.js +2 -1
- package/super-ellipse-clip-path/index.js.map +1 -0
- package/switcher-row/index.js +3 -2
- package/switcher-row/index.js.map +1 -0
- package/tabs/index.js +3 -2
- package/tabs/index.js.map +1 -0
- package/text/index.js +1 -0
- package/text/index.js.map +1 -0
- package/text-button/index.js +4 -15
- package/text-button/index.js.map +1 -0
- package/text-field/index.js +4 -3
- package/text-field/index.js.map +1 -0
- package/textarea/index.js +22 -24
- package/textarea/index.js.map +1 -0
- package/timer/index.js +1 -0
- package/timer/index.js.map +1 -0
- package/timer/types.js +1 -0
- package/timer/types.js.map +1 -0
- package/timer/utils.js +1 -0
- package/timer/utils.js.map +1 -0
- package/toggle/index.js +4 -17
- package/toggle/index.js.map +1 -0
- package/tooltip/index.js +2 -1
- package/tooltip/index.js.map +1 -0
- package/top-bar/index.js +1 -0
- package/top-bar/index.js.map +1 -0
- package/top-bar/top-bar.js +9 -16
- package/top-bar/top-bar.js.map +1 -0
- package/top-bar/types.js +1 -0
- package/top-bar/types.js.map +1 -0
- package/top-bar/utils.js +18 -13
- package/top-bar/utils.js.map +1 -0
- package/touch-slider/index.js +2 -1
- package/touch-slider/index.js.map +1 -0
- package/types.js +1 -0
- package/types.js.map +1 -0
- package/unknown-content/index.js +2 -1
- package/unknown-content/index.js.map +1 -0
- package/unknown-content/utils.js +1 -0
- package/unknown-content/utils.js.map +1 -0
- package/upload-area/index.js +1 -0
- package/upload-area/index.js.map +1 -0
- package/upload-area/types.js +1 -0
- package/upload-area/types.js.map +1 -0
- package/upload-area/upload-area.js +4 -3
- package/upload-area/upload-area.js.map +1 -0
- package/upload-area/utils.js +1 -0
- package/upload-area/utils.js.map +1 -0
- package/with-hint/index.js +1 -0
- package/with-hint/index.js.map +1 -0
- package/with-hint/positioning-hint.js +1 -0
- package/with-hint/positioning-hint.js.map +1 -0
- package/with-hint/utils.js +1 -0
- package/with-hint/utils.js.map +1 -0
- package/with-tooltip/index.js +3 -2
- package/with-tooltip/index.js.map +1 -0
- package/with-tooltip/positioning-tooltip.js +3 -2
- package/with-tooltip/positioning-tooltip.js.map +1 -0
- package/with-tooltip/utils.js +1 -0
- package/with-tooltip/utils.js.map +1 -0
- package/avatar/user.d.ts +0 -10
- package/avatar/user.js +0 -40
- package/readme.md +0 -120
package/colors/index.js
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
// GENERATED FILE - DO NOT CHANGE IT MANUALLY
|
|
3
3
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
-
exports.COLORS = void 0;
|
|
5
|
-
|
|
4
|
+
exports.COLORS = exports.COLOR = void 0;
|
|
5
|
+
/** Цвета дизайн-системы. */
|
|
6
|
+
exports.COLOR = {
|
|
6
7
|
// basic
|
|
7
8
|
'basic-blue': '#1f84db',
|
|
8
9
|
'basic-gray87': '#212121',
|
|
@@ -20,6 +21,7 @@ const collection = {
|
|
|
20
21
|
'additional-deep-red': '#d50000',
|
|
21
22
|
'additional-red': '#fb3a2f',
|
|
22
23
|
'additional-light-red': '#feebea',
|
|
24
|
+
'additional-dark-teal': '#089176',
|
|
23
25
|
'additional-teal': '#09ab8b',
|
|
24
26
|
'additional-green': '#00c853',
|
|
25
27
|
'additional-light-green': '#64dd17',
|
|
@@ -41,5 +43,7 @@ const collection = {
|
|
|
41
43
|
'additional-blue-gray': '#607d8b',
|
|
42
44
|
'additional-deep-blue': '#00599d',
|
|
43
45
|
'additional-dark-blue': '#002b41',
|
|
46
|
+
'additional-unlit-blue': '#1b75c2',
|
|
44
47
|
};
|
|
45
|
-
exports.COLORS = new Map(Object.entries(
|
|
48
|
+
exports.COLORS = new Map(Object.entries(exports.COLOR));
|
|
49
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/colors/index.ts"],"names":[],"mappings":";AAAA,6CAA6C;;;AAE7C,4BAA4B;AACf,QAAA,KAAK,GAAG;IACnB,QAAQ;IACR,YAAY,EAAE,SAAS;IACvB,cAAc,EAAE,SAAS;IACzB,cAAc,EAAE,SAAS;IACzB,cAAc,EAAE,SAAS;IACzB,cAAc,EAAE,SAAS;IACzB,cAAc,EAAE,SAAS;IACzB,cAAc,EAAE,SAAS;IACzB,cAAc,EAAE,SAAS;IACzB,aAAa,EAAE,SAAS;IACxB,aAAa,EAAE,SAAS;IACxB,aAAa,EAAE,SAAS;IACxB,aAAa,EAAE,MAAM;IAErB,aAAa;IACb,qBAAqB,EAAE,SAAS;IAChC,gBAAgB,EAAE,SAAS;IAC3B,sBAAsB,EAAE,SAAS;IACjC,sBAAsB,EAAE,SAAS;IACjC,iBAAiB,EAAE,SAAS;IAC5B,kBAAkB,EAAE,SAAS;IAC7B,wBAAwB,EAAE,SAAS;IACnC,iBAAiB,EAAE,SAAS;IAC5B,wBAAwB,EAAE,SAAS;IACnC,iBAAiB,EAAE,SAAS;IAC5B,mBAAmB,EAAE,SAAS;IAC9B,mBAAmB,EAAE,SAAS;IAC9B,wBAAwB,EAAE,SAAS;IACnC,0BAA0B,EAAE,SAAS;IACrC,uBAAuB,EAAE,SAAS;IAClC,iBAAiB,EAAE,SAAS;IAC5B,gBAAgB,EAAE,SAAS;IAC3B,wBAAwB,EAAE,SAAS;IACnC,kBAAkB,EAAE,SAAS;IAC7B,mBAAmB,EAAE,SAAS;IAC9B,iBAAiB,EAAE,SAAS;IAC5B,kBAAkB,EAAE,SAAS;IAC7B,sBAAsB,EAAE,SAAS;IACjC,sBAAsB,EAAE,SAAS;IACjC,sBAAsB,EAAE,SAAS;IACjC,uBAAuB,EAAE,SAAS;CAC1B,CAAC;AAGE,QAAA,MAAM,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,aAAK,CAAC,CAAuB,CAAC"}
|
package/colors.scss
CHANGED
|
@@ -18,6 +18,7 @@ $basic-white: #fff;
|
|
|
18
18
|
$additional-deep-red: #d50000;
|
|
19
19
|
$additional-red: #fb3a2f;
|
|
20
20
|
$additional-light-red: #feebea;
|
|
21
|
+
$additional-dark-teal: #089176;
|
|
21
22
|
$additional-teal: #09ab8b;
|
|
22
23
|
$additional-green: #00c853;
|
|
23
24
|
$additional-light-green: #64dd17;
|
|
@@ -39,3 +40,4 @@ $additional-brown: #795548;
|
|
|
39
40
|
$additional-blue-gray: #607d8b;
|
|
40
41
|
$additional-deep-blue: #00599d;
|
|
41
42
|
$additional-dark-blue: #002b41;
|
|
43
|
+
$additional-unlit-blue: #1b75c2;
|
package/context/viewport.js
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"viewport.js","sourceRoot":"","sources":["../../src/context/viewport.ts"],"names":[],"mappings":";;;AAAA,iCAA4D;AAE5D;;;GAGG;AACU,QAAA,eAAe,GAAG,IAAA,qBAAa,EAAyB,IAAA,iBAAS,GAAE,CAAC,CAAC"}
|
package/dot-nav/index.js
CHANGED
|
@@ -23,12 +23,12 @@ function DotNav({ size = 's', current = 0, total = 1, onSelect }) {
|
|
|
23
23
|
const totalWidth = itemSize * total + itemGutter * (total - 1);
|
|
24
24
|
const shift = useShift(current, total);
|
|
25
25
|
const correction = withShift ? itemSize + itemGutter : (maxWidth - totalWidth) / 2;
|
|
26
|
-
return ((0, jsx_runtime_1.jsx)("div",
|
|
26
|
+
return ((0, jsx_runtime_1.jsx)("div", { className: cx('root', `size-${size}`), style: { width: maxWidth, height: itemSize }, children: (0, lodash_1.times)(total).map(index => {
|
|
27
27
|
const position = index - shift + 1;
|
|
28
28
|
return ((0, jsx_runtime_1.jsx)("div", { style: {
|
|
29
29
|
left: `${correction + (index - shift) * (itemSize + itemGutter)}px`,
|
|
30
30
|
}, onClick: () => onSelect === null || onSelect === void 0 ? void 0 : onSelect(index), className: cx('item', index === current && 'active', withShift && (position <= 0 || position >= 4) && 'distant') }, index));
|
|
31
|
-
}) }))
|
|
31
|
+
}) }));
|
|
32
32
|
}
|
|
33
33
|
exports.DotNav = DotNav;
|
|
34
34
|
/**
|
|
@@ -58,3 +58,4 @@ function useShift(current, total) {
|
|
|
58
58
|
prevCurrentRef.current = current;
|
|
59
59
|
return shiftRef.current;
|
|
60
60
|
}
|
|
61
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/dot-nav/index.tsx"],"names":[],"mappings":"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"}
|
package/dropdown/index.js
CHANGED
|
@@ -1,15 +1,4 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __rest = (this && this.__rest) || function (s, e) {
|
|
3
|
-
var t = {};
|
|
4
|
-
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
|
5
|
-
t[p] = s[p];
|
|
6
|
-
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
|
7
|
-
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
8
|
-
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
|
9
|
-
t[p[i]] = s[p[i]];
|
|
10
|
-
}
|
|
11
|
-
return t;
|
|
12
|
-
};
|
|
13
2
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
14
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
15
4
|
};
|
|
@@ -26,7 +15,7 @@ const cx = bind_1.default.bind(dropdown_module_scss_1.default);
|
|
|
26
15
|
/**
|
|
27
16
|
* Компонент выпадающего блока с контентом, например списком.
|
|
28
17
|
*/
|
|
29
|
-
exports.Dropdown = (0, react_1.forwardRef)(function Dropdown(
|
|
30
|
-
|
|
31
|
-
return ((0, jsx_runtime_1.jsx)("div", Object.assign({ ref: ref, className: cx('root', className, shadows_1.BoxShadow.z4, shapes_1.MediumRounds.all) }, restProps, { "data-testid": testId }, { children: (0, jsx_runtime_1.jsx)(custom_scrollbar_1.CustomScrollbar, Object.assign({}, customScrollbarProps, { className: cx('inner'), overflow: { x: 'h', y: 's' } }, { children: children })) })));
|
|
18
|
+
exports.Dropdown = (0, react_1.forwardRef)(function Dropdown({ className, children, 'data-testid': testId = 'dropdown', customScrollbarProps, ...restProps }, ref) {
|
|
19
|
+
return ((0, jsx_runtime_1.jsx)("div", { ref: ref, className: cx('root', className, shadows_1.BoxShadow.z4, shapes_1.MediumRounds.all), ...restProps, "data-testid": testId, children: (0, jsx_runtime_1.jsx)(custom_scrollbar_1.CustomScrollbar, { ...customScrollbarProps, className: cx('inner'), overflow: { x: 'h', y: 's' }, children: children }) }));
|
|
32
20
|
});
|
|
21
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/dropdown/index.tsx"],"names":[],"mappings":";;;;;;;AAAA,iCAAmC;AACnC,gDAA+C;AAC/C,8CAAiD;AACjD,oEAAsF;AACtF,2DAAyC;AACzC,kFAA4C;AAiB5C,MAAM,EAAE,GAAG,cAAU,CAAC,IAAI,CAAC,8BAAM,CAAC,CAAC;AAEnC;;GAEG;AACU,QAAA,QAAQ,GAAG,IAAA,kBAAU,EAAuC,SAAS,QAAQ,CACxF,EAAE,SAAS,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,GAAG,UAAU,EAAE,oBAAoB,EAAE,GAAG,SAAS,EAAE,EAC/F,GAAG;IAEH,OAAO,CACL,gCACE,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,EAAE,CAAC,MAAM,EAAE,SAAS,EAAE,mBAAS,CAAC,EAAE,EAAE,qBAAY,CAAC,GAAG,CAAC,KAC5D,SAAS,iBACA,MAAM,YAEnB,uBAAC,kCAAe,OACV,oBAAoB,EACxB,SAAS,EAAE,EAAE,CAAC,OAAO,CAAC,EACtB,QAAQ,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,YAE3B,QAAQ,GACO,GACd,CACP,CAAC;AACJ,CAAC,CAAC,CAAC"}
|
package/dropdown/utils.js
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/dropdown/utils.ts"],"names":[],"mappings":";;;AAAA,8CAAkG;AAClG,4CAA4C;AAE5C;;;GAGG;AACH,SAAgB,sBAAsB;IACpC,OAAO;QACL,oBAAoB,EAAE,kBAAU;QAChC,SAAS,EAAE,cAAc;QACzB,UAAU,EAAE;YACV,wEAAwE;YACxE,iFAAiF;YACjF,IAAA,YAAI,EAAC;gBACH,OAAO,EAAE,EAAE;aACZ,CAAC;YACF,IAAA,aAAK,EAAC;gBACJ,OAAO,EAAE,EAAE;aACZ,CAAC;SACH;KACF,CAAC;AACJ,CAAC;AAfD,wDAeC;AAED;;;;GAIG;AACH,SAAgB,wBAAwB,CAAC,EACvC,QAAQ,EACR,CAAC,EACD,CAAC,EACD,IAAI,GACqD;IACzD,MAAM,KAAK,GAAG,IAAA,gBAAQ,GAAE,CAAC;IAEzB,MAAM,WAAW,GAAuB,IAAI,CAAC,SAAS,CAAC,OAAO;QAC5D,CAAC,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,qBAAqB,EAAE,CAAC,KAAK,IAAI;QAC7D,CAAC,CAAC,SAAS,CAAC;IAEd,OAAO;QACL,QAAQ,EAAE,QAAQ;QAClB,GAAG,EAAE,CAAC,aAAD,CAAC,cAAD,CAAC,GAAI,CAAC;QACX,IAAI,EAAE,CAAC,aAAD,CAAC,cAAD,CAAC,GAAI,CAAC;QACZ,QAAQ,EAAE,WAAW;QACrB,MAAM,EAAE,KAAK,GAAG,CAAC;QAEjB,6BAA6B;QAC7B,gBAAgB,EAAE,WAAW;KAC9B,CAAC;AACJ,CAAC;AAtBD,4DAsBC"}
|
package/dropdown-item/index.js
CHANGED
|
@@ -1,15 +1,4 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __rest = (this && this.__rest) || function (s, e) {
|
|
3
|
-
var t = {};
|
|
4
|
-
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
|
5
|
-
t[p] = s[p];
|
|
6
|
-
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
|
7
|
-
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
8
|
-
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
|
9
|
-
t[p[i]] = s[p[i]];
|
|
10
|
-
}
|
|
11
|
-
return t;
|
|
12
|
-
};
|
|
13
2
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
14
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
15
4
|
};
|
|
@@ -24,11 +13,11 @@ const cx = bind_1.default.bind(dropdown_item_module_scss_1.default);
|
|
|
24
13
|
* @param props Свойства.
|
|
25
14
|
* @return Элемент.
|
|
26
15
|
*/
|
|
27
|
-
function DropdownItem(
|
|
28
|
-
var { size = 'm', children, className, selected, disabled, noHover, checked, startContent, startIcon: StartIcon, endContent, endIcon: EndIcon, comment, dangerouslySetInnerHTML, 'data-testid': testId = 'dropdown-item' } = _a, restProps = __rest(_a, ["size", "children", "className", "selected", "disabled", "noHover", "checked", "startContent", "startIcon", "endContent", "endIcon", "comment", "dangerouslySetInnerHTML", 'data-testid']);
|
|
16
|
+
function DropdownItem({ size = 'm', children, className, selected, disabled, noHover, checked, startContent, startIcon: StartIcon, endContent, endIcon: EndIcon, comment, dangerouslySetInnerHTML, 'data-testid': testId = 'dropdown-item', ...restProps }) {
|
|
29
17
|
const start = StartIcon ? (0, jsx_runtime_1.jsx)(StartIcon, { className: cx('icon') }) : startContent;
|
|
30
18
|
const end = EndIcon ? (0, jsx_runtime_1.jsx)(EndIcon, { className: cx('icon') }) : endContent;
|
|
31
19
|
const hasChildren = [start, children, end].some(item => typeof item !== 'undefined');
|
|
32
|
-
return ((0, jsx_runtime_1.jsx)("div",
|
|
20
|
+
return ((0, jsx_runtime_1.jsx)("div", { ...restProps, className: cx('root', `size-${size}`, selected && 'selected', checked && 'checked', disabled && 'disabled', noHover && 'no-hover', className), dangerouslySetInnerHTML: dangerouslySetInnerHTML, "data-testid": testId, children: hasChildren ? ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [start && (0, jsx_runtime_1.jsx)("div", { className: cx('col', 'col-start'), children: start }), (0, jsx_runtime_1.jsxs)("div", { className: cx('col', 'col-center'), children: [(0, jsx_runtime_1.jsx)("div", { className: cx('row-main'), children: children }), size === 'xl' && comment && (0, jsx_runtime_1.jsx)("div", { className: cx('row-comment'), children: comment })] }), end && (0, jsx_runtime_1.jsx)("div", { className: cx('col', 'col-end'), children: end })] })) : undefined }));
|
|
33
21
|
}
|
|
34
22
|
exports.DropdownItem = DropdownItem;
|
|
23
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/dropdown-item/index.tsx"],"names":[],"mappings":";;;;;;;AACA,2DAAyC;AACzC,4FAAiD;AAEjD,MAAM,EAAE,GAAG,cAAU,CAAC,IAAI,CAAC,mCAAM,CAAC,CAAC;AA0CnC;;;;GAIG;AACH,SAAgB,YAAY,CAAC,EAC3B,IAAI,GAAG,GAAG,EACV,QAAQ,EACR,SAAS,EACT,QAAQ,EACR,QAAQ,EACR,OAAO,EACP,OAAO,EACP,YAAY,EACZ,SAAS,EAAE,SAAS,EACpB,UAAU,EACV,OAAO,EAAE,OAAO,EAChB,OAAO,EACP,uBAAuB,EACvB,aAAa,EAAE,MAAM,GAAG,eAAe,EACvC,GAAG,SAAS,EACM;IAClB,MAAM,KAAK,GAAG,SAAS,CAAC,CAAC,CAAC,uBAAC,SAAS,IAAC,SAAS,EAAE,EAAE,CAAC,MAAM,CAAC,GAAI,CAAC,CAAC,CAAC,YAAY,CAAC;IAC9E,MAAM,GAAG,GAAG,OAAO,CAAC,CAAC,CAAC,uBAAC,OAAO,IAAC,SAAS,EAAE,EAAE,CAAC,MAAM,CAAC,GAAI,CAAC,CAAC,CAAC,UAAU,CAAC;IAEtE,MAAM,WAAW,GAAG,CAAC,KAAK,EAAE,QAAQ,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,IAAI,KAAK,WAAW,CAAC,CAAC;IAErF,OAAO,CACL,mCACM,SAAS,EACb,SAAS,EAAE,EAAE,CACX,MAAM,EACN,QAAQ,IAAI,EAAE,EACd,QAAQ,IAAI,UAAU,EACtB,OAAO,IAAI,SAAS,EACpB,QAAQ,IAAI,UAAU,EACtB,OAAO,IAAI,UAAU,EACrB,SAAS,CACV,EACD,uBAAuB,EAAE,uBAAuB,iBACnC,MAAM,YAMlB,WAAW,CAAC,CAAC,CAAC,CACb,6DACG,KAAK,IAAI,gCAAK,SAAS,EAAE,EAAE,CAAC,KAAK,EAAE,WAAW,CAAC,YAAG,KAAK,GAAO,EAE/D,iCAAK,SAAS,EAAE,EAAE,CAAC,KAAK,EAAE,YAAY,CAAC,aACrC,gCAAK,SAAS,EAAE,EAAE,CAAC,UAAU,CAAC,YAAG,QAAQ,GAAO,EAC/C,IAAI,KAAK,IAAI,IAAI,OAAO,IAAI,gCAAK,SAAS,EAAE,EAAE,CAAC,aAAa,CAAC,YAAG,OAAO,GAAO,IAC3E,EAEL,GAAG,IAAI,gCAAK,SAAS,EAAE,EAAE,CAAC,KAAK,EAAE,SAAS,CAAC,YAAG,GAAG,GAAO,IACxD,CACJ,CAAC,CAAC,CAAC,SAAS,GACT,CACP,CAAC;AACJ,CAAC;AAvDD,oCAuDC"}
|
package/dropdown-item/types.js
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/dropdown-item/types.ts"],"names":[],"mappings":""}
|
package/dropdown-item/utils.js
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/dropdown-item/utils.ts"],"names":[],"mappings":";;;AAAA,iCAAuC;AACvC,wBAAiC;AAGjC,yCAAyC;AACzC,MAAa,iBAAiB;IAC5B;;;;OAIG;IACH,MAAM,CAAC,EAAE,CAAC,KAA2C;QACnD,OAAO,IAAA,sBAAc,EAAC,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,eAAY,CAAC;IAC9D,CAAC;IAED;;;;OAIG;IACH,MAAM,CAAC,QAAQ,CAAC,QAA6B;QAC3C,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,QAAQ,CAAC,KAAK,CAAC;QAE3C,4FAA4F;QAC5F,OAAO,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IAC9D,CAAC;IAED;;;;;OAKG;IACH,MAAM,CAAC,gBAAgB,CACrB,SAAgC,EAChC,YAAoB;QAEpB,IAAI,eAAe,GAAG,CAAC,CAAC,CAAC;QAEzB,MAAM,gBAAgB,GAAkB,SAAS,CAAC,MAAM,CAAW,CAAC,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE;YACtF,IAAI,KAAK,KAAK,YAAY,EAAE;gBAC1B,eAAe,GAAG,GAAG,CAAC,MAAM,CAAC;aAC9B;YAED,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE;gBACxB,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;aACjB;YAED,OAAO,GAAG,CAAC;QACb,CAAC,EAAE,EAAE,CAAC,CAAC;QAEP,OAAO,IAAI,cAAc,CAAS,gBAAgB,EAAE,eAAe,CAAC,CAAC;IACvE,CAAC;CACF;AAhDD,8CAgDC;AAED,0EAA0E;AAC1E,MAAa,cAAc;IAIzB;;;;OAIG;IACH,YAAY,MAAW,EAAE,aAAa,GAAG,CAAC;QACxC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,QAAQ,GAAG,aAAa,CAAC;IAChC,CAAC;IAED;;;OAGG;IACH,IAAI;QACF,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE;YAC5B,OAAO,SAAS,CAAC;SAClB;QAED,IAAI,SAAS,GAAG,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC;QAElC,IAAI,SAAS,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE;YACnC,SAAS,GAAG,CAAC,CAAC;SACf;QAED,IAAI,CAAC,QAAQ,GAAG,SAAS,CAAC;QAE1B,OAAO,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IAChC,CAAC;IAED;;;OAGG;IACH,IAAI;QACF,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE;YAC5B,OAAO,SAAS,CAAC;SAClB;QAED,IAAI,SAAS,GAAG,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC;QAElC,IAAI,SAAS,GAAG,CAAC,EAAE;YACjB,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;SACpC;QAED,IAAI,CAAC,QAAQ,GAAG,SAAS,CAAC;QAE1B,OAAO,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IAChC,CAAC;CACF;AArDD,wCAqDC"}
|
|
@@ -12,16 +12,12 @@
|
|
|
12
12
|
.item {
|
|
13
13
|
display: block;
|
|
14
14
|
padding: 0;
|
|
15
|
-
max-width: 100
|
|
15
|
+
max-width: calc(100% - var(--expandable-gap, 0));
|
|
16
16
|
height: var(--expandable-item-height);
|
|
17
17
|
margin: 0 (var(--expandable-gap)) var(--expandable-gap) 0;
|
|
18
18
|
&.hidden {
|
|
19
19
|
display: none;
|
|
20
20
|
}
|
|
21
|
-
&.invisible {
|
|
22
|
-
opacity: 0;
|
|
23
|
-
pointer-events: none;
|
|
24
|
-
}
|
|
25
21
|
&.opener {
|
|
26
22
|
width: var(--expandable-opener-width);
|
|
27
23
|
}
|
package/expandable/index.d.ts
CHANGED
|
@@ -1,42 +1,12 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
/** Расстояние между элементами группы в пикселях. */
|
|
4
|
-
gap?: number;
|
|
5
|
-
/** Высота каждого элемента группы в пикселях. */
|
|
6
|
-
itemHeight?: number;
|
|
7
|
-
/** Развернут ли список по умолчанию. */
|
|
8
|
-
defaultExpanded?: boolean;
|
|
9
|
-
/** Количество строк в свернутом состоянии группы. */
|
|
10
|
-
lineLimit?: number;
|
|
11
|
-
/** Содержимое. */
|
|
12
|
-
children?: ReactNode;
|
|
13
|
-
/** Функция, возвращающая содержимое кнопки разворачивания списка. */
|
|
14
|
-
opener?: (data: {
|
|
15
|
-
hiddenCount: number;
|
|
16
|
-
}) => ReactNode;
|
|
17
|
-
/** Сработает при разворачивании списка. */
|
|
18
|
-
onExpand?: () => void;
|
|
19
|
-
/** CSS-класс корневого элемента. */
|
|
20
|
-
className?: string;
|
|
21
|
-
/** Стили корневого элемента. */
|
|
22
|
-
style?: CSSProperties;
|
|
23
|
-
/** Нужно ли выводить список развернутым. */
|
|
24
|
-
expanded?: boolean;
|
|
25
|
-
/** Ширина открывающего элемента. */
|
|
26
|
-
openerWidth?: number;
|
|
27
|
-
}
|
|
28
|
-
export interface GroupItemProps {
|
|
29
|
-
children?: ReactNode;
|
|
30
|
-
onClick?: MouseEventHandler;
|
|
31
|
-
'data-testid'?: string;
|
|
32
|
-
}
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
import { ExpandableGroupProps, ExpandableGroupItemProps } from './types';
|
|
33
3
|
/**
|
|
34
4
|
* Группа элементов с ограничением на число выводимых строк и возможностью показать все.
|
|
35
5
|
* @param props Свойства.
|
|
36
6
|
* @return Элемент.
|
|
37
7
|
*/
|
|
38
|
-
export declare function ExpandableGroup(
|
|
8
|
+
export declare function ExpandableGroup(props: ExpandableGroupProps): JSX.Element;
|
|
39
9
|
export declare const Expandable: {
|
|
40
10
|
readonly Group: typeof ExpandableGroup;
|
|
41
|
-
readonly Item: import("react").ForwardRefExoticComponent<
|
|
11
|
+
readonly Item: import("react").ForwardRefExoticComponent<ExpandableGroupItemProps & import("react").RefAttributes<HTMLLIElement>>;
|
|
42
12
|
};
|
package/expandable/index.js
CHANGED
|
@@ -6,52 +6,106 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
6
6
|
exports.Expandable = exports.ExpandableGroup = void 0;
|
|
7
7
|
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
8
8
|
const react_1 = require("react");
|
|
9
|
+
const hooks_1 = require("../hooks");
|
|
9
10
|
const utils_1 = require("./utils");
|
|
10
11
|
const bind_1 = __importDefault(require("classnames/bind"));
|
|
11
12
|
const expandable_group_module_scss_1 = __importDefault(require("./expandable-group.module.scss"));
|
|
12
13
|
const cx = bind_1.default.bind(expandable_group_module_scss_1.default);
|
|
13
14
|
const ItemContext = (0, react_1.createContext)({});
|
|
15
|
+
const initialState = {
|
|
16
|
+
status: 'initial',
|
|
17
|
+
lastVisibleIndex: -1,
|
|
18
|
+
};
|
|
19
|
+
const expandedState = {
|
|
20
|
+
status: 'expanded',
|
|
21
|
+
lastVisibleIndex: -1,
|
|
22
|
+
};
|
|
14
23
|
/**
|
|
15
24
|
* Группа элементов с ограничением на число выводимых строк и возможностью показать все.
|
|
16
25
|
* @param props Свойства.
|
|
17
26
|
* @return Элемент.
|
|
18
27
|
*/
|
|
19
|
-
function ExpandableGroup(
|
|
20
|
-
const
|
|
21
|
-
|
|
28
|
+
function ExpandableGroup(props) {
|
|
29
|
+
const time = (0, react_1.useRef)(1);
|
|
30
|
+
// @todo зациклить если каким-то невероятным образом уйдет за границу number
|
|
31
|
+
time.current = time.current + 1;
|
|
32
|
+
// ВАЖНО: рендер вызванный родительским компонентом должен приводить к пересчету, поэтому передаем уникальный time
|
|
33
|
+
return (0, jsx_runtime_1.jsx)(ExpandableGroupInner, { ...props, time: time.current });
|
|
34
|
+
}
|
|
35
|
+
exports.ExpandableGroup = ExpandableGroup;
|
|
36
|
+
/**
|
|
37
|
+
* Внутренний компонент, необходимый для корректной обработки повторных render'ов.
|
|
38
|
+
* @param props Свойства.
|
|
39
|
+
* @return Элемент.
|
|
40
|
+
*/
|
|
41
|
+
function ExpandableGroupInner({ gap = 8, itemHeight = 32, lineLimit = 2, defaultExpanded = false, children, opener: renderOpener = data => (0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: ["\u0415\u0449\u0451 ", data.hiddenCount] }), className, style, expanded: expandedProp, onExpand, openerWidth = 72, time, }) {
|
|
42
|
+
const outerRef = (0, react_1.useRef)(null);
|
|
43
|
+
const innerRef = (0, react_1.useRef)(null);
|
|
22
44
|
const openerRef = (0, react_1.useRef)(null);
|
|
23
45
|
const [mounted, setMounted] = (0, react_1.useState)(false);
|
|
24
|
-
const [
|
|
25
|
-
const items = react_1.Children.toArray(children).reduce((result, child) => {
|
|
26
|
-
if ((0, react_1.isValidElement)(child) && child.type === ExpandableItem) {
|
|
27
|
-
result.push(child);
|
|
28
|
-
}
|
|
29
|
-
return result;
|
|
30
|
-
}, []);
|
|
46
|
+
const [state, setState] = (0, react_1.useState)(() => (defaultExpanded ? expandedState : initialState));
|
|
31
47
|
(0, react_1.useEffect)(() => {
|
|
32
48
|
setMounted(true);
|
|
33
49
|
}, []);
|
|
50
|
+
// даем возможность управлять состоянием с помощью пропса "expanded"
|
|
34
51
|
(0, react_1.useEffect)(() => {
|
|
35
|
-
|
|
52
|
+
if (typeof expandedProp === 'boolean') {
|
|
53
|
+
setState(expandedProp ? expandedState : initialState);
|
|
54
|
+
}
|
|
36
55
|
}, [expandedProp]);
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
56
|
+
// если "time" обновился - это сигнал о том что надо пересчитать состояние
|
|
57
|
+
(0, react_1.useEffect)(() => {
|
|
58
|
+
setState(current => (current.status === 'expanded' ? current : initialState));
|
|
59
|
+
}, [time]);
|
|
60
|
+
// следим за изменением ширины чтобы запустить перерасчет
|
|
61
|
+
(0, utils_1.useObserveWidth)(outerRef, () => {
|
|
62
|
+
setState(current => (current.status === 'expanded' ? current : initialState));
|
|
43
63
|
});
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
64
|
+
// выполняем расчет
|
|
65
|
+
(0, hooks_1.useIsomorphicLayoutEffect)(() => {
|
|
66
|
+
if (state.status === 'initial') {
|
|
67
|
+
const outer = outerRef.current;
|
|
68
|
+
const inner = innerRef.current;
|
|
69
|
+
const opener = openerRef.current;
|
|
70
|
+
if (outer && inner && opener) {
|
|
71
|
+
const { lastVisibleIndex } = (0, utils_1.defineLastVisible)({ outer, inner, gap, opener, openerWidth });
|
|
72
|
+
setState({
|
|
73
|
+
status: lastVisibleIndex !== -1 ? 'some-hidden' : 'all-visible',
|
|
74
|
+
lastVisibleIndex,
|
|
75
|
+
});
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
}, [state, mounted]);
|
|
79
|
+
const rootStyle = {
|
|
80
|
+
...style,
|
|
81
|
+
maxHeight: state.status === 'expanded'
|
|
82
|
+
? undefined
|
|
83
|
+
: `${itemHeight * lineLimit + gap * (lineLimit - 1)}px`,
|
|
84
|
+
'--expandable-gap': `${gap}px`,
|
|
85
|
+
'--expandable-item-height': `${itemHeight}px`,
|
|
86
|
+
'--expandable-opener-width': `${openerWidth}px`,
|
|
87
|
+
};
|
|
88
|
+
const handleExpand = (0, react_1.useCallback)(() => {
|
|
89
|
+
setState(expandedState);
|
|
90
|
+
onExpand === null || onExpand === void 0 ? void 0 : onExpand();
|
|
91
|
+
}, [onExpand]);
|
|
92
|
+
const items = react_1.Children.toArray(children).reduce((result, child, index) => {
|
|
93
|
+
if ((0, react_1.isValidElement)(child) && child.type === ExpandableItem) {
|
|
94
|
+
result.push((0, jsx_runtime_1.jsx)(ItemContext.Provider, { value: {
|
|
95
|
+
hidden: state.status === 'some-hidden' && index > state.lastVisibleIndex,
|
|
96
|
+
}, children: child }, child.key));
|
|
97
|
+
}
|
|
98
|
+
return result;
|
|
99
|
+
}, []);
|
|
100
|
+
// ВАЖНО: root нужен для того чтобы формировать ограничение по высоте
|
|
101
|
+
return ((0, jsx_runtime_1.jsx)("div", { ref: outerRef, className: cx('root', className), style: rootStyle, children: (0, jsx_runtime_1.jsxs)("ul", { ref: innerRef, className: cx('inner'), children: [items, mounted && state.status !== 'expanded' && ((0, jsx_runtime_1.jsx)(ItemContext.Provider, { value: { hidden: state.status !== 'some-hidden' }, children: (0, jsx_runtime_1.jsx)(ExpandableItem, { ref: openerRef, onClick: handleExpand, "data-testid": 'expandable:opener', children: renderOpener({ hiddenCount: items.length - state.lastVisibleIndex - 1 }) }) }))] }) }));
|
|
48
102
|
}
|
|
49
|
-
exports.ExpandableGroup = ExpandableGroup;
|
|
50
103
|
const ExpandableItem = (0, react_1.forwardRef)(({ children, onClick, 'data-testid': testId = 'expandable:item' }, ref) => {
|
|
51
|
-
const
|
|
52
|
-
return ((0, jsx_runtime_1.jsx)("li",
|
|
104
|
+
const { hidden } = (0, react_1.useContext)(ItemContext);
|
|
105
|
+
return ((0, jsx_runtime_1.jsx)("li", { ref: ref, className: cx('item', { hidden }), "data-testid": testId, onClick: onClick, children: children }));
|
|
53
106
|
});
|
|
54
107
|
exports.Expandable = {
|
|
55
108
|
Group: ExpandableGroup,
|
|
56
109
|
Item: ExpandableItem,
|
|
57
110
|
};
|
|
111
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/expandable/index.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import type { CSSProperties, MouseEventHandler, ReactNode } from 'react';
|
|
2
|
+
import type { WithTestId } from '../types';
|
|
3
|
+
export interface ExpandableGroupInnerStyle extends CSSProperties {
|
|
4
|
+
'--expandable-item-height'?: string;
|
|
5
|
+
'--expandable-opener-width'?: string;
|
|
6
|
+
'--expandable-gap'?: string;
|
|
7
|
+
}
|
|
8
|
+
export interface ExpandableGroupProps {
|
|
9
|
+
/** Расстояние между элементами группы в пикселях. */
|
|
10
|
+
gap?: number;
|
|
11
|
+
/** Высота каждого элемента группы в пикселях. */
|
|
12
|
+
itemHeight?: number;
|
|
13
|
+
/** Развернут ли список по умолчанию. */
|
|
14
|
+
defaultExpanded?: boolean;
|
|
15
|
+
/** Количество строк в свернутом состоянии группы. */
|
|
16
|
+
lineLimit?: number;
|
|
17
|
+
/** Содержимое. */
|
|
18
|
+
children?: ReactNode;
|
|
19
|
+
/** Функция, возвращающая содержимое кнопки разворачивания списка. */
|
|
20
|
+
opener?: (data: {
|
|
21
|
+
hiddenCount: number;
|
|
22
|
+
}) => ReactNode;
|
|
23
|
+
/** Сработает при разворачивании списка. */
|
|
24
|
+
onExpand?: () => void;
|
|
25
|
+
/** CSS-класс корневого элемента. */
|
|
26
|
+
className?: string;
|
|
27
|
+
/** Стили корневого элемента. */
|
|
28
|
+
style?: CSSProperties;
|
|
29
|
+
/** Нужно ли выводить список развернутым. */
|
|
30
|
+
expanded?: boolean;
|
|
31
|
+
/** Ширина открывающего элемента. */
|
|
32
|
+
openerWidth?: number;
|
|
33
|
+
}
|
|
34
|
+
export interface ExpandableGroupItemProps extends WithTestId {
|
|
35
|
+
/** Содержимое. */
|
|
36
|
+
children?: ReactNode;
|
|
37
|
+
/** Сработает при клике. */
|
|
38
|
+
onClick?: MouseEventHandler;
|
|
39
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/expandable/types.ts"],"names":[],"mappings":""}
|
package/expandable/utils.d.ts
CHANGED
|
@@ -1,31 +1,30 @@
|
|
|
1
1
|
import { RefObject } from 'react';
|
|
2
|
-
export interface ViewState {
|
|
3
|
-
lastVisibleIndex: number;
|
|
4
|
-
}
|
|
5
2
|
/**
|
|
6
|
-
*
|
|
7
|
-
* @param
|
|
8
|
-
* @
|
|
9
|
-
*
|
|
10
|
-
*
|
|
11
|
-
* @param options.gap Расстояние между элементами списка.
|
|
12
|
-
* @return Рассчитанные данные: кол-во скрытых элементов.
|
|
3
|
+
* Определяет последний дочерний элемент который должен быть виден чтобы влезла "открывашка".
|
|
4
|
+
* @param payload Данные.
|
|
5
|
+
* @return Результат.
|
|
6
|
+
*
|
|
7
|
+
* ВАЖНО: lastVisibleIndex: -1 означает что все элементы видны и "открывашка" не нужна.
|
|
13
8
|
*/
|
|
14
|
-
export declare function
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
containerRef: RefObject<HTMLElement>;
|
|
18
|
-
openerRef: RefObject<HTMLElement>;
|
|
9
|
+
export declare function defineLastVisible({ outer, inner, gap, opener, openerWidth, }: {
|
|
10
|
+
outer: Element;
|
|
11
|
+
inner: Element;
|
|
19
12
|
gap: number;
|
|
13
|
+
opener: Element;
|
|
14
|
+
openerWidth: number;
|
|
20
15
|
}): {
|
|
21
|
-
|
|
16
|
+
lastVisibleIndex: number;
|
|
22
17
|
};
|
|
23
18
|
/**
|
|
24
|
-
*
|
|
25
|
-
* @param
|
|
26
|
-
* @param
|
|
27
|
-
* @
|
|
28
|
-
|
|
29
|
-
|
|
19
|
+
* Регистрирует обработчик изменения ширины элемента.
|
|
20
|
+
* @param element Элемент.
|
|
21
|
+
* @param callback Callback.
|
|
22
|
+
* @return Функция отписки.
|
|
23
|
+
*/
|
|
24
|
+
export declare function observeWidth(element: Element, callback: VoidFunction): () => void;
|
|
25
|
+
/**
|
|
26
|
+
* Хук для регистрации обработчика изменения ширины элемента.
|
|
27
|
+
* @param ref Ref элемента.
|
|
28
|
+
* @param callback Callback.
|
|
30
29
|
*/
|
|
31
|
-
export declare function
|
|
30
|
+
export declare function useObserveWidth(ref: RefObject<Element>, callback: VoidFunction): void;
|