@haneinfo/frontend-instances 0.6.0 → 0.8.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 (103) hide show
  1. package/README.md +141 -26
  2. package/agent-guide.md +12 -0
  3. package/dist/attachments-client.d.ts +7 -2
  4. package/dist/attachments-client.d.ts.map +1 -1
  5. package/dist/attachments-client.js +47 -11
  6. package/dist/attachments-client.js.map +1 -1
  7. package/dist/client.d.ts +12 -75
  8. package/dist/client.d.ts.map +1 -1
  9. package/dist/client.js +12 -463
  10. package/dist/client.js.map +1 -1
  11. package/dist/contracts.d.ts +167 -5
  12. package/dist/contracts.d.ts.map +1 -1
  13. package/dist/contracts.js +5 -98
  14. package/dist/contracts.js.map +1 -1
  15. package/dist/dashboard.d.ts +43 -0
  16. package/dist/dashboard.d.ts.map +1 -0
  17. package/dist/dashboard.js +72 -0
  18. package/dist/dashboard.js.map +1 -0
  19. package/dist/detail-client.d.ts +59 -0
  20. package/dist/detail-client.d.ts.map +1 -0
  21. package/dist/detail-client.js +253 -0
  22. package/dist/detail-client.js.map +1 -0
  23. package/dist/documents-client.d.ts +2 -1
  24. package/dist/documents-client.d.ts.map +1 -1
  25. package/dist/documents-client.js +13 -9
  26. package/dist/documents-client.js.map +1 -1
  27. package/dist/draft-client.d.ts +27 -3
  28. package/dist/draft-client.d.ts.map +1 -1
  29. package/dist/draft-client.js +107 -54
  30. package/dist/draft-client.js.map +1 -1
  31. package/dist/draft-session.d.ts +1 -0
  32. package/dist/draft-session.d.ts.map +1 -1
  33. package/dist/draft-session.js +2 -1
  34. package/dist/draft-session.js.map +1 -1
  35. package/dist/field-errors.d.ts +4 -0
  36. package/dist/field-errors.d.ts.map +1 -0
  37. package/dist/field-errors.js +25 -0
  38. package/dist/field-errors.js.map +1 -0
  39. package/dist/filter-editor.d.ts +18 -0
  40. package/dist/filter-editor.d.ts.map +1 -0
  41. package/dist/filter-editor.js +145 -0
  42. package/dist/filter-editor.js.map +1 -0
  43. package/dist/format.d.ts +152 -0
  44. package/dist/format.d.ts.map +1 -0
  45. package/dist/format.js +402 -0
  46. package/dist/format.js.map +1 -0
  47. package/dist/import-client.d.ts +31 -0
  48. package/dist/import-client.d.ts.map +1 -0
  49. package/dist/import-client.js +179 -0
  50. package/dist/import-client.js.map +1 -0
  51. package/dist/instance-management-client.d.ts +23 -6
  52. package/dist/instance-management-client.d.ts.map +1 -1
  53. package/dist/instance-management-client.js +96 -70
  54. package/dist/instance-management-client.js.map +1 -1
  55. package/dist/labels.d.ts +10 -0
  56. package/dist/labels.d.ts.map +1 -0
  57. package/dist/labels.js +42 -0
  58. package/dist/labels.js.map +1 -0
  59. package/dist/list-client.d.ts +39 -0
  60. package/dist/list-client.d.ts.map +1 -0
  61. package/dist/list-client.js +403 -0
  62. package/dist/list-client.js.map +1 -0
  63. package/dist/list-query.d.ts +41 -0
  64. package/dist/list-query.d.ts.map +1 -0
  65. package/dist/list-query.js +171 -0
  66. package/dist/list-query.js.map +1 -0
  67. package/dist/management-client.d.ts +6 -2
  68. package/dist/management-client.d.ts.map +1 -1
  69. package/dist/management-client.js +113 -84
  70. package/dist/management-client.js.map +1 -1
  71. package/dist/messages.d.ts +4 -4
  72. package/dist/messages.d.ts.map +1 -1
  73. package/dist/messages.js +23 -5
  74. package/dist/messages.js.map +1 -1
  75. package/dist/process-client.d.ts +27 -0
  76. package/dist/process-client.d.ts.map +1 -0
  77. package/dist/process-client.js +129 -0
  78. package/dist/process-client.js.map +1 -0
  79. package/dist/process-messages.d.ts +73 -0
  80. package/dist/process-messages.d.ts.map +1 -0
  81. package/dist/process-messages.js +154 -0
  82. package/dist/process-messages.js.map +1 -0
  83. package/dist/server.d.ts +34 -1
  84. package/dist/server.d.ts.map +1 -1
  85. package/dist/server.js +302 -50
  86. package/dist/server.js.map +1 -1
  87. package/dist/tasks-client.d.ts +38 -0
  88. package/dist/tasks-client.d.ts.map +1 -0
  89. package/dist/tasks-client.js +127 -0
  90. package/dist/tasks-client.js.map +1 -0
  91. package/dist/timeline.d.ts +24 -0
  92. package/dist/timeline.d.ts.map +1 -0
  93. package/dist/timeline.js +189 -0
  94. package/dist/timeline.js.map +1 -0
  95. package/dist/ui-messages.d.ts +284 -0
  96. package/dist/ui-messages.d.ts.map +1 -0
  97. package/dist/ui-messages.js +372 -0
  98. package/dist/ui-messages.js.map +1 -0
  99. package/dist/ui.d.ts +101 -0
  100. package/dist/ui.d.ts.map +1 -0
  101. package/dist/ui.js +169 -0
  102. package/dist/ui.js.map +1 -0
  103. package/package.json +4 -2
