@happyvertical/smrt-projects 0.43.10 → 0.44.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 (50) hide show
  1. package/dist/index.js +1 -1
  2. package/dist/manifest.json +1 -1
  3. package/dist/smrt-knowledge.json +3 -3
  4. package/dist/svelte/AssistanceLauncher.svelte +5 -0
  5. package/dist/svelte/AssistanceLauncher.svelte.d.ts +5 -0
  6. package/dist/svelte/AssistanceLauncher.svelte.d.ts.map +1 -1
  7. package/dist/svelte/DeliveryStatus.svelte +1 -0
  8. package/dist/svelte/DeliveryStatus.svelte.d.ts +1 -0
  9. package/dist/svelte/DeliveryStatus.svelte.d.ts.map +1 -1
  10. package/dist/svelte/DevelopmentBoard.svelte +3 -0
  11. package/dist/svelte/DevelopmentBoard.svelte.d.ts +3 -0
  12. package/dist/svelte/DevelopmentBoard.svelte.d.ts.map +1 -1
  13. package/dist/svelte/DevelopmentRequestDetail.svelte +2 -0
  14. package/dist/svelte/DevelopmentRequestDetail.svelte.d.ts +2 -0
  15. package/dist/svelte/DevelopmentRequestDetail.svelte.d.ts.map +1 -1
  16. package/dist/svelte/PreviewApprovalPanel.svelte +3 -0
  17. package/dist/svelte/PreviewApprovalPanel.svelte.d.ts +3 -0
  18. package/dist/svelte/PreviewApprovalPanel.svelte.d.ts.map +1 -1
  19. package/dist/svelte/ServiceEvidenceList.svelte +1 -0
  20. package/dist/svelte/ServiceEvidenceList.svelte.d.ts +1 -0
  21. package/dist/svelte/ServiceEvidenceList.svelte.d.ts.map +1 -1
  22. package/dist/svelte/components/ApprovalActions.svelte +9 -0
  23. package/dist/svelte/components/ApprovalActions.svelte.d.ts +9 -0
  24. package/dist/svelte/components/ApprovalActions.svelte.d.ts.map +1 -1
  25. package/dist/svelte/components/BulkActions.svelte +7 -0
  26. package/dist/svelte/components/BulkActions.svelte.d.ts +7 -0
  27. package/dist/svelte/components/BulkActions.svelte.d.ts.map +1 -1
  28. package/dist/svelte/components/DevelopmentRequestForm.svelte +2 -0
  29. package/dist/svelte/components/DevelopmentRequestForm.svelte.d.ts +2 -0
  30. package/dist/svelte/components/DevelopmentRequestForm.svelte.d.ts.map +1 -1
  31. package/dist/svelte/components/DevelopmentRequestList.svelte +3 -0
  32. package/dist/svelte/components/DevelopmentRequestList.svelte.d.ts +3 -0
  33. package/dist/svelte/components/DevelopmentRequestList.svelte.d.ts.map +1 -1
  34. package/dist/svelte/components/DurationDisplay.svelte +16 -3
  35. package/dist/svelte/components/DurationDisplay.svelte.d.ts +9 -0
  36. package/dist/svelte/components/DurationDisplay.svelte.d.ts.map +1 -1
  37. package/dist/svelte/components/RejectDialog.svelte +10 -0
  38. package/dist/svelte/components/RejectDialog.svelte.d.ts +10 -0
  39. package/dist/svelte/components/RejectDialog.svelte.d.ts.map +1 -1
  40. package/dist/svelte/components/TimeEntryCard.svelte +8 -0
  41. package/dist/svelte/components/TimeEntryCard.svelte.d.ts +8 -0
  42. package/dist/svelte/components/TimeEntryCard.svelte.d.ts.map +1 -1
  43. package/dist/svelte/components/TimeEntryList.svelte +7 -0
  44. package/dist/svelte/components/TimeEntryList.svelte.d.ts +7 -0
  45. package/dist/svelte/components/TimeEntryList.svelte.d.ts.map +1 -1
  46. package/dist/svelte/components/TimeSummary.svelte +11 -0
  47. package/dist/svelte/components/TimeSummary.svelte.d.ts +11 -0
  48. package/dist/svelte/components/TimeSummary.svelte.d.ts.map +1 -1
  49. package/dist/svelte/components/__tests__/DurationDisplay.test.js +34 -0
  50. package/package.json +12 -11
@@ -2,7 +2,7 @@
2
2
  "version": "1.0.0",
3
3
  "timestamp": 0,
4
4
  "packageName": "@happyvertical/smrt-projects",
5
- "packageVersion": "0.43.10",
5
+ "packageVersion": "0.44.0",
6
6
  "objects": {
7
7
  "@happyvertical/smrt-projects:DevelopmentRequestHistoryCollection": {
8
8
  "name": "developmentrequesthistorycollection",
@@ -3,12 +3,12 @@
3
3
  "sensitiveFieldsExcluded": true,
4
4
  "generatedAt": "1970-01-01T00:00:00.000Z",
5
5
  "packageName": "@happyvertical/smrt-projects",
6
- "packageVersion": "0.43.10",
6
+ "packageVersion": "0.44.0",
7
7
  "sourceManifestPath": "dist/manifest.json",
8
8
  "agentDocPath": "AGENTS.md",
9
9
  "sourceHashes": {
10
- "manifest": "46d57ca327ca95e151c8e8e3039cee8112dbb4b4ba8ea0fcefa581d1719d4bce",
11
- "packageJson": "9227c354cd6619e0d455bb242a3665c42cae85db249bfbe03bc75be9f83c7a8f",
10
+ "manifest": "200cd1670e27b31c7d6b8f00db9ca7dce59b140e1a3efab95c828f7971305fb0",
11
+ "packageJson": "06d160a7312ca0b30af4e99dce9ce0857a9a7d47d325fcb99f1f220e28de820e",
12
12
  "agents": "1642532c0c1bf16fb07b0184326f76f9fb3b142cb111e39f8e763c2d08be40d3"
13
13
  },
14
14
  "exports": [
@@ -9,10 +9,15 @@ import type {
9
9
  import { M } from './i18n.js';
10
10
 
11
11
  export interface Props {
12
+ /** Identifier of the user submitting the assistance request. */
12
13
  requesterId: string;
14
+ /** Additional context data about the application. */
13
15
  applicationContext?: Record<string, unknown>;
16
+ /** Evidence supporting the assistance request. */
14
17
  evidence?: DevelopmentRequestEvidence[];
18
+ /** Blocks interaction with the form controls. */
15
19
  disabled?: boolean;
20
+ /** Invoked when the user submits the form. */
16
21
  onsubmit?: (value: ManagedAssistanceRequestInput) => void | Promise<void>;
17
22
  }
18
23
 
@@ -1,9 +1,14 @@
1
1
  import type { DevelopmentRequestEvidence, ManagedAssistanceRequestInput } from '../types.js';
2
2
  export interface Props {
3
+ /** Identifier of the user submitting the assistance request. */
3
4
  requesterId: string;
5
+ /** Additional context data about the application. */
4
6
  applicationContext?: Record<string, unknown>;
7
+ /** Evidence supporting the assistance request. */
5
8
  evidence?: DevelopmentRequestEvidence[];
9
+ /** Blocks interaction with the form controls. */
6
10
  disabled?: boolean;
11
+ /** Invoked when the user submits the form. */
7
12
  onsubmit?: (value: ManagedAssistanceRequestInput) => void | Promise<void>;
8
13
  }
9
14
  declare const AssistanceLauncher: import("svelte").Component<Props, {}, "">;
@@ -1 +1 @@
1
- {"version":3,"file":"AssistanceLauncher.svelte.d.ts","sourceRoot":"","sources":["../../src/svelte/AssistanceLauncher.svelte.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EACV,0BAA0B,EAC1B,6BAA6B,EAC9B,MAAM,aAAa,CAAC;AAIrB,MAAM,WAAW,KAAK;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,kBAAkB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC7C,QAAQ,CAAC,EAAE,0BAA0B,EAAE,CAAC;IACxC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,6BAA6B,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC3E;AA6DD,QAAA,MAAM,kBAAkB,2CAAwC,CAAC;AACjE,KAAK,kBAAkB,GAAG,UAAU,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAChE,eAAe,kBAAkB,CAAC"}
1
+ {"version":3,"file":"AssistanceLauncher.svelte.d.ts","sourceRoot":"","sources":["../../src/svelte/AssistanceLauncher.svelte.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EACV,0BAA0B,EAC1B,6BAA6B,EAC9B,MAAM,aAAa,CAAC;AAIrB,MAAM,WAAW,KAAK;IACpB,gEAAgE;IAChE,WAAW,EAAE,MAAM,CAAC;IACpB,qDAAqD;IACrD,kBAAkB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC7C,kDAAkD;IAClD,QAAQ,CAAC,EAAE,0BAA0B,EAAE,CAAC;IACxC,iDAAiD;IACjD,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,8CAA8C;IAC9C,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,6BAA6B,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC3E;AA6DD,QAAA,MAAM,kBAAkB,2CAAwC,CAAC;AACjE,KAAK,kBAAkB,GAAG,UAAU,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAChE,eAAe,kBAAkB,CAAC"}
@@ -4,6 +4,7 @@ import type { DeliveryEventView } from './delivery-types.js';
4
4
  import { M } from './i18n.js';
5
5
 
6
6
  export interface Props {
7
+ /** Timeline of delivery status events. */
7
8
  events?: DeliveryEventView[];
8
9
  }
9
10
 
@@ -1,5 +1,6 @@
1
1
  import type { DeliveryEventView } from './delivery-types.js';
2
2
  export interface Props {
3
+ /** Timeline of delivery status events. */
3
4
  events?: DeliveryEventView[];
4
5
  }
5
6
  declare const DeliveryStatus: import("svelte").Component<Props, {}, "">;
@@ -1 +1 @@
1
- {"version":3,"file":"DeliveryStatus.svelte.d.ts","sourceRoot":"","sources":["../../src/svelte/DeliveryStatus.svelte.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAI7D,MAAM,WAAW,KAAK;IACpB,MAAM,CAAC,EAAE,iBAAiB,EAAE,CAAC;CAC9B;AAmCD,QAAA,MAAM,cAAc,2CAAwC,CAAC;AAC7D,KAAK,cAAc,GAAG,UAAU,CAAC,OAAO,cAAc,CAAC,CAAC;AACxD,eAAe,cAAc,CAAC"}
1
+ {"version":3,"file":"DeliveryStatus.svelte.d.ts","sourceRoot":"","sources":["../../src/svelte/DeliveryStatus.svelte.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAI7D,MAAM,WAAW,KAAK;IACpB,0CAA0C;IAC1C,MAAM,CAAC,EAAE,iBAAiB,EAAE,CAAC;CAC9B;AAmCD,QAAA,MAAM,cAAc,2CAAwC,CAAC;AAC7D,KAAK,cAAc,GAAG,UAAU,CAAC,OAAO,cAAc,CAAC,CAAC;AACxD,eAAe,cAAc,CAAC"}
@@ -14,8 +14,11 @@ interface DevelopmentBoardCard extends BoardCard {
14
14
  }
15
15
 
16
16
  export interface Props {
17
+ /** Development requests to display as board cards. */
17
18
  requests?: DevelopmentRequestView[];
19
+ /** Column identifiers corresponding to request statuses. */
18
20
  columns?: string[];
21
+ /** Invoked when the user selects a request card. */
19
22
  onselect?: (request: DevelopmentRequestView) => void;
20
23
  }
21
24
 
@@ -1,7 +1,10 @@
1
1
  import type { DevelopmentRequestView } from './delivery-types.js';
2
2
  export interface Props {
3
+ /** Development requests to display as board cards. */
3
4
  requests?: DevelopmentRequestView[];
5
+ /** Column identifiers corresponding to request statuses. */
4
6
  columns?: string[];
7
+ /** Invoked when the user selects a request card. */
5
8
  onselect?: (request: DevelopmentRequestView) => void;
6
9
  }
7
10
  declare const DevelopmentBoard: import("svelte").Component<Props, {}, "">;
@@ -1 +1 @@
1
- {"version":3,"file":"DevelopmentBoard.svelte.d.ts","sourceRoot":"","sources":["../../src/svelte/DevelopmentBoard.svelte.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AASlE,MAAM,WAAW,KAAK;IACpB,QAAQ,CAAC,EAAE,sBAAsB,EAAE,CAAC;IACpC,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,QAAQ,CAAC,EAAE,CAAC,OAAO,EAAE,sBAAsB,KAAK,IAAI,CAAC;CACtD;AAsDD,QAAA,MAAM,gBAAgB,2CAAwC,CAAC;AAC/D,KAAK,gBAAgB,GAAG,UAAU,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAC5D,eAAe,gBAAgB,CAAC"}
1
+ {"version":3,"file":"DevelopmentBoard.svelte.d.ts","sourceRoot":"","sources":["../../src/svelte/DevelopmentBoard.svelte.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AASlE,MAAM,WAAW,KAAK;IACpB,sDAAsD;IACtD,QAAQ,CAAC,EAAE,sBAAsB,EAAE,CAAC;IACpC,4DAA4D;IAC5D,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,oDAAoD;IACpD,QAAQ,CAAC,EAAE,CAAC,OAAO,EAAE,sBAAsB,KAAK,IAAI,CAAC;CACtD;AAsDD,QAAA,MAAM,gBAAgB,2CAAwC,CAAC;AAC/D,KAAK,gBAAgB,GAAG,UAAU,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAC5D,eAAe,gBAAgB,CAAC"}
@@ -8,7 +8,9 @@ import type {
8
8
  import { M } from './i18n.js';
9
9
 
10
10
  export interface Props {
11
+ /** Development request to display. */
11
12
  request: DevelopmentRequestView;
13
+ /** Timeline of delivery status events. */
12
14
  events?: DeliveryEventView[];
13
15
  }
14
16
 
@@ -1,6 +1,8 @@
1
1
  import type { DeliveryEventView, DevelopmentRequestView } from './delivery-types.js';
2
2
  export interface Props {
3
+ /** Development request to display. */
3
4
  request: DevelopmentRequestView;
5
+ /** Timeline of delivery status events. */
4
6
  events?: DeliveryEventView[];
5
7
  }
6
8
  declare const DevelopmentRequestDetail: import("svelte").Component<Props, {}, "">;
@@ -1 +1 @@
1
- {"version":3,"file":"DevelopmentRequestDetail.svelte.d.ts","sourceRoot":"","sources":["../../src/svelte/DevelopmentRequestDetail.svelte.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EACV,iBAAiB,EACjB,sBAAsB,EACvB,MAAM,qBAAqB,CAAC;AAI7B,MAAM,WAAW,KAAK;IACpB,OAAO,EAAE,sBAAsB,CAAC;IAChC,MAAM,CAAC,EAAE,iBAAiB,EAAE,CAAC;CAC9B;AAiDD,QAAA,MAAM,wBAAwB,2CAAwC,CAAC;AACvE,KAAK,wBAAwB,GAAG,UAAU,CAAC,OAAO,wBAAwB,CAAC,CAAC;AAC5E,eAAe,wBAAwB,CAAC"}
1
+ {"version":3,"file":"DevelopmentRequestDetail.svelte.d.ts","sourceRoot":"","sources":["../../src/svelte/DevelopmentRequestDetail.svelte.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EACV,iBAAiB,EACjB,sBAAsB,EACvB,MAAM,qBAAqB,CAAC;AAI7B,MAAM,WAAW,KAAK;IACpB,sCAAsC;IACtC,OAAO,EAAE,sBAAsB,CAAC;IAChC,0CAA0C;IAC1C,MAAM,CAAC,EAAE,iBAAiB,EAAE,CAAC;CAC9B;AAiDD,QAAA,MAAM,wBAAwB,2CAAwC,CAAC;AACvE,KAAK,wBAAwB,GAAG,UAAU,CAAC,OAAO,wBAAwB,CAAC,CAAC;AAC5E,eAAe,wBAAwB,CAAC"}
@@ -5,8 +5,11 @@ import type { PreviewApprovalView } from './delivery-types.js';
5
5
  import { M } from './i18n.js';
6
6
 
7
7
  export interface Props {
8
+ /** Preview item awaiting approval decision. */
8
9
  preview: PreviewApprovalView;
10
+ /** Disables approval buttons during processing. */
9
11
  busy?: boolean;
12
+ /** Invoked when the user approves or rejects the preview. */
10
13
  ondecide?: (approved: boolean) => void | Promise<void>;
11
14
  }
12
15
 
@@ -1,7 +1,10 @@
1
1
  import type { PreviewApprovalView } from './delivery-types.js';
2
2
  export interface Props {
3
+ /** Preview item awaiting approval decision. */
3
4
  preview: PreviewApprovalView;
5
+ /** Disables approval buttons during processing. */
4
6
  busy?: boolean;
7
+ /** Invoked when the user approves or rejects the preview. */
5
8
  ondecide?: (approved: boolean) => void | Promise<void>;
6
9
  }
7
10
  declare const PreviewApprovalPanel: import("svelte").Component<Props, {}, "">;
@@ -1 +1 @@
1
- {"version":3,"file":"PreviewApprovalPanel.svelte.d.ts","sourceRoot":"","sources":["../../src/svelte/PreviewApprovalPanel.svelte.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAI/D,MAAM,WAAW,KAAK;IACpB,OAAO,EAAE,mBAAmB,CAAC;IAC7B,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,QAAQ,CAAC,EAAE,CAAC,QAAQ,EAAE,OAAO,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACxD;AAsCD,QAAA,MAAM,oBAAoB,2CAAwC,CAAC;AACnE,KAAK,oBAAoB,GAAG,UAAU,CAAC,OAAO,oBAAoB,CAAC,CAAC;AACpE,eAAe,oBAAoB,CAAC"}
1
+ {"version":3,"file":"PreviewApprovalPanel.svelte.d.ts","sourceRoot":"","sources":["../../src/svelte/PreviewApprovalPanel.svelte.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAI/D,MAAM,WAAW,KAAK;IACpB,+CAA+C;IAC/C,OAAO,EAAE,mBAAmB,CAAC;IAC7B,mDAAmD;IACnD,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,6DAA6D;IAC7D,QAAQ,CAAC,EAAE,CAAC,QAAQ,EAAE,OAAO,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACxD;AAsCD,QAAA,MAAM,oBAAoB,2CAAwC,CAAC;AACnE,KAAK,oBAAoB,GAAG,UAAU,CAAC,OAAO,oBAAoB,CAAC,CAAC;AACpE,eAAe,oBAAoB,CAAC"}
@@ -4,6 +4,7 @@ import type { ServiceEvidenceView } from './delivery-types.js';
4
4
  import { M } from './i18n.js';
5
5
 
6
6
  export interface Props {
7
+ /** Service evidence entries showing participant charge and compensation details. */
7
8
  entries?: ServiceEvidenceView[];
8
9
  }
9
10
 
@@ -1,5 +1,6 @@
1
1
  import type { ServiceEvidenceView } from './delivery-types.js';
2
2
  export interface Props {
3
+ /** Service evidence entries showing participant charge and compensation details. */
3
4
  entries?: ServiceEvidenceView[];
4
5
  }
5
6
  declare const ServiceEvidenceList: import("svelte").Component<Props, {}, "">;
@@ -1 +1 @@
1
- {"version":3,"file":"ServiceEvidenceList.svelte.d.ts","sourceRoot":"","sources":["../../src/svelte/ServiceEvidenceList.svelte.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAI/D,MAAM,WAAW,KAAK;IACpB,OAAO,CAAC,EAAE,mBAAmB,EAAE,CAAC;CACjC;AAkED,QAAA,MAAM,mBAAmB,2CAAwC,CAAC;AAClE,KAAK,mBAAmB,GAAG,UAAU,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAClE,eAAe,mBAAmB,CAAC"}
1
+ {"version":3,"file":"ServiceEvidenceList.svelte.d.ts","sourceRoot":"","sources":["../../src/svelte/ServiceEvidenceList.svelte.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAI/D,MAAM,WAAW,KAAK;IACpB,oFAAoF;IACpF,OAAO,CAAC,EAAE,mBAAmB,EAAE,CAAC;CACjC;AAkED,QAAA,MAAM,mBAAmB,2CAAwC,CAAC;AAClE,KAAK,mBAAmB,GAAG,UAAU,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAClE,eAAe,mBAAmB,CAAC"}
@@ -13,14 +13,23 @@ const { t } = useI18n();
13
13
 
14
14
  /** Props for ApprovalActions component */
15
15
  export interface Props {
16
+ /** Current approval workflow status. */
16
17
  status: ApprovalStatus;
18
+ /** Invoked when submitting a draft for approval. */
17
19
  onsubmit?: () => void;
20
+ /** Invoked when approving a submitted item. */
18
21
  onapprove?: () => void;
22
+ /** Invoked when rejecting a submitted item. */
19
23
  onreject?: () => void;
24
+ /** Invoked when editing a draft or rejected item. */
20
25
  onedit?: () => void;
26
+ /** Invoked when deleting a draft item. */
21
27
  ondelete?: () => void;
28
+ /** Disables buttons and shows loading indicators during processing. */
22
29
  loading?: boolean;
30
+ /** Blocks all button interactions. */
23
31
  disabled?: boolean;
32
+ /** Arranges buttons horizontally or vertically. */
24
33
  layout?: 'horizontal' | 'vertical';
25
34
  }
26
35
 
@@ -1,14 +1,23 @@
1
1
  import type { ApprovalStatus } from './utils.js';
2
2
  /** Props for ApprovalActions component */
3
3
  export interface Props {
4
+ /** Current approval workflow status. */
4
5
  status: ApprovalStatus;
6
+ /** Invoked when submitting a draft for approval. */
5
7
  onsubmit?: () => void;
8
+ /** Invoked when approving a submitted item. */
6
9
  onapprove?: () => void;
10
+ /** Invoked when rejecting a submitted item. */
7
11
  onreject?: () => void;
12
+ /** Invoked when editing a draft or rejected item. */
8
13
  onedit?: () => void;
14
+ /** Invoked when deleting a draft item. */
9
15
  ondelete?: () => void;
16
+ /** Disables buttons and shows loading indicators during processing. */
10
17
  loading?: boolean;
18
+ /** Blocks all button interactions. */
11
19
  disabled?: boolean;
20
+ /** Arranges buttons horizontally or vertically. */
12
21
  layout?: 'horizontal' | 'vertical';
13
22
  }
14
23
  declare const ApprovalActions: import("svelte").Component<Props, {}, "">;
@@ -1 +1 @@
1
- {"version":3,"file":"ApprovalActions.svelte.d.ts","sourceRoot":"","sources":["../../../src/svelte/components/ApprovalActions.svelte.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAGjD,0CAA0C;AAC1C,MAAM,WAAW,KAAK;IACpB,MAAM,EAAE,cAAc,CAAC;IACvB,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;IACvB,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,MAAM,CAAC,EAAE,YAAY,GAAG,UAAU,CAAC;CACpC;AAkFD,QAAA,MAAM,eAAe,2CAAwC,CAAC;AAC9D,KAAK,eAAe,GAAG,UAAU,CAAC,OAAO,eAAe,CAAC,CAAC;AAC1D,eAAe,eAAe,CAAC"}
1
+ {"version":3,"file":"ApprovalActions.svelte.d.ts","sourceRoot":"","sources":["../../../src/svelte/components/ApprovalActions.svelte.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAGjD,0CAA0C;AAC1C,MAAM,WAAW,KAAK;IACpB,wCAAwC;IACxC,MAAM,EAAE,cAAc,CAAC;IACvB,oDAAoD;IACpD,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB,+CAA+C;IAC/C,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;IACvB,+CAA+C;IAC/C,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB,qDAAqD;IACrD,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB,0CAA0C;IAC1C,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB,uEAAuE;IACvE,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,sCAAsC;IACtC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,mDAAmD;IACnD,MAAM,CAAC,EAAE,YAAY,GAAG,UAAU,CAAC;CACpC;AAkFD,QAAA,MAAM,eAAe,2CAAwC,CAAC;AAC9D,KAAK,eAAe,GAAG,UAAU,CAAC,OAAO,eAAe,CAAC,CAAC;AAC1D,eAAe,eAAe,CAAC"}
@@ -12,12 +12,19 @@ const { t } = useI18n();
12
12
 
13
13
  /** Props for BulkActions component */
14
14
  export interface Props {
15
+ /** Number of selected items. Component is hidden when count is zero. */
15
16
  selectedCount: number;
17
+ /** Invoked when approving all selected items. */
16
18
  onapprove?: () => void;
19
+ /** Invoked when rejecting all selected items. */
17
20
  onreject?: () => void;
21
+ /** Invoked when deleting all selected items. */
18
22
  ondelete?: () => void;
23
+ /** Invoked when exporting selected items. */
19
24
  onexport?: () => void;
25
+ /** Invoked when clearing all selections. */
20
26
  onclear?: () => void;
27
+ /** Disables all action buttons during processing. */
21
28
  loading?: boolean;
22
29
  }
23
30
 
@@ -1,11 +1,18 @@
1
1
  /** Props for BulkActions component */
2
2
  export interface Props {
3
+ /** Number of selected items. Component is hidden when count is zero. */
3
4
  selectedCount: number;
5
+ /** Invoked when approving all selected items. */
4
6
  onapprove?: () => void;
7
+ /** Invoked when rejecting all selected items. */
5
8
  onreject?: () => void;
9
+ /** Invoked when deleting all selected items. */
6
10
  ondelete?: () => void;
11
+ /** Invoked when exporting selected items. */
7
12
  onexport?: () => void;
13
+ /** Invoked when clearing all selections. */
8
14
  onclear?: () => void;
15
+ /** Disables all action buttons during processing. */
9
16
  loading?: boolean;
10
17
  }
11
18
  declare const BulkActions: import("svelte").Component<Props, {}, "">;
@@ -1 +1 @@
1
- {"version":3,"file":"BulkActions.svelte.d.ts","sourceRoot":"","sources":["../../../src/svelte/components/BulkActions.svelte.ts"],"names":[],"mappings":"AAYA,sCAAsC;AACtC,MAAM,WAAW,KAAK;IACpB,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;IACvB,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAoED,QAAA,MAAM,WAAW,2CAAwC,CAAC;AAC1D,KAAK,WAAW,GAAG,UAAU,CAAC,OAAO,WAAW,CAAC,CAAC;AAClD,eAAe,WAAW,CAAC"}
1
+ {"version":3,"file":"BulkActions.svelte.d.ts","sourceRoot":"","sources":["../../../src/svelte/components/BulkActions.svelte.ts"],"names":[],"mappings":"AAYA,sCAAsC;AACtC,MAAM,WAAW,KAAK;IACpB,wEAAwE;IACxE,aAAa,EAAE,MAAM,CAAC;IACtB,iDAAiD;IACjD,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;IACvB,iDAAiD;IACjD,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB,gDAAgD;IAChD,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB,6CAA6C;IAC7C,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB,4CAA4C;IAC5C,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,qDAAqD;IACrD,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAoED,QAAA,MAAM,WAAW,2CAAwC,CAAC;AAC1D,KAAK,WAAW,GAAG,UAAU,CAAC,OAAO,WAAW,CAAC,CAAC;AAClD,eAAe,WAAW,CAAC"}
@@ -11,7 +11,9 @@ export interface DevelopmentRequestSubmission {
11
11
  discussion: string;
12
12
  }
13
13
  export interface Props {
14
+ /** Invoked when the user submits the development request form. */
14
15
  onsubmit: (request: DevelopmentRequestSubmission) => void | Promise<void>;
16
+ /** Blocks all form controls. */
15
17
  disabled?: boolean;
16
18
  }
17
19
  let { onsubmit, disabled = false }: Props = $props();
@@ -10,7 +10,9 @@ export interface DevelopmentRequestSubmission {
10
10
  discussion: string;
11
11
  }
12
12
  export interface Props {
13
+ /** Invoked when the user submits the development request form. */
13
14
  onsubmit: (request: DevelopmentRequestSubmission) => void | Promise<void>;
15
+ /** Blocks all form controls. */
14
16
  disabled?: boolean;
15
17
  }
16
18
  declare const DevelopmentRequestForm: import("svelte").Component<Props, {}, "">;
@@ -1 +1 @@
1
- {"version":3,"file":"DevelopmentRequestForm.svelte.d.ts","sourceRoot":"","sources":["../../../src/svelte/components/DevelopmentRequestForm.svelte.ts"],"names":[],"mappings":"AAOA,MAAM,WAAW,4BAA4B;IAC3C,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,KAAK,CAAC;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACjD,UAAU,EAAE,WAAW,GAAG,WAAW,GAAG,QAAQ,CAAC;IACjD,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;CACpB;AACD,MAAM,WAAW,KAAK;IACpB,QAAQ,EAAE,CAAC,OAAO,EAAE,4BAA4B,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1E,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAyDD,QAAA,MAAM,sBAAsB,2CAAwC,CAAC;AACrE,KAAK,sBAAsB,GAAG,UAAU,CAAC,OAAO,sBAAsB,CAAC,CAAC;AACxE,eAAe,sBAAsB,CAAC"}
1
+ {"version":3,"file":"DevelopmentRequestForm.svelte.d.ts","sourceRoot":"","sources":["../../../src/svelte/components/DevelopmentRequestForm.svelte.ts"],"names":[],"mappings":"AAOA,MAAM,WAAW,4BAA4B;IAC3C,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,KAAK,CAAC;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACjD,UAAU,EAAE,WAAW,GAAG,WAAW,GAAG,QAAQ,CAAC;IACjD,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;CACpB;AACD,MAAM,WAAW,KAAK;IACpB,kEAAkE;IAClE,QAAQ,EAAE,CAAC,OAAO,EAAE,4BAA4B,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1E,gCAAgC;IAChC,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAyDD,QAAA,MAAM,sBAAsB,2CAAwC,CAAC;AACrE,KAAK,sBAAsB,GAAG,UAAU,CAAC,OAAO,sBAAsB,CAAC,CAAC;AACxE,eAAe,sBAAsB,CAAC"}
@@ -21,8 +21,11 @@ export interface DevelopmentRequestListItem {
21
21
  }
22
22
 
23
23
  export interface Props {
24
+ /** Filters requests to show only those from a specific requester. */
24
25
  requesterId?: string;
26
+ /** Development requests to display in the list. */
25
27
  requests: DevelopmentRequestListItem[];
28
+ /** Message shown when no requests match the filter. */
26
29
  emptyMessage?: string;
27
30
  }
28
31
 
@@ -12,8 +12,11 @@ export interface DevelopmentRequestListItem {
12
12
  createdAt?: Date | string;
13
13
  }
14
14
  export interface Props {
15
+ /** Filters requests to show only those from a specific requester. */
15
16
  requesterId?: string;
17
+ /** Development requests to display in the list. */
16
18
  requests: DevelopmentRequestListItem[];
19
+ /** Message shown when no requests match the filter. */
17
20
  emptyMessage?: string;
18
21
  }
19
22
  declare const DevelopmentRequestList: import("svelte").Component<Props, {}, "">;
@@ -1 +1 @@
1
- {"version":3,"file":"DevelopmentRequestList.svelte.d.ts","sourceRoot":"","sources":["../../../src/svelte/components/DevelopmentRequestList.svelte.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,0BAA0B,EAC1B,wBAAwB,EACxB,wBAAwB,EACxB,sBAAsB,EACtB,4BAA4B,EAC7B,MAAM,gBAAgB,CAAC;AAGxB,MAAM,WAAW,0BAA0B;IACzC,EAAE,EAAE,MAAM,CAAC;IACX,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,sBAAsB,CAAC;IAC7B,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,wBAAwB,CAAC;IACjC,UAAU,CAAC,EAAE,4BAA4B,CAAC;IAC1C,MAAM,CAAC,EAAE,wBAAwB,CAAC;IAClC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,0BAA0B,EAAE,CAAC;IACxC,SAAS,CAAC,EAAE,IAAI,GAAG,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,KAAK;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,0BAA0B,EAAE,CAAC;IACvC,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AA2FD,QAAA,MAAM,sBAAsB,2CAAwC,CAAC;AACrE,KAAK,sBAAsB,GAAG,UAAU,CAAC,OAAO,sBAAsB,CAAC,CAAC;AACxE,eAAe,sBAAsB,CAAC"}
1
+ {"version":3,"file":"DevelopmentRequestList.svelte.d.ts","sourceRoot":"","sources":["../../../src/svelte/components/DevelopmentRequestList.svelte.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,0BAA0B,EAC1B,wBAAwB,EACxB,wBAAwB,EACxB,sBAAsB,EACtB,4BAA4B,EAC7B,MAAM,gBAAgB,CAAC;AAGxB,MAAM,WAAW,0BAA0B;IACzC,EAAE,EAAE,MAAM,CAAC;IACX,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,sBAAsB,CAAC;IAC7B,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,wBAAwB,CAAC;IACjC,UAAU,CAAC,EAAE,4BAA4B,CAAC;IAC1C,MAAM,CAAC,EAAE,wBAAwB,CAAC;IAClC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,0BAA0B,EAAE,CAAC;IACxC,SAAS,CAAC,EAAE,IAAI,GAAG,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,KAAK;IACpB,qEAAqE;IACrE,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,mDAAmD;IACnD,QAAQ,EAAE,0BAA0B,EAAE,CAAC;IACvC,uDAAuD;IACvD,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AA2FD,QAAA,MAAM,sBAAsB,2CAAwC,CAAC;AACrE,KAAK,sBAAsB,GAAG,UAAU,CAAC,OAAO,sBAAsB,CAAC,CAAC;AACxE,eAAe,sBAAsB,CAAC"}
@@ -8,9 +8,18 @@ import { formatHoursHHMM } from './utils.js';
8
8
 
9
9
  /** Props for DurationDisplay component */
10
10
  export interface Props {
11
+ /** Duration in hours to display. */
11
12
  hours: number;
13
+ /** Format duration as decimal (8.5) or hours:minutes (8:30). */
12
14
  format?: 'decimal' | 'hhmm';
15
+ /** Sets the font size of the duration display. */
13
16
  size?: 'sm' | 'md' | 'lg';
17
+ /**
18
+ * Renders the `h` unit after a `decimal` value; set `false` for a bare
19
+ * number, such as in a column whose header already names the unit. An
20
+ * `hhmm` value spells its own unit in the `8:30` shape and never appends a
21
+ * separate one, so this prop does not affect that format.
22
+ */
14
23
  showLabel?: boolean;
15
24
  }
16
25
 
@@ -18,19 +27,23 @@ let {
18
27
  hours,
19
28
  format = 'decimal',
20
29
  size = 'md',
21
- showLabel = false,
30
+ showLabel = true,
22
31
  }: Props = $props();
23
32
 
24
33
  // $derived creates a reactive value, not a function - no wrapper or parentheses needed
25
34
  const formattedValue = $derived(
26
35
  format === 'hhmm' ? formatHoursHHMM(hours) : hours.toFixed(1),
27
36
  );
37
+
38
+ // Only the decimal form needs a unit appended: `8:30` already reads as hours
39
+ // and minutes. That makes `h` the one unit `showLabel` has to gate.
40
+ const unit = $derived(format === 'hhmm' ? '' : 'h');
28
41
  </script>
29
42
 
30
43
  <span class="duration" class:sm={size === 'sm'} class:lg={size === 'lg'}>
31
44
  <span class="value">{formattedValue}</span>
32
- {#if showLabel || format === 'decimal'}
33
- <span class="unit">{format === 'hhmm' ? '' : 'h'}</span>
45
+ {#if showLabel && unit}
46
+ <span class="unit">{unit}</span>
34
47
  {/if}
35
48
  </span>
36
49
 
@@ -1,8 +1,17 @@
1
1
  /** Props for DurationDisplay component */
2
2
  export interface Props {
3
+ /** Duration in hours to display. */
3
4
  hours: number;
5
+ /** Format duration as decimal (8.5) or hours:minutes (8:30). */
4
6
  format?: 'decimal' | 'hhmm';
7
+ /** Sets the font size of the duration display. */
5
8
  size?: 'sm' | 'md' | 'lg';
9
+ /**
10
+ * Renders the `h` unit after a `decimal` value; set `false` for a bare
11
+ * number, such as in a column whose header already names the unit. An
12
+ * `hhmm` value spells its own unit in the `8:30` shape and never appends a
13
+ * separate one, so this prop does not affect that format.
14
+ */
6
15
  showLabel?: boolean;
7
16
  }
8
17
  declare const DurationDisplay: import("svelte").Component<Props, {}, "">;
@@ -1 +1 @@
1
- {"version":3,"file":"DurationDisplay.svelte.d.ts","sourceRoot":"","sources":["../../../src/svelte/components/DurationDisplay.svelte.ts"],"names":[],"mappings":"AAUA,0CAA0C;AAC1C,MAAM,WAAW,KAAK;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,SAAS,GAAG,MAAM,CAAC;IAC5B,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;IAC1B,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AA+BD,QAAA,MAAM,eAAe,2CAAwC,CAAC;AAC9D,KAAK,eAAe,GAAG,UAAU,CAAC,OAAO,eAAe,CAAC,CAAC;AAC1D,eAAe,eAAe,CAAC"}
1
+ {"version":3,"file":"DurationDisplay.svelte.d.ts","sourceRoot":"","sources":["../../../src/svelte/components/DurationDisplay.svelte.ts"],"names":[],"mappings":"AAUA,0CAA0C;AAC1C,MAAM,WAAW,KAAK;IACpB,oCAAoC;IACpC,KAAK,EAAE,MAAM,CAAC;IACd,gEAAgE;IAChE,MAAM,CAAC,EAAE,SAAS,GAAG,MAAM,CAAC;IAC5B,kDAAkD;IAClD,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;IAC1B;;;;;OAKG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAmCD,QAAA,MAAM,eAAe,2CAAwC,CAAC;AAC9D,KAAK,eAAe,GAAG,UAAU,CAAC,OAAO,eAAe,CAAC,CAAC;AAC1D,eAAe,eAAe,CAAC"}
@@ -12,15 +12,25 @@ const { t } = useI18n();
12
12
 
13
13
  /** Props for RejectDialog component */
14
14
  export interface Props {
15
+ /** Controls whether the dialog is displayed. */
15
16
  open: boolean;
17
+ /** Dialog heading text. */
16
18
  title?: string;
19
+ /** Instructions displayed above the reason input. */
17
20
  message?: string;
21
+ /** Label for the confirm button. */
18
22
  confirmLabel?: string;
23
+ /** Label for the cancel button. */
19
24
  cancelLabel?: string;
25
+ /** Placeholder text for the reason textarea. */
20
26
  placeholder?: string;
27
+ /** Requires the user to enter a reason before confirming. */
21
28
  required?: boolean;
29
+ /** Disables the dialog controls during processing. */
22
30
  loading?: boolean;
31
+ /** Invoked when the user confirms the rejection with a reason. */
23
32
  onconfirm: (reason: string) => void;
33
+ /** Invoked when the user cancels or closes the dialog. */
24
34
  oncancel: () => void;
25
35
  }
26
36
 
@@ -1,14 +1,24 @@
1
1
  /** Props for RejectDialog component */
2
2
  export interface Props {
3
+ /** Controls whether the dialog is displayed. */
3
4
  open: boolean;
5
+ /** Dialog heading text. */
4
6
  title?: string;
7
+ /** Instructions displayed above the reason input. */
5
8
  message?: string;
9
+ /** Label for the confirm button. */
6
10
  confirmLabel?: string;
11
+ /** Label for the cancel button. */
7
12
  cancelLabel?: string;
13
+ /** Placeholder text for the reason textarea. */
8
14
  placeholder?: string;
15
+ /** Requires the user to enter a reason before confirming. */
9
16
  required?: boolean;
17
+ /** Disables the dialog controls during processing. */
10
18
  loading?: boolean;
19
+ /** Invoked when the user confirms the rejection with a reason. */
11
20
  onconfirm: (reason: string) => void;
21
+ /** Invoked when the user cancels or closes the dialog. */
12
22
  oncancel: () => void;
13
23
  }
14
24
  declare const RejectDialog: import("svelte").Component<Props, {}, "">;
@@ -1 +1 @@
1
- {"version":3,"file":"RejectDialog.svelte.d.ts","sourceRoot":"","sources":["../../../src/svelte/components/RejectDialog.svelte.ts"],"names":[],"mappings":"AAYA,uCAAuC;AACvC,MAAM,WAAW,KAAK;IACpB,IAAI,EAAE,OAAO,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,SAAS,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IACpC,QAAQ,EAAE,MAAM,IAAI,CAAC;CACtB;AA4FD,QAAA,MAAM,YAAY,2CAAwC,CAAC;AAC3D,KAAK,YAAY,GAAG,UAAU,CAAC,OAAO,YAAY,CAAC,CAAC;AACpD,eAAe,YAAY,CAAC"}
1
+ {"version":3,"file":"RejectDialog.svelte.d.ts","sourceRoot":"","sources":["../../../src/svelte/components/RejectDialog.svelte.ts"],"names":[],"mappings":"AAYA,uCAAuC;AACvC,MAAM,WAAW,KAAK;IACpB,gDAAgD;IAChD,IAAI,EAAE,OAAO,CAAC;IACd,2BAA2B;IAC3B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,qDAAqD;IACrD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,oCAAoC;IACpC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,mCAAmC;IACnC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,gDAAgD;IAChD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,6DAA6D;IAC7D,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,sDAAsD;IACtD,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,kEAAkE;IAClE,SAAS,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IACpC,0DAA0D;IAC1D,QAAQ,EAAE,MAAM,IAAI,CAAC;CACtB;AA4FD,QAAA,MAAM,YAAY,2CAAwC,CAAC;AAC3D,KAAK,YAAY,GAAG,UAAU,CAAC,OAAO,YAAY,CAAC,CAAC;AACpD,eAAe,YAAY,CAAC"}
@@ -18,13 +18,21 @@ import {
18
18
 
19
19
  /** Props for TimeEntryCard component */
20
20
  export interface Props {
21
+ /** Time entry data to display. */
21
22
  entry: TimeEntry;
23
+ /** URL to navigate to when the card is clicked. */
22
24
  href?: string;
25
+ /** Invoked when the card content is clicked. */
23
26
  onclick?: () => void;
27
+ /** Shows a checkbox for selecting the entry. */
24
28
  selectable?: boolean;
29
+ /** Indicates whether the entry is selected. */
25
30
  selected?: boolean;
31
+ /** Invoked when the selection checkbox is toggled. */
26
32
  onselect?: (id: string, selected: boolean) => void;
33
+ /** Currency code for formatting hourly rates and amounts. */
27
34
  currency?: Currency;
35
+ /** Renders action buttons on the right side of the card. */
28
36
  actions?: Snippet;
29
37
  }
30
38
 
@@ -2,13 +2,21 @@ import type { Snippet } from 'svelte';
2
2
  import { type Currency, type TimeEntry } from './utils.js';
3
3
  /** Props for TimeEntryCard component */
4
4
  export interface Props {
5
+ /** Time entry data to display. */
5
6
  entry: TimeEntry;
7
+ /** URL to navigate to when the card is clicked. */
6
8
  href?: string;
9
+ /** Invoked when the card content is clicked. */
7
10
  onclick?: () => void;
11
+ /** Shows a checkbox for selecting the entry. */
8
12
  selectable?: boolean;
13
+ /** Indicates whether the entry is selected. */
9
14
  selected?: boolean;
15
+ /** Invoked when the selection checkbox is toggled. */
10
16
  onselect?: (id: string, selected: boolean) => void;
17
+ /** Currency code for formatting hourly rates and amounts. */
11
18
  currency?: Currency;
19
+ /** Renders action buttons on the right side of the card. */
12
20
  actions?: Snippet;
13
21
  }
14
22
  declare const TimeEntryCard: import("svelte").Component<Props, {}, "">;
@@ -1 +1 @@
1
- {"version":3,"file":"TimeEntryCard.svelte.d.ts","sourceRoot":"","sources":["../../../src/svelte/components/TimeEntryCard.svelte.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC;AAEtC,OAAO,EACL,KAAK,QAAQ,EAKb,KAAK,SAAS,EACf,MAAM,YAAY,CAAC;AAGpB,wCAAwC;AACxC,MAAM,WAAW,KAAK;IACpB,KAAK,EAAE,SAAS,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,KAAK,IAAI,CAAC;IACnD,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAoHD,QAAA,MAAM,aAAa,2CAAwC,CAAC;AAC5D,KAAK,aAAa,GAAG,UAAU,CAAC,OAAO,aAAa,CAAC,CAAC;AACtD,eAAe,aAAa,CAAC"}
1
+ {"version":3,"file":"TimeEntryCard.svelte.d.ts","sourceRoot":"","sources":["../../../src/svelte/components/TimeEntryCard.svelte.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC;AAEtC,OAAO,EACL,KAAK,QAAQ,EAKb,KAAK,SAAS,EACf,MAAM,YAAY,CAAC;AAGpB,wCAAwC;AACxC,MAAM,WAAW,KAAK;IACpB,kCAAkC;IAClC,KAAK,EAAE,SAAS,CAAC;IACjB,mDAAmD;IACnD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,gDAAgD;IAChD,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,gDAAgD;IAChD,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,+CAA+C;IAC/C,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,sDAAsD;IACtD,QAAQ,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,KAAK,IAAI,CAAC;IACnD,6DAA6D;IAC7D,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,4DAA4D;IAC5D,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAoHD,QAAA,MAAM,aAAa,2CAAwC,CAAC;AAC5D,KAAK,aAAa,GAAG,UAAU,CAAC,OAAO,aAAa,CAAC,CAAC;AACtD,eAAe,aAAa,CAAC"}
@@ -19,12 +19,19 @@ const { t } = useI18n();
19
19
 
20
20
  /** Props for TimeEntryList component */
21
21
  export interface Props {
22
+ /** Time entries to display in the list. */
22
23
  entries: TimeEntry[];
24
+ /** Shows checkboxes for selecting entries. */
23
25
  selectable?: boolean;
26
+ /** Identifiers of currently selected entries. */
24
27
  selectedIds?: string[];
28
+ /** Invoked when the selection changes. */
25
29
  onselectionchange?: (ids: string[]) => void;
30
+ /** Message shown when the entries list is empty. */
26
31
  emptyMessage?: string;
32
+ /** Base URL to construct entry detail links. */
27
33
  baseHref?: string;
34
+ /** Currency code for formatting amounts. */
28
35
  currency?: Currency;
29
36
  /** Filter function to determine which entries can be selected */
30
37
  canSelect?: (entry: TimeEntry) => boolean;
@@ -1,12 +1,19 @@
1
1
  import { type Currency, type TimeEntry } from './utils.js';
2
2
  /** Props for TimeEntryList component */
3
3
  export interface Props {
4
+ /** Time entries to display in the list. */
4
5
  entries: TimeEntry[];
6
+ /** Shows checkboxes for selecting entries. */
5
7
  selectable?: boolean;
8
+ /** Identifiers of currently selected entries. */
6
9
  selectedIds?: string[];
10
+ /** Invoked when the selection changes. */
7
11
  onselectionchange?: (ids: string[]) => void;
12
+ /** Message shown when the entries list is empty. */
8
13
  emptyMessage?: string;
14
+ /** Base URL to construct entry detail links. */
9
15
  baseHref?: string;
16
+ /** Currency code for formatting amounts. */
10
17
  currency?: Currency;
11
18
  /** Filter function to determine which entries can be selected */
12
19
  canSelect?: (entry: TimeEntry) => boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"TimeEntryList.svelte.d.ts","sourceRoot":"","sources":["../../../src/svelte/components/TimeEntryList.svelte.ts"],"names":[],"mappings":"AASA,OAAO,EACL,KAAK,QAAQ,EAKb,KAAK,SAAS,EACf,MAAM,YAAY,CAAC;AAGpB,wCAAwC;AACxC,MAAM,WAAW,KAAK;IACpB,OAAO,EAAE,SAAS,EAAE,CAAC;IACrB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,iBAAiB,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;IAC5C,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,iEAAiE;IACjE,SAAS,CAAC,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,OAAO,CAAC;CAC3C;AA2ID,QAAA,MAAM,aAAa,2CAAwC,CAAC;AAC5D,KAAK,aAAa,GAAG,UAAU,CAAC,OAAO,aAAa,CAAC,CAAC;AACtD,eAAe,aAAa,CAAC"}
1
+ {"version":3,"file":"TimeEntryList.svelte.d.ts","sourceRoot":"","sources":["../../../src/svelte/components/TimeEntryList.svelte.ts"],"names":[],"mappings":"AASA,OAAO,EACL,KAAK,QAAQ,EAKb,KAAK,SAAS,EACf,MAAM,YAAY,CAAC;AAGpB,wCAAwC;AACxC,MAAM,WAAW,KAAK;IACpB,2CAA2C;IAC3C,OAAO,EAAE,SAAS,EAAE,CAAC;IACrB,8CAA8C;IAC9C,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,iDAAiD;IACjD,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,0CAA0C;IAC1C,iBAAiB,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;IAC5C,oDAAoD;IACpD,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,gDAAgD;IAChD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,4CAA4C;IAC5C,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,iEAAiE;IACjE,SAAS,CAAC,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,OAAO,CAAC;CAC3C;AA2ID,QAAA,MAAM,aAAa,2CAAwC,CAAC;AAC5D,KAAK,aAAa,GAAG,UAAU,CAAC,OAAO,aAAa,CAAC,CAAC;AACtD,eAAe,aAAa,CAAC"}