@lotics/ui 7.19.3 → 9.0.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 (75) hide show
  1. package/AGENTS.md +298 -159
  2. package/examples/tpl_allocate.tsx +2 -2
  3. package/examples/tpl_attendance.tsx +2 -2
  4. package/examples/tpl_calendar.tsx +1 -1
  5. package/examples/tpl_dashboard.tsx +1 -1
  6. package/examples/tpl_dieline.tsx +3 -3
  7. package/examples/tpl_documents.tsx +790 -0
  8. package/examples/tpl_item_list.tsx +1015 -124
  9. package/examples/tpl_lookup.tsx +37 -10
  10. package/examples/tpl_pick.tsx +3 -3
  11. package/examples/tpl_pivot.tsx +1 -1
  12. package/examples/tpl_record.tsx +1354 -0
  13. package/examples/tpl_report.tsx +7 -7
  14. package/examples/tpl_rollup.tsx +6 -6
  15. package/examples/tpl_shifts.tsx +2 -2
  16. package/examples/tpl_statements.tsx +221 -0
  17. package/examples/tpl_stock.tsx +7 -7
  18. package/examples/tpl_task_board.tsx +48 -32
  19. package/examples/tpl_tasks.tsx +47 -47
  20. package/examples/tpl_tower.tsx +2 -2
  21. package/package.json +9 -9
  22. package/src/agent_run.tsx +1 -1
  23. package/src/capture_row.tsx +59 -0
  24. package/src/change_review.tsx +732 -236
  25. package/src/checklist.tsx +104 -0
  26. package/src/chip.tsx +12 -3
  27. package/src/composer.tsx +22 -1
  28. package/src/confidence.tsx +1 -1
  29. package/src/control_surface.ts +0 -14
  30. package/src/detail_row.tsx +137 -10
  31. package/src/finding.tsx +112 -80
  32. package/src/floating_action_bar.tsx +1 -1
  33. package/src/inline_date_picker.tsx +8 -3
  34. package/src/inline_edit.tsx +40 -10
  35. package/src/inline_member_select.tsx +3 -0
  36. package/src/inline_number_input.tsx +5 -2
  37. package/src/inline_select.tsx +8 -3
  38. package/src/inline_tag_select.tsx +140 -0
  39. package/src/inline_text_input.tsx +5 -2
  40. package/src/inline_time_picker.tsx +5 -2
  41. package/src/ledger.tsx +220 -0
  42. package/src/locale.tsx +43 -16
  43. package/src/progress_bar.tsx +32 -1
  44. package/src/record_summary.tsx +101 -0
  45. package/src/section_heading.tsx +16 -8
  46. package/src/sources.tsx +8 -5
  47. package/src/suggestion_chip.tsx +47 -0
  48. package/src/use_section_nav.test.ts +69 -0
  49. package/src/use_section_nav.ts +59 -0
  50. package/examples/tpl_assistant.tsx +0 -174
  51. package/examples/tpl_billing.tsx +0 -344
  52. package/examples/tpl_briefing.tsx +0 -121
  53. package/examples/tpl_compare.tsx +0 -133
  54. package/examples/tpl_crosscheck.tsx +0 -120
  55. package/examples/tpl_detail.tsx +0 -232
  56. package/examples/tpl_directory.tsx +0 -260
  57. package/examples/tpl_draft.tsx +0 -163
  58. package/examples/tpl_extract.tsx +0 -193
  59. package/examples/tpl_intake.tsx +0 -206
  60. package/examples/tpl_match.tsx +0 -134
  61. package/examples/tpl_order.tsx +0 -482
  62. package/examples/tpl_quick.tsx +0 -211
  63. package/examples/tpl_ratedesk.tsx +0 -386
  64. package/examples/tpl_record_plain.tsx +0 -259
  65. package/examples/tpl_settings.tsx +0 -178
  66. package/examples/tpl_timeline.tsx +0 -244
  67. package/examples/tpl_triage.tsx +0 -112
  68. package/examples/tpl_wizard.tsx +0 -223
  69. package/src/discrepancy.tsx +0 -114
  70. package/src/match_sides.tsx +0 -79
  71. package/src/record_fields.tsx +0 -68
  72. package/src/review_card.tsx +0 -172
  73. package/src/scored_option.tsx +0 -138
  74. package/src/spec_list.tsx +0 -81
  75. package/src/triage_row.tsx +0 -99
