terrier-engine 4.58.8 → 4.61.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.
@@ -198,7 +198,7 @@ async function getDistributions(dive: DdDive): Promise<DdDiveDistribution[]> {
198
198
  */
199
199
  async function softDeleteDistribution(dist: DdDiveDistribution) {
200
200
  dist._state = 2
201
- return await Db().update('dd_dive_distribution', dist)
201
+ return await Db().partialUpdate('dd_dive_distribution', dist.id, {_state: 2})
202
202
  }
203
203
 
204
204
 
@@ -1,4 +1,4 @@
1
- // This file was automatically generated on 2025-04-25 14:11:58 -0500, DO NOT EDIT IT MANUALLY!
1
+ // This file was automatically generated on 2025-10-29 09:38:49 -0500, DO NOT EDIT IT MANUALLY!
2
2
 
3
3
  import { Query } from "../queries/queries"
4
4
 
package/package.json CHANGED
@@ -4,7 +4,7 @@
4
4
  "files": [
5
5
  "*"
6
6
  ],
7
- "version": "4.58.8",
7
+ "version": "4.61.0",
8
8
  "repository": {
9
9
  "type": "git",
10
10
  "url": "https://github.com/Terrier-Tech/terrier-engine"
@@ -11,7 +11,13 @@ log.level = 'debug'
11
11
  */
12
12
  type ModelTypeMap = {
13
13
  [name: string]: any
14
- }
14
+ };
15
+
16
+ /**
17
+ * A version of a record where all fields are optional and can be null, while preserving the key set.
18
+ * Includes an optional `id` for convenience with upserts/updates.
19
+ */
20
+ type PartialRecord<T> = { [K in keyof T]?: T[K] | null } & { id?: string }
15
21
 
16
22
  type ModelIncludesMap<M extends ModelTypeMap> = Record<keyof M, any>
17
23
 
@@ -246,6 +252,21 @@ export default class DbClient<PM extends ModelTypeMap, UM extends ModelTypeMap,
246
252
  return await Api.post<DbUpsertResponse<PM,T>>(url, body)
247
253
  }
248
254
 
