@sbc-connect/nuxt-base 0.0.0-test-ld-20260520212549

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 (179) hide show
  1. package/.env.example +11 -0
  2. package/CHANGELOG.md +338 -0
  3. package/LICENSE +28 -0
  4. package/README.md +55 -0
  5. package/app/app.config.ts +441 -0
  6. package/app/app.vue +18 -0
  7. package/app/assets/css/connect-base-layout.css +13 -0
  8. package/app/assets/css/connect-base-tw.css +303 -0
  9. package/app/components/Connect/Address/Display.vue +84 -0
  10. package/app/components/Connect/BCGovLogo.vue +42 -0
  11. package/app/components/Connect/Breadcrumb.vue +68 -0
  12. package/app/components/Connect/ButtonControl/Buttons.vue +28 -0
  13. package/app/components/Connect/ButtonControl/Index.vue +66 -0
  14. package/app/components/Connect/ButtonControl/Wrapper.vue +18 -0
  15. package/app/components/Connect/Contact/Display.vue +65 -0
  16. package/app/components/Connect/FloatingLabel.vue +67 -0
  17. package/app/components/Connect/Footer.vue +99 -0
  18. package/app/components/Connect/Header/LogoHomeLink.vue +20 -0
  19. package/app/components/Connect/Header/WhatsNew.vue +36 -0
  20. package/app/components/Connect/Header/Wrapper.vue +14 -0
  21. package/app/components/Connect/Header/index.vue +17 -0
  22. package/app/components/Connect/I18n/Helper.vue +40 -0
  23. package/app/components/Connect/Input.vue +69 -0
  24. package/app/components/Connect/InputDate.vue +104 -0
  25. package/app/components/Connect/Layout/Index.vue +25 -0
  26. package/app/components/Connect/Layout/Sidebar.vue +38 -0
  27. package/app/components/Connect/LocaleSelect.vue +37 -0
  28. package/app/components/Connect/Modal/Error.vue +76 -0
  29. package/app/components/Connect/Modal/index.vue +51 -0
  30. package/app/components/Connect/PageSection.vue +57 -0
  31. package/app/components/Connect/Select.vue +28 -0
  32. package/app/components/Connect/Slideover/WhatsNew.vue +61 -0
  33. package/app/components/Connect/Spinner.vue +91 -0
  34. package/app/components/Connect/SystemBanner.vue +53 -0
  35. package/app/components/Connect/Textarea.vue +27 -0
  36. package/app/components/Connect/Tombstone/Item.vue +51 -0
  37. package/app/components/Connect/Tombstone/index.vue +123 -0
  38. package/app/components/Connect/Transition/Collapse.vue +39 -0
  39. package/app/components/Connect/Transition/Fade.vue +31 -0
  40. package/app/components/HelloWorld/Index.vue +14 -0
  41. package/app/composables/useConnectButtonControl.ts +146 -0
  42. package/app/composables/useConnectLaunchDarkly.ts +173 -0
  43. package/app/composables/useConnectModal.ts +13 -0
  44. package/app/composables/useConnectTombstone.ts +25 -0
  45. package/app/coverage/app/app.config.ts.html +1408 -0
  46. package/app/coverage/app/app.vue.html +139 -0
  47. package/app/coverage/app/components/Connect/Address/Display.vue.html +337 -0
  48. package/app/coverage/app/components/Connect/Address/index.html +116 -0
  49. package/app/coverage/app/components/Connect/BCGovLogo.vue.html +211 -0
  50. package/app/coverage/app/components/Connect/Breadcrumb.vue.html +289 -0
  51. package/app/coverage/app/components/Connect/ButtonControl/Buttons.vue.html +166 -0
  52. package/app/coverage/app/components/Connect/ButtonControl/Index.vue.html +283 -0
  53. package/app/coverage/app/components/Connect/ButtonControl/Wrapper.vue.html +139 -0
  54. package/app/coverage/app/components/Connect/ButtonControl/index.html +146 -0
  55. package/app/coverage/app/components/Connect/Contact/Display.vue.html +280 -0
  56. package/app/coverage/app/components/Connect/Contact/index.html +116 -0
  57. package/app/coverage/app/components/Connect/FloatingLabel.vue.html +286 -0
  58. package/app/coverage/app/components/Connect/Footer.vue.html +382 -0
  59. package/app/coverage/app/components/Connect/Header/LogoHomeLink.vue.html +145 -0
  60. package/app/coverage/app/components/Connect/Header/WhatsNew.vue.html +193 -0
  61. package/app/coverage/app/components/Connect/Header/Wrapper.vue.html +127 -0
  62. package/app/coverage/app/components/Connect/Header/index.html +161 -0
  63. package/app/coverage/app/components/Connect/Header/index.vue.html +136 -0
  64. package/app/coverage/app/components/Connect/I18n/Helper.vue.html +205 -0
  65. package/app/coverage/app/components/Connect/I18n/index.html +116 -0
  66. package/app/coverage/app/components/Connect/Input.vue.html +262 -0
  67. package/app/coverage/app/components/Connect/InputDate.vue.html +406 -0
  68. package/app/coverage/app/components/Connect/Layout/Index.vue.html +160 -0
  69. package/app/coverage/app/components/Connect/Layout/Sidebar.vue.html +199 -0
  70. package/app/coverage/app/components/Connect/Layout/index.html +131 -0
  71. package/app/coverage/app/components/Connect/LocaleSelect.vue.html +196 -0
  72. package/app/coverage/app/components/Connect/Modal/Error.vue.html +313 -0
  73. package/app/coverage/app/components/Connect/Modal/index.html +131 -0
  74. package/app/coverage/app/components/Connect/Modal/index.vue.html +238 -0
  75. package/app/coverage/app/components/Connect/PageSection.vue.html +256 -0
  76. package/app/coverage/app/components/Connect/Select.vue.html +169 -0
  77. package/app/coverage/app/components/Connect/Slideover/WhatsNew.vue.html +268 -0
  78. package/app/coverage/app/components/Connect/Slideover/index.html +116 -0
  79. package/app/coverage/app/components/Connect/Spinner.vue.html +358 -0
  80. package/app/coverage/app/components/Connect/SystemBanner.vue.html +244 -0
  81. package/app/coverage/app/components/Connect/Textarea.vue.html +160 -0
  82. package/app/coverage/app/components/Connect/Tombstone/Item.vue.html +238 -0
  83. package/app/coverage/app/components/Connect/Tombstone/index.html +131 -0
  84. package/app/coverage/app/components/Connect/Tombstone/index.vue.html +454 -0
  85. package/app/coverage/app/components/Connect/Transition/Collapse.vue.html +202 -0
  86. package/app/coverage/app/components/Connect/Transition/Fade.vue.html +178 -0
  87. package/app/coverage/app/components/Connect/Transition/index.html +131 -0
  88. package/app/coverage/app/components/Connect/index.html +281 -0
  89. package/app/coverage/app/components/HelloWorld/Index.vue.html +127 -0
  90. package/app/coverage/app/components/HelloWorld/index.html +116 -0
  91. package/app/coverage/app/composables/index.html +161 -0
  92. package/app/coverage/app/composables/useConnectButtonControl.ts.html +523 -0
  93. package/app/coverage/app/composables/useConnectLaunchDarkly.ts.html +595 -0
  94. package/app/coverage/app/composables/useConnectModal.ts.html +124 -0
  95. package/app/coverage/app/composables/useConnectTombstone.ts.html +160 -0
  96. package/app/coverage/app/error.vue.html +247 -0
  97. package/app/coverage/app/index.html +146 -0
  98. package/app/coverage/app/interfaces/connect-address.ts.html +121 -0
  99. package/app/coverage/app/interfaces/connect-breadcrumb.ts.html +100 -0
  100. package/app/coverage/app/interfaces/connect-button-control.ts.html +151 -0
  101. package/app/coverage/app/interfaces/connect-contact-item.ts.html +103 -0
  102. package/app/coverage/app/interfaces/connect-modal.ts.html +100 -0
  103. package/app/coverage/app/interfaces/connect-tombstone.ts.html +208 -0
  104. package/app/coverage/app/interfaces/connect-whatsnew.ts.html +127 -0
  105. package/app/coverage/app/interfaces/index.html +206 -0
  106. package/app/coverage/app/layouts/ConnectBase.vue.html +100 -0
  107. package/app/coverage/app/layouts/index.html +116 -0
  108. package/app/coverage/app/plugins/index.html +146 -0
  109. package/app/coverage/app/plugins/maska.client.ts.html +115 -0
  110. package/app/coverage/app/plugins/sanitize.client.ts.html +151 -0
  111. package/app/coverage/app/plugins/whats-new.client.ts.html +220 -0
  112. package/app/coverage/app/types/dates.ts.html +136 -0
  113. package/app/coverage/app/types/index.html +116 -0
  114. package/app/coverage/app/utils/appendUrlParam.ts.html +97 -0
  115. package/app/coverage/app/utils/getErrorMessage.ts.html +211 -0
  116. package/app/coverage/app/utils/getErrorStatus.ts.html +196 -0
  117. package/app/coverage/app/utils/index.html +191 -0
  118. package/app/coverage/app/utils/logFetchError.ts.html +193 -0
  119. package/app/coverage/app/utils/parseSpecialCharacters.ts.html +160 -0
  120. package/app/coverage/app/utils/setBreadcrumbs.ts.html +100 -0
  121. package/app/coverage/base.css +224 -0
  122. package/app/coverage/block-navigation.js +87 -0
  123. package/app/coverage/clover.xml +2094 -0
  124. package/app/coverage/coverage-final.json +58 -0
  125. package/app/coverage/favicon.png +0 -0
  126. package/app/coverage/index.html +386 -0
  127. package/app/coverage/prettify.css +1 -0
  128. package/app/coverage/prettify.js +2 -0
  129. package/app/coverage/sort-arrow-sprite.png +0 -0
  130. package/app/coverage/sorter.js +210 -0
  131. package/app/error.vue +54 -0
  132. package/app/interfaces/connect-address.ts +12 -0
  133. package/app/interfaces/connect-breadcrumb.ts +5 -0
  134. package/app/interfaces/connect-button-control.ts +23 -0
  135. package/app/interfaces/connect-contact-item.ts +6 -0
  136. package/app/interfaces/connect-modal.ts +5 -0
  137. package/app/interfaces/connect-tombstone.ts +41 -0
  138. package/app/interfaces/connect-whatsnew.ts +14 -0
  139. package/app/layouts/ConnectBase.vue +5 -0
  140. package/app/plugins/maska.client.ts +10 -0
  141. package/app/plugins/sanitize.client.ts +22 -0
  142. package/app/plugins/whats-new.client.ts +45 -0
  143. package/app/spa-loading-template.html +61 -0
  144. package/app/types/base-app-config.d.ts +15 -0
  145. package/app/types/base-directives.d.ts +7 -0
  146. package/app/types/base-page-meta.d.ts +8 -0
  147. package/app/types/dates.ts +17 -0
  148. package/app/utils/appendUrlParam.ts +4 -0
  149. package/app/utils/getErrorMessage.ts +42 -0
  150. package/app/utils/getErrorStatus.ts +37 -0
  151. package/app/utils/logFetchError.ts +36 -0
  152. package/app/utils/parseSpecialCharacters.ts +25 -0
  153. package/app/utils/setBreadcrumbs.ts +7 -0
  154. package/firebase.json +34 -0
  155. package/i18n/locales/en-CA.ts +70 -0
  156. package/i18n/locales/fr-CA.ts +96 -0
  157. package/nuxt.config.ts +147 -0
  158. package/package.json +49 -0
  159. package/public/BCGovLogo/gov_bc_logo_horiz_en.png +0 -0
  160. package/public/BCGovLogo/gov_bc_logo_horiz_fr.png +0 -0
  161. package/public/BCGovLogo/gov_bc_logo_vert_en.png +0 -0
  162. package/public/BCGovLogo/gov_bc_logo_vert_fr.png +0 -0
  163. package/public/favicon.ico +0 -0
  164. package/public/fonts/BCSans/BCSans-Bold.woff +0 -0
  165. package/public/fonts/BCSans/BCSans-Bold.woff2 +0 -0
  166. package/public/fonts/BCSans/BCSans-BoldItalic.woff +0 -0
  167. package/public/fonts/BCSans/BCSans-BoldItalic.woff2 +0 -0
  168. package/public/fonts/BCSans/BCSans-Italic.woff +0 -0
  169. package/public/fonts/BCSans/BCSans-Italic.woff2 +0 -0
  170. package/public/fonts/BCSans/BCSans-Regular.woff +0 -0
  171. package/public/fonts/BCSans/BCSans-Regular.woff2 +0 -0
  172. package/public/fonts/BCSans/LICENSE_OFL.txt +94 -0
  173. package/test-results/.last-run.json +7 -0
  174. package/test-results/error-page-404-Error-vue-D-1eb51-cted-visuals-with-404-error-Desktop-Chrome/error-context.md +135 -0
  175. package/test-results/error-page-404-Error-vue-D-1eb51-cted-visuals-with-404-error-Desktop-Chrome/test-failed-1.png +0 -0
  176. package/test-results/error-page-404-Error-vue-D-1eb51-cted-visuals-with-404-error-Desktop-Chrome/trace.zip +0 -0
  177. package/test-results/error-page-500-Error-vue-D-8c2cf-cted-visuals-with-500-error-Desktop-Chrome/error-context.md +135 -0
  178. package/test-results/error-page-500-Error-vue-D-8c2cf-cted-visuals-with-500-error-Desktop-Chrome/test-failed-1.png +0 -0
  179. package/test-results/error-page-500-Error-vue-D-8c2cf-cted-visuals-with-500-error-Desktop-Chrome/trace.zip +0 -0
