@ea-lab/reactive-json-docs 0.7.0 → 1.0.0-alpha.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +7 -5
- package/public/rjbuild/docs/advanced-concepts/data-processors.md +2 -2
- package/public/rjbuild/docs/advanced-concepts/plugins/component-development-guide-llm.md +14 -14
- package/public/rjbuild/docs/advanced-concepts/plugins/plugin-system.md +47 -1
- package/public/rjbuild/docs/advanced-concepts/plugins/plugin-system.yaml +53 -1
- package/public/rjbuild/docs/core/action/HashChangeListener.md +1 -1
- package/public/rjbuild/docs/core/action/HashChangeListener.yaml +24 -6
- package/public/rjbuild/docs/core/action/Hide.md +2 -2
- package/public/rjbuild/docs/core/action/Hide.yaml +4 -3
- package/public/rjbuild/docs/core/action/MessageListener.md +4 -4
- package/public/rjbuild/docs/core/action/MessageListener.yaml +18 -6
- package/public/rjbuild/docs/core/action/ReactOnEvent.md +4 -4
- package/public/rjbuild/docs/core/action/ReactOnEvent.yaml +4 -4
- package/public/rjbuild/docs/core/action/Redirect.md +2 -2
- package/public/rjbuild/docs/core/action/Redirect.yaml +8 -2
- package/public/rjbuild/docs/core/action/VisuallyHide.md +2 -2
- package/public/rjbuild/docs/core/action/VisuallyHide.yaml +2 -2
- package/public/rjbuild/docs/core/dataMapping/simpleMapping.md +5 -5
- package/public/rjbuild/docs/core/dataMapping/simpleMapping.yaml +90 -60
- package/public/rjbuild/docs/core/element/debug/VariablesDebug.md +59 -0
- package/public/rjbuild/docs/core/element/debug/VariablesDebug.yaml +71 -0
- package/public/rjbuild/docs/core/element/form/Input.md +307 -0
- package/public/rjbuild/docs/core/element/form/Input.yaml +572 -0
- package/public/rjbuild/docs/core/element/html/FolderSortableTree.yaml +40 -12
- package/public/rjbuild/docs/core/element/html/FormatNumeral.yaml +21 -7
- package/public/rjbuild/docs/core/element/html/Html.yaml +26 -9
- package/public/rjbuild/docs/core/element/html/LabelFromValue.yaml +25 -8
- package/public/rjbuild/docs/core/element/html/PreformattedMarkup.yaml +23 -7
- package/public/rjbuild/docs/core/element/html/SortableTreeItemCollapseButton.yaml +7 -6
- package/public/rjbuild/docs/core/element/html/SyntaxHighlighter.yaml +56 -20
- package/public/rjbuild/docs/core/element/special/Count.md +8 -10
- package/public/rjbuild/docs/core/element/special/Count.yaml +121 -40
- package/public/rjbuild/docs/core/element/special/DataFilter.md +40 -41
- package/public/rjbuild/docs/core/element/special/DataFilter.yaml +197 -81
- package/public/rjbuild/docs/core/element/special/DelayedActions.md +13 -15
- package/public/rjbuild/docs/core/element/special/DelayedActions.yaml +32 -13
- package/public/rjbuild/docs/core/element/special/PageControls.md +8 -10
- package/public/rjbuild/docs/core/element/special/PageControls.yaml +9 -8
- package/public/rjbuild/docs/core/element/special/Phantom.md +9 -11
- package/public/rjbuild/docs/core/element/special/Phantom.yaml +22 -9
- package/public/rjbuild/docs/core/element/special/ReactiveJsonSubroot.md +7 -9
- package/public/rjbuild/docs/core/element/special/ReactiveJsonSubroot.yaml +167 -49
- package/public/rjbuild/docs/core/element/special/Switch.md +36 -38
- package/public/rjbuild/docs/core/element/special/Switch.yaml +68 -40
- package/public/rjbuild/docs/core/example/html.md +2 -2
- package/public/rjbuild/docs/core/example/html.yaml +2 -3
- package/public/rjbuild/docs/core/example/native-html-forms.md +245 -0
- package/public/rjbuild/docs/core/example/native-html-forms.yaml +393 -0
- package/public/rjbuild/docs/core/reaction/addData.md +17 -5
- package/public/rjbuild/docs/core/reaction/addData.yaml +70 -11
- package/public/rjbuild/docs/core/reaction/fetchData.md +1 -2
- package/public/rjbuild/docs/core/reaction/fetchData.yaml +84 -19
- package/public/rjbuild/docs/core/reaction/moveData.md +0 -4
- package/public/rjbuild/docs/core/reaction/moveData.yaml +28 -6
- package/public/rjbuild/docs/core/reaction/postMessage.md +0 -4
- package/public/rjbuild/docs/core/reaction/postMessage.yaml +29 -6
- package/public/rjbuild/docs/core/reaction/redirectNow.md +0 -4
- package/public/rjbuild/docs/core/reaction/redirectNow.yaml +10 -3
- package/public/rjbuild/docs/core/reaction/removeData.md +2 -6
- package/public/rjbuild/docs/core/reaction/removeData.yaml +40 -2
- package/public/rjbuild/docs/core/reaction/setClipboardData.md +0 -4
- package/public/rjbuild/docs/core/reaction/setClipboardData.yaml +10 -3
- package/public/rjbuild/docs/core/reaction/setData.md +18 -8
- package/public/rjbuild/docs/core/reaction/setData.yaml +43 -11
- package/public/rjbuild/docs/core/reaction/submitData.md +2 -3
- package/public/rjbuild/docs/core/reaction/submitData.yaml +43 -7
- package/public/rjbuild/docs/core/reaction/triggerEvent.md +0 -4
- package/public/rjbuild/docs/core/reaction/triggerEvent.yaml +25 -11
- package/public/rjbuild/docs/docs-components/Mermaid.md +254 -0
- package/public/rjbuild/docs/docs-components/Mermaid.yaml +339 -0
- package/public/rjbuild/docs/docs-components/index.yaml +1 -0
- package/public/rjbuild/docs/getting-started/actions.md +1 -1
- package/public/rjbuild/docs/index.yaml +2 -1
- package/public/rjbuild/docs/install.md +26 -29
- package/public/rjbuild/docs/install.yaml +4 -10
- package/public/rjbuild/docs/integration/bootstrap/action/Popover.md +26 -0
- package/public/rjbuild/docs/{core → integration/bootstrap}/action/Popover.yaml +28 -5
- package/public/rjbuild/docs/{core → integration/bootstrap}/action/Tooltip.md +4 -4
- package/public/rjbuild/docs/{core → integration/bootstrap}/action/Tooltip.yaml +16 -3
- package/public/rjbuild/docs/{core → integration/bootstrap}/element/form/CheckBoxField.md +8 -8
- package/public/rjbuild/docs/{core → integration/bootstrap}/element/form/CheckBoxField.yaml +40 -8
- package/public/rjbuild/docs/{core → integration/bootstrap}/element/form/DateField.md +5 -5
- package/public/rjbuild/docs/{core → integration/bootstrap}/element/form/DateField.yaml +27 -5
- package/public/rjbuild/docs/{core → integration/bootstrap}/element/form/NumberField.md +7 -7
- package/public/rjbuild/docs/{core → integration/bootstrap}/element/form/NumberField.yaml +32 -7
- package/public/rjbuild/docs/{core → integration/bootstrap}/element/form/SelectField.md +9 -9
- package/public/rjbuild/docs/{core → integration/bootstrap}/element/form/SelectField.yaml +46 -9
- package/public/rjbuild/docs/{core → integration/bootstrap}/element/form/TextAreaField.md +8 -8
- package/public/rjbuild/docs/{core → integration/bootstrap}/element/form/TextAreaField.yaml +36 -8
- package/public/rjbuild/docs/{core → integration/bootstrap}/element/form/TextField.md +8 -8
- package/public/rjbuild/docs/{core → integration/bootstrap}/element/form/TextField.yaml +38 -8
- package/public/rjbuild/docs/{core → integration/bootstrap}/element/form/formElementsCommon.md +2 -4
- package/public/rjbuild/docs/{core → integration/bootstrap}/element/form/index.md +0 -2
- package/public/rjbuild/docs/integration/bootstrap/element/html/AccordionItem.md +69 -0
- package/public/rjbuild/docs/{core → integration/bootstrap}/element/html/AccordionItem.yaml +19 -7
- package/public/rjbuild/docs/integration/bootstrap/element/html/Modal.md +127 -0
- package/public/rjbuild/docs/{core → integration/bootstrap}/element/html/Modal.yaml +35 -12
- package/public/rjbuild/docs/integration/bootstrap/element/html/Tabs.md +150 -0
- package/public/rjbuild/docs/{core → integration/bootstrap}/element/html/Tabs.yaml +24 -15
- package/public/rjbuild/docs/integration/bootstrap/element/html/index.md +13 -0
- package/public/rjbuild/docs/{core → integration/bootstrap}/element/special/BootstrapElement.md +4 -6
- package/public/rjbuild/docs/integration/bootstrap/element/special/BootstrapElement.yaml +29 -0
- package/public/rjbuild/docs/integration/bootstrap/element/special/index.md +19 -0
- package/public/rjbuild/docs/integration/bootstrap/example/website.md +41 -0
- package/public/rjbuild/docs/integration/bootstrap/overview.md +69 -0
- package/public/rjbuild/docs/integration/bootstrap/overview.yaml +87 -0
- package/public/rjbuild/docs/core/action/Popover.md +0 -26
- package/public/rjbuild/docs/core/element/special/BootstrapElement.yaml +0 -18
- /package/public/rjbuild/docs/{core → integration/bootstrap}/element/form/index.yaml +0 -0
- /package/public/rjbuild/docs/{core → integration/bootstrap}/example/accordion.md +0 -0
- /package/public/rjbuild/docs/{core → integration/bootstrap}/example/accordion.yaml +0 -0
- /package/public/rjbuild/docs/{core → integration/bootstrap}/example/dynamic-content.md +0 -0
- /package/public/rjbuild/docs/{core → integration/bootstrap}/example/dynamic-content.yaml +0 -0
- /package/public/rjbuild/docs/{core → integration/bootstrap}/example/website.yaml +0 -0
- /package/public/rjbuild/docs/{chartjs → integration/chartjs}/components.yaml +0 -0
- /package/public/rjbuild/docs/{chartjs → integration/chartjs}/overview.yaml +0 -0
|
@@ -6,13 +6,22 @@ renderView:
|
|
|
6
6
|
The `Tabs` component provides a tabbed interface using React-Bootstrap. Each tab must have a unique `eventKey` and a `title` in its attributes, and can contain any valid Reactive-JSON view content.
|
|
7
7
|
|
|
8
8
|
## Properties
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
9
|
+
|
|
10
|
+
- type: DefinitionList
|
|
11
|
+
content:
|
|
12
|
+
- term:
|
|
13
|
+
code: tabs
|
|
14
|
+
after: "(array, required)"
|
|
15
|
+
details:
|
|
16
|
+
type: Markdown
|
|
17
|
+
content: |
|
|
18
|
+
Static array of tab objects. This array is not evaluated by the template system and must be defined statically in the schema.
|
|
19
|
+
Each tab object must have:
|
|
20
|
+
- `attributes` (object, required):
|
|
21
|
+
- `title` (string, required): The label of the tab.
|
|
22
|
+
- `eventKey` (string, required): A unique identifier for the tab.
|
|
23
|
+
- Other attributes are passed to the React-Bootstrap Tab component.
|
|
24
|
+
- `content` (array|object, required): The content to display in the tab. Can be any valid Reactive-JSON view (components, arrays, templates, etc.)
|
|
16
25
|
|
|
17
26
|
- type: RjBuildDescriber
|
|
18
27
|
title: "Interactive Example: Editable tabs"
|
|
@@ -47,11 +56,11 @@ renderView:
|
|
|
47
56
|
- type: Markdown
|
|
48
57
|
content: |
|
|
49
58
|
## Limitations
|
|
50
|
-
- The `tabs` array must be static in the schema (no dynamic generation or template evaluation)
|
|
51
|
-
- Each tab must have a unique `eventKey` in its attributes
|
|
52
|
-
- The `title` attribute is required for each tab
|
|
53
|
-
- No support for dynamic addition/removal of tabs at runtime
|
|
54
|
-
- No built-in support for icons in tab headers
|
|
55
|
-
- No animation customization beyond what react-bootstrap provides
|
|
56
|
-
- All tab content is rendered at once (not lazy-loaded)
|
|
57
|
-
- Tab selection state is not persisted between renders
|
|
59
|
+
- The `tabs` array must be static in the schema (no dynamic generation or template evaluation).
|
|
60
|
+
- Each tab must have a unique `eventKey` in its attributes.
|
|
61
|
+
- The `title` attribute is required for each tab.
|
|
62
|
+
- No support for dynamic addition/removal of tabs at runtime.
|
|
63
|
+
- No built-in support for icons in tab headers.
|
|
64
|
+
- No animation customization beyond what react-bootstrap provides.
|
|
65
|
+
- All tab content is rendered at once (not lazy-loaded).
|
|
66
|
+
- Tab selection state is not persisted between renders.
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
# Bootstrap HTML Elements
|
|
2
|
+
|
|
3
|
+
## Available Components
|
|
4
|
+
|
|
5
|
+
- **[AccordionItem](./AccordionItem.yaml)** - Collapsible content panels
|
|
6
|
+
- **[Modal](./Modal.yaml)** - Dialog boxes and overlays
|
|
7
|
+
- **[Tabs](./Tabs.yaml)** - Tabbed interface component
|
|
8
|
+
|
|
9
|
+
## Usage Requirements
|
|
10
|
+
|
|
11
|
+
- Bootstrap CSS must be imported in your application
|
|
12
|
+
- The `@ea-lab/reactive-json-bootstrap` plugin must be installed and configured
|
|
13
|
+
- React-Bootstrap dependencies must be available
|
package/public/rjbuild/docs/{core → integration/bootstrap}/element/special/BootstrapElement.md
RENAMED
|
@@ -1,7 +1,5 @@
|
|
|
1
1
|
# BootstrapElement
|
|
2
2
|
|
|
3
|
-
## Introduction
|
|
4
|
-
|
|
5
3
|
The `BootstrapElement` component is an internal wrapper used by Reactive-JSON to integrate React-Bootstrap components into the template system.
|
|
6
4
|
|
|
7
5
|
**You should not use this component directly in your rjbuild.**
|
|
@@ -9,9 +7,9 @@ The `BootstrapElement` component is an internal wrapper used by Reactive-JSON to
|
|
|
9
7
|
It is automatically used by higher-level components (such as BsAccordion, BsAlert, etc.) to provide Bootstrap features in a declarative way.
|
|
10
8
|
|
|
11
9
|
## Properties
|
|
12
|
-
- `attributes` (object, optional): Attributes passed to the underlying Bootstrap component
|
|
13
|
-
- `content` (object/array, optional): Content to render inside the Bootstrap component
|
|
10
|
+
- `attributes` (object, optional): Attributes passed to the underlying Bootstrap component.
|
|
11
|
+
- `content` (object/array, optional): Content to render inside the Bootstrap component.
|
|
14
12
|
|
|
15
13
|
## Limitations
|
|
16
|
-
- Not intended for direct use in rjbuild templates
|
|
17
|
-
- Used internally by the system for Bootstrap integration
|
|
14
|
+
- Not intended for direct use in rjbuild templates.
|
|
15
|
+
- Used internally by the system for Bootstrap integration.
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
renderView:
|
|
2
|
+
- type: Markdown
|
|
3
|
+
content: |
|
|
4
|
+
# BootstrapElement
|
|
5
|
+
|
|
6
|
+
The `BootstrapElement` component is an internal wrapper used by Reactive-JSON to integrate React-Bootstrap components into the template system.
|
|
7
|
+
|
|
8
|
+
**You should not use this component directly in your rjbuild.**
|
|
9
|
+
|
|
10
|
+
It is automatically used by higher-level components (such as BsAccordion, BsAlert, etc.) to provide Bootstrap features in a declarative way.
|
|
11
|
+
|
|
12
|
+
## Properties
|
|
13
|
+
|
|
14
|
+
- type: DefinitionList
|
|
15
|
+
content:
|
|
16
|
+
- term:
|
|
17
|
+
code: attributes
|
|
18
|
+
after: "(object, optional)"
|
|
19
|
+
details: "Attributes passed to the underlying Bootstrap component."
|
|
20
|
+
- term:
|
|
21
|
+
code: content
|
|
22
|
+
after: "(object|array, optional)"
|
|
23
|
+
details: "Content to render inside the Bootstrap component."
|
|
24
|
+
|
|
25
|
+
- type: Markdown
|
|
26
|
+
content: |
|
|
27
|
+
## Limitations
|
|
28
|
+
- Not intended for direct use in rjbuild templates.
|
|
29
|
+
- Used internally by the system for Bootstrap integration.
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
# Bootstrap Special Elements
|
|
2
|
+
|
|
3
|
+
Bootstrap special elements provide advanced functionality and generic wrappers for Bootstrap components.
|
|
4
|
+
|
|
5
|
+
## Available Components
|
|
6
|
+
|
|
7
|
+
- **[BootstrapElement](./BootstrapElement.yaml)** - Generic wrapper for any React-Bootstrap component
|
|
8
|
+
|
|
9
|
+
## Usage Requirements
|
|
10
|
+
|
|
11
|
+
- Bootstrap CSS must be imported in your application
|
|
12
|
+
- The `@ea-lab/reactive-json-bootstrap` plugin must be installed and configured
|
|
13
|
+
- React-Bootstrap dependencies must be available
|
|
14
|
+
|
|
15
|
+
## BootstrapElement Use Cases
|
|
16
|
+
|
|
17
|
+
- Wrapping React-Bootstrap components not explicitly supported
|
|
18
|
+
- Advanced component configurations
|
|
19
|
+
- Prototyping before creating dedicated wrappers
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
# Complete Website Example
|
|
2
|
+
|
|
3
|
+
This example demonstrates building a complete website layout using Bootstrap components within Reactive-JSON. It showcases navigation, content sections, forms, and interactive elements working together.
|
|
4
|
+
|
|
5
|
+
## Website Structure
|
|
6
|
+
|
|
7
|
+
The example includes:
|
|
8
|
+
- **Navigation**: Bootstrap navbar with responsive design
|
|
9
|
+
- **Hero Section**: Call-to-action with buttons and forms
|
|
10
|
+
- **Content Sections**: Cards, tabs, and accordions
|
|
11
|
+
- **Contact Form**: Complete form with validation
|
|
12
|
+
- **Modal Dialogs**: Interactive overlays for additional content
|
|
13
|
+
|
|
14
|
+
## Features Demonstrated
|
|
15
|
+
|
|
16
|
+
- Interactive navigation with tab switching and accordion sections
|
|
17
|
+
- Form handling with user input and submission
|
|
18
|
+
- Dynamic content updates and user interactions
|
|
19
|
+
- Modal dialogs for focused interactions
|
|
20
|
+
|
|
21
|
+
## Key Bootstrap Components Used
|
|
22
|
+
|
|
23
|
+
- **Form Elements**: TextField, SelectField, CheckBoxField, TextAreaField
|
|
24
|
+
- **Layout Components**: Containers, rows, columns (via BootstrapElement)
|
|
25
|
+
- **Navigation**: Tabs for content organization
|
|
26
|
+
- **Interactive Elements**: Modals for focused interactions
|
|
27
|
+
- **Content Display**: Cards and accordions for information organization
|
|
28
|
+
|
|
29
|
+
## Implementation Notes
|
|
30
|
+
|
|
31
|
+
This website example demonstrates declarative UI development where complex layouts and interactions are defined entirely through JSON/YAML configuration.
|
|
32
|
+
|
|
33
|
+
## Usage
|
|
34
|
+
|
|
35
|
+
This example serves as a template for building complete websites with Reactive-JSON and Bootstrap. You can:
|
|
36
|
+
- Copy sections for your own projects
|
|
37
|
+
- Modify the styling and content to match your needs
|
|
38
|
+
- Add additional Bootstrap components as required
|
|
39
|
+
- Extend with custom components for specific functionality
|
|
40
|
+
|
|
41
|
+
View the complete implementation in the [website.yaml](./website.yaml) file.
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
# Bootstrap Integration Overview
|
|
2
|
+
|
|
3
|
+
Reactive-JSON has Bootstrap integration through the `@ea-lab/reactive-json-bootstrap` plugin.
|
|
4
|
+
|
|
5
|
+
The Bootstrap integration adds form components, HTML elements, and actions such as: `TextField`, `SelectField`, `CheckBoxField`, `DateField`, `NumberField`, `TextAreaField`, `Modal`, `Tabs`, `AccordionItem`, `Tooltip`, `Popover`, and the versatile `BootstrapElement` wrapper.
|
|
6
|
+
|
|
7
|
+
The Bootstrap components integrate with Bootstrap's CSS framework.
|
|
8
|
+
|
|
9
|
+
## Install
|
|
10
|
+
|
|
11
|
+
The demo website you currently look at has already this integration installed and ready.
|
|
12
|
+
|
|
13
|
+
To enable the integration on your own project that uses Reactive-JSON, make sure that the integration is installed and loaded.
|
|
14
|
+
|
|
15
|
+
Bootstrap support is available through the `@ea-lab/reactive-json-bootstrap` plugin. To get it:
|
|
16
|
+
|
|
17
|
+
```shell
|
|
18
|
+
npm i @ea-lab/reactive-json-bootstrap bootstrap react-bootstrap
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
Then make it available to ReactiveJsonRoot:
|
|
22
|
+
|
|
23
|
+
```js
|
|
24
|
+
import {ReactiveJsonRoot} from "@ea-lab/reactive-json";
|
|
25
|
+
import {mergeComponentCollections} from "@ea-lab/reactive-json";
|
|
26
|
+
import {bootstrapComponents} from "@ea-lab/reactive-json-bootstrap";
|
|
27
|
+
|
|
28
|
+
export const YourComponent = () => {
|
|
29
|
+
|
|
30
|
+
const rjRootProps = {
|
|
31
|
+
// Set your own props to rjRootProps such as rjBuildUrl.
|
|
32
|
+
// ...
|
|
33
|
+
};
|
|
34
|
+
|
|
35
|
+
// Set the plugins prop by merging the component collections.
|
|
36
|
+
// Here, we only have a single plugin, but you can add your own of course.
|
|
37
|
+
rjRootProps.plugins = mergeComponentCollections([bootstrapComponents]);
|
|
38
|
+
|
|
39
|
+
return <ReactiveJsonRoot {...rjRootProps} />;
|
|
40
|
+
}
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
Don't forget to import Bootstrap CSS in your application:
|
|
44
|
+
|
|
45
|
+
```js
|
|
46
|
+
import 'bootstrap/dist/css/bootstrap.min.css'
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
## Component Categories
|
|
50
|
+
|
|
51
|
+
### Form Elements
|
|
52
|
+
- **TextField**: Text input
|
|
53
|
+
- **SelectField**: Dropdown select
|
|
54
|
+
- **CheckBoxField**: Checkbox input
|
|
55
|
+
- **DateField**: Date input (limited support)
|
|
56
|
+
- **NumberField**: Numeric input
|
|
57
|
+
- **TextAreaField**: Multi-line text input
|
|
58
|
+
|
|
59
|
+
### HTML Elements
|
|
60
|
+
- **Modal**: Modal dialogs
|
|
61
|
+
- **Tabs**: Tabbed interface
|
|
62
|
+
- **AccordionItem**: Collapsible content panels
|
|
63
|
+
|
|
64
|
+
### Actions
|
|
65
|
+
- **Tooltip**: Tooltips on hover
|
|
66
|
+
- **Popover**: Popovers on click/hover
|
|
67
|
+
|
|
68
|
+
### Special Components
|
|
69
|
+
- **BootstrapElement**: Generic wrapper for React-Bootstrap components
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
renderView:
|
|
2
|
+
- type: h1
|
|
3
|
+
content: Bootstrap integration overview
|
|
4
|
+
|
|
5
|
+
- type: Markdown
|
|
6
|
+
content: |
|
|
7
|
+
Reactive-JSON has Bootstrap integration through the `@ea-lab/reactive-json-bootstrap` plugin.
|
|
8
|
+
|
|
9
|
+
The Bootstrap integration adds form components, HTML elements, and actions such as: `TextField`, `SelectField`, `CheckBoxField`, `DateField`, `NumberField`, `TextAreaField`, `Modal`, `Tabs`, `AccordionItem`, `Tooltip`, `Popover`, and the versatile `BootstrapElement` wrapper.
|
|
10
|
+
|
|
11
|
+
The Bootstrap components are designed to work seamlessly with Bootstrap's CSS framework and provide pre-styled, accessible form controls and UI elements.
|
|
12
|
+
|
|
13
|
+
## Install
|
|
14
|
+
|
|
15
|
+
The demo website you currently look at has already this integration installed and ready.
|
|
16
|
+
|
|
17
|
+
To enable the integration on your own project that uses Reactive-JSON, make sure
|
|
18
|
+
that the integration is installed and loaded.
|
|
19
|
+
|
|
20
|
+
Bootstrap support is available through the `@ea-lab/reactive-json-bootstrap` plugin. To get it:
|
|
21
|
+
|
|
22
|
+
```shell
|
|
23
|
+
npm i @ea-lab/reactive-json-bootstrap bootstrap react-bootstrap
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
Then make it available to ReactiveJsonRoot:
|
|
27
|
+
|
|
28
|
+
```js
|
|
29
|
+
import {ReactiveJsonRoot} from "@ea-lab/reactive-json";
|
|
30
|
+
import {mergeComponentCollections} from "@ea-lab/reactive-json";
|
|
31
|
+
import {bootstrapComponents} from "@ea-lab/reactive-json-bootstrap";
|
|
32
|
+
|
|
33
|
+
export const YourComponent = () => {
|
|
34
|
+
|
|
35
|
+
const rjRootProps = {
|
|
36
|
+
// Set your own props to rjRootProps such as rjBuildUrl.
|
|
37
|
+
// ...
|
|
38
|
+
};
|
|
39
|
+
|
|
40
|
+
// Set the plugins prop by merging the component collections.
|
|
41
|
+
// Here, we only have a single plugin, but you can add your own of course.
|
|
42
|
+
rjRootProps.plugins = mergeComponentCollections([bootstrapComponents]);
|
|
43
|
+
|
|
44
|
+
return <ReactiveJsonRoot {...rjRootProps} />;
|
|
45
|
+
}
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
Don't forget to import Bootstrap CSS in your application:
|
|
49
|
+
|
|
50
|
+
```js
|
|
51
|
+
import 'bootstrap/dist/css/bootstrap.min.css'
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
## Component Categories
|
|
55
|
+
|
|
56
|
+
### Form Elements
|
|
57
|
+
- **TextField**: Text input with Bootstrap styling
|
|
58
|
+
- **SelectField**: Dropdown select with options
|
|
59
|
+
- **CheckBoxField**: Checkbox input with labels
|
|
60
|
+
- **DateField**: Date input (limited support)
|
|
61
|
+
- **NumberField**: Numeric input with validation
|
|
62
|
+
- **TextAreaField**: Multi-line text input
|
|
63
|
+
|
|
64
|
+
### HTML Elements
|
|
65
|
+
- **Modal**: Bootstrap modal dialogs
|
|
66
|
+
- **Tabs**: Tabbed interface component
|
|
67
|
+
- **AccordionItem**: Collapsible content panels
|
|
68
|
+
|
|
69
|
+
### Actions
|
|
70
|
+
- **Tooltip**: Bootstrap tooltips on hover
|
|
71
|
+
- **Popover**: Bootstrap popovers on click/hover
|
|
72
|
+
|
|
73
|
+
### Special Components
|
|
74
|
+
- **BootstrapElement**: Generic wrapper for any React-Bootstrap component
|
|
75
|
+
|
|
76
|
+
## Features
|
|
77
|
+
|
|
78
|
+
- **Consistent Styling**: All components follow Bootstrap design patterns
|
|
79
|
+
- **Form Integration**: Seamless data binding with Reactive-JSON's form system
|
|
80
|
+
- **Accessibility**: Built-in accessibility features from React-Bootstrap
|
|
81
|
+
- **Responsive**: Mobile-first responsive design
|
|
82
|
+
- **Validation**: Form validation support with Bootstrap styling
|
|
83
|
+
- **Actions Support**: Full compatibility with Reactive-JSON's action system
|
|
84
|
+
|
|
85
|
+
templates:
|
|
86
|
+
|
|
87
|
+
data: { }
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
# Popover
|
|
2
|
-
|
|
3
|
-
**Description**: Displays a Bootstrap popover on click or hover of the element.
|
|
4
|
-
|
|
5
|
-
## Properties
|
|
6
|
-
- `header` (optional): content of the popover header
|
|
7
|
-
- `body`: content of the popover body
|
|
8
|
-
- `placement` (optional): position (`top`, `bottom`, `left`, `right`)
|
|
9
|
-
- `trigger` (optional): trigger event (`click`, `hover`, etc.)
|
|
10
|
-
|
|
11
|
-
## Example
|
|
12
|
-
```yaml
|
|
13
|
-
renderView:
|
|
14
|
-
- type: button
|
|
15
|
-
content: "Click me"
|
|
16
|
-
actions:
|
|
17
|
-
- what: popover
|
|
18
|
-
header: "Popover Title"
|
|
19
|
-
body: "This is the popover content."
|
|
20
|
-
placement: right
|
|
21
|
-
trigger: click
|
|
22
|
-
```
|
|
23
|
-
|
|
24
|
-
## Limitation
|
|
25
|
-
- Requires Bootstrap CSS.
|
|
26
|
-
- The child component must be able to accept a React reference.
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
renderView:
|
|
2
|
-
- type: Markdown
|
|
3
|
-
content: |
|
|
4
|
-
# BootstrapElement
|
|
5
|
-
|
|
6
|
-
The `BootstrapElement` component is an internal wrapper used by Reactive-JSON to integrate React-Bootstrap components into the template system.
|
|
7
|
-
|
|
8
|
-
**You should not use this component directly in your rjbuild.**
|
|
9
|
-
|
|
10
|
-
It is automatically used by higher-level components (such as BsAccordion, BsAlert, etc.) to provide Bootstrap features in a declarative way.
|
|
11
|
-
|
|
12
|
-
## Properties
|
|
13
|
-
- `attributes` (object, optional): Attributes passed to the underlying Bootstrap component
|
|
14
|
-
- `content` (object/array, optional): Content to render inside the Bootstrap component
|
|
15
|
-
|
|
16
|
-
## Limitations
|
|
17
|
-
- Not intended for direct use in rjbuild templates
|
|
18
|
-
- Used internally by the system for Bootstrap integration
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|