@human-synthesis/norns-ui 0.2.5 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@human-synthesis/norns-ui",
3
- "version": "0.2.5",
3
+ "version": "0.3.0",
4
4
  "description": "UI library for the Norns ecosystem — Pug + Civet components on Tailwind v4.",
5
5
  "license": "MIT",
6
6
  "author": "Daniel Teodoroiu (https://humansynthesis.ai)",
@@ -37,7 +37,7 @@
37
37
  "./package.json": "./package.json"
38
38
  },
39
39
  "peerDependencies": {
40
- "@human-synthesis/norns": "^0.4.0",
40
+ "@human-synthesis/norns": "^0.5.0",
41
41
  "@human-synthesis/norns-core": "^0.0.10",
42
42
  "svelte": "^5.0.0",
43
43
  "tailwindcss": "^4.0.0"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "library": "@human-synthesis/norns-ui",
3
- "version": "0.2.5",
3
+ "version": "0.3.0",
4
4
  "counts": {
5
5
  "components": 78,
6
6
  "motion": 5,
@@ -141,7 +141,8 @@
141
141
  "type": "boolean",
142
142
  "required": false
143
143
  }
144
- ]
144
+ ],
145
+ "wire": "Inside a Field it takes its id and error state from context (no `id` needed); its own `name` is what the enclosing Form submits it as. Posts a string — number/int/money/bool action inputs coerce it before validation."
145
146
  },
146
147
  {
147
148
  "name": "Avatar",
@@ -682,7 +683,8 @@
682
683
  "type": "bar",
683
684
  "x": "title",
684
685
  "y": "amount"
685
- }
686
+ },
687
+ "wire": "`x`/`y` name fields of the bound Query's rows; `type` picks the chart. A grouped query (`groupBy`) does not fit — chart a flat query."
686
688
  },
687
689
  {
688
690
  "name": "ChatThread",
@@ -826,7 +828,8 @@
826
828
  "checkbox": null,
827
829
  "name": "done",
828
830
  "checked": true
829
- }
831
+ },
832
+ "wire": "Native checkbox semantics: submits `on` when checked and nothing when unchecked — a bool action input reads that as true/false. Inside a Field it takes its id and error state from context (no `id` needed); its own `name` is what the enclosing Form submits it as. Posts a string — number/int/money/bool action inputs coerce it before validation."
830
833
  },
831
834
  {
832
835
  "name": "Chip",
@@ -943,7 +946,8 @@
943
946
  "type": "string",
944
947
  "required": false
945
948
  }
946
- ]
949
+ ],
950
+ "wire": "Inside a Field it takes its id and error state from context (no `id` needed); its own `name` is what the enclosing Form submits it as. Posts a string — number/int/money/bool action inputs coerce it before validation."
947
951
  },
948
952
  {
949
953
  "name": "ContextMenu",
@@ -1128,7 +1132,8 @@
1128
1132
  "value"
1129
1133
  ],
1130
1134
  "empty": []
1131
- }
1135
+ },
1136
+ "wire": "Rows are the bound Query's result (`data`). `onrowclick(row, i)` is a function prop for custom code only — a generated page wires no row action; put row actions in a `cell` snippet or a custom Component."
1132
1137
  },
1133
1138
  {
1134
1139
  "name": "DatePicker",
@@ -1219,7 +1224,8 @@
1219
1224
  "datePicker": null,
1220
1225
  "name": "due",
1221
1226
  "placeholder": "Pick a date"
1222
- }
1227
+ },
1228
+ "wire": "Submits `YYYY-MM-DD` for dates and `YYYY-MM-DDTHH:MM` (browser-local, no offset) for datetimes; both validate against date/datetime action inputs. Inside a Field it takes its id and error state from context (no `id` needed); its own `name` is what the enclosing Form submits it as. Posts a string — number/int/money/bool action inputs coerce it before validation."
1223
1229
  },
1224
1230
  {
1225
1231
  "name": "DateRangePicker",
@@ -1532,7 +1538,8 @@
1532
1538
  "field": null,
1533
1539
  "label": "Email",
1534
1540
  "name": "email"
1535
- }
1541
+ },
1542
+ "wire": "Wraps one control. Derives the control id from `name` (else a slug of `label`), reads the parent Form's error for `name`, and hands id + error state down through context — the inner Input/Select/Textarea/Checkbox/Switch/DatePicker needs no `id`. The control's own `name` is what the form submits."
1536
1543
  },
1537
1544
  {
1538
1545
  "name": "FieldGroup",
@@ -1608,7 +1615,8 @@
1608
1615
  "example": {
1609
1616
  "form": "crm.Action.createDeal",
1610
1617
  "method": "POST"
1611
- }
1618
+ },
1619
+ "wire": "Binds an Action: renders `<form method=\"POST\" action=\"?/<action>\">`. A failed submit (`fail(400, {errors, values})`) is published to descendants by field `name`, so a nested Field shows its own error with no wiring. Inputs post strings; number/int/money/bool action inputs are coerced before validation."
1612
1620
  },
1613
1621
  {
1614
1622
  "name": "GradientText",
@@ -1953,7 +1961,8 @@
1953
1961
  "name": "email",
1954
1962
  "type": "email",
1955
1963
  "placeholder": "you@example.com"
1956
- }
1964
+ },
1965
+ "wire": "Inside a Field it takes its id and error state from context (no `id` needed); its own `name` is what the enclosing Form submits it as. Posts a string — number/int/money/bool action inputs coerce it before validation."
1957
1966
  },
1958
1967
  {
1959
1968
  "name": "Kanban",
@@ -2043,7 +2052,8 @@
2043
2052
  "card"
2044
2053
  ],
2045
2054
  "empty": []
2046
- }
2055
+ },
2056
+ "wire": "A string-bound `onMove` (an Action address) POSTs `FormData{id}` to that action when a card is dropped — nothing else crosses the wire, not the target column. The bound action's own transition is the move: one action per allowed edge (`set: {entity, status: \"<to>\"}`), or a custom action that reads only `id`. `onMove(card, to, from)` as a function exists only in custom code."
2047
2057
  },
2048
2058
  {
2049
2059
  "name": "Listbox",
@@ -2217,7 +2227,8 @@
2217
2227
  "type": "boolean",
2218
2228
  "required": false
2219
2229
  }
2220
- ]
2230
+ ],
2231
+ "wire": "Inside a Field it takes its id and error state from context (no `id` needed); its own `name` is what the enclosing Form submits it as. Posts a string — number/int/money/bool action inputs coerce it before validation."
2221
2232
  },
2222
2233
  {
2223
2234
  "name": "NumberInput",
@@ -2277,7 +2288,8 @@
2277
2288
  "type": "string",
2278
2289
  "required": false
2279
2290
  }
2280
- ]
2291
+ ],
2292
+ "wire": "Inside a Field it takes its id and error state from context (no `id` needed); its own `name` is what the enclosing Form submits it as. Posts a string — number/int/money/bool action inputs coerce it before validation."
2281
2293
  },
2282
2294
  {
2283
2295
  "name": "OtpField",
@@ -2594,7 +2606,8 @@
2594
2606
  "type": "string",
2595
2607
  "required": false
2596
2608
  }
2597
- ]
2609
+ ],
2610
+ "wire": "Inside a Field it takes its id and error state from context (no `id` needed); its own `name` is what the enclosing Form submits it as. Posts a string — number/int/money/bool action inputs coerce it before validation."
2598
2611
  },
2599
2612
  {
2600
2613
  "name": "RippleButton",
@@ -2731,7 +2744,8 @@
2731
2744
  "example": {
2732
2745
  "select": null,
2733
2746
  "name": "stage"
2734
- }
2747
+ },
2748
+ "wire": "Inside a Field it takes its id and error state from context (no `id` needed); its own `name` is what the enclosing Form submits it as. Posts a string — number/int/money/bool action inputs coerce it before validation."
2735
2749
  },
2736
2750
  {
2737
2751
  "name": "Separator",
@@ -3107,7 +3121,8 @@
3107
3121
  "example": {
3108
3122
  "switch": null,
3109
3123
  "name": "active"
3110
- }
3124
+ },
3125
+ "wire": "Same wire as Checkbox (`on` / absent). Inside a Field it takes its id and error state from context (no `id` needed); its own `name` is what the enclosing Form submits it as. Posts a string — number/int/money/bool action inputs coerce it before validation."
3111
3126
  },
3112
3127
  {
3113
3128
  "name": "Table",
@@ -3202,7 +3217,8 @@
3202
3217
  "value"
3203
3218
  ],
3204
3219
  "empty": []
3205
- }
3220
+ },
3221
+ "wire": "Rows are the bound Query's result (`data`). `onrowclick(row, i)` is a function prop for custom code only — a generated page wires no row action; put row actions in a `cell` snippet or a custom Component."
3206
3222
  },
3207
3223
  {
3208
3224
  "name": "Tabs",
@@ -3300,7 +3316,8 @@
3300
3316
  "type": "string",
3301
3317
  "required": false
3302
3318
  }
3303
- ]
3319
+ ],
3320
+ "wire": "Inside a Field it takes its id and error state from context (no `id` needed); its own `name` is what the enclosing Form submits it as. Posts a string — number/int/money/bool action inputs coerce it before validation."
3304
3321
  },
3305
3322
  {
3306
3323
  "name": "Textarea",
@@ -3375,7 +3392,8 @@
3375
3392
  "textarea": null,
3376
3393
  "name": "notes",
3377
3394
  "rows": 4
3378
- }
3395
+ },
3396
+ "wire": "Inside a Field it takes its id and error state from context (no `id` needed); its own `name` is what the enclosing Form submits it as. Posts a string — number/int/money/bool action inputs coerce it before validation."
3379
3397
  },
3380
3398
  {
3381
3399
  "name": "ThemeToggler",
@@ -3498,7 +3516,8 @@
3498
3516
  "type": "string",
3499
3517
  "required": false
3500
3518
  }
3501
- ]
3519
+ ],
3520
+ "wire": "Inside a Field it takes its id and error state from context (no `id` needed); its own `name` is what the enclosing Form submits it as. Posts a string — number/int/money/bool action inputs coerce it before validation."
3502
3521
  },
3503
3522
  {
3504
3523
  "name": "Timeline",
@@ -3531,7 +3550,8 @@
3531
3550
  },
3532
3551
  "example": {
3533
3552
  "timeline": "crm.Query.history"
3534
- }
3553
+ },
3554
+ "wire": "Rows are the bound Query's result (`data`), rendered as a vertical list — no bars; a date-range Gantt is a custom Component."
3535
3555
  },
3536
3556
  {
3537
3557
  "name": "ToastProvider",
@@ -3774,7 +3794,8 @@
3774
3794
  },
3775
3795
  "example": {
3776
3796
  "tree": "crm.Query.folders"
3777
- }
3797
+ },
3798
+ "wire": "Rows are the bound Query's result (`data`); nesting follows each row's parent reference."
3778
3799
  },
3779
3800
  {
3780
3801
  "name": "Uploader",