@boba-cli/dsl 1.0.0-alpha.2 → 1.0.0-alpha.4

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/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # @boba-cli/dsl
2
2
 
3
- Declarative DSL for building CLI applications with minimal ceremony. Build terminal UIs using a fluent builder API and view primitives inspired by SwiftUI.
3
+ **The main API for building Boba CLI applications.** A declarative DSL for building terminal UIs with minimal ceremony using a fluent builder API and view primitives inspired by SwiftUI.
4
4
 
5
5
  ## Install
6
6
 
@@ -31,19 +31,19 @@ const app = createApp()
31
31
  await app.run()
32
32
  ```
33
33
 
34
- ## Why DSL?
34
+ ## Why the DSL?
35
35
 
36
- Compare the DSL approach to raw TEA (The Elm Architecture):
36
+ The DSL is the recommended way to build Boba CLI applications. For advanced use cases requiring fine-grained control, you can use the [low-level Elm Architecture API](../tea/README.md) directly.
37
37
 
38
- | Aspect | Raw TEA | DSL |
39
- |--------|---------|-----|
40
- | Lines of code | ~147 lines | ~35 lines |
41
- | Boilerplate | Manual class, state management, `instanceof` checks | Declarative builder, automatic state handling |
42
- | Type safety | Manual type guards, verbose generics | Phantom types provide compile-time safety |
43
- | View composition | String concatenation | Composable view primitives |
44
- | Component integration | Manual model wrapping and message routing | Automatic component lifecycle management |
38
+ | Aspect | DSL (Main API) | Low-Level TEA |
39
+ |--------|----------------|---------------|
40
+ | Lines of code | ~35 lines | ~147 lines |
41
+ | Boilerplate | Declarative builder, automatic state handling | Manual class, state management, `instanceof` checks |
42
+ | Type safety | Phantom types provide compile-time safety | Manual type guards, verbose generics |
43
+ | View composition | Composable view primitives | String concatenation |
44
+ | Component integration | Automatic component lifecycle management | Manual model wrapping and message routing |
45
45
 
46
- See [examples/spinner-demo.ts](../../examples/spinner-demo.ts) (raw TEA) vs [examples/spinner-demo-dsl.ts](../../examples/spinner-demo-dsl.ts) (DSL) for a real comparison.
46
+ See [examples/spinner](../../examples/src/spinner) (DSL) vs [examples/spinner-low-level](../../examples/src/spinner-low-level) (low-level) for a real comparison.
47
47
 
48
48
  ## API Reference
49
49
 
@@ -646,7 +646,7 @@ createApp()
646
646
 
647
647
  ## Advanced Usage
648
648
 
649
- ### Accessing the Underlying TEA Model
649
+ ### Accessing the Low-Level TEA Model
650
650
 
651
651
  For advanced use cases, you can access the generated TEA model:
652
652
 
package/dist/index.cjs CHANGED
@@ -1117,6 +1117,14 @@ Object.defineProperty(exports, "Style", {
1117
1117
  enumerable: true,
1118
1118
  get: function () { return chapstick.Style; }
1119
1119
  });
1120
+ Object.defineProperty(exports, "DefaultItem", {
1121
+ enumerable: true,
1122
+ get: function () { return list$1.DefaultItem; }
1123
+ });
1124
+ Object.defineProperty(exports, "ListModel", {
1125
+ enumerable: true,
1126
+ get: function () { return list$1.ListModel; }
1127
+ });
1120
1128
  Object.defineProperty(exports, "dot", {
1121
1129
  enumerable: true,
1122
1130
  get: function () { return spinner$1.dot; }