@fieldia/widgets 0.3.0 → 0.5.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 (83) hide show
  1. package/package.json +2 -2
  2. package/src/index.d.mts +6 -0
  3. package/src/index.d.ts +6 -0
  4. package/src/index.js +6 -0
  5. package/src/index.js.map +1 -1
  6. package/src/index.mjs +6 -0
  7. package/src/index.mjs.map +1 -1
  8. package/src/lib/calendar.d.mts +11 -0
  9. package/src/lib/calendar.d.ts +11 -0
  10. package/src/lib/calendar.js +242 -0
  11. package/src/lib/calendar.js.map +1 -0
  12. package/src/lib/calendar.mjs +238 -0
  13. package/src/lib/calendar.mjs.map +1 -0
  14. package/src/lib/display.d.mts +2 -2
  15. package/src/lib/display.d.ts +2 -2
  16. package/src/lib/display.js +5 -4
  17. package/src/lib/display.js.map +1 -1
  18. package/src/lib/display.mjs +5 -4
  19. package/src/lib/display.mjs.map +1 -1
  20. package/src/lib/extras.d.mts +3 -1
  21. package/src/lib/extras.d.ts +3 -1
  22. package/src/lib/extras.js +187 -5
  23. package/src/lib/extras.js.map +1 -1
  24. package/src/lib/extras.mjs +186 -5
  25. package/src/lib/extras.mjs.map +1 -1
  26. package/src/lib/label.d.mts +2 -0
  27. package/src/lib/label.d.ts +2 -0
  28. package/src/lib/label.js +47 -0
  29. package/src/lib/label.js.map +1 -0
  30. package/src/lib/label.mjs +43 -0
  31. package/src/lib/label.mjs.map +1 -0
  32. package/src/lib/labels.d.mts +33 -0
  33. package/src/lib/labels.d.ts +33 -0
  34. package/src/lib/labels.js +108 -0
  35. package/src/lib/labels.js.map +1 -1
  36. package/src/lib/labels.mjs +108 -0
  37. package/src/lib/labels.mjs.map +1 -1
  38. package/src/lib/lines.js +5 -3
  39. package/src/lib/lines.js.map +1 -1
  40. package/src/lib/lines.mjs +5 -3
  41. package/src/lib/lines.mjs.map +1 -1
  42. package/src/lib/numbers.d.mts +8 -0
  43. package/src/lib/numbers.d.ts +8 -0
  44. package/src/lib/numbers.js +47 -0
  45. package/src/lib/numbers.js.map +1 -0
  46. package/src/lib/numbers.mjs +43 -0
  47. package/src/lib/numbers.mjs.map +1 -0
  48. package/src/lib/progress.d.mts +2 -0
  49. package/src/lib/progress.d.ts +2 -0
  50. package/src/lib/progress.js +73 -0
  51. package/src/lib/progress.js.map +1 -0
  52. package/src/lib/progress.mjs +69 -0
  53. package/src/lib/progress.mjs.map +1 -0
  54. package/src/lib/properties.d.mts +2 -0
  55. package/src/lib/properties.d.ts +2 -0
  56. package/src/lib/properties.js +86 -0
  57. package/src/lib/properties.js.map +1 -0
  58. package/src/lib/properties.mjs +82 -0
  59. package/src/lib/properties.mjs.map +1 -0
  60. package/src/lib/relations.d.mts +7 -0
  61. package/src/lib/relations.d.ts +7 -0
  62. package/src/lib/relations.js +199 -26
  63. package/src/lib/relations.js.map +1 -1
  64. package/src/lib/relations.mjs +197 -25
  65. package/src/lib/relations.mjs.map +1 -1
  66. package/src/lib/statusbar.d.mts +2 -0
  67. package/src/lib/statusbar.d.ts +2 -0
  68. package/src/lib/statusbar.js +61 -0
  69. package/src/lib/statusbar.js.map +1 -0
  70. package/src/lib/statusbar.mjs +57 -0
  71. package/src/lib/statusbar.mjs.map +1 -0
  72. package/src/lib/styles.d.mts +1 -1
  73. package/src/lib/styles.d.ts +1 -1
  74. package/src/lib/styles.js +114 -2
  75. package/src/lib/styles.js.map +1 -1
  76. package/src/lib/styles.mjs +114 -2
  77. package/src/lib/styles.mjs.map +1 -1
  78. package/src/lib/widgets.d.mts +35 -1
  79. package/src/lib/widgets.d.ts +35 -1
  80. package/src/lib/widgets.js +57 -12
  81. package/src/lib/widgets.js.map +1 -1
  82. package/src/lib/widgets.mjs +58 -13
  83. package/src/lib/widgets.mjs.map +1 -1
