systemlink-cli 1.15.2__tar.gz → 1.16.0__tar.gz
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.
- {systemlink_cli-1.15.2 → systemlink_cli-1.16.0}/PKG-INFO +1 -1
- {systemlink_cli-1.15.2 → systemlink_cli-1.16.0}/pyproject.toml +1 -1
- {systemlink_cli-1.15.2 → systemlink_cli-1.16.0}/slcli/_version.py +1 -1
- {systemlink_cli-1.15.2 → systemlink_cli-1.16.0}/slcli/skills/slcli/references/webapp/angular-ui-packages.md +40 -7
- {systemlink_cli-1.15.2 → systemlink_cli-1.16.0}/slcli/skills/slcli/references/webapp/layout-patterns.md +12 -0
- {systemlink_cli-1.15.2 → systemlink_cli-1.16.0}/slcli/skills/slcli/references/webapp/nimble-angular.md +2 -0
- {systemlink_cli-1.15.2 → systemlink_cli-1.16.0}/slcli/skills/slcli/references/webapp/overview.md +29 -5
- systemlink_cli-1.16.0/slcli/webapp_bootstrap.py +1320 -0
- {systemlink_cli-1.15.2 → systemlink_cli-1.16.0}/slcli/webapp_templates/angular/blank/src/app/app.module.ts +5 -2
- {systemlink_cli-1.15.2 → systemlink_cli-1.16.0}/slcli/webapp_templates/angular/blank/src/app/features/master-detail/master-detail-page.component.html +11 -2
- {systemlink_cli-1.15.2 → systemlink_cli-1.16.0}/slcli/webapp_templates/angular/blank/src/app/features/master-detail/master-detail-page.component.scss +5 -1
- {systemlink_cli-1.15.2 → systemlink_cli-1.16.0}/slcli/webapp_templates/angular/blank/src/app/features/master-detail/master-detail-page.component.ts +26 -2
- systemlink_cli-1.15.2/slcli/webapp_bootstrap.py +0 -631
- {systemlink_cli-1.15.2 → systemlink_cli-1.16.0}/LICENSE +0 -0
- {systemlink_cli-1.15.2 → systemlink_cli-1.16.0}/dff-editor/editor.js +0 -0
- {systemlink_cli-1.15.2 → systemlink_cli-1.16.0}/dff-editor/index.html +0 -0
- {systemlink_cli-1.15.2 → systemlink_cli-1.16.0}/slcli/__init__.py +0 -0
- {systemlink_cli-1.15.2 → systemlink_cli-1.16.0}/slcli/__main__.py +0 -0
- {systemlink_cli-1.15.2 → systemlink_cli-1.16.0}/slcli/asset_click.py +0 -0
- {systemlink_cli-1.15.2 → systemlink_cli-1.16.0}/slcli/cli_formatters.py +0 -0
- {systemlink_cli-1.15.2 → systemlink_cli-1.16.0}/slcli/cli_utils.py +0 -0
- {systemlink_cli-1.15.2 → systemlink_cli-1.16.0}/slcli/comment_click.py +0 -0
- {systemlink_cli-1.15.2 → systemlink_cli-1.16.0}/slcli/completion_click.py +0 -0
- {systemlink_cli-1.15.2 → systemlink_cli-1.16.0}/slcli/config.py +0 -0
- {systemlink_cli-1.15.2 → systemlink_cli-1.16.0}/slcli/config_click.py +0 -0
- {systemlink_cli-1.15.2 → systemlink_cli-1.16.0}/slcli/dataframe_click.py +0 -0
- {systemlink_cli-1.15.2 → systemlink_cli-1.16.0}/slcli/dff_click.py +0 -0
- {systemlink_cli-1.15.2 → systemlink_cli-1.16.0}/slcli/dff_decorators.py +0 -0
- {systemlink_cli-1.15.2 → systemlink_cli-1.16.0}/slcli/example_click.py +0 -0
- {systemlink_cli-1.15.2 → systemlink_cli-1.16.0}/slcli/example_loader.py +0 -0
- {systemlink_cli-1.15.2 → systemlink_cli-1.16.0}/slcli/example_provisioner.py +0 -0
- {systemlink_cli-1.15.2 → systemlink_cli-1.16.0}/slcli/examples/README.md +0 -0
- {systemlink_cli-1.15.2 → systemlink_cli-1.16.0}/slcli/examples/_schema/schema-v1.0.json +0 -0
- {systemlink_cli-1.15.2 → systemlink_cli-1.16.0}/slcli/examples/demo-complete-workflow/README.md +0 -0
- {systemlink_cli-1.15.2 → systemlink_cli-1.16.0}/slcli/examples/demo-complete-workflow/config.yaml +0 -0
- {systemlink_cli-1.15.2 → systemlink_cli-1.16.0}/slcli/examples/demo-test-plans/README.md +0 -0
- {systemlink_cli-1.15.2 → systemlink_cli-1.16.0}/slcli/examples/demo-test-plans/config.yaml +0 -0
- {systemlink_cli-1.15.2 → systemlink_cli-1.16.0}/slcli/examples/exercise-5-1-parametric-insights/README.md +0 -0
- {systemlink_cli-1.15.2 → systemlink_cli-1.16.0}/slcli/examples/exercise-5-1-parametric-insights/config.yaml +0 -0
- {systemlink_cli-1.15.2 → systemlink_cli-1.16.0}/slcli/examples/exercise-7-1-test-plans/README.md +0 -0
- {systemlink_cli-1.15.2 → systemlink_cli-1.16.0}/slcli/examples/exercise-7-1-test-plans/config.yaml +0 -0
- {systemlink_cli-1.15.2 → systemlink_cli-1.16.0}/slcli/examples/spec-compliance-notebooks/README.md +0 -0
- {systemlink_cli-1.15.2 → systemlink_cli-1.16.0}/slcli/examples/spec-compliance-notebooks/config.yaml +0 -0
- {systemlink_cli-1.15.2 → systemlink_cli-1.16.0}/slcli/examples/spec-compliance-notebooks/notebooks/SpecAnalysis_ComplianceCalculation.ipynb +0 -0
- {systemlink_cli-1.15.2 → systemlink_cli-1.16.0}/slcli/examples/spec-compliance-notebooks/notebooks/SpecComplianceCalculation.ipynb +0 -0
- {systemlink_cli-1.15.2 → systemlink_cli-1.16.0}/slcli/examples/spec-compliance-notebooks/notebooks/SpecfileExtractionAndIngestion.ipynb +0 -0
- {systemlink_cli-1.15.2 → systemlink_cli-1.16.0}/slcli/examples/spec-compliance-notebooks/spec_template.xlsx +0 -0
- {systemlink_cli-1.15.2 → systemlink_cli-1.16.0}/slcli/feed_click.py +0 -0
- {systemlink_cli-1.15.2 → systemlink_cli-1.16.0}/slcli/file_click.py +0 -0
- {systemlink_cli-1.15.2 → systemlink_cli-1.16.0}/slcli/function_click.py +0 -0
- {systemlink_cli-1.15.2 → systemlink_cli-1.16.0}/slcli/function_templates.py +0 -0
- {systemlink_cli-1.15.2 → systemlink_cli-1.16.0}/slcli/main.py +0 -0
- {systemlink_cli-1.15.2 → systemlink_cli-1.16.0}/slcli/mcp_click.py +0 -0
- {systemlink_cli-1.15.2 → systemlink_cli-1.16.0}/slcli/mcp_reachability.py +0 -0
- {systemlink_cli-1.15.2 → systemlink_cli-1.16.0}/slcli/mcp_server.py +0 -0
- {systemlink_cli-1.15.2 → systemlink_cli-1.16.0}/slcli/notebook_click.py +0 -0
- {systemlink_cli-1.15.2 → systemlink_cli-1.16.0}/slcli/platform.py +0 -0
- {systemlink_cli-1.15.2 → systemlink_cli-1.16.0}/slcli/policy_click.py +0 -0
- {systemlink_cli-1.15.2 → systemlink_cli-1.16.0}/slcli/policy_utils.py +0 -0
- {systemlink_cli-1.15.2 → systemlink_cli-1.16.0}/slcli/profiles.py +0 -0
- {systemlink_cli-1.15.2 → systemlink_cli-1.16.0}/slcli/response_handlers.py +0 -0
- {systemlink_cli-1.15.2 → systemlink_cli-1.16.0}/slcli/rich_output.py +0 -0
- {systemlink_cli-1.15.2 → systemlink_cli-1.16.0}/slcli/routine_click.py +0 -0
- {systemlink_cli-1.15.2 → systemlink_cli-1.16.0}/slcli/skill_click.py +0 -0
- {systemlink_cli-1.15.2 → systemlink_cli-1.16.0}/slcli/skills/slcli/SKILL.md +0 -0
- {systemlink_cli-1.15.2 → systemlink_cli-1.16.0}/slcli/skills/slcli/references/analysis-recipes.md +0 -0
- {systemlink_cli-1.15.2 → systemlink_cli-1.16.0}/slcli/skills/slcli/references/commands.md +0 -0
- {systemlink_cli-1.15.2 → systemlink_cli-1.16.0}/slcli/skills/slcli/references/datasheet-workflow.md +0 -0
- {systemlink_cli-1.15.2 → systemlink_cli-1.16.0}/slcli/skills/slcli/references/filtering.md +0 -0
- {systemlink_cli-1.15.2 → systemlink_cli-1.16.0}/slcli/skills/slcli/references/import-specs.min.json +0 -0
- {systemlink_cli-1.15.2 → systemlink_cli-1.16.0}/slcli/skills/slcli/references/job-debugging/overview.md +0 -0
- {systemlink_cli-1.15.2 → systemlink_cli-1.16.0}/slcli/skills/slcli/references/nipkg/overview.md +0 -0
- {systemlink_cli-1.15.2 → systemlink_cli-1.16.0}/slcli/skills/slcli/references/notebook/interfaces.md +0 -0
- {systemlink_cli-1.15.2 → systemlink_cli-1.16.0}/slcli/skills/slcli/references/notebook/notebook-patterns.md +0 -0
- {systemlink_cli-1.15.2 → systemlink_cli-1.16.0}/slcli/skills/slcli/references/notebook/overview.md +0 -0
- {systemlink_cli-1.15.2 → systemlink_cli-1.16.0}/slcli/skills/slcli/references/python-test/overview.md +0 -0
- {systemlink_cli-1.15.2 → systemlink_cli-1.16.0}/slcli/skills/slcli/references/routine-examples.md +0 -0
- {systemlink_cli-1.15.2 → systemlink_cli-1.16.0}/slcli/skills/slcli/references/troubleshooting.md +0 -0
- {systemlink_cli-1.15.2 → systemlink_cli-1.16.0}/slcli/skills/slcli/references/webapp/deployment.md +0 -0
- {systemlink_cli-1.15.2 → systemlink_cli-1.16.0}/slcli/skills/slcli/references/webapp/systemlink-services.md +0 -0
- {systemlink_cli-1.15.2 → systemlink_cli-1.16.0}/slcli/skills/slcli/references/webapp/troubleshooting.md +0 -0
- {systemlink_cli-1.15.2 → systemlink_cli-1.16.0}/slcli/skills/slcli/scripts/spec_import_helper.py +0 -0
- {systemlink_cli-1.15.2 → systemlink_cli-1.16.0}/slcli/spec_click.py +0 -0
- {systemlink_cli-1.15.2 → systemlink_cli-1.16.0}/slcli/ssl_trust.py +0 -0
- {systemlink_cli-1.15.2 → systemlink_cli-1.16.0}/slcli/state_click.py +0 -0
- {systemlink_cli-1.15.2 → systemlink_cli-1.16.0}/slcli/system_click.py +0 -0
- {systemlink_cli-1.15.2 → systemlink_cli-1.16.0}/slcli/system_query_utils.py +0 -0
- {systemlink_cli-1.15.2 → systemlink_cli-1.16.0}/slcli/table_utils.py +0 -0
- {systemlink_cli-1.15.2 → systemlink_cli-1.16.0}/slcli/tag_click.py +0 -0
- {systemlink_cli-1.15.2 → systemlink_cli-1.16.0}/slcli/templates_click.py +0 -0
- {systemlink_cli-1.15.2 → systemlink_cli-1.16.0}/slcli/testmonitor_click.py +0 -0
- {systemlink_cli-1.15.2 → systemlink_cli-1.16.0}/slcli/universal_handlers.py +0 -0
- {systemlink_cli-1.15.2 → systemlink_cli-1.16.0}/slcli/user_click.py +0 -0
- {systemlink_cli-1.15.2 → systemlink_cli-1.16.0}/slcli/utils.py +0 -0
- {systemlink_cli-1.15.2 → systemlink_cli-1.16.0}/slcli/web_editor.py +0 -0
- {systemlink_cli-1.15.2 → systemlink_cli-1.16.0}/slcli/webapp_click.py +0 -0
- {systemlink_cli-1.15.2 → systemlink_cli-1.16.0}/slcli/webapp_templates/angular/blank/.gitignore +0 -0
- {systemlink_cli-1.15.2 → systemlink_cli-1.16.0}/slcli/webapp_templates/angular/blank/README.md +0 -0
- {systemlink_cli-1.15.2 → systemlink_cli-1.16.0}/slcli/webapp_templates/angular/blank/angular.json +0 -0
- {systemlink_cli-1.15.2 → systemlink_cli-1.16.0}/slcli/webapp_templates/angular/blank/package.json +0 -0
- {systemlink_cli-1.15.2 → systemlink_cli-1.16.0}/slcli/webapp_templates/angular/blank/src/app/app-routing.module.ts +0 -0
- {systemlink_cli-1.15.2 → systemlink_cli-1.16.0}/slcli/webapp_templates/angular/blank/src/app/app.component.html +0 -0
- {systemlink_cli-1.15.2 → systemlink_cli-1.16.0}/slcli/webapp_templates/angular/blank/src/app/app.component.scss +0 -0
- {systemlink_cli-1.15.2 → systemlink_cli-1.16.0}/slcli/webapp_templates/angular/blank/src/app/app.component.ts +0 -0
- {systemlink_cli-1.15.2 → systemlink_cli-1.16.0}/slcli/webapp_templates/angular/blank/src/app/core/layout/app-shell.component.html +0 -0
- {systemlink_cli-1.15.2 → systemlink_cli-1.16.0}/slcli/webapp_templates/angular/blank/src/app/core/layout/app-shell.component.scss +0 -0
- {systemlink_cli-1.15.2 → systemlink_cli-1.16.0}/slcli/webapp_templates/angular/blank/src/app/core/layout/app-shell.component.ts +0 -0
- {systemlink_cli-1.15.2 → systemlink_cli-1.16.0}/slcli/webapp_templates/angular/blank/src/app/core/state/app-view-state.service.ts +0 -0
- {systemlink_cli-1.15.2 → systemlink_cli-1.16.0}/slcli/webapp_templates/angular/blank/src/app/core/systemlink/systemlink-context.service.ts +0 -0
- {systemlink_cli-1.15.2 → systemlink_cli-1.16.0}/slcli/webapp_templates/angular/blank/src/app/core/systemlink/theme-sync.service.ts +0 -0
- {systemlink_cli-1.15.2 → systemlink_cli-1.16.0}/slcli/webapp_templates/angular/blank/src/app/core/systemlink/webapp-home-data.service.ts +0 -0
- {systemlink_cli-1.15.2 → systemlink_cli-1.16.0}/slcli/webapp_templates/angular/blank/src/app/features/assets/assets-page.component.html +0 -0
- {systemlink_cli-1.15.2 → systemlink_cli-1.16.0}/slcli/webapp_templates/angular/blank/src/app/features/assets/assets-page.component.scss +0 -0
- {systemlink_cli-1.15.2 → systemlink_cli-1.16.0}/slcli/webapp_templates/angular/blank/src/app/features/assets/assets-page.component.ts +0 -0
- {systemlink_cli-1.15.2 → systemlink_cli-1.16.0}/slcli/webapp_templates/angular/blank/src/app/features/datasets/datasets-page.component.html +0 -0
- {systemlink_cli-1.15.2 → systemlink_cli-1.16.0}/slcli/webapp_templates/angular/blank/src/app/features/datasets/datasets-page.component.scss +0 -0
- {systemlink_cli-1.15.2 → systemlink_cli-1.16.0}/slcli/webapp_templates/angular/blank/src/app/features/datasets/datasets-page.component.ts +0 -0
- {systemlink_cli-1.15.2 → systemlink_cli-1.16.0}/slcli/webapp_templates/angular/blank/src/app/features/home/home-page.component.html +0 -0
- {systemlink_cli-1.15.2 → systemlink_cli-1.16.0}/slcli/webapp_templates/angular/blank/src/app/features/home/home-page.component.scss +0 -0
- {systemlink_cli-1.15.2 → systemlink_cli-1.16.0}/slcli/webapp_templates/angular/blank/src/app/features/home/home-page.component.ts +0 -0
- {systemlink_cli-1.15.2 → systemlink_cli-1.16.0}/slcli/webapp_templates/angular/blank/src/app/features/operations/operations-page.component.html +0 -0
- {systemlink_cli-1.15.2 → systemlink_cli-1.16.0}/slcli/webapp_templates/angular/blank/src/app/features/operations/operations-page.component.scss +0 -0
- {systemlink_cli-1.15.2 → systemlink_cli-1.16.0}/slcli/webapp_templates/angular/blank/src/app/features/operations/operations-page.component.ts +0 -0
- {systemlink_cli-1.15.2 → systemlink_cli-1.16.0}/slcli/webapp_templates/angular/blank/src/app/features/settings/settings-page.component.html +0 -0
- {systemlink_cli-1.15.2 → systemlink_cli-1.16.0}/slcli/webapp_templates/angular/blank/src/app/features/settings/settings-page.component.scss +0 -0
- {systemlink_cli-1.15.2 → systemlink_cli-1.16.0}/slcli/webapp_templates/angular/blank/src/app/features/settings/settings-page.component.ts +0 -0
- {systemlink_cli-1.15.2 → systemlink_cli-1.16.0}/slcli/webapp_templates/angular/blank/src/app/shared/components/empty-state.component.html +0 -0
- {systemlink_cli-1.15.2 → systemlink_cli-1.16.0}/slcli/webapp_templates/angular/blank/src/app/shared/components/empty-state.component.scss +0 -0
- {systemlink_cli-1.15.2 → systemlink_cli-1.16.0}/slcli/webapp_templates/angular/blank/src/app/shared/components/empty-state.component.ts +0 -0
- {systemlink_cli-1.15.2 → systemlink_cli-1.16.0}/slcli/webapp_templates/angular/blank/src/app/shared/components/error-banner.component.html +0 -0
- {systemlink_cli-1.15.2 → systemlink_cli-1.16.0}/slcli/webapp_templates/angular/blank/src/app/shared/components/error-banner.component.scss +0 -0
- {systemlink_cli-1.15.2 → systemlink_cli-1.16.0}/slcli/webapp_templates/angular/blank/src/app/shared/components/error-banner.component.ts +0 -0
- {systemlink_cli-1.15.2 → systemlink_cli-1.16.0}/slcli/webapp_templates/angular/blank/src/app/shared/components/loading-state.component.html +0 -0
- {systemlink_cli-1.15.2 → systemlink_cli-1.16.0}/slcli/webapp_templates/angular/blank/src/app/shared/components/loading-state.component.scss +0 -0
- {systemlink_cli-1.15.2 → systemlink_cli-1.16.0}/slcli/webapp_templates/angular/blank/src/app/shared/components/loading-state.component.ts +0 -0
- {systemlink_cli-1.15.2 → systemlink_cli-1.16.0}/slcli/webapp_templates/angular/blank/src/app/shared/states/view-state.model.ts +0 -0
- {systemlink_cli-1.15.2 → systemlink_cli-1.16.0}/slcli/webapp_templates/angular/blank/src/assets/README.md +0 -0
- {systemlink_cli-1.15.2 → systemlink_cli-1.16.0}/slcli/webapp_templates/angular/blank/src/index.html +0 -0
- {systemlink_cli-1.15.2 → systemlink_cli-1.16.0}/slcli/webapp_templates/angular/blank/src/main.ts +0 -0
- {systemlink_cli-1.15.2 → systemlink_cli-1.16.0}/slcli/webapp_templates/angular/blank/src/styles.scss +0 -0
- {systemlink_cli-1.15.2 → systemlink_cli-1.16.0}/slcli/webapp_templates/angular/blank/tsconfig.app.json +0 -0
- {systemlink_cli-1.15.2 → systemlink_cli-1.16.0}/slcli/webapp_templates/angular/blank/tsconfig.json +0 -0
- {systemlink_cli-1.15.2 → systemlink_cli-1.16.0}/slcli/workflow_preview.py +0 -0
- {systemlink_cli-1.15.2 → systemlink_cli-1.16.0}/slcli/workflows_click.py +0 -0
- {systemlink_cli-1.15.2 → systemlink_cli-1.16.0}/slcli/workitem_click.py +0 -0
- {systemlink_cli-1.15.2 → systemlink_cli-1.16.0}/slcli/workspace_click.py +0 -0
- {systemlink_cli-1.15.2 → systemlink_cli-1.16.0}/slcli/workspace_utils.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[tool.poetry]
|
|
2
2
|
name = "systemlink-cli"
|
|
3
|
-
version = "1.
|
|
3
|
+
version = "1.16.0"
|
|
4
4
|
description = "SystemLink Integrator CLI - cross-platform CLI for SystemLink workflows and templates."
|
|
5
5
|
authors = ["Fred Visser <fred.visser@emerson.com>"]
|
|
6
6
|
packages = [{ include = "slcli" }]
|
|
@@ -2,6 +2,24 @@
|
|
|
2
2
|
|
|
3
3
|
Use this file when you need a quick package-level inventory before choosing components. Load `nimble-angular.md` only after you know which Nimble components you actually need.
|
|
4
4
|
|
|
5
|
+
## Use published components first
|
|
6
|
+
|
|
7
|
+
Before styling a `div` into a faux card, tile, accordion, search bar, button row, or summary panel,
|
|
8
|
+
check this file and the Nimble Storybook first.
|
|
9
|
+
|
|
10
|
+
- Prefer NI components for visible surfaces and interactions.
|
|
11
|
+
- Use raw HTML mainly for layout containers, semantic sections, and text.
|
|
12
|
+
- Treat custom card shells as the exception path, not the default response to a dashboard or layout request.
|
|
13
|
+
|
|
14
|
+
## Reference links
|
|
15
|
+
|
|
16
|
+
| Surface | Link | Use |
|
|
17
|
+
| ----------------------- | ---------------------------------------------------------------------------- | ----------------------------------------------------------------- |
|
|
18
|
+
| Nimble Storybook | https://nimble.ni.dev/storybook/index.html | Search the published Nimble components before inventing a surface |
|
|
19
|
+
| Nimble Getting Started | https://nimble.ni.dev/storybook/index.html?path=/docs/getting-started--docs | Bootstrap and package expectations |
|
|
20
|
+
| Nimble Component APIs | https://nimble.ni.dev/storybook/index.html?path=/docs/component-apis--docs | Component inventory and API lookup |
|
|
21
|
+
| Nimble Component Status | https://nimble.ni.dev/storybook/index.html?path=/docs/component-status--docs | Check maturity and availability |
|
|
22
|
+
|
|
5
23
|
## Install recommendation
|
|
6
24
|
|
|
7
25
|
For new SystemLink webapps, prefer installing the NI Angular UI packages together:
|
|
@@ -10,15 +28,15 @@ For new SystemLink webapps, prefer installing the NI Angular UI packages togethe
|
|
|
10
28
|
npm install @ni/nimble-angular @ni/spright-angular @ni/ok-angular
|
|
11
29
|
```
|
|
12
30
|
|
|
13
|
-
Use Nimble as the default foundation, then pull in Spright and OK Angular when the app needs their specialized
|
|
31
|
+
Use Nimble as the default foundation, then pull in Spright and OK Angular when the app needs their specialized surfaces.
|
|
14
32
|
|
|
15
33
|
## Package roles
|
|
16
34
|
|
|
17
|
-
| Package | Primary role | When to reach for it
|
|
18
|
-
| --------------------- | ------------------------------------------------------ |
|
|
19
|
-
| `@ni/nimble-angular` | Core SystemLink-aligned component foundation | Use for the default app shell, tables, buttons, inputs, drawers, banners, dialogs, navigation, and most day-to-day UI work
|
|
20
|
-
| `@ni/spright-angular` | Spright chat, rectangle, and NI-specific icon wrappers | Use for chat experiences, AI/copilot surfaces, and Spright-specific iconography
|
|
21
|
-
| `@ni/ok-angular` | OK-specific
|
|
35
|
+
| Package | Primary role | When to reach for it |
|
|
36
|
+
| --------------------- | ------------------------------------------------------ | --------------------------------------------------------------------------------------------------------------------------------- |
|
|
37
|
+
| `@ni/nimble-angular` | Core SystemLink-aligned component foundation | Use for the default app shell, tables, buttons, inputs, drawers, banners, dialogs, navigation, and most day-to-day UI work |
|
|
38
|
+
| `@ni/spright-angular` | Spright chat, rectangle, and NI-specific icon wrappers | Use for chat experiences, AI/copilot surfaces, and Spright-specific iconography |
|
|
39
|
+
| `@ni/ok-angular` | OK-specific Angular wrappers | Use when the design needs OK accordion items, OK search input, OK chip selectors, summary panels, or OK button primitives |
|
|
22
40
|
|
|
23
41
|
## Recommended AppModule example
|
|
24
42
|
|
|
@@ -99,6 +117,16 @@ Representative components already documented there include:
|
|
|
99
117
|
- `nimble-banner`
|
|
100
118
|
- `nimble-dialog`
|
|
101
119
|
|
|
120
|
+
Representative layout and navigation surfaces to prefer before bespoke HTML include:
|
|
121
|
+
|
|
122
|
+
- `nimble-anchor`
|
|
123
|
+
- `nimble-anchor-tabs`
|
|
124
|
+
- `nimble-anchor-tab`
|
|
125
|
+
- `nimble-drawer`
|
|
126
|
+
- `nimble-banner`
|
|
127
|
+
- `nimble-spinner`
|
|
128
|
+
- `nimble-table`
|
|
129
|
+
|
|
102
130
|
### `@ni/spright-angular`
|
|
103
131
|
|
|
104
132
|
Published Angular wrappers currently include:
|
|
@@ -126,7 +154,7 @@ Published Spright icon directives currently include:
|
|
|
126
154
|
|
|
127
155
|
### `@ni/ok-angular`
|
|
128
156
|
|
|
129
|
-
Published Angular wrappers in `@ni/ok-angular@2.
|
|
157
|
+
Published Angular wrappers in `@ni/ok-angular@2.5.0` currently include:
|
|
130
158
|
|
|
131
159
|
| Tag | Angular symbol | Import path | Use |
|
|
132
160
|
| --------------------------- | ----------------------------- | --------------------------------------- | -------------------------------------------- |
|
|
@@ -135,17 +163,22 @@ Published Angular wrappers in `@ni/ok-angular@2.4.0` currently include:
|
|
|
135
163
|
| `ok-fv-card` | `OkFvCardModule` | `@ni/ok-angular/fv/card` | OK card surface with title and description |
|
|
136
164
|
| `ok-fv-chip-selector` | `OkFvChipSelectorModule` | `@ni/ok-angular/fv/chip-selector` | Multi-value chip selector control |
|
|
137
165
|
| `ok-fv-context-help` | `OkFvContextHelpModule` | `@ni/ok-angular/fv/context-help` | Inline context-help or severity help content |
|
|
166
|
+
| `ok-fv-master-detail-list` | `OkFvMasterDetailListModule` | `@ni/ok-angular/fv/master-detail-list` | Master/detail list container |
|
|
167
|
+
| `ok-fv-master-detail-list-item` | `OkFvMasterDetailListItemModule` | `@ni/ok-angular/fv/master-detail-list-item` | Item rows inside the master/detail list |
|
|
138
168
|
| `ok-fv-search-input` | `OkFvSearchInputModule` | `@ni/ok-angular/fv/search-input` | OK search input control |
|
|
139
169
|
| `ok-fv-split-button` | `OkFvSplitButtonModule` | `@ni/ok-angular/fv/split-button` | Split button with primary and menu actions |
|
|
140
170
|
| `ok-fv-split-button-anchor` | `OkFvSplitButtonAnchorModule` | `@ni/ok-angular/fv/split-button-anchor` | Anchor-style split button |
|
|
141
171
|
| `ok-fv-summary-panel` | `OkFvSummaryPanelModule` | `@ni/ok-angular/fv/summary-panel` | Summary panel container |
|
|
142
172
|
| `ok-fv-summary-panel-tile` | `OkFvSummaryPanelTileModule` | `@ni/ok-angular/fv/summary-panel-tile` | Summary panel metric or status tile |
|
|
143
173
|
|
|
174
|
+
Use `@ni/ok-angular` as the default and preferred entry point for OK components in Angular apps. The wrapper package now includes the master-detail list surface as well, so generated apps and skill guidance should stay on `@ni/ok-angular` rather than importing `@ni/ok-components` directly.
|
|
175
|
+
|
|
144
176
|
## Selection guidance
|
|
145
177
|
|
|
146
178
|
- Start with Nimble for the app shell and the majority of controls.
|
|
147
179
|
- Add Spright when the app needs chat UI or Spright-specific iconography.
|
|
148
180
|
- Add OK Angular when the design specifically benefits from its accordion item, search input, chip selector, split button, summary panel, card, or OK button components.
|
|
181
|
+
- Prefer a published component over styling a `div` to imitate the same surface.
|
|
149
182
|
- Keep imports explicit at the module level; do not use `CUSTOM_ELEMENTS_SCHEMA` as a shortcut for missing wrappers.
|
|
150
183
|
|
|
151
184
|
## Next step references
|
|
@@ -51,10 +51,22 @@ Do not combine multiple starter patterns in the first implementation slice unles
|
|
|
51
51
|
## Core rules
|
|
52
52
|
|
|
53
53
|
- Use Nimble components and Nimble design tokens for primary UI. Avoid generic cards as the default page structure for browse, detail, and settings workflows.
|
|
54
|
+
- Check published Nimble, Spright, and OK components before creating a custom surface from plain `div`s.
|
|
55
|
+
- Use `div`s for flex, grid, spacing, grouping, and semantics, not as a substitute for a published control or design surface.
|
|
54
56
|
- Put toolbars and tab bars in a 40px-tall container with content vertically centered and a `1px solid var(--ni-nimble-divider-background-color)` bottom border.
|
|
55
57
|
- Use `nimble-button` for button affordances. If you need clickable list rows or a section rail, style them as navigation rows rather than faux Nimble buttons.
|
|
56
58
|
- Keep theme-aware aliases on `nimble-theme-provider`, not on `:root`, so custom colors and surfaces follow the active Nimble theme.
|
|
57
59
|
|
|
60
|
+
## Prefer components over faux cards
|
|
61
|
+
|
|
62
|
+
When the request sounds like "dashboard", "summary", "overview", or "settings", do not default to wrapping everything in repeated card containers.
|
|
63
|
+
|
|
64
|
+
- For browse data, start with `nimble-table` plus a toolbar.
|
|
65
|
+
- For selection-driven workflows, start with drawer-detail or master/detail.
|
|
66
|
+
- For grouped configuration, start with accordion items or sectioned form groups.
|
|
67
|
+
- For metrics or status rollups, prefer OK summary panels or a small number of focused summary surfaces.
|
|
68
|
+
- Use cards only when a published card or summary component is the real primitive you need, not as a catch-all page layout pattern.
|
|
69
|
+
|
|
58
70
|
## Spacing tokens
|
|
59
71
|
|
|
60
72
|
Use Nimble design tokens for consistent spacing between controls.
|
|
@@ -27,6 +27,8 @@ When building Angular apps with Nimble, use `@ni/nimble-angular` wrapper modules
|
|
|
27
27
|
- Import the needed Angular module for each Nimble control instead of registering raw custom elements from `@ni/nimble-components`.
|
|
28
28
|
- Do not add `CUSTOM_ELEMENTS_SCHEMA` just to silence unknown Nimble elements in templates. That usually hides a missing module import and weakens Angular's template validation.
|
|
29
29
|
- If a Nimble icon or control is unknown, first look for the matching module in `@ni/nimble-angular` and import it.
|
|
30
|
+
- If a Nimble wrapper does not exist, check `angular-ui-packages.md` and the Nimble Storybook before creating a custom HTML substitute.
|
|
31
|
+
- Prefer a published NI component over styling a `div` to mimic the same interaction or surface.
|
|
30
32
|
|
|
31
33
|
## Fonts
|
|
32
34
|
|
{systemlink_cli-1.15.2 → systemlink_cli-1.16.0}/slcli/skills/slcli/references/webapp/overview.md
RENAMED
|
@@ -17,6 +17,23 @@ reference files when the implementation needs them.
|
|
|
17
17
|
|
|
18
18
|
If the user only wants planning or a first implementation slice, stay in this file.
|
|
19
19
|
|
|
20
|
+
## Component-first rule
|
|
21
|
+
|
|
22
|
+
Before inventing a surface with `div`s, custom borders, or repeated card shells, check whether the
|
|
23
|
+
needed primitive already exists in Nimble, Spright, or OK.
|
|
24
|
+
|
|
25
|
+
- Use package components for interactive or visual surfaces first.
|
|
26
|
+
- Use raw HTML mostly for semantic grouping, flex/grid layout, and text structure.
|
|
27
|
+
- Do not build custom-styled buttons, inputs, tabs, drawers, search bars, banners, summary tiles,
|
|
28
|
+
or faux cards when a published NI component already covers the job.
|
|
29
|
+
- Treat `div` wrappers as layout scaffolding, not as the primary design language.
|
|
30
|
+
|
|
31
|
+
Start with these references before authoring bespoke UI:
|
|
32
|
+
|
|
33
|
+
- Nimble Storybook: https://nimble.ni.dev/storybook/index.html
|
|
34
|
+
- Nimble Component APIs: https://nimble.ni.dev/storybook/index.html?path=/docs/component-apis--docs
|
|
35
|
+
- Nimble Getting Started: https://nimble.ni.dev/storybook/index.html?path=/docs/getting-started--docs
|
|
36
|
+
|
|
20
37
|
## First response checklist
|
|
21
38
|
|
|
22
39
|
Before generating code, clarify only the details that change the implementation:
|
|
@@ -29,7 +46,7 @@ Before generating code, clarify only the details that change the implementation:
|
|
|
29
46
|
|
|
30
47
|
Do not ask about Angular or Nimble versions unless the user is constrained by an existing project. Default to Angular 20 and the latest compatible `@ni/nimble-angular`, but verify the installed versions immediately after scaffold instead of assuming the generator produced the expected combination.
|
|
31
48
|
|
|
32
|
-
For new SystemLink apps, recommend installing the NI
|
|
49
|
+
For new SystemLink apps, recommend installing the NI UI packages together unless the user is intentionally minimizing dependencies. `@ni/nimble-angular` remains the default foundation, `@ni/spright-angular` adds Spright chat and icon components, and `@ni/ok-angular` is the default entry point for OK surfaces such as accordion items, search input, summary panels, and other OK wrappers. Do not reach for `@ni/ok-components` directly in normal app code.
|
|
33
50
|
|
|
34
51
|
## Recommended workflow
|
|
35
52
|
|
|
@@ -60,9 +77,12 @@ For the currently supported path, standardize on:
|
|
|
60
77
|
|
|
61
78
|
- Angular 20.x
|
|
62
79
|
- Node 24+
|
|
63
|
-
- `@ni/nimble-angular` 33.
|
|
64
|
-
- `@ni/nimble-components` 35.
|
|
65
|
-
- `@ni/unit-format` 1.0.
|
|
80
|
+
- `@ni/nimble-angular` 33.4.x
|
|
81
|
+
- `@ni/nimble-components` 35.12.x
|
|
82
|
+
- `@ni/unit-format` 1.0.5+
|
|
83
|
+
- `@ni/spright-angular` 9.5.x
|
|
84
|
+
- `@ni/ok-angular` 2.5.0+
|
|
85
|
+
- `@ni/systemlink-clients-ts` 3.0.2
|
|
66
86
|
- `@angular/build` for the hosted application builder
|
|
67
87
|
- `@angular/localize` installed and added to build polyfills
|
|
68
88
|
|
|
@@ -76,7 +96,7 @@ Also add `@angular-devkit/build-angular` back to `devDependencies` before switch
|
|
|
76
96
|
|
|
77
97
|
This fallback is not optional when the Nimble packages fail under the application builder. Fix the builder mismatch before implementing more UI.
|
|
78
98
|
|
|
79
|
-
Recommend installing `@ni/spright-angular` and `@ni/ok-angular` early when using the manual `init` path, even if the first slice only uses Nimble. That avoids dependency churn later when the UI needs chat surfaces, product-specific icons,
|
|
99
|
+
Recommend installing `@ni/spright-angular` and `@ni/ok-angular` early when using the manual `init` path, even if the first slice only uses Nimble. That avoids dependency churn later when the UI needs chat surfaces, product-specific icons, or OK wrappers.
|
|
80
100
|
|
|
81
101
|
If the user has not scaffolded anything yet and explicitly wants a SystemLink-hosted webapp, recommend `slcli webapp new` first. Only fall back to `slcli webapp init` when they ask for manual bootstrapping or need to control the Angular workspace creation themselves.
|
|
82
102
|
|
|
@@ -103,13 +123,16 @@ Use SystemLink-appropriate layout defaults instead of inventing page structure f
|
|
|
103
123
|
- Use drawers or collapsible side panels for settings and filters.
|
|
104
124
|
- Use accordions for grouped fields and advanced configuration.
|
|
105
125
|
- Use cards sparingly for summaries, not as the default editing or data layout.
|
|
126
|
+
- Prefer NI summary-panel, accordion, table, drawer, tab, banner, and search components before composing a new surface from plain `div`s.
|
|
106
127
|
|
|
107
128
|
Treat Nimble alignment as a requirement, not a style preference:
|
|
108
129
|
|
|
109
130
|
- Use Nimble controls for primary actions, selection, inputs, status, and data display.
|
|
131
|
+
- Prefer OK and Spright components when they provide a better fit than generic layout wrappers.
|
|
110
132
|
- Use raw HTML elements mostly for semantic grouping, layout wrappers, and text structure.
|
|
111
133
|
- Do not build custom-styled buttons, inputs, dropdowns, tabs, or pseudo-cards when Nimble already provides the interaction primitive.
|
|
112
134
|
- Prefer Nimble spacing, borders, focus states, and theme tokens over bespoke visual treatments.
|
|
135
|
+
- If an NI component exists for the surface, use it instead of styling a `div` to imitate it.
|
|
113
136
|
- If a page starts to look like a generic marketing dashboard instead of a SystemLink tool, pull it back toward table/list-detail, drawers, banners, tabs, and structured metadata panels.
|
|
114
137
|
|
|
115
138
|
### 4. Integrate SystemLink APIs the low-risk way
|
|
@@ -176,6 +199,7 @@ Before you consider a SystemLink webapp slice correct, confirm all of the follow
|
|
|
176
199
|
- Root `src/styles.scss` imports `@use '@ni/nimble-angular/styles/fonts' as *;`.
|
|
177
200
|
- Nimble Angular modules are imported explicitly.
|
|
178
201
|
- Primary interaction controls use Nimble wrappers rather than custom HTML surrogates.
|
|
202
|
+
- When Nimble lacks a needed surface, check `angular-ui-packages.md` and the Nimble Storybook before creating a bespoke `div`-based substitute.
|
|
179
203
|
- No hardcoded colors in component SCSS.
|
|
180
204
|
- Theme-aware aliases live on `nimble-theme-provider`.
|
|
181
205
|
- API client uses the correct SystemLink service base URL.
|