@happyvertical/smrt-projects 0.55.16 → 0.55.17

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.
@@ -2,7 +2,7 @@
2
2
  "version": "1.0.0",
3
3
  "timestamp": 0,
4
4
  "packageName": "@happyvertical/smrt-projects",
5
- "packageVersion": "0.55.16",
5
+ "packageVersion": "0.55.17",
6
6
  "objects": {
7
7
  "@happyvertical/smrt-projects:CommentCollection": {
8
8
  "name": "commentcollection",
@@ -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.55.16",
6
+ "packageVersion": "0.55.17",
7
7
  "sourceManifestPath": "dist/manifest.json",
8
8
  "agentDocPath": "AGENTS.md",
9
9
  "sourceHashes": {
10
- "manifest": "d0a546782341aeb2cfecd9e6ca5c498d4a516c3668829eab0d952548da9a248f",
11
- "packageJson": "40f7542cb72373320495604ad6578a25942943aab515d0fb9a6533b5595dd78b",
10
+ "manifest": "07eaf1043fc22e7148a3277aeae7db7e29d8bd9b8c05a3066a5af0327ce5d362",
11
+ "packageJson": "3ac1005822824e286ca5f6bf0bba793b8df67fc327cdcf1915c412ca59c3ff1a",
12
12
  "agents": "014098eac2bb1699b653ccd3029e062a2312a521862e39225dd8ca73b6ae8206"
13
13
  },
14
14
  "exports": [
@@ -47,7 +47,7 @@ async function submit(event: SubmitEvent) {
47
47
  }
48
48
  </script>
49
49
 
50
- <section class="assistance">
50
+ <section class="assistance" data-smrt-component="AssistanceLauncher">
51
51
  <Form onsubmit={submit}>
52
52
  <header>
53
53
  <h2>{t(M['projects.assistance.title'])}</h2>
@@ -70,6 +70,8 @@ async function submit(event: SubmitEvent) {
70
70
  </section>
71
71
 
72
72
  <style>
73
+ @layer smrt.reset, smrt.structure, smrt.theme;
74
+ @layer smrt.theme {
73
75
  .assistance {
74
76
  max-width: 42rem;
75
77
  }
@@ -98,4 +100,5 @@ async function submit(event: SubmitEvent) {
98
100
  display: flex;
99
101
  justify-content: flex-end;
100
102
  }
103
+ }
101
104
  </style>
@@ -17,7 +17,7 @@ const format = (value: Date | string) =>
17
17
  }).format(new Date(value));
18
18
  </script>
19
19
 
20
- <ol class="delivery" aria-label={t(M['projects.delivery_status.aria'])}>
20
+ <ol class="delivery" aria-label={t(M['projects.delivery_status.aria'])} data-smrt-component="DeliveryStatus">
21
21
  {#each [...events].sort((a, b) => a.sequence - b.sequence) as event (event.id)}
22
22
  <li>
23
23
  <span class="marker" aria-hidden="true"></span>
@@ -33,6 +33,8 @@ const format = (value: Date | string) =>
33
33
  </ol>
34
34
 
35
35
  <style>
36
+ @layer smrt.reset, smrt.structure, smrt.theme;
37
+ @layer smrt.theme {
36
38
  .delivery {
37
39
  list-style: none;
38
40
  margin: 0;
@@ -69,4 +71,5 @@ const format = (value: Date | string) =>
69
71
  color: var(--smrt-color-on-surface-variant);
70
72
  font-size: var(--smrt-typography-label-small-size);
71
73
  }
74
+ }
72
75
  </style>
@@ -48,7 +48,7 @@ const cardLabel = (card: DevelopmentBoardCard) =>
48
48
  {#if requests.length === 0}
49
49
  <section
50
50
  class="empty"
51
- aria-label={t(M['projects.development_board.aria'])}
51
+ aria-label={t(M['projects.development_board.aria'])} data-smrt-component="DevelopmentBoard"
52
52
  >
53
53
  <p>{t(M['projects.development_board.empty'])}</p>
54
54
  </section>
@@ -75,6 +75,8 @@ const cardLabel = (card: DevelopmentBoardCard) =>
75
75
  {/if}
76
76
 
77
77
  <style>
78
+ @layer smrt.reset, smrt.structure, smrt.theme;
79
+ @layer smrt.theme {
78
80
  .empty {
79
81
  color: var(--smrt-color-on-surface-variant);
80
82
  margin: 0;
@@ -83,4 +85,5 @@ const cardLabel = (card: DevelopmentBoardCard) =>
83
85
  small {
84
86
  color: var(--smrt-color-on-surface-variant);
85
87
  }
88
+ }
86
89
  </style>
@@ -20,7 +20,7 @@ const { t } = useI18n();
20
20
 
21
21
  <article
22
22
  class="detail"
23
- aria-label={t(M['projects.development_request.detail_aria'])}
23
+ aria-label={t(M['projects.development_request.detail_aria'])} data-smrt-component="DevelopmentRequestDetail"
24
24
  >
25
25
  <header>
26
26
  <div>
@@ -55,6 +55,8 @@ const { t } = useI18n();
55
55
  </article>
56
56
 
57
57
  <style>
58
+ @layer smrt.reset, smrt.structure, smrt.theme;
59
+ @layer smrt.theme {
58
60
  .detail {
59
61
  display: grid;
60
62
  gap: var(--smrt-spacing-5);
@@ -91,4 +93,5 @@ const { t } = useI18n();
91
93
  display: grid;
92
94
  gap: var(--smrt-spacing-1);
93
95
  }
96
+ }
94
97
  </style>
@@ -17,7 +17,7 @@ let { preview, busy = false, ondecide }: Props = $props();
17
17
  const { t } = useI18n();
18
18
  </script>
19
19
 
20
- <section class="preview">
20
+ <section class="preview" data-smrt-component="PreviewApprovalPanel">
21
21
  <div>
22
22
  <span>{t(M['projects.preview.label'], { id: preview.previewId })}</span>
23
23
  <strong>{preview.status}</strong>
@@ -44,6 +44,8 @@ const { t } = useI18n();
44
44
  </section>
45
45
 
46
46
  <style>
47
+ @layer smrt.reset, smrt.structure, smrt.theme;
48
+ @layer smrt.theme {
47
49
  .preview {
48
50
  border-block: 1px solid var(--smrt-color-outline-variant);
49
51
  display: grid;
@@ -63,4 +65,5 @@ const { t } = useI18n();
63
65
  gap: var(--smrt-spacing-3);
64
66
  justify-content: flex-end;
65
67
  }
68
+ }
66
69
  </style>
@@ -151,7 +151,10 @@ function cardLabel(card: ProjectBoardCard): string {
151
151
  </Board>
152
152
 
153
153
  <style>
154
+ @layer smrt.reset, smrt.structure, smrt.theme;
155
+ @layer smrt.theme {
154
156
  small {
155
157
  color: var(--smrt-color-on-surface-variant);
156
158
  }
159
+ }
157
160
  </style>
@@ -32,7 +32,7 @@ const money = (amount = 0, currency = 'USD') => {
32
32
 
33
33
  <section
34
34
  class="evidence"
35
- aria-label={t(M['projects.service_evidence.aria'])}
35
+ aria-label={t(M['projects.service_evidence.aria'])} data-smrt-component="ServiceEvidenceList"
36
36
  >
37
37
  {#each entries as entry (entry.id)}
38
38
  <article>
@@ -69,6 +69,8 @@ const money = (amount = 0, currency = 'USD') => {
69
69
  </section>
70
70
 
71
71
  <style>
72
+ @layer smrt.reset, smrt.structure, smrt.theme;
73
+ @layer smrt.theme {
72
74
  .evidence {
73
75
  border-top: 1px solid var(--smrt-color-outline-variant);
74
76
  }
@@ -116,4 +118,5 @@ const money = (amount = 0, currency = 'USD') => {
116
118
  text-align: left;
117
119
  }
118
120
  }
121
+ }
119
122
  </style>
@@ -55,7 +55,7 @@ const canEdit = $derived(
55
55
  const canDelete = $derived(status === 'draft' && ondelete);
56
56
  </script>
57
57
 
58
- <div class="approval-actions" class:vertical={layout === 'vertical'}>
58
+ <div class="approval-actions" class:vertical={layout === 'vertical'} data-smrt-component="ApprovalActions">
59
59
  {#if canSubmit}
60
60
  <Button variant="primary" onclick={onsubmit} disabled={disabled || loading}>
61
61
  {loading ? 'Submitting...' : 'Submit for Approval'}
@@ -100,6 +100,8 @@ const canDelete = $derived(status === 'draft' && ondelete);
100
100
  </div>
101
101
 
102
102
  <style>
103
+ @layer smrt.reset, smrt.structure, smrt.theme;
104
+ @layer smrt.theme {
103
105
  .approval-actions {
104
106
  display: flex;
105
107
  flex-wrap: wrap;
@@ -116,7 +118,7 @@ const canDelete = $derived(status === 'draft' && ondelete);
116
118
  font-size: var(--smrt-typography-body-medium-size, 0.875rem);
117
119
  font-weight: var(--smrt-typography-label-large-weight, 500);
118
120
  padding: 0.5rem 1rem;
119
- border-radius: var(--smrt-radius-small, 8px);
121
+ border-radius: var(--smrt-radius-small);
120
122
  }
121
123
 
122
124
  .status-message.success {
@@ -128,4 +130,5 @@ const canDelete = $derived(status === 'draft' && ondelete);
128
130
  background: var(--smrt-color-error-container);
129
131
  color: var(--smrt-color-on-error-container);
130
132
  }
133
+ }
131
134
  </style>
@@ -42,7 +42,7 @@ const visible = $derived(selectedCount > 0);
42
42
  </script>
43
43
 
44
44
  {#if visible}
45
- <div class="bulk-actions">
45
+ <div class="bulk-actions" data-smrt-component="BulkActions">
46
46
  <div class="selection-info">
47
47
  <span class="count">{selectedCount}</span>
48
48
  <span class="label">{selectedCount === 1 ? 'item' : 'items'} selected</span>
@@ -88,6 +88,8 @@ const visible = $derived(selectedCount > 0);
88
88
  {/if}
89
89
 
90
90
  <style>
91
+ @layer smrt.reset, smrt.structure, smrt.theme;
92
+ @layer smrt.theme {
91
93
  .bulk-actions {
92
94
  display: flex;
93
95
  justify-content: space-between;
@@ -95,7 +97,7 @@ const visible = $derived(selectedCount > 0);
95
97
  padding: 0.75rem 1rem;
96
98
  background: var(--smrt-color-secondary-container);
97
99
  border: 1px solid var(--smrt-color-outline-variant);
98
- border-radius: var(--smrt-radius-medium, 12px);
100
+ border-radius: var(--smrt-radius-medium);
99
101
  margin-bottom: 1rem;
100
102
  }
101
103
 
@@ -146,4 +148,5 @@ const visible = $derived(selectedCount > 0);
146
148
  min-width: 100px;
147
149
  }
148
150
  }
151
+ }
149
152
  </style>
@@ -38,7 +38,7 @@ function submit(event: SubmitEvent) {
38
38
  </script>
39
39
 
40
40
  <!-- raw-primitive-allow: provider-free embeddable request form boundary -->
41
- <form onsubmit={submit} class="request-form">
41
+ <form onsubmit={submit} class="request-form" data-smrt-component="DevelopmentRequestForm">
42
42
  <label>{t(M['projects.development_request.type'])}
43
43
  <!-- raw-primitive-allow: package has no provider-free select primitive -->
44
44
  <select bind:value={type} disabled={disabled}>
@@ -64,9 +64,12 @@ function submit(event: SubmitEvent) {
64
64
  </form>
65
65
 
66
66
  <style>
67
+ @layer smrt.reset, smrt.structure, smrt.theme;
68
+ @layer smrt.theme {
67
69
  .request-form { display: grid; gap: var(--smrt-spacing-4); }
68
70
  label { display: grid; gap: var(--smrt-spacing-1); color: var(--smrt-color-on-surface); }
69
71
  input, select, textarea { padding: var(--smrt-spacing-2); border: 1px solid var(--smrt-color-outline); border-radius: var(--smrt-radius-medium); background: var(--smrt-color-surface); color: var(--smrt-color-on-surface); }
70
72
  textarea { min-height: 6rem; }
71
73
  button { padding: var(--smrt-spacing-2) var(--smrt-spacing-4); border: 0; border-radius: var(--smrt-radius-medium); background: var(--smrt-color-primary); color: var(--smrt-color-on-primary); }
74
+ }
72
75
  </style>
@@ -54,11 +54,11 @@ function formatWhen(value?: Date | string): string {
54
54
  </script>
55
55
 
56
56
  {#if visibleRequests.length === 0}
57
- <div class="empty-state">
57
+ <div class="empty-state" data-smrt-component="DevelopmentRequestList">
58
58
  <p>{emptyMessage}</p>
59
59
  </div>
60
60
  {:else}
61
- <div class="request-list">
61
+ <div class="request-list" data-smrt-component="DevelopmentRequestList">
62
62
  {#each visibleRequests as request (request.id)}
63
63
  <article class="request-card">
64
64
  <header>
@@ -111,10 +111,12 @@ function formatWhen(value?: Date | string): string {
111
111
  {/if}
112
112
 
113
113
  <style>
114
+ @layer smrt.reset, smrt.structure, smrt.theme;
115
+ @layer smrt.theme {
114
116
  .empty-state {
115
117
  padding: 2rem 1rem;
116
118
  text-align: center;
117
- color: var(--smrt-color-on-surface-variant, #5f6472);
119
+ color: var(--smrt-color-on-surface-variant);
118
120
  }
119
121
 
120
122
  .request-list {
@@ -124,12 +126,12 @@ function formatWhen(value?: Date | string): string {
124
126
 
125
127
  .request-card {
126
128
  padding: 1rem;
127
- border: 1px solid var(--smrt-color-outline-variant, #d5d8e1);
128
- border-radius: var(--smrt-radius-large, 16px);
129
+ border: 1px solid var(--smrt-color-outline-variant);
130
+ border-radius: var(--smrt-radius-large);
129
131
  background: linear-gradient(
130
132
  180deg,
131
- var(--smrt-color-surface, #fff),
132
- var(--smrt-color-surface-container-lowest, #f8f9fc)
133
+ var(--smrt-color-surface),
134
+ var(--smrt-color-surface-container-lowest)
133
135
  );
134
136
  }
135
137
 
@@ -150,7 +152,7 @@ function formatWhen(value?: Date | string): string {
150
152
  text-transform: uppercase;
151
153
  letter-spacing: 0.08em;
152
154
  font-size: 0.75rem;
153
- color: var(--smrt-color-on-surface-variant, #5f6472);
155
+ color: var(--smrt-color-on-surface-variant);
154
156
  }
155
157
 
156
158
  .status {
@@ -192,7 +194,7 @@ function formatWhen(value?: Date | string): string {
192
194
  font-size: 0.75rem;
193
195
  text-transform: uppercase;
194
196
  letter-spacing: 0.06em;
195
- color: var(--smrt-color-on-surface-variant, #5f6472);
197
+ color: var(--smrt-color-on-surface-variant);
196
198
  }
197
199
 
198
200
  dd {
@@ -201,7 +203,7 @@ function formatWhen(value?: Date | string): string {
201
203
 
202
204
  .discussion {
203
205
  margin: 1rem 0 0;
204
- color: var(--smrt-color-on-surface-variant, #3d4454);
206
+ color: var(--smrt-color-on-surface-variant);
205
207
  }
206
208
 
207
209
  .evidence-list {
@@ -210,7 +212,7 @@ function formatWhen(value?: Date | string): string {
210
212
  }
211
213
 
212
214
  a {
213
- color: var(--smrt-color-primary, #1f6feb);
215
+ color: var(--smrt-color-primary);
214
216
  }
215
217
 
216
218
  @media (max-width: 700px) {
@@ -218,4 +220,5 @@ function formatWhen(value?: Date | string): string {
218
220
  flex-direction: column;
219
221
  }
220
222
  }
223
+ }
221
224
  </style>
@@ -84,7 +84,7 @@ $effect(() => {
84
84
  </script>
85
85
 
86
86
  {#if open}
87
- <div class="dialog-backdrop">
87
+ <div class="dialog-backdrop" data-smrt-component="RejectDialog">
88
88
  <!-- raw-primitive-allow: click-catching modal backdrop; structural overlay, not a primitive -->
89
89
  <button
90
90
  type="button"
@@ -135,6 +135,8 @@ $effect(() => {
135
135
  {/if}
136
136
 
137
137
  <style>
138
+ @layer smrt.reset, smrt.structure, smrt.theme;
139
+ @layer smrt.theme {
138
140
  .dialog-backdrop {
139
141
  position: fixed;
140
142
  inset: 0;
@@ -156,7 +158,7 @@ $effect(() => {
156
158
  .dialog {
157
159
  position: relative;
158
160
  background: var(--smrt-color-surface);
159
- border-radius: var(--smrt-radius-extra-large, 28px);
161
+ border-radius: var(--smrt-radius-extra-large);
160
162
  box-shadow: var(--smrt-elevation-3);
161
163
  width: 100%;
162
164
  max-width: 28rem;
@@ -184,7 +186,7 @@ $effect(() => {
184
186
  font-size: var(--smrt-typography-body-large-size, 1rem);
185
187
  font-family: inherit;
186
188
  border: 1px solid var(--smrt-color-outline);
187
- border-radius: var(--smrt-radius-small, 8px);
189
+ border-radius: var(--smrt-radius-small);
188
190
  resize: vertical;
189
191
  min-height: 80px;
190
192
  background: var(--smrt-color-surface);
@@ -216,4 +218,5 @@ $effect(() => {
216
218
  gap: 0.5rem;
217
219
  margin-top: 1.5rem;
218
220
  }
221
+ }
219
222
  </style>
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@happyvertical/smrt-projects",
3
- "version": "0.55.16",
3
+ "version": "0.55.17",
4
4
  "smrtJsdoc": "strict",
5
5
  "description": "Provider-agnostic project management models (Issues, PRs, Repositories, Projects) for SMRT framework",
6
6
  "type": "module",
@@ -39,15 +39,15 @@
39
39
  "@happyvertical/logger": "^0.103.4",
40
40
  "@happyvertical/projects": "^0.103.4",
41
41
  "@happyvertical/repos": "^0.103.4",
42
- "@happyvertical/smrt-config": "0.55.16",
43
- "@happyvertical/smrt-core": "0.55.16",
44
- "@happyvertical/smrt-prompts": "0.55.16",
45
- "@happyvertical/smrt-svelte": "0.55.16",
46
- "@happyvertical/smrt-subscriptions": "0.55.16",
47
- "@happyvertical/smrt-tenancy": "0.55.16",
48
- "@happyvertical/smrt-timesheets": "0.55.16",
49
- "@happyvertical/smrt-types": "0.55.16",
50
- "@happyvertical/smrt-ui": "0.55.16",
42
+ "@happyvertical/smrt-config": "0.55.17",
43
+ "@happyvertical/smrt-core": "0.55.17",
44
+ "@happyvertical/smrt-prompts": "0.55.17",
45
+ "@happyvertical/smrt-svelte": "0.55.17",
46
+ "@happyvertical/smrt-subscriptions": "0.55.17",
47
+ "@happyvertical/smrt-tenancy": "0.55.17",
48
+ "@happyvertical/smrt-timesheets": "0.55.17",
49
+ "@happyvertical/smrt-types": "0.55.17",
50
+ "@happyvertical/smrt-ui": "0.55.17",
51
51
  "@happyvertical/sql": "^0.103.4",
52
52
  "@happyvertical/utils": "^0.103.4"
53
53
  },
@@ -60,8 +60,8 @@
60
60
  }
61
61
  },
62
62
  "devDependencies": {
63
- "@happyvertical/smrt-cli": "0.55.16",
64
- "@happyvertical/smrt-vitest": "0.55.16",
63
+ "@happyvertical/smrt-cli": "0.55.17",
64
+ "@happyvertical/smrt-vitest": "0.55.17",
65
65
  "@sveltejs/package": "^2.5.8",
66
66
  "@sveltejs/vite-plugin-svelte": "^7.3.0",
67
67
  "@types/node": "24.13.6",