@soxa-ui/solid 0.0.0-stage → 0.3.0-beta.1
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 +266 -2
- package/dist/adapter/common/ResolvedSlot.d.ts +29 -0
- package/dist/adapter/common/ResolvedSlot.js +42 -0
- package/dist/adapter/common/click-action.d.ts +6 -0
- package/dist/adapter/common/click-action.js +11 -0
- package/dist/adapter/common/createSolidAdapterContext.d.ts +8 -0
- package/dist/adapter/common/createSolidAdapterContext.js +20 -0
- package/dist/adapter/common/handlers.d.ts +10 -0
- package/dist/adapter/common/handlers.js +10 -0
- package/dist/adapter/common/hydration.d.ts +23 -0
- package/dist/adapter/common/hydration.js +44 -0
- package/dist/adapter/common/icon.d.ts +9 -0
- package/dist/adapter/common/icon.js +28 -0
- package/dist/adapter/common/index.d.ts +9 -0
- package/dist/adapter/common/naming.d.ts +3 -0
- package/dist/adapter/common/naming.js +9 -0
- package/dist/adapter/common/profile.d.ts +3 -0
- package/dist/adapter/common/profile.js +9 -0
- package/dist/adapter/common/root.d.ts +96 -0
- package/dist/adapter/common/root.js +128 -0
- package/dist/adapter/common/slots.d.ts +30 -0
- package/dist/adapter/common/slots.js +75 -0
- package/dist/adapter/elevator/Elevate.d.ts +12 -0
- package/dist/adapter/elevator/Elevate.js +16 -0
- package/dist/adapter/elevator/elevator.class.d.ts +17 -0
- package/dist/adapter/elevator/elevator.class.js +27 -0
- package/dist/adapter/elevator/index.d.ts +4 -0
- package/dist/adapter/elevator/layer.d.ts +16 -0
- package/dist/adapter/elevator/layer.js +28 -0
- package/dist/adapter/elevator/useElevator.d.ts +13 -0
- package/dist/adapter/elevator/useElevator.js +19 -0
- package/dist/adapter/index.d.ts +5 -0
- package/dist/adapter/locale/LocaleProvider.d.ts +22 -0
- package/dist/adapter/locale/LocaleProvider.js +33 -0
- package/dist/adapter/locale/context.d.ts +4 -0
- package/dist/adapter/locale/context.js +9 -0
- package/dist/adapter/locale/index.d.ts +2 -0
- package/dist/adapter/runtime/KeyedFor.d.ts +14 -0
- package/dist/adapter/runtime/KeyedFor.js +54 -0
- package/dist/adapter/runtime/Root.d.ts +20 -0
- package/dist/adapter/runtime/Root.js +43 -0
- package/dist/adapter/runtime/Teleport.d.ts +14 -0
- package/dist/adapter/runtime/Teleport.js +45 -0
- package/dist/adapter/runtime/field-text.d.ts +22 -0
- package/dist/adapter/runtime/field-text.js +38 -0
- package/dist/adapter/runtime/flow.d.ts +34 -0
- package/dist/adapter/runtime/flow.js +70 -0
- package/dist/adapter/runtime/index.d.ts +8 -0
- package/dist/adapter/runtime/part-node.d.ts +38 -0
- package/dist/adapter/runtime/part-node.js +76 -0
- package/dist/adapter/runtime/state.d.ts +43 -0
- package/dist/adapter/runtime/state.js +116 -0
- package/dist/adapter/runtime/tag.d.ts +11 -0
- package/dist/adapter/runtime/tag.js +11 -0
- package/dist/adapter/runtime/useAdapter.d.ts +74 -0
- package/dist/adapter/runtime/useAdapter.js +110 -0
- package/dist/adapter/toasts/index.d.ts +3 -0
- package/dist/adapter/toasts/render.d.ts +3 -0
- package/dist/adapter/toasts/render.js +7 -0
- package/dist/adapter/toasts/types.d.ts +6 -0
- package/dist/adapter/toasts/useToasts.d.ts +8 -0
- package/dist/adapter/toasts/useToasts.js +15 -0
- package/dist/components/accordion/Accordion.d.ts +4 -0
- package/dist/components/accordion/Accordion.js +71 -0
- package/dist/components/accordion/base.component.d.ts +7 -0
- package/dist/components/accordion/index.d.ts +8 -0
- package/dist/components/accordion/index.js +9 -0
- package/dist/components/accordion/item/Item.d.ts +7 -0
- package/dist/components/accordion/item/Item.js +110 -0
- package/dist/components/accordion/item/base.component.d.ts +9 -0
- package/dist/components/accordion/item/index.d.ts +3 -0
- package/dist/components/accordion/item/setup.component.d.ts +39 -0
- package/dist/components/accordion/item/setup.component.js +24 -0
- package/dist/components/accordion/setup.component.d.ts +35 -0
- package/dist/components/accordion/setup.component.js +27 -0
- package/dist/components/button/Button.d.ts +12 -0
- package/dist/components/button/Button.js +59 -0
- package/dist/components/button/base.component.d.ts +8 -0
- package/dist/components/button/index.d.ts +3 -0
- package/dist/components/button/setup.component.d.ts +22 -0
- package/dist/components/button/setup.component.js +13 -0
- package/dist/components/calendar/Calendar.d.ts +8 -0
- package/dist/components/calendar/Calendar.js +335 -0
- package/dist/components/calendar/base.component.d.ts +7 -0
- package/dist/components/calendar/index.d.ts +8 -0
- package/dist/components/calendar/index.js +9 -0
- package/dist/components/calendar/item/Item.d.ts +8 -0
- package/dist/components/calendar/item/Item.js +51 -0
- package/dist/components/calendar/item/base.component.d.ts +7 -0
- package/dist/components/calendar/item/index.d.ts +3 -0
- package/dist/components/calendar/item/setup.component.d.ts +13 -0
- package/dist/components/calendar/item/setup.component.js +21 -0
- package/dist/components/calendar/setup.component.d.ts +36 -0
- package/dist/components/calendar/setup.component.js +28 -0
- package/dist/components/check-box/CheckBox.d.ts +8 -0
- package/dist/components/check-box/CheckBox.js +97 -0
- package/dist/components/check-box/base.component.d.ts +8 -0
- package/dist/components/check-box/index.d.ts +3 -0
- package/dist/components/check-box/setup.component.d.ts +35 -0
- package/dist/components/check-box/setup.component.js +18 -0
- package/dist/components/component/base.component.d.ts +6 -0
- package/dist/components/component/index.d.ts +1 -0
- package/dist/components/component-view/ComponentView.d.ts +4 -0
- package/dist/components/component-view/ComponentView.js +43 -0
- package/dist/components/component-view/base.component.d.ts +6 -0
- package/dist/components/component-view/index.d.ts +3 -0
- package/dist/components/component-view/setup.component.d.ts +9 -0
- package/dist/components/component-view/setup.component.js +13 -0
- package/dist/components/control/base.component.d.ts +6 -0
- package/dist/components/control/index.d.ts +2 -0
- package/dist/components/control/setup.component.d.ts +22 -0
- package/dist/components/date-input/DateInput.d.ts +7 -0
- package/dist/components/date-input/DateInput.js +203 -0
- package/dist/components/date-input/base.component.d.ts +7 -0
- package/dist/components/date-input/index.d.ts +3 -0
- package/dist/components/date-input/setup.component.d.ts +36 -0
- package/dist/components/date-input/setup.component.js +19 -0
- package/dist/components/date-picker/DatePicker.d.ts +7 -0
- package/dist/components/date-picker/DatePicker.js +273 -0
- package/dist/components/date-picker/base.component.d.ts +7 -0
- package/dist/components/date-picker/index.d.ts +3 -0
- package/dist/components/date-picker/setup.component.d.ts +58 -0
- package/dist/components/date-picker/setup.component.js +26 -0
- package/dist/components/dialog/Dialog.d.ts +7 -0
- package/dist/components/dialog/Dialog.js +160 -0
- package/dist/components/dialog/base.component.d.ts +7 -0
- package/dist/components/dialog/index.d.ts +3 -0
- package/dist/components/dialog/setup.component.d.ts +29 -0
- package/dist/components/dialog/setup.component.js +13 -0
- package/dist/components/drag-and-drop/DragAndDrop.d.ts +4 -0
- package/dist/components/drag-and-drop/DragAndDrop.js +19 -0
- package/dist/components/drag-and-drop/base.component.d.ts +7 -0
- package/dist/components/drag-and-drop/index.d.ts +3 -0
- package/dist/components/drag-and-drop/setup.component.d.ts +11 -0
- package/dist/components/drag-and-drop/setup.component.js +21 -0
- package/dist/components/drawer/Drawer.d.ts +4 -0
- package/dist/components/drawer/Drawer.js +131 -0
- package/dist/components/drawer/base.component.d.ts +7 -0
- package/dist/components/drawer/index.d.ts +3 -0
- package/dist/components/drawer/setup.component.d.ts +29 -0
- package/dist/components/drawer/setup.component.js +13 -0
- package/dist/components/field/Field.d.ts +4 -0
- package/dist/components/field/Field.js +112 -0
- package/dist/components/field/base.component.d.ts +6 -0
- package/dist/components/field/index.d.ts +3 -0
- package/dist/components/field/setup.component.d.ts +18 -0
- package/dist/components/field/setup.component.js +18 -0
- package/dist/components/frame/Frame.d.ts +4 -0
- package/dist/components/frame/Frame.js +54 -0
- package/dist/components/frame/base.component.d.ts +6 -0
- package/dist/components/frame/index.d.ts +3 -0
- package/dist/components/frame/setup.component.d.ts +33 -0
- package/dist/components/frame/setup.component.js +13 -0
- package/dist/components/icon/Icon.d.ts +7 -0
- package/dist/components/icon/Icon.js +38 -0
- package/dist/components/icon/base.component.d.ts +6 -0
- package/dist/components/icon/index.d.ts +3 -0
- package/dist/components/icon/setup.component.d.ts +19 -0
- package/dist/components/icon/setup.component.js +13 -0
- package/dist/components/index.d.ts +43 -0
- package/dist/components/input/Input.d.ts +8 -0
- package/dist/components/input/Input.js +159 -0
- package/dist/components/input/base.component.d.ts +8 -0
- package/dist/components/input/index.d.ts +3 -0
- package/dist/components/input/setup.component.d.ts +35 -0
- package/dist/components/input/setup.component.js +18 -0
- package/dist/components/input-control/base.component.d.ts +7 -0
- package/dist/components/input-control/index.d.ts +2 -0
- package/dist/components/input-control/setup.component.d.ts +26 -0
- package/dist/components/interactive/base.component.d.ts +6 -0
- package/dist/components/interactive/index.d.ts +2 -0
- package/dist/components/interactive/setup.component.d.ts +9 -0
- package/dist/components/item-row/ItemRow.d.ts +13 -0
- package/dist/components/item-row/ItemRow.js +18 -0
- package/dist/components/item-row/index.d.ts +2 -0
- package/dist/components/item-row/setup.component.d.ts +22 -0
- package/dist/components/item-row/setup.component.js +13 -0
- package/dist/components/label/Label.d.ts +8 -0
- package/dist/components/label/Label.js +58 -0
- package/dist/components/label/base.component.d.ts +6 -0
- package/dist/components/label/index.d.ts +3 -0
- package/dist/components/label/setup.component.d.ts +9 -0
- package/dist/components/label/setup.component.js +13 -0
- package/dist/components/list-box/ListBox.d.ts +8 -0
- package/dist/components/list-box/ListBox.js +160 -0
- package/dist/components/list-box/base.component.d.ts +9 -0
- package/dist/components/list-box/group/Group.d.ts +4 -0
- package/dist/components/list-box/group/Group.js +63 -0
- package/dist/components/list-box/group/base.component.d.ts +7 -0
- package/dist/components/list-box/group/index.d.ts +3 -0
- package/dist/components/list-box/group/setup.component.d.ts +19 -0
- package/dist/components/list-box/group/setup.component.js +19 -0
- package/dist/components/list-box/index.d.ts +11 -0
- package/dist/components/list-box/index.js +14 -0
- package/dist/components/list-box/item/Item.d.ts +8 -0
- package/dist/components/list-box/item/Item.js +97 -0
- package/dist/components/list-box/item/base.component.d.ts +9 -0
- package/dist/components/list-box/item/index.d.ts +3 -0
- package/dist/components/list-box/item/setup.component.d.ts +42 -0
- package/dist/components/list-box/item/setup.component.js +25 -0
- package/dist/components/list-box/setup.component.d.ts +35 -0
- package/dist/components/list-box/setup.component.js +27 -0
- package/dist/components/menu/Menu.d.ts +8 -0
- package/dist/components/menu/Menu.js +97 -0
- package/dist/components/menu/base.component.d.ts +7 -0
- package/dist/components/menu/checkbox-item/CheckboxItem.d.ts +7 -0
- package/dist/components/menu/checkbox-item/CheckboxItem.js +98 -0
- package/dist/components/menu/checkbox-item/base.component.d.ts +9 -0
- package/dist/components/menu/checkbox-item/index.d.ts +3 -0
- package/dist/components/menu/checkbox-item/setup.component.d.ts +37 -0
- package/dist/components/menu/checkbox-item/setup.component.js +24 -0
- package/dist/components/menu/group/Group.d.ts +4 -0
- package/dist/components/menu/group/Group.js +63 -0
- package/dist/components/menu/group/base.component.d.ts +7 -0
- package/dist/components/menu/group/index.d.ts +3 -0
- package/dist/components/menu/group/setup.component.d.ts +18 -0
- package/dist/components/menu/group/setup.component.js +18 -0
- package/dist/components/menu/index.d.ts +29 -0
- package/dist/components/menu/index.js +32 -0
- package/dist/components/menu/item/Item.d.ts +7 -0
- package/dist/components/menu/item/Item.js +79 -0
- package/dist/components/menu/item/base.component.d.ts +9 -0
- package/dist/components/menu/item/index.d.ts +3 -0
- package/dist/components/menu/item/setup.component.d.ts +37 -0
- package/dist/components/menu/item/setup.component.js +24 -0
- package/dist/components/menu/popover-item/PopoverItem.d.ts +7 -0
- package/dist/components/menu/popover-item/PopoverItem.js +118 -0
- package/dist/components/menu/popover-item/base.component.d.ts +9 -0
- package/dist/components/menu/popover-item/index.d.ts +3 -0
- package/dist/components/menu/popover-item/setup.component.d.ts +48 -0
- package/dist/components/menu/popover-item/setup.component.js +24 -0
- package/dist/components/menu/radio-group/RadioGroup.d.ts +4 -0
- package/dist/components/menu/radio-group/RadioGroup.js +63 -0
- package/dist/components/menu/radio-group/base.component.d.ts +7 -0
- package/dist/components/menu/radio-group/index.d.ts +3 -0
- package/dist/components/menu/radio-group/setup.component.d.ts +18 -0
- package/dist/components/menu/radio-group/setup.component.js +18 -0
- package/dist/components/menu/radio-item/RadioItem.d.ts +4 -0
- package/dist/components/menu/radio-item/RadioItem.js +86 -0
- package/dist/components/menu/radio-item/base.component.d.ts +9 -0
- package/dist/components/menu/radio-item/index.d.ts +3 -0
- package/dist/components/menu/radio-item/setup.component.d.ts +37 -0
- package/dist/components/menu/radio-item/setup.component.js +24 -0
- package/dist/components/menu/separator/Separator.d.ts +4 -0
- package/dist/components/menu/separator/Separator.js +39 -0
- package/dist/components/menu/separator/base.component.d.ts +7 -0
- package/dist/components/menu/separator/index.d.ts +3 -0
- package/dist/components/menu/separator/setup.component.d.ts +9 -0
- package/dist/components/menu/separator/setup.component.js +13 -0
- package/dist/components/menu/setup.component.d.ts +29 -0
- package/dist/components/menu/setup.component.js +27 -0
- package/dist/components/menu/submenu/Submenu.d.ts +23 -0
- package/dist/components/menu/submenu/Submenu.js +240 -0
- package/dist/components/menu/submenu/base.component.d.ts +9 -0
- package/dist/components/menu/submenu/index.d.ts +3 -0
- package/dist/components/menu/submenu/setup.component.d.ts +54 -0
- package/dist/components/menu/submenu/setup.component.js +34 -0
- package/dist/components/number-input/NumberInput.d.ts +8 -0
- package/dist/components/number-input/NumberInput.js +220 -0
- package/dist/components/number-input/base.component.d.ts +8 -0
- package/dist/components/number-input/index.d.ts +3 -0
- package/dist/components/number-input/setup.component.d.ts +35 -0
- package/dist/components/number-input/setup.component.js +18 -0
- package/dist/components/pagination/Pagination.d.ts +4 -0
- package/dist/components/pagination/Pagination.js +155 -0
- package/dist/components/pagination/base.component.d.ts +7 -0
- package/dist/components/pagination/index.d.ts +3 -0
- package/dist/components/pagination/item/Item.d.ts +4 -0
- package/dist/components/pagination/item/Item.js +63 -0
- package/dist/components/pagination/item/base.component.d.ts +7 -0
- package/dist/components/pagination/item/index.d.ts +3 -0
- package/dist/components/pagination/item/setup.component.d.ts +22 -0
- package/dist/components/pagination/item/setup.component.js +24 -0
- package/dist/components/pagination/setup.component.d.ts +35 -0
- package/dist/components/pagination/setup.component.js +27 -0
- package/dist/components/popover/Popover.d.ts +7 -0
- package/dist/components/popover/Popover.js +120 -0
- package/dist/components/popover/base.component.d.ts +7 -0
- package/dist/components/popover/index.d.ts +3 -0
- package/dist/components/popover/setup.component.d.ts +24 -0
- package/dist/components/popover/setup.component.js +13 -0
- package/dist/components/progress-linear/ProgressLinear.d.ts +4 -0
- package/dist/components/progress-linear/ProgressLinear.js +44 -0
- package/dist/components/progress-linear/base.component.d.ts +6 -0
- package/dist/components/progress-linear/index.d.ts +3 -0
- package/dist/components/progress-linear/setup.component.d.ts +17 -0
- package/dist/components/progress-linear/setup.component.js +13 -0
- package/dist/components/progress-spinner/ProgressSpinner.d.ts +4 -0
- package/dist/components/progress-spinner/ProgressSpinner.js +44 -0
- package/dist/components/progress-spinner/base.component.d.ts +6 -0
- package/dist/components/progress-spinner/index.d.ts +3 -0
- package/dist/components/progress-spinner/setup.component.d.ts +17 -0
- package/dist/components/progress-spinner/setup.component.js +13 -0
- package/dist/components/radio-group/RadioGroup.d.ts +4 -0
- package/dist/components/radio-group/RadioGroup.js +70 -0
- package/dist/components/radio-group/base.component.d.ts +7 -0
- package/dist/components/radio-group/index.d.ts +8 -0
- package/dist/components/radio-group/index.js +9 -0
- package/dist/components/radio-group/item/Item.d.ts +7 -0
- package/dist/components/radio-group/item/Item.js +87 -0
- package/dist/components/radio-group/item/base.component.d.ts +9 -0
- package/dist/components/radio-group/item/index.d.ts +3 -0
- package/dist/components/radio-group/item/setup.component.d.ts +35 -0
- package/dist/components/radio-group/item/setup.component.js +24 -0
- package/dist/components/radio-group/setup.component.d.ts +35 -0
- package/dist/components/radio-group/setup.component.js +27 -0
- package/dist/components/rating/Rating.d.ts +7 -0
- package/dist/components/rating/Rating.js +99 -0
- package/dist/components/rating/base.component.d.ts +7 -0
- package/dist/components/rating/index.d.ts +3 -0
- package/dist/components/rating/setup.component.d.ts +35 -0
- package/dist/components/rating/setup.component.js +18 -0
- package/dist/components/scroller/Scroller.d.ts +11 -0
- package/dist/components/scroller/Scroller.js +106 -0
- package/dist/components/scroller/base.component.d.ts +7 -0
- package/dist/components/scroller/index.d.ts +3 -0
- package/dist/components/scroller/setup.component.d.ts +22 -0
- package/dist/components/scroller/setup.component.js +13 -0
- package/dist/components/select/Select.d.ts +8 -0
- package/dist/components/select/Select.js +269 -0
- package/dist/components/select/base.component.d.ts +9 -0
- package/dist/components/select/group/Group.d.ts +4 -0
- package/dist/components/select/group/Group.js +63 -0
- package/dist/components/select/group/base.component.d.ts +7 -0
- package/dist/components/select/group/index.d.ts +3 -0
- package/dist/components/select/group/setup.component.d.ts +18 -0
- package/dist/components/select/group/setup.component.js +18 -0
- package/dist/components/select/index.d.ts +11 -0
- package/dist/components/select/index.js +14 -0
- package/dist/components/select/item/Item.d.ts +9 -0
- package/dist/components/select/item/Item.js +94 -0
- package/dist/components/select/item/base.component.d.ts +9 -0
- package/dist/components/select/item/index.d.ts +3 -0
- package/dist/components/select/item/setup.component.d.ts +41 -0
- package/dist/components/select/item/setup.component.js +24 -0
- package/dist/components/select/setup.component.d.ts +55 -0
- package/dist/components/select/setup.component.js +28 -0
- package/dist/components/skeleton/Skeleton.d.ts +7 -0
- package/dist/components/skeleton/Skeleton.js +46 -0
- package/dist/components/skeleton/base.component.d.ts +6 -0
- package/dist/components/skeleton/index.d.ts +3 -0
- package/dist/components/skeleton/setup.component.d.ts +11 -0
- package/dist/components/skeleton/setup.component.js +13 -0
- package/dist/components/slider/Slider.d.ts +7 -0
- package/dist/components/slider/Slider.js +149 -0
- package/dist/components/slider/base.component.d.ts +7 -0
- package/dist/components/slider/index.d.ts +3 -0
- package/dist/components/slider/setup.component.d.ts +31 -0
- package/dist/components/slider/setup.component.js +18 -0
- package/dist/components/stylable/base.component.d.ts +6 -0
- package/dist/components/stylable/index.d.ts +2 -0
- package/dist/components/stylable/setup.component.d.ts +9 -0
- package/dist/components/switch/Switch.d.ts +4 -0
- package/dist/components/switch/Switch.js +89 -0
- package/dist/components/switch/base.component.d.ts +8 -0
- package/dist/components/switch/index.d.ts +3 -0
- package/dist/components/switch/setup.component.d.ts +35 -0
- package/dist/components/switch/setup.component.js +18 -0
- package/dist/components/table/Table.d.ts +8 -0
- package/dist/components/table/Table.js +178 -0
- package/dist/components/table/base.component.d.ts +7 -0
- package/dist/components/table/column/Column.d.ts +7 -0
- package/dist/components/table/column/Column.js +110 -0
- package/dist/components/table/column/base.component.d.ts +7 -0
- package/dist/components/table/column/index.d.ts +3 -0
- package/dist/components/table/column/setup.component.d.ts +22 -0
- package/dist/components/table/column/setup.component.js +20 -0
- package/dist/components/table/index.d.ts +11 -0
- package/dist/components/table/index.js +14 -0
- package/dist/components/table/row/Cells.d.ts +17 -0
- package/dist/components/table/row/Cells.js +61 -0
- package/dist/components/table/row/Row.d.ts +7 -0
- package/dist/components/table/row/Row.js +80 -0
- package/dist/components/table/row/base.component.d.ts +7 -0
- package/dist/components/table/row/index.d.ts +3 -0
- package/dist/components/table/row/setup.component.d.ts +23 -0
- package/dist/components/table/row/setup.component.js +25 -0
- package/dist/components/table/setup.component.d.ts +39 -0
- package/dist/components/table/setup.component.js +29 -0
- package/dist/components/tabs/Tabs.d.ts +10 -0
- package/dist/components/tabs/Tabs.js +104 -0
- package/dist/components/tabs/base.component.d.ts +9 -0
- package/dist/components/tabs/content/Content.d.ts +4 -0
- package/dist/components/tabs/content/Content.js +39 -0
- package/dist/components/tabs/content/base.component.d.ts +7 -0
- package/dist/components/tabs/content/index.d.ts +3 -0
- package/dist/components/tabs/content/setup.component.d.ts +18 -0
- package/dist/components/tabs/content/setup.component.js +22 -0
- package/dist/components/tabs/index.d.ts +11 -0
- package/dist/components/tabs/index.js +14 -0
- package/dist/components/tabs/item/Item.d.ts +8 -0
- package/dist/components/tabs/item/Item.js +115 -0
- package/dist/components/tabs/item/base.component.d.ts +9 -0
- package/dist/components/tabs/item/index.d.ts +3 -0
- package/dist/components/tabs/item/setup.component.d.ts +39 -0
- package/dist/components/tabs/item/setup.component.js +24 -0
- package/dist/components/tabs/setup.component.d.ts +35 -0
- package/dist/components/tabs/setup.component.js +27 -0
- package/dist/components/tags/Tags.d.ts +7 -0
- package/dist/components/tags/Tags.js +76 -0
- package/dist/components/tags/base.component.d.ts +7 -0
- package/dist/components/tags/index.d.ts +8 -0
- package/dist/components/tags/index.js +9 -0
- package/dist/components/tags/item/Item.d.ts +9 -0
- package/dist/components/tags/item/Item.js +118 -0
- package/dist/components/tags/item/base.component.d.ts +9 -0
- package/dist/components/tags/item/index.d.ts +3 -0
- package/dist/components/tags/item/setup.component.d.ts +35 -0
- package/dist/components/tags/item/setup.component.js +24 -0
- package/dist/components/tags/setup.component.d.ts +35 -0
- package/dist/components/tags/setup.component.js +27 -0
- package/dist/components/textable/base.component.d.ts +6 -0
- package/dist/components/textable/index.d.ts +2 -0
- package/dist/components/textable/setup.component.d.ts +22 -0
- package/dist/components/textarea/Textarea.d.ts +4 -0
- package/dist/components/textarea/Textarea.js +84 -0
- package/dist/components/textarea/base.component.d.ts +8 -0
- package/dist/components/textarea/index.d.ts +3 -0
- package/dist/components/textarea/setup.component.d.ts +28 -0
- package/dist/components/textarea/setup.component.js +15 -0
- package/dist/components/toasts/Toasts.d.ts +7 -0
- package/dist/components/toasts/Toasts.js +85 -0
- package/dist/components/toasts/base.component.d.ts +7 -0
- package/dist/components/toasts/index.d.ts +3 -0
- package/dist/components/toasts/item/Item.d.ts +7 -0
- package/dist/components/toasts/item/Item.js +122 -0
- package/dist/components/toasts/item/base.component.d.ts +7 -0
- package/dist/components/toasts/item/index.d.ts +3 -0
- package/dist/components/toasts/item/setup.component.d.ts +13 -0
- package/dist/components/toasts/item/setup.component.js +21 -0
- package/dist/components/toasts/setup.component.d.ts +24 -0
- package/dist/components/toasts/setup.component.js +27 -0
- package/dist/components/tooltip/Tooltip.d.ts +4 -0
- package/dist/components/tooltip/Tooltip.js +60 -0
- package/dist/components/tooltip/base.component.d.ts +7 -0
- package/dist/components/tooltip/index.d.ts +3 -0
- package/dist/components/tooltip/setup.component.d.ts +16 -0
- package/dist/components/tooltip/setup.component.js +13 -0
- package/dist/components/value-control/base.component.d.ts +7 -0
- package/dist/components/value-control/index.d.ts +2 -0
- package/dist/components/value-control/setup.component.d.ts +22 -0
- package/dist/components/virtual/Virtual.d.ts +4 -0
- package/dist/components/virtual/Virtual.js +19 -0
- package/dist/components/virtual/base.component.d.ts +7 -0
- package/dist/components/virtual/index.d.ts +3 -0
- package/dist/components/virtual/setup.component.d.ts +11 -0
- package/dist/components/virtual/setup.component.js +21 -0
- package/dist/index.d.ts +10 -0
- package/dist/index.js +60 -0
- package/dist/source/adapter/common/ResolvedSlot.jsx +31 -0
- package/dist/source/adapter/common/click-action.js +8 -0
- package/dist/source/adapter/common/createSolidAdapterContext.js +18 -0
- package/dist/source/adapter/common/handlers.js +13 -0
- package/dist/source/adapter/common/hydration.js +42 -0
- package/dist/source/adapter/common/icon.jsx +19 -0
- package/dist/source/adapter/common/index.js +9 -0
- package/dist/source/adapter/common/naming.js +6 -0
- package/dist/source/adapter/common/profile.js +3 -0
- package/dist/source/adapter/common/root.js +113 -0
- package/dist/source/adapter/common/slots.js +74 -0
- package/dist/source/adapter/elevator/Elevate.jsx +11 -0
- package/dist/source/adapter/elevator/elevator.class.js +25 -0
- package/dist/source/adapter/elevator/index.js +3 -0
- package/dist/source/adapter/elevator/layer.js +25 -0
- package/dist/source/adapter/elevator/useElevator.js +16 -0
- package/dist/source/adapter/index.js +5 -0
- package/dist/source/adapter/locale/LocaleProvider.jsx +24 -0
- package/dist/source/adapter/locale/context.js +6 -0
- package/dist/source/adapter/locale/index.js +1 -0
- package/dist/source/adapter/runtime/KeyedFor.jsx +60 -0
- package/dist/source/adapter/runtime/Root.jsx +51 -0
- package/dist/source/adapter/runtime/Teleport.jsx +28 -0
- package/dist/source/adapter/runtime/field-text.js +44 -0
- package/dist/source/adapter/runtime/flow.js +74 -0
- package/dist/source/adapter/runtime/index.js +8 -0
- package/dist/source/adapter/runtime/part-node.js +82 -0
- package/dist/source/adapter/runtime/state.js +127 -0
- package/dist/source/adapter/runtime/tag.js +10 -0
- package/dist/source/adapter/runtime/useAdapter.js +116 -0
- package/dist/source/adapter/toasts/index.js +2 -0
- package/dist/source/adapter/toasts/render.js +4 -0
- package/dist/source/adapter/toasts/types.js +1 -0
- package/dist/source/adapter/toasts/useToasts.js +14 -0
- package/dist/source/components/accordion/Accordion.jsx +27 -0
- package/dist/source/components/accordion/base.component.js +1 -0
- package/dist/source/components/accordion/index.js +7 -0
- package/dist/source/components/accordion/item/Item.jsx +51 -0
- package/dist/source/components/accordion/item/base.component.js +1 -0
- package/dist/source/components/accordion/item/index.js +3 -0
- package/dist/source/components/accordion/item/setup.component.js +13 -0
- package/dist/source/components/accordion/setup.component.js +15 -0
- package/dist/source/components/button/Button.jsx +27 -0
- package/dist/source/components/button/base.component.js +1 -0
- package/dist/source/components/button/index.js +3 -0
- package/dist/source/components/button/setup.component.js +6 -0
- package/dist/source/components/calendar/Calendar.jsx +115 -0
- package/dist/source/components/calendar/base.component.js +1 -0
- package/dist/source/components/calendar/index.js +7 -0
- package/dist/source/components/calendar/item/Item.jsx +23 -0
- package/dist/source/components/calendar/item/base.component.js +1 -0
- package/dist/source/components/calendar/item/index.js +3 -0
- package/dist/source/components/calendar/item/setup.component.js +13 -0
- package/dist/source/components/calendar/setup.component.js +17 -0
- package/dist/source/components/check-box/CheckBox.jsx +52 -0
- package/dist/source/components/check-box/base.component.js +1 -0
- package/dist/source/components/check-box/index.js +3 -0
- package/dist/source/components/check-box/setup.component.js +10 -0
- package/dist/source/components/component/base.component.js +1 -0
- package/dist/source/components/component/index.js +1 -0
- package/dist/source/components/component-view/ComponentView.jsx +18 -0
- package/dist/source/components/component-view/base.component.js +1 -0
- package/dist/source/components/component-view/index.js +3 -0
- package/dist/source/components/component-view/setup.component.js +9 -0
- package/dist/source/components/control/base.component.js +1 -0
- package/dist/source/components/control/index.js +2 -0
- package/dist/source/components/control/setup.component.js +6 -0
- package/dist/source/components/date-input/DateInput.jsx +78 -0
- package/dist/source/components/date-input/base.component.js +1 -0
- package/dist/source/components/date-input/index.js +3 -0
- package/dist/source/components/date-input/setup.component.js +11 -0
- package/dist/source/components/date-picker/DatePicker.jsx +86 -0
- package/dist/source/components/date-picker/base.component.js +1 -0
- package/dist/source/components/date-picker/index.js +3 -0
- package/dist/source/components/date-picker/setup.component.js +21 -0
- package/dist/source/components/dialog/Dialog.jsx +67 -0
- package/dist/source/components/dialog/base.component.js +1 -0
- package/dist/source/components/dialog/index.js +3 -0
- package/dist/source/components/dialog/setup.component.js +6 -0
- package/dist/source/components/drag-and-drop/DragAndDrop.jsx +7 -0
- package/dist/source/components/drag-and-drop/base.component.js +1 -0
- package/dist/source/components/drag-and-drop/index.js +3 -0
- package/dist/source/components/drag-and-drop/setup.component.js +12 -0
- package/dist/source/components/drawer/Drawer.jsx +52 -0
- package/dist/source/components/drawer/base.component.js +1 -0
- package/dist/source/components/drawer/index.js +3 -0
- package/dist/source/components/drawer/setup.component.js +6 -0
- package/dist/source/components/field/Field.jsx +48 -0
- package/dist/source/components/field/base.component.js +1 -0
- package/dist/source/components/field/index.js +3 -0
- package/dist/source/components/field/setup.component.js +10 -0
- package/dist/source/components/frame/Frame.jsx +20 -0
- package/dist/source/components/frame/base.component.js +1 -0
- package/dist/source/components/frame/index.js +3 -0
- package/dist/source/components/frame/setup.component.js +6 -0
- package/dist/source/components/icon/Icon.jsx +19 -0
- package/dist/source/components/icon/base.component.js +1 -0
- package/dist/source/components/icon/index.js +3 -0
- package/dist/source/components/icon/setup.component.js +6 -0
- package/dist/source/components/index.js +43 -0
- package/dist/source/components/input/Input.jsx +60 -0
- package/dist/source/components/input/base.component.js +1 -0
- package/dist/source/components/input/index.js +3 -0
- package/dist/source/components/input/setup.component.js +10 -0
- package/dist/source/components/input-control/base.component.js +1 -0
- package/dist/source/components/input-control/index.js +2 -0
- package/dist/source/components/input-control/setup.component.js +6 -0
- package/dist/source/components/interactive/base.component.js +1 -0
- package/dist/source/components/interactive/index.js +2 -0
- package/dist/source/components/interactive/setup.component.js +6 -0
- package/dist/source/components/item-row/ItemRow.jsx +15 -0
- package/dist/source/components/item-row/index.js +2 -0
- package/dist/source/components/item-row/setup.component.js +6 -0
- package/dist/source/components/label/Label.jsx +24 -0
- package/dist/source/components/label/base.component.js +1 -0
- package/dist/source/components/label/index.js +3 -0
- package/dist/source/components/label/setup.component.js +6 -0
- package/dist/source/components/list-box/ListBox.jsx +70 -0
- package/dist/source/components/list-box/base.component.js +1 -0
- package/dist/source/components/list-box/group/Group.jsx +24 -0
- package/dist/source/components/list-box/group/base.component.js +1 -0
- package/dist/source/components/list-box/group/index.js +3 -0
- package/dist/source/components/list-box/group/setup.component.js +11 -0
- package/dist/source/components/list-box/index.js +9 -0
- package/dist/source/components/list-box/item/Item.jsx +45 -0
- package/dist/source/components/list-box/item/base.component.js +1 -0
- package/dist/source/components/list-box/item/index.js +3 -0
- package/dist/source/components/list-box/item/setup.component.js +11 -0
- package/dist/source/components/list-box/setup.component.js +16 -0
- package/dist/source/components/menu/Menu.jsx +38 -0
- package/dist/source/components/menu/base.component.js +1 -0
- package/dist/source/components/menu/checkbox-item/CheckboxItem.jsx +39 -0
- package/dist/source/components/menu/checkbox-item/base.component.js +1 -0
- package/dist/source/components/menu/checkbox-item/index.js +3 -0
- package/dist/source/components/menu/checkbox-item/setup.component.js +13 -0
- package/dist/source/components/menu/group/Group.jsx +24 -0
- package/dist/source/components/menu/group/base.component.js +1 -0
- package/dist/source/components/menu/group/index.js +3 -0
- package/dist/source/components/menu/group/setup.component.js +10 -0
- package/dist/source/components/menu/index.js +30 -0
- package/dist/source/components/menu/item/Item.jsx +29 -0
- package/dist/source/components/menu/item/base.component.js +1 -0
- package/dist/source/components/menu/item/index.js +3 -0
- package/dist/source/components/menu/item/setup.component.js +10 -0
- package/dist/source/components/menu/popover-item/PopoverItem.jsx +41 -0
- package/dist/source/components/menu/popover-item/base.component.js +1 -0
- package/dist/source/components/menu/popover-item/index.js +3 -0
- package/dist/source/components/menu/popover-item/setup.component.js +13 -0
- package/dist/source/components/menu/radio-group/RadioGroup.jsx +24 -0
- package/dist/source/components/menu/radio-group/base.component.js +1 -0
- package/dist/source/components/menu/radio-group/index.js +3 -0
- package/dist/source/components/menu/radio-group/setup.component.js +12 -0
- package/dist/source/components/menu/radio-item/RadioItem.jsx +33 -0
- package/dist/source/components/menu/radio-item/base.component.js +1 -0
- package/dist/source/components/menu/radio-item/index.js +3 -0
- package/dist/source/components/menu/radio-item/setup.component.js +13 -0
- package/dist/source/components/menu/separator/Separator.jsx +16 -0
- package/dist/source/components/menu/separator/base.component.js +1 -0
- package/dist/source/components/menu/separator/index.js +3 -0
- package/dist/source/components/menu/separator/setup.component.js +9 -0
- package/dist/source/components/menu/setup.component.js +13 -0
- package/dist/source/components/menu/submenu/Submenu.jsx +74 -0
- package/dist/source/components/menu/submenu/base.component.js +1 -0
- package/dist/source/components/menu/submenu/index.js +3 -0
- package/dist/source/components/menu/submenu/setup.component.js +20 -0
- package/dist/source/components/number-input/NumberInput.jsx +75 -0
- package/dist/source/components/number-input/base.component.js +1 -0
- package/dist/source/components/number-input/index.js +3 -0
- package/dist/source/components/number-input/setup.component.js +10 -0
- package/dist/source/components/pagination/Pagination.jsx +56 -0
- package/dist/source/components/pagination/base.component.js +1 -0
- package/dist/source/components/pagination/index.js +3 -0
- package/dist/source/components/pagination/item/Item.jsx +27 -0
- package/dist/source/components/pagination/item/base.component.js +1 -0
- package/dist/source/components/pagination/item/index.js +3 -0
- package/dist/source/components/pagination/item/setup.component.js +13 -0
- package/dist/source/components/pagination/setup.component.js +16 -0
- package/dist/source/components/popover/Popover.jsx +50 -0
- package/dist/source/components/popover/base.component.js +1 -0
- package/dist/source/components/popover/index.js +3 -0
- package/dist/source/components/popover/setup.component.js +6 -0
- package/dist/source/components/progress-linear/ProgressLinear.jsx +20 -0
- package/dist/source/components/progress-linear/base.component.js +1 -0
- package/dist/source/components/progress-linear/index.js +3 -0
- package/dist/source/components/progress-linear/setup.component.js +9 -0
- package/dist/source/components/progress-spinner/ProgressSpinner.jsx +27 -0
- package/dist/source/components/progress-spinner/base.component.js +1 -0
- package/dist/source/components/progress-spinner/index.js +3 -0
- package/dist/source/components/progress-spinner/setup.component.js +9 -0
- package/dist/source/components/radio-group/RadioGroup.jsx +25 -0
- package/dist/source/components/radio-group/base.component.js +1 -0
- package/dist/source/components/radio-group/index.js +7 -0
- package/dist/source/components/radio-group/item/Item.jsx +38 -0
- package/dist/source/components/radio-group/item/base.component.js +1 -0
- package/dist/source/components/radio-group/item/index.js +3 -0
- package/dist/source/components/radio-group/item/setup.component.js +13 -0
- package/dist/source/components/radio-group/setup.component.js +16 -0
- package/dist/source/components/rating/Rating.jsx +44 -0
- package/dist/source/components/rating/base.component.js +1 -0
- package/dist/source/components/rating/index.js +3 -0
- package/dist/source/components/rating/setup.component.js +10 -0
- package/dist/source/components/scroller/Scroller.jsx +40 -0
- package/dist/source/components/scroller/base.component.js +1 -0
- package/dist/source/components/scroller/index.js +3 -0
- package/dist/source/components/scroller/setup.component.js +6 -0
- package/dist/source/components/select/Select.jsx +92 -0
- package/dist/source/components/select/base.component.js +1 -0
- package/dist/source/components/select/group/Group.jsx +24 -0
- package/dist/source/components/select/group/base.component.js +1 -0
- package/dist/source/components/select/group/index.js +3 -0
- package/dist/source/components/select/group/setup.component.js +10 -0
- package/dist/source/components/select/index.js +9 -0
- package/dist/source/components/select/item/Item.jsx +45 -0
- package/dist/source/components/select/item/base.component.js +1 -0
- package/dist/source/components/select/item/index.js +3 -0
- package/dist/source/components/select/item/setup.component.js +10 -0
- package/dist/source/components/select/setup.component.js +22 -0
- package/dist/source/components/skeleton/Skeleton.jsx +22 -0
- package/dist/source/components/skeleton/base.component.js +1 -0
- package/dist/source/components/skeleton/index.js +3 -0
- package/dist/source/components/skeleton/setup.component.js +6 -0
- package/dist/source/components/slider/Slider.jsx +57 -0
- package/dist/source/components/slider/base.component.js +1 -0
- package/dist/source/components/slider/index.js +3 -0
- package/dist/source/components/slider/setup.component.js +10 -0
- package/dist/source/components/stylable/base.component.js +1 -0
- package/dist/source/components/stylable/index.js +2 -0
- package/dist/source/components/stylable/setup.component.js +6 -0
- package/dist/source/components/switch/Switch.jsx +31 -0
- package/dist/source/components/switch/base.component.js +1 -0
- package/dist/source/components/switch/index.js +3 -0
- package/dist/source/components/switch/setup.component.js +10 -0
- package/dist/source/components/table/Table.jsx +74 -0
- package/dist/source/components/table/base.component.js +1 -0
- package/dist/source/components/table/column/Column.jsx +47 -0
- package/dist/source/components/table/column/base.component.js +1 -0
- package/dist/source/components/table/column/index.js +3 -0
- package/dist/source/components/table/column/setup.component.js +10 -0
- package/dist/source/components/table/index.js +9 -0
- package/dist/source/components/table/row/Cells.jsx +49 -0
- package/dist/source/components/table/row/Row.jsx +27 -0
- package/dist/source/components/table/row/base.component.js +1 -0
- package/dist/source/components/table/row/index.js +3 -0
- package/dist/source/components/table/row/setup.component.js +11 -0
- package/dist/source/components/table/setup.component.js +20 -0
- package/dist/source/components/tabs/Tabs.jsx +50 -0
- package/dist/source/components/tabs/base.component.js +1 -0
- package/dist/source/components/tabs/content/Content.jsx +18 -0
- package/dist/source/components/tabs/content/base.component.js +1 -0
- package/dist/source/components/tabs/content/index.js +3 -0
- package/dist/source/components/tabs/content/setup.component.js +14 -0
- package/dist/source/components/tabs/index.js +9 -0
- package/dist/source/components/tabs/item/Item.jsx +47 -0
- package/dist/source/components/tabs/item/base.component.js +1 -0
- package/dist/source/components/tabs/item/index.js +3 -0
- package/dist/source/components/tabs/item/setup.component.js +10 -0
- package/dist/source/components/tabs/setup.component.js +15 -0
- package/dist/source/components/tags/Tags.jsx +30 -0
- package/dist/source/components/tags/base.component.js +1 -0
- package/dist/source/components/tags/index.js +7 -0
- package/dist/source/components/tags/item/Item.jsx +47 -0
- package/dist/source/components/tags/item/base.component.js +1 -0
- package/dist/source/components/tags/item/index.js +3 -0
- package/dist/source/components/tags/item/setup.component.js +10 -0
- package/dist/source/components/tags/setup.component.js +13 -0
- package/dist/source/components/textable/base.component.js +1 -0
- package/dist/source/components/textable/index.js +2 -0
- package/dist/source/components/textable/setup.component.js +6 -0
- package/dist/source/components/textarea/Textarea.jsx +27 -0
- package/dist/source/components/textarea/base.component.js +1 -0
- package/dist/source/components/textarea/index.js +3 -0
- package/dist/source/components/textarea/setup.component.js +10 -0
- package/dist/source/components/toasts/Toasts.jsx +33 -0
- package/dist/source/components/toasts/base.component.js +1 -0
- package/dist/source/components/toasts/index.js +3 -0
- package/dist/source/components/toasts/item/Item.jsx +64 -0
- package/dist/source/components/toasts/item/base.component.js +1 -0
- package/dist/source/components/toasts/item/index.js +3 -0
- package/dist/source/components/toasts/item/setup.component.js +13 -0
- package/dist/source/components/toasts/setup.component.js +15 -0
- package/dist/source/components/tooltip/Tooltip.jsx +24 -0
- package/dist/source/components/tooltip/base.component.js +1 -0
- package/dist/source/components/tooltip/index.js +3 -0
- package/dist/source/components/tooltip/setup.component.js +6 -0
- package/dist/source/components/value-control/base.component.js +1 -0
- package/dist/source/components/value-control/index.js +2 -0
- package/dist/source/components/value-control/setup.component.js +6 -0
- package/dist/source/components/virtual/Virtual.jsx +7 -0
- package/dist/source/components/virtual/base.component.js +1 -0
- package/dist/source/components/virtual/index.js +3 -0
- package/dist/source/components/virtual/setup.component.js +12 -0
- package/dist/source/index.js +5 -0
- package/dist/source/types.js +1 -0
- package/dist/types.d.ts +42 -0
- package/package.json +56 -4
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Раскладка корня: наборы ядра, атрибуты потребителя, класс и стиль — одна на
|
|
3
|
+
* все компоненты, как `toRootProps` у React и Svelte. `ref` в раскладку не
|
|
4
|
+
* входит: компонент ставит `ref` адаптера последним.
|
|
5
|
+
* AGENTS.md (Solid), «Раскладка корня» и «Окна гидратации».
|
|
6
|
+
*/
|
|
7
|
+
import type { Accessor, JSX } from 'solid-js';
|
|
8
|
+
import type { TAttributesMap } from '@soxa-ui/core';
|
|
9
|
+
/** Стиль, как его отдают плагины и ядро: имена — как в CSS (`z-index`, `--*`). */
|
|
10
|
+
export type TRootStyle = Readonly<Record<string, string | number>>;
|
|
11
|
+
/** Что корню нужно из состояния компонента. */
|
|
12
|
+
export type TRootState = {
|
|
13
|
+
readonly classes?: readonly string[];
|
|
14
|
+
/** Выход плагина раскладки. */
|
|
15
|
+
readonly layout_styles?: TRootStyle;
|
|
16
|
+
/** Место элемента коллекции: ряд — флексбокс. */
|
|
17
|
+
readonly order?: number;
|
|
18
|
+
/** `false` прячет корень; ключа нет — корень виден всегда (Skeleton). */
|
|
19
|
+
readonly visible?: boolean;
|
|
20
|
+
};
|
|
21
|
+
/** Класс и стиль потребителя; стиль — объект свойств или строка. */
|
|
22
|
+
export type TRootForward = {
|
|
23
|
+
readonly class?: string;
|
|
24
|
+
readonly style?: JSX.CSSProperties | string;
|
|
25
|
+
};
|
|
26
|
+
/** `ref` потребителя среди его атрибутов: корень ему отдаёт `ref` адаптера. */
|
|
27
|
+
type TConsumerRefForward = {
|
|
28
|
+
readonly ref?: unknown;
|
|
29
|
+
};
|
|
30
|
+
export type TRootLayout = {
|
|
31
|
+
class: string;
|
|
32
|
+
/** Объект свойств; строка — только когда строкой пришёл стиль потребителя. */
|
|
33
|
+
style: TRootStyle | string;
|
|
34
|
+
};
|
|
35
|
+
/** Атрибуты корня целиком: наборы ядра, атрибуты потребителя и раскладка. */
|
|
36
|
+
export type TRootProps = Record<string, unknown> & TRootLayout;
|
|
37
|
+
/** Аргументы `toRootProps` — то, что читает мемо раскладки. */
|
|
38
|
+
export type TRootSource = {
|
|
39
|
+
readonly state: TRootState;
|
|
40
|
+
/** Наборы ядра — в том порядке, в каком их кладёт Vue. */
|
|
41
|
+
readonly sets: readonly (TAttributesMap | undefined)[];
|
|
42
|
+
/** То, что не съела связка (`forwardProps`). */
|
|
43
|
+
readonly forward: TRootForward & TConsumerRefForward;
|
|
44
|
+
/** Стиль-выход компонента (`fractionStyle`). */
|
|
45
|
+
readonly style?: TRootStyle;
|
|
46
|
+
};
|
|
47
|
+
/** Обёртка корня и сам корень внутри неё — окно таблицы вокруг `table`. */
|
|
48
|
+
export type TWrappedRootProps = {
|
|
49
|
+
readonly wrapper: TRootProps;
|
|
50
|
+
readonly root: TRootProps;
|
|
51
|
+
};
|
|
52
|
+
export type TWrappedRootSource = TRootSource & {
|
|
53
|
+
/** Класс обёртки: у окна таблицы `so-table__viewport`. */
|
|
54
|
+
readonly wrapper: string;
|
|
55
|
+
};
|
|
56
|
+
/**
|
|
57
|
+
* Класс и стиль корня. Стиль по слоям: раскладка, стиль-выход, `order`, затем
|
|
58
|
+
* потребитель, поверх всего — `display: none` скрытого. Строку потребителя
|
|
59
|
+
* разобрать негде (на сервере нет документа), и слои тогда склеиваются текстом.
|
|
60
|
+
*/
|
|
61
|
+
export declare function toRootLayout(state: TRootState, forward: TRootForward, style?: TRootStyle): TRootLayout;
|
|
62
|
+
/** Наборы ядра, поверх — атрибуты потребителя без `ref`, затем класс и стиль. */
|
|
63
|
+
export declare function toRootProps(state: TRootState, sets: readonly (TAttributesMap | undefined)[], forward: TRootForward & TConsumerRefForward, style?: TRootStyle): TRootProps;
|
|
64
|
+
/**
|
|
65
|
+
* Атрибуты корня мемо — спред на корень:
|
|
66
|
+
* `<Root tag={state.tag} attributes={root} ref={binding.ref}>`.
|
|
67
|
+
*/
|
|
68
|
+
export declare function createRootProps(read: () => TRootSource): Accessor<TRootProps>;
|
|
69
|
+
/**
|
|
70
|
+
* Атрибуты делятся, как у поля: обёртке — её класс, класс и стиль
|
|
71
|
+
* потребителя, скрытие; корню — остальное поверх наборов ядра. Состояние —
|
|
72
|
+
* поимённо: остаток деструктуризации прокси-состояния пуст.
|
|
73
|
+
*/
|
|
74
|
+
export declare function toWrappedRootProps(state: TRootState, sets: readonly (TAttributesMap | undefined)[], forward: TRootForward & TConsumerRefForward, wrapper: string, style?: TRootStyle): TWrappedRootProps;
|
|
75
|
+
/**
|
|
76
|
+
* Обёртка и корень мемо: `<div {...layout().wrapper} ref={binding.consumerRef}>`,
|
|
77
|
+
* внутри `<Root tag={state.tag} attributes={() => layout().root} ref={binding.bindRef}>`.
|
|
78
|
+
*/
|
|
79
|
+
export declare function createWrappedRootProps(read: () => TWrappedRootSource): Accessor<TWrappedRootProps>;
|
|
80
|
+
/** Класс и стиль потребителя — корню поля и окну таблицы. */
|
|
81
|
+
export declare function toRootForward(forward: TRootForward): TRootForward;
|
|
82
|
+
/** Классы части без своего экземпляра — строкой для `class` (панель Menu на Frame). */
|
|
83
|
+
export declare function toPartClass(classes: readonly string[] | undefined): string;
|
|
84
|
+
/**
|
|
85
|
+
* Атрибуты внутреннего узла — набор части или атрибуты контролу: вне
|
|
86
|
+
* гидратации само чтение, в ней — мемо, которое держит окна. Зовётся там, где
|
|
87
|
+
* узел рисуется, а не в выражении спреда; вызов на каждый набор.
|
|
88
|
+
*/
|
|
89
|
+
export declare function createPartProps<T extends object>(read: () => T | undefined): Accessor<T | undefined>;
|
|
90
|
+
/**
|
|
91
|
+
* Атрибуты вложенного контрола: то, что не съела связка, без класса, стиля и
|
|
92
|
+
* `ref` — аналог `useSplitAttrs` у Vue. Параметр типа — атрибуты компонента:
|
|
93
|
+
* остаток сверяется с атрибутами узла, на который ложится.
|
|
94
|
+
*/
|
|
95
|
+
export declare function toControlAttrs<TAttributes extends TRootForward & TConsumerRefForward>(forward: Partial<TAttributes>): Omit<Partial<TAttributes>, keyof TRootForward | keyof TConsumerRefForward>;
|
|
96
|
+
export {};
|
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
import { createHeldMemo, hydrating } from "./hydration.js";
|
|
2
|
+
//#region src/adapter/common/root.ts
|
|
3
|
+
var HIDDEN = { display: "none" };
|
|
4
|
+
/** Свойства слоя стиля без пустых: `''` свойства не задаёт. */
|
|
5
|
+
function declarationsOf(styles) {
|
|
6
|
+
const declarations = [];
|
|
7
|
+
for (const [name, value] of Object.entries(styles ?? {})) if (typeof value === "number" || typeof value === "string" && value !== "") declarations.push([name, value]);
|
|
8
|
+
return declarations;
|
|
9
|
+
}
|
|
10
|
+
function toCssText(declarations) {
|
|
11
|
+
return declarations.map(([name, value]) => `${name}: ${value}`);
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Класс и стиль корня. Стиль по слоям: раскладка, стиль-выход, `order`, затем
|
|
15
|
+
* потребитель, поверх всего — `display: none` скрытого. Строку потребителя
|
|
16
|
+
* разобрать негде (на сервере нет документа), и слои тогда склеиваются текстом.
|
|
17
|
+
*/
|
|
18
|
+
function toRootLayout(state, forward, style) {
|
|
19
|
+
const below = [
|
|
20
|
+
...declarationsOf(state.layout_styles),
|
|
21
|
+
...declarationsOf(style),
|
|
22
|
+
...declarationsOf(state.order !== void 0 ? { order: state.order } : void 0)
|
|
23
|
+
];
|
|
24
|
+
const above = declarationsOf(state.visible === false ? HIDDEN : void 0);
|
|
25
|
+
const className = [...state.classes ?? [], forward.class].filter(Boolean).join(" ");
|
|
26
|
+
const consumer = forward.style;
|
|
27
|
+
if (typeof consumer === "string" && consumer !== "") return {
|
|
28
|
+
class: className,
|
|
29
|
+
style: [
|
|
30
|
+
...toCssText(below),
|
|
31
|
+
consumer,
|
|
32
|
+
...toCssText(above)
|
|
33
|
+
].join("; ")
|
|
34
|
+
};
|
|
35
|
+
const own = typeof consumer === "object" ? declarationsOf(consumer) : [];
|
|
36
|
+
return {
|
|
37
|
+
class: className,
|
|
38
|
+
style: Object.fromEntries([
|
|
39
|
+
...below,
|
|
40
|
+
...own,
|
|
41
|
+
...above
|
|
42
|
+
])
|
|
43
|
+
};
|
|
44
|
+
}
|
|
45
|
+
/** Наборы ядра, поверх — атрибуты потребителя без `ref`, затем класс и стиль. */
|
|
46
|
+
function toRootProps(state, sets, forward, style) {
|
|
47
|
+
const attributes = {};
|
|
48
|
+
for (const set of sets) Object.assign(attributes, set);
|
|
49
|
+
const { ref: _ref, ...consumer } = forward;
|
|
50
|
+
return {
|
|
51
|
+
...attributes,
|
|
52
|
+
...consumer,
|
|
53
|
+
...toRootLayout(state, forward, style)
|
|
54
|
+
};
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Атрибуты корня мемо — спред на корень:
|
|
58
|
+
* `<Root tag={state.tag} attributes={root} ref={binding.ref}>`.
|
|
59
|
+
*/
|
|
60
|
+
function createRootProps(read) {
|
|
61
|
+
return createHeldMemo(read, rootPropsOf);
|
|
62
|
+
}
|
|
63
|
+
function rootPropsOf(read) {
|
|
64
|
+
const { state, sets, forward, style } = read();
|
|
65
|
+
return toRootProps(state, sets, forward, style);
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Атрибуты делятся, как у поля: обёртке — её класс, класс и стиль
|
|
69
|
+
* потребителя, скрытие; корню — остальное поверх наборов ядра. Состояние —
|
|
70
|
+
* поимённо: остаток деструктуризации прокси-состояния пуст.
|
|
71
|
+
*/
|
|
72
|
+
function toWrappedRootProps(state, sets, forward, wrapper, style) {
|
|
73
|
+
return {
|
|
74
|
+
wrapper: toRootProps({
|
|
75
|
+
classes: [wrapper],
|
|
76
|
+
visible: state.visible
|
|
77
|
+
}, [], toRootForward(forward)),
|
|
78
|
+
root: toRootProps({
|
|
79
|
+
classes: state.classes,
|
|
80
|
+
layout_styles: state.layout_styles,
|
|
81
|
+
order: state.order
|
|
82
|
+
}, sets, toControlAttrs(forward), style)
|
|
83
|
+
};
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* Обёртка и корень мемо: `<div {...layout().wrapper} ref={binding.consumerRef}>`,
|
|
87
|
+
* внутри `<Root tag={state.tag} attributes={() => layout().root} ref={binding.bindRef}>`.
|
|
88
|
+
*/
|
|
89
|
+
function createWrappedRootProps(read) {
|
|
90
|
+
return createHeldMemo(read, wrappedRootPropsOf);
|
|
91
|
+
}
|
|
92
|
+
function wrappedRootPropsOf(read) {
|
|
93
|
+
const { state, sets, forward, wrapper, style } = read();
|
|
94
|
+
return toWrappedRootProps(state, sets, forward, wrapper, style);
|
|
95
|
+
}
|
|
96
|
+
/** Класс и стиль потребителя — корню поля и окну таблицы. */
|
|
97
|
+
function toRootForward(forward) {
|
|
98
|
+
return {
|
|
99
|
+
class: forward.class,
|
|
100
|
+
style: forward.style
|
|
101
|
+
};
|
|
102
|
+
}
|
|
103
|
+
/** Классы части без своего экземпляра — строкой для `class` (панель Menu на Frame). */
|
|
104
|
+
function toPartClass(classes) {
|
|
105
|
+
return classes?.join(" ") ?? "";
|
|
106
|
+
}
|
|
107
|
+
/**
|
|
108
|
+
* Атрибуты внутреннего узла — набор части или атрибуты контролу: вне
|
|
109
|
+
* гидратации само чтение, в ней — мемо, которое держит окна. Зовётся там, где
|
|
110
|
+
* узел рисуется, а не в выражении спреда; вызов на каждый набор.
|
|
111
|
+
*/
|
|
112
|
+
function createPartProps(read) {
|
|
113
|
+
return hydrating() ? createHeldMemo(read, partPropsOf) : read;
|
|
114
|
+
}
|
|
115
|
+
function partPropsOf(read) {
|
|
116
|
+
return read();
|
|
117
|
+
}
|
|
118
|
+
/**
|
|
119
|
+
* Атрибуты вложенного контрола: то, что не съела связка, без класса, стиля и
|
|
120
|
+
* `ref` — аналог `useSplitAttrs` у Vue. Параметр типа — атрибуты компонента:
|
|
121
|
+
* остаток сверяется с атрибутами узла, на который ложится.
|
|
122
|
+
*/
|
|
123
|
+
function toControlAttrs(forward) {
|
|
124
|
+
const { class: _class, style: _style, ref: _ref, ...control } = forward;
|
|
125
|
+
return control;
|
|
126
|
+
}
|
|
127
|
+
//#endregion
|
|
128
|
+
export { createPartProps, createRootProps, createWrappedRootProps, toControlAttrs, toPartClass, toRootForward, toRootLayout, toRootProps, toWrappedRootProps };
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Слоты: готовые узлы или функция со scope. Функцию слота отличает арность:
|
|
3
|
+
* ленивое мемо компилятора — тоже функция, но без параметров. Scope функция
|
|
4
|
+
* получает живым (`liveScope`). AGENTS.md (Solid), «Слоты».
|
|
5
|
+
*/
|
|
6
|
+
import { type Accessor, type JSX } from 'solid-js';
|
|
7
|
+
export type TSlotContent<TScope extends object = object> = JSX.Element | ((scope: TScope) => JSX.Element);
|
|
8
|
+
export declare function renderSlot<TScope extends object = object>(content: TSlotContent<TScope> | undefined, scope?: TScope): JSX.Element;
|
|
9
|
+
/** Передан ли слот: `undefined`, `null` и булево Solid не рисует. */
|
|
10
|
+
export declare function hasSlot(content: unknown): boolean;
|
|
11
|
+
/** Значение слота: геттер пропа прочитан, функция слота вызвана с живым scope. */
|
|
12
|
+
export declare function slotValue<TScope extends object>(content: () => TSlotContent<TScope> | undefined, scope: () => TScope): JSX.Element | undefined;
|
|
13
|
+
/**
|
|
14
|
+
* Слот, развёрнутый один раз, — аксессором; пустой по узлам — `undefined`.
|
|
15
|
+
* Так разметка выбирает запасное: `content() ?? state.text`. Геттер слота
|
|
16
|
+
* Solid на каждое чтение создаёт узлы заново, поэтому читают его один раз.
|
|
17
|
+
*/
|
|
18
|
+
export declare function resolveSlot<TScope extends object>(content: () => TSlotContent<TScope> | undefined, scope: () => TScope): Accessor<JSX.Element | undefined>;
|
|
19
|
+
/**
|
|
20
|
+
* Живой scope — геттеры по ключам первого чтения: прочитанное в разметке слота
|
|
21
|
+
* следует за scope на месте, и функция слота не перезапускается на каждую
|
|
22
|
+
* смену (фокус и состояние внутри слота сохраняются).
|
|
23
|
+
*/
|
|
24
|
+
export declare function liveScope<TScope extends object>(scope: () => TScope): TScope;
|
|
25
|
+
/**
|
|
26
|
+
* Проброс слота владельца коллекции в слот элемента: scope элемента плюс сам
|
|
27
|
+
* элемент (`extra`). Не задан — `undefined`, и элемент рисует своё. Scope
|
|
28
|
+
* выводится из слота элемента: `NoInfer` не даёт смотреть в слот владельца.
|
|
29
|
+
*/
|
|
30
|
+
export declare function relaySlot<TScope extends object, TExtra extends object>(content: TSlotContent<NoInfer<TScope & TExtra>> | undefined, extra: TExtra): ((scope: TScope) => JSX.Element) | undefined;
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
import { children, untrack } from "solid-js";
|
|
2
|
+
//#region src/adapter/common/slots.ts
|
|
3
|
+
/**
|
|
4
|
+
* Слоты: готовые узлы или функция со scope. Функцию слота отличает арность:
|
|
5
|
+
* ленивое мемо компилятора — тоже функция, но без параметров. Scope функция
|
|
6
|
+
* получает живым (`liveScope`). AGENTS.md (Solid), «Слоты».
|
|
7
|
+
*/
|
|
8
|
+
function isSlotFunction(content) {
|
|
9
|
+
return typeof content === "function" && content.length > 0;
|
|
10
|
+
}
|
|
11
|
+
function renderSlot(content, scope) {
|
|
12
|
+
if (isSlotFunction(content)) return content(scope ?? {});
|
|
13
|
+
return content;
|
|
14
|
+
}
|
|
15
|
+
/** Передан ли слот: `undefined`, `null` и булево Solid не рисует. */
|
|
16
|
+
function hasSlot(content) {
|
|
17
|
+
return content !== void 0 && content !== null && typeof content !== "boolean";
|
|
18
|
+
}
|
|
19
|
+
/** Значение слота: геттер пропа прочитан, функция слота вызвана с живым scope. */
|
|
20
|
+
function slotValue(content, scope) {
|
|
21
|
+
const value = content();
|
|
22
|
+
return isSlotFunction(value) ? value(liveScope(scope)) : value;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Слот, развёрнутый один раз, — аксессором; пустой по узлам — `undefined`.
|
|
26
|
+
* Так разметка выбирает запасное: `content() ?? state.text`. Геттер слота
|
|
27
|
+
* Solid на каждое чтение создаёт узлы заново, поэтому читают его один раз.
|
|
28
|
+
*/
|
|
29
|
+
function resolveSlot(content, scope) {
|
|
30
|
+
const resolved = children(() => slotValue(content, scope));
|
|
31
|
+
return () => {
|
|
32
|
+
const nodes = resolved();
|
|
33
|
+
return hasSlot(nodes) ? nodes : void 0;
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Живой scope — геттеры по ключам первого чтения: прочитанное в разметке слота
|
|
38
|
+
* следует за scope на месте, и функция слота не перезапускается на каждую
|
|
39
|
+
* смену (фокус и состояние внутри слота сохраняются).
|
|
40
|
+
*/
|
|
41
|
+
function liveScope(scope) {
|
|
42
|
+
const first = untrack(scope);
|
|
43
|
+
const live = { ...first };
|
|
44
|
+
for (const key of Object.keys(first)) Object.defineProperty(live, key, {
|
|
45
|
+
enumerable: true,
|
|
46
|
+
get: () => Reflect.get(scope(), key)
|
|
47
|
+
});
|
|
48
|
+
return live;
|
|
49
|
+
}
|
|
50
|
+
/** Scope элемента живыми полями, поверх — `extra`, как `{ ...scope, ...extra }`. */
|
|
51
|
+
function joinScope(scope, extra) {
|
|
52
|
+
const joined = untrack(() => ({
|
|
53
|
+
...scope,
|
|
54
|
+
...extra
|
|
55
|
+
}));
|
|
56
|
+
for (const key of Object.keys(scope)) {
|
|
57
|
+
if (Object.hasOwn(extra, key)) continue;
|
|
58
|
+
Object.defineProperty(joined, key, {
|
|
59
|
+
enumerable: true,
|
|
60
|
+
get: () => Reflect.get(scope, key)
|
|
61
|
+
});
|
|
62
|
+
}
|
|
63
|
+
return joined;
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* Проброс слота владельца коллекции в слот элемента: scope элемента плюс сам
|
|
67
|
+
* элемент (`extra`). Не задан — `undefined`, и элемент рисует своё. Scope
|
|
68
|
+
* выводится из слота элемента: `NoInfer` не даёт смотреть в слот владельца.
|
|
69
|
+
*/
|
|
70
|
+
function relaySlot(content, extra) {
|
|
71
|
+
if (!hasSlot(content)) return void 0;
|
|
72
|
+
return (scope) => renderSlot(content, joinScope(scope, extra));
|
|
73
|
+
}
|
|
74
|
+
//#endregion
|
|
75
|
+
export { hasSlot, liveScope, relaySlot, renderSlot, resolveSlot, slotValue };
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Elevate — отдаёт детям слой лифта компонента, аналог `provide` у Vue.
|
|
3
|
+
* Пустой слой провайдера не ставит: `Provider` — эффект и мемо на узел, а
|
|
4
|
+
* флажок в каждой строке таблицы своего не опускает. AGENTS.md (Solid), «Лифт».
|
|
5
|
+
*/
|
|
6
|
+
import type { JSX } from 'solid-js';
|
|
7
|
+
import { type TElevatorLayer } from './layer';
|
|
8
|
+
export type TElevateProps = {
|
|
9
|
+
layer: TElevatorLayer;
|
|
10
|
+
children?: JSX.Element;
|
|
11
|
+
};
|
|
12
|
+
export declare function Elevate(props: TElevateProps): JSX.Element;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { ElevatorContext } from "./layer.js";
|
|
2
|
+
import { createComponent } from "solid-js/web";
|
|
3
|
+
//#region src/adapter/elevator/Elevate.tsx
|
|
4
|
+
function Elevate(props) {
|
|
5
|
+
if (props.layer.empty) return props.children;
|
|
6
|
+
return createComponent(ElevatorContext.Provider, {
|
|
7
|
+
get value() {
|
|
8
|
+
return props.layer;
|
|
9
|
+
},
|
|
10
|
+
get children() {
|
|
11
|
+
return props.children;
|
|
12
|
+
}
|
|
13
|
+
});
|
|
14
|
+
}
|
|
15
|
+
//#endregion
|
|
16
|
+
export { Elevate };
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Лифт одного ключа поверх слоёв сборки: `up()` читает слой предка, `down()`
|
|
3
|
+
* пишет в слой компонента. AGENTS.md (Solid), «Лифт».
|
|
4
|
+
*/
|
|
5
|
+
import { TElevator } from '@soxa-ui/setup';
|
|
6
|
+
import type { TElevatorLayer } from './layer';
|
|
7
|
+
export declare class TSolidElevator<T = unknown> extends TElevator<T> {
|
|
8
|
+
private readonly _parent;
|
|
9
|
+
private readonly _own;
|
|
10
|
+
/**
|
|
11
|
+
* @param _parent слой предка; вне владельцев — `undefined`
|
|
12
|
+
* @param _own слой компонента
|
|
13
|
+
*/
|
|
14
|
+
constructor(key: string | symbol, _parent: TElevatorLayer | undefined, _own: TElevatorLayer);
|
|
15
|
+
down(value: T): void;
|
|
16
|
+
up(): T | undefined;
|
|
17
|
+
}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { TElevator } from "@soxa-ui/setup";
|
|
2
|
+
//#region src/adapter/elevator/elevator.class.ts
|
|
3
|
+
/**
|
|
4
|
+
* Лифт одного ключа поверх слоёв сборки: `up()` читает слой предка, `down()`
|
|
5
|
+
* пишет в слой компонента. AGENTS.md (Solid), «Лифт».
|
|
6
|
+
*/
|
|
7
|
+
var TSolidElevator = class extends TElevator {
|
|
8
|
+
_parent;
|
|
9
|
+
_own;
|
|
10
|
+
/**
|
|
11
|
+
* @param _parent слой предка; вне владельцев — `undefined`
|
|
12
|
+
* @param _own слой компонента
|
|
13
|
+
*/
|
|
14
|
+
constructor(key, _parent, _own) {
|
|
15
|
+
super(key);
|
|
16
|
+
this._parent = _parent;
|
|
17
|
+
this._own = _own;
|
|
18
|
+
}
|
|
19
|
+
down(value) {
|
|
20
|
+
this._own.write(this._key, value);
|
|
21
|
+
}
|
|
22
|
+
up() {
|
|
23
|
+
return this._parent?.read(this._key);
|
|
24
|
+
}
|
|
25
|
+
};
|
|
26
|
+
//#endregion
|
|
27
|
+
export { TSolidElevator };
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Слой лифта — значения владельца его поддереву, свои поверх слоя предка.
|
|
3
|
+
* Контекст Solid один на все ключи, как у React и Angular. AGENTS.md (Solid), «Лифт».
|
|
4
|
+
*/
|
|
5
|
+
export declare class TElevatorLayer {
|
|
6
|
+
private readonly _parent;
|
|
7
|
+
private readonly _own;
|
|
8
|
+
/** @param _parent слой ближайшего владельца выше; нет его — `undefined` */
|
|
9
|
+
constructor(_parent: TElevatorLayer | undefined);
|
|
10
|
+
/** Своё значение, а нет его — слоя предка. Опущенный `null` — тоже значение. */
|
|
11
|
+
read(key: symbol): unknown;
|
|
12
|
+
write(key: symbol, value: unknown): void;
|
|
13
|
+
/** Своих значений нет: `Elevate` детям слой не отдаёт. */
|
|
14
|
+
get empty(): boolean;
|
|
15
|
+
}
|
|
16
|
+
export declare const ElevatorContext: import("solid-js").Context<TElevatorLayer | undefined>;
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { createContext } from "solid-js";
|
|
2
|
+
//#region src/adapter/elevator/layer.ts
|
|
3
|
+
/**
|
|
4
|
+
* Слой лифта — значения владельца его поддереву, свои поверх слоя предка.
|
|
5
|
+
* Контекст Solid один на все ключи, как у React и Angular. AGENTS.md (Solid), «Лифт».
|
|
6
|
+
*/
|
|
7
|
+
var TElevatorLayer = class {
|
|
8
|
+
_parent;
|
|
9
|
+
_own = /* @__PURE__ */ new Map();
|
|
10
|
+
/** @param _parent слой ближайшего владельца выше; нет его — `undefined` */
|
|
11
|
+
constructor(_parent) {
|
|
12
|
+
this._parent = _parent;
|
|
13
|
+
}
|
|
14
|
+
/** Своё значение, а нет его — слоя предка. Опущенный `null` — тоже значение. */
|
|
15
|
+
read(key) {
|
|
16
|
+
return this._own.has(key) ? this._own.get(key) : this._parent?.read(key);
|
|
17
|
+
}
|
|
18
|
+
write(key, value) {
|
|
19
|
+
this._own.set(key, value);
|
|
20
|
+
}
|
|
21
|
+
/** Своих значений нет: `Elevate` детям слой не отдаёт. */
|
|
22
|
+
get empty() {
|
|
23
|
+
return this._own.size === 0;
|
|
24
|
+
}
|
|
25
|
+
};
|
|
26
|
+
var ElevatorContext = createContext(void 0);
|
|
27
|
+
//#endregion
|
|
28
|
+
export { ElevatorContext, TElevatorLayer };
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Лифт сборки: фабрика лифтов для расширений и слой компонента, который детям
|
|
3
|
+
* отдаёт `Elevate`. Зовётся в теле компонента — контекст Solid читается только
|
|
4
|
+
* тогда. AGENTS.md (Solid), «Лифт».
|
|
5
|
+
*/
|
|
6
|
+
import type { TElevatorFactory } from '@soxa-ui/setup';
|
|
7
|
+
import { TElevatorLayer } from './layer';
|
|
8
|
+
export type TElevation = {
|
|
9
|
+
readonly elevator: TElevatorFactory;
|
|
10
|
+
/** Слой компонента: свой поверх слоя предка. Детям — через `Elevate`. */
|
|
11
|
+
readonly layer: TElevatorLayer;
|
|
12
|
+
};
|
|
13
|
+
export declare function useElevator(): TElevation;
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { TSolidElevator } from "./elevator.class.js";
|
|
2
|
+
import { ElevatorContext, TElevatorLayer } from "./layer.js";
|
|
3
|
+
import { useContext } from "solid-js";
|
|
4
|
+
//#region src/adapter/elevator/useElevator.ts
|
|
5
|
+
/**
|
|
6
|
+
* Лифт сборки: фабрика лифтов для расширений и слой компонента, который детям
|
|
7
|
+
* отдаёт `Elevate`. Зовётся в теле компонента — контекст Solid читается только
|
|
8
|
+
* тогда. AGENTS.md (Solid), «Лифт».
|
|
9
|
+
*/
|
|
10
|
+
function useElevator() {
|
|
11
|
+
const parent = useContext(ElevatorContext);
|
|
12
|
+
const layer = new TElevatorLayer(parent);
|
|
13
|
+
return {
|
|
14
|
+
elevator: (key) => new TSolidElevator(key.name, parent, layer),
|
|
15
|
+
layer
|
|
16
|
+
};
|
|
17
|
+
}
|
|
18
|
+
//#endregion
|
|
19
|
+
export { useElevator };
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { type JSX } from 'solid-js';
|
|
2
|
+
import type { TLocale } from '@soxa-ui/plugins';
|
|
3
|
+
export type TLocaleProviderProps = {
|
|
4
|
+
/** Локаль поддерева: тег для Intl и строки библиотеки (`ruRU`, `extendLocale(...)`) */
|
|
5
|
+
locale: TLocale;
|
|
6
|
+
children?: JSX.Element;
|
|
7
|
+
};
|
|
8
|
+
/**
|
|
9
|
+
* LocaleProvider — локаль поддерева: язык и строки библиотеки компонентам
|
|
10
|
+
* внутри.
|
|
11
|
+
*
|
|
12
|
+
* ```tsx
|
|
13
|
+
* <LocaleProvider locale={current()}>
|
|
14
|
+
* <App />
|
|
15
|
+
* </LocaleProvider>
|
|
16
|
+
* ```
|
|
17
|
+
*
|
|
18
|
+
* Источник свой на провайдер (сервер рисует запросы каждый на своём языке) и
|
|
19
|
+
* создаётся с локалью первой отрисовки; смена пропа идёт в тот же источник,
|
|
20
|
+
* компоненты не перемонтируются.
|
|
21
|
+
*/
|
|
22
|
+
export declare function LocaleProvider(props: TLocaleProviderProps): JSX.Element;
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { LocaleContext } from "./context.js";
|
|
2
|
+
import { createRenderEffect, untrack } from "solid-js";
|
|
3
|
+
import { createComponent } from "solid-js/web";
|
|
4
|
+
import { TLocaleSource } from "@soxa-ui/plugins";
|
|
5
|
+
//#region src/adapter/locale/LocaleProvider.tsx
|
|
6
|
+
/**
|
|
7
|
+
* LocaleProvider — локаль поддерева: язык и строки библиотеки компонентам
|
|
8
|
+
* внутри.
|
|
9
|
+
*
|
|
10
|
+
* ```tsx
|
|
11
|
+
* <LocaleProvider locale={current()}>
|
|
12
|
+
* <App />
|
|
13
|
+
* </LocaleProvider>
|
|
14
|
+
* ```
|
|
15
|
+
*
|
|
16
|
+
* Источник свой на провайдер (сервер рисует запросы каждый на своём языке) и
|
|
17
|
+
* создаётся с локалью первой отрисовки; смена пропа идёт в тот же источник,
|
|
18
|
+
* компоненты не перемонтируются.
|
|
19
|
+
*/
|
|
20
|
+
function LocaleProvider(props) {
|
|
21
|
+
const source = new TLocaleSource(untrack(() => props.locale));
|
|
22
|
+
createRenderEffect(() => {
|
|
23
|
+
source.locale = props.locale;
|
|
24
|
+
});
|
|
25
|
+
return createComponent(LocaleContext.Provider, {
|
|
26
|
+
value: source,
|
|
27
|
+
get children() {
|
|
28
|
+
return props.children;
|
|
29
|
+
}
|
|
30
|
+
});
|
|
31
|
+
}
|
|
32
|
+
//#endregion
|
|
33
|
+
export { LocaleProvider };
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { ILocaleSource } from '@soxa-ui/plugins';
|
|
2
|
+
export declare const LocaleContext: import("solid-js").Context<ILocaleSource | undefined>;
|
|
3
|
+
/** Источник ближайшего `LocaleProvider`; нет его — у набора своя английская. */
|
|
4
|
+
export declare function nearestLocale(): ILocaleSource | undefined;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { createContext, useContext } from "solid-js";
|
|
2
|
+
//#region src/adapter/locale/context.ts
|
|
3
|
+
var LocaleContext = createContext(void 0);
|
|
4
|
+
/** Источник ближайшего `LocaleProvider`; нет его — у набора своя английская. */
|
|
5
|
+
function nearestLocale() {
|
|
6
|
+
return useContext(LocaleContext);
|
|
7
|
+
}
|
|
8
|
+
//#endregion
|
|
9
|
+
export { LocaleContext, nearestLocale };
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Петля по ключу записи: узел живёт, пока в списке есть запись с его ключом,
|
|
3
|
+
* а новую запись получает аксессором. `drawn` коллекции — новые записи на
|
|
4
|
+
* каждую смену, и `<For>` по ссылке пересоздавал бы строки вместе с фокусом.
|
|
5
|
+
* Окна гидратации переживает, как `flow.ts`. AGENTS.md (Solid), «Ветки и петли».
|
|
6
|
+
*/
|
|
7
|
+
import { type Accessor, type JSX } from 'solid-js';
|
|
8
|
+
export type TKeyedForProps<TEntry, TKey> = {
|
|
9
|
+
each: readonly TEntry[] | undefined;
|
|
10
|
+
/** Ключ записи: у записей одного узла он один и тот же. */
|
|
11
|
+
by: (entry: TEntry) => TKey;
|
|
12
|
+
children: (entry: Accessor<TEntry>) => JSX.Element;
|
|
13
|
+
};
|
|
14
|
+
export declare function KeyedFor<TEntry, TKey>(props: TKeyedForProps<TEntry, TKey>): JSX.Element;
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import { createHeldMemo } from "../common/hydration.js";
|
|
2
|
+
import { createRoot, createSignal, onCleanup, untrack } from "solid-js";
|
|
3
|
+
//#region src/adapter/runtime/KeyedFor.tsx
|
|
4
|
+
/**
|
|
5
|
+
* Петля по ключу записи: узел живёт, пока в списке есть запись с его ключом,
|
|
6
|
+
* а новую запись получает аксессором. `drawn` коллекции — новые записи на
|
|
7
|
+
* каждую смену, и `<For>` по ссылке пересоздавал бы строки вместе с фокусом.
|
|
8
|
+
* Окна гидратации переживает, как `flow.ts`. AGENTS.md (Solid), «Ветки и петли».
|
|
9
|
+
*/
|
|
10
|
+
/** Строка петли — объект, а не замыкание на строку: строк тысячи (ячейки таблицы). */
|
|
11
|
+
var TRow = class {
|
|
12
|
+
node;
|
|
13
|
+
_write;
|
|
14
|
+
dispose;
|
|
15
|
+
constructor(node, _write, dispose) {
|
|
16
|
+
this.node = node;
|
|
17
|
+
this._write = _write;
|
|
18
|
+
this.dispose = dispose;
|
|
19
|
+
}
|
|
20
|
+
update(entry) {
|
|
21
|
+
this._write(() => entry);
|
|
22
|
+
}
|
|
23
|
+
};
|
|
24
|
+
function KeyedFor(props) {
|
|
25
|
+
const rows = /* @__PURE__ */ new Map();
|
|
26
|
+
const createRow = (entry) => createRoot((dispose) => {
|
|
27
|
+
const [current, write] = createSignal(entry);
|
|
28
|
+
return new TRow(props.children(current), write, dispose);
|
|
29
|
+
});
|
|
30
|
+
onCleanup(() => {
|
|
31
|
+
for (const row of rows.values()) row.dispose();
|
|
32
|
+
rows.clear();
|
|
33
|
+
});
|
|
34
|
+
const reconcile = (entries) => untrack(() => {
|
|
35
|
+
const seen = /* @__PURE__ */ new Set();
|
|
36
|
+
const result = entries.map((entry) => {
|
|
37
|
+
const key = props.by(entry);
|
|
38
|
+
let row = rows.get(key);
|
|
39
|
+
if (row) row.update(entry);
|
|
40
|
+
else rows.set(key, row = createRow(entry));
|
|
41
|
+
seen.add(key);
|
|
42
|
+
return row.node;
|
|
43
|
+
});
|
|
44
|
+
for (const [key, row] of rows) {
|
|
45
|
+
if (seen.has(key)) continue;
|
|
46
|
+
row.dispose();
|
|
47
|
+
rows.delete(key);
|
|
48
|
+
}
|
|
49
|
+
return result;
|
|
50
|
+
});
|
|
51
|
+
return createHeldMemo(props, (source) => reconcile(source.each ?? []), (source) => source.each);
|
|
52
|
+
}
|
|
53
|
+
//#endregion
|
|
54
|
+
export { KeyedFor };
|