@dxtmisha/wiki 0.57.4 → 0.57.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{defineProperty-Dcl1xgfx.js → defineProperty-CbNEU1Ei.js} +4 -4
- package/dist/library.js +4 -4
- package/dist/media.js +115 -38
- package/dist/src/media/descriptions/wikiDescriptionsButtonGroup.d.ts +7 -0
- package/dist/src/media/descriptions/wikiDescriptionsRadio.d.ts +7 -0
- package/dist/src/media/mdx/ButtonGroup/wikiMdxButtonGroup.d.ts +7 -0
- package/dist/src/media/props/wikiButtonGroup.d.ts +7 -0
- package/dist/src/media/props/wikiRadio.d.ts +7 -0
- package/dist/storybook.js +2086 -1813
- package/dist/{wikiDescriptions-7XaHU3Yk.js → wikiDescriptions-CJv5fdyX.js} +107 -1
- package/package.json +9 -9
- package/src/media/functional/functional-basic/api/api.en.mdx +39 -2
- package/src/media/functional/functional-basic/api/api.ru.mdx +39 -2
- package/src/media/functional/functional-basic/api/api.vi.mdx +39 -2
- package/src/library.ts +0 -8
- /package/dist/{classes → src/classes}/WikiStorybook.d.ts +0 -0
- /package/dist/{classes → src/classes}/WikiStorybookDescriptions.d.ts +0 -0
- /package/dist/{classes → src/classes}/WikiStorybookItem.d.ts +0 -0
- /package/dist/{classes → src/classes}/WikiStorybookProp.d.ts +0 -0
- /package/dist/{documentation → src/documentation}/storybook/StorybookDescriptions.d.ts +0 -0
- /package/dist/{documentation → src/documentation}/storybook/StorybookMain.d.ts +0 -0
- /package/dist/{library.d.ts → src/library.d.ts} +0 -0
- /package/dist/{media → src/media}/descriptions/wikiDescriptions.d.ts +0 -0
- /package/dist/{media → src/media}/descriptions/wikiDescriptionsAccordion.d.ts +0 -0
- /package/dist/{media → src/media}/descriptions/wikiDescriptionsActionSheet.d.ts +0 -0
- /package/dist/{media → src/media}/descriptions/wikiDescriptionsActions.d.ts +0 -0
- /package/dist/{media → src/media}/descriptions/wikiDescriptionsAnchor.d.ts +0 -0
- /package/dist/{media → src/media}/descriptions/wikiDescriptionsArea.d.ts +0 -0
- /package/dist/{media → src/media}/descriptions/wikiDescriptionsArrow.d.ts +0 -0
- /package/dist/{media → src/media}/descriptions/wikiDescriptionsBadge.d.ts +0 -0
- /package/dist/{media → src/media}/descriptions/wikiDescriptionsBars.d.ts +0 -0
- /package/dist/{media → src/media}/descriptions/wikiDescriptionsBlock.d.ts +0 -0
- /package/dist/{media → src/media}/descriptions/wikiDescriptionsButton.d.ts +0 -0
- /package/dist/{media → src/media}/descriptions/wikiDescriptionsCell.d.ts +0 -0
- /package/dist/{media → src/media}/descriptions/wikiDescriptionsCheckbox.d.ts +0 -0
- /package/dist/{media → src/media}/descriptions/wikiDescriptionsChip.d.ts +0 -0
- /package/dist/{media → src/media}/descriptions/wikiDescriptionsChipGroup.d.ts +0 -0
- /package/dist/{media → src/media}/descriptions/wikiDescriptionsClientOnly.d.ts +0 -0
- /package/dist/{media → src/media}/descriptions/wikiDescriptionsContainer.d.ts +0 -0
- /package/dist/{media → src/media}/descriptions/wikiDescriptionsDialog.d.ts +0 -0
- /package/dist/{media → src/media}/descriptions/wikiDescriptionsDummy.d.ts +0 -0
- /package/dist/{media → src/media}/descriptions/wikiDescriptionsField.d.ts +0 -0
- /package/dist/{media → src/media}/descriptions/wikiDescriptionsFieldCounter.d.ts +0 -0
- /package/dist/{media → src/media}/descriptions/wikiDescriptionsFieldLabel.d.ts +0 -0
- /package/dist/{media → src/media}/descriptions/wikiDescriptionsFieldMessage.d.ts +0 -0
- /package/dist/{media → src/media}/descriptions/wikiDescriptionsGrid.d.ts +0 -0
- /package/dist/{media → src/media}/descriptions/wikiDescriptionsGridItem.d.ts +0 -0
- /package/dist/{media → src/media}/descriptions/wikiDescriptionsGroup.d.ts +0 -0
- /package/dist/{media → src/media}/descriptions/wikiDescriptionsHeader.d.ts +0 -0
- /package/dist/{media → src/media}/descriptions/wikiDescriptionsHorizontalScroll.d.ts +0 -0
- /package/dist/{media → src/media}/descriptions/wikiDescriptionsIcon.d.ts +0 -0
- /package/dist/{media → src/media}/descriptions/wikiDescriptionsImage.d.ts +0 -0
- /package/dist/{media → src/media}/descriptions/wikiDescriptionsInput.d.ts +0 -0
- /package/dist/{media → src/media}/descriptions/wikiDescriptionsList.d.ts +0 -0
- /package/dist/{media → src/media}/descriptions/wikiDescriptionsListGroup.d.ts +0 -0
- /package/dist/{media → src/media}/descriptions/wikiDescriptionsListItem.d.ts +0 -0
- /package/dist/{media → src/media}/descriptions/wikiDescriptionsListMenu.d.ts +0 -0
- /package/dist/{media → src/media}/descriptions/wikiDescriptionsMask.d.ts +0 -0
- /package/dist/{media → src/media}/descriptions/wikiDescriptionsMenu.d.ts +0 -0
- /package/dist/{media → src/media}/descriptions/wikiDescriptionsModal.d.ts +0 -0
- /package/dist/{media → src/media}/descriptions/wikiDescriptionsMotionAxis.d.ts +0 -0
- /package/dist/{media → src/media}/descriptions/wikiDescriptionsMotionTransform.d.ts +0 -0
- /package/dist/{media → src/media}/descriptions/wikiDescriptionsPage.d.ts +0 -0
- /package/dist/{media → src/media}/descriptions/wikiDescriptionsPageArea.d.ts +0 -0
- /package/dist/{media → src/media}/descriptions/wikiDescriptionsProgress.d.ts +0 -0
- /package/dist/{media → src/media}/descriptions/wikiDescriptionsRipple.d.ts +0 -0
- /package/dist/{media → src/media}/descriptions/wikiDescriptionsScrollbar.d.ts +0 -0
- /package/dist/{media → src/media}/descriptions/wikiDescriptionsSection.d.ts +0 -0
- /package/dist/{media → src/media}/descriptions/wikiDescriptionsSelect.d.ts +0 -0
- /package/dist/{media → src/media}/descriptions/wikiDescriptionsSelectValue.d.ts +0 -0
- /package/dist/{media → src/media}/descriptions/wikiDescriptionsSkeleton.d.ts +0 -0
- /package/dist/{media → src/media}/descriptions/wikiDescriptionsSnackbar.d.ts +0 -0
- /package/dist/{media → src/media}/descriptions/wikiDescriptionsSnackbarItem.d.ts +0 -0
- /package/dist/{media → src/media}/descriptions/wikiDescriptionsTabItem.d.ts +0 -0
- /package/dist/{media → src/media}/descriptions/wikiDescriptionsTabs.d.ts +0 -0
- /package/dist/{media → src/media}/descriptions/wikiDescriptionsTabsNavigation.d.ts +0 -0
- /package/dist/{media → src/media}/descriptions/wikiDescriptionsTextarea.d.ts +0 -0
- /package/dist/{media → src/media}/descriptions/wikiDescriptionsTextareaAutosize.d.ts +0 -0
- /package/dist/{media → src/media}/descriptions/wikiDescriptionsTooltip.d.ts +0 -0
- /package/dist/{media → src/media}/descriptions/wikiDescriptionsWindow.d.ts +0 -0
- /package/dist/{media → src/media}/mdx/Accordion/wikiMdxAccordion.d.ts +0 -0
- /package/dist/{media → src/media}/mdx/ActionSheet/wikiMdxActionSheet.d.ts +0 -0
- /package/dist/{media → src/media}/mdx/Actions/wikiMdxActions.d.ts +0 -0
- /package/dist/{media → src/media}/mdx/Anchor/wikiMdxAnchor.d.ts +0 -0
- /package/dist/{media → src/media}/mdx/Area/wikiMdxArea.d.ts +0 -0
- /package/dist/{media → src/media}/mdx/Arrow/wikiMdxArrow.d.ts +0 -0
- /package/dist/{media → src/media}/mdx/Badge/wikiMdxBadge.d.ts +0 -0
- /package/dist/{media → src/media}/mdx/Bars/wikiMdxBars.d.ts +0 -0
- /package/dist/{media → src/media}/mdx/Block/wikiMdxBlock.d.ts +0 -0
- /package/dist/{media → src/media}/mdx/Button/wikiMdxButton.d.ts +0 -0
- /package/dist/{media → src/media}/mdx/Cell/wikiMdxCell.d.ts +0 -0
- /package/dist/{media → src/media}/mdx/Checkbox/wikiMdxCheckbox.d.ts +0 -0
- /package/dist/{media → src/media}/mdx/Chip/wikiMdxChip.d.ts +0 -0
- /package/dist/{media → src/media}/mdx/ChipGroup/wikiMdxChipGroup.d.ts +0 -0
- /package/dist/{media → src/media}/mdx/ClientOnly/wikiMdxClientOnly.d.ts +0 -0
- /package/dist/{media → src/media}/mdx/Container/wikiMdxContainer.d.ts +0 -0
- /package/dist/{media → src/media}/mdx/Dialog/wikiMdxDialog.d.ts +0 -0
- /package/dist/{media → src/media}/mdx/Dummy/wikiMdxDummy.d.ts +0 -0
- /package/dist/{media → src/media}/mdx/Field/wikiMdxField.d.ts +0 -0
- /package/dist/{media → src/media}/mdx/FieldCounter/wikiMdxFieldCounter.d.ts +0 -0
- /package/dist/{media → src/media}/mdx/FieldLabel/wikiMdxFieldLabel.d.ts +0 -0
- /package/dist/{media → src/media}/mdx/FieldMessage/wikiMdxFieldMessage.d.ts +0 -0
- /package/dist/{media → src/media}/mdx/Grid/wikiMdxGrid.d.ts +0 -0
- /package/dist/{media → src/media}/mdx/GridItem/wikiMdxGridItem.d.ts +0 -0
- /package/dist/{media → src/media}/mdx/Group/wikiMdxGroup.d.ts +0 -0
- /package/dist/{media → src/media}/mdx/Header/wikiMdxHeader.d.ts +0 -0
- /package/dist/{media → src/media}/mdx/HorizontalScroll/wikiMdxHorizontalScroll.d.ts +0 -0
- /package/dist/{media → src/media}/mdx/Icon/wikiMdxIcon.d.ts +0 -0
- /package/dist/{media → src/media}/mdx/Image/wikiMdxImage.d.ts +0 -0
- /package/dist/{media → src/media}/mdx/Input/wikiMdxInput.d.ts +0 -0
- /package/dist/{media → src/media}/mdx/List/wikiMdxList.d.ts +0 -0
- /package/dist/{media → src/media}/mdx/ListGroup/wikiMdxListGroup.d.ts +0 -0
- /package/dist/{media → src/media}/mdx/ListItem/wikiMdxListItem.d.ts +0 -0
- /package/dist/{media → src/media}/mdx/ListMenu/wikiMdxListMenu.d.ts +0 -0
- /package/dist/{media → src/media}/mdx/Mask/wikiMdxMask.d.ts +0 -0
- /package/dist/{media → src/media}/mdx/Menu/wikiMdxMenu.d.ts +0 -0
- /package/dist/{media → src/media}/mdx/Modal/wikiMdxModal.d.ts +0 -0
- /package/dist/{media → src/media}/mdx/MotionAxis/wikiMdxMotionAxis.d.ts +0 -0
- /package/dist/{media → src/media}/mdx/MotionTransform/wikiMdxMotionTransform.d.ts +0 -0
- /package/dist/{media → src/media}/mdx/Page/wikiMdxPage.d.ts +0 -0
- /package/dist/{media → src/media}/mdx/PageArea/wikiMdxPageArea.d.ts +0 -0
- /package/dist/{media → src/media}/mdx/Progress/wikiMdxProgress.d.ts +0 -0
- /package/dist/{media → src/media}/mdx/Ripple/wikiMdxRipple.d.ts +0 -0
- /package/dist/{media → src/media}/mdx/Scrollbar/wikiMdxScrollbar.d.ts +0 -0
- /package/dist/{media → src/media}/mdx/Section/wikiMdxSection.d.ts +0 -0
- /package/dist/{media → src/media}/mdx/Select/wikiMdxSelect.d.ts +0 -0
- /package/dist/{media → src/media}/mdx/SelectValue/wikiMdxSelectValue.d.ts +0 -0
- /package/dist/{media → src/media}/mdx/Skeleton/wikiMdxSkeleton.d.ts +0 -0
- /package/dist/{media → src/media}/mdx/Snackbar/wikiMdxSnackbar.d.ts +0 -0
- /package/dist/{media → src/media}/mdx/SnackbarItem/wikiMdxSnackbarItem.d.ts +0 -0
- /package/dist/{media → src/media}/mdx/TabItem/wikiMdxTabItem.d.ts +0 -0
- /package/dist/{media → src/media}/mdx/Tabs/wikiMdxTabs.d.ts +0 -0
- /package/dist/{media → src/media}/mdx/TabsNavigation/wikiMdxTabsNavigation.d.ts +0 -0
- /package/dist/{media → src/media}/mdx/Textarea/wikiMdxTextarea.d.ts +0 -0
- /package/dist/{media → src/media}/mdx/TextareaAutosize/wikiMdxTextareaAutosize.d.ts +0 -0
- /package/dist/{media → src/media}/mdx/Tooltip/wikiMdxTooltip.d.ts +0 -0
- /package/dist/{media → src/media}/mdx/Window/wikiMdxWindow.d.ts +0 -0
- /package/dist/{media → src/media}/mdx/event/wikiMdxEvent.d.ts +0 -0
- /package/dist/{media → src/media}/mdx/expose/wikiMdxExpose.d.ts +0 -0
- /package/dist/{media → src/media}/mdx/slot/wikiMdxSlot.d.ts +0 -0
- /package/dist/{media → src/media}/mdx/style/wikiMdxStyle.d.ts +0 -0
- /package/dist/{media → src/media}/mdx/value/wikiMdxValue.d.ts +0 -0
- /package/dist/{media → src/media}/mdx/wikiMdx.d.ts +0 -0
- /package/dist/{media → src/media}/props/wiki.d.ts +0 -0
- /package/dist/{media → src/media}/props/wikiActions.d.ts +0 -0
- /package/dist/{media → src/media}/props/wikiActionsInclude.d.ts +0 -0
- /package/dist/{media → src/media}/props/wikiAnchor.d.ts +0 -0
- /package/dist/{media → src/media}/props/wikiAria.d.ts +0 -0
- /package/dist/{media → src/media}/props/wikiArrow.d.ts +0 -0
- /package/dist/{media → src/media}/props/wikiArrowInclude.d.ts +0 -0
- /package/dist/{media → src/media}/props/wikiAttributes.d.ts +0 -0
- /package/dist/{media → src/media}/props/wikiBadge.d.ts +0 -0
- /package/dist/{media → src/media}/props/wikiBars.d.ts +0 -0
- /package/dist/{media → src/media}/props/wikiBarsInclude.d.ts +0 -0
- /package/dist/{media → src/media}/props/wikiButton.d.ts +0 -0
- /package/dist/{media → src/media}/props/wikiCheckbox.d.ts +0 -0
- /package/dist/{media → src/media}/props/wikiChip.d.ts +0 -0
- /package/dist/{media → src/media}/props/wikiChipGroup.d.ts +0 -0
- /package/dist/{media → src/media}/props/wikiDialog.d.ts +0 -0
- /package/dist/{media → src/media}/props/wikiField.d.ts +0 -0
- /package/dist/{media → src/media}/props/wikiFieldCounterInclude.d.ts +0 -0
- /package/dist/{media → src/media}/props/wikiForm.d.ts +0 -0
- /package/dist/{media → src/media}/props/wikiGridItem.d.ts +0 -0
- /package/dist/{media → src/media}/props/wikiHook.d.ts +0 -0
- /package/dist/{media → src/media}/props/wikiIcon.d.ts +0 -0
- /package/dist/{media → src/media}/props/wikiIconInclude.d.ts +0 -0
- /package/dist/{media → src/media}/props/wikiImage.d.ts +0 -0
- /package/dist/{media → src/media}/props/wikiInformation.d.ts +0 -0
- /package/dist/{media → src/media}/props/wikiInput.d.ts +0 -0
- /package/dist/{media → src/media}/props/wikiList.d.ts +0 -0
- /package/dist/{media → src/media}/props/wikiListItem.d.ts +0 -0
- /package/dist/{media → src/media}/props/wikiMask.d.ts +0 -0
- /package/dist/{media → src/media}/props/wikiMaskInclude.d.ts +0 -0
- /package/dist/{media → src/media}/props/wikiMenu.d.ts +0 -0
- /package/dist/{media → src/media}/props/wikiMotionAxis.d.ts +0 -0
- /package/dist/{media → src/media}/props/wikiMotionTransform.d.ts +0 -0
- /package/dist/{media → src/media}/props/wikiOption.d.ts +0 -0
- /package/dist/{media → src/media}/props/wikiProgress.d.ts +0 -0
- /package/dist/{media → src/media}/props/wikiPropsTextarea.d.ts +0 -0
- /package/dist/{media → src/media}/props/wikiScrollbar.d.ts +0 -0
- /package/dist/{media → src/media}/props/wikiSelect.d.ts +0 -0
- /package/dist/{media → src/media}/props/wikiSelectValue.d.ts +0 -0
- /package/dist/{media → src/media}/props/wikiSnackbar.d.ts +0 -0
- /package/dist/{media → src/media}/props/wikiSnackbarItem.d.ts +0 -0
- /package/dist/{media → src/media}/props/wikiStatus.d.ts +0 -0
- /package/dist/{media → src/media}/props/wikiStyle.d.ts +0 -0
- /package/dist/{media → src/media}/props/wikiTabs.d.ts +0 -0
- /package/dist/{media → src/media}/props/wikiTabsNavigation.d.ts +0 -0
- /package/dist/{media → src/media}/props/wikiTechnical.d.ts +0 -0
- /package/dist/{media → src/media}/props/wikiText.d.ts +0 -0
- /package/dist/{media → src/media}/props/wikiTooltip.d.ts +0 -0
- /package/dist/{media → src/media}/props/wikiValue.d.ts +0 -0
- /package/dist/{media → src/media}/props/wikiWindow.d.ts +0 -0
- /package/dist/{media.d.ts → src/media.d.ts} +0 -0
- /package/dist/{shims-mdx.d.ts → src/shims-mdx.d.ts} +0 -0
- /package/dist/{storybook.d.ts → src/storybook.d.ts} +0 -0
- /package/dist/{types → src/types}/storybookTypes.d.ts +0 -0
- /package/dist/{types → src/types}/wikiTypes.d.ts +0 -0
|
@@ -124,6 +124,7 @@ var e = [
|
|
|
124
124
|
}],
|
|
125
125
|
documentation: {
|
|
126
126
|
body: "\n<StorybookDescriptions componentName={'Actions'} type={'actions'}/>\n<StorybookDescriptions componentName={'Actions'} type={'list'}/>\n<StorybookDescriptions componentName={'Actions'} type={'flexible'}/>\n ",
|
|
127
|
+
events: "\n<StorybookDescriptions componentName={'Event'} type={'click'}/>\n ",
|
|
127
128
|
slots: "\n<Canvas of={Component.ActionsSlots}/>\n<StorybookDescriptions componentName={'Slot'} type={'default'}/>\n<StorybookDescriptions componentName={'Slot'} type={'secondary'}/>\n "
|
|
128
129
|
},
|
|
129
130
|
ai: { description: "\nLayout container for action button groups, typically used in dialog footers, cards, or forms. Manages spacing, alignment, and separation between primary (main) and secondary action sets.\nSupports multiple alignments (left, center, right, block) and takes arrays of button props (list, listSecondary) to automatically render Button components.\nFeatures both array-based and slot-based rendering for maximum flexibility. Use for standardizing button layouts and ensuring consistent spacing.\n " }
|
|
@@ -539,6 +540,44 @@ var e = [
|
|
|
539
540
|
},
|
|
540
541
|
ai: { description: "\nFundamental interactive component for user actions, navigation, and form submission. Supports various visual styles (primary, secondary, outline, text), states, and content configurations.\nFeatures built-in support for icons (Material Symbols), loading spinners, and disabled/selected states. Includes native-like navigation via \"to\" (Vue Router) or \"href\" (external) props and supports skeleton loading.\nHighly customizable through design tokens and adaptive layout options. Controlled primarily via click events and various styling props. Use for call-to-actions, navigation links, or icon-only toggle buttons.\n " }
|
|
541
542
|
},
|
|
543
|
+
{
|
|
544
|
+
name: "ButtonGroup",
|
|
545
|
+
description: {
|
|
546
|
+
en: "A container component for grouping multiple buttons together.",
|
|
547
|
+
ru: "Компонент-контейнер для группировки нескольких кнопок вместе."
|
|
548
|
+
},
|
|
549
|
+
possibilities: {
|
|
550
|
+
en: [
|
|
551
|
+
"horizontal and vertical orientations",
|
|
552
|
+
"automatic wrapping for horizontal layout",
|
|
553
|
+
"passing shared attributes to all buttons",
|
|
554
|
+
"flexible content via list prop or default slot",
|
|
555
|
+
"consistent spacing between buttons"
|
|
556
|
+
],
|
|
557
|
+
ru: [
|
|
558
|
+
"горизонтальная и вертикальная ориентация",
|
|
559
|
+
"автоматический перенос для горизонтального расположения",
|
|
560
|
+
"передача общих атрибутов всем кнопкам",
|
|
561
|
+
"гибкий контент через свойство list или слот по умолчанию",
|
|
562
|
+
"согласованные отступы между кнопками"
|
|
563
|
+
]
|
|
564
|
+
},
|
|
565
|
+
import: [],
|
|
566
|
+
stories: [{
|
|
567
|
+
id: "ButtonGroupSlots",
|
|
568
|
+
name: {
|
|
569
|
+
en: "Slots usage",
|
|
570
|
+
ru: "Использование слотов"
|
|
571
|
+
},
|
|
572
|
+
template: "\n <DesignComponent>\n <template #default>\n Default Slot\n </template>\n </DesignComponent>\n "
|
|
573
|
+
}],
|
|
574
|
+
documentation: {
|
|
575
|
+
body: "\n<StorybookDescriptions componentName={'ButtonGroup'} type={'buttonGroup'}/>\n ",
|
|
576
|
+
events: "\n<StorybookDescriptions componentName={'Event'} type={'click'}/>\n ",
|
|
577
|
+
slots: "\n<Canvas of={Component.ButtonGroupSlots}/>\n<StorybookDescriptions componentName={'Slot'} type={'default'}/>\n "
|
|
578
|
+
},
|
|
579
|
+
ai: { description: "\nThe ButtonGroup component is used to group several buttons together into a single layout.\nIt supports both horizontal and vertical orientations and can automatically wrap buttons if they don't fit in a single line.\nButtons can be defined via the 'list' property as an array of button configurations or via the default slot.\nThe 'buttonAttrs' property allows applying shared attributes (like style, size, etc.) to all buttons in the group at once.\n " }
|
|
580
|
+
},
|
|
542
581
|
{
|
|
543
582
|
name: "Cell",
|
|
544
583
|
description: {
|
|
@@ -653,7 +692,7 @@ var e = [
|
|
|
653
692
|
}
|
|
654
693
|
],
|
|
655
694
|
documentation: {
|
|
656
|
-
body: "\n<StorybookDescriptions componentName={'Checkbox'} type={'checkbox'}/>\n\n<StorybookDescriptions componentName={'Checkbox'} type={'value'}/>\n<StorybookDescriptions componentName={'Checkbox'} type={'indeterminate'}/>\n<StorybookDescriptions componentName={'Value'} type={'v-model'}/>\n<Canvas of={Component.CheckboxVModel}/>\n\n<StorybookDescriptions componentName={'Style'} type={'isSkeleton'}/>\n<Canvas of={Component.CheckboxSkeleton}/>\n ",
|
|
695
|
+
body: "\n<StorybookDescriptions componentName={'Checkbox'} type={'checkbox'}/>\n\n<StorybookDescriptions componentName={'Checkbox'} type={'value'}/>\n<StorybookDescriptions componentName={'Checkbox'} type={'selected'}/>\n<StorybookDescriptions componentName={'Checkbox'} type={'indeterminate'}/>\n<StorybookDescriptions componentName={'Value'} type={'v-model'}/>\n<Canvas of={Component.CheckboxVModel}/>\n\n<StorybookDescriptions componentName={'Style'} type={'isSkeleton'}/>\n<Canvas of={Component.CheckboxSkeleton}/>\n ",
|
|
657
696
|
events: "\n<StorybookDescriptions componentName={'Event'} type={'input'}/>\n<StorybookDescriptions componentName={'Event'} type={'change'}/>\n ",
|
|
658
697
|
expose: "\n<StorybookDescriptions componentName={'Expose'} type={'value'}/>\n<StorybookDescriptions componentName={'Expose'} type={'checkValidity'}/>\n<StorybookDescriptions componentName={'Expose'} type={'validationMessage'}/>\n ",
|
|
659
698
|
slots: "\n<Canvas of={Component.CheckboxSlots}/>\n<StorybookDescriptions componentName={'Slot'} type={'label'}/>\n<StorybookDescriptions componentName={'Slot'} type={'description'}/>\n "
|
|
@@ -2288,6 +2327,73 @@ var e = [
|
|
|
2288
2327
|
description: "\nStatus indicator for ongoing processes, supporting both linear and circular visual styles. Capable of representing determinate (known percentage) and indeterminate (loading) states with customizable delays for showing/hiding.\nFeatures horizontal bars (linear) and spinner rings (circular) with multiple indeterminate animation types. Includes advanced positioning (top, bottom, static), dense styling for compact UIs, and a point mode for minimal pulsating indicators.\nControlled via the visible, value, and indeterminate props, with support for custom min/max bounds. Use for page-level loading bars, button action feedback, or inline file upload progress.\n "
|
|
2289
2328
|
}
|
|
2290
2329
|
},
|
|
2330
|
+
{
|
|
2331
|
+
name: "Radio",
|
|
2332
|
+
description: {
|
|
2333
|
+
en: "Interactive radio button component for single choice selection from a group",
|
|
2334
|
+
ru: "Интерактивный компонент радиокнопки для выбора одного варианта из группы"
|
|
2335
|
+
},
|
|
2336
|
+
possibilities: {
|
|
2337
|
+
en: [
|
|
2338
|
+
"single selection within a group",
|
|
2339
|
+
"built-in validation support with custom messages",
|
|
2340
|
+
"label and description text support",
|
|
2341
|
+
"customizable icons for selected state",
|
|
2342
|
+
"disabled and loading states",
|
|
2343
|
+
"ripple effect on interaction",
|
|
2344
|
+
"skeleton state for loading placeholders",
|
|
2345
|
+
"adaptive layout options",
|
|
2346
|
+
"form integration with name and value attributes"
|
|
2347
|
+
],
|
|
2348
|
+
ru: [
|
|
2349
|
+
"выбор одного значения из группы",
|
|
2350
|
+
"встроенная поддержка валидации с пользовательскими сообщениями",
|
|
2351
|
+
"поддержка текста метки и описания",
|
|
2352
|
+
"настраиваемые иконки для выбранного состояния",
|
|
2353
|
+
"состояния отключения и загрузки",
|
|
2354
|
+
"эффект волны при взаимодействии",
|
|
2355
|
+
"состояние скелетона для заполнителей загрузки",
|
|
2356
|
+
"опции адаптивной разметки",
|
|
2357
|
+
"интеграция с формами через атрибуты name и value"
|
|
2358
|
+
]
|
|
2359
|
+
},
|
|
2360
|
+
import: ["import { ref } from 'vue'"],
|
|
2361
|
+
stories: [
|
|
2362
|
+
{
|
|
2363
|
+
id: "RadioVModel",
|
|
2364
|
+
name: {
|
|
2365
|
+
en: "Two-way binding (v-model)",
|
|
2366
|
+
ru: "Двусторонняя привязка (v-model)"
|
|
2367
|
+
},
|
|
2368
|
+
setup: "\n return {\n radioValue: ref('option1')\n }\n ",
|
|
2369
|
+
template: "\n <div class=\"wiki-storybook-flex-column\">\n <div class=\"wiki-storybook-flex\">\n <span>Selected: {{ radioValue }}</span>\n </div>\n <div class=\"wiki-storybook-flex\">\n <button class=\"wiki-storybook-button\" @click=\"radioValue = 'option1'\">Set option1</button>\n <button class=\"wiki-storybook-button\" @click=\"radioValue = 'option2'\">Set option2</button>\n <button class=\"wiki-storybook-button\" @click=\"radioValue = ''\">Set empty</button>\n </div>\n <DesignComponent\n v-model=\"radioValue\"\n value-variant=\"option1\"\n label=\"Option 1\"\n />\n <DesignComponent\n v-model=\"radioValue\"\n value-variant=\"option2\"\n label=\"Option 2\"\n />\n </div>\n "
|
|
2370
|
+
},
|
|
2371
|
+
{
|
|
2372
|
+
id: "RadioSkeleton",
|
|
2373
|
+
name: {
|
|
2374
|
+
en: "Skeleton",
|
|
2375
|
+
ru: "Скелетон"
|
|
2376
|
+
},
|
|
2377
|
+
components: ["Skeleton"],
|
|
2378
|
+
template: "\n <DesignSkeleton :active=\"true\">\n <div class=\"wiki-storybook-flex-column\">\n <DesignComponent isSkeleton label=\"Loading radio\" />\n <DesignComponent isSkeleton label=\"Another loading radio\" />\n </div>\n </DesignSkeleton>\n "
|
|
2379
|
+
},
|
|
2380
|
+
{
|
|
2381
|
+
id: "RadioSlots",
|
|
2382
|
+
name: {
|
|
2383
|
+
en: "Slots usage",
|
|
2384
|
+
ru: "Использование слотов"
|
|
2385
|
+
},
|
|
2386
|
+
template: "\n <DesignComponent>\n <template #default>\n <strong>Custom label slot for Radio</strong>\n </template>\n <template #description>\n <em>Custom description slot for Radio</em>\n </template>\n </DesignComponent>\n "
|
|
2387
|
+
}
|
|
2388
|
+
],
|
|
2389
|
+
documentation: {
|
|
2390
|
+
body: "\n<StorybookDescriptions componentName={'Radio'} type={'radio'}/>\n\n<StorybookDescriptions componentName={'Radio'} type={'value'}/>\n<StorybookDescriptions componentName={'Value'} type={'v-model'}/>\n<Canvas of={Component.RadioVModel}/>\n\n<StorybookDescriptions componentName={'Style'} type={'isSkeleton'}/>\n<Canvas of={Component.RadioSkeleton}/>\n ",
|
|
2391
|
+
events: "\n<StorybookDescriptions componentName={'Event'} type={'input'}/>\n<StorybookDescriptions componentName={'Event'} type={'change'}/>\n ",
|
|
2392
|
+
expose: "\n<StorybookDescriptions componentName={'Expose'} type={'value'}/>\n<StorybookDescriptions componentName={'Expose'} type={'checkValidity'}/>\n<StorybookDescriptions componentName={'Expose'} type={'validationMessage'}/>\n ",
|
|
2393
|
+
slots: "\n<Canvas of={Component.RadioSlots}/>\n<StorybookDescriptions componentName={'Slot'} type={'label'}/>\n<StorybookDescriptions componentName={'Slot'} type={'description'}/>\n "
|
|
2394
|
+
},
|
|
2395
|
+
ai: { description: "\nForm control component for single choice selection. Allows users to select one option from a mutually exclusive set.\nInherits all features from Checkbox but optimized for radio selection behavior. Includes support for labels, descriptions, validation, and loading states.\nControlled via v-model and emits @input/@change events.\n " }
|
|
2396
|
+
},
|
|
2291
2397
|
{
|
|
2292
2398
|
name: "Ripple",
|
|
2293
2399
|
description: {
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@dxtmisha/wiki",
|
|
3
3
|
"private": false,
|
|
4
|
-
"version": "0.57.
|
|
4
|
+
"version": "0.57.6",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"description": "Wiki documentation and storybook utilities for DXT UI design system",
|
|
7
7
|
"keywords": [
|
|
@@ -40,19 +40,19 @@
|
|
|
40
40
|
"package.json",
|
|
41
41
|
"LICENSE"
|
|
42
42
|
],
|
|
43
|
-
"main": "
|
|
44
|
-
"module": "
|
|
45
|
-
"types": "src/library.ts",
|
|
43
|
+
"main": "dist/library.js",
|
|
44
|
+
"module": "dist/library.js",
|
|
45
|
+
"types": "dist/src/library.d.ts",
|
|
46
46
|
"exports": {
|
|
47
47
|
".": {
|
|
48
48
|
"import": "./dist/library.js",
|
|
49
|
-
"types": "./dist/library.d.ts"
|
|
49
|
+
"types": "./dist/src/library.d.ts"
|
|
50
50
|
},
|
|
51
|
+
"./functional/*": "./src/media/functional/*.mdx",
|
|
51
52
|
"./media": {
|
|
52
53
|
"import": "./dist/media.js",
|
|
53
54
|
"types": "./dist/media.d.ts"
|
|
54
55
|
},
|
|
55
|
-
"./functional/*": "./src/media/functional/*.mdx",
|
|
56
56
|
"./storybook": {
|
|
57
57
|
"import": "./dist/storybook.js",
|
|
58
58
|
"types": "./dist/storybook.d.ts"
|
|
@@ -62,14 +62,14 @@
|
|
|
62
62
|
"engines": {
|
|
63
63
|
"node": ">=20.0.0"
|
|
64
64
|
},
|
|
65
|
+
"dependencies": {},
|
|
65
66
|
"peerDependencies": {
|
|
66
67
|
"@dxtmisha/functional": "*",
|
|
67
68
|
"@dxtmisha/media": "*",
|
|
68
69
|
"@dxtmisha/styles": "*",
|
|
69
|
-
"@storybook/addon-docs": "*",
|
|
70
70
|
"@mdx-js/react": "*",
|
|
71
|
+
"@storybook/addon-docs": "*",
|
|
71
72
|
"react": "*",
|
|
72
73
|
"vue": "*"
|
|
73
|
-
}
|
|
74
|
-
"dependencies": {}
|
|
74
|
+
}
|
|
75
75
|
}
|
|
@@ -10,11 +10,12 @@ The `Api` class is a central utility for making HTTP requests. It provides a sim
|
|
|
10
10
|
|
|
11
11
|
The class provides a comprehensive set of tools for managing network communication:
|
|
12
12
|
- **CRUD Methods** — execution of `GET`, `POST`, `PUT`, `PATCH`, `DELETE` requests.
|
|
13
|
-
- **Global Configuration** — setting up base URLs, headers, and parameters.
|
|
13
|
+
- **Global Configuration** — setting up base URLs, origins, headers, and parameters.
|
|
14
14
|
- **Lifecycle Hooks** — handling events before and after the request (e.g., for Refresh Token).
|
|
15
15
|
- **Hydration (SSR)** — transferring data from server to client to prevent duplicate requests.
|
|
16
16
|
- **Caching** — saving responses in memory or external storage (LocalStorage).
|
|
17
17
|
- **Response Emulation** — creating mock data for development and testing.
|
|
18
|
+
- **Automatic Localization** — replacement of `{locale}`, `{country}`, and `{language}` markers in request paths.
|
|
18
19
|
- **Loading and Error Management** — integration with global indicator components and error centers.
|
|
19
20
|
|
|
20
21
|
## Basic Usage
|
|
@@ -40,7 +41,11 @@ You can configure the API behavior globally, for example, during application ini
|
|
|
40
41
|
|
|
41
42
|
```javascript
|
|
42
43
|
// Set the base URL for all relative paths
|
|
43
|
-
Api.setUrl('
|
|
44
|
+
Api.setUrl('/api/')
|
|
45
|
+
|
|
46
|
+
// Set the origin (protocol and domain) for the base URL
|
|
47
|
+
// If urlRoot starts with '/', the origin will be prepended to it
|
|
48
|
+
Api.setOrigin('https://api.example.com')
|
|
44
49
|
|
|
45
50
|
// Add common headers (e.g., an authorization token)
|
|
46
51
|
Api.setHeaders({
|
|
@@ -51,6 +56,38 @@ Api.setHeaders({
|
|
|
51
56
|
Api.setRequestDefault({
|
|
52
57
|
app_version: '1.0.0'
|
|
53
58
|
})
|
|
59
|
+
|
|
60
|
+
// Check if the server is running on localhost
|
|
61
|
+
if (Api.isLocalhost()) {
|
|
62
|
+
console.log('Running locally')
|
|
63
|
+
}
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
### setConfig Method
|
|
67
|
+
|
|
68
|
+
Allows you to set all main settings with a single object.
|
|
69
|
+
|
|
70
|
+
```javascript
|
|
71
|
+
Api.setConfig({
|
|
72
|
+
urlRoot: '/api/',
|
|
73
|
+
origin: 'https://api.example.com',
|
|
74
|
+
headers: { 'Authorization': 'Bearer ...' },
|
|
75
|
+
timeout: 5000,
|
|
76
|
+
devMode: true
|
|
77
|
+
})
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
## URL Handling
|
|
81
|
+
|
|
82
|
+
When forming the final URL, the class automatically replaces special markers with current values from the localization settings (`Geo`):
|
|
83
|
+
- `{locale}` — current locale (e.g., `en-US`).
|
|
84
|
+
- `{country}` — current country (e.g., `us`).
|
|
85
|
+
- `{language}` — current language (e.g., `en`).
|
|
86
|
+
|
|
87
|
+
```javascript
|
|
88
|
+
// If the current locale is 'en-US', the final path will be '/api/en-US/users'
|
|
89
|
+
const data = await Api.get({ path: '{locale}/users' })
|
|
90
|
+
```
|
|
54
91
|
```
|
|
55
92
|
|
|
56
93
|
## Lifecycle Hooks
|
|
@@ -10,11 +10,12 @@ import {Meta} from '@storybook/addon-docs/blocks'
|
|
|
10
10
|
|
|
11
11
|
Класс предоставляет полный набор инструментов для управления сетевым взаимодействием:
|
|
12
12
|
- **CRUD методы** — выполнение `GET`, `POST`, `PUT`, `PATCH`, `DELETE` запросов.
|
|
13
|
-
- **Глобальная конфигурация** — настройка базовых URL, заголовков и параметров.
|
|
13
|
+
- **Глобальная конфигурация** — настройка базовых URL, источников (origin), заголовков и параметров.
|
|
14
14
|
- **Хуки жизненного цикла** — обработка событий до и после запроса (например, для Refresh Token).
|
|
15
15
|
- **Гидратация (SSR)** — передача данных от сервера к клиенту для предотвращения дублирования запросов.
|
|
16
16
|
- **Кэширование** — сохранение ответов в памяти или внешнем хранилище (LocalStorage).
|
|
17
17
|
- **Эмуляция ответов** — создание мок-данных для разработки и тестирования.
|
|
18
|
+
- **Автоматическая локализация** — замена меток `{locale}`, `{country}` и `{language}` в путях запросов.
|
|
18
19
|
- **Управление загрузкой и ошибками** — интеграция с глобальными компонентами индикации и центрами ошибок.
|
|
19
20
|
|
|
20
21
|
## Базовое использование
|
|
@@ -40,7 +41,11 @@ const newUser = await Api.post<User>({
|
|
|
40
41
|
|
|
41
42
|
```javascript
|
|
42
43
|
// Установка базового URL для всех относительных путей
|
|
43
|
-
Api.setUrl('
|
|
44
|
+
Api.setUrl('/api/')
|
|
45
|
+
|
|
46
|
+
// Установка источника (протокола и домена) для базового URL
|
|
47
|
+
// Если urlRoot начинается с '/', к нему будет добавлен origin
|
|
48
|
+
Api.setOrigin('https://api.example.com')
|
|
44
49
|
|
|
45
50
|
// Добавление общих заголовков (например, токен авторизации)
|
|
46
51
|
Api.setHeaders({
|
|
@@ -51,6 +56,38 @@ Api.setHeaders({
|
|
|
51
56
|
Api.setRequestDefault({
|
|
52
57
|
app_version: '1.0.0'
|
|
53
58
|
})
|
|
59
|
+
|
|
60
|
+
// Проверка, работает ли сервер на localhost
|
|
61
|
+
if (Api.isLocalhost()) {
|
|
62
|
+
console.log('Работаем локально')
|
|
63
|
+
}
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
### Метод setConfig
|
|
67
|
+
|
|
68
|
+
Позволяет установить все основные настройки одним объектом.
|
|
69
|
+
|
|
70
|
+
```javascript
|
|
71
|
+
Api.setConfig({
|
|
72
|
+
urlRoot: '/api/',
|
|
73
|
+
origin: 'https://api.example.com',
|
|
74
|
+
headers: { 'Authorization': 'Bearer ...' },
|
|
75
|
+
timeout: 5000,
|
|
76
|
+
devMode: true
|
|
77
|
+
})
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
## Работа с URL
|
|
81
|
+
|
|
82
|
+
При формировании итогового URL класс автоматически заменяет специальные метки на текущие значения из настроек локализации (`Geo`):
|
|
83
|
+
- `{locale}` — текущая локаль (например, `ru-RU`).
|
|
84
|
+
- `{country}` — текущая страна (например, `ru`).
|
|
85
|
+
- `{language}` — текущий язык (например, `ru`).
|
|
86
|
+
|
|
87
|
+
```javascript
|
|
88
|
+
// Если текущая локаль 'ru-RU', итоговый путь будет '/api/ru-RU/users'
|
|
89
|
+
const data = await Api.get({ path: '{locale}/users' })
|
|
90
|
+
```
|
|
54
91
|
```
|
|
55
92
|
|
|
56
93
|
## Хуки жизненного цикла
|
|
@@ -10,11 +10,12 @@ Lớp `Api` là công cụ trung tâm để thực hiện các yêu cầu HTTP.
|
|
|
10
10
|
|
|
11
11
|
Lớp cung cấp một bộ công cụ toàn diện để quản lý tương tác mạng:
|
|
12
12
|
- **Các phương thức CRUD** — thực hiện các yêu cầu `GET`, `POST`, `PUT`, `PATCH`, `DELETE`.
|
|
13
|
-
- **Cấu hình toàn cục** — thiết lập URL cơ sở, tiêu đề và tham số.
|
|
13
|
+
- **Cấu hình toàn cục** — thiết lập URL cơ sở, nguồn (origin), tiêu đề và tham số.
|
|
14
14
|
- **Hook vòng đời** — xử lý các sự kiện trước và sau yêu cầu (ví dụ: cho Refresh Token).
|
|
15
15
|
- **Hydration (SSR)** — chuyển dữ liệu từ máy chủ sang máy khách để ngăn chặn các yêu cầu trùng lặp.
|
|
16
16
|
- **Bộ nhớ đệm (Caching)** — lưu các phản hồi trong bộ nhớ hoặc bộ nhớ ngoài (LocalStorage).
|
|
17
17
|
- **Giả lập phản hồi** — tạo dữ liệu giả để phát triển và kiểm thử.
|
|
18
|
+
- **Tự động bản địa hóa** — thay thế các nhãn `{locale}`, `{country}` và `{language}` trong đường dẫn yêu cầu.
|
|
18
19
|
- **Quản lý tải và lỗi** — tích hợp với các thành phần chỉ báo toàn cục và trung tâm lỗi.
|
|
19
20
|
|
|
20
21
|
## Cách dùng cơ bản
|
|
@@ -40,7 +41,11 @@ Bạn có thể cấu hình hành vi của API trên toàn hệ thống, ví d
|
|
|
40
41
|
|
|
41
42
|
```javascript
|
|
42
43
|
// Đặt URL cơ sở cho tất cả các đường dẫn tương đối
|
|
43
|
-
Api.setUrl('
|
|
44
|
+
Api.setUrl('/api/')
|
|
45
|
+
|
|
46
|
+
// Thiết lập nguồn (giao thức và tên miền) cho URL cơ sở
|
|
47
|
+
// Nếu urlRoot bắt đầu bằng '/', origin sẽ được thêm vào trước nó
|
|
48
|
+
Api.setOrigin('https://api.example.com')
|
|
44
49
|
|
|
45
50
|
// Thêm các tiêu đề chung (ví dụ: token xác thực)
|
|
46
51
|
Api.setHeaders({
|
|
@@ -51,6 +56,38 @@ Api.setHeaders({
|
|
|
51
56
|
Api.setRequestDefault({
|
|
52
57
|
app_version: '1.0.0'
|
|
53
58
|
})
|
|
59
|
+
|
|
60
|
+
// Kiểm tra xem máy chủ có đang chạy trên localhost không
|
|
61
|
+
if (Api.isLocalhost()) {
|
|
62
|
+
console.log('Đang chạy trên máy cục bộ')
|
|
63
|
+
}
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
### Phương thức setConfig
|
|
67
|
+
|
|
68
|
+
Cho phép thiết lập tất cả các cài đặt chính bằng một đối tượng duy nhất.
|
|
69
|
+
|
|
70
|
+
```javascript
|
|
71
|
+
Api.setConfig({
|
|
72
|
+
urlRoot: '/api/',
|
|
73
|
+
origin: 'https://api.example.com',
|
|
74
|
+
headers: { 'Authorization': 'Bearer ...' },
|
|
75
|
+
timeout: 5000,
|
|
76
|
+
devMode: true
|
|
77
|
+
})
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
## Xử lý URL
|
|
81
|
+
|
|
82
|
+
Khi tạo URL cuối cùng, lớp sẽ tự động thay thế các nhãn đặc biệt bằng các giá trị hiện tại từ cài đặt bản địa hóa (`Geo`):
|
|
83
|
+
- `{locale}` — locale hiện tại (ví dụ: `vi-VN`).
|
|
84
|
+
- `{country}` — quốc gia hiện tại (ví dụ: `vn`).
|
|
85
|
+
- `{language}` — ngôn ngữ hiện tại (ví dụ: `vi`).
|
|
86
|
+
|
|
87
|
+
```javascript
|
|
88
|
+
// Nếu locale hiện tại là 'vi-VN', đường dẫn cuối cùng sẽ là '/api/vi-VN/users'
|
|
89
|
+
const data = await Api.get({ path: '{locale}/users' })
|
|
90
|
+
```
|
|
54
91
|
```
|
|
55
92
|
|
|
56
93
|
## Hook vòng đời
|
package/src/library.ts
DELETED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|