255
+ /**
256
+ * Updates the given record without requiring the entire record.
257
+ * @param modelType the camel_case name of the model
258
+ * @param id the id of the record
259
+ * @param record the record to update
260
+ * @param includes relations to include in the returned record
261
+ */
262
+ async partialUpdate<T extends keyof PM & string>(modelType: T, id: string, record: PartialRecord<UM[T]>, includes: Includes<PM,T,I> = {}): Promise<DbUpsertResponse<PM,T> & ApiResponse> {
263
+ const url = `/db/model/${modelType}/upsert.json`
264
+ record.id = id
265
+ const body = {record, includes}
266
+ log.debug(`Partially updating ${modelType} ${id} at ${url} with body`, body)
267
+ return await Api.post<DbUpsertResponse<PM,T>>(url, body)
268
+ }
269
+
249
270
  /**
250
271
  * Update the given record and assume it will succeed.
251
272
  * This call should be wrapped in a try/catch.
@@ -9,7 +9,7 @@ import Arrays from "tuff-core/arrays"
9
9
 
10
10
  const log = new Logger('Dropdowns')
11
11
 
12
- const clearDropdownKey = Messages.untypedKey()
12
+ export const clearDropdownKey = Messages.untypedKey()
13
13
 
14
14
  /**
15
15
  * Abstract base class for dropdown parts.
@@ -1,4 +1,4 @@
1
- // This file was automatically generated on 2025-06-03 15:21:22 -0500, DO NOT EDIT IT MANUALLY!
1
+ // This file was automatically generated on 2025-10-28 11:24:27 -0500, DO NOT EDIT IT MANUALLY!
2
2
 
3
3
  import {ColorName} from "../theme"
4
4
  import {PartTag} from "tuff-core/parts"
@@ -169,6 +169,10 @@ import HomeRaw from '../images/icons/home.svg?raw'
169
169
  // @ts-ignore
170
170
  import HomeSrc from '../images/icons/home.svg'
171
171
  // @ts-ignore
172
+ import HundredRaw from '../images/icons/hundred.svg?raw'
173
+ // @ts-ignore
174
+ import HundredSrc from '../images/icons/hundred.svg'
175
+ // @ts-ignore
172
176
  import ImageRaw from '../images/icons/image.svg?raw'
173
177
  // @ts-ignore
174
178
  import ImageSrc from '../images/icons/image.svg'
@@ -237,6 +241,10 @@ import ListViewRaw from '../images/icons/list_view.svg?raw'
237
241
  // @ts-ignore
238
242
  import ListViewSrc from '../images/icons/list_view.svg'
239
243
  // @ts-ignore
244
+ import LolRaw from '../images/icons/lol.svg?raw'
245
+ // @ts-ignore
246
+ import LolSrc from '../images/icons/lol.svg'
247
+ // @ts-ignore
240
248
  import MetricsRaw from '../images/icons/metrics.svg?raw'
241
249
  // @ts-ignore
242
250
  import MetricsSrc from '../images/icons/metrics.svg'
@@ -297,10 +305,18 @@ import PrioritizedRaw from '../images/icons/prioritized.svg?raw'
297
305
  // @ts-ignore
298
306
  import PrioritizedSrc from '../images/icons/prioritized.svg'
299
307
  // @ts-ignore
308
+ import PrivateRaw from '../images/icons/private.svg?raw'
309
+ // @ts-ignore
310
+ import PrivateSrc from '../images/icons/private.svg'
311
+ // @ts-ignore
300
312
  import ProjectRaw from '../images/icons/project.svg?raw'
301
313
  // @ts-ignore
302
314
  import ProjectSrc from '../images/icons/project.svg'
303
315
  // @ts-ignore
316
+ import PublicRaw from '../images/icons/public.svg?raw'
317
+ // @ts-ignore
318
+ import PublicSrc from '../images/icons/public.svg'
319
+ // @ts-ignore
304
320
  import QuestionRaw from '../images/icons/question.svg?raw'
305
321
  // @ts-ignore
306
322
  import QuestionSrc from '../images/icons/question.svg'
@@ -413,6 +429,10 @@ import UploadRaw from '../images/icons/upload.svg?raw'
413
429
  // @ts-ignore
414
430
  import UploadSrc from '../images/icons/upload.svg'
415
431
  // @ts-ignore
432
+ import UpvoteRaw from '../images/icons/upvote.svg?raw'
433
+ // @ts-ignore
434
+ import UpvoteSrc from '../images/icons/upvote.svg'
435
+ // @ts-ignore
416
436
  import UserRaw from '../images/icons/user.svg?raw'
417
437
  // @ts-ignore
418
438
  import UserSrc from '../images/icons/user.svg'
@@ -594,6 +614,10 @@ export const IconDefs: Record<HubIconName,{ raw: string, src: string }> = {
594
614
  raw: HomeRaw,
595
615
  src: HomeSrc,
596
616
  },
617
+ "hub-hundred": {
618
+ raw: HundredRaw,
619
+ src: HundredSrc,
620
+ },
597
621
  "hub-image": {
598
622
  raw: ImageRaw,
599
623
  src: ImageSrc,
@@ -662,6 +686,10 @@ export const IconDefs: Record<HubIconName,{ raw: string, src: string }> = {
662
686
  raw: ListViewRaw,
663
687
  src: ListViewSrc,
664
688
  },
689
+ "hub-lol": {
690
+ raw: LolRaw,
691
+ src: LolSrc,
692
+ },
665
693
  "hub-metrics": {
666
694
  raw: MetricsRaw,
667
695
  src: MetricsSrc,
@@ -722,10 +750,18 @@ export const IconDefs: Record<HubIconName,{ raw: string, src: string }> = {
722
750
  raw: PrioritizedRaw,
723
751
  src: PrioritizedSrc,
724
752
  },
753
+ "hub-private": {
754
+ raw: PrivateRaw,
755
+ src: PrivateSrc,
756
+ },
725
757
  "hub-project": {
726
758
  raw: ProjectRaw,
727
759
  src: ProjectSrc,
728
760
  },
761
+ "hub-public": {
762
+ raw: PublicRaw,
763
+ src: PublicSrc,
764
+ },
729
765
  "hub-question": {
730
766
  raw: QuestionRaw,
731
767
  src: QuestionSrc,
@@ -838,6 +874,10 @@ export const IconDefs: Record<HubIconName,{ raw: string, src: string }> = {
838
874
  raw: UploadRaw,
839
875
  src: UploadSrc,
840
876
  },
877
+ "hub-upvote": {
878
+ raw: UpvoteRaw,
879
+ src: UpvoteSrc,
880
+ },
841
881
  "hub-user": {
842
882
  raw: UserRaw,
843
883
  src: UserSrc,
@@ -857,7 +897,7 @@ export const IconDefs: Record<HubIconName,{ raw: string, src: string }> = {
857
897
  }
858
898
 
859
899
  const Names = [
860
- 'hub-active', 'hub-admin', 'hub-archive', 'hub-arrow_down', 'hub-arrow_left', 'hub-arrow_right', 'hub-arrow_up', 'hub-assign', 'hub-attachment', 'hub-back', 'hub-badge', 'hub-board', 'hub-bookmark', 'hub-bookmark_add', 'hub-bookmark_remove', 'hub-bookmarked', 'hub-bookmarks', 'hub-branch', 'hub-bug', 'hub-calculator', 'hub-checkmark', 'hub-close', 'hub-clypboard', 'hub-comment', 'hub-complete', 'hub-dashboard', 'hub-data_pull', 'hub-data_update', 'hub-database', 'hub-day', 'hub-delete', 'hub-documentation', 'hub-edit', 'hub-existing_child', 'hub-existing_parent', 'hub-feature', 'hub-flex', 'hub-forward', 'hub-github', 'hub-history', 'hub-home', 'hub-image', 'hub-inbox', 'hub-info', 'hub-internal', 'hub-issue', 'hub-lane', 'hub-lane_asap', 'hub-lane_days', 'hub-lane_hours', 'hub-lane_weeks', 'hub-lanes_board', 'hub-level_complete', 'hub-level_highway', 'hub-level_on_ramp', 'hub-level_parking', 'hub-link', 'hub-list_view', 'hub-metrics', 'hub-minus', 'hub-new_child', 'hub-new_parent', 'hub-night', 'hub-origin', 'hub-pending', 'hub-plot', 'hub-plus', 'hub-post', 'hub-posts', 'hub-pr_closed', 'hub-pr_merged', 'hub-pr_open', 'hub-prioritized', 'hub-project', 'hub-question', 'hub-reaction', 'hub-recent', 'hub-refresh', 'hub-related_posts', 'hub-releases', 'hub-request', 'hub-settings', 'hub-split_view', 'hub-status', 'hub-step_demo', 'hub-step_deploy', 'hub-step_develop', 'hub-step_investigate', 'hub-step_none', 'hub-step_required', 'hub-step_review', 'hub-step_test', 'hub-steps', 'hub-steps_board', 'hub-subscribe', 'hub-support', 'hub-team', 'hub-terrier', 'hub-thumbs_up', 'hub-type', 'hub-unprioritized', 'hub-upload', 'hub-user', 'hub-users', 'hub-website', 'hub-week'
900
+ 'hub-active', 'hub-admin', 'hub-archive', 'hub-arrow_down', 'hub-arrow_left', 'hub-arrow_right', 'hub-arrow_up', 'hub-assign', 'hub-attachment', 'hub-back', 'hub-badge', 'hub-board', 'hub-bookmark', 'hub-bookmark_add', 'hub-bookmark_remove', 'hub-bookmarked', 'hub-bookmarks', 'hub-branch', 'hub-bug', 'hub-calculator', 'hub-checkmark', 'hub-close', 'hub-clypboard', 'hub-comment', 'hub-complete', 'hub-dashboard', 'hub-data_pull', 'hub-data_update', 'hub-database', 'hub-day', 'hub-delete', 'hub-documentation', 'hub-edit', 'hub-existing_child', 'hub-existing_parent', 'hub-feature', 'hub-flex', 'hub-forward', 'hub-github', 'hub-history', 'hub-home', 'hub-hundred', 'hub-image', 'hub-inbox', 'hub-info', 'hub-internal', 'hub-issue', 'hub-lane', 'hub-lane_asap', 'hub-lane_days', 'hub-lane_hours', 'hub-lane_weeks', 'hub-lanes_board', 'hub-level_complete', 'hub-level_highway', 'hub-level_on_ramp', 'hub-level_parking', 'hub-link', 'hub-list_view', 'hub-lol', 'hub-metrics', 'hub-minus', 'hub-new_child', 'hub-new_parent', 'hub-night', 'hub-origin', 'hub-pending', 'hub-plot', 'hub-plus', 'hub-post', 'hub-posts', 'hub-pr_closed', 'hub-pr_merged', 'hub-pr_open', 'hub-prioritized', 'hub-private', 'hub-project', 'hub-public', 'hub-question', 'hub-reaction', 'hub-recent', 'hub-refresh', 'hub-related_posts', 'hub-releases', 'hub-request', 'hub-settings', 'hub-split_view', 'hub-status', 'hub-step_demo', 'hub-step_deploy', 'hub-step_develop', 'hub-step_investigate', 'hub-step_none', 'hub-step_required', 'hub-step_review', 'hub-step_test', 'hub-steps', 'hub-steps_board', 'hub-subscribe', 'hub-support', 'hub-team', 'hub-terrier', 'hub-thumbs_up', 'hub-type', 'hub-unprioritized', 'hub-upload', 'hub-upvote', 'hub-user', 'hub-users', 'hub-website', 'hub-week'
861
901
  ] as const
862
902
 
863
903
  export type HubIconName = typeof Names[number]
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 32 32"><g fill="none"><g fill="currentColor" fill-rule="nonzero"><path d="M7.815 15.409c.22.066.414.193.58.381.166.188.279.384.34.588.06.205.05.398-.033.58-.083.183-.263.296-.539.34-.53.089-1.077.13-1.64.125-.564-.006-1.095-.014-1.592-.025-.343 0-.577-.105-.704-.315a.931.931 0 0 1-.117-.688c.05-.249.186-.475.407-.68.22-.204.502-.306.845-.306V9.376a.766.766 0 0 1-.431-.025 1.103 1.103 0 0 1-.381-.224c-.11-.1-.196-.218-.257-.356a.748.748 0 0 1-.058-.423c.033-.243.157-.492.373-.746.215-.254.467-.464.754-.63.287-.165.583-.265.887-.298a.998.998 0 0 1 .787.232c.088.066.168.16.24.282a.665.665 0 0 1 .108.331c.011 1.326.014 2.644.008 3.953-.005 1.31-.008 2.622-.008 3.937h.43ZM16.362 12.657a5.4 5.4 0 0 0 .083-1.176 4.52 4.52 0 0 0-.224-1.31 2.687 2.687 0 0 0-.63-1.06c-.282-.288-.666-.431-1.152-.431-.53 0-.956.17-1.276.513-.32.343-.56.76-.721 1.252-.16.491-.257 1-.29 1.525-.033.524-.022.97.033 1.334.033.243.091.497.174.762.083.265.19.509.323.73.133.22.301.397.506.53.204.133.45.193.737.182.398-.022.732-.113 1.003-.273.27-.16.5-.365.688-.613.188-.25.34-.536.456-.862.116-.326.207-.666.273-1.02l.017-.083Zm1.906.332a7.394 7.394 0 0 1-.829 2.312 4.84 4.84 0 0 1-1.707 1.782 3.812 3.812 0 0 1-1.16.348c-.409.055-.812.05-1.21-.017a3.328 3.328 0 0 1-1.127-.406 2.995 2.995 0 0 1-.912-.82c-.552-.752-.909-1.53-1.069-2.337a7.18 7.18 0 0 1-.025-2.553c.1-.63.274-1.254.522-1.873.249-.618.6-1.16 1.053-1.624a3.81 3.81 0 0 1 1.21-.853 3.442 3.442 0 0 1 2.71-.058c.447.176.859.441 1.235.795.375.354.67.743.886 1.169.216.425.368.864.456 1.317.089.453.127.92.116 1.4a8.62 8.62 0 0 1-.149 1.418ZM25.793 12.657a5.4 5.4 0 0 0 .083-1.176 4.52 4.52 0 0 0-.224-1.31 2.687 2.687 0 0 0-.63-1.06c-.282-.288-.666-.431-1.152-.431-.53 0-.956.17-1.276.513-.32.343-.56.76-.721 1.252-.16.491-.257 1-.29 1.525-.033.524-.022.97.033 1.334.033.243.091.497.174.762.083.265.19.509.323.73.133.22.301.397.506.53.204.133.45.193.737.182.398-.022.732-.113 1.003-.273.27-.16.5-.365.688-.613.188-.25.34-.536.456-.862.116-.326.207-.666.273-1.02l.017-.083Zm1.906.332a7.394 7.394 0 0 1-.829 2.312 4.84 4.84 0 0 1-1.707 1.782 3.812 3.812 0 0 1-1.16.348c-.41.055-.812.05-1.21-.017a3.328 3.328 0 0 1-1.127-.406 2.995 2.995 0 0 1-.912-.82c-.552-.752-.909-1.53-1.069-2.337a7.18 7.18 0 0 1-.025-2.553c.1-.63.274-1.254.522-1.873.249-.618.6-1.16 1.053-1.624a3.81 3.81 0 0 1 1.21-.853 3.442 3.442 0 0 1 2.71-.058c.447.176.859.441 1.235.795.375.354.67.743.886 1.169.216.425.368.864.456 1.317.088.453.127.92.116 1.4a8.62 8.62 0 0 1-.15 1.418Z"/></g><path stroke="currentColor" stroke-linecap="round" stroke-width="2" d="M5 22c6-2 13.333-2.333 22-1M8 24.5c4.667-1.667 11-1.833 19-.5"/></g></svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 32 32"><g fill="none"><path fill="currentColor" fill-opacity="0.33" d="M16 5c6.075 0 11 4.925 11 11s-4.925 11-11 11S5 22.075 5 16 9.925 5 16 5Zm7 12H9c0 3.314 3.134 6 7 6s7-2.686 7-6Z"/><circle cx="16" cy="16" r="11" stroke="currentColor" stroke-width="2"/><path stroke="currentColor" stroke-linejoin="round" stroke-width="2" d="M16 23c3.866 0 7-2.686 7-6H9c0 3.314 3.134 6 7 6Z"/><path stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9 13c.417-1.333 1.25-2 2.5-2s2.083.667 2.5 2M18 13c.417-1.333 1.25-2 2.5-2s2.083.667 2.5 2"/></g></svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 32 32"><g fill="none"><path fill="currentColor" d="M16 7c-5.492 0-9.507 2.918-11.926 8.634a.941.941 0 0 0 0 .732C6.494 22.082 10.508 25 16 25s9.507-2.918 11.926-8.634a.941.941 0 0 0 0-.732C25.506 9.918 21.492 7 16 7Zm.292 2.003c4.354.094 7.52 2.311 9.594 6.748l.114.248-.114.25C23.766 20.784 20.504 23 16 23l-.292-.003c-4.353-.094-7.519-2.311-9.593-6.748L6 16l.115-.25C8.235 11.217 11.497 9 16 9l.292.003Z"/><path fill="currentColor" fill-opacity="0.33" d="M16.292 9.003c4.354.094 7.52 2.311 9.594 6.748l.114.248-.114.25C23.766 20.784 20.504 23 16 23l-.292-.003c-4.353-.094-7.519-2.311-9.593-6.748L6 16l.115-.25C8.235 11.217 11.497 9 16 9l.292.003Z"/><path fill="currentColor" fill-opacity="0.33" d="m16 9 .292.003c1.99.043 3.733.53 5.236 1.47L10.474 21.528c-1.785-1.116-3.233-2.87-4.36-5.279L6 16l.115-.25C8.235 11.217 11.497 9 16 9Z"/><path stroke="currentColor" stroke-linecap="round" stroke-width="2" d="M27 5 5 27"/><path fill="currentColor" fill-rule="evenodd" d="M18.83 13.173a4 4 0 0 1-5.657 5.657Z"/></g></svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 32 32"><g fill="currentColor"><path d="M16 7c-5.492 0-9.507 2.918-11.926 8.634a.941.941 0 0 0 0 .732C6.494 22.082 10.508 25 16 25s9.507-2.918 11.926-8.634a.941.941 0 0 0 0-.732C25.506 9.918 21.492 7 16 7Zm.292 2.003c4.354.094 7.52 2.311 9.594 6.748l.114.248-.114.25C23.766 20.784 20.504 23 16 23l-.292-.003c-4.353-.094-7.519-2.311-9.593-6.748L6 16l.115-.25C8.235 11.217 11.497 9 16 9l.292.003Z"/><path fill-opacity="0.33" d="M16.292 9.003c4.354.094 7.52 2.311 9.594 6.748l.114.248-.114.25C23.766 20.784 20.504 23 16 23l-.292-.003c-4.353-.094-7.519-2.311-9.593-6.748L6 16l.115-.25C8.235 11.217 11.497 9 16 9l.292.003Z"/><circle cx="16" cy="16" r="4" fill-rule="evenodd"/></g></svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 32 32"><path fill="currentColor" fill-opacity="0.33" fill-rule="evenodd" stroke="currentColor" stroke-linejoin="round" stroke-width="2" d="M12 27h8V16h6L16 5 6 16h6z"/></svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 32 32"><g fill="none"><g fill="#000" fill-rule="nonzero"><path d="M7.815 15.409c.22.066.414.193.58.381.166.188.279.384.34.588.06.205.05.398-.033.58-.083.183-.263.296-.539.34-.53.089-1.077.13-1.64.125-.564-.006-1.095-.014-1.592-.025-.343 0-.577-.105-.704-.315a.931.931 0 0 1-.117-.688c.05-.249.186-.475.407-.68.22-.204.502-.306.845-.306V9.376a.766.766 0 0 1-.431-.025 1.103 1.103 0 0 1-.381-.224c-.11-.1-.196-.218-.257-.356a.748.748 0 0 1-.058-.423c.033-.243.157-.492.373-.746.215-.254.467-.464.754-.63.287-.165.583-.265.887-.298a.998.998 0 0 1 .787.232c.088.066.168.16.24.282a.665.665 0 0 1 .108.331c.011 1.326.014 2.644.008 3.953-.005 1.31-.008 2.622-.008 3.937h.43ZM16.362 12.657a5.4 5.4 0 0 0 .083-1.176 4.52 4.52 0 0 0-.224-1.31 2.687 2.687 0 0 0-.63-1.06c-.282-.288-.666-.431-1.152-.431-.53 0-.956.17-1.276.513-.32.343-.56.76-.721 1.252-.16.491-.257 1-.29 1.525-.033.524-.022.97.033 1.334.033.243.091.497.174.762.083.265.19.509.323.73.133.22.301.397.506.53.204.133.45.193.737.182.398-.022.732-.113 1.003-.273.27-.16.5-.365.688-.613.188-.25.34-.536.456-.862.116-.326.207-.666.273-1.02l.017-.083Zm1.906.332a7.394 7.394 0 0 1-.829 2.312 4.84 4.84 0 0 1-1.707 1.782 3.812 3.812 0 0 1-1.16.348c-.409.055-.812.05-1.21-.017a3.328 3.328 0 0 1-1.127-.406 2.995 2.995 0 0 1-.912-.82c-.552-.752-.909-1.53-1.069-2.337a7.18 7.18 0 0 1-.025-2.553c.1-.63.274-1.254.522-1.873.249-.618.6-1.16 1.053-1.624a3.81 3.81 0 0 1 1.21-.853 3.442 3.442 0 0 1 2.71-.058c.447.176.859.441 1.235.795.375.354.67.743.886 1.169.216.425.368.864.456 1.317.089.453.127.92.116 1.4a8.62 8.62 0 0 1-.149 1.418ZM25.793 12.657a5.4 5.4 0 0 0 .083-1.176 4.52 4.52 0 0 0-.224-1.31 2.687 2.687 0 0 0-.63-1.06c-.282-.288-.666-.431-1.152-.431-.53 0-.956.17-1.276.513-.32.343-.56.76-.721 1.252-.16.491-.257 1-.29 1.525-.033.524-.022.97.033 1.334.033.243.091.497.174.762.083.265.19.509.323.73.133.22.301.397.506.53.204.133.45.193.737.182.398-.022.732-.113 1.003-.273.27-.16.5-.365.688-.613.188-.25.34-.536.456-.862.116-.326.207-.666.273-1.02l.017-.083Zm1.906.332a7.394 7.394 0 0 1-.829 2.312 4.84 4.84 0 0 1-1.707 1.782 3.812 3.812 0 0 1-1.16.348c-.41.055-.812.05-1.21-.017a3.328 3.328 0 0 1-1.127-.406 2.995 2.995 0 0 1-.912-.82c-.552-.752-.909-1.53-1.069-2.337a7.18 7.18 0 0 1-.025-2.553c.1-.63.274-1.254.522-1.873.249-.618.6-1.16 1.053-1.624a3.81 3.81 0 0 1 1.21-.853 3.442 3.442 0 0 1 2.71-.058c.447.176.859.441 1.235.795.375.354.67.743.886 1.169.216.425.368.864.456 1.317.088.453.127.92.116 1.4a8.62 8.62 0 0 1-.15 1.418Z"/></g><path stroke="#000" stroke-linecap="round" stroke-width="2" d="M5 22c6-2 13.333-2.333 22-1M8 24.5c4.667-1.667 11-1.833 19-.5"/></g></svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 32 32"><g fill="none"><path fill="#000" fill-opacity=".25" d="M16 5c6.075 0 11 4.925 11 11s-4.925 11-11 11S5 22.075 5 16 9.925 5 16 5Zm7 12H9c0 3.314 3.134 6 7 6s7-2.686 7-6Z"/><circle cx="16" cy="16" r="11" stroke="#000" stroke-width="2"/><path stroke="#000" stroke-linejoin="round" stroke-width="2" d="M16 23c3.866 0 7-2.686 7-6H9c0 3.314 3.134 6 7 6Z"/><path stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9 13c.417-1.333 1.25-2 2.5-2s2.083.667 2.5 2M18 13c.417-1.333 1.25-2 2.5-2s2.083.667 2.5 2"/></g></svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 32 32"><g fill="none"><path fill="#000" d="M16 7c-5.492 0-9.507 2.918-11.926 8.634a.941.941 0 0 0 0 .732C6.494 22.082 10.508 25 16 25s9.507-2.918 11.926-8.634a.941.941 0 0 0 0-.732C25.506 9.918 21.492 7 16 7Zm.292 2.003c4.354.094 7.52 2.311 9.594 6.748l.114.248-.114.25C23.766 20.784 20.504 23 16 23l-.292-.003c-4.353-.094-7.519-2.311-9.593-6.748L6 16l.115-.25C8.235 11.217 11.497 9 16 9l.292.003Z"/><path fill="#000" fill-opacity=".25" d="M16.292 9.003c4.354.094 7.52 2.311 9.594 6.748l.114.248-.114.25C23.766 20.784 20.504 23 16 23l-.292-.003c-4.353-.094-7.519-2.311-9.593-6.748L6 16l.115-.25C8.235 11.217 11.497 9 16 9l.292.003Z"/><path fill="#000" fill-opacity=".25" d="m16 9 .292.003c1.99.043 3.733.53 5.236 1.47L10.474 21.528c-1.785-1.116-3.233-2.87-4.36-5.279L6 16l.115-.25C8.235 11.217 11.497 9 16 9Z"/><path stroke="#000" stroke-linecap="round" stroke-width="2" d="M27 5 5 27"/><path fill="#000" fill-rule="evenodd" d="M18.83 13.173a4 4 0 0 1-5.657 5.657Z"/></g></svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 32 32"><g fill="#000"><path d="M16 7c-5.492 0-9.507 2.918-11.926 8.634a.941.941 0 0 0 0 .732C6.494 22.082 10.508 25 16 25s9.507-2.918 11.926-8.634a.941.941 0 0 0 0-.732C25.506 9.918 21.492 7 16 7Zm.292 2.003c4.354.094 7.52 2.311 9.594 6.748l.114.248-.114.25C23.766 20.784 20.504 23 16 23l-.292-.003c-4.353-.094-7.519-2.311-9.593-6.748L6 16l.115-.25C8.235 11.217 11.497 9 16 9l.292.003Z"/><path fill-opacity=".25" d="M16.292 9.003c4.354.094 7.52 2.311 9.594 6.748l.114.248-.114.25C23.766 20.784 20.504 23 16 23l-.292-.003c-4.353-.094-7.519-2.311-9.593-6.748L6 16l.115-.25C8.235 11.217 11.497 9 16 9l.292.003Z"/><circle cx="16" cy="16" r="4" fill-rule="evenodd"/></g></svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 32 32"><path fill="#000" fill-opacity=".25" fill-rule="evenodd" stroke="#000" stroke-linejoin="round" stroke-width="2" d="M12 27h8V16h6L16 5 6 16h6z"/></svg>
@@ -0,0 +1,13 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <svg width="32px" height="32px" viewBox="0 0 32 32" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
3
+ <title>icon-hundred</title>
4
+ <g id="icon-hundred" stroke="none" fill="none">
5
+ <g id="100" stroke-width="1" fill-rule="evenodd" transform="translate(1.5, 0)" fill="#000000">
6
+ <path d="M6.31491713,15.4088398 C6.5359116,15.4751381 6.72928177,15.6022099 6.89502762,15.7900552 C7.06077348,15.9779006 7.17403315,16.1740331 7.23480663,16.378453 C7.29558011,16.5828729 7.28453039,16.7762431 7.20165746,16.9585635 C7.11878453,17.140884 6.93922652,17.2541436 6.66298343,17.2983425 C6.13259669,17.3867403 5.58563536,17.4281768 5.02209945,17.4226519 C4.45856354,17.4171271 3.9281768,17.4088398 3.43093923,17.3977901 C3.08839779,17.3977901 2.85359116,17.2928177 2.72651934,17.0828729 C2.59944751,16.8729282 2.56077348,16.6436464 2.61049724,16.3950276 C2.66022099,16.1464088 2.79558011,15.9198895 3.01657459,15.7154696 C3.23756906,15.5110497 3.51933702,15.4088398 3.86187845,15.4088398 L3.86187845,9.37569061 C3.71823204,9.40883978 3.57458564,9.40055249 3.43093923,9.35082873 C3.28729282,9.30110497 3.16022099,9.22651934 3.04972376,9.12707182 C2.93922652,9.02762431 2.85359116,8.90883978 2.79281768,8.77071823 C2.7320442,8.63259669 2.71270718,8.49171271 2.73480663,8.3480663 C2.7679558,8.10497238 2.89226519,7.85635359 3.10773481,7.60220994 C3.32320442,7.3480663 3.57458564,7.13812155 3.86187845,6.97237569 C4.14917127,6.80662983 4.44475138,6.70718232 4.74861878,6.67403315 C5.05248619,6.64088398 5.31491713,6.71823204 5.5359116,6.90607735 C5.62430939,6.97237569 5.70441989,7.06629834 5.77624309,7.1878453 C5.8480663,7.30939227 5.8839779,7.4198895 5.8839779,7.51933702 C5.89502762,8.84530387 5.89779006,10.1629834 5.89226519,11.4723757 C5.88674033,12.781768 5.8839779,14.0939227 5.8839779,15.4088398 L6.31491713,15.4088398 Z" id="Path" fill-rule="nonzero"></path>
7
+ <path d="M14.8618785,12.6574586 C14.9281768,12.3259669 14.9558011,11.9337017 14.9447514,11.480663 C14.9337017,11.0276243 14.859116,10.5911602 14.7209945,10.1712707 C14.5828729,9.75138122 14.3729282,9.39779006 14.0911602,9.11049724 C13.8093923,8.82320442 13.4254144,8.67955801 12.9392265,8.67955801 C12.4088398,8.67955801 11.9834254,8.85082873 11.6629834,9.19337017 C11.3425414,9.5359116 11.1022099,9.95303867 10.941989,10.4447514 C10.781768,10.9364641 10.6850829,11.4447514 10.6519337,11.9696133 C10.6187845,12.4944751 10.6298343,12.9392265 10.6850829,13.3038674 C10.718232,13.5469613 10.7762431,13.801105 10.859116,14.0662983 C10.941989,14.3314917 11.0497238,14.5745856 11.1823204,14.7955801 C11.3149171,15.0165746 11.4834254,15.1933702 11.6878453,15.3259669 C11.8922652,15.4585635 12.1381215,15.519337 12.4254144,15.5082873 C12.8232044,15.4861878 13.1574586,15.3950276 13.4281768,15.2348066 C13.698895,15.0745856 13.9281768,14.8701657 14.1160221,14.621547 C14.3038674,14.3729282 14.4558011,14.0856354 14.5718232,13.7596685 C14.6878453,13.4337017 14.7790055,13.0939227 14.8453039,12.7403315 L14.8618785,12.6574586 Z M16.7679558,12.9889503 C16.6243094,13.7955801 16.3480663,14.5662983 15.9392265,15.301105 C15.5303867,16.0359116 14.961326,16.6298343 14.2320442,17.0828729 C13.8674033,17.2596685 13.480663,17.3756906 13.0718232,17.4309392 C12.6629834,17.4861878 12.2596685,17.480663 11.8618785,17.4143646 C11.4640884,17.3480663 11.0883978,17.2127072 10.7348066,17.0082873 C10.3812155,16.8038674 10.0773481,16.5303867 9.82320442,16.1878453 C9.27071823,15.4364641 8.91436464,14.6574586 8.75414365,13.8508287 C8.59392265,13.0441989 8.58563536,12.1933702 8.72928177,11.2983425 C8.82872928,10.6685083 9.00276243,10.0441989 9.25138122,9.42541436 C9.5,8.80662983 9.85082873,8.26519337 10.3038674,7.80110497 C10.6685083,7.42541436 11.0718232,7.14088398 11.5138122,6.94751381 C11.9558011,6.75414365 12.4060773,6.6519337 12.8646409,6.64088398 C13.3232044,6.62983425 13.7762431,6.71270718 14.2237569,6.88950276 C14.6712707,7.06629834 15.0828729,7.33149171 15.4585635,7.68508287 C15.8342541,8.03867403 16.1298343,8.4281768 16.3453039,8.85359116 C16.5607735,9.27900552 16.7127072,9.71823204 16.801105,10.1712707 C16.8895028,10.6243094 16.9281768,11.0911602 16.9171271,11.5718232 C16.9060773,12.0524862 16.8563536,12.5248619 16.7679558,12.9889503 Z" id="Shape" fill-rule="nonzero"></path>
8
+ <path d="M24.2928177,12.6574586 C24.359116,12.3259669 24.3867403,11.9337017 24.3756906,11.480663 C24.3646409,11.0276243 24.2900552,10.5911602 24.1519337,10.1712707 C24.0138122,9.75138122 23.8038674,9.39779006 23.5220994,9.11049724 C23.2403315,8.82320442 22.8563536,8.67955801 22.3701657,8.67955801 C21.839779,8.67955801 21.4143646,8.85082873 21.0939227,9.19337017 C20.7734807,9.5359116 20.5331492,9.95303867 20.3729282,10.4447514 C20.2127072,10.9364641 20.1160221,11.4447514 20.0828729,11.9696133 C20.0497238,12.4944751 20.0607735,12.9392265 20.1160221,13.3038674 C20.1491713,13.5469613 20.2071823,13.801105 20.2900552,14.0662983 C20.3729282,14.3314917 20.480663,14.5745856 20.6132597,14.7955801 C20.7458564,15.0165746 20.9143646,15.1933702 21.1187845,15.3259669 C21.3232044,15.4585635 21.5690608,15.519337 21.8563536,15.5082873 C22.2541436,15.4861878 22.5883978,15.3950276 22.859116,15.2348066 C23.1298343,15.0745856 23.359116,14.8701657 23.5469613,14.621547 C23.7348066,14.3729282 23.8867403,14.0856354 24.0027624,13.7596685 C24.1187845,13.4337017 24.2099448,13.0939227 24.2762431,12.7403315 L24.2928177,12.6574586 Z M26.198895,12.9889503 C26.0552486,13.7955801 25.7790055,14.5662983 25.3701657,15.301105 C24.961326,16.0359116 24.3922652,16.6298343 23.6629834,17.0828729 C23.2983425,17.2596685 22.9116022,17.3756906 22.5027624,17.4309392 C22.0939227,17.4861878 21.6906077,17.480663 21.2928177,17.4143646 C20.8950276,17.3480663 20.519337,17.2127072 20.1657459,17.0082873 C19.8121547,16.8038674 19.5082873,16.5303867 19.2541436,16.1878453 C18.7016575,15.4364641 18.3453039,14.6574586 18.1850829,13.8508287 C18.0248619,13.0441989 18.0165746,12.1933702 18.160221,11.2983425 C18.2596685,10.6685083 18.4337017,10.0441989 18.6823204,9.42541436 C18.9309392,8.80662983 19.281768,8.26519337 19.7348066,7.80110497 C20.0994475,7.42541436 20.5027624,7.14088398 20.9447514,6.94751381 C21.3867403,6.75414365 21.8370166,6.6519337 22.2955801,6.64088398 C22.7541436,6.62983425 23.2071823,6.71270718 23.6546961,6.88950276 C24.1022099,7.06629834 24.5138122,7.33149171 24.8895028,7.68508287 C25.2651934,8.03867403 25.5607735,8.4281768 25.7762431,8.85359116 C25.9917127,9.27900552 26.1436464,9.71823204 26.2320442,10.1712707 C26.320442,10.6243094 26.359116,11.0911602 26.3480663,11.5718232 C26.3370166,12.0524862 26.2872928,12.5248619 26.198895,12.9889503 Z" id="Shape" fill-rule="nonzero"></path>
9
+ </g>
10
+ <path d="M5,22 C11,20 18.3333333,19.6666667 27,21" id="Path" stroke="#000000" stroke-width="2" stroke-linecap="round"></path>
11
+ <path d="M8,24.5 C12.6666667,22.8333333 19,22.6666667 27,24" id="Path-Copy" stroke="#000000" stroke-width="2" stroke-linecap="round"></path>
12
+ </g>
13
+ </svg>
@@ -0,0 +1,11 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <svg width="32px" height="32px" viewBox="0 0 32 32" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
3
+ <title>icon-lol</title>
4
+ <g id="icon-lol" stroke="none" fill="none">
5
+ <path d="M16,5 C22.0751322,5 27,9.92486775 27,16 C27,22.0751322 22.0751322,27 16,27 C9.92486775,27 5,22.0751322 5,16 C5,9.92486775 9.92486775,5 16,5 Z M23,17 L9,17 C9,20.3137085 12.1340068,23 16,23 C19.8659932,23 23,20.3137085 23,17 Z" id="Oval-3" fill-opacity="0.25" fill="#000000" fill-rule="nonzero"></path>
6
+ <circle id="Oval" stroke="#000000" stroke-width="2" cx="16" cy="16" r="11"></circle>
7
+ <path d="M16,23 C19.8659932,23 23,20.3137085 23,17 C17.75,17 12.0625,17 9,17 C9,20.3137085 12.1340068,23 16,23 Z" id="Oval-Copy" stroke="#000000" stroke-width="2" stroke-linejoin="round"></path>
8
+ <path d="M9,13 C9.41666667,11.6666667 10.25,11 11.5,11 C12.75,11 13.5833333,11.6666667 14,13" id="Path" stroke="#000000" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></path>
9
+ <path d="M18,13 C18.4166667,11.6666667 19.25,11 20.5,11 C21.75,11 22.5833333,11.6666667 23,13" id="Path-Copy" stroke="#000000" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></path>
10
+ </g>
11
+ </svg>
@@ -0,0 +1,11 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <svg width="32px" height="32px" viewBox="0 0 32 32" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
3
+ <title>icon-private</title>
4
+ <g id="icon-private" stroke="none" fill="none">
5
+ <path d="M16,7 C10.5081428,7 6.49336349,9.91843576 4.07387582,15.6344754 C3.97537473,15.8671842 3.97537473,16.1328158 4.07387582,16.3655246 C6.49336349,22.0815642 10.5081428,25 16,25 C21.4918572,25 25.5066365,22.0815642 27.9261242,16.3655246 C28.0246253,16.1328158 28.0246253,15.8671842 27.9261242,15.6344754 C25.5066365,9.91843576 21.4918572,7 16,7 Z M16.2923884,9.00314252 C20.6455196,9.09743374 23.8116583,11.3143533 25.8862957,15.7506979 L26,15.999125 L25.8862957,16.2493021 C23.7655552,20.7842322 20.5042633,23 16.0004202,23 L15.7084519,22.9968575 C11.3553207,22.9025663 8.18918201,20.6856467 6.11454454,16.2493021 L6,16 L6.11454454,15.7506979 C8.23528507,11.2157678 11.496577,9 16.0004202,9 L16.2923884,9.00314252 Z" id="Path-68" fill="#000000" fill-rule="nonzero"></path>
6
+ <path d="M16.2923884,9.00314252 C20.6455196,9.09743374 23.8116583,11.3143533 25.8862957,15.7506979 L26,15.999125 L25.8862957,16.2493021 C23.7655552,20.7842322 20.5042633,23 16.0004202,23 L15.7084519,22.9968575 C11.3553207,22.9025663 8.18918201,20.6856467 6.11454454,16.2493021 L6,16 L6.11454454,15.7506979 C8.23528507,11.2157678 11.496577,9 16.0004202,9 L16.2923884,9.00314252 Z" id="Path-68-path-Copy-2" fill-opacity="0.25" fill="#000000" fill-rule="nonzero"></path>
7
+ <path d="M16.0004202,9 L16.2923884,9.00314252 C18.2827072,9.04625392 20.0248901,9.53309222 21.5280639,10.4729091 L10.4737788,21.5277175 C8.6888217,20.4120415 7.24083655,18.6577323 6.11454454,16.2493021 L6,16 L6.11454454,15.7506979 C8.23528507,11.2157678 11.496577,9 16.0004202,9 Z" id="Path-68-path-Copy-3" fill-opacity="0.25" fill="#000000" fill-rule="nonzero"></path>
8
+ <line x1="27" y1="5" x2="5" y2="27" id="Path" stroke="#000000" stroke-width="2" stroke-linecap="round"></line>
9
+ <path d="M18.829424,13.1725701 C19.5526958,13.8963488 20,14.8959376 20,16 C20,18.209139 18.209139,20 16,20 C14.8959376,20 13.8963488,19.5526958 13.1725701,18.829424 Z" id="Oval-2-Copy-3" fill="#000000" fill-rule="evenodd"></path>
10
+ </g>
11
+ </svg>
@@ -0,0 +1,9 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <svg width="32px" height="32px" viewBox="0 0 32 32" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
3
+ <title>icon-public</title>
4
+ <g id="icon-public" stroke="none" fill="none">
5
+ <path d="M16,7 C10.5081428,7 6.49336349,9.91843576 4.07387582,15.6344754 C3.97537473,15.8671842 3.97537473,16.1328158 4.07387582,16.3655246 C6.49336349,22.0815642 10.5081428,25 16,25 C21.4918572,25 25.5066365,22.0815642 27.9261242,16.3655246 C28.0246253,16.1328158 28.0246253,15.8671842 27.9261242,15.6344754 C25.5066365,9.91843576 21.4918572,7 16,7 Z M16.2923884,9.00314252 C20.6455196,9.09743374 23.8116583,11.3143533 25.8862957,15.7506979 L26,15.999125 L25.8862957,16.2493021 C23.7655552,20.7842322 20.5042633,23 16.0004202,23 L15.7084519,22.9968575 C11.3553207,22.9025663 8.18918201,20.6856467 6.11454454,16.2493021 L6,16 L6.11454454,15.7506979 C8.23528507,11.2157678 11.496577,9 16.0004202,9 L16.2923884,9.00314252 Z" id="Path-68" fill="#000000" fill-rule="nonzero"></path>
6
+ <path d="M16.2923884,9.00314252 C20.6455196,9.09743374 23.8116583,11.3143533 25.8862957,15.7506979 L26,15.999125 L25.8862957,16.2493021 C23.7655552,20.7842322 20.5042633,23 16.0004202,23 L15.7084519,22.9968575 C11.3553207,22.9025663 8.18918201,20.6856467 6.11454454,16.2493021 L6,16 L6.11454454,15.7506979 C8.23528507,11.2157678 11.496577,9 16.0004202,9 L16.2923884,9.00314252 Z" id="Path-68-path-Copy-3" fill-opacity="0.25" fill="#000000" fill-rule="nonzero"></path>
7
+ <circle id="Oval-2-Copy" fill="#000000" fill-rule="evenodd" cx="16" cy="16" r="4"></circle>
8
+ </g>
9
+ </svg>
@@ -0,0 +1,7 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <svg width="32px" height="32px" viewBox="0 0 32 32" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
3
+ <title>icon-upvote</title>
4
+ <g id="icon-upvote" stroke="none" fill="none" fill-opacity="0.25" fill-rule="evenodd" stroke-linejoin="round" stroke-width="2">
5
+ <polygon id="Path" stroke="#000000" fill="#000000" points="12 27 20 27 20 16 26 16 16 5 6 16 12 16"></polygon>
6
+ </g>
7
+ </svg>
package/terrier/theme.ts CHANGED
@@ -3,6 +3,7 @@ import {GlypName} from "./glyps"
3
3
  import HubIcons, {HubIconName} from "./gen/hub-icons"
4
4
  import {Key} from "tuff-core/messages"
5
5
  import Hints, {Hint, HintRenderOptions} from "./hints";
6
+ import { clearDropdownKey } from "./dropdowns";
6
7
  import { DefaultTag } from "tuff-core/html";
7
8
 
8
9
  export interface ThemeType {
@@ -127,6 +128,8 @@ export default class Theme {
127
128
  }
128
129
  if (action.click) {
129
130
  a.emitClick(action.click.key, action.click.data || {})
131
+ } else {
132
+ a.emitClick(clearDropdownKey)
130
133
  }
131
134
  if (action.badge?.length) {
132
135
  const badgeColor = options?.badgeColor || 'alert'