@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.
Files changed (116) hide show
  1. package/package.json +7 -5
  2. package/public/rjbuild/docs/advanced-concepts/data-processors.md +2 -2
  3. package/public/rjbuild/docs/advanced-concepts/plugins/component-development-guide-llm.md +14 -14
  4. package/public/rjbuild/docs/advanced-concepts/plugins/plugin-system.md +47 -1
  5. package/public/rjbuild/docs/advanced-concepts/plugins/plugin-system.yaml +53 -1
  6. package/public/rjbuild/docs/core/action/HashChangeListener.md +1 -1
  7. package/public/rjbuild/docs/core/action/HashChangeListener.yaml +24 -6
  8. package/public/rjbuild/docs/core/action/Hide.md +2 -2
  9. package/public/rjbuild/docs/core/action/Hide.yaml +4 -3
  10. package/public/rjbuild/docs/core/action/MessageListener.md +4 -4
  11. package/public/rjbuild/docs/core/action/MessageListener.yaml +18 -6
  12. package/public/rjbuild/docs/core/action/ReactOnEvent.md +4 -4
  13. package/public/rjbuild/docs/core/action/ReactOnEvent.yaml +4 -4
  14. package/public/rjbuild/docs/core/action/Redirect.md +2 -2
  15. package/public/rjbuild/docs/core/action/Redirect.yaml +8 -2
  16. package/public/rjbuild/docs/core/action/VisuallyHide.md +2 -2
  17. package/public/rjbuild/docs/core/action/VisuallyHide.yaml +2 -2
  18. package/public/rjbuild/docs/core/dataMapping/simpleMapping.md +5 -5
  19. package/public/rjbuild/docs/core/dataMapping/simpleMapping.yaml +90 -60
  20. package/public/rjbuild/docs/core/element/debug/VariablesDebug.md +59 -0
  21. package/public/rjbuild/docs/core/element/debug/VariablesDebug.yaml +71 -0
  22. package/public/rjbuild/docs/core/element/form/Input.md +307 -0
  23. package/public/rjbuild/docs/core/element/form/Input.yaml +572 -0
  24. package/public/rjbuild/docs/core/element/html/FolderSortableTree.yaml +40 -12
  25. package/public/rjbuild/docs/core/element/html/FormatNumeral.yaml +21 -7
  26. package/public/rjbuild/docs/core/element/html/Html.yaml +26 -9
  27. package/public/rjbuild/docs/core/element/html/LabelFromValue.yaml +25 -8
  28. package/public/rjbuild/docs/core/element/html/PreformattedMarkup.yaml +23 -7
  29. package/public/rjbuild/docs/core/element/html/SortableTreeItemCollapseButton.yaml +7 -6
  30. package/public/rjbuild/docs/core/element/html/SyntaxHighlighter.yaml +56 -20
  31. package/public/rjbuild/docs/core/element/special/Count.md +8 -10
  32. package/public/rjbuild/docs/core/element/special/Count.yaml +121 -40
  33. package/public/rjbuild/docs/core/element/special/DataFilter.md +40 -41
  34. package/public/rjbuild/docs/core/element/special/DataFilter.yaml +197 -81
  35. package/public/rjbuild/docs/core/element/special/DelayedActions.md +13 -15
  36. package/public/rjbuild/docs/core/element/special/DelayedActions.yaml +32 -13
  37. package/public/rjbuild/docs/core/element/special/PageControls.md +8 -10
  38. package/public/rjbuild/docs/core/element/special/PageControls.yaml +9 -8
  39. package/public/rjbuild/docs/core/element/special/Phantom.md +9 -11
  40. package/public/rjbuild/docs/core/element/special/Phantom.yaml +22 -9
  41. package/public/rjbuild/docs/core/element/special/ReactiveJsonSubroot.md +7 -9
  42. package/public/rjbuild/docs/core/element/special/ReactiveJsonSubroot.yaml +167 -49
  43. package/public/rjbuild/docs/core/element/special/Switch.md +36 -38
  44. package/public/rjbuild/docs/core/element/special/Switch.yaml +68 -40
  45. package/public/rjbuild/docs/core/example/html.md +2 -2
  46. package/public/rjbuild/docs/core/example/html.yaml +2 -3
  47. package/public/rjbuild/docs/core/example/native-html-forms.md +245 -0
  48. package/public/rjbuild/docs/core/example/native-html-forms.yaml +393 -0
  49. package/public/rjbuild/docs/core/reaction/addData.md +17 -5
  50. package/public/rjbuild/docs/core/reaction/addData.yaml +70 -11
  51. package/public/rjbuild/docs/core/reaction/fetchData.md +1 -2
  52. package/public/rjbuild/docs/core/reaction/fetchData.yaml +84 -19
  53. package/public/rjbuild/docs/core/reaction/moveData.md +0 -4
  54. package/public/rjbuild/docs/core/reaction/moveData.yaml +28 -6
  55. package/public/rjbuild/docs/core/reaction/postMessage.md +0 -4
  56. package/public/rjbuild/docs/core/reaction/postMessage.yaml +29 -6
  57. package/public/rjbuild/docs/core/reaction/redirectNow.md +0 -4
  58. package/public/rjbuild/docs/core/reaction/redirectNow.yaml +10 -3
  59. package/public/rjbuild/docs/core/reaction/removeData.md +2 -6
  60. package/public/rjbuild/docs/core/reaction/removeData.yaml +40 -2
  61. package/public/rjbuild/docs/core/reaction/setClipboardData.md +0 -4
  62. package/public/rjbuild/docs/core/reaction/setClipboardData.yaml +10 -3
  63. package/public/rjbuild/docs/core/reaction/setData.md +18 -8
  64. package/public/rjbuild/docs/core/reaction/setData.yaml +43 -11
  65. package/public/rjbuild/docs/core/reaction/submitData.md +2 -3
  66. package/public/rjbuild/docs/core/reaction/submitData.yaml +43 -7
  67. package/public/rjbuild/docs/core/reaction/triggerEvent.md +0 -4
  68. package/public/rjbuild/docs/core/reaction/triggerEvent.yaml +25 -11
  69. package/public/rjbuild/docs/docs-components/Mermaid.md +254 -0
  70. package/public/rjbuild/docs/docs-components/Mermaid.yaml +339 -0
  71. package/public/rjbuild/docs/docs-components/index.yaml +1 -0
  72. package/public/rjbuild/docs/getting-started/actions.md +1 -1
  73. package/public/rjbuild/docs/index.yaml +2 -1
  74. package/public/rjbuild/docs/install.md +26 -29
  75. package/public/rjbuild/docs/install.yaml +4 -10
  76. package/public/rjbuild/docs/integration/bootstrap/action/Popover.md +26 -0
  77. package/public/rjbuild/docs/{core → integration/bootstrap}/action/Popover.yaml +28 -5
  78. package/public/rjbuild/docs/{core → integration/bootstrap}/action/Tooltip.md +4 -4
  79. package/public/rjbuild/docs/{core → integration/bootstrap}/action/Tooltip.yaml +16 -3
  80. package/public/rjbuild/docs/{core → integration/bootstrap}/element/form/CheckBoxField.md +8 -8
  81. package/public/rjbuild/docs/{core → integration/bootstrap}/element/form/CheckBoxField.yaml +40 -8
  82. package/public/rjbuild/docs/{core → integration/bootstrap}/element/form/DateField.md +5 -5
  83. package/public/rjbuild/docs/{core → integration/bootstrap}/element/form/DateField.yaml +27 -5
  84. package/public/rjbuild/docs/{core → integration/bootstrap}/element/form/NumberField.md +7 -7
  85. package/public/rjbuild/docs/{core → integration/bootstrap}/element/form/NumberField.yaml +32 -7
  86. package/public/rjbuild/docs/{core → integration/bootstrap}/element/form/SelectField.md +9 -9
  87. package/public/rjbuild/docs/{core → integration/bootstrap}/element/form/SelectField.yaml +46 -9
  88. package/public/rjbuild/docs/{core → integration/bootstrap}/element/form/TextAreaField.md +8 -8
  89. package/public/rjbuild/docs/{core → integration/bootstrap}/element/form/TextAreaField.yaml +36 -8
  90. package/public/rjbuild/docs/{core → integration/bootstrap}/element/form/TextField.md +8 -8
  91. package/public/rjbuild/docs/{core → integration/bootstrap}/element/form/TextField.yaml +38 -8
  92. package/public/rjbuild/docs/{core → integration/bootstrap}/element/form/formElementsCommon.md +2 -4
  93. package/public/rjbuild/docs/{core → integration/bootstrap}/element/form/index.md +0 -2
  94. package/public/rjbuild/docs/integration/bootstrap/element/html/AccordionItem.md +69 -0
  95. package/public/rjbuild/docs/{core → integration/bootstrap}/element/html/AccordionItem.yaml +19 -7
  96. package/public/rjbuild/docs/integration/bootstrap/element/html/Modal.md +127 -0
  97. package/public/rjbuild/docs/{core → integration/bootstrap}/element/html/Modal.yaml +35 -12
  98. package/public/rjbuild/docs/integration/bootstrap/element/html/Tabs.md +150 -0
  99. package/public/rjbuild/docs/{core → integration/bootstrap}/element/html/Tabs.yaml +24 -15
  100. package/public/rjbuild/docs/integration/bootstrap/element/html/index.md +13 -0
  101. package/public/rjbuild/docs/{core → integration/bootstrap}/element/special/BootstrapElement.md +4 -6
  102. package/public/rjbuild/docs/integration/bootstrap/element/special/BootstrapElement.yaml +29 -0
  103. package/public/rjbuild/docs/integration/bootstrap/element/special/index.md +19 -0
  104. package/public/rjbuild/docs/integration/bootstrap/example/website.md +41 -0
  105. package/public/rjbuild/docs/integration/bootstrap/overview.md +69 -0
  106. package/public/rjbuild/docs/integration/bootstrap/overview.yaml +87 -0
  107. package/public/rjbuild/docs/core/action/Popover.md +0 -26
  108. package/public/rjbuild/docs/core/element/special/BootstrapElement.yaml +0 -18
  109. /package/public/rjbuild/docs/{core → integration/bootstrap}/element/form/index.yaml +0 -0
  110. /package/public/rjbuild/docs/{core → integration/bootstrap}/example/accordion.md +0 -0
  111. /package/public/rjbuild/docs/{core → integration/bootstrap}/example/accordion.yaml +0 -0
  112. /package/public/rjbuild/docs/{core → integration/bootstrap}/example/dynamic-content.md +0 -0
  113. /package/public/rjbuild/docs/{core → integration/bootstrap}/example/dynamic-content.yaml +0 -0
  114. /package/public/rjbuild/docs/{core → integration/bootstrap}/example/website.yaml +0 -0
  115. /package/public/rjbuild/docs/{chartjs → integration/chartjs}/components.yaml +0 -0
  116. /package/public/rjbuild/docs/{chartjs → integration/chartjs}/overview.yaml +0 -0