@@ -12,7 +12,8 @@
12
12
  * form mirrors without a second stylesheet.
13
13
  */
14
14
  export const FIELDIA_CSS = /* css */ `
15
- .fd-form {
15
+ /* .fd-theme carries the same tokens for things outside a form, such as a dialog over the page. */
16
+ .fd-form, .fd-theme {
16
17
  --fd-font: system-ui, -apple-system, "Segoe UI", Roboto, "Noto Sans", "Noto Sans Arabic", sans-serif;
17
18
  --fd-text: #212529;
18
19
  --fd-muted: #6b7280;
@@ -48,7 +49,7 @@ export const FIELDIA_CSS = /* css */ `
48
49
  color: var(--fd-text);
49
50
  -webkit-text-size-adjust: 100%;
50
51
  }
51
- .fd-form[data-fd-skin="outlined"] {
52
+ .fd-form[data-fd-skin="outlined"], .fd-theme[data-fd-skin="outlined"] {
52
53
  --fd-text: rgba(0, 0, 0, 0.88);
53
54
  --fd-muted: rgba(0, 0, 0, 0.55);
54
55
  --fd-page: #f5f5f5;
@@ -149,6 +150,12 @@ export const FIELDIA_CSS = /* css */ `
149
150
  .fd-number { display: flex; align-items: baseline; gap: 6px; }
150
151
  .fd-number-input { font-variant-numeric: tabular-nums; }
151
152
  .fd-currency { color: var(--fd-muted); font-size: 12.5px; font-weight: 600; }
153
+ /* With the currency after it, the amount ends right beside it. */
154
+ .fd-currency-after > .fd-number-input { text-align: end; }
155
+ /* A picked currency is a small box of its own beside the amount. */
156
+ .fd-currency-picked { align-items: center; }
157
+ .fd-currency-picked > :not(.fd-number-input) { flex: 0 0 104px; min-width: 0; }
158
+ .fd-currency-picked > .fd-number-input { flex: 1 1 auto; min-width: 0; }
152
159
  .fd-pending { color: var(--fd-muted); font-style: italic; }
153
160
  .fd-pending:empty::before { content: "—"; }
154
161
 
@@ -186,6 +193,13 @@ export const FIELDIA_CSS = /* css */ `
186
193
  font-size: 16px; line-height: 1; padding: 2px 6px; border-radius: 4px;
187
194
  }
188
195
  .fd-combo-clear:hover { color: var(--fd-text); background: var(--fd-page); }
196
+ /* A link that can be opened has its open button beside the clear button. */
197
+ .fd-combo:has(> .fd-combo-open:not([hidden])) .fd-combo-input { padding-inline-end: 52px; }
198
+ .fd-combo-open {
199
+ position: absolute; inset-inline-end: 28px; border: none; background: none; cursor: pointer; color: var(--fd-accent);
200
+ font-size: 14px; line-height: 1; padding: 2px 6px; border-radius: 4px;
201
+ }
202
+ .fd-combo-open:hover { background: var(--fd-page); }
189
203
  .fd-listbox {
190
204
  position: absolute; inset-inline: 0; inset-block-start: calc(100% + 2px); z-index: 20; margin: 0; padding: 4px 0;
191
205
  list-style: none; background: var(--fd-surface); border: 1px solid var(--fd-border); border-radius: max(var(--fd-control-radius), 4px);
@@ -193,6 +207,7 @@ export const FIELDIA_CSS = /* css */ `
193
207
  }
194
208
  .fd-option { padding: 6px 12px; cursor: pointer; }
195
209
  .fd-option:hover, .fd-option.fd-active { background: var(--fd-accent-soft); }
210
+ .fd-option-create { color: var(--fd-accent); border-block-start: 1px solid var(--fd-border); }
196
211
  .fd-empty { padding: 6px 12px; color: var(--fd-muted); font-style: italic; }
197
212
  .fd-tags { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; min-width: 0; }
198
213
  .fd-chips { display: contents; list-style: none; margin: 0; padding: 0; }
@@ -243,6 +258,24 @@ export const FIELDIA_CSS = /* css */ `
243
258
  .fd-avatar .fd-image-pick { width: 88px; height: 88px; }
244
259
  .fd-image-preview { max-width: 160px; max-height: 160px; border-radius: var(--fd-control-radius); border: 1px solid var(--fd-border); object-fit: cover; background: var(--fd-page); }
245
260
  .fd-richtext { min-height: 96px; line-height: 1.5; overflow-wrap: anywhere; }
261
+ .fd-richtext-box { display: grid; gap: 0; min-width: 0; }
262
+ .fd-richtext-box > .fd-richtext { border-start-start-radius: 0; border-start-end-radius: 0; }
263
+ .fd-richtext-bar {
264
+ display: flex; flex-wrap: wrap; align-items: center; gap: 2px; padding: 4px; min-width: 0;
265
+ border: 1px solid var(--fd-border); border-block-end: none; border-start-start-radius: var(--fd-control-radius); border-start-end-radius: var(--fd-control-radius);
266
+ background: var(--fd-page);
267
+ }
268
+ .fd-richtext-style { font: inherit; font-size: 12.5px; padding: 3px 6px; margin-inline-end: 4px; border: 1px solid var(--fd-border); border-radius: 4px; background: var(--fd-surface); color: var(--fd-text); }
269
+ .fd-richtext-tool {
270
+ display: grid; place-items: center; width: 28px; height: 28px; padding: 0; border: none; border-radius: 4px;
271
+ background: none; cursor: pointer; color: var(--fd-text); font: inherit; font-size: 14px;
272
+ }
273
+ .fd-richtext-tool:hover { background: var(--fd-surface); }
274
+ .fd-richtext-tool[aria-pressed="true"] { background: var(--fd-accent-soft); color: var(--fd-accent); }
275
+ .fd-richtext-tool svg { width: 16px; height: 16px; fill: none; stroke: currentColor; stroke-width: 1.3; stroke-linecap: round; }
276
+ .fd-richtext-tool svg circle { fill: currentColor; stroke: none; }
277
+ .fd-link-row { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; padding: 6px; border: 1px solid var(--fd-border); border-block-end: none; background: var(--fd-surface); }
278
+ .fd-link-row > .fd-input { flex: 1 1 200px; min-width: 0; }
246
279
  .fd-richtext[contenteditable="false"] { background: transparent; border-color: transparent; padding-inline: 0; min-height: 0; }
247
280
  .fd-richtext p { margin: 0 0 6px; }
248
281
  .fd-code { font-family: ui-monospace, "SF Mono", Menlo, Consolas, monospace; font-size: 12.5px; min-height: 96px; }
@@ -376,6 +409,53 @@ export const FIELDIA_CSS = /* css */ `
376
409
  .fd-wizard { display: grid; gap: 20px; }
377
410
  .fd-progress { display: grid; gap: 8px; }
378
411
  .fd-progress-text { color: var(--fd-muted); font-size: 13px; }
412
+ .fd-value-text { display: block; padding-block: 6px; font-variant-numeric: tabular-nums; }
413
+ .fd-date-pick { position: relative; display: flex; align-items: center; gap: 6px; min-width: 0; }
414
+ .fd-date-pick > .fd-input { flex: 1 1 auto; min-width: 0; }
415
+ .fd-calendar-button {
416
+ flex: 0 0 auto; display: grid; place-items: center; width: 32px; height: 32px; padding: 0; cursor: pointer;
417
+ border: 1px solid var(--fd-border); border-radius: var(--fd-control-radius); background: var(--fd-surface); color: var(--fd-muted);
418
+ }
419
+ .fd-calendar-button:hover, .fd-calendar-button[aria-expanded="true"] { color: var(--fd-text); background: var(--fd-page); }
420
+ .fd-calendar-button svg { width: 16px; height: 16px; fill: none; stroke: currentColor; stroke-width: 1.4; stroke-linecap: round; }
421
+ .fd-calendar {
422
+ position: absolute; inset-block-start: calc(100% + 4px); inset-inline-end: 0; z-index: 30; padding: 8px;
423
+ background: var(--fd-surface); border: 1px solid var(--fd-border); border-radius: max(var(--fd-control-radius), 6px);
424
+ box-shadow: 0 8px 24px rgba(15, 20, 25, 0.14);
425
+ }
426
+ .fd-calendar-head { display: flex; align-items: center; justify-content: space-between; gap: 8px; padding: 2px 4px 6px; }
427
+ .fd-calendar-head button { border: none; background: none; cursor: pointer; font-size: 18px; line-height: 1; padding: 4px 8px; border-radius: 4px; color: var(--fd-text); }
428
+ .fd-calendar-head button:hover { background: var(--fd-page); }
429
+ .fd-calendar-title { font-weight: 600; }
430
+ .fd-calendar-grid { border-collapse: collapse; font-variant-numeric: tabular-nums; }
431
+ .fd-calendar-grid th { font-size: 11.5px; font-weight: 600; color: var(--fd-muted); padding: 4px 0; width: 34px; text-align: center; }
432
+ .fd-calendar-grid .fd-week { color: var(--fd-accent); font-weight: 600; border-inline-end: 1px solid var(--fd-border); }
433
+ .fd-calendar-grid td { padding: 1px; }
434
+ .fd-calendar-grid td button {
435
+ width: 32px; height: 30px; border: none; border-radius: 4px; background: none; cursor: pointer; color: var(--fd-text); font: inherit; font-size: 13px;
436
+ }
437
+ .fd-calendar-grid td button:hover { background: var(--fd-accent-soft); }
438
+ .fd-calendar-grid td button.fd-outside { color: var(--fd-muted); opacity: 0.6; }
439
+ .fd-calendar-grid td button[aria-current="date"] { box-shadow: inset 0 0 0 1px var(--fd-accent); }
440
+ .fd-calendar-grid td button[aria-selected="true"] { background: var(--fd-accent); color: var(--fd-accent-text); font-weight: 600; }
441
+ .fd-calendar-grid td button:focus-visible { outline: 2px solid var(--fd-focus); outline-offset: 1px; }
442
+ .fd-properties { display: grid; gap: 8px; min-width: 0; }
443
+ .fd-property { display: grid; grid-template-columns: minmax(120px, 30%) minmax(0, 1fr); align-items: center; gap: 12px; min-width: 0; }
444
+ .fd-property > label { color: var(--fd-muted); font-size: 13px; }
445
+ .fd-property[data-type="boolean"] > :last-child { justify-self: start; }
446
+ @container (max-width: 520px) { .fd-property { grid-template-columns: minmax(0, 1fr); gap: 4px; } }
447
+ .fd-progressbar {
448
+ position: relative; height: 22px; min-width: 120px; border-radius: 999px; overflow: hidden;
449
+ background: var(--fd-page); border: 1px solid var(--fd-border); font-variant-numeric: tabular-nums;
450
+ }
451
+ .fd-progressbar-fill { height: 100%; background: var(--fd-success); transition: width 0.2s ease; }
452
+ .fd-progressbar[data-tone="warning"] .fd-progressbar-fill { background: #d97706; }
453
+ .fd-progressbar[data-tone="danger"] .fd-progressbar-fill { background: var(--fd-error); }
454
+ .fd-progressbar[data-tone="info"] .fd-progressbar-fill { background: var(--fd-info); }
455
+ .fd-progressbar-text { position: absolute; inset: 0; display: grid; place-items: center; font-size: 12px; font-weight: 600; color: var(--fd-text); }
456
+ .fd-progressbar-edit { display: flex; align-items: center; gap: 12px; min-width: 0; }
457
+ .fd-progressbar-edit > .fd-progressbar { flex: 1 1 auto; }
458
+ .fd-progressbar-edit > .fd-input { flex: 0 0 96px; }
379
459
  .fd-progress-bar { height: 4px; background: var(--fd-border); border-radius: 999px; overflow: hidden; }
380
460
  .fd-progress-bar > span { display: block; height: 100%; background: var(--fd-accent); transition: width 0.25s ease; }
381
461
  .fd-step { display: grid; gap: 18px; }
@@ -400,6 +480,38 @@ export const FIELDIA_CSS = /* css */ `
400
480
  padding: 20px 22px; display: grid; gap: 16px; box-shadow: 0 10px 30px rgba(0,0,0,0.2); font-family: var(--fd-font);
401
481
  }
402
482
  .fd-dialog p { margin: 0; }
483
+ /* A page in a dialog: a head with its title and ×, a body that scrolls, a foot with Discard and Save & Close. */
484
+ .fd-form-dialog {
485
+ display: flex; flex-direction: column; width: 100%; max-height: min(90vh, 100%); min-height: 0;
486
+ background: var(--fd-page); color: var(--fd-text); border-radius: max(var(--fd-radius), 8px);
487
+ box-shadow: 0 24px 64px rgba(15, 20, 25, 0.3); overflow: hidden;
488
+ }
489
+ .fd-form-dialog:focus { outline: none; }
490
+ .fd-form-dialog.fd-size-small { max-width: 440px; }
491
+ .fd-form-dialog.fd-size-medium { max-width: 760px; }
492
+ .fd-form-dialog.fd-size-large { max-width: 1080px; }
493
+ .fd-form-dialog-backdrop:has(> .fd-size-full) { padding: 0; }
494
+ .fd-form-dialog.fd-size-full { max-width: none; max-height: none; height: 100%; border-radius: 0; }
495
+ .fd-form-dialog-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 12px 16px; border-block-end: 1px solid var(--fd-border); background: var(--fd-surface); }
496
+ .fd-form-dialog-title { margin: 0; font-size: 16px; font-weight: 600; }
497
+ .fd-dialog-close { border: none; background: none; cursor: pointer; font-size: 22px; line-height: 1; padding: 2px 8px; border-radius: 4px; color: var(--fd-muted); }
498
+ .fd-dialog-close:hover { background: var(--fd-page); color: var(--fd-text); }
499
+ .fd-form-dialog-body { flex: 1 1 auto; min-height: 0; overflow: auto; container-type: inline-size; }
500
+ .fd-form-dialog-body .fd-sheet-layout { margin-block-start: 12px; }
501
+ /* The dialog's head names the page; a record in a dialog leaves its side panel (the chatter) to the full page. */
502
+ .fd-form-dialog-body .fd-page-title { display: none; }
503
+ .fd-form-dialog-body .fd-page-head:not(:has(.fd-page-description)) { display: none; }
504
+ .fd-form-dialog-body .fd-sheet-layout.fd-has-side { grid-template-columns: minmax(0, 1fr); }
505
+ .fd-form-dialog-body .fd-side { display: none; }
506
+ /* Search more…: a search box over a list of rows. */
507
+ .fd-search-body { display: grid; gap: 12px; align-content: start; }
508
+ .fd-search-list { list-style: none; margin: 0; padding: 0; border: 1px solid var(--fd-border); border-radius: var(--fd-control-radius); overflow: auto; max-height: min(60vh, 520px); }
509
+ .fd-search-list .fd-option { padding: 8px 12px; }
510
+ .fd-search-list .fd-option + .fd-option { border-block-start: 1px solid var(--fd-border); }
511
+ .fd-search-list .fd-empty { padding: 10px 12px; color: var(--fd-muted); }
512
+ /* A page with no sheet of its own sits on the dialog's surface, clear of its edges. */
513
+ .fd-form-dialog-body:not(:has(.fd-sheet-layout)) { background: var(--fd-surface); padding: 16px 20px 20px; }
514
+ .fd-form-dialog-foot { padding: 12px 16px; border-block-start: 1px solid var(--fd-border); background: var(--fd-surface); margin: 0; }
403
515
  @media (prefers-reduced-motion: reduce) { .fd-form *, .fd-form *::before, .fd-form *::after { transition: none !important; } }