@@ -1 +1 @@
1
- {"version":3,"file":"instance-management-client.js","sourceRoot":"","sources":["../src/instance-management-client.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"instance-management-client.js","sourceRoot":"","sources":["../src/instance-management-client.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AACb,OAAO,EACL,WAAW,EACX,iBAAiB,EACjB,kBAAkB,EAClB,sBAAsB,EACtB,iBAAiB,EACjB,iBAAiB,EACjB,gBAAgB,EAChB,MAAM,EACN,EAAE,EACF,YAAY,EACZ,mBAAmB,EACnB,gBAAgB,EAChB,mBAAmB,EACnB,KAAK,GACN,MAAM,0BAA0B,CAAC;AAClC,OAAO,EACL,OAAO,EACP,cAAc,EACd,WAAW,EACX,YAAY,EACZ,cAAc,EACd,IAAI,EACJ,SAAS,EACT,GAAG,IAAI,OAAO,EACd,MAAM,GACP,MAAM,cAAc,CAAC;AACtB,OAAO,EAAkB,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAC3E,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,cAAc,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAUjF,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3D,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,UAAU,EAAE,YAAY,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAExF,MAAM,GAAG,GAAG,+EAA+E,CAAC;AAC5F,gFAAgF;AAChF,MAAM,UAAU,gBAAgB,CAAC,EAC/B,KAAK,EACL,QAAQ,EACR,QAAQ,GAKT;IACC,MAAM,GAAG,GAAG,MAAM,CAAoB,IAAI,CAAC,EACzC,EAAE,GAAG,KAAK,EAAE,CAAC;IACf,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,QAAQ,GAAG,QAAQ,CAAC,aAAmC,CAAC;QAC9D,MAAM,MAAM,GAAG,GAAG,CAAC,OAAO,CAAC;QAC3B,IAAI,MAAM,EAAE,SAAS;YAAE,MAAM,CAAC,SAAS,EAAE,CAAC;;YACrC,MAAM,EAAE,YAAY,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QACtC,MAAM,EAAE,aAAa,CAAc,sCAAsC,CAAC,EAAE,KAAK,EAAE,CAAC;QACpF,OAAO,GAAG,EAAE;YACV,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC;YAClB,IAAI,QAAQ,EAAE,WAAW;gBAAE,QAAQ,CAAC,KAAK,EAAE,CAAC;;gBACvC,QAAQ,CAAC,aAAa,CAAc,SAAS,CAAC,EAAE,KAAK,EAAE,CAAC;QAC/D,CAAC,CAAC;IACJ,CAAC,EAAE,EAAE,CAAC,CAAC;IACP,OAAO,CACL,kBACE,GAAG,EAAE,GAAG,qBACS,EAAE,EACnB,SAAS,EAAC,2NAA2N,EACrO,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE;YAClB,KAAK,CAAC,cAAc,EAAE,CAAC;YACvB,QAAQ,EAAE,CAAC;QACb,CAAC,EACD,SAAS,EAAE,CAAC,KAAK,EAAE,EAAE;YACnB,IAAI,KAAK,CAAC,GAAG,KAAK,QAAQ,EAAE,CAAC;gBAC3B,KAAK,CAAC,cAAc,EAAE,CAAC;gBACvB,QAAQ,EAAE,CAAC;YACb,CAAC;YACD,IAAI,KAAK,CAAC,GAAG,KAAK,KAAK,EAAE,CAAC;gBACxB,MAAM,QAAQ,GAAG;oBACf,GAAG,CAAC,GAAG,CAAC,OAAO,EAAE,gBAAgB,CAC/B,kGAAkG,CACnG,IAAI,EAAE,CAAC;iBACT,CAAC;gBACF,MAAM,KAAK,GAAG,QAAQ,CAAC,CAAC,CAAC,EACvB,IAAI,GAAG,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;gBACvC,IAAI,KAAK,CAAC,QAAQ,IAAI,QAAQ,CAAC,aAAa,KAAK,KAAK,EAAE,CAAC;oBACvD,KAAK,CAAC,cAAc,EAAE,CAAC;oBACvB,IAAI,EAAE,KAAK,EAAE,CAAC;gBAChB,CAAC;qBAAM,IAAI,CAAC,KAAK,CAAC,QAAQ,IAAI,QAAQ,CAAC,aAAa,KAAK,IAAI,EAAE,CAAC;oBAC9D,KAAK,CAAC,cAAc,EAAE,CAAC;oBACvB,KAAK,EAAE,KAAK,EAAE,CAAC;gBACjB,CAAC;YACH,CAAC;QACH,CAAC,aAED,aAAI,EAAE,EAAE,EAAE,EAAE,SAAS,EAAC,yCAAyC,YAC5D,KAAK,GACH,EACJ,QAAQ,IACF,CACV,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,EACxB,KAAK,EACL,MAAM,EAAE,CAAC,EACT,MAAM,EACN,MAAM,EACN,QAAQ,GAAG,KAAK,EAChB,SAAS,GAAG,KAAK,GAQlB;IACC,MAAM,EAAE,GAAG,KAAK,EAAE,EAChB,GAAG,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;IAClB,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,EAC5B,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAqC,EAAE,CAAC,CAAC;IACvE,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,EACrC,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,EAClC,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,EAA4B,CAAC;IAC3D,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,KAAK,GAAG,EAAE,GAAG,CAAC,OAAO,CAAC;QAC5B,IAAI,CAAC,IAAI,IAAI,QAAQ;YAAE,OAAO;QAC9B,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE;YAC5B,KAAK,IAAI,CAAgD,MAAM,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC,EAAE,CAAC;iBACzF,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE;gBACf,IAAI,KAAK,KAAK,GAAG,CAAC,OAAO,EAAE,CAAC;oBAC1B,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;oBACvB,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;oBACd,QAAQ,CAAC,SAAS,CAAC,CAAC;gBACtB,CAAC;YACH,CAAC,CAAC;iBACD,KAAK,CAAC,GAAG,EAAE;gBACV,IAAI,KAAK,KAAK,GAAG,CAAC,OAAO;oBAAE,QAAQ,CAAC,EAAE,GAAG,EAAE,eAAe,EAAE,CAAC,CAAC;YAChE,CAAC,CAAC,CAAC;QACP,CAAC,EAAE,GAAG,CAAC,CAAC;QACR,OAAO,GAAG,EAAE;YACV,YAAY,CAAC,KAAK,CAAC,CAAC;YACpB,GAAG,CAAC,OAAO,EAAE,CAAC;QAChB,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC;IAChC,MAAM,MAAM,GAAG,CAAC,IAAY,EAAE,EAAE;QAC9B,MAAM,IAAI,GAAG,IAAI;aACd,KAAK,CAAC,GAAG,CAAC;aACV,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;aAC5B,MAAM,CAAC,OAAO,CAAC,CAAC;QACnB,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,QAAQ;YAAE,OAAO;QACrC,MAAM,CAAC,IAAI,CAAC,CAAC;QACb,IAAI,CAAC,EAAE,CAAC,CAAC;QACT,OAAO,CAAC,KAAK,CAAC,CAAC;QACf,GAAG,CAAC,OAAO,EAAE,CAAC;IAChB,CAAC,CAAC;IACF,OAAO,CACL,eAAK,SAAS,EAAC,wCAAwC,aACrD,gBAAO,OAAO,EAAE,EAAE,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,qBAAqB,YACzE,KAAK,GACA,EACR,eAAK,SAAS,EAAC,oBAAoB,aACjC,KAAC,KAAK,IACJ,EAAE,EAAE,EAAE,EACN,IAAI,EAAC,UAAU,uBACG,MAAM,mBACT,IAAI,mBACJ,GAAG,EAAE,OAAO,2BACJ,IAAI,IAAI,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,IAAI,MAAM,EAAE,CAAC,CAAC,CAAC,SAAS,EAC1E,KAAK,EAAE,CAAC,EACR,QAAQ,EAAE,QAAQ,EAClB,YAAY,EAAC,KAAK,EAClB,SAAS,EAAC,gCAAgC,EAC1C,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,EAC5B,MAAM,EAAE,GAAG,EAAE;4BACX,OAAO,CAAC,KAAK,CAAC,CAAC;4BACf,GAAG,CAAC,OAAO,EAAE,CAAC;wBAChB,CAAC,EACD,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE;4BAClB,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC;4BACjC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;4BACd,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC;gCAAE,MAAM,CAAC,KAAK,CAAC,CAAC;iCAClC,CAAC;gCACJ,IAAI,CAAC,KAAK,CAAC,CAAC;gCACZ,OAAO,CAAC,IAAI,CAAC,CAAC;4BAChB,CAAC;wBACH,CAAC,EACD,SAAS,EAAE,CAAC,KAAK,EAAE,EAAE;4BACnB,IAAI,KAAK,CAAC,GAAG,KAAK,QAAQ,EAAE,CAAC;gCAC3B,KAAK,CAAC,cAAc,EAAE,CAAC;gCACvB,OAAO,CAAC,KAAK,CAAC,CAAC;gCACf,GAAG,CAAC,OAAO,EAAE,CAAC;4BAChB,CAAC;4BACD,IAAI,KAAK,CAAC,GAAG,KAAK,WAAW,IAAI,KAAK,CAAC,GAAG,KAAK,SAAS,EAAE,CAAC;gCACzD,KAAK,CAAC,cAAc,EAAE,CAAC;gCACvB,OAAO,CAAC,IAAI,CAAC,CAAC;gCACd,SAAS,CAAC,CAAC,KAAK,EAAE,EAAE,CAClB,KAAK,CAAC,MAAM;oCACV,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,KAAK,CAAC,GAAG,KAAK,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,GAAG,KAAK,CAAC,MAAM;oCAC9E,CAAC,CAAC,CAAC,CAAC,CACP,CAAC;4BACJ,CAAC;4BACD,IAAI,KAAK,CAAC,GAAG,KAAK,OAAO,EAAE,CAAC;gCAC1B,KAAK,CAAC,cAAc,EAAE,CAAC;gCACvB,MAAM,CAAC,IAAI,IAAI,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;4BACxD,CAAC;wBACH,CAAC,GACD,EACF,MAAC,MAAM,IACL,IAAI,EAAC,QAAQ,EACb,OAAO,EAAC,SAAS,EACjB,SAAS,EAAE,KAAK,EAChB,QAAQ,EAAE,QAAQ,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,EAC/B,OAAO,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,aAExB,KAAC,IAAI,mBAAa,MAAM,eAAW,cAAc,GAAG,EACnD,CAAC,CAAC,OAAO,IACH,IACL,EACL,IAAI,IAAI,CACP,eACE,EAAE,EAAE,GAAG,EAAE,OAAO,EAChB,IAAI,EAAC,SAAS,gBACF,KAAK,EACjB,SAAS,EAAC,yJAAyJ,aAElK,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,CAC1B,kBACE,IAAI,EAAC,QAAQ,EACb,IAAI,EAAC,QAAQ,mBACE,KAAK,KAAK,MAAM,EAC/B,EAAE,EAAE,GAAG,EAAE,IAAI,KAAK,EAAE,EAEpB,QAAQ,EAAE,CAAC,CAAC,EACZ,SAAS,EAAC,0KAA0K,EACpL,WAAW,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,cAAc,EAAE,EAC9C,OAAO,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,aAEjC,yBAAO,IAAI,CAAC,KAAK,GAAQ,EACzB,eAAM,SAAS,EAAC,4CAA4C,YAAE,IAAI,CAAC,KAAK,GAAQ,KAP3E,IAAI,CAAC,KAAK,CAQR,CACV,CAAC,EACD,CAAC,KAAK,CAAC,MAAM,IAAI,CAChB,YAAG,IAAI,EAAC,QAAQ,EAAC,SAAS,EAAC,2CAA2C,YACnE,CAAC,CAAC,aAAa,GACd,CACL,IACG,CACP,EACD,KAAC,YAAY,IAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,GAAI,IACrC,CACP,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,EACxB,EAAE,EACF,OAAO,EACP,MAAM,EACN,MAAM,EAAE,CAAC,EACT,SAAS,GAOV;IACC,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,QAAQ,CAAC,OAAO,CAAC,EACvC,IAAI,GAAG,OAAO,EAAE,CAAC;IACnB,MAAM,OAAO,GAAG,KAAK,EAAE,CAAC;IACxB,MAAM,OAAO,GAAG,KAAK,IAAI,EAAE;QACzB,MAAM,IAAI,GAAG,MAAM,IAAI,CAAU,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC;QAC/D,OAAO,CAAC,IAAI,CAAC,CAAC;QACd,MAAM,SAAS,CAAC,IAAI,CAAC,CAAC;IACxB,CAAC,CAAC;IACF,OAAO,CACL,mBACE,SAAS,EAAE,EAAE,CAAC,GAAG,EAAE,qBAAqB,CAAC,qBACxB,OAAO,eACb,IAAI,CAAC,OAAO,aAEvB,cAAI,EAAE,EAAE,OAAO,EAAE,SAAS,EAAC,4DAA4D,aACrF,KAAC,OAAO,mBAAa,MAAM,EAAC,SAAS,EAAC,8BAA8B,GAAG,EACtE,CAAC,CAAC,IAAI,IACJ,EACL,KAAC,YAAY,IAAC,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,CAAC,GAAI,EAC9C,YAAG,IAAI,EAAC,QAAQ,eAAW,QAAQ,EAAC,SAAS,EAAC,SAAS,YACpD,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,GAC5B,EACH,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CACnB,aAAI,SAAS,EAAC,sBAAsB,YACjC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CACvB,aAA4B,SAAS,EAAC,YAAY,YAChD,KAAC,IAAI,IACH,WAAW,EAAE,GAAG,CAAC,CAAC,SAAS,KAAK,GAAG,CAAC,KAAK,EAAE,EAC3C,QAAQ,EAAE,IAAI,CAAC,OAAO,EACtB,QAAQ,EACN,GAAG,CAAC,SAAS;4BACX,CAAC,CAAC,GAAG,EAAE,CACH,KAAK,IAAI,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE;gCACvB,MAAM,IAAI,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,CAAC,aAAa,EAAE,CAAC,CAAC;gCACtE,MAAM,OAAO,EAAE,CAAC;4BAClB,CAAC,CAAC;4BACN,CAAC,CAAC,SAAS,YAGd,GAAG,CAAC,KAAK,GACL,IAfA,GAAG,CAAC,aAAa,CAgBrB,CACN,CAAC,GACC,CACN,CAAC,CAAC,CAAC,CACF,YAAG,SAAS,EAAC,+BAA+B,YAAE,CAAC,CAAC,SAAS,GAAK,CAC/D,EACA,IAAI,CAAC,MAAM,IAAI,CACd,KAAC,SAAS,IACR,KAAK,EAAE,CAAC,CAAC,QAAQ,EACjB,MAAM,EAAE,CAAC,EACT,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,IAAI,CAAC,OAAO,EACtB,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE;oBACf,KAAK,IAAI,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE;wBACvB,MAAM,IAAI,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;wBAClD,MAAM,OAAO,EAAE,CAAC;oBAClB,CAAC,CAAC,CAAC;gBACL,CAAC,GACD,CACH,IACO,CACX,CAAC;AACJ,CAAC;AAED,0FAA0F;AAC1F,MAAM,UAAU,aAAa,CAAC,EAC5B,EAAE,EACF,QAAQ,EACR,MAAM,EACN,MAAM,EAAE,CAAC,EACT,QAAQ,EACR,SAAS,EACT,UAAU,EACV,QAAQ,GAAG,KAAK,EAChB,mBAAmB,GAWpB;IACC,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,EAC3C,IAAI,GAAG,OAAO,EAAE,CAAC;IACnB,MAAM,GAAG,GAAG,CAAC,SAA6C,EAAE,EAAE,CAC5D,IAAI,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE;QAClB,MAAM,IAAI,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC;QACzD,IAAI,SAAS,KAAK,QAAQ,EAAE,CAAC;YAC3B,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YACjC,OAAO;QACT,CAAC;QACD,MAAM,SAAS,CAAC,CAAC,MAAM,IAAI,CAAiB,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;IACzF,CAAC,CAAC,CAAC;IACL,IAAI,CAAC,QAAQ,CAAC,UAAU,IAAI,CAAC,QAAQ,CAAC,YAAY,IAAI,CAAC,QAAQ,CAAC,SAAS,IAAI,CAAC,UAAU;QACtF,OAAO,IAAI,CAAC;IACd,OAAO,CACL,8BACE,MAAC,YAAY,eACX,KAAC,mBAAmB,IAAC,OAAO,kBAC1B,MAAC,MAAM,IACL,OAAO,EAAC,SAAS,EACjB,SAAS,EAAE,YAAY,KAAK,EAAE,EAC9B,QAAQ,EAAE,IAAI,CAAC,OAAO,IAAI,QAAQ,sBAChB,mBAAmB,aAErC,KAAC,cAAc,mBAAa,MAAM,eAAW,cAAc,GAAG,EAC7D,CAAC,CAAC,WAAW,IACP,GACW,EACtB,MAAC,mBAAmB,IAAC,KAAK,EAAC,KAAK,EAAC,SAAS,EAAC,MAAM,aAC9C,UAAU,EACV,QAAQ,CAAC,UAAU,IAAI,CACtB,MAAC,gBAAgB,IAAC,SAAS,EAAC,iBAAiB,EAAC,QAAQ,EAAE,GAAG,EAAE,CAAC,KAAK,GAAG,CAAC,SAAS,CAAC,aAC/E,KAAC,OAAO,mBAAa,MAAM,GAAG,EAC7B,CAAC,CAAC,OAAO,IACO,CACpB,EACA,QAAQ,CAAC,YAAY,IAAI,CACxB,MAAC,gBAAgB,IAAC,SAAS,EAAC,iBAAiB,EAAC,QAAQ,EAAE,GAAG,EAAE,CAAC,KAAK,GAAG,CAAC,WAAW,CAAC,aACjF,KAAC,cAAc,mBAAa,MAAM,GAAG,EACpC,CAAC,CAAC,SAAS,IACK,CACpB,EACA,QAAQ,CAAC,SAAS,IAAI,CACrB,MAAC,gBAAgB,IACf,OAAO,EAAC,aAAa,EACrB,SAAS,EAAC,iBAAiB,EAC3B,QAAQ,EAAE,GAAG,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,aAEhC,KAAC,MAAM,mBAAa,MAAM,GAAG,EAC5B,CAAC,CAAC,cAAc,IACA,CACpB,IACmB,IACT,EACf,KAAC,YAAY,IAAC,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,CAAC,GAAI,EAC9C,KAAC,WAAW,IACV,IAAI,EAAE,OAAO,EACb,YAAY,EAAE,CAAC,IAAI,EAAE,EAAE;oBACrB,IAAI,CAAC,IAAI,CAAC,OAAO;wBAAE,UAAU,CAAC,IAAI,CAAC,CAAC;gBACtC,CAAC,YAED,MAAC,kBAAkB,eACjB,MAAC,iBAAiB,eAChB,KAAC,gBAAgB,cAAE,CAAC,CAAC,kBAAkB,GAAoB,EAC3D,KAAC,sBAAsB,cAAE,CAAC,CAAC,UAAU,GAA0B,IAC7C,EACpB,MAAC,iBAAiB,eAChB,KAAC,iBAAiB,IAAC,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,CAAC,OAAO,YACxD,CAAC,CAAC,MAAM,GACS,EACpB,KAAC,MAAM,IACL,OAAO,EAAC,aAAa,EACrB,SAAS,EAAE,KAAK,EAChB,QAAQ,EAAE,IAAI,CAAC,OAAO,EACtB,OAAO,EAAE,GAAG,EAAE,CAAC,KAAK,GAAG,CAAC,QAAQ,CAAC,YAEhC,CAAC,CAAC,aAAa,GACT,IACS,IACD,GACT,IACb,CACJ,CAAC;AACJ,CAAC;AAED,qGAAqG;AACrG,MAAM,UAAU,cAAc,CAAC,EAC7B,EAAE,EACF,OAAO,EACP,MAAM,EACN,MAAM,EAAE,CAAC,EACT,QAAQ,EACR,SAAS,GAQV;IACC,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,CAAC,OAAO,CAAC,EAC/C,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,EACvC,IAAI,GAAG,OAAO,EAAE,CAAC;IACnB,MAAM,GAAG,GAAG,CAAC,SAA6C,EAAE,EAAE;QAC5D,KAAK,IAAI,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE;YACvB,MAAM,IAAI,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC;YACzD,IAAI,SAAS,KAAK,QAAQ,EAAE,CAAC;gBAC3B,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;gBACjC,OAAO;YACT,CAAC;YACD,WAAW,CAAC,CAAC,MAAM,IAAI,CAAiB,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;YACnF,MAAM,SAAS,EAAE,CAAC;QACpB,CAAC,CAAC,CAAC;IACL,CAAC,CAAC;IACF,OAAO,CACL,mBAAS,SAAS,EAAC,mCAAmC,eAAY,IAAI,CAAC,OAAO,aAC3E,QAAQ,CAAC,QAAQ,IAAI,CACpB,YAAG,IAAI,EAAC,QAAQ,EAAC,SAAS,EAAC,qCAAqC,YAC7D,CAAC,CAAC,QAAQ,GACT,CACL,EACD,KAAC,YAAY,IAAC,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,CAAC,GAAI,EAC7C,QAAQ,CAAC,UAAU,IAAI,CACtB,KAAC,MAAM,IAAC,QAAQ,EAAE,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,YAC1D,CAAC,CAAC,OAAO,GACH,CACV,EACA,QAAQ,CAAC,YAAY,IAAI,CACxB,KAAC,MAAM,IAAC,QAAQ,EAAE,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,WAAW,CAAC,YAC5D,CAAC,CAAC,SAAS,GACL,CACV,EACA,QAAQ,CAAC,SAAS,IAAI,CACrB,KAAC,MAAM,IAAC,QAAQ,EAAE,IAAI,CAAC,OAAO,EAAE,OAAO,EAAC,aAAa,EAAC,OAAO,EAAE,GAAG,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,YAClF,CAAC,CAAC,cAAc,GACV,CACV,EACA,OAAO,IAAI,CACV,MAAC,gBAAgB,IACf,KAAK,EAAE,CAAC,CAAC,aAAa,EACtB,QAAQ,EAAE,GAAG,EAAE;oBACb,IAAI,CAAC,IAAI,CAAC,OAAO;wBAAE,UAAU,CAAC,KAAK,CAAC,CAAC;gBACvC,CAAC,aAED,sBAAI,CAAC,CAAC,UAAU,GAAK,EACrB,eAAK,SAAS,EAAC,2BAA2B,aACxC,KAAC,MAAM,IAAC,QAAQ,EAAE,IAAI,CAAC,OAAO,EAAE,OAAO,EAAC,aAAa,EAAC,OAAO,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,YAC/E,CAAC,CAAC,aAAa,GACT,EACT,KAAC,MAAM,IAAC,QAAQ,EAAE,IAAI,CAAC,OAAO,EAAE,OAAO,EAAC,SAAS,EAAC,OAAO,EAAE,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,YAC/E,CAAC,CAAC,MAAM,GACF,IACL,IACW,CACpB,IACO,CACX,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,EACrC,OAAO,EACP,MAAM,EACN,MAAM,EAAE,CAAC,EACT,MAAM,GAAG,OAAO,EAChB,QAAQ,GAAG,aAAa,GAOzB;IACC,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,QAAQ,CAAC,OAAO,CAAC,EACvC,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,EACpC,IAAI,GAAG,OAAO,EAAE,CAAC;IACnB,MAAM,IAAI,GAAG,KAAK,EAAE,MAAc,EAAE,EAAE,CACpC,OAAO,CAAC,MAAM,IAAI,CAAc,MAAM,EAAE,EAAE,IAAI,EAAE,kBAAkB,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;IACjF,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC;IACnE,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAC3E,OAAO,CACL,mBAAS,SAAS,EAAC,6BAA6B,eAAY,IAAI,CAAC,OAAO,aACtE,KAAC,YAAY,IAAC,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,CAAC,GAAI,EAC9C,YAAG,IAAI,EAAC,QAAQ,eAAW,QAAQ,EAAC,SAAS,EAAC,SAAS,YACpD,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,GACjC,EACH,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CACpB,KAAC,UAAU,IAAC,IAAI,EAAE,KAAC,MAAM,KAAG,EAAE,KAAK,EAAE,CAAC,CAAC,YAAY,EAAE,WAAW,EAAE,CAAC,CAAC,kBAAkB,GAAI,CAC3F,CAAC,CAAC,CAAC,CACF,aAAI,SAAS,EAAC,qBAAqB,YAChC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;oBACvB,MAAM,IAAI,GAAG,cAAc,CAAC,IAAI,CAAC,SAAS,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAC;oBACxE,OAAO,CACL,kCAEoB,IAAI,CAAC,EAAE,EACzB,SAAS,EAAE,EAAE,CAAC,GAAG,EAAE,iDAAiD,CAAC,aAErE,eAAK,SAAS,EAAC,oCAAoC,aACjD,aAAI,SAAS,EAAC,qBAAqB,YAChC,YAAY,CAAC,CAAC,CAAC,kBAAkB,EAAE;4CAClC,IAAI,EAAE,CACJ,KAAC,YAAY,IACX,GAAG,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,WAAW,EAAE,EAC3C,IAAI,EAAE,IAAI,EACV,IAAI,EACF,cAAc,CAAC,IAAI,CAAC,SAAS,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,IAAI,GAE1E,CACH;yCACF,CAAC,GACC,EACL,aAAG,SAAS,EAAC,+BAA+B,aACzC,CAAC,CAAC,SAAS,YAAG,IAAI,CAAC,aAAa,IAAI,CAAC,CAAC,aAAa,aAAI,GAAG,EAC1D,QAAQ,CAAC,CAAC,CAAC,aAAa,EAAE;gDACzB,IAAI,EAAE,YAAY,CAAC,IAAI,CAAC,sBAAsB,EAAE,MAAM,CAAC;6CACxD,CAAC,IACA,IACA,EACN,MAAC,MAAM,IACL,OAAO,EAAC,SAAS,EACjB,SAAS,EAAE,EAAE,CAAC,2BAA2B,EAAE,KAAK,CAAC,EACjD,QAAQ,EAAE,IAAI,CAAC,OAAO,EACtB,OAAO,EAAE,GAAG,EAAE;oCACZ,KAAK,IAAI,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE;wCACvB,MAAM,IAAI,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC,CAAC;wCAC9E,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;wCACxB,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;oCACzB,CAAC,CAAC,CAAC;gCACL,CAAC,aAED,KAAC,SAAS,mBAAa,MAAM,eAAW,cAAc,GAAG,EACxD,CAAC,CAAC,OAAO,IACH,KAvCJ,IAAI,CAAC,EAAE,CAwCT,CACN,CAAC;gBACJ,CAAC,CAAC,GACC,CACN,EACA,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,CAC1B,6BAAiB,CAAC,CAAC,UAAU,EAAE,SAAS,EAAC,qCAAqC,aAC5E,MAAC,MAAM,IACL,OAAO,EAAC,SAAS,EACjB,SAAS,EAAE,KAAK,EAChB,QAAQ,EAAE,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAC3C,OAAO,EAAE,GAAG,EAAE,CAAC,KAAK,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,aAE/E,KAAC,WAAW,mBAAa,MAAM,eAAW,cAAc,GAAG,EAC1D,CAAC,CAAC,QAAQ,IACJ,EACT,eAAM,SAAS,EAAC,sBAAsB,YAAE,QAAQ,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,GAAQ,EACnF,MAAC,MAAM,IACL,OAAO,EAAC,SAAS,EACjB,SAAS,EAAE,KAAK,EAChB,QAAQ,EAAE,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,EAChE,OAAO,EAAE,GAAG,EAAE,CAAC,KAAK,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,aAEjE,CAAC,CAAC,IAAI,EACP,KAAC,YAAY,mBAAa,MAAM,eAAW,YAAY,GAAG,IACnD,IACL,CACP,IACO,CACX,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,qBAAqB,CACzC,MAAsB,EACtB,WAAmB,EACnB,KAAoB;IAEpB,IAAI,CAAC;QACH,OAAO;YACL,MAAM,EAAE,MAAM,IAAI,CAAa,MAAM,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC;YAC7E,SAAS,EAAE,IAAI;YACf,KAAK;SACN,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,CAAC,CAAC,KAAK,YAAY,cAAc,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,GAAG,KAAK,oBAAoB;YACjF,MAAM,KAAK,CAAC;QACd,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,OAAO,EAAE,GAAG,KAAK,CAAC;QAC5D,OAAO;YACL,MAAM,EAAE,MAAM,IAAI,CAAa,MAAM,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;YACtF,SAAS,EAAE,KAAK;YAChB,KAAK,EAAE,OAAO;SACf,CAAC;IACJ,CAAC;AACH,CAAC"}
@@ -0,0 +1,10 @@
1
+ import { type Labels, type Translation } from './contracts.js';
2
+ import { type DisplayLocale } from './format.js';
3
+ /** The package's complete English or Traditional Chinese catalog for every label key. */
4
+ export declare function defaultLabels(locale?: DisplayLocale | string): Labels;
5
+ /**
6
+ * The host's translations with the package defaults behind them: a key the host does not translate
7
+ * (missing, empty or echoed back as the key itself) uses the default for the locale.
8
+ */
9
+ export declare function resolveLabels(t: Translation, locale?: DisplayLocale | string): Labels;
10
+ //# sourceMappingURL=labels.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"labels.d.ts","sourceRoot":"","sources":["../src/labels.ts"],"names":[],"mappings":"AACA,OAAO,EAAiB,KAAK,MAAM,EAAa,KAAK,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAEzF,OAAO,EAAE,KAAK,aAAa,EAAiB,MAAM,aAAa,CAAC;AAkBhE,yFAAyF;AACzF,wBAAgB,aAAa,CAAC,MAAM,GAAE,aAAa,GAAG,MAAgB,GAAG,MAAM,CAG9E;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,CAAC,EAAE,WAAW,EAAE,MAAM,CAAC,EAAE,aAAa,GAAG,MAAM,GAAG,MAAM,CAarF"}
package/dist/labels.js ADDED
@@ -0,0 +1,42 @@
1
+ import { attachmentMessages } from './attachment-messages.js';
2
+ import { labelKeys } from './contracts.js';
3
+ import { documentMessages } from './document-messages.js';
4
+ import { displayLocale } from './format.js';
5
+ import { instanceManagementMessages } from './instance-management-messages.js';
6
+ import { errorMessages, managementMessages } from './messages.js';
7
+ import { processMessages } from './process-messages.js';
8
+ import { coreMessages, uiMessages } from './ui-messages.js';
9
+ const sources = [
10
+ processMessages,
11
+ coreMessages,
12
+ uiMessages,
13
+ instanceManagementMessages,
14
+ documentMessages,
15
+ attachmentMessages,
16
+ errorMessages,
17
+ managementMessages,
18
+ ];
19
+ const tuples = Object.assign({}, ...sources);
20
+ /** The package's complete English or Traditional Chinese catalog for every label key. */
21
+ export function defaultLabels(locale = 'zh-TW') {
22
+ const index = displayLocale(locale) === 'en' ? 0 : 1;
23
+ return Object.fromEntries(labelKeys.map((key) => [key, tuples[key]?.[index] ?? key]));
24
+ }
25
+ /**
26
+ * The host's translations with the package defaults behind them: a key the host does not translate
27
+ * (missing, empty or echoed back as the key itself) uses the default for the locale.
28
+ */
29
+ export function resolveLabels(t, locale) {
30
+ const defaults = defaultLabels(locale);
31
+ return Object.fromEntries(labelKeys.map((key) => {
32
+ let value;
33
+ try {
34
+ value = t(key);
35
+ }
36
+ catch {
37
+ value = undefined;
38
+ }
39
+ return [key, typeof value === 'string' && value && value !== key ? value : defaults[key]];
40
+ }));
41
+ }
42
+ //# sourceMappingURL=labels.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"labels.js","sourceRoot":"","sources":["../src/labels.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,EAA8B,SAAS,EAAoB,MAAM,gBAAgB,CAAC;AACzF,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAsB,aAAa,EAAE,MAAM,aAAa,CAAC;AAChE,OAAO,EAAE,0BAA0B,EAAE,MAAM,mCAAmC,CAAC;AAC/E,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAClE,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE5D,MAAM,OAAO,GAAG;IACd,eAAe;IACf,YAAY;IACZ,UAAU;IACV,0BAA0B;IAC1B,gBAAgB;IAChB,kBAAkB;IAClB,aAAa;IACb,kBAAkB;CACV,CAAC;AACX,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,GAAG,OAAO,CAAgD,CAAC;AAE5F,yFAAyF;AACzF,MAAM,UAAU,aAAa,CAAC,SAAiC,OAAO;IACpE,MAAM,KAAK,GAAG,aAAa,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACrD,OAAO,MAAM,CAAC,WAAW,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,CAAC,CAAW,CAAC;AAClG,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,aAAa,CAAC,CAAc,EAAE,MAA+B;IAC3E,MAAM,QAAQ,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;IACvC,OAAO,MAAM,CAAC,WAAW,CACvB,SAAS,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;QACpB,IAAI,KAAc,CAAC;QACnB,IAAI,CAAC;YACH,KAAK,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;QACjB,CAAC;QAAC,MAAM,CAAC;YACP,KAAK,GAAG,SAAS,CAAC;QACpB,CAAC;QACD,OAAO,CAAC,GAAG,EAAE,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,IAAI,KAAK,KAAK,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;IAC5F,CAAC,CAAC,CACO,CAAC;AACd,CAAC"}
@@ -0,0 +1,39 @@
1
+ import { type FormField, type InstanceAction, type InstanceQuery, type Labels, type LinkComponent, type ListResult, type QueryField, type SavedView, type StateOption } from './contracts.js';
2
+ export interface ListClientProps {
3
+ fields: QueryField[];
4
+ initial: ListResult;
5
+ initialQuery: InstanceQuery;
6
+ initialTagsAvailable?: boolean;
7
+ views: SavedView[];
8
+ machineCode: string;
9
+ basePath: string;
10
+ labels: Labels;
11
+ action: InstanceAction;
12
+ locale?: string;
13
+ timeZone?: string;
14
+ /** All states of the machine (label, tone) for the state chips; may be empty. */
15
+ states?: StateOption[];
16
+ /** The subject Form's fields, to render option labels in cells. */
17
+ formFields?: FormField[];
18
+ personField?: string;
19
+ showCreate?: boolean;
20
+ LinkComponent?: LinkComponent;
21
+ }
22
+ export declare function ListClient(props: ListClientProps): import("react").JSX.Element;
23
+ /** Starts a draft and opens it; the backend decides whether the caller may create one. */
24
+ export declare function CreateRecordButton({ machineCode, basePath, labels: t, action, variant, initialData, }: {
25
+ machineCode: string;
26
+ /** Initial draft data, e.g. from blankDraftData. */
27
+ initialData?: Record<string, unknown>;
28
+ basePath: string;
29
+ labels: Labels;
30
+ action: InstanceAction;
31
+ variant?: 'default' | 'outline';
32
+ }): import("react").JSX.Element;
33
+ export declare function ShareForm({ view, labels: t, disabled, onShare, }: {
34
+ view: SavedView;
35
+ labels: Labels;
36
+ disabled: boolean;
37
+ onShare: (visibility: SavedView['visibility'], roles: string[]) => void;
38
+ }): import("react").JSX.Element;
39
+ //# sourceMappingURL=list-client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list-client.d.ts","sourceRoot":"","sources":["../src/list-client.tsx"],"names":[],"mappings":"AAqDA,OAAO,EAGL,KAAK,SAAS,EACd,KAAK,cAAc,EACnB,KAAK,aAAa,EAElB,KAAK,MAAM,EACX,KAAK,aAAa,EAElB,KAAK,UAAU,EACf,KAAK,UAAU,EACf,KAAK,SAAS,EACd,KAAK,WAAW,EACjB,MAAM,gBAAgB,CAAC;AAqCxB,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,UAAU,EAAE,CAAC;IACrB,OAAO,EAAE,UAAU,CAAC;IACpB,YAAY,EAAE,aAAa,CAAC;IAC5B,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,KAAK,EAAE,SAAS,EAAE,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,cAAc,CAAC;IACvB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,iFAAiF;IACjF,MAAM,CAAC,EAAE,WAAW,EAAE,CAAC;IACvB,mEAAmE;IACnE,UAAU,CAAC,EAAE,SAAS,EAAE,CAAC;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,aAAa,CAAC,EAAE,aAAa,CAAC;CAC/B;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,eAAe,+BA8xBhD;AAED,0FAA0F;AAC1F,wBAAgB,kBAAkB,CAAC,EACjC,WAAW,EACX,QAAQ,EACR,MAAM,EAAE,CAAC,EACT,MAAM,EACN,OAAmB,EACnB,WAAW,GACZ,EAAE;IACD,WAAW,EAAE,MAAM,CAAC;IACpB,oDAAoD;IACpD,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACtC,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,cAAc,CAAC;IACvB,OAAO,CAAC,EAAE,SAAS,GAAG,SAAS,CAAC;CACjC,+BAyBA;AAyhBD,wBAAgB,SAAS,CAAC,EACxB,IAAI,EACJ,MAAM,EAAE,CAAC,EACT,QAAQ,EACR,OAAO,GACR,EAAE;IACD,IAAI,EAAE,SAAS,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,OAAO,CAAC;IAClB,OAAO,EAAE,CAAC,UAAU,EAAE,SAAS,CAAC,YAAY,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;CACzE,+BAgDA"}
@@ -0,0 +1,403 @@
1
+ 'use client';
2
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
3
+ /**
4
+ * The record list (draft 202610-a8d3 point 7): toolbar with exact-match search, state chips, saved
5
+ * views and a filter drawer; removable applied-filter chips; a table on wide screens and cards on
6
+ * narrow ones; skeleton rows while loading, two empty states, pagination and a "More" menu.
7
+ */
8
+ import { Button, Checkbox, cn, Dialog, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogTitle, DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuLabel, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuTrigger, Input, Sheet, SheetContent, SheetDescription, SheetHeader, SheetTitle, } from '@haneinfo/frontend-shell';
9
+ import { ArrowDown, ArrowUp, ArrowUpDown, ChevronDown, ChevronLeft, ChevronRight, FileDown, FileSpreadsheet, FileUp, Inbox, MoreHorizontal, Plus, Search, SearchX, SlidersHorizontal, Trash2, X, } from 'lucide-react';
10
+ import NextLink from 'next/link';
11
+ import { useId, useMemo, useRef, useState } from 'react';
12
+ import { call, ErrorMessage, useTask } from './action-client.js';
13
+ import { FilterEditor, labelOf, prepareFilter } from './filter-editor.js';
14
+ import { formatDateTime, formatFieldValue, formatNumber, fromZonedInput } from './format.js';
15
+ import { JobStatus } from './import-client.js';
16
+ import { queryWithTagsFallback, TagPicker } from './instance-management-client.js';
17
+ import { blankDraftData, composeFilter, conditionCount, defaultColumns, emptyGroup, personFieldOf, queryIdentity, searchFieldsOf, splitFilter, } from './list-query.js';
18
+ import { dateRange, listHref } from './query.js';
19
+ import { Chip, DateTimeText, EmptyState, ErrorState, fillText, NativeSelect, Skeleton, StateBadge, Tag, ToneDot, touch, } from './ui.js';
20
+ const LIMITS = [10, 25, 50, 100, 200, 500];
21
+ const inaccessible = (error) => error &&
22
+ ['unauthorized', 'forbidden', 'notFound', 'FORBIDDEN', 'INSTANCE_NOT_FOUND'].includes(error.key);
23
+ export function ListClient(props) {
24
+ const { fields, initial, initialQuery, initialTagsAvailable = true, machineCode, basePath, labels: t, action, locale = 'zh-TW', timeZone = 'Asia/Taipei', states = [], formFields = [], showCreate = false, LinkComponent = NextLink, } = props;
25
+ const task = useTask();
26
+ const searchId = useId();
27
+ // The numbered data field repeats $number, so the search box names it only once.
28
+ const searchFields = useMemo(() => searchFieldsOf(fields).filter((field) => !formFields.some((form) => form.numbered && (form.id ?? form.key) === field.dataKey)), [fields, formFields]);
29
+ const columnsDefault = useMemo(() => defaultColumns(fields, props.personField), [fields, props.personField]);
30
+ const person = personFieldOf(fields, props.personField);
31
+ const [query, setQuery] = useState(initialQuery);
32
+ const [result, setResult] = useState(initial);
33
+ const [tagsAvailable, setTagsAvailable] = useState(initialTagsAvailable);
34
+ const [views, setViews] = useState(props.views);
35
+ const parts = splitFilter(query.filter, searchFields);
36
+ const [searchText, setSearchText] = useState(parts.search);
37
+ const [drawer, setDrawer] = useState(false);
38
+ const [saveOpen, setSaveOpen] = useState(false);
39
+ const [job, setJob] = useState();
40
+ const [announcement, setAnnouncement] = useState('');
41
+ const knownStates = useMemo(() => {
42
+ const map = new Map(states.map((state) => [state.key, state]));
43
+ for (const item of result.items)
44
+ if (!map.has(item.state) && item.stateLabel)
45
+ map.set(item.state, {
46
+ key: item.state,
47
+ label: item.stateLabel,
48
+ tone: item.stateTone ?? 'neutral',
49
+ });
50
+ return map;
51
+ }, [states, result.items]);
52
+ if (inaccessible(task.error))
53
+ return (_jsx(ErrorState, { title: task.error?.key === 'unauthorized' ? t.signInTitle : t.forbiddenTitle, description: t[task.error?.key ?? 'requestFailed'] }));
54
+ const apply = (next, message = t.listUpdated) => task.run(async () => {
55
+ const prepared = {
56
+ ...next,
57
+ columns: next.columns ?? columnsDefault,
58
+ filter: next.filter ? prepareFilter(next.filter, fields) : undefined,
59
+ };
60
+ if (!prepared.filter)
61
+ delete prepared.filter;
62
+ const response = await queryWithTagsFallback(action, machineCode, prepared);
63
+ const applied = { ...response, query: { ...response.query, columns: next.columns } };
64
+ if (!applied.query.columns)
65
+ delete applied.query.columns;
66
+ if (!applied.available)
67
+ setTagsAvailable(false);
68
+ setResult(applied.result);
69
+ setQuery(applied.query);
70
+ setSearchText(splitFilter(applied.query.filter, searchFields).search);
71
+ setAnnouncement(`${message} ${fillText(t.resultCount, { count: formatNumber(applied.result.total, locale) })}`);
72
+ try {
73
+ window.history.replaceState(window.history.state, '', listHref(basePath, applied.query));
74
+ }
75
+ catch {
76
+ /* URL sync is a convenience only. */
77
+ }
78
+ });
79
+ const withParts = (change, base = query) => {
80
+ const filter = composeFilter({ ...splitFilter(base.filter, searchFields), ...change }, searchFields);
81
+ const { filter: _old, ...rest } = base;
82
+ return { ...rest, ...(filter ? { filter } : {}), offset: 0 };
83
+ };
84
+ const columns = (query.columns ?? columnsDefault).filter((id) => id !== '$number');
85
+ const visibleColumns = result.columns.filter((id) => id !== '$number');
86
+ const limit = result.limit || query.limit || 50;
87
+ const page = Math.floor(result.offset / limit) + 1;
88
+ const pages = Math.max(1, Math.ceil(result.total / limit));
89
+ const archived = query.archived ?? 'EXCLUDE';
90
+ const filtered = !!query.filter || !!query.tags?.length || archived !== 'EXCLUDE';
91
+ const currentView = views.find((view) => queryIdentity(view.query) === queryIdentity(query));
92
+ const fieldById = (id) => fields.find((field) => field.id === id);
93
+ const formFieldOf = (id) => {
94
+ const key = fieldById(id)?.dataKey;
95
+ return key ? formFields.find((field) => (field.id ?? field.key) === key) : undefined;
96
+ };
97
+ const stateOf = (item) => {
98
+ const known = knownStates.get(item.state);
99
+ return {
100
+ label: item.stateLabel ?? known?.label ?? item.state,
101
+ tone: item.stateTone ?? known?.tone,
102
+ routing: known?.type === 'CHOICE',
103
+ };
104
+ };
105
+ const cell = (item, id) => {
106
+ if (id === '$state') {
107
+ const state = stateOf(item);
108
+ return _jsx(StateBadge, { label: state.label, tone: state.tone, routing: state.routing });
109
+ }
110
+ if (id === '$submitterId')
111
+ return item.submitterName ?? (item.submitterId ? t.unknownPerson : '—');
112
+ if (id === '$createdAt') {
113
+ const text = formatDateTime(item.createdAt, { locale, timeZone });
114
+ return text ? (_jsx(DateTimeText, { iso: new Date(item.createdAt).toISOString(), text: text, full: formatDateTime(item.createdAt, { locale, timeZone, full: true }) ?? text })) : ('—');
115
+ }
116
+ const field = fieldById(id);
117
+ const display = formatFieldValue(formFieldOf(id) ?? { type: field?.type ?? 'text' }, item.values[id], { locale, timeZone });
118
+ if (display.kind === 'empty')
119
+ return _jsx("span", { className: "text-muted-foreground", children: "\u2014" });
120
+ if (display.kind === 'date' || display.kind === 'datetime')
121
+ return _jsx(DateTimeText, { iso: display.iso, text: display.text, full: display.full });
122
+ return (_jsx("span", { className: "line-clamp-2 [overflow-wrap:anywhere]", title: display.text, children: display.text }));
123
+ };
124
+ const title = (item) => item.number ?? t.untitledDraft;
125
+ const href = (item) => `${basePath}/${encodeURIComponent(item.id)}`;
126
+ const tags = (item) => item.tags?.length ? (_jsxs("span", { className: "flex flex-wrap gap-1", children: [item.tags.slice(0, 2).map((tag) => (_jsx(Tag, { children: tag }, tag))), item.tags.length > 2 && (_jsx("span", { className: "text-muted-foreground text-xs leading-5", title: item.tags.slice(2).join('、'), children: fillText(t.moreTags, { count: item.tags.length - 2 }) }))] })) : null;
127
+ const sortOf = (id) => query.sort?.find((entry) => entry.fieldId === id)?.direction;
128
+ const toggleSort = (id) => {
129
+ const current = query.sort?.[0]?.fieldId === id ? query.sort[0].direction : undefined;
130
+ const sort = current === 'asc'
131
+ ? [{ fieldId: id, direction: 'desc' }]
132
+ : current === 'desc'
133
+ ? []
134
+ : [{ fieldId: id, direction: 'asc' }];
135
+ void apply({ ...query, sort, offset: 0 });
136
+ };
137
+ const toggleState = (key) => void apply(withParts({
138
+ states: parts.states.includes(key)
139
+ ? parts.states.filter((state) => state !== key)
140
+ : [...parts.states, key],
141
+ }));
142
+ const exportAs = (format) => void task.run(async () => {
143
+ setJob(await call(action, { kind: 'export', machineCode, query, format }));
144
+ setAnnouncement(t.exportStarted);
145
+ });
146
+ const chips = [];
147
+ if (parts.search)
148
+ chips.push({
149
+ key: 'search',
150
+ label: fillText(t.chipSearch, { value: parts.search }),
151
+ remove: () => void apply(withParts({ search: '' })),
152
+ });
153
+ if (parts.mine)
154
+ chips.push({
155
+ key: 'mine',
156
+ label: t.chipMine,
157
+ remove: () => void apply(withParts({ mine: false })),
158
+ });
159
+ for (const key of parts.states)
160
+ chips.push({
161
+ key: `state:${key}`,
162
+ label: fillText(t.chipState, { value: knownStates.get(key)?.label ?? t.unknownState }),
163
+ remove: () => toggleState(key),
164
+ });
165
+ for (const tag of query.tags ?? [])
166
+ chips.push({
167
+ key: `tag:${tag}`,
168
+ label: fillText(t.chipTag, { value: tag }),
169
+ remove: () => {
170
+ const rest = (query.tags ?? []).filter((value) => value !== tag);
171
+ void apply({ ...query, tags: rest.length ? rest : undefined, offset: 0 });
172
+ },
173
+ });
174
+ if (archived !== 'EXCLUDE')
175
+ chips.push({
176
+ key: 'archived',
177
+ label: t[archived],
178
+ remove: () => void apply({ ...query, archived: 'EXCLUDE', offset: 0 }),
179
+ });
180
+ if (parts.advanced.expressions.length)
181
+ chips.push({
182
+ key: 'advanced',
183
+ label: fillText(t.chipConditions, { count: conditionCount(parts.advanced) }),
184
+ remove: () => void apply(withParts({ advanced: emptyGroup() })),
185
+ });
186
+ const drawerCount = (parts.advanced.expressions.length ? 1 : 0) +
187
+ (query.tags?.length ? 1 : 0) +
188
+ (archived !== 'EXCLUDE' ? 1 : 0);
189
+ const clearAll = () => {
190
+ const { filter: _f, tags: _t, tagMatch: _m, ...rest } = query;
191
+ setSearchText('');
192
+ void apply({ ...rest, archived: 'EXCLUDE', offset: 0 });
193
+ };
194
+ const searchPlaceholder = fillText(t.searchPlaceholder, {
195
+ fields: searchFields
196
+ .map((field) => labelOf(field, t))
197
+ .join(locale.startsWith('en') ? ', ' : '、'),
198
+ });
199
+ const columnLabel = (id) => labelOf(fieldById(id) ?? { id, label: id }, t);
200
+ const from = result.total ? result.offset + 1 : 0;
201
+ const to = Math.min(result.offset + result.items.length, result.total);
202
+ return (
203
+ // Table or cards follow the width of the list itself (sidebar open or not), not the viewport.
204
+ _jsxs("div", { className: "@container flex min-w-0 flex-col gap-4", "aria-busy": task.pending, children: [_jsxs("div", { className: "flex flex-wrap items-center justify-between gap-3", children: [_jsx("h1", { className: "font-bold text-2xl tracking-tight", children: t.listTitle }), _jsxs("div", { className: "flex flex-wrap items-center gap-2", children: [showCreate && (_jsx(CreateRecordButton, { initialData: blankDraftData(formFields), machineCode: machineCode, basePath: basePath, labels: t, action: action })), _jsxs(DropdownMenu, { children: [_jsx(DropdownMenuTrigger, { asChild: true, children: _jsxs(Button, { variant: "outline", className: touch, children: [_jsx(MoreHorizontal, { "aria-hidden": "true", "data-icon": "inline-start" }), t.moreMenu, _jsx(ChevronDown, { "aria-hidden": "true", "data-icon": "inline-end" })] }) }), _jsxs(DropdownMenuContent, { align: "end", className: "w-56", children: [_jsx(DropdownMenuItem, { asChild: true, className: "max-md:min-h-11", children: _jsxs(LinkComponent, { href: `${basePath}/import`, children: [_jsx(FileUp, { "aria-hidden": "true" }), t.importTitle] }) }), _jsxs(DropdownMenuItem, { className: "max-md:min-h-11", disabled: task.pending, onSelect: () => exportAs('csv'), children: [_jsx(FileDown, { "aria-hidden": "true" }), t.exportCsv] }), _jsxs(DropdownMenuItem, { className: "max-md:min-h-11", disabled: task.pending, onSelect: () => exportAs('xlsx'), children: [_jsx(FileSpreadsheet, { "aria-hidden": "true" }), t.exportXlsx] }), _jsx(DropdownMenuSeparator, {}), _jsx(DropdownMenuItem, { asChild: true, className: "max-md:min-h-11", children: _jsxs(LinkComponent, { href: `${basePath}/deleted`, children: [_jsx(Trash2, { "aria-hidden": "true" }), t.deletedLink] }) })] })] })] })] }), _jsxs("div", { className: "flex min-w-0 flex-col gap-3", children: [_jsxs("div", { className: "flex min-w-0 flex-col gap-2 @3xl:flex-row @3xl:items-center", children: [searchFields.length > 0 && (
205
+ // biome-ignore lint/a11y/useSemanticElements: <search> is not yet a React DOM element.
206
+ _jsxs("form", { role: "search", className: "relative min-w-0 flex-1", onSubmit: (event) => {
207
+ event.preventDefault();
208
+ void apply(withParts({ search: searchText }));
209
+ }, children: [_jsx("label", { htmlFor: searchId, className: "sr-only", children: t.searchLabel }), _jsx(Search, { "aria-hidden": "true", className: "pointer-events-none absolute top-1/2 left-3 size-4 -translate-y-1/2 text-muted-foreground" }), _jsx(Input, { id: searchId, type: "search", value: searchText, placeholder: searchPlaceholder, maxLength: 200, enterKeyHint: "search", onChange: (event) => setSearchText(event.target.value), className: "h-9 pl-9 max-md:h-11 sm:pr-20" }), _jsx(Button, { type: "submit", size: "sm", variant: "secondary", disabled: task.pending, className: "absolute top-1/2 right-1 -translate-y-1/2 max-sm:hidden max-md:h-9", children: t.searchSubmit })] })), _jsxs("div", { className: "flex shrink-0 flex-wrap items-center gap-2", children: [_jsxs(DropdownMenu, { children: [_jsx(DropdownMenuTrigger, { asChild: true, children: _jsxs(Button, { variant: "outline", className: cn('max-w-64 justify-between', touch), children: [_jsx("span", { className: "truncate", children: fillText(t.currentView, { name: currentView?.name ?? t.defaultView }) }), _jsx(ChevronDown, { "aria-hidden": "true", "data-icon": "inline-end" })] }) }), _jsxs(DropdownMenuContent, { align: "end", className: "w-64", children: [_jsx(DropdownMenuLabel, { children: t.savedViews }), _jsxs(DropdownMenuRadioGroup, { value: currentView?.id ?? (filtered ? '' : '__default'), onValueChange: (value) => {
210
+ if (value === '__default') {
211
+ setSearchText('');
212
+ void apply({ columns: query.columns, limit: query.limit, offset: 0 });
213
+ return;
214
+ }
215
+ const view = views.find((candidate) => candidate.id === value);
216
+ if (view)
217
+ void apply({ ...view.query, offset: 0 });
218
+ }, children: [_jsx(DropdownMenuRadioItem, { value: "__default", className: "max-md:min-h-11", children: t.defaultView }), views.map((view) => (_jsx(DropdownMenuRadioItem, { value: view.id, className: "max-md:min-h-11", children: _jsx("span", { className: "min-w-0 truncate", children: view.name }) }, view.id)))] }), _jsx(DropdownMenuSeparator, {}), _jsxs(DropdownMenuItem, { className: "max-md:min-h-11", onSelect: () => setSaveOpen(true), children: [_jsx(Plus, { "aria-hidden": "true" }), t.saveCurrentView] })] })] }), _jsxs(Button, { variant: "outline", className: touch, onClick: () => setDrawer(true), "aria-haspopup": "dialog", children: [_jsx(SlidersHorizontal, { "aria-hidden": "true", "data-icon": "inline-start" }), t.filters, drawerCount > 0 && (_jsx("span", { className: "ml-1 rounded-full bg-primary px-1.5 text-primary-foreground text-xs tabular-nums leading-5", children: drawerCount }))] })] })] }), knownStates.size > 0 && (_jsxs("fieldset", { className: "min-w-0", children: [_jsx("legend", { className: "sr-only", children: t.stateFilterLabel }), _jsx("div", { className: "-mx-1 flex gap-2 overflow-x-auto px-1 pb-1 [scrollbar-width:thin] sm:flex-wrap sm:overflow-visible", children: [...knownStates.values()].map((state) => {
219
+ const pressed = parts.states.includes(state.key);
220
+ return (_jsxs("button", { type: "button", "aria-pressed": pressed, disabled: task.pending, onClick: () => toggleState(state.key), className: cn('inline-flex h-8 shrink-0 items-center gap-2 rounded-full border px-3 text-sm outline-none focus-visible:ring-3 focus-visible:ring-ring/50 disabled:opacity-50 max-md:h-11 motion-safe:transition-colors', pressed
221
+ ? 'border-foreground bg-foreground text-background'
222
+ : 'bg-background text-foreground hover:bg-muted'), children: [_jsx(ToneDot, { tone: state.tone }), state.label] }, state.key));
223
+ }) })] })), chips.length > 0 && (_jsxs("div", { className: "flex flex-wrap items-center gap-2", children: [chips.map((chip) => (_jsx(Chip, { removeLabel: fillText(t.removeFilter, { name: chip.label }), disabled: task.pending, onRemove: chip.remove, children: chip.label }, chip.key))), _jsx(Button, { variant: "link", size: "sm", className: touch, disabled: task.pending, onClick: clearAll, children: t.clearAll })] }))] }), _jsx("p", { role: "status", "aria-live": "polite", className: "sr-only", children: task.pending ? t.loading : announcement }), _jsx(ErrorMessage, { error: task.error, labels: t }), job && (_jsx(JobStatus, { initial: job, labels: t, action: action, downloadBase: `${basePath}/download` }, job.id)), _jsxs("section", { "aria-label": t.listTitle, className: "flex min-w-0 flex-col gap-3", children: [_jsx("div", { className: "flex flex-wrap items-center justify-between gap-2 text-muted-foreground text-sm", children: _jsx("span", { children: result.total
224
+ ? fillText(t.resultRange, {
225
+ from: formatNumber(from, locale),
226
+ to: formatNumber(to, locale),
227
+ total: formatNumber(result.total, locale),
228
+ })
229
+ : fillText(t.resultCount, { count: 0 }) }) }), !task.pending && !result.items.length ? (filtered ? (_jsx(EmptyState, { icon: _jsx(SearchX, {}), title: t.noMatchTitle, description: t.noMatchHint, action: _jsx(Button, { variant: "outline", className: touch, onClick: clearAll, children: t.clearAll }) })) : (_jsx(EmptyState, { icon: _jsx(Inbox, {}), title: t.emptyTitle, description: t.emptyHint, action: showCreate ? (_jsx(CreateRecordButton, { initialData: blankDraftData(formFields), machineCode: machineCode, basePath: basePath, labels: t, action: action })) : undefined }))) : (_jsxs(_Fragment, { children: [_jsx("div", { className: "hidden max-h-[calc(100dvh-14rem)] min-h-64 overflow-auto rounded-xl ring-1 ring-foreground/10 @3xl:block", children: _jsxs("table", { className: "w-full border-separate border-spacing-0 text-left text-sm", children: [_jsx("thead", { children: _jsxs("tr", { children: [['$number', ...visibleColumns].map((id) => {
230
+ const field = fieldById(id);
231
+ const direction = sortOf(id);
232
+ return (_jsx("th", { scope: "col", "aria-sort": direction === 'asc'
233
+ ? 'ascending'
234
+ : direction === 'desc'
235
+ ? 'descending'
236
+ : undefined, className: "sticky top-0 z-10 whitespace-nowrap border-b bg-muted px-3 py-2 font-medium", children: field?.sortable ? (_jsxs("button", { type: "button", className: "inline-flex items-center gap-1 rounded-sm outline-none hover:text-foreground focus-visible:ring-3 focus-visible:ring-ring/50", disabled: task.pending, onClick: () => toggleSort(id), "aria-label": fillText(t.sortBy, { field: columnLabel(id) }), children: [columnLabel(id), direction === 'asc' ? (_jsx(ArrowUp, { "aria-hidden": "true", className: "size-3.5" })) : direction === 'desc' ? (_jsx(ArrowDown, { "aria-hidden": "true", className: "size-3.5" })) : (_jsx(ArrowUpDown, { "aria-hidden": "true", className: "size-3.5 text-muted-foreground" }))] })) : (columnLabel(id)) }, id));
237
+ }), tagsAvailable && (_jsx("th", { scope: "col", className: "sticky top-0 z-10 border-b bg-muted px-3 py-2 font-medium", children: t.tags }))] }) }), _jsx("tbody", { children: task.pending
238
+ ? Array.from({ length: Math.min(8, Math.max(3, result.items.length)) }, (_, row) => (
239
+ // biome-ignore lint/suspicious/noArrayIndexKey: placeholder rows.
240
+ _jsx("tr", { children: ['$number', ...visibleColumns, ...(tagsAvailable ? ['tags'] : [])].map((id) => (_jsx("td", { className: "border-b px-3 py-3", children: _jsx(Skeleton, { className: "h-4 w-24" }) }, id))) }, row)))
241
+ : result.items.map((item) => (_jsxs("tr", { className: "group cursor-pointer align-middle outline-ring hover:bg-muted/50 has-[a:focus-visible]:bg-muted/50 has-[a:focus-visible]:outline-2", onClick: (event) => {
242
+ if (event.target.closest('a,button'))
243
+ return;
244
+ event.currentTarget.querySelector('a')?.click();
245
+ }, children: [_jsx("td", { className: "whitespace-nowrap border-b px-3 py-3", children: _jsxs("span", { className: "flex flex-col items-start gap-1", children: [_jsx(LinkComponent, { href: href(item), className: cn('font-medium underline-offset-4 outline-none hover:underline focus-visible:underline', !item.number && 'text-muted-foreground'), children: title(item) }), item.archived && _jsx(Tag, { children: t.archived })] }) }), visibleColumns.map((id) => (_jsx("td", { className: cn('max-w-72 border-b px-3 py-3', (id === '$createdAt' || id === '$state') && 'whitespace-nowrap'), children: cell(item, id) }, id))), tagsAvailable && (_jsx("td", { className: "min-w-40 max-w-56 border-b px-3 py-3", children: tags(item) }))] }, item.id))) })] }) }), _jsx("ul", { className: "flex flex-col gap-2 @3xl:hidden", children: task.pending
246
+ ? [0, 1, 2].map((row) => (_jsxs("li", { className: "flex flex-col gap-2 rounded-xl p-4 ring-1 ring-foreground/10", children: [_jsx(Skeleton, { className: "h-4 w-32" }), _jsx(Skeleton, { className: "h-4 w-48" })] }, row)))
247
+ : result.items.map((item) => {
248
+ const state = stateOf(item);
249
+ const secondary = visibleColumns.filter((id) => id !== '$state').slice(0, 3);
250
+ return (_jsx("li", { children: _jsxs(LinkComponent, { href: href(item), className: "flex min-w-0 flex-col gap-2 rounded-xl bg-card p-4 text-card-foreground outline-none ring-1 ring-foreground/10 hover:bg-muted/40 focus-visible:ring-3 focus-visible:ring-ring/50", children: [_jsxs("span", { className: "flex min-w-0 flex-wrap items-start justify-between gap-2", children: [_jsx("span", { className: cn('min-w-0 font-medium [overflow-wrap:anywhere]', !item.number && 'text-muted-foreground'), children: title(item) }), _jsx(StateBadge, { label: state.label, tone: state.tone, routing: state.routing, className: "shrink-0" })] }), secondary.length > 0 && (_jsx("span", { className: "flex min-w-0 flex-col gap-1 text-sm", children: secondary.map((id) => (_jsxs("span", { className: "flex min-w-0 gap-2", children: [_jsx("span", { className: "shrink-0 text-muted-foreground", children: columnLabel(id) }), _jsx("span", { className: "min-w-0", children: cell(item, id) })] }, id))) })), (!!item.archived || !!item.tags?.length) && (_jsxs("span", { className: "flex flex-wrap items-center gap-1", children: [item.archived && _jsx(Tag, { children: t.archived }), tags(item)] }))] }) }, item.id));
251
+ }) })] })), result.total > 0 && (_jsxs("nav", { "aria-label": t.pagination, className: "flex flex-wrap items-center justify-between gap-3", children: [_jsxs("div", { className: "flex items-center gap-2 text-sm", children: [_jsx("span", { "aria-hidden": "true", className: "text-muted-foreground", children: t.limit }), _jsx(NativeSelect, { "aria-label": t.limit, value: String(limit), disabled: task.pending, onChange: (event) => void apply({ ...query, limit: Number(event.target.value), offset: 0 }), children: [...new Set([...LIMITS, limit])]
252
+ .sort((a, b) => a - b)
253
+ .map((value) => (_jsx("option", { value: value, children: value }, value))) })] }), _jsxs("div", { className: "flex items-center gap-2", children: [_jsxs(Button, { variant: "outline", className: touch, disabled: task.pending || page <= 1, onClick: () => void apply({ ...query, offset: Math.max(0, result.offset - limit) }), children: [_jsx(ChevronLeft, { "aria-hidden": "true", "data-icon": "inline-start" }), t.previous] }), _jsx("span", { className: "text-sm tabular-nums", children: fillText(t.pageOf, { page, pages }) }), _jsxs(Button, { variant: "outline", className: touch, disabled: task.pending || page >= pages, onClick: () => void apply({ ...query, offset: result.offset + limit }), children: [t.next, _jsx(ChevronRight, { "aria-hidden": "true", "data-icon": "inline-end" })] })] })] }))] }), _jsx(FilterDrawer, { open: drawer, onOpenChange: setDrawer, fields: fields, query: query, parts: parts, columnsDefault: columnsDefault, columns: columns, tagsAvailable: tagsAvailable, views: views, labels: t, action: action, timeZone: timeZone, pending: task.pending, person: person, onApply: (next) => {
254
+ setDrawer(false);
255
+ void apply(next);
256
+ }, onShare: (view, visibility, roles) => void task.run(async () => {
257
+ await call(action, { kind: 'shareView', id: view.id, visibility, roles });
258
+ setViews(views.map((v) => (v.id === view.id ? { ...v, visibility, roles } : v)));
259
+ setAnnouncement(t.sharingSaved);
260
+ }), searchFields: searchFields }), _jsx(SaveViewDialog, { open: saveOpen, onOpenChange: setSaveOpen, labels: t, pending: task.pending, onSave: (name) => void task.run(async () => {
261
+ const view = await call(action, {
262
+ kind: 'saveView',
263
+ machineCode,
264
+ name,
265
+ query,
266
+ });
267
+ setViews([...views, view]);
268
+ setSaveOpen(false);
269
+ setAnnouncement(t.viewSaved);
270
+ }) })] }));
271
+ }
272
+ /** Starts a draft and opens it; the backend decides whether the caller may create one. */
273
+ export function CreateRecordButton({ machineCode, basePath, labels: t, action, variant = 'default', initialData, }) {
274
+ const task = useTask();
275
+ return (_jsxs("span", { className: "inline-flex flex-col items-start gap-1", children: [_jsxs(Button, { variant: variant, className: touch, disabled: task.pending, onClick: () => void task.run(async () => {
276
+ const created = await call(action, {
277
+ kind: 'create',
278
+ machineCode,
279
+ ...(initialData && Object.keys(initialData).length ? { data: initialData } : {}),
280
+ });
281
+ window.location.assign(`${basePath}/${encodeURIComponent(created.id)}`);
282
+ }), children: [_jsx(Plus, { "aria-hidden": "true", "data-icon": "inline-start" }), task.pending ? t.creating : t.createRecord] }), _jsx(ErrorMessage, { error: task.error, labels: t })] }));
283
+ }
284
+ function SaveViewDialog({ open, onOpenChange, labels: t, pending, onSave, }) {
285
+ const [name, setName] = useState('');
286
+ const id = useId();
287
+ return (_jsx(Dialog, { open: open, onOpenChange: onOpenChange, children: _jsx(DialogContent, { closeLabel: t.dialogClose, className: "sm:max-w-md", children: _jsxs("form", { className: "grid gap-4", onSubmit: (event) => {
288
+ event.preventDefault();
289
+ if (name.trim())
290
+ onSave(name.trim());
291
+ }, children: [_jsxs(DialogHeader, { children: [_jsx(DialogTitle, { children: t.saveView }), _jsx(DialogDescription, { children: t.groupViewsHint })] }), _jsxs("label", { htmlFor: id, className: "grid gap-1.5 text-sm", children: [_jsx("span", { className: "font-medium", children: t.viewName }), _jsx(Input, { id: id, required: true, maxLength: 200, value: name, onChange: (e) => setName(e.target.value), className: "h-9 max-md:h-11" })] }), _jsxs(DialogFooter, { children: [_jsx(Button, { type: "button", variant: "outline", className: touch, onClick: () => onOpenChange(false), children: t.cancel }), _jsx(Button, { type: "submit", className: touch, disabled: pending || !name.trim(), children: t.saveView })] })] }) }) }));
292
+ }
293
+ function DrawerGroup({ title, hint, children, }) {
294
+ const id = useId();
295
+ return (_jsxs("section", { "aria-labelledby": id, className: "flex min-w-0 flex-col gap-3 border-b px-4 py-4 last:border-b-0 sm:px-5", children: [_jsxs("div", { className: "flex flex-col gap-0.5", children: [_jsx("h3", { id: id, className: "font-medium text-sm", children: title }), hint && _jsx("p", { className: "text-muted-foreground text-xs", children: hint })] }), children] }));
296
+ }
297
+ function FilterDrawer({ open, onOpenChange, fields, query, parts, columnsDefault, columns, tagsAvailable, views, labels: t, action, timeZone, pending, person, searchFields, onApply, onShare, }) {
298
+ return (_jsx(Sheet, { open: open, onOpenChange: onOpenChange, children: _jsx(SheetContent, { side: "right", showCloseButton: false, className: "gap-0 p-0 data-[side=right]:w-full data-[side=right]:sm:max-w-lg", children: open && (_jsx(DrawerBody, { fields,
299
+ query,
300
+ parts,
301
+ columnsDefault,
302
+ columns,
303
+ tagsAvailable,
304
+ views,
305
+ labels: t,
306
+ action,
307
+ timeZone,
308
+ pending,
309
+ person,
310
+ searchFields,
311
+ onApply,
312
+ onShare, onClose: () => onOpenChange(false) }, JSON.stringify(query))) }) }));
313
+ }
314
+ function DrawerBody({ fields, query, parts, columnsDefault, columns: initialColumns, tagsAvailable, views, labels: t, action, timeZone, pending, searchFields, onApply, onShare, onClose, }) {
315
+ const [archived, setArchived] = useState(query.archived ?? 'EXCLUDE');
316
+ const [tags, setTags] = useState(query.tags ?? []);
317
+ const [tagMatch, setTagMatch] = useState(query.tagMatch ?? 'ALL');
318
+ const [advanced, setAdvanced] = useState(parts.advanced);
319
+ const [sort, setSort] = useState(query.sort ?? []);
320
+ const [columns, setColumns] = useState(initialColumns);
321
+ const [error, setError] = useState();
322
+ const dateFields = fields.filter((f) => f.filterable && ['date', 'datetime'].includes(f.type));
323
+ const [rangeField, setRangeField] = useState(dateFields[0]?.id ?? '');
324
+ const [from, setFrom] = useState('');
325
+ const [to, setTo] = useState('');
326
+ const rangeId = useId();
327
+ const sortable = fields.filter((f) => f.sortable);
328
+ const filterable = fields.filter((f) => f.filterable);
329
+ const rangeType = fields.find((f) => f.id === rangeField)?.type === 'datetime' ? 'datetime-local' : 'date';
330
+ const toggleable = fields.filter((field) => field.id !== '$number');
331
+ const submit = () => {
332
+ if (!columns.length) {
333
+ setError({ key: 'invalidInput' });
334
+ return;
335
+ }
336
+ try {
337
+ const group = advanced;
338
+ prepareFilter(group, fields);
339
+ const filter = composeFilter({ ...parts, advanced: group }, searchFields);
340
+ const { filter: _f, tags: _t, tagMatch: _m, ...rest } = query;
341
+ const sameColumns = columns.length === columnsDefault.filter((id) => id !== '$number').length &&
342
+ columns.every((id) => columnsDefault.includes(id));
343
+ onApply({
344
+ ...rest,
345
+ ...(filter ? { filter } : {}),
346
+ archived,
347
+ sort,
348
+ columns: sameColumns ? undefined : ['$number', ...columns],
349
+ offset: 0,
350
+ ...(tagsAvailable && tags.length ? { tags, tagMatch } : {}),
351
+ });
352
+ }
353
+ catch {
354
+ setError({ key: 'invalidInput' });
355
+ }
356
+ };
357
+ return (_jsxs("form", { className: "flex h-full min-h-0 flex-col", onSubmit: (event) => {
358
+ event.preventDefault();
359
+ submit();
360
+ }, children: [_jsxs(SheetHeader, { className: "flex-row items-start justify-between gap-2 border-b px-4 py-4 sm:px-5", children: [_jsxs("div", { className: "flex min-w-0 flex-col gap-0.5", children: [_jsx(SheetTitle, { children: t.filtersTitle }), _jsx(SheetDescription, { children: t.filtersDescription })] }), _jsx(Button, { type: "button", variant: "ghost", size: "icon-sm", className: touch, "aria-label": t.filterDrawerClose, onClick: onClose, children: _jsx(X, { "aria-hidden": "true" }) })] }), _jsxs("div", { className: "min-h-0 flex-1 overflow-y-auto", children: [_jsx(DrawerGroup, { title: t.groupArchive, hint: t.groupArchiveHint, children: _jsx("div", { role: "radiogroup", "aria-label": t.groupArchive, className: "grid gap-1 sm:grid-cols-3", children: ['EXCLUDE', 'INCLUDE', 'ONLY'].map((value) => (_jsxs("label", { className: "flex cursor-pointer items-center gap-2 rounded-lg border px-3 py-2 text-sm has-[:checked]:border-foreground has-[:focus-visible]:ring-3 has-[:focus-visible]:ring-ring/50 max-md:min-h-11", children: [_jsx("input", { type: "radio", name: "archived", value: value, checked: archived === value, onChange: () => setArchived(value), className: "size-4 accent-primary" }), t[value]] }, value))) }) }), tagsAvailable && (_jsxs(DrawerGroup, { title: t.groupTags, hint: t.groupTagsHint, children: [_jsx(TagPicker, { hideLabel: true, label: t.tagFilter, labels: t, action: action, disabled: pending || tags.length >= 10, onPick: (added) => setTags([...new Set([...tags, ...added])].slice(0, 10)) }), tags.length > 0 && (_jsx("div", { className: "flex flex-wrap gap-2", children: tags.map((tag) => (_jsx(Chip, { removeLabel: fillText(t.removeFilter, { name: tag }), onRemove: () => setTags(tags.filter((v) => v !== tag)), children: tag }, tag))) })), tags.length > 1 && (_jsxs(NativeSelect, { "aria-label": t.tagFilter, value: tagMatch, onChange: (e) => setTagMatch(e.target.value), children: [_jsx("option", { value: "ALL", children: t.tagAll }), _jsx("option", { value: "ANY", children: t.tagAny })] }))] })), _jsx(DrawerGroup, { title: t.groupConditions, hint: t.groupConditionsHint, children: _jsx(FilterEditor, { condition: advanced, fields: filterable, labels: t, timeZone: timeZone, onChange: setAdvanced }) }), dateFields.length > 0 && (_jsxs(DrawerGroup, { title: t.groupDates, hint: t.groupDatesHint, children: [_jsxs("div", { className: "grid gap-2 sm:grid-cols-2", children: [_jsxs("div", { className: "grid gap-1 text-sm sm:col-span-2", children: [_jsx("label", { htmlFor: `${rangeId}-field`, className: "text-muted-foreground", children: t.field }), _jsx(NativeSelect, { id: `${rangeId}-field`, value: rangeField, onChange: (e) => {
361
+ setRangeField(e.target.value);
362
+ setFrom('');
363
+ setTo('');
364
+ }, children: dateFields.map((f) => (_jsx("option", { value: f.id, children: labelOf(f, t) }, f.id))) })] }), _jsxs("label", { htmlFor: `${rangeId}-from`, className: "grid gap-1 text-sm", children: [_jsx("span", { className: "text-muted-foreground", children: t.rangeFrom }), _jsx(Input, { id: `${rangeId}-from`, type: rangeType, value: from, className: "h-9 max-md:h-11", onChange: (e) => setFrom(e.target.value) })] }), _jsxs("label", { htmlFor: `${rangeId}-to`, className: "grid gap-1 text-sm", children: [_jsx("span", { className: "text-muted-foreground", children: t.rangeTo }), _jsx(Input, { id: `${rangeId}-to`, type: rangeType, value: to, min: from, className: "h-9 max-md:h-11", onChange: (e) => setTo(e.target.value) })] })] }), _jsxs(Button, { type: "button", variant: "outline", size: "sm", className: cn('self-start', touch), disabled: !from || !to || from > to, onClick: () => {
365
+ const field = fields.find((f) => f.id === rangeField);
366
+ if (!field)
367
+ return;
368
+ const zoned = (value) => rangeType === 'datetime-local'
369
+ ? (fromZonedInput(value, timeZone) ?? value)
370
+ : value;
371
+ const range = dateRange(field, zoned(from), zoned(to));
372
+ const group = advanced;
373
+ setAdvanced({
374
+ ...group,
375
+ operator: group.expressions.length ? group.operator : 'AND',
376
+ expressions: [...group.expressions, range],
377
+ });
378
+ setFrom('');
379
+ setTo('');
380
+ }, children: [_jsx(Plus, { "aria-hidden": "true", "data-icon": "inline-start" }), t.addRange] })] })), _jsxs(DrawerGroup, { title: t.groupSort, hint: t.groupSortHint, children: [sort.map((entry, index) => (_jsxs("div", { className: "grid gap-2 sm:grid-cols-[minmax(0,1fr)_minmax(0,10rem)_auto]", children: [_jsx(NativeSelect, { "aria-label": `${t.sort}: ${t.field}`, value: entry.fieldId, onChange: (e) => setSort(sort.map((s, i) => (i === index ? { ...s, fieldId: e.target.value } : s))), children: sortable.map((f) => (_jsx("option", { value: f.id, disabled: f.id !== entry.fieldId && sort.some((s) => s.fieldId === f.id), children: labelOf(f, t) }, f.id))) }), _jsxs(NativeSelect, { "aria-label": t.sort, value: entry.direction, onChange: (e) => setSort(sort.map((s, i) => i === index ? { ...s, direction: e.target.value } : s)), children: [_jsx("option", { value: "asc", children: t.asc }), _jsx("option", { value: "desc", children: t.desc })] }), _jsx(Button, { type: "button", variant: "ghost", size: "icon-sm", className: touch, "aria-label": t.remove, onClick: () => setSort(sort.filter((_, i) => i !== index)), children: _jsx(Trash2, { "aria-hidden": "true" }) })] }, entry.fieldId))), _jsxs(Button, { type: "button", variant: "outline", size: "sm", className: cn('self-start', touch), disabled: sort.length >= 8 || !sortable.some((f) => !sort.some((s) => s.fieldId === f.id)), onClick: () => {
381
+ const f = sortable.find((f) => !sort.some((s) => s.fieldId === f.id));
382
+ if (f)
383
+ setSort([...sort, { fieldId: f.id, direction: 'asc' }]);
384
+ }, children: [_jsx(Plus, { "aria-hidden": "true", "data-icon": "inline-start" }), t.addSort] })] }), _jsxs(DrawerGroup, { title: t.groupColumns, hint: t.groupColumnsHint, children: [_jsx("div", { className: "grid gap-1 sm:grid-cols-2", children: toggleable.map((f) => (_jsxs("span", { className: "flex items-center gap-2 rounded-md px-1 py-1.5 text-sm max-md:min-h-11", children: [_jsx(Checkbox, { id: `${rangeId}-column-${f.id}`, checked: columns.includes(f.id), onCheckedChange: (checked) => setColumns(checked === true ? [...columns, f.id] : columns.filter((c) => c !== f.id)) }), _jsx("label", { htmlFor: `${rangeId}-column-${f.id}`, className: "cursor-pointer", children: labelOf(f, t) })] }, f.id))) }), !columns.length && _jsx("p", { className: "text-destructive text-sm", children: t.columnsRequired })] }), views.some((view) => view.canShare) && (_jsx(DrawerGroup, { title: t.groupViews, hint: t.groupViewsHint, children: _jsx("ul", { className: "flex flex-col gap-3", children: views
385
+ .filter((view) => view.canShare)
386
+ .map((view) => (_jsxs("li", { className: "flex flex-col gap-2 rounded-lg border p-3", children: [_jsx("span", { className: "font-medium text-sm [overflow-wrap:anywhere]", children: view.name }), _jsx(ShareForm, { view: view, labels: t, disabled: pending, onShare: (visibility, roles) => onShare(view, visibility, roles) })] }, view.id))) }) }))] }), _jsxs("div", { className: "flex flex-col gap-2 border-t bg-muted/30 px-4 py-3 sm:px-5", children: [_jsx(ErrorMessage, { error: error, labels: t }), _jsxs("div", { className: "flex flex-wrap justify-end gap-2", children: [_jsx(Button, { type: "button", variant: "ghost", className: touch, onClick: () => {
387
+ setArchived('EXCLUDE');
388
+ setTags([]);
389
+ setAdvanced(emptyGroup());
390
+ setSort([]);
391
+ setColumns(columnsDefault.filter((id) => id !== '$number'));
392
+ }, children: t.resetFilters }), _jsx(Button, { type: "submit", className: touch, disabled: pending || !columns.length, children: t.apply })] })] })] }));
393
+ }
394
+ export function ShareForm({ view, labels: t, disabled, onShare, }) {
395
+ const [visibility, setVisibility] = useState(view.visibility);
396
+ const [roles, setRoles] = useState(view.roles.join(', '));
397
+ const ref = useRef(null);
398
+ return (_jsxs("div", { ref: ref, className: "flex flex-wrap items-end gap-2", children: [_jsx(NativeSelect, { "aria-label": t.share, disabled: disabled, value: visibility, onChange: (e) => setVisibility(e.target.value), className: "w-full sm:w-auto", children: ['PRIVATE', 'ALL', 'ROLES'].map((value) => (_jsx("option", { value: value, children: t[value] }, value))) }), visibility === 'ROLES' && (_jsx(Input, { "aria-label": t.roles, placeholder: t.roles, value: roles, onChange: (e) => setRoles(e.target.value), className: "h-9 min-w-0 flex-1 max-md:h-11" })), _jsx(Button, { type: "button", variant: "outline", size: "sm", className: touch, disabled: disabled || (visibility === 'ROLES' && !roles.trim()), onClick: () => onShare(visibility, roles
399
+ .split(',')
400
+ .map((r) => r.trim())
401
+ .filter(Boolean)), children: t.share })] }));
402
+ }
403
+ //# sourceMappingURL=list-client.js.map