@@ -8,10 +8,27 @@ renderView:
8
8
  **Note:** The `tag` property must be a static string. It cannot be set dynamically via template or data.
9
9
 
10
10
  ## Properties
11
- - `tag` (string, required): The HTML tag to render (e.g., div, span, section)
12
- - `attributes` (object, optional): Attributes for the tag (class, id, etc.)
13
- - `content` (object/array, optional): Content to render inside the tag (any Reactive-JSON view or array)
14
- - `extra` (object, optional): Additional content rendered after the main tag
11
+
12
+ - type: DefinitionList
13
+ content:
14
+ - term:
15
+ code: tag
16
+ after: "(string, required)"
17
+ details:
18
+ type: Markdown
19
+ content: "The HTML tag to render (e.g., div, span, section)."
20
+ - term:
21
+ code: attributes
22
+ after: "(object, optional)"
23
+ details: "Attributes for the tag (class, id, etc.)."
24
+ - term:
25
+ code: content
26
+ after: "(object|array, optional)"
27
+ details: "Content to render inside the tag (any Reactive-JSON view or array)."
28
+ - term:
29
+ code: extra
30
+ after: "(object, optional)"
31
+ details: "Additional content rendered after the main tag."
15
32
 
16
33
  - type: BsAlert
17
34
  attributes:
@@ -60,8 +77,8 @@ renderView:
60
77
  - type: Markdown
61
78
  content: |
62
79
  ## Limitations
63
- - The `tag` property does not support template evaluation and must be a static string
64
- - No validation of tag names; invalid tags may cause rendering errors
65
- - No support for dangerouslySetInnerHTML (use PreformattedMarkup for raw HTML)
66
- - No built-in support for event handlers (use actions system for interactivity)
67
- - No automatic support for custom attributes beyond React's attribute normalization
80
+ - The `tag` property does not support template evaluation and must be a static string.
81
+ - No validation of tag names; invalid tags may cause rendering errors.
82
+ - No support for dangerouslySetInnerHTML (use PreformattedMarkup for raw HTML).
83
+ - No built-in support for event handlers (use actions system for interactivity).
84
+ - No automatic support for custom attributes beyond React's attribute normalization.
@@ -6,10 +6,27 @@ renderView:
6
6
  The `LabelFromValue` component displays the label associated with a value, using an option-like structure. It is useful for showing the display label of a value selected in a SelectField or any value/label mapping.
7
7
 
8
8
  ## Properties
9
- - `dataLocation` (string, required): Path to the value
10
- - `options` (array, optional): Array of `{label, value}` objects
11
- - `dynamicOptions` (any, optional): Template value for dynamic options
12
- - `defaultFieldValue` (any, optional): Default value if none is set
9
+
10
+ - type: DefinitionList
11
+ content:
12
+ - term:
13
+ code: dataLocation
14
+ after: "(string, required)"
15
+ details: "Path to the value."
16
+ - term:
17
+ code: options
18
+ after: "(array, optional)"
19
+ details:
20
+ type: Markdown
21
+ content: "Array of `{label, value}` objects."
22
+ - term:
23
+ code: dynamicOptions
24
+ after: "(any, optional)"
25
+ details: "Template value for dynamic options."
26
+ - term:
27
+ code: defaultFieldValue
28
+ after: "(any, optional)"
29
+ details: "Default value if none is set."
13
30
 
14
31
  - type: RjBuildDescriber