404
516
  `;
405
517
  const STYLE_ID = 'fieldia-styles';
@@ -1 +1 @@
1
- {"version":3,"file":"styles.mjs","sourceRoot":"","sources":["../../../../../libs/widgets/src/lib/styles.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,SAAS,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAsYpC,CAAC;AAEF,MAAM,QAAQ,GAAG,gBAAgB,CAAC;AAElC,oDAAoD;AACpD,MAAM,UAAU,aAAa,CAAC,QAAkB;IAC9C,IAAI,QAAQ,CAAC,cAAc,CAAC,QAAQ,CAAC;QAAE,OAAO;IAC9C,MAAM,KAAK,GAAG,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;IAC9C,KAAK,CAAC,EAAE,GAAG,QAAQ,CAAC;IACpB,KAAK,CAAC,WAAW,GAAG,WAAW,CAAC;IAChC,CAAC,QAAQ,CAAC,IAAI,IAAI,QAAQ,CAAC,eAAe,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAC5D,CAAC"}
1
+ {"version":3,"file":"styles.mjs","sourceRoot":"","sources":["../../../../../libs/widgets/src/lib/styles.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,SAAS,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAsfpC,CAAC;AAEF,MAAM,QAAQ,GAAG,gBAAgB,CAAC;AAElC,oDAAoD;AACpD,MAAM,UAAU,aAAa,CAAC,QAAkB;IAC9C,IAAI,QAAQ,CAAC,cAAc,CAAC,QAAQ,CAAC;QAAE,OAAO;IAC9C,MAAM,KAAK,GAAG,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;IAC9C,KAAK,CAAC,EAAE,GAAG,QAAQ,CAAC;IACpB,KAAK,CAAC,WAAW,GAAG,WAAW,CAAC;IAChC,CAAC,QAAQ,CAAC,IAAI,IAAI,QAAQ,CAAC,eAAe,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAC5D,CAAC"}
@@ -1,4 +1,4 @@
1
- import type { Field, FieldNode, Form, Value, Values } from '@fieldia/core';
1
+ import type { Field, FieldNode, Form, Locale, RecordId, RelatedRecord, Value, Values } from '@fieldia/core';
2
2
  import type { PreferenceStore } from './preferences.mjs';
3
3
  import type { WidgetLabels } from './labels.mjs';
4
4
  /**
@@ -19,6 +19,40 @@ export interface WidgetContext {
19
19
  labels?: WidgetLabels;
20
20
  /** Where to keep a person's choices about how the widget looks, such as a table's columns. */
21
21
  preferences?: PreferenceStore;
22
+ /** The page's language: numbers and dates are written as its readers write them. English when left out. */
23
+ locale?: Locale;
24
+ /** Dialogs the page can open: a related record, a searchable list, values to edit. Left out, widgets offer none. */
25
+ dialogs?: WidgetDialogs;
26
+ }
27
+ /** What a widget may ask of the page around it in a dialog. The viewer provides these. */
28
+ export interface WidgetDialogs {
29
+ /** Whether a record of this model can be shown in a dialog: the app gave a page for it. */
30
+ canOpen(model: string): boolean;
31
+ /**
32
+ * A record in a dialog: an existing one (`recordId`) or a new one, whose name
33
+ * starts as `name`. Resolves with the record once saved, or null.
34
+ */
35
+ openRecord(model: string, request: {
36
+ recordId?: RecordId;
37
+ name?: string;
38
+ title: string;
39
+ }): Promise<RelatedRecord | null>;
40
+ /** Pick a record from a searchable list. */
41
+ searchMore(request: {
42
+ title: string;
43
+ search(query: string, limit: number): Promise<RelatedRecord[]>;
44
+ }): Promise<RelatedRecord | null>;
45
+ /**
46
+ * Values edited in a form made of these fields. Resolves with the new values,
47
+ * or null. `recompute` recalculates them as they change, as a line's onchange.
48
+ */
49
+ editValues(request: {
50
+ title: string;
51
+ fields: Record<string, Field>;
52
+ values: Values;
53
+ readonly?: boolean;
54
+ recompute?: (values: Values) => Promise<Values>;
55
+ }): Promise<Values | null>;
22
56
  }
23
57
  export interface WidgetState {
24
58
  value: Value | undefined;
@@ -1,4 +1,4 @@
1
- import type { Field, FieldNode, Form, Value, Values } from '@fieldia/core';
1
+ import type { Field, FieldNode, Form, Locale, RecordId, RelatedRecord, Value, Values } from '@fieldia/core';
2
2
  import type { PreferenceStore } from './preferences';
3
3
  import type { WidgetLabels } from './labels';
4
4
  /**
@@ -19,6 +19,40 @@ export interface WidgetContext {
19
19
  labels?: WidgetLabels;
20
20
  /** Where to keep a person's choices about how the widget looks, such as a table's columns. */
21
21
  preferences?: PreferenceStore;
22
+ /** The page's language: numbers and dates are written as its readers write them. English when left out. */
23
+ locale?: Locale;
24
+ /** Dialogs the page can open: a related record, a searchable list, values to edit. Left out, widgets offer none. */
25
+ dialogs?: WidgetDialogs;
26
+ }
27
+ /** What a widget may ask of the page around it in a dialog. The viewer provides these. */
28
+ export interface WidgetDialogs {
29
+ /** Whether a record of this model can be shown in a dialog: the app gave a page for it. */
30
+ canOpen(model: string): boolean;
31
+ /**
32
+ * A record in a dialog: an existing one (`recordId`) or a new one, whose name
33
+ * starts as `name`. Resolves with the record once saved, or null.
34
+ */
35
+ openRecord(model: string, request: {
36
+ recordId?: RecordId;
37
+ name?: string;
38
+ title: string;
39
+ }): Promise<RelatedRecord | null>;
40
+ /** Pick a record from a searchable list. */
41
+ searchMore(request: {
42
+ title: string;
43
+ search(query: string, limit: number): Promise<RelatedRecord[]>;
44
+ }): Promise<RelatedRecord | null>;
45
+ /**
46
+ * Values edited in a form made of these fields. Resolves with the new values,
47
+ * or null. `recompute` recalculates them as they change, as a line's onchange.
48
+ */
49
+ editValues(request: {
50
+ title: string;
51
+ fields: Record<string, Field>;
52
+ values: Values;
53
+ readonly?: boolean;
54
+ recompute?: (values: Values) => Promise<Values>;
55
+ }): Promise<Values | null>;
22
56
  }
23
57
  export interface WidgetState {
24
58
  value: Value | undefined;
@@ -3,9 +3,15 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.builtInWidgets = void 0;
4
4
  exports.createWidget = createWidget;
5
5
  exports.summary = summary;
6
+ const numbers_1 = require("./numbers");
6
7
  const relations_1 = require("./relations");
7
8
  const lines_1 = require("./lines");
8
9
  const files_1 = require("./files");
10
+ const progress_1 = require("./progress");
11
+ const label_1 = require("./label");
12
+ const statusbar_1 = require("./statusbar");
13
+ const calendar_1 = require("./calendar");
14
+ const properties_1 = require("./properties");
9
15
  const extras_1 = require("./extras");
10
16
  /**
11
17
  * Pick the widget for a field: the app's or the built-in one for
@@ -86,16 +92,23 @@ const textareaWidget = ({ form, name, field, node, id, document }) => {
86
92
  };
87
93
  const NUMBER = /^-?(\d+\.?\d*|\.\d+)$/;
88
94
  const UNFINISHED = /^-?\.?$/;
89
- /** Numbers stay as typed while focused: "1." means 1 now and 1.5 a keystroke later. */
95
+ /**
96
+ * Numbers are written as readers of the page's language write them, grouped,
97
+ * with the field's decimals, and read back the same way. What is typed stays
98
+ * as typed while focused: "1." means 1 now and 1.5 a keystroke later. The box
99
+ * keeps its spelling when entered, so a selection made on the way in holds.
100
+ */
90
101
  const numberWidget = (context) => {
91
- const { form, name, field, node, id, document } = context;
102
+ const { form, name, field, node, id, document, locale = 'en' } = context;
92
103
  const integer = field.type === 'integer';
104
+ const decimals = integer ? 0 : (field.type === 'float' || field.type === 'monetary' ? field.digits?.[1] : undefined) ?? 2;
105
+ const shown = (value) => (typeof value === 'number' ? (0, numbers_1.formatNumber)(value, decimals, locale) : textOf(value));
93
106
  const input = make(document, 'input', { id, type: 'text', class: 'fd-input fd-number-input', autocomplete: 'off' });
94
107
  input.inputMode = integer ? 'numeric' : 'decimal';
95
108
  if (node.placeholder)
96
109
  input.placeholder = node.placeholder;
97
110
  const parse = (raw) => {
98
- const text = raw.trim();
111
+ const text = (0, numbers_1.normalizeNumber)(raw.trim(), locale);
99
112
  if (text === '')
100
113
  return null;
101
114
  if (NUMBER.test(text))
@@ -110,10 +123,26 @@ const numberWidget = (context) => {
110
123
  form.setValue(name, value);
111
124
  });
112
125
  input.addEventListener('blur', () => {
113
- input.value = textOf(form.getState().values[name]);
126
+ input.value = shown(form.getState().values[name]);
114
127
  });
115
- const currency = field.type === 'monetary' ? make(document, 'span', { class: 'fd-currency', 'aria-hidden': 'true' }) : null;
116
- const element = currency ? make(document, 'span', { class: 'fd-number' }, currency, input) : input;
128
+ // Money shows its currency beside the amount (options.symbol "after" puts it
129
+ // after), or with options.pickCurrency the currency field's own widget, to change it.
130
+ const options = node.options ?? {};
131
+ const currencyField = field.type === 'monetary' ? field.currencyField : undefined;
132
+ const currencyDef = currencyField ? form.page.fields[currencyField] : undefined;
133
+ const picker = currencyField && currencyDef && options['pickCurrency'] === true
134
+ ? createWidget({ ...context, name: currencyField, field: currencyDef, node: { type: 'field', id: `${node.id}.currency`, field: currencyField }, id: `${id}-currency` })
135
+ : null;
136
+ if (picker && currencyDef)
137
+ picker.element.querySelector('input, select')?.setAttribute('aria-label', currencyDef.label);
138
+ if (picker?.element.matches('input, select') && currencyDef)
139
+ picker.element.setAttribute('aria-label', currencyDef.label);
140
+ const currency = field.type === 'monetary' && !picker ? make(document, 'span', { class: 'fd-currency', 'aria-hidden': 'true' }) : null;
141
+ const side = picker?.element ?? currency;
142
+ const after = options['symbol'] === 'after';
143
+ const element = side
144
+ ? make(document, 'span', { class: `fd-number${after ? ' fd-currency-after' : ''}${picker ? ' fd-currency-picked' : ''}` }, ...(after ? [input, side] : [side, input]))
145
+ : input;
117
146
  return {
118
147
  element,
119
148
  focus: () => input.focus(),
@@ -122,12 +151,15 @@ const numberWidget = (context) => {
122
151
  const parsed = parse(input.value);
123
152
  const showsSame = parsed === undefined || parsed === state.value;
124
153
  if (!(typing && showsSame)) {
125
- const text = textOf(state.value);
154
+ const text = shown(state.value);
126
155
  if (input.value !== text)
127
156
  input.value = text;
128
157
  }
129
158
  input.readOnly = state.readonly;
130
159
  describe(input, state);
160
+ if (picker && currencyField) {
161
+ picker.update({ value: state.values[currencyField], values: state.values, readonly: state.readonly, required: false, invalid: false });
162
+ }
131
163
  if (currency && field.type === 'monetary') {
132
164
  const holder = field.currencyField ? state.values[field.currencyField] : null;
133
165
  currency.textContent =
@@ -245,10 +277,11 @@ function pointsWidget(style) {
245
277
  };
246
278
  };
247
279
  }
248
- const dateWidget = ({ form, name, id, document }) => {
280
+ const dateWidget = (context) => {
281
+ const { form, name, id, document, node } = context;
249
282
  const input = make(document, 'input', { id, type: 'date', class: 'fd-input fd-date' });
250
283
  input.addEventListener('input', () => form.setValue(name, input.value || null));
251
- return {
284
+ const widget = {
252
285
  element: input,
253
286
  focus: () => input.focus(),
254
287
  update(state) {
@@ -259,10 +292,12 @@ const dateWidget = ({ form, name, id, document }) => {
259
292
  describe(input, state);
260
293
  },
261
294
  };
295
+ return node.options?.['weekNumbers'] === true ? (0, calendar_1.withCalendar)(widget, context, 'date') : widget;
262
296
  };
263
297
  const pad = (n) => String(n).padStart(2, '0');
264
298
  /** Shown in local time, stored as an ISO instant in UTC. */
265
- const dateTimeWidget = ({ form, name, id, document }) => {
299
+ const dateTimeWidget = (context) => {
300
+ const { form, name, id, document, node } = context;
266
301
  const input = make(document, 'input', { id, type: 'datetime-local', class: 'fd-input fd-datetime' });
267
302
  const local = (iso) => {
268
303
  if (typeof iso !== 'string' || !iso)
@@ -277,7 +312,7 @@ const dateTimeWidget = ({ form, name, id, document }) => {
277
312
  if (!Number.isNaN(d.getTime()))
278
313
  form.setValue(name, d.toISOString());
279
314
  });
280
- return {
315
+ const widget = {
281
316
  element: input,
282
317
  focus: () => input.focus(),
283
318
  update(state) {
@@ -288,6 +323,7 @@ const dateTimeWidget = ({ form, name, id, document }) => {
288
323
  describe(input, state);
289
324
  },
290
325
  };
326
+ return node.options?.['weekNumbers'] === true ? (0, calendar_1.withCalendar)(widget, context, 'datetime') : widget;
291
327
  };
292
328
  /** Until a type has its own editor (Phase 5), show what it holds. */
293
329
  function pendingWidget({ field, id, document }) {
@@ -328,20 +364,29 @@ exports.builtInWidgets = {
328
364
  'char.phone': textWidget('tel'),
329
365
  'char.url': textWidget('url'),
330
366
  'char.password': textWidget('password'),
367
+ 'char.tags': relations_1.charTagsWidget,
331
368
  text: textareaWidget,
332
369
  integer: numberWidget,
333
370
  float: numberWidget,
334
371
  monetary: numberWidget,
335
372
  'integer.rating': pointsWidget('rating'),
336
373
  'integer.scale': pointsWidget('scale'),
374
+ 'integer.progressbar': progress_1.progressbarWidget,
375
+ 'integer.label': label_1.labelWidget,
376
+ 'float.label': label_1.labelWidget,
377
+ 'monetary.label': label_1.labelWidget,
378
+ 'float.progressbar': progress_1.progressbarWidget,
379
+ 'monetary.progressbar': progress_1.progressbarWidget,
337
380
  boolean: checkboxWidget(),
338
381
  'boolean.toggle': checkboxWidget('switch'),
339
382
  selection: selectWidget,
340
383
  'selection.radio': choiceGroup('radio'),
341
384
  'selection.checkboxes': choiceGroup('checkbox'),
385
+ 'selection.statusbar': statusbar_1.statusbarWidget,
342
386
  date: dateWidget,
343
387
  datetime: dateTimeWidget,
344
388
  many2one: relations_1.many2oneWidget,
389
+ 'many2one.statusbar': statusbar_1.statusbarWidget,
345
390
  many2many: relations_1.tagsWidget,
346
391
  'many2many.tags': relations_1.tagsWidget,
347
392
  'many2many.checkboxes': relations_1.linkCheckboxesWidget,
@@ -351,6 +396,6 @@ exports.builtInWidgets = {
351
396
  image: files_1.imageWidget,
352
397
  html: extras_1.htmlWidget,
353
398
  json: extras_1.jsonWidget,
354
- properties: extras_1.jsonWidget,
399
+ properties: properties_1.propertiesWidget,
355
400
  };
356
401
  //# sourceMappingURL=widgets.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"widgets.js","sourceRoot":"","sources":["../../../../../libs/widgets/src/lib/widgets.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"widgets.js","sourceRoot":"","sources":["../../../../../libs/widgets/src/lib/widgets.ts"],"names":[],"mappings":"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"}