@almadar/std 16.141.0 → 16.142.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 (84) hide show
  1. package/behaviors/lolo/ui/avl/molecules/ui-module-card.lolo +1 -1
  2. package/behaviors/lolo/ui/core/atoms/std-app-search.lolo +22 -1
  3. package/behaviors/lolo/ui/core/atoms/std-browse.lolo +10 -0
  4. package/behaviors/lolo/ui/core/atoms/std-filter.lolo +3 -0
  5. package/behaviors/lolo/ui/core/atoms/std-wizard.lolo +0 -244
  6. package/behaviors/lolo/ui/core/atoms/ui-aside.lolo +1 -1
  7. package/behaviors/lolo/ui/core/atoms/ui-typography.lolo +2 -2
  8. package/behaviors/lolo/ui/core/molecules/ui-code-block.lolo +3 -3
  9. package/behaviors/lolo/ui/core/molecules/ui-data-grid.lolo +1 -1
  10. package/behaviors/lolo/ui/core/molecules/ui-drawer.lolo +2 -2
  11. package/behaviors/lolo/ui/core/molecules/ui-filter-group.lolo +1 -1
  12. package/behaviors/lolo/ui/core/molecules/ui-flip-card.lolo +1 -1
  13. package/behaviors/lolo/ui/core/molecules/ui-quiz-block.lolo +1 -1
  14. package/behaviors/lolo/ui/core/molecules/ui-repeatable-form-section.lolo +1 -1
  15. package/behaviors/lolo/ui/core/molecules/ui-signature-pad.lolo +1 -1
  16. package/behaviors/lolo/ui/core/molecules/ui-sortable-list.lolo +1 -1
  17. package/behaviors/lolo/ui/core/molecules/ui-table-view.lolo +1 -1
  18. package/behaviors/lolo/ui/core/organisms/ui-segment-renderer.lolo +2 -12
  19. package/behaviors/lolo/ui/marketing/atoms/ui-marketing-stat-card.lolo +1 -1
  20. package/behaviors/lolo/ui/marketing/molecules/ui-case-study-card.lolo +1 -1
  21. package/behaviors/lolo/ui/marketing/molecules/ui-feature-card.lolo +1 -1
  22. package/behaviors/lolo/ui/marketing/molecules/ui-pricing-card.lolo +1 -1
  23. package/behaviors/registry/factory-signatures.json +286 -3335
  24. package/behaviors/registry/ui/avl/molecules/ui-module-card.orb +1 -1
  25. package/behaviors/registry/ui/core/atoms/std-app-search.orb +83 -0
  26. package/behaviors/registry/ui/core/atoms/std-browse.orb +24 -4
  27. package/behaviors/registry/ui/core/atoms/std-filter.orb +3 -0
  28. package/behaviors/registry/ui/core/atoms/std-wizard.orb +0 -912
  29. package/behaviors/registry/ui/core/atoms/ui-aside.orb +1 -1
  30. package/behaviors/registry/ui/core/atoms/ui-typography.orb +4 -2
  31. package/behaviors/registry/ui/core/molecules/ui-code-block.orb +54 -32
  32. package/behaviors/registry/ui/core/molecules/ui-data-grid.orb +1 -1
  33. package/behaviors/registry/ui/core/molecules/ui-drawer.orb +2 -2
  34. package/behaviors/registry/ui/core/molecules/ui-filter-group.orb +1 -1
  35. package/behaviors/registry/ui/core/molecules/ui-flip-card.orb +1 -1
  36. package/behaviors/registry/ui/core/molecules/ui-quiz-block.orb +1 -1
  37. package/behaviors/registry/ui/core/molecules/ui-repeatable-form-section.orb +1 -1
  38. package/behaviors/registry/ui/core/molecules/ui-signature-pad.orb +1 -1
  39. package/behaviors/registry/ui/core/molecules/ui-sortable-list.orb +1 -1
  40. package/behaviors/registry/ui/core/molecules/ui-table-view.orb +1 -1
  41. package/behaviors/registry/ui/core/organisms/ui-segment-renderer.orb +4 -47
  42. package/behaviors/registry/ui/marketing/atoms/ui-marketing-stat-card.orb +1 -1
  43. package/behaviors/registry/ui/marketing/molecules/ui-case-study-card.orb +1 -1
  44. package/behaviors/registry/ui/marketing/molecules/ui-feature-card.orb +1 -1
  45. package/behaviors/registry/ui/marketing/molecules/ui-pricing-card.orb +1 -1
  46. package/dist/behaviors/behaviors-embeddings.json +324 -324
  47. package/dist/behaviors/behaviors-registry.json +35 -26
  48. package/dist/behaviors/exports-reader.js +25 -518
  49. package/dist/behaviors/functions/index.d.ts +80 -119
  50. package/dist/behaviors/functions/index.js +23 -486
  51. package/dist/behaviors/index.d.ts +1 -1
  52. package/dist/behaviors/index.js +26 -519
  53. package/dist/behaviors/knob-embeddings.json +1 -1
  54. package/dist/behaviors/query.js +25 -518
  55. package/dist/behaviors/registry/factory-signatures.json +286 -3335
  56. package/dist/behaviors/registry/ui/avl/molecules/ui-module-card.orb +1 -1
  57. package/dist/behaviors/registry/ui/core/atoms/std-app-search.orb +83 -0
  58. package/dist/behaviors/registry/ui/core/atoms/std-browse.orb +24 -4
  59. package/dist/behaviors/registry/ui/core/atoms/std-filter.orb +3 -0
  60. package/dist/behaviors/registry/ui/core/atoms/std-wizard.orb +0 -912
  61. package/dist/behaviors/registry/ui/core/atoms/ui-aside.orb +1 -1
  62. package/dist/behaviors/registry/ui/core/atoms/ui-typography.orb +4 -2
  63. package/dist/behaviors/registry/ui/core/molecules/ui-code-block.orb +54 -32
  64. package/dist/behaviors/registry/ui/core/molecules/ui-data-grid.orb +1 -1
  65. package/dist/behaviors/registry/ui/core/molecules/ui-drawer.orb +2 -2
  66. package/dist/behaviors/registry/ui/core/molecules/ui-filter-group.orb +1 -1
  67. package/dist/behaviors/registry/ui/core/molecules/ui-flip-card.orb +1 -1
  68. package/dist/behaviors/registry/ui/core/molecules/ui-quiz-block.orb +1 -1
  69. package/dist/behaviors/registry/ui/core/molecules/ui-repeatable-form-section.orb +1 -1
  70. package/dist/behaviors/registry/ui/core/molecules/ui-signature-pad.orb +1 -1
  71. package/dist/behaviors/registry/ui/core/molecules/ui-sortable-list.orb +1 -1
  72. package/dist/behaviors/registry/ui/core/molecules/ui-table-view.orb +1 -1
  73. package/dist/behaviors/registry/ui/core/organisms/ui-segment-renderer.orb +4 -47
  74. package/dist/behaviors/registry/ui/marketing/atoms/ui-marketing-stat-card.orb +1 -1
  75. package/dist/behaviors/registry/ui/marketing/molecules/ui-case-study-card.orb +1 -1
  76. package/dist/behaviors/registry/ui/marketing/molecules/ui-feature-card.orb +1 -1
  77. package/dist/behaviors/registry/ui/marketing/molecules/ui-pricing-card.orb +1 -1
  78. package/dist/behaviors-embeddings.json +324 -324
  79. package/dist/behaviors-registry.json +35 -26
  80. package/dist/index.d.ts +1 -1
  81. package/dist/index.js +26 -519
  82. package/dist/knob-embeddings.json +1 -1
  83. package/dist/registry/factory-signatures.json +286 -3335
  84. package/package.json +4 -3
@@ -1,5 +1,5 @@
1
1
  app ui-module-card "1.0.0"
2
- "ModuleCard — a card summarizing one course module or lesson with progress and entry point."
2
+ "ModuleCard — a card summarizing one course module or lesson with progress and entry point. — UI factory (1:1 with the @almadar/ui module-card pattern)."
3
3
  ;; @capabilities "course module card, lesson card, curriculum unit card, learning-path step card"
4
4
  orbital ModuleCardOrbital {
5
5
  entity ModuleCardItem [runtime] {
@@ -12,6 +12,27 @@ orbital AppSearchOrbital {
12
12
  searchTerm : string @intrinsic @description "The current search query the user submitted." @synonyms "query, term, q" = ""
13
13
  }
14
14
 
15
+ trait AppSearchIdleHint -> AppSearchTarget [interaction, instance] {
16
+ initial: idle
17
+
18
+ state idle {
19
+ INIT -> idle
20
+ (render-ui main {
21
+ type: stack
22
+ align: center
23
+ direction: vertical
24
+ gap: sm
25
+ className: "py-12"
26
+ children: [{ type: icon, name: search, size: lg, color: muted }, {
27
+ type: typography
28
+ variant: caption
29
+ color: muted
30
+ content: "Start typing to search"
31
+ }]
32
+ })
33
+ }
34
+ }
35
+
15
36
  trait AppSearch -> @rebindable AppSearchTarget [interaction, collection] {
16
37
  initial: idle
17
38
 
@@ -161,7 +182,7 @@ orbital AppSearchOrbital {
161
182
  }
162
183
 
163
184
  config {
164
- idleContent : trait
185
+ idleContent : trait = @trait.AppSearchIdleHint
165
186
  @label "Idle content"
166
187
  @description "The normal content view (e.g. the data ledger/browse trait) shown when no search is active."
167
188
  @tier "presentation"
@@ -30,6 +30,10 @@ orbital BrowseItemOrbital {
30
30
  itemActions: @config.itemActions
31
31
  pageSize: @config.displayPageSize
32
32
  }
33
+
34
+ listens {
35
+ BrowseItemBrowse.BrowseItemLoaded -> DataGridLoaded
36
+ }
33
37
  }
34
38
 
35
39
  trait DenseTableView = TableView.traits.TableViewRender -> BrowseItem {
@@ -42,6 +46,10 @@ orbital BrowseItemOrbital {
42
46
  pageSize: @config.displayPageSize
43
47
  selectable: true
44
48
  }
49
+
50
+ listens {
51
+ BrowseItemBrowse.BrowseItemLoaded -> TableViewLoaded
52
+ }
45
53
  }
46
54
 
47
55
  trait BrowseItemBrowse -> @rebindable BrowseItem [interaction, collection] {
@@ -461,6 +469,8 @@ orbital BrowseItemOrbital {
461
469
  entity: ?data
462
470
  fields: []
463
471
  gap: lg
472
+ itemActions: @config.itemActions
473
+ maxInlineActions: @config.maxInlineActions
464
474
  minCardWidth: 260
465
475
  renderItem: (fn item {
466
476
  children: [{
@@ -16,6 +16,7 @@ orbital FilterTargetOrbital {
16
16
  (fetch FilterTarget {})
17
17
  (render-ui main {
18
18
  entity: FilterTarget
19
+ event: @config.event
19
20
  filters: @config.filters
20
21
  look: @config.filterBarLook
21
22
  type: filter-group
@@ -25,6 +26,7 @@ orbital FilterTargetOrbital {
25
26
  (set @entity.value ?value)
26
27
  (render-ui main {
27
28
  entity: FilterTarget
29
+ event: @config.event
28
30
  filters: @config.filters
29
31
  look: @config.filterBarLook
30
32
  type: filter-group
@@ -38,6 +40,7 @@ orbital FilterTargetOrbital {
38
40
  })
39
41
  (render-ui main {
40
42
  entity: FilterTarget
43
+ event: @config.event
41
44
  filters: @config.filters
42
45
  look: @config.filterBarLook
43
46
  type: filter-group
@@ -3,16 +3,6 @@ app std-wizard "3.0.1"
3
3
  type ObjectSpec = { id : string, label : string, value : string }
4
4
  type StepSpec = { label : string!, key : string, icon : string, description : string, fields : [string], allowedRoles : [string] }
5
5
  orbital WizardOrbital {
6
- uses Icon from "std/behaviors/ui-icon"
7
- uses Typography from "std/behaviors/ui-typography"
8
- uses Button from "std/behaviors/ui-button"
9
- uses Card from "std/behaviors/ui-card"
10
- uses LoadingState from "std/behaviors/ui-loading-state"
11
- uses ErrorState from "std/behaviors/ui-error-state"
12
- uses WizardProgress from "std/behaviors/ui-wizard-progress"
13
- uses FormSection from "std/behaviors/ui-form-section"
14
- uses WizardNavigation from "std/behaviors/ui-wizard-navigation"
15
-
16
6
  type WizardStep = { id : string!, title : string!, description : string }
17
7
 
18
8
  type WizardLoaded = Event { data : [ObjectSpec] } "Fired when wizard context finishes loading"
@@ -46,240 +36,6 @@ orbital WizardOrbital {
46
36
  errorMessage : string @description "Error message displayed when a process fails." @synonyms "error, fault, problem" = ""
47
37
  }
48
38
 
49
- trait Icon_ListChecks = Icon.traits.IconRender -> WizardView {
50
- config {
51
- name: list-checks
52
- }
53
- }
54
-
55
- trait Icon_CheckCircle = Icon.traits.IconRender -> WizardView {
56
- config {
57
- name: check-circle
58
- }
59
- }
60
-
61
- trait Icon_XCircle = Icon.traits.IconRender -> WizardView {
62
- config {
63
- name: x-circle
64
- }
65
- }
66
-
67
- trait Icon_CurrentStep = Icon.traits.IconRender -> WizardView {
68
- config {
69
- name: @entity.currentStepIcon
70
- size: lg
71
- }
72
- }
73
-
74
- trait Icon_ChevronLeft = Icon.traits.IconRender -> WizardView {
75
- config {
76
- name: chevron-left
77
- }
78
- }
79
-
80
- trait Icon_X = Icon.traits.IconRender -> WizardView {
81
- config {
82
- name: x
83
- }
84
- }
85
-
86
- trait Icon_ChevronRight = Icon.traits.IconRender -> WizardView {
87
- config {
88
- name: chevron-right
89
- }
90
- }
91
-
92
- trait Icon_RotateCcw = Icon.traits.IconRender -> WizardView {
93
- config {
94
- name: rotate-ccw
95
- }
96
- }
97
-
98
- trait Typography_Title = Typography.traits.TypographyRender -> WizardView {
99
- config {
100
- content: @config.title
101
- variant: h3
102
- }
103
- }
104
-
105
- trait Typography_CurrentStepLabel = Typography.traits.TypographyRender -> WizardView {
106
- config {
107
- content: @entity.currentStepLabel
108
- variant: h2
109
- }
110
- }
111
-
112
- trait Typography_CurrentStepDescription = Typography.traits.TypographyRender -> WizardView {
113
- config {
114
- color: muted
115
- content: @entity.currentStepDescription
116
- variant: body
117
- }
118
- }
119
-
120
- trait Typography_Complete = Typography.traits.TypographyRender -> WizardView {
121
- config {
122
- align: center
123
- content: Complete
124
- variant: h2
125
- }
126
- }
127
-
128
- trait Typography_CompleteMessage = Typography.traits.TypographyRender -> WizardView {
129
- config {
130
- align: center
131
- color: muted
132
- content: @entity.completionMessage
133
- variant: body
134
- }
135
- }
136
-
137
- trait Typography_Cancelled = Typography.traits.TypographyRender -> WizardView {
138
- config {
139
- align: center
140
- content: Cancelled
141
- variant: h2
142
- }
143
- }
144
-
145
- trait Typography_CancelledMessage = Typography.traits.TypographyRender -> WizardView {
146
- config {
147
- align: center
148
- color: muted
149
- content: "The wizard was cancelled. No data was submitted."
150
- variant: body
151
- }
152
- }
153
-
154
- trait Typography_SignUp = Typography.traits.TypographyRender -> WizardView {
155
- config {
156
- content: Sign-up
157
- variant: h3
158
- }
159
- }
160
-
161
- trait Button_Back = Button.traits.ButtonRender -> WizardView {
162
- config {
163
- action: RETREAT
164
- disabled: @entity.isFirstStep
165
- icon: chevron-left
166
- label: Back
167
- variant: ghost
168
- }
169
- }
170
-
171
- trait Button_CancelWizard = Button.traits.ButtonRender -> WizardView {
172
- config {
173
- action: CANCEL
174
- icon: x
175
- label: "Cancel wizard"
176
- variant: ghost
177
- }
178
- }
179
-
180
- trait Button_Advance = Button.traits.ButtonRender -> WizardView {
181
- config {
182
- action: ADVANCE
183
- icon: @entity.primaryActionIcon
184
- label: @entity.primaryActionLabel
185
- variant: primary
186
- }
187
- }
188
-
189
- trait Button_Restart = Button.traits.ButtonRender -> WizardView {
190
- config {
191
- action: RESTART
192
- icon: rotate-ccw
193
- label: "Start a new wizard"
194
- variant: secondary
195
- }
196
- }
197
-
198
- trait Button_RestartGhost = Button.traits.ButtonRender -> WizardView {
199
- config {
200
- action: RESTART
201
- icon: rotate-ccw
202
- label: "Start a new wizard"
203
- variant: ghost
204
- }
205
- }
206
-
207
- trait WizardProgress_Main = WizardProgress.traits.WizardProgressRender -> WizardView {
208
- config {
209
- allowNavigation: false
210
- currentStep: @entity.currentStepIndex
211
- steps: @entity.wizardSteps
212
- }
213
- }
214
-
215
- trait WizardProgress_TotalSteps = WizardProgress.traits.WizardProgressRender -> WizardView {
216
- config {
217
- allowNavigation: false
218
- currentStep: @entity.totalSteps
219
- steps: @entity.wizardSteps
220
- }
221
- }
222
-
223
- trait FormSection_Main = FormSection.traits.FormSectionRender -> WizardView {
224
- config {
225
- cancelEvent: CANCEL
226
- fields: @entity.currentFields
227
- mode: edit
228
- showCancel: false
229
- showSubmit: false
230
- submitEvent: ADVANCE
231
- }
232
- }
233
-
234
- trait WizardNavigation_Main = WizardNavigation.traits.WizardNavigationRender -> WizardView {
235
- config {
236
- currentStep: 0
237
- onNext: NEXT
238
- showBack: false
239
- showComplete: false
240
- showNext: true
241
- totalSteps: 3
242
- }
243
- }
244
-
245
- trait LoadingState_Loading = LoadingState.traits.LoadingStateRender -> WizardView {
246
- config {
247
- title: "Loading wizard…"
248
- }
249
- }
250
-
251
- trait LoadingState_Refreshing = LoadingState.traits.LoadingStateRender -> WizardView {
252
- config {
253
- title: "Refreshing…"
254
- }
255
- }
256
-
257
- trait LoadingState_Restarting = LoadingState.traits.LoadingStateRender -> WizardView {
258
- config {
259
- title: "Restarting…"
260
- }
261
- }
262
-
263
- trait LoadingState_Retrying = LoadingState.traits.LoadingStateRender -> WizardView {
264
- config {
265
- title: "Retrying…"
266
- }
267
- }
268
-
269
- trait ErrorState_LoadFailed = ErrorState.traits.ErrorStateRender -> WizardView {
270
- config {
271
- message: @entity.errorMessage
272
- title: "Failed to load"
273
- }
274
- }
275
-
276
- trait ErrorState_SaveFailed = ErrorState.traits.ErrorStateRender -> WizardView {
277
- config {
278
- message: @entity.errorMessage
279
- title: "Save failed"
280
- }
281
- }
282
-
283
39
  trait WizardForm -> @rebindable WizardView [interaction, instance] {
284
40
  initial: loading
285
41
 
@@ -1,5 +1,5 @@
1
1
  app ui-aside "1.0.0"
2
- "Aside — a secondary side panel that hosts navigation links or supplementary content alongside a main content area."
2
+ "Aside — a secondary side panel that hosts navigation links or supplementary content alongside a main content area. — UI factory (1:1 with the @almadar/ui aside pattern)."
3
3
  ;; @capabilities "settings navigation sidebar, preferences menu panel, account settings nav, secondary panel, side navigation rail"
4
4
  orbital AsideOrbital {
5
5
  entity AsideItem [runtime] {
@@ -44,11 +44,11 @@ orbital TypographyOrbital {
44
44
  @label "Align"
45
45
  @description "Text alignment"
46
46
  @tier "presentation"
47
- weight : "light" | "normal" | "medium" | "semibold" | "bold" = light
47
+ weight : "none" | "light" | "normal" | "medium" | "semibold" | "bold" = none
48
48
  @label "Weight"
49
49
  @description "Font weight override"
50
50
  @tier "presentation"
51
- size : "xs" | "sm" | "md" | "lg" | "xl" | "2xl" | "3xl" = xs
51
+ size : "none" | "xs" | "sm" | "md" | "lg" | "xl" | "2xl" | "3xl" = none
52
52
  @label "Size"
53
53
  @description "Font size override"
54
54
  @tier "presentation"
@@ -10,7 +10,7 @@ orbital CodeBlockOrbital {
10
10
  type CodeBlockFilesItem = {
11
11
  label : string!
12
12
  code : string!
13
- language : "text" | "json" | "javascript" | "js" | "typescript" | "ts" | "jsx" | "tsx" | "css" | "markdown" | "md" | "bash" | "shell" | "sh" | "yaml" | "yml" | "rust" | "python" | "py" | "sql" | "diff" | "toml" | "go" | "graphql" | "html" | "xml" | "orb" | "lolo"
13
+ language : "text" | "json" | "javascript" | "js" | "typescript" | "ts" | "jsx" | "tsx" | "css" | "markdown" | "md" | "bash" | "shell" | "sh" | "yaml" | "yml" | "rust" | "python" | "py" | "sql" | "diff" | "toml" | "go" | "graphql" | "html" | "xml" | "clojure" | "clj" | "edn" | "haskell" | "hs" | "lisp" | "scheme" | "scala" | "elixir" | "ex" | "exs" | "erlang" | "erl" | "elm" | "fsharp" | "fs" | "fsx" | "ocaml" | "ml" | "java" | "c" | "cpp" | "c++" | "cc" | "cxx" | "hpp" | "h" | "csharp" | "cs" | "objectivec" | "objc" | "php" | "ruby" | "rb" | "swift" | "kotlin" | "kt" | "lua" | "r" | "dart" | "julia" | "fortran" | "f90" | "f95" | "perl" | "pl" | "powershell" | "ps1" | "makefile" | "make" | "nginx" | "ini" | "orb" | "lolo"
14
14
  }
15
15
  type CodeBlockActionsItem = {
16
16
  label : string!
@@ -107,9 +107,9 @@ orbital CodeBlockOrbital {
107
107
  @label "Code"
108
108
  @description "The code content to display"
109
109
  @tier "presentation"
110
- language : "text" | "json" | "javascript" | "js" | "typescript" | "ts" | "jsx" | "tsx" | "css" | "markdown" | "md" | "bash" | "shell" | "sh" | "yaml" | "yml" | "rust" | "python" | "py" | "sql" | "diff" | "toml" | "go" | "graphql" | "html" | "xml" | "orb" | "lolo" = text
110
+ language : string = text
111
111
  @label "Language"
112
- @description "Programming language for syntax highlighting"
112
+ @description "Programming language for syntax highlighting (any Prism id; loaded on demand if not pre-registered)"
113
113
  @tier "presentation"
114
114
  showCopyButton : boolean = true
115
115
  @label "Show Copy Button"
@@ -1,5 +1,5 @@
1
1
  app ui-data-grid "1.0.0"
2
- "DataGrid — structured records grid rendering rows over configurable columns, with sort, select, and drag-reorder."
2
+ "DataGrid — structured records grid rendering rows over configurable columns, with sort, select, and drag-reorder. — UI factory (1:1 with the @almadar/ui data-grid pattern)."
3
3
  ;; @capabilities "admin table, records grid, user list, CRUD list, manage-records view, spreadsheet-style data grid, sortable columns"
4
4
  orbital DataGridOrbital {
5
5
  type DataGridLoaded = Event { data : [DataGridItem] } "DataGrid rows finished loading; payload.data holds the collection"
@@ -65,9 +65,9 @@ orbital DrawerOrbital {
65
65
  @label "On Close"
66
66
  @description "Callback when drawer should close (injected by slot wrapper)"
67
67
  @tier "presentation"
68
- title : string
68
+ title : node
69
69
  @label "Title"
70
- @description "Drawer title"
70
+ @description "Drawer title (text or any node, e.g. a brand logo + name)."
71
71
  @tier "presentation"
72
72
  children : node
73
73
  @label "Children"
@@ -1,5 +1,5 @@
1
1
  app ui-filter-group "1.0.0"
2
- "FilterGroup — a panel of filter controls that narrows a collection by field values."
2
+ "FilterGroup — a panel of filter controls that narrows a collection by field values. — UI factory (1:1 with the @almadar/ui filter-group pattern)."
3
3
  ;; @capabilities "search refinement panel, facet filters, admin list filters, records filter sidebar, filter chips panel"
4
4
  orbital FilterGroupOrbital {
5
5
  type FilterGroupFiltersItem = {
@@ -1,5 +1,5 @@
1
1
  app ui-flip-card "1.0.0"
2
- "FlipCard — flip card that reveals a hidden back face on tap or click, toggling between a front and back content slot."
2
+ "FlipCard — flip card that reveals a hidden back face on tap or click, toggling between a front and back content slot. — UI factory (1:1 with the @almadar/ui flip-card pattern)."
3
3
  ;; @capabilities "flashcard, study deck, spaced-repetition review card, memorization drill, quiz reveal card, question/answer card, before/after reveal, term-and-definition card"
4
4
  orbital FlipCardOrbital {
5
5
  entity FlipCardItem [runtime] {
@@ -1,5 +1,5 @@
1
1
  app ui-quiz-block "1.0.0"
2
- "QuizBlock — a single quiz question with answer choices and submit/reveal feedback."
2
+ "QuizBlock — a single quiz question with answer choices and submit/reveal feedback. — UI factory (1:1 with the @almadar/ui quiz-block pattern)."
3
3
  ;; @capabilities "multiple-choice quiz, test question, exam item, assessment question, knowledge check, trivia question"
4
4
  orbital QuizBlockOrbital {
5
5
  entity QuizBlockItem [runtime] {
@@ -1,5 +1,5 @@
1
1
  app ui-repeatable-form-section "1.0.0"
2
- "RepeatableFormSection — a form section that repeats a fixed group of fields, letting the user add or remove entries."
2
+ "RepeatableFormSection — a form section that repeats a fixed group of fields, letting the user add or remove entries. — UI factory (1:1 with the @almadar/ui repeatable-form-section pattern)."
3
3
  ;; @capabilities "dynamic line items, repeatable field group, add/remove entry rows, multi-entry form block"
4
4
  orbital RepeatableFormSectionOrbital {
5
5
  type RepeatableFormSectionItemsItem = {
@@ -1,5 +1,5 @@
1
1
  app ui-signature-pad "1.0.0"
2
- "SignaturePad — a draw-to-sign canvas that captures a handwritten signature or initials."
2
+ "SignaturePad — a draw-to-sign canvas that captures a handwritten signature or initials. — UI factory (1:1 with the @almadar/ui signature-pad pattern)."
3
3
  ;; @capabilities "e-signature capture, sign-here field, consent signature, initial-here field, wet-signature substitute"
4
4
  orbital SignaturePadOrbital {
5
5
  type SignaturePadError = {
@@ -1,5 +1,5 @@
1
1
  app ui-sortable-list "1.0.0"
2
- "SortableList — a drag-and-drop reorderable list of items."
2
+ "SortableList — a drag-and-drop reorderable list of items. — UI factory (1:1 with the @almadar/ui sortable-list pattern)."
3
3
  ;; @capabilities "checklist, task list, to-do list, priority list, ranked list, drag-to-reorder queue"
4
4
  orbital SortableListOrbital {
5
5
  type SortableListLoaded = Event { data : [SortableListItem] } "SortableList rows finished loading; payload.data holds the collection"
@@ -1,5 +1,5 @@
1
1
  app ui-table-view "1.0.0"
2
- "TableView — sortable, selectable data table rendering rows over configurable columns, with inline row actions and grouping."
2
+ "TableView — sortable, selectable data table rendering rows over configurable columns, with inline row actions and grouping. — UI factory (1:1 with the @almadar/ui table-view pattern)."
3
3
  ;; @capabilities "admin console table, records list, CRUD data table, user list, manage-users grid, sortable columns, row selection with bulk actions, grouped list view"
4
4
  orbital TableViewOrbital {
5
5
  type TableViewLoaded = Event { data : [TableViewItem] } "TableView rows finished loading; payload.data holds the collection"
@@ -1,16 +1,6 @@
1
1
  app ui-segment-renderer "1.0.0"
2
2
  "SegmentRenderer — UI factory (1:1 with the @almadar/ui segment-renderer pattern)."
3
3
  orbital SegmentRendererOrbital {
4
- type SegmentRendererSegmentsItem = {
5
- type : json!
6
- content : string!
7
- }
8
- type SegmentRendererUserProgress = {
9
- activationResponse : string
10
- reflectionNotes : [string]
11
- bloomAnswered : Map string boolean
12
- }
13
-
14
4
  entity SegmentRendererItem [runtime] {
15
5
  id : string!
16
6
  }
@@ -30,7 +20,7 @@ orbital SegmentRendererOrbital {
30
20
  }
31
21
 
32
22
  config {
33
- segments : [SegmentRendererSegmentsItem] = [{ type: "Type", content: "Content" }, { type: "Type 2", content: "Content 2" }]
23
+ segments : [json] = []
34
24
  @label "Segments"
35
25
  @description "Parsed lesson segments (see `parseLessonSegments`)"
36
26
  @tier "presentation"
@@ -42,7 +32,7 @@ orbital SegmentRendererOrbital {
42
32
  @label "Container Class Name"
43
33
  @description "CSS classes for the outer wrapping div"
44
34
  @tier "presentation"
45
- userProgress : SegmentRendererUserProgress
35
+ userProgress : json = {}
46
36
  @label "User Progress"
47
37
  @description "User progress for restoring activation/reflection state"
48
38
  @tier "presentation"
@@ -1,5 +1,5 @@
1
1
  app ui-marketing-stat-card "1.0.0"
2
- "MarketingStatCard — a single number-highlight card pairing a large value with a label and trend delta."
2
+ "MarketingStatCard — a single number-highlight card pairing a large value with a label and trend delta. — UI factory (1:1 with the @almadar/ui marketing-stat-card pattern)."
3
3
  ;; @capabilities "KPI card, metric tile, dashboard stat card, number card, big-number widget, stat highlight, key metric callout"
4
4
  orbital MarketingStatCardOrbital {
5
5
  entity MarketingStatCardItem [runtime] {
@@ -1,5 +1,5 @@
1
1
  app ui-case-study-card "1.0.0"
2
- "CaseStudyCard — a card summarizing a customer case study with logo, headline result, and link."
2
+ "CaseStudyCard — a card summarizing a customer case study with logo, headline result, and link. — UI factory (1:1 with the @almadar/ui case-study-card pattern)."
3
3
  ;; @capabilities "customer story, success story, client story card, results showcase, proof-point card"
4
4
  orbital CaseStudyCardOrbital {
5
5
  entity CaseStudyCardItem [runtime] {
@@ -1,5 +1,5 @@
1
1
  app ui-feature-card "1.0.0"
2
- "FeatureCard — an icon-led card pairing a title and description to call out a single product feature."
2
+ "FeatureCard — an icon-led card pairing a title and description to call out a single product feature. — UI factory (1:1 with the @almadar/ui feature-card pattern)."
3
3
  ;; @capabilities "feature highlight, benefit callout, product capability card, feature-grid tile"
4
4
  orbital FeatureCardOrbital {
5
5
  entity FeatureCardItem [runtime] {
@@ -1,5 +1,5 @@
1
1
  app ui-pricing-card "1.0.0"
2
- "PricingCard — a single pricing-tier card with price, billing period, feature list, and call-to-action."
2
+ "PricingCard — a single pricing-tier card with price, billing period, feature list, and call-to-action. — UI factory (1:1 with the @almadar/ui pricing-card pattern)."
3
3
  ;; @capabilities "pricing tier, plan card, subscription tier, plan comparison card, price plan"
4
4
  orbital PricingCardOrbital {
5
5
  type PricingCardAction = {