15
32
  title: "Interactive Example: Display label from value"
@@ -48,7 +65,7 @@ renderView:
48
65
  - type: Markdown
49
66
  content: |
50
67
  ## Limitations
51
- - Only the first matching label is displayed; duplicate values in options are not supported
52
- - No support for grouped options or nested structures
53
- - No built-in formatting for the label (use a wrapper if needed)
54
- - If no options are provided, the raw value is shown
68
+ - Only the first matching label is displayed; duplicate values in options are not supported.
69
+ - No support for grouped options or nested structures.
70
+ - No built-in formatting for the label (use a wrapper if needed).
71
+ - If no options are provided, the raw value is shown.
@@ -6,10 +6,26 @@ renderView:
6
6
  The `PreformattedMarkup` component renders HTML content with a strict allowlist of tags for safety. Use it to display rich text or HTML snippets, with filtering to prevent unwanted markup.
7
7
 
8
8
  ## Properties
9
- - `content` (string, required): The HTML string to render (can use template values)
10
- - `htmlTagAllowList` (array, optional): List of allowed tags (overrides default)
11
- - `additionalAllowedTags` (array, optional): Tags to add to the allowlist
12
9
 
10
+ - type: DefinitionList
11
+ content:
12
+ - term:
13
+ code: content
14
+ after: "(string, required)"
15
+ details:
16
+ type: Markdown
17
+ content: "The HTML string to render (can use template values)."
18
+ - term:
19
+ code: htmlTagAllowList
20
+ after: "(array, optional)"
21
+ details: List of allowed tags (overrides default).
22
+ - term:
23
+ code: additionalAllowedTags
24
+ after: "(array, optional)"
25
+ details: Tags to add to the allowlist.
26
+
27
+ - type: Markdown
28
+ content: |
13
29
  **Default allowed tags:** abbr, acronym, b, blockquote, br, caption, code, div, em, h1-h6, i, li, ol, p, span, sup, strong, table, tbody, td, tfoot, th, thead, tr, ul
14
30
 
15
31
  - type: RjBuildDescriber
@@ -31,7 +47,7 @@ renderView:
31
47
  - type: Markdown
32
48
  content: |
33
49
  ## Limitations
34
- - Only allowed tags are rendered; all others are stripped
35
- - No support for custom attributes or inline styles
36
- - No script, style, or event attributes are executed
37
- - Not suitable for rendering untrusted HTML with complex requirements
50
+ - Only allowed tags are rendered; all others are stripped.
51
+ - No support for custom attributes or inline styles.
52
+ - No script, style, or event attributes are executed.
53
+ - Not suitable for rendering untrusted HTML with complex requirements.
@@ -11,11 +11,12 @@ renderView:
11
11
  disappearance of the default collapse button.
12
12
 
13
13
  ## Properties
14
- No properties.
14
+
15
+ None.
15
16
 
16
17
  ## Technical Details
17
- - Renders a button with CSS classes for styling
18
- - Only appears when the tree item has children and supports collapsing
18
+ - Renders a button with CSS classes for styling.
19
+ - Only appears when the tree item has children and supports collapsing.
19
20
 
20
21
  - type: RjBuildDescriber
21
22
  title: "Interactive Example: Tree with a right aligned collapse button"
@@ -85,8 +86,8 @@ renderView:
85
86
  - type: Markdown
86
87
  content: |
87
88
  ## Limitations
88
- - Only works within the template context of a `FolderSortableTree` item
89
- - The button only appears when the tree item has children (`childCount > 0`)
90
- - No customization of the collapse/expand behavior beyond what the underlying SortableTree provides
89
+ - Only works within the template context of a `FolderSortableTree` item.
90
+ - The button only appears when the tree item has children (`childCount > 0`).
91
+ - No customization of the collapse/expand behavior beyond what the underlying SortableTree provides.
91
92
  - The styling is controlled by the dnd-kit-sortable-tree CSS classes. You will need to provide CSS to override
92
93
  the default styling.
@@ -6,16 +6,52 @@ renderView:
6
6
  The `SyntaxHighlighter` component provides syntax highlighting for code snippets using the react-syntax-highlighter library. It supports multiple programming languages and themes, making it perfect for displaying formatted code in documentation or tutorials.
7
7
 
8
8
  ## Properties
9
- - `content` (string, required): The code content to highlight (supports template evaluation)
10
- - `language` (string, optional): Programming language for syntax highlighting (default: "text")
11
- - `style` (object, optional): Custom style theme for highlighting (overrides automatic dark mode detection)
12
- - `lightStyle` (object, optional): Style theme for light mode (supports template evaluation)
13
- - `darkStyle` (object, optional): Style theme for dark mode (supports template evaluation)
14
- - `showLineNumbers` (boolean, optional): Whether to display line numbers (default: false)
15
- - `wrapLines` (boolean, optional): Whether to wrap lines (default: false)
16
- - `wrapLongLines` (boolean, optional): Whether to wrap long lines (default: false)
17
- - `attributes` (object, optional): HTML attributes for the wrapper div
18
9
 