@@ -0,0 +1,441 @@
1
+ /* eslint-disable max-len */
2
+ export default defineAppConfig({
3
+ connect: {
4
+ header: {
5
+ localeSelect: true,
6
+ whatsNew: true
7
+ },
8
+ footer: {
9
+ versions: []
10
+ }
11
+ },
12
+ ui: {
13
+ alert: {
14
+ slots: {
15
+ root: 'rounded'
16
+ },
17
+ compoundVariants: [
18
+ {
19
+ color: 'warning',
20
+ variant: 'subtle',
21
+ class: {
22
+ root: 'py-4 px-6 relative bg-white text-highlighted ring-2 ring-brand-inverted before:content-[""] before:absolute before:inset-0 before:bg-brand-inverted/10 before:z-10',
23
+ icon: 'text-warning',
24
+ title: 'font-bold text-nuetral-highlighted',
25
+ description: 'text-nuetral-highlighted'
26
+ }
27
+ }
28
+ ]
29
+ },
30
+ badge: {
31
+ slots: {
32
+ base: 'font-medium inline-flex items-center',
33
+ label: 'truncate font-bold',
34
+ leadingIcon: 'shrink-0',
35
+ leadingAvatar: 'shrink-0',
36
+ leadingAvatarSize: '',
37
+ trailingIcon: 'shrink-0'
38
+ }
39
+ },
40
+ breadcrumb: {
41
+ slots: {
42
+ separatorIcon: 'text-secondary'
43
+ },
44
+ variants: {
45
+ active: {
46
+ true: {
47
+ link: 'text-secondary font-medium'
48
+ },
49
+ false: {
50
+ link: 'text-secondary underline font-medium'
51
+ }
52
+ }
53
+ },
54
+ compoundVariants: [
55
+ {
56
+ disabled: false,
57
+ active: false,
58
+ to: true,
59
+ class: {
60
+ link: 'hover:text-secondary hover:underline transition-colors'
61
+ }
62
+ }
63
+ ]
64
+ },
65
+ button: {
66
+ compoundVariants: [
67
+ {
68
+ color: 'primary',
69
+ variant: 'solid',
70
+ class: 'font-bold text-(--ui-bg) bg-(--ui-primary) hover:bg-(--ui-primary)/75 disabled:bg-(--ui-primary) aria-disabled:bg-(--ui-primary) focus-visible:ring-2 focus-visible:ring-offset-2 focus-visible:ring-(--ui-primary)'
71
+ },
72
+ {
73
+ color: 'primary',
74
+ variant: 'ghost',
75
+ class: 'text-(--ui-primary) hover:bg-(--ui-primary)/10 active:bg-(--ui-primary)/25 focus:outline-none focus-visible:bg-(--ui-primary)/10 disabled:bg-transparent aria-disabled:bg-transparent dark:disabled:bg-transparent dark:aria-disabled:bg-transparent'
76
+ },
77
+ {
78
+ color: 'primary',
79
+ variant: 'outline',
80
+ class: 'ring ring-inset ring-primary text-primary hover:bg-primary/10 active:bg-primary/10 disabled:bg-transparent aria-disabled:bg-transparent dark:disabled:bg-transparent dark:aria-disabled:bg-transparent focus:outline-none focus-visible:ring-2 focus-visible:ring-primary'
81
+ }
82
+ ],
83
+ slots: {
84
+ base: 'cursor-pointer'
85
+ },
86
+ variants: {
87
+ size: {
88
+ sm: {
89
+ base: 'px-7 py-0.5 text-sm gap-2.5',
90
+ leadingIcon: 'size-4',
91
+ leadingAvatarSize: '3xs',
92
+ trailingIcon: 'size-4'
93
+ },
94
+ md: {
95
+ base: 'px-7 py-1.5 text-sm gap-2.5',
96
+ leadingIcon: 'size-5',
97
+ leadingAvatarSize: '2xs',
98
+ trailingIcon: 'size-5'
99
+ },
100
+ lg: {
101
+ base: 'px-7 py-2.25 text-sm gap-2.5',
102
+ leadingIcon: 'size-5',
103
+ leadingAvatarSize: '2xs',
104
+ trailingIcon: 'size-5'
105
+ },
106
+ xl: {
107
+ base: 'px-7 py-2.5 text-base gap-2.5',
108
+ leadingIcon: 'size-5',
109
+ leadingAvatarSize: '2xs',
110
+ trailingIcon: 'size-5'
111
+ }
112
+ }
113
+ },
114
+ defaultVariants: {
115
+ color: 'primary',
116
+ variant: 'solid',
117
+ size: 'lg'
118
+ }
119
+ },
120
+ buttonGroup: {
121
+ base: 'relative',
122
+ variants: {
123
+ orientation: {
124
+ horizontal: 'inline-flex -space-x-px divide-x divide-line-muted',
125
+ vertical: 'flex flex-col -space-y-px'
126
+ }
127
+ }
128
+ },
129
+ card: {
130
+ slots: {
131
+ root: 'rounded-md'
132
+ }
133
+ },
134
+ checkbox: {
135
+ slots: {
136
+ root: 'relative flex items-center group',
137
+ base: 'rounded-xs relative shrink-0 flex overflow-visible items-center justify-center ring-2 ring-neutral before:absolute before:-inset-2.75 before:flex before:items-center before:justify-center group-hover:before:bg-[#C7C7C7]/80 before:rounded-full cursor-pointer group-active:before:bg-[#454545]/40 has-data-[state=checked]:hover:before:bg-[#7AA1D2]/40 has-data-[state=checked]:active:before:bg-[#155fb7]/40 before:transition-colors',
138
+ label: 'cursor-pointer text-sm'
139
+ },
140
+ variants: {
141
+ variant: {
142
+ card: {
143
+ root: 'bg-shade border border-line-muted rounded-sm'
144
+ }
145
+ },
146
+ indicator: {
147
+ start: {
148
+ wrapper: 'ms-4'
149
+ }
150
+ }
151
+ },
152
+ compoundVariants: [
153
+ {
154
+ size: 'lg',
155
+ variant: 'card',
156
+ class: {
157
+ root: 'p-4.25'
158
+ }
159
+ },
160
+ {
161
+ color: 'primary',
162
+ variant: 'card',
163
+ class: {
164
+ root: 'has-data-[state=checked]:border-line-muted cursor-pointer'
165
+ }
166
+ }
167
+ ]
168
+ },
169
+ container: {
170
+ base: 'px-0 sm:px-0 lg:px-0 py-6 space-y-6 sm:py-10 sm:space-y-10'
171
+ },
172
+ dropdownMenu: {
173
+ slots: {
174
+ content: 'min-w-32 max-h-[75dvh] shadow-lg rounded-sm',
175
+ group: 'p-0 isolate',
176
+ item: 'group relative w-full flex items-center select-none outline-none before:inset-px before:rounded-none cursor-pointer',
177
+ separator: '-mx-0 my-0 h-px bg-(--ui-border)'
178
+ },
179
+ variants: {
180
+ active: {
181
+ true: {
182
+ item: 'text-primary before:bg-shade',
183
+ itemLeadingIcon: 'text-(--ui-text)'
184
+ },
185
+ false: {
186
+ item: 'text-(--ui-text) data-highlighted:text-primary data-[state=open]:text-(--ui-text-highlighted) data-highlighted:before:bg-shade data-[state=open]:before:bg-(--ui-bg-elevated)/50 transition-colors before:transition-colors',
187
+ itemLeadingIcon: 'text-neutral group-data-highlighted:text-primary group-data-[state=open]:text-(--ui-text) transition-colors'
188
+ }
189
+ },
190
+ size: {
191
+ md: {
192
+ label: 'px-4 py-3 text-sm gap-1.5',
193
+ item: 'px-4 py-3 text-sm gap-1.5',
194
+ itemLeadingIcon: 'size-5',
195
+ itemLeadingAvatarSize: '2xs',
196
+ itemTrailingIcon: 'size-5',
197
+ itemTrailingKbds: 'gap-0.5',
198
+ itemTrailingKbdsSize: 'md'
199
+ }
200
+ }
201
+ },
202
+ compoundVariants: [
203
+ {
204
+ color: 'primary',
205
+ active: false,
206
+ class: {
207
+ item: 'text-(--ui-primary) data-highlighted:text-(--ui-primary) data-highlighted:before:bg-(--ui-primary)/10 data-[state=open]:before:bg-(--ui-primary)/10',
208
+ itemLeadingIcon: 'text-(--ui-primary) group-data-highlighted:text-(--ui-primary) group-data-[state=open]:text-(--ui-primary)'
209
+ }
210
+ },
211
+ {
212
+ color: 'primary',
213
+ active: true,
214
+ class: {
215
+ item: 'text-(--ui-primary) before:bg-(--ui-primary)/10',
216
+ itemLeadingIcon: 'text-(--ui-primary)'
217
+ }
218
+ }
219
+ ]
220
+ },
221
+ formField: {
222
+ slots: {
223
+ root: '',
224
+ wrapper: 'space-y-1',
225
+ labelWrapper: 'flex content-center items-center justify-between',
226
+ label: 'block font-bold text-base text-neutral-highlighted',
227
+ container: 'mt-1 relative',
228
+ description: 'text-(--ui-text) text-base text-neutral-toned mb-4 whitespace-normal',
229
+ error: 'pl-4.5 mt-1 text-(--ui-error) text-xs',
230
+ hint: 'text-(--ui-text)',
231
+ help: 'pl-4.5 mt-1 text-(--ui-text) text-xs'
232
+ },
233
+ variants: {
234
+ size: {
235
+ xs: {
236
+ root: 'text-xs'
237
+ },
238
+ sm: {
239
+ root: 'text-xs'
240
+ },
241
+ md: {
242
+ root: 'text-sm'
243
+ },
244
+ lg: {
245
+ root: 'text-sm'
246
+ },
247
+ xl: {
248
+ root: 'text-base'
249
+ }
250
+ },
251
+ required: {
252
+ true: {
253
+ label: 'after:content-[\'*\'] after:ms-0.5 after:text-(--ui-error)'
254
+ }
255
+ }
256
+ },
257
+ defaultVariants: {
258
+ size: 'md'
259
+ }
260
+ },
261
+ icons: {
262
+ arrowLeft: 'i-mdi-arrow-left',
263
+ arrowRight: 'i-mdi-arrow-right',
264
+ check: 'i-mdi-check',
265
+ chevronDoubleLeft: 'i-mdi-chevron-double-left',
266
+ chevronDoubleRight: 'i-mdi-chevron-double-right',
267
+ chevronDown: 'i-mdi-menu-down',
268
+ chevronLeft: 'i-mdi-menu-left',
269
+ chevronRight: 'i-mdi-menu-right',
270
+ chevronUp: 'i-mdi-menu-up',
271
+ close: 'i-mdi-close',
272
+ ellipsis: 'i-mdi-dots-horizontal',
273
+ external: 'i-mdi-open-in-new',
274
+ file: 'i-mdi-file',
275
+ folder: 'i-mdi-folder',
276
+ folderOpen: 'i-mdi-folder-open',
277
+ loading: 'i-mdi-loading',
278
+ minus: 'i-mdi-minus',
279
+ plus: 'i-mdi-plus',
280
+ search: 'i-mdi-magnify',
281
+ upload: 'i-mdi-upload'
282
+ },
283
+ input: {
284
+ slots: {
285
+ trailingIcon: 'text-neutral group-has-[div>input[aria-invalid=true]]:text-error group-focus-within:text-primary'
286
+ },
287
+ variants: {
288
+ size: {
289
+ bcGov: {
290
+ base: 'px-2.5 pb-2 pt-6 text-base gap-1.5',
291
+ leading: 'ps-2.5',
292
+ trailing: 'pe-2.5',
293
+ leadingIcon: 'size-5',
294
+ leadingAvatarSize: '2xs',
295
+ trailingIcon: 'size-5'
296
+ }
297
+ },
298
+ variant: {
299
+ bcGov: 'ring-0 ring-transparent peer rounded-t-sm rounded-b-none bg-shade shadow-input focus:ring-0 focus:outline-none focus:shadow-input-focus text-neutral-highlighted aria-invalid:shadow-input-error aria-invalid:focus:shadow-input-error aria-invalid:ring-0'
300
+ }
301
+ },
302
+ defaultVariants: {
303
+ size: 'bcGov',
304
+ color: 'primary',
305
+ variant: 'bcGov'
306
+ }
307
+ },
308
+ inputMenu: {
309
+ slots: {
310
+ group: 'p-0',
311
+ item: 'py-3 px-4 data-highlighted:not-data-disabled:text-primary data-highlighted:not-data-disabled:before:bg-shade my-0.75 before:rounded-none',
312
+ trailingIcon: 'delay-50 group-data-[state=open]:rotate-180 transition-transform duration-200 text-(--ui-text) group-focus-visible:text-primary group-data-[state=open]:text-primary group-has-[[aria-invalid=true]]:text-error!'
313
+ },
314
+ variants: {
315
+ size: {
316
+ bcGov: {
317
+ base: 'px-2.5 pb-2 pt-6 text-base gap-1.5',
318
+ leading: 'ps-2.5',
319
+ trailing: 'pe-2.5',
320
+ leadingIcon: 'size-5',
321
+ leadingAvatarSize: '2xs',
322
+ trailingIcon: 'size-5'
323
+ }
324
+ },
325
+ variant: {
326
+ bcGov: 'ring-0 ring-transparent peer rounded-t-sm rounded-b-none bg-shade shadow-input focus:ring-0 focus:outline-none focus:shadow-input-focus text-neutral-highlighted aria-invalid:shadow-input-error aria-invalid:focus:shadow-input-error aria-invalid:ring-0'
327
+ }
328
+ },
329
+ defaultVariants: {
330
+ size: 'bcGov',
331
+ color: 'primary',
332
+ variant: 'bcGov'
333
+ }
334
+ },
335
+ skeleton: {
336
+ base: 'bg-gray-200'
337
+ },
338
+ select: {
339
+ slots: {
340
+ base: 'ring-0',
341
+ content: 'rounded-sm',
342
+ group: 'px-0 py-2',
343
+ trailingIcon: 'delay-50 group-data-[state=open]:rotate-180 transition-transform duration-200 text-(--ui-text) group-focus-visible:text-primary group-data-[state=open]:text-primary group-has-[[aria-invalid=true]]:text-error!',
344
+ item: 'my-0.75 text-neutral-highlighted before:rounded-none data-highlighted:not-data-disabled:text-primary data-highlighted:not-data-disabled:before:bg-shade data-[state=checked]:text-primary data-[state=checked]:bg-blue-50',
345
+ itemLeadingIcon: 'group-data-[state=checked]:text-primary group-data-highlighted:not-data-disabled:text-primary text-neutral-highlighted',
346
+ itemTrailingIcon: 'hidden'
347
+ },
348
+ variants: {
349
+ size: {
350
+ bcGov: {
351
+ base: 'px-2.5 pb-2 pt-6 text-base gap-1.5',
352
+ leading: 'ps-2.5',
353
+ trailing: 'pe-2.5',
354
+ leadingIcon: 'size-5',
355
+ leadingAvatarSize: '2xs',
356
+ trailingIcon: 'size-5',
357
+ label: 'p-1.5 text-xs gap-1.5',
358
+ item: 'py-3 px-4 text-sm gap-3',
359
+ itemLeadingIcon: 'size-5',
360
+ itemLeadingAvatarSize: '2xs',
361
+ itemLeadingChip: 'size-5',
362
+ itemLeadingChipSize: 'md',
363
+ itemTrailingIcon: 'size-5'
364
+ }
365
+ },
366
+ variant: {
367
+ bcGov: 'peer ring-0! rounded-t-sm rounded-b-none bg-shade focus:ring-0 focus:outline-none shadow-input shadow-input focus-visible:shadow-input-focus data-[state=open]:shadow-input-focus text-neutral-highlighted aria-[invalid=true]:shadow-input-error! delay-50'
368
+ }
369
+ },
370
+ defaultVariants: {
371
+ size: 'bcGov',
372
+ color: 'primary',
373
+ variant: 'bcGov'
374
+ }
375
+ },
376
+ selectMenu: {
377
+ slots: {
378
+ content: 'rounded-sm',
379
+ group: 'px-0 py-2',
380
+ trailingIcon: 'delay-50 group-data-[state=open]:rotate-180 transition-transform duration-200 text-(--ui-text) group-focus-visible:text-primary group-data-[state=open]:text-primary group-has-[[aria-invalid=true]]:text-error!',
381
+ item: 'my-0.75 text-neutral-highlighted before:rounded-none data-highlighted:not-data-disabled:text-primary data-highlighted:not-data-disabled:before:bg-shade data-[state=checked]:text-primary data-[state=checked]:bg-blue-50',
382
+ itemLeadingIcon: 'group-data-[state=checked]:text-primary group-data-highlighted:not-data-disabled:text-primary text-neutral-highlighted'
383
+ },
384
+ variants: {
385
+ size: {
386
+ bcGov: {
387
+ base: 'px-2.5 pb-2 pt-6 text-base gap-1.5',
388
+ leading: 'ps-2.5',
389
+ trailing: 'pe-2.5',
390
+ leadingIcon: 'size-5',
391
+ leadingAvatarSize: '2xs',
392
+ trailingIcon: 'size-5',
393
+ label: 'p-1.5 text-xs gap-1.5',
394
+ item: 'py-3 px-4 text-sm gap-3',
395
+ itemLeadingIcon: 'size-5',
396
+ itemLeadingAvatarSize: '2xs',
397
+ itemLeadingChip: 'size-5',
398
+ itemLeadingChipSize: 'md',
399
+ itemTrailingIcon: 'size-5'
400
+ }
401
+ },
402
+ variant: {
403
+ bcGov: 'peer ring-0! rounded-t-sm rounded-b-none bg-shade focus:ring-0 focus:outline-none shadow-input shadow-input focus-visible:shadow-input-focus data-[state=open]:shadow-input-focus text-neutral-highlighted aria-[invalid=true]:shadow-input-error! delay-50'
404
+ }
405
+ },
406
+ defaultVariants: {
407
+ size: 'bcGov',
408
+ color: 'primary',
409
+ variant: 'bcGov'
410
+ }
411
+ },
412
+ textarea: {
413
+ variants: {
414
+ size: {
415
+ bcGov: {
416
+ base: 'px-2.5 pb-1.5 pt-5 text-base gap-1.5 resize-none',
417
+ leading: 'ps-2.5',
418
+ trailing: 'pe-2.5',
419
+ leadingIcon: 'size-5',
420
+ leadingAvatarSize: '2xs',
421
+ trailingIcon: 'size-5'
422
+ }
423
+ },
424
+ variant: {
425
+ bcGov: 'peer rounded-t-sm rounded-b-none bg-shade focus:ring-0 focus:outline-none shadow-input focus:shadow-input-focus text-neutral-highlighted aria-invalid:shadow-input-error aria-invalid:focus:shadow-input-error aria-invalid:ring-0'
426
+ }
427
+ },
428
+ defaultVariants: {
429
+ size: 'bcGov',
430
+ color: 'primary',
431
+ variant: 'bcGov'
432
+ }
433
+ },
434
+ tooltip: {
435
+ slots: {
436
+ content: 'bg-neutral ring-neutral text-secondary p-4',
437
+ arrow: 'fill-neutral'
438
+ }
439
+ }
440
+ }
441
+ })
package/app/app.vue ADDED
@@ -0,0 +1,18 @@
1
+ <script setup lang="ts">
2
+ const { localeProperties } = useI18n()
3
+
4
+ useHead({
5
+ htmlAttrs: {
6
+ lang: () => localeProperties.value.code,
7
+ dir: () => localeProperties.value.dir
8
+ }
9
+ })
10
+ </script>
11
+
12
+ <template>
13
+ <UApp :toaster="{ position: 'bottom-center' }">
14
+ <NuxtLayout>
15
+ <NuxtPage />
16
+ </NuxtLayout>
17
+ </UApp>
18
+ </template>
@@ -0,0 +1,13 @@
1
+ @reference "tailwindcss";
2
+
3
+ .app-container {
4
+ @apply min-h-dvh flex flex-col bg-(--color-gray-100) text-(--color-gray-700); /* bg-gray-100 text-gray-700 */
5
+ }
6
+
7
+ .app-inner-container {
8
+ @apply max-w-(--container-bcGovLg) w-full mx-auto;
9
+ }
10
+
11
+ .app-body {
12
+ @apply grow relative flex flex-col;
13
+ }