@@ -75,7 +75,7 @@ export function TplAllocate() {
75
75
  <View>
76
76
  <View style={{ padding: 20, flexDirection: "row", alignItems: "flex-start", gap: 24, flexWrap: "wrap" }}>
77
77
  <View style={{ gap: 2, flexGrow: 1, flexBasis: 220 }}>
78
- <Text size="xs" color="muted" transform="uppercase">Payment received</Text>
78
+ <Text size="xs" color="muted" weight="medium">Payment received</Text>
79
79
  <Text size="xxl" weight="semibold" tabular>{formatMoney(PAYMENT.amount)}</Text>
80
80
  <Text size="sm" color="muted">{`${PAYMENT.from} · ref ${PAYMENT.ref} · ${PAYMENT.date}`}</Text>
81
81
  </View>
@@ -92,7 +92,7 @@ export function TplAllocate() {
92
92
  {/* the targets — the open invoices, each absorbing part of the payment */}
93
93
  <View>
94
94
  <View style={{ paddingHorizontal: 20, paddingVertical: 12 }}>
95
- <Text size="xs" color="muted" transform="uppercase">{`Open invoices · ${INVOICES.length}`}</Text>
95
+ <Text size="xs" color="muted" weight="medium">{`Open invoices · ${INVOICES.length}`}</Text>
96
96
  </View>
97
97
  <Divider />
98
98
  {INVOICES.map((inv, i) => (
@@ -222,7 +222,7 @@ function NhanVienWorkspace({ nv }: { nv: NhanVien }) {
222
222
  <View style={{ gap: 10 }}>
223
223
  <View style={{ flexDirection: "row", alignItems: "center" }}>
224
224
  <View style={{ flex: 1 }}>
225
- <Text size="xs" color="muted" transform="uppercase">This week</Text>
225
+ <Text size="xs" color="muted" weight="medium">This week</Text>
226
226
  </View>
227
227
  <Text size="sm" weight="medium" tabular>{nv.tongTuan}</Text>
228
228
  </View>
@@ -254,7 +254,7 @@ export function TplAttendance() {
254
254
  const onSort = (key: string) => setSort(cycleSort(sort, key));
255
255
 
256
256
  const dem = (tt: TrangThai) => NHAN_VIEN.filter((nv) => nv.trangThai === tt).length;
257
- const eyebrow = (label: string) => <Text size="xs" color="muted" transform="uppercase">{label}</Text>;
257
+ const eyebrow = (label: string) => <Text size="xs" color="muted" weight="medium">{label}</Text>;
258
258
 
259
259
  // The Today roster, ordered by the active sort (Hours sorts numerically).
260
260
  const sorted = sortBy(NHAN_VIEN, sort, (nv, key) =>
@@ -19,7 +19,7 @@ import {
19
19
  } from "@lotics/ui/calendar";
20
20
 
21
21
  // ─────────────────────────────────────────────────────────────────────────────
22
- // Template · Calendar & planning — the delivery/schedule desk. One real
22
+ // Template · Calendar — the delivery/schedule desk. One real
23
23
  // CalendarView (week grid) over the current week's deliveries / reconciliations /
24
24
  // customer visits, then a "Today" agenda card listing today's three slots.
25
25
  //
@@ -36,7 +36,7 @@ import { Funnel } from "@lotics/ui/funnel";
36
36
  import { formatMoney } from "@lotics/ui/format_money";
37
37
 
38
38
  // ─────────────────────────────────────────────────────────────────────────────
39
- // Template · Executive dashboard — the executive operations dashboard. One
39
+ // Template · Dashboard — the executive operations dashboard. One
40
40
  // screen that answers "how is this month going, where is it stuck, who pays
41
41
  // the bills".
42
42
  //
@@ -24,8 +24,8 @@ const MOCK_PHOTO: DisplayFile = {
24
24
  // ─────────────────────────────────────────────────────────────────────────────
25
25
  // Template · AI design canvas (the carton "dieline" app) — the FLAGSHIP shape:
26
26
  // the page IS the design. The dieline fills the centre, a FLOATING composer sits
27
- // at the bottom, and a pinned PARAMS PANEL (a RecordFields field-card, here in
28
- // live-edit mode) floats at the centre-right. Empty → drop a photo in the
27
+ // at the bottom, and a pinned PARAMS PANEL (a hand-composed label/value field-card
28
+ // in live-edit mode) floats at the centre-right. Empty → drop a photo in the
29
29
  // composer → the centre processes while the composer MORPHS into a progress pill
30
30
  // (AgentProgress) → the dieline reveals, the params panel appears, the composer
31
31
  // returns. Two ways to change it: prompt the agent ("5 mm taller"), or edit a
@@ -229,7 +229,7 @@ export function TplDieline() {
229
229
  );
230
230
  }
231
231
 
232
- // The pinned right-rail — a RecordFields field-card in live-edit mode: each
232
+ // The pinned right-rail — a label/value field-card in live-edit mode: each
233
233
  // parameter is click-to-edit and re-flows the design on save; one primary
234
234
  // Download. Floats over the canvas, so it carries the composer's lift.
235
235
  const PARAMS: { key: keyof Dims; label: string }[] = [