10
+ - type: DefinitionList
11
+ content:
12
+ - term:
13
+ code: content
14
+ after: "(string, required)"
15
+ details:
16
+ type: Markdown
17
+ content: "The code content to highlight (supports template evaluation)."
18
+ - term:
19
+ code: language
20
+ after: "(string, optional)"
21
+ details:
22
+ type: Markdown
23
+ content: "Programming language for syntax highlighting (default: `text`)."
24
+ - term:
25
+ code: style
26
+ after: "(object, optional)"
27
+ details: Custom style theme for highlighting (overrides automatic dark mode detection).
28
+ - term:
29
+ code: lightStyle
30
+ after: "(object, optional)"
31
+ details: Style theme for light mode (supports template evaluation).
32
+ - term:
33
+ code: darkStyle
34
+ after: "(object, optional)"
35
+ details: Style theme for dark mode (supports template evaluation).
36
+ - term:
37
+ code: showLineNumbers
38
+ after: "(boolean, optional)"
39
+ details: Whether to display line numbers (default: false).
40
+ - term:
41
+ code: wrapLines
42
+ after: "(boolean, optional)"
43
+ details: Whether to wrap lines (default: false).
44
+ - term:
45
+ code: wrapLongLines
46
+ after: "(boolean, optional)"
47
+ details: Whether to wrap long lines (default: false).
48
+ - term:
49
+ code: attributes
50
+ after: "(object, optional)"
51
+ details: HTML attributes for the wrapper div.
52
+
53
+ - type: Markdown
54
+ content: |
19
55
  **Automatic Dark Mode**: The component automatically detects the user's color scheme preference and uses appropriate themes:
20
56
  - Light mode: `docco` theme by default
21
57
  - Dark mode: `atomOneDark` theme by default
@@ -230,9 +266,9 @@ renderView:
230
266
  The component automatically adapts to the user's system color scheme preference:
231
267
 
232
268
  ### Automatic Theme Detection
233
- - **Light mode**: Uses the `docco` theme by default (clean, minimal highlighting)
234
- - **Dark mode**: Uses the `atomOneDark` theme by default (modern dark theme with good contrast)
235
- - **Real-time switching**: Themes change instantly when the user switches their system preference
269
+ - **Light mode**: Uses the `docco` theme by default (clean, minimal highlighting).
270
+ - **Dark mode**: Uses the `atomOneDark` theme by default (modern dark theme with good contrast).
271
+ - **Real-time switching**: Themes change instantly when the user switches their system preference.
236
272
 
237
273
  ### Custom Theme Configuration
238
274
 
@@ -261,10 +297,10 @@ renderView:
261
297
  ## Styling and Themes
262
298
 
263
299
  The component supports all react-syntax-highlighter themes. The style can be:
264
- - A static style object imported from react-syntax-highlighter themes
265
- - A template-evaluated value from your data context
266
- - Any valid react-syntax-highlighter style configuration
267
- - Different themes for light and dark modes using `lightStyle` and `darkStyle` properties
300
+ - A static style object imported from react-syntax-highlighter themes.
301
+ - A template-evaluated value from your data context.
302
+ - Any valid react-syntax-highlighter style configuration.
303
+ - Different themes for light and dark modes using `lightStyle` and `darkStyle` properties.
268
304
 
269
305
  - type: Markdown
270
306
  content: |
@@ -287,7 +323,7 @@ renderView:
287
323
  - type: Markdown
288
324
  content: |
289
325
  ## Limitations
290
- - Style themes must be compatible with react-syntax-highlighter
291
- - Large code blocks may impact performance
292
- - Line numbers display depends on the chosen theme
293
- - Custom syntax definitions are not supported through the template system
326
+ - Style themes must be compatible with react-syntax-highlighter.
327
+ - Large code blocks may impact performance.
328
+ - Line numbers display depends on the chosen theme.
329
+ - Custom syntax definitions are not supported through the template system.
@@ -1,18 +1,16 @@
1
1
  # Count
2
2
 
3
- ## Introduction
4
-
5
3
  The `Count` component returns the number of items matching a JSONPath pattern in the data context. It is useful for displaying counts of elements, such as the number of items in a list, matching a filter, or present in a subtree.
6
4
 
7
5
  ## Properties
8
- - `jsonPathPattern` (string, required): The JSONPath pattern to evaluate for counting
6
+ - `jsonPathPattern` (string, required): The JSONPath pattern to evaluate for counting.
9
7
  - `context` (string, optional): The context to use for evaluation (`global`, `template`, or `root`). Default is `global`.
10
8
 
11
9
  ## Behavior
12
- - Evaluates the given JSONPath pattern on the selected data context
13
- - Returns the number of matches found
14
- - If `context` is `global`, uses the global data context; if `template`, uses the template context; if `root`, uses the root context
15
- - If `jsonPathPattern` is not provided, renders nothing
10
+ - Evaluates the given JSONPath pattern on the selected data context.
11
+ - Returns the number of matches found.
12
+ - If `context` is `global`, uses the global data context; if `template`, uses the template context; if `root`, uses the root context.
13
+ - If `jsonPathPattern` is not provided, renders nothing.
16
14
 
17
15
  ## Example
18
16
  ```yaml
@@ -32,6 +30,6 @@ data:
32
30
  ```
33
31
 
34
32
  ## Limitations
35
- - Only supports JSONPath patterns
36
- - Returns 0 if no match or if the pattern is invalid
37
- - Does not support advanced filtering or custom functions in JSONPath
33
+ - Only supports JSONPath patterns.
34
+ - Returns 0 if no match or if the pattern is invalid.
35
+ - Does not support advanced filtering or custom functions in JSONPath.
@@ -6,14 +6,27 @@ renderView:
6
6
  The `Count` component returns the number of items matching a JSONPath pattern in the data context. It is useful for displaying counts of elements, such as the number of items in a list, matching a filter, or present in a subtree.
7
7
 
8
8
  ## Properties
9
- - `jsonPathPattern` (string, required): The JSONPath pattern to evaluate for counting
10
- - `context` (string, optional): The context to use for evaluation (`global`, `template`, or `root`). Default is `global`.
9
+
10
+ - type: DefinitionList
11
+ content:
12
+ - term:
13
+ code: jsonPathPattern
14
+ after: "(string, required)"
15
+ details:
16
+ type: Markdown
17
+ content: "The JSONPath pattern to evaluate for counting."
18
+ - term:
19
+ code: context
20
+ after: "(string, optional)"
21
+ details:
22
+ type: Markdown
23
+ content: "The context to use for evaluation (`global`, `template`, or `root`). Default is `global`."
11
24
 
12
25
  ## Behavior
13
- - Evaluates the given JSONPath pattern on the selected data context
14
- - Returns the number of matches found
15
- - If `context` is `global`, uses the global data context; if `template`, uses the template context; if `root`, uses the root context
16
- - If `jsonPathPattern` is not provided, renders nothing
26
+ - Evaluates the given JSONPath pattern on the selected data context.
27
+ - Returns the number of matches found.
28
+ - If `context` is `global`, uses the global data context; if `template`, uses the template context; if `root`, uses the root context.
29
+ - If `jsonPathPattern` is not provided, renders nothing.
17
30
 
18
31
  - type: RjBuildDescriber
19
32
  title: "Example"
@@ -42,15 +55,23 @@ renderView:
42
55
  renderView:
43
56
  - type: div
44
57
  attributes:
45
- class: "container-fluid"
58
+ style:
59
+ width: "100%"
60
+ padding: "0 16px"
46
61
  content:
47
62
  - type: div
48
63
  attributes:
49
- class: "row mb-4"
64
+ style:
65
+ display: "flex"
66
+ marginBottom: "16px"
50
67
  content:
51
68
  - type: div
52
69
  attributes:
53
- class: "col-md-6"
70
+ style:
71
+ width: "48%"
72
+ display: "inline-block"
73
+ verticalAlign: "top"
74
+ marginRight: "2%"
54
75
  content:
55
76
  - type: div
56
77
  attributes:
@@ -118,7 +139,11 @@ renderView:
118
139
  jsonPathPattern: "$.users[?(@.role == 'admin')]"
119
140
  - type: div
120
141
  attributes:
121
- class: "col-md-6"
142
+ style:
143
+ width: "48%"
144
+ display: "inline-block"
145
+ verticalAlign: "top"
146
+ marginRight: "2%"
122
147
  content:
123
148
  - type: div
124
149
  attributes:
@@ -140,37 +165,86 @@ renderView:
140
165
  attributes:
141
166
  class: "mb-3"
142
167
  content:
143
- - type: TextField
144
- label: "Name:"
145
- dataLocation: ~.newUser.name
146
- placeholder: "Enter user name"
168
+ - type: label
169
+ content: "Name:"
170
+ - type: input
171
+ attributes:
172
+ type: "text"
173
+ value: ~.newUser.name
174
+ placeholder: "Enter user name"
175
+ style:
176
+ padding: "8px"
177
+ border: "1px solid #ccc"
178
+ borderRadius: "4px"
179
+ width: "100%"
180
+ actions:
181
+ - what: setData
182
+ on: input
183
+ path: ~.newUser.name
184
+ value: "<reactive-json:event-new-value>"
147
185
  - type: div
148
186
  attributes:
149
187
  class: "mb-3"
150
188
  content:
151
- - type: SelectField
152
- label: "Status:"
153
- dataLocation: ~.newUser.status
154
- options:
155
- - label: "Active"
156
- value: "active"
157
- - label: "Inactive"
158
- value: "inactive"
189
+ - type: label
190
+ content: "Status:"
191
+ - type: select
192
+ attributes:
193
+ value: ~.newUser.status
194
+ style:
195
+ padding: "8px"
196
+ border: "1px solid #ccc"
197
+ borderRadius: "4px"
198
+ width: "100%"
199
+ content:
200
+ - type: option
201
+ attributes:
202
+ value: "active"
203
+ content: "Active"
204
+ - type: option
205
+ attributes:
206
+ value: "inactive"
207
+ content: "Inactive"
208
+ actions:
209
+ - what: setData
210
+ on: change
211
+ path: ~.newUser.status
212
+ value: "<reactive-json:event-new-value>"
159
213
  - type: div
160
214
  attributes:
161
215
  class: "mb-3"
162
216
  content:
163
- - type: SelectField
164
- label: "Role:"
165
- dataLocation: ~.newUser.role
166
- options:
167
- - label: "User"
168
- value: "user"
169
- - label: "Admin"
170
- value: "admin"
217
+ - type: label
218
+ content: "Role:"
219
+ - type: select
220
+ attributes:
221
+ value: ~.newUser.role
222
+ style:
223
+ padding: "8px"
224
+ border: "1px solid #ccc"
225
+ borderRadius: "4px"
226
+ width: "100%"
227
+ content:
228
+ - type: option
229
+ attributes:
230
+ value: "user"
231
+ content: "User"
232
+ - type: option
233
+ attributes:
234
+ value: "admin"
235
+ content: "Admin"
236
+ actions:
237
+ - what: setData
238
+ on: change
239
+ path: ~.newUser.role
240
+ value: "<reactive-json:event-new-value>"
171
241
  - type: button
172
242
  attributes:
173
- class: "btn btn-primary"
243
+ style:
244
+ padding: "8px 16px"
245
+ border: "1px solid #007bff"
246
+ borderRadius: "4px"
247
+ cursor: "pointer"
174
248
  content: "Add User"
175
249
  actions:
176
250
  - what: addData
@@ -234,8 +308,7 @@ renderView:
234
308
  attributes:
235
309
  class: "ms-2 badge rounded-pill"
236
310
  style:
237
- backgroundColor: "#198754"
238
- color: "white"
311
+ border: "1px solid #198754"
239
312
  content: ~.status
240
313
  actions:
241
314
  - what: hide
@@ -245,8 +318,7 @@ renderView:
245
318
  attributes:
246
319
  class: "ms-2 badge rounded-pill"
247
320
  style:
248
- backgroundColor: "#ffc107"
249
- color: "black"
321
+ border: "1px solid #ffc107"
250
322
  content: ~.status
251
323
  actions:
252
324
  - what: hide
@@ -264,7 +336,12 @@ renderView:
264
336
  content:
265
337
  - type: button
266
338
  attributes:
267
- class: "btn btn-sm btn-outline-primary me-2"
339
+ style:
340
+ padding: "4px 8px"
341
+ border: "1px solid #007bff"
342
+ borderRadius: "4px"
343
+ cursor: "pointer"
344
+ marginRight: "8px"
268
345
  content: "Toggle Status"
269
346
  actions:
270
347
  - what: setData
@@ -281,7 +358,11 @@ renderView:
281
358
  is: "inactive"
282
359
  - type: button
283
360
  attributes:
284
- class: "btn btn-sm btn-outline-danger"
361
+ style:
362
+ padding: "4px 8px"
363
+ border: "1px solid #dc3545"
364
+ borderRadius: "4px"
365
+ cursor: "pointer"
285
366
  content: "Remove"
286
367
  actions:
287
368
  - what: removeData
@@ -320,6 +401,6 @@ renderView:
320
401
  - `$..products` - Count all products at any level (recursive)
321
402
 
322
403
  ## Limitations
323
- - Only supports JSONPath patterns
324
- - Returns 0 if no match or if the pattern is invalid
325
- - Does not support advanced filtering or custom functions in JSONPath
404
+ - Only supports JSONPath patterns.
405
+ - Returns 0 if no match or if the pattern is invalid.
406
+ - Does not support advanced filtering or custom functions in JSONPath.
@@ -1,32 +1,31 @@
1
1
  # DataFilter
2
2
 
3
- ## Introduction
4
-
5
3
  The `DataFilter` component allows you to filter data from the global or template context before rendering its content. It is particularly useful for conditional display of elements based on dynamic complex criteria, such as filtering lists, trees, or data subsets.
6
4
 
7
5
  ## Properties
8
- - `filters` (array, required): Array of filter objects, each specifying properties and conditions to check
9
- - `subjectsWithProperty` (string): Property to check in the data, acts as namespace
10
- - `andConditions` (array): List of conditions that must all be true
11
- - `orConditions` (array): List of conditions where at least one must be true
6
+ - `filters` (array, required): Array of filter objects, each specifying properties and conditions to check:
7
+ - `subjectsWithProperty` (string): Property to check in the data, acts as namespace.
8
+ - `andConditions` (array): List of conditions that must all be true.
9
+ - `orConditions` (array): List of conditions where at least one must be true.
12
10
  - Available conditions:
13
- - `when`: Checks a condition on a value
14
- - `is`: Compares exact equality
15
- - `isNot`: Checks inequality
16
- - `isEmpty`: Checks if a value is empty
17
- - `contains`: Checks if a value contains a substring
18
- - `>=`, `<=`, `>`, `<`: Numeric comparisons
19
- - `compareAsDates`: Boolean to compare values as dates
20
- - `whenFilterableData`: Specifies the data path to filter, must include the namespace
21
- - `context` (string, optional): Context to filter (`global` or `template`). Default: `global`
22
- - `content` (object/array, required): Content to render after filtering
11
+ - `when`: Checks a condition on a value.
12
+ - `is`: Compares exact equality.
13
+ - `isNot`: Checks inequality.
14
+ - `isEmpty`: Checks if a value is empty.
15
+ - `isNotEmpty`: Checks if a value is not empty.
16
+ - `contains`: Checks if a value contains a substring.
17
+ - `>=`, `<=`, `>`, `<`: Numeric comparisons.
18
+ - `compareAsDates`: Boolean to compare values as dates.
19
+ - `whenFilterableData`: Specifies the data path to filter, must include the namespace.
20
+ - `context` (string, optional): Context to filter (`global` or `template`). Default: `global`.
21
+ - `content` (object/array, required): Content to render after filtering.
23
22
 
24
23
  ## Behavior
25
- - Applies all filters to the selected context before content rendering
26
- - Supports complex filtering conditions with `andConditions` and `orConditions`
27
- - Allows recursive filtering while preserving data structure
28
- - Can be combined with other components to create interactive filtering interfaces
29
- - Supports dynamic filtering based on application state
24
+ - Applies all filters to the selected context before content rendering.
25
+ - Supports complex filtering conditions with `andConditions` and `orConditions`.
26
+ - Allows recursive filtering while preserving data structure.
27
+ - Can be combined with other components to create interactive filtering interfaces.
28
+ - Supports dynamic filtering based on application state.
30
29
 
31
30
  ## Filterable Data Structure
32
31
 
@@ -59,10 +58,10 @@ filters:
59
58
  ```
60
59
 
61
60
  The identification key (here "item"):
62
- - Can have any name (`itemXyz`, `element`, etc.)
63
- - Must be consistent between data structure and conditions
64
- - Serves as a namespace for accessing properties in `whenFilterableData`
65
- - Is required for DataFilter to correctly identify filterable elements
61
+ - Can have any name (`itemXyz`, `element`, etc.).
62
+ - Must be consistent between data structure and conditions.
63
+ - Serves as a namespace for accessing properties in `whenFilterableData`.
64
+ - Is required for DataFilter to correctly identify filterable elements.
66
65
 
67
66
  ## Example
68
67
 
@@ -127,23 +126,23 @@ data:
127
126
  ```
128
127
 
129
128
  ## Advanced Use Cases
130
- - Multi-criteria filtering with combined conditions
131
- - Real-time search interface
132
- - Hierarchical data filtering (trees, sub-elements)
133
- - Complex state management (conflicts, modifications, new elements)
134
- - Integration with pagination components
135
- - Date-based filtering and numeric comparisons
129
+ - Multi-criteria filtering with combined conditions.
130
+ - Real-time search interface.
131
+ - Hierarchical data filtering (trees, sub-elements).
132
+ - Complex state management (conflicts, modifications, new elements).
133
+ - Integration with pagination components.
134
+ - Date-based filtering and numeric comparisons.
136
135
 
137
136
  ## Best Practices
138
- - Organize filters by logical category
139
- - Use comments to document complex conditions
140
- - Combine with UI components for interactive experience
141
- - Consider performance with large datasets
142
- - Use reusable templates for common filters
143
- - Use consistent namespace patterns across your application
137
+ - Organize filters by logical category.
138
+ - Use comments to document complex conditions.
139
+ - Combine with UI components for interactive experience.
140
+ - Consider performance with large datasets.
141
+ - Use reusable templates for common filters.
142
+ - Use consistent namespace patterns across your application.
144
143
 
145
144
  ## Limitations
146
- - Filtering is based on simple comparisons
147
- - Performance may be impacted with very large datasets
148
- - Does not support custom filtering functions
149
- - Filtering is applied recursively on the entire structure
145
+ - Filtering is based on simple comparisons.
146
+ - Performance may be impacted with very large datasets.
147
+ - Does not support custom filtering functions.
148
+ - Filtering is applied recursively on the entire structure.