@gitsense/gsc-utils 0.2.27 → 0.2.29

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.
@@ -2327,7 +2327,7 @@ var verifyAndCorrectLineNumbers_1 = {
2327
2327
 
2328
2328
  /**
2329
2329
  * Component: PatchUtils Verify and Correct Hunk Headers
2330
- * Block-UUID: 61c74798-bddb-47e1-be48-4a102659933c
2330
+ * Block-UUID: 013f7f2d-0077-4cec-bd22-3bf2fc81f222
2331
2331
  * Parent-UUID: 2308ed72-91ff-48ba-bc80-310c23c01ff1
2332
2332
  * Version: 1.0.0
2333
2333
  * Description: Verifies and corrects the hunk headers within a patch based on the line number prefixes in the content lines.
@@ -2526,7 +2526,7 @@ var verifyAndCorrectHunkHeaders_1 = {
2526
2526
 
2527
2527
  /**
2528
2528
  * Component: PatchUtils Detect and Fix Redundant Changes
2529
- * Block-UUID: ffd6e8fc-399d-4254-827c-ef17e2f7d0d5
2529
+ * Block-UUID: bb354364-b497-412c-9570-b39355da8153
2530
2530
  * Parent-UUID: 2308ed72-91ff-48ba-bc80-310c23c01ff1
2531
2531
  * Version: 1.0.0
2532
2532
  * Description: Detects and optionally fixes redundant changes in a patch where content is deleted and re-added identically.
@@ -12433,7 +12433,7 @@ var defaultPromptLoader = {
12433
12433
 
12434
12434
  /*
12435
12435
  * Component: AnalyzerUtils Updater
12436
- * Block-UUID: 8a7b6c5d-4e3f-2a1b-9c8d-7e6f5a4b3c2d
12436
+ * Block-UUID: aee32ada-81d8-4d44-b0a3-5613ba166d1e
12437
12437
  * Parent-UUID: N/A
12438
12438
  * Version: 1.0.0
12439
12439
  * Description: Provides utility functions for updating analyzer configurations, including renaming and metadata updates.
@@ -12808,7 +12808,7 @@ var AnalyzerUtils$1 = {
12808
12808
 
12809
12809
  /**
12810
12810
  * Component: LLMUtils
12811
- * Block-UUID: a3106054-42f1-474f-96f3-182d66eb19a0
12811
+ * Block-UUID: b8536c11-ed0b-4538-b3ff-35da94e67012
12812
12812
  * Parent-UUID: N/A
12813
12813
  * Version: 1.0.0
12814
12814
  * Description: Provides utility functions related to Large Language Model interactions, such as token estimation.
@@ -12952,7 +12952,7 @@ var DateUtils$1 = {
12952
12952
 
12953
12953
  /**
12954
12954
  * Component: Formatter Utilities
12955
- * Block-UUID: 9b1e07bf-e92c-43c1-9ac0-5dacdb7ae618
12955
+ * Block-UUID: 8512c809-87b0-4f90-af9d-b3dca204c4de
12956
12956
  * Parent-UUID: 9c07d12f-5a05-4402-99d2-85d872d7b2f7
12957
12957
  * Version: 1.0.0
12958
12958
  * Description: Utility functions for formatting content in GitSense Chat
@@ -13007,13 +13007,13 @@ var FormatterUtils$1 = {
13007
13007
 
13008
13008
  /**
13009
13009
  * Component: DomUtils Helper Functions
13010
- * Block-UUID: 9a8e8e8e-8b15-4346-bbfa-740e6a5d2d79
13011
- * Parent-UUID: 8a528728-ce54-4445-946d-1743fb4b16be
13012
- * Version: 1.3.0
13013
- * Description: Provides helper functions for creating and manipulating DOM elements.
13010
+ * Block-UUID: 18b5e5b0-7433-42cb-a76e-58b34850829e
13011
+ * Parent-UUID: 9a8e8e8e-8b15-4346-bbfa-740e6a5d2d79
13012
+ * Version: 1.3.2
13013
+ * Description: Provides helper functions for creating and manipulating DOM elements. Updated to support the 'multiple' attribute for input elements.
13014
13014
  * Language: JavaScript
13015
13015
  * Created-at: 2025-12-14T04:18:40.180Z
13016
- * Authors: Gemini 2.5 Pro (v1.0.0), Gemini 2.5 Flash (v1.1.0), Qwen 3 Coder 480B - Cerebras (v1.2.0), GLM-4.6 (v1.2.1), GLM-4.6 (v1.3.0)
13016
+ * Authors: Gemini 2.5 Pro (v1.0.0), Gemini 2.5 Flash (v1.1.0), Qwen 3 Coder 480B - Cerebras (v1.2.0), GLM-4.6 (v1.2.1), GLM-4.6 (v1.3.0), GLM-4.6 (v1.3.1), GLM-4.7 (v1.3.2)
13017
13017
  */
13018
13018
 
13019
13019
  function createElement(type, params) {
@@ -13042,6 +13042,7 @@ function createElement(type, params) {
13042
13042
  checked,
13043
13043
  selected,
13044
13044
  disabled,
13045
+ multiple,
13045
13046
  placeholder,
13046
13047
  "for": _for,
13047
13048
  "data-message-id": dmi,
@@ -13071,6 +13072,7 @@ function createElement(type, params) {
13071
13072
  if (checked != null && checked) elem.checked = true; // Use property for checked
13072
13073
  if (selected != null && selected) elem.selected = true; // Use property for selected
13073
13074
  if (disabled != null) elem.disabled = disabled; // Use property for disabled
13075
+ if (multiple != null && multiple) elem.setAttribute("multiple", true);
13074
13076
  if (dmi != null) elem.setAttribute("data-message-id", dmi);
13075
13077
  if (dmr != null) elem.setAttribute("data-message-role", dmr);
13076
13078
  if (_for != null ) elem.setAttribute("for", _for);
@@ -13119,7 +13121,7 @@ function createElement(type, params) {
13119
13121
  for (const [key, value] of Object.entries(attrs)) {
13120
13122
  if (value !== undefined && value !== null) {
13121
13123
  // Skip if already set by standard properties or handled directly
13122
- if (!['id', 'class', 'role', 'aria-label', 'title', 'style', 'selected', 'disabled', 'value', 'name', 'type', 'for'].includes(key) && !key.startsWith('data-')) {
13124
+ if (!['id', 'class', 'role', 'aria-label', 'title', 'style', 'selected', 'disabled', 'multiple', 'value', 'name', 'type', 'for'].includes(key) && !key.startsWith('data-')) {
13123
13125
  elem.setAttribute(key, value);
13124
13126
  }
13125
13127
  }
@@ -13258,24 +13260,38 @@ const h$1 = {
13258
13260
  createPre: (params) => {
13259
13261
  return createElement("pre", params);
13260
13262
  },
13261
- createSelect: (params) => { // Added
13262
- // name, disabled etc handled by createElement
13263
- const select = createElement("select", params);
13263
+ createSelect: (params) => {
13264
+ // Extract value before creating the select element
13265
+ const { value, ...selectParams } = params || {};
13266
+
13267
+ // Create select element without the value initially
13268
+ const select = createElement("select", selectParams);
13264
13269
 
13265
13270
  // Handle options array if provided
13266
13271
  if (params && params.options && Array.isArray(params.options)) {
13267
13272
  params.options.forEach(option => {
13268
13273
  if (option && typeof option === 'object') {
13274
+ // Check if this option should be selected based on the value
13275
+ const isSelected = (value !== undefined && value !== null) &&
13276
+ (option.value === value ||
13277
+ (value === '' && option.value === '') ||
13278
+ (value === null && option.value === null));
13279
+
13269
13280
  const optionElement = createElement("option", {
13270
13281
  value: option.value,
13271
13282
  text: option.text,
13272
- selected: option.selected
13283
+ selected: isSelected || option.selected
13273
13284
  });
13274
13285
  select.appendChild(optionElement);
13275
13286
  }
13276
13287
  });
13277
13288
  }
13278
13289
 
13290
+ // Set the value after options are added to ensure proper selection
13291
+ if (value !== undefined && value !== null) {
13292
+ select.value = value;
13293
+ }
13294
+
13279
13295
  return select;
13280
13296
  },
13281
13297
  createSpan: (params) => {
@@ -23566,7 +23582,7 @@ let SVGUtils$1 = class SVGUtils {
23566
23582
  * @returns {Element} SVG element
23567
23583
  */
23568
23584
  static archive(params) {
23569
- const xml = `<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' width='16' height='16'><path fill-rule='evenodd' d='M1.75 2.5a.25.25 0 00-.25.25v1.5c0 .138.112.25.25.25h12.5a.25.25 0 00.25-.25v-1.5a.25.25 0 00-.25-.25H1.75zM0 2.75C0 1.784.784 1 1.75 1h12.5c.966 0 1.75.784 1.75 1.75v1.5A1.75 1.75 0 0114.25 6H1.75A1.75 1.75 0 010 4.25v-1.5zM1.75 7a.75.75 0 01.75.75v5.5c0 .138.112.25.25.25h10.5a.25.25 0 00.25-.25v-5.5a.75.75 0 111.5 0v5.5A1.75 1.75 0 0113.25 15H2.75A1.75 1.75 0 011 13.25v-5.5A.75.75 0 011.75 7zm4.5 1a.75.75 0 000 1.5h3.5a.75.75 0 100-1.5h-3.5z'></path></svg>`;
23585
+ const xml = `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" width="16" height="16"><path d="M0 2.75C0 1.784.784 1 1.75 1h12.5c.966 0 1.75.784 1.75 1.75v1.5A1.75 1.75 0 0 1 14.25 6H1.75A1.75 1.75 0 0 1 0 4.25ZM1.75 7a.75.75 0 0 1 .75.75v5.5c0 .138.112.25.25.25h10.5a.25.25 0 0 0 .25-.25v-5.5a.75.75 0 0 1 1.5 0v5.5A1.75 1.75 0 0 1 13.25 15H2.75A1.75 1.75 0 0 1 1 13.25v-5.5A.75.75 0 0 1 1.75 7Zm0-4.5a.25.25 0 0 0-.25.25v1.5c0 .138.112.25.25.25h12.5a.25.25 0 0 0 .25-.25v-1.5a.25.25 0 0 0-.25-.25ZM6.25 8h3.5a.75.75 0 0 1 0 1.5h-3.5a.75.75 0 0 1 0-1.5Z"></path></svg>`;
23570
23586
  return this.create(xml, params);
23571
23587
  }
23572
23588
 
@@ -23892,6 +23908,16 @@ let SVGUtils$1 = class SVGUtils {
23892
23908
  return this.create(xml, params);
23893
23909
  }
23894
23910
 
23911
+ /**
23912
+ * Generate commentDiscussions24 SVG icon
23913
+ * @param {Object} params - Configuration parameters
23914
+ * @returns {Element} SVG element
23915
+ */
23916
+ static commentDiscussions24(params) {
23917
+ const xml = `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="24" height="24"><path d="M1.75 1h12.5c.966 0 1.75.784 1.75 1.75v9.5A1.75 1.75 0 0 1 14.25 14H8.061l-2.574 2.573A1.458 1.458 0 0 1 3 15.543V14H1.75A1.75 1.75 0 0 1 0 12.25v-9.5C0 1.784.784 1 1.75 1ZM1.5 2.75v9.5c0 .138.112.25.25.25h2a.75.75 0 0 1 .75.75v2.19l2.72-2.72a.749.749 0 0 1 .53-.22h6.5a.25.25 0 0 0 .25-.25v-9.5a.25.25 0 0 0-.25-.25H1.75a.25.25 0 0 0-.25.25Z"></path><path d="M22.5 8.75a.25.25 0 0 0-.25-.25h-3.5a.75.75 0 0 1 0-1.5h3.5c.966 0 1.75.784 1.75 1.75v9.5A1.75 1.75 0 0 1 22.25 20H21v1.543a1.457 1.457 0 0 1-2.487 1.03L15.939 20H10.75A1.75 1.75 0 0 1 9 18.25v-1.465a.75.75 0 0 1 1.5 0v1.465c0 .138.112.25.25.25h5.5a.75.75 0 0 1 .53.22l2.72 2.72v-2.19a.75.75 0 0 1 .75-.75h2a.25.25 0 0 0 .25-.25v-9.5Z"></path></svg>`;
23918
+ return this.create(xml, params);
23919
+ }
23920
+
23895
23921
  /**
23896
23922
  * Generate commit SVG icon
23897
23923
  * @param {Object} params - Configuration parameters
@@ -23902,6 +23928,16 @@ let SVGUtils$1 = class SVGUtils {
23902
23928
  return this.create(xml, params);
23903
23929
  }
23904
23930
 
23931
+ /**
23932
+ * Generate commit SVG icon
23933
+ * @param {Object} params - Configuration parameters
23934
+ * @returns {Element} SVG element
23935
+ */
23936
+ static compose24(params) {
23937
+ const xml = `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="24" height="24"><path d="M1 21.25V4a1.75 1.75 0 0 1 1.75-1.75h7.51a.75.75 0 0 1 0 1.5H2.75A.25.25 0 0 0 2.5 4v17.25a.25.25 0 0 0 .25.25H20a.25.25 0 0 0 .25-.25V13a.75.75 0 0 1 1.5 0v8.25c0 .464-.184.909-.513 1.237A1.746 1.746 0 0 1 20 23H2.75A1.75 1.75 0 0 1 1 21.25Z"></path><path d="M19.013 1.427a1.75 1.75 0 0 1 2.474 0l1.086 1.086a1.75 1.75 0 0 1 0 2.474l-8.61 8.61c-.21.21-.47.364-.756.445l-3.25.929a.751.751 0 0 1-.928-.927l.929-3.25c.082-.287.235-.547.445-.758l8.61-8.61Zm-7.55 9.67a.241.241 0 0 0-.063.108l-.558 1.953 1.953-.558a.253.253 0 0 0 .108-.064L19.19 6.25l-1.44-1.44Zm8.964-8.61a.245.245 0 0 0-.177-.073.245.245 0 0 0-.177.073L18.811 3.75l1.439 1.44 1.263-1.263a.245.245 0 0 0 .073-.177.245.245 0 0 0-.073-.177Z"></path></svg>`;
23938
+ return this.create(xml, params);
23939
+ }
23940
+
23905
23941
  /**
23906
23942
  * Generate container SVG icon
23907
23943
  * @param {Object} params - Configuration parameters
@@ -23932,6 +23968,16 @@ let SVGUtils$1 = class SVGUtils {
23932
23968
  return this.create(xml, params);
23933
23969
  }
23934
23970
 
23971
+ /**
23972
+ * Generate crosshairs SVG icon
23973
+ * @param {Object} params - Configuration parameters
23974
+ * @returns {Element} SVG element
23975
+ */
23976
+ static crosshairs(params) {
23977
+ const xml = `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" width="16" height="16"><path d="M14 8A6 6 0 1 1 2 8a6 6 0 0 1 12 0Zm-1.5 0a4.5 4.5 0 1 0-9 0 4.5 4.5 0 0 0 9 0Z"></path><path d="M5 7.25a.75.75 0 0 1 0 1.5H1a.75.75 0 0 1 0-1.5Zm3-7a.75.75 0 0 1 .75.75v4a.75.75 0 0 1-1.5 0V1A.75.75 0 0 1 8 .25Zm7 7a.75.75 0 0 1 0 1.5h-4a.75.75 0 0 1 0-1.5Zm-7 3a.75.75 0 0 1 .75.75v4a.75.75 0 0 1-1.5 0v-4a.75.75 0 0 1 .75-.75Z"></path></svg>`;
23978
+ return this.create(xml, params);
23979
+ }
23980
+
23935
23981
  /**
23936
23982
  * Generate deepSeek SVG icon
23937
23983
  * @param {Object} params - Configuration parameters
@@ -23983,8 +24029,6 @@ let SVGUtils$1 = class SVGUtils {
23983
24029
  return this.create(xml, params);
23984
24030
  }
23985
24031
 
23986
-
23987
-
23988
24032
  /**
23989
24033
  * Generate dot SVG icon
23990
24034
  * @param {Object} params - Configuration parameters
@@ -24337,6 +24381,16 @@ let SVGUtils$1 = class SVGUtils {
24337
24381
  return this.create(xml, params);
24338
24382
  }
24339
24383
 
24384
+ /**
24385
+ * Generate lock SVG icon
24386
+ * @param {Object} params - Configuration parameters
24387
+ * @returns {Element} SVG element
24388
+ */
24389
+ static lock(params) {
24390
+ const xml = `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" width="16" height="16"><path d="M4 4a4 4 0 0 1 8 0v2h.25c.966 0 1.75.784 1.75 1.75v5.5A1.75 1.75 0 0 1 12.25 15h-8.5A1.75 1.75 0 0 1 2 13.25v-5.5C2 6.784 2.784 6 3.75 6H4Zm8.25 3.5h-8.5a.25.25 0 0 0-.25.25v5.5c0 .138.112.25.25.25h8.5a.25.25 0 0 0 .25-.25v-5.5a.25.25 0 0 0-.25-.25ZM10.5 6V4a2.5 2.5 0 1 0-5 0v2Z"></path></svg>`;
24391
+ return this.create(xml, params);
24392
+ }
24393
+
24340
24394
  /**
24341
24395
  * Generate lightBulb SVG icon
24342
24396
  * @param {Object} params - Configuration parameters
@@ -24389,6 +24443,16 @@ let SVGUtils$1 = class SVGUtils {
24389
24443
  return this.create(xml, params);
24390
24444
  }
24391
24445
 
24446
+ /**
24447
+ * Generate moveToEnd SVG icon
24448
+ * @param {Object} params - Configuration parameters
24449
+ * @returns {Element} SVG element
24450
+ */
24451
+ static moveToEnd(params) {
24452
+ const xml = `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" width="16" height="16"><path d="m10.78 8.53-3.75 3.75a.749.749 0 1 1-1.06-1.06l2.469-2.47H1.75a.75.75 0 0 1 0-1.5h6.689L5.97 4.78a.749.749 0 1 1 1.06-1.06l3.75 3.75a.749.749 0 0 1 0 1.06ZM13 12.25v-8.5a.75.75 0 0 1 1.5 0v8.5a.75.75 0 0 1-1.5 0Z"></path></svg>`;
24453
+ return this.create(xml, params);
24454
+ }
24455
+
24392
24456
  /**
24393
24457
  * Generate northStar SVG icon
24394
24458
  * @param {Object} params - Configuration parameters
@@ -24409,6 +24473,16 @@ let SVGUtils$1 = class SVGUtils {
24409
24473
  return this.create(xml, params);
24410
24474
  }
24411
24475
 
24476
+ /**
24477
+ * Generate note24 SVG icon
24478
+ * @param {Object} params - Configuration parameters
24479
+ * @returns {Element} SVG element
24480
+ */
24481
+ static note24(params) {
24482
+ const xml = `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="24" height="24"><path d="M0 4.75C0 3.784.784 3 1.75 3h20.5c.966 0 1.75.784 1.75 1.75v14.5A1.75 1.75 0 0 1 22.25 21H1.75A1.75 1.75 0 0 1 0 19.25Zm1.75-.25a.25.25 0 0 0-.25.25v14.5c0 .138.112.25.25.25h20.5a.25.25 0 0 0 .25-.25V4.75a.25.25 0 0 0-.25-.25Z"></path><path d="M5 8.75A.75.75 0 0 1 5.75 8h11.5a.75.75 0 0 1 0 1.5H5.75A.75.75 0 0 1 5 8.75Zm0 4a.75.75 0 0 1 .75-.75h5.5a.75.75 0 0 1 0 1.5h-5.5a.75.75 0 0 1-.75-.75Z"></path></svg>`;
24483
+ return this.create(xml, params);
24484
+ }
24485
+
24412
24486
  /**
24413
24487
  * Generate openAI SVG icon
24414
24488
  * @param {Object} params - Configuration parameters
@@ -24475,7 +24549,17 @@ let SVGUtils$1 = class SVGUtils {
24475
24549
  * @returns {Element} SVG element
24476
24550
  */
24477
24551
  static pin(params) {
24478
- const xml = `<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' width='16' height='16'><path fill-rule='evenodd' d='M4.456.734a1.75 1.75 0 012.826.504l.613 1.327a3.081 3.081 0 002.084 1.707l2.454.584c1.332.317 1.8 1.972.832 2.94L11.06 10l3.72 3.72a.75.75 0 11-1.061 1.06L10 11.06l-2.204 2.205c-.968.968-2.623.5-2.94-.832l-.584-2.454a3.081 3.081 0 00-1.707-2.084l-1.327-.613a1.75 1.75 0 01-.504-2.826L4.456.734zM5.92 1.866a.25.25 0 00-.404-.072L1.794 5.516a.25.25 0 00.072.404l1.328.613A4.582 4.582 0 015.73 9.63l.584 2.454a.25.25 0 00.42.12l5.47-5.47a.25.25 0 00-.12-.42L9.63 5.73a4.581 4.581 0 01-3.098-2.537L5.92 1.866z'></path></svg>`;
24552
+ const xml = `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" width="16" height="16"><path d="m11.294.984 3.722 3.722a1.75 1.75 0 0 1-.504 2.826l-1.327.613a3.089 3.089 0 0 0-1.707 2.084l-.584 2.454c-.317 1.332-1.972 1.8-2.94.832L5.75 11.311 1.78 15.28a.749.749 0 1 1-1.06-1.06l3.969-3.97-2.204-2.204c-.968-.968-.5-2.623.832-2.94l2.454-.584a3.08 3.08 0 0 0 2.084-1.707l.613-1.327a1.75 1.75 0 0 1 2.826-.504ZM6.283 9.723l2.732 2.731a.25.25 0 0 0 .42-.119l.584-2.454a4.586 4.586 0 0 1 2.537-3.098l1.328-.613a.25.25 0 0 0 .072-.404l-3.722-3.722a.25.25 0 0 0-.404.072l-.613 1.328a4.584 4.584 0 0 1-3.098 2.537l-2.454.584a.25.25 0 0 0-.119.42l2.731 2.732Z"></path></svg>`;
24553
+ return this.create(xml, params);
24554
+ }
24555
+
24556
+ /**
24557
+ * Generate pin24 SVG icon
24558
+ * @param {Object} params - Configuration parameters
24559
+ * @returns {Element} SVG element
24560
+ */
24561
+ static pin24(params) {
24562
+ const xml = `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="24" height="24"><path d="m16.114 1.553 6.333 6.333a1.75 1.75 0 0 1-.603 2.869l-1.63.633a5.67 5.67 0 0 0-3.395 3.725l-1.131 3.959a1.75 1.75 0 0 1-2.92.757L9 16.061l-5.595 5.594a.749.749 0 1 1-1.06-1.06L7.939 15l-3.768-3.768a1.75 1.75 0 0 1 .757-2.92l3.959-1.131a5.666 5.666 0 0 0 3.725-3.395l.633-1.63a1.75 1.75 0 0 1 2.869-.603ZM5.232 10.171l8.597 8.597a.25.25 0 0 0 .417-.108l1.131-3.959A7.17 7.17 0 0 1 19.67 9.99l1.63-.634a.25.25 0 0 0 .086-.409l-6.333-6.333a.25.25 0 0 0-.409.086l-.634 1.63a7.17 7.17 0 0 1-4.711 4.293L5.34 9.754a.25.25 0 0 0-.108.417Z"></path></svg>`;
24479
24563
  return this.create(xml, params);
24480
24564
  }
24481
24565
 
@@ -24591,6 +24675,16 @@ let SVGUtils$1 = class SVGUtils {
24591
24675
  return this.create(xml, params);
24592
24676
  }
24593
24677
 
24678
+ /**
24679
+ * Generate sparkle SVG icon
24680
+ * @param {Object} params - Configuration parameters
24681
+ * @returns {Element} SVG element
24682
+ */
24683
+ static sparkle(params) {
24684
+ const xml = `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" width="16" height="16"><path d="M7.198.57c.275-.752 1.34-.752 1.615 0l.849 2.317a5.819 5.819 0 0 0 3.462 3.463l2.317.848c.753.275.753 1.34 0 1.615l-2.317.849a5.815 5.815 0 0 0-3.462 3.462l-.849 2.317c-.275.753-1.34.753-1.615 0l-.848-2.317a5.819 5.819 0 0 0-3.463-3.462L.57 8.813c-.752-.275-.752-1.34 0-1.615l2.317-.848A5.823 5.823 0 0 0 6.35 2.887L7.198.57Zm.562 2.833A7.323 7.323 0 0 1 3.403 7.76l-.673.246.673.246a7.324 7.324 0 0 1 4.357 4.356l.246.673.246-.673a7.322 7.322 0 0 1 4.356-4.356l.673-.246-.673-.246a7.324 7.324 0 0 1-4.356-4.357l-.246-.673-.246.673Z"></path></svg>`;
24685
+ return this.create(xml, params);
24686
+ }
24687
+
24594
24688
  /**
24595
24689
  * Generate square SVG icon
24596
24690
  * @param {Object} params - Configuration parameters
@@ -2325,7 +2325,7 @@ var verifyAndCorrectLineNumbers_1 = {
2325
2325
 
2326
2326
  /**
2327
2327
  * Component: PatchUtils Verify and Correct Hunk Headers
2328
- * Block-UUID: 61c74798-bddb-47e1-be48-4a102659933c
2328
+ * Block-UUID: 013f7f2d-0077-4cec-bd22-3bf2fc81f222
2329
2329
  * Parent-UUID: 2308ed72-91ff-48ba-bc80-310c23c01ff1
2330
2330
  * Version: 1.0.0
2331
2331
  * Description: Verifies and corrects the hunk headers within a patch based on the line number prefixes in the content lines.
@@ -2524,7 +2524,7 @@ var verifyAndCorrectHunkHeaders_1 = {
2524
2524
 
2525
2525
  /**
2526
2526
  * Component: PatchUtils Detect and Fix Redundant Changes
2527
- * Block-UUID: ffd6e8fc-399d-4254-827c-ef17e2f7d0d5
2527
+ * Block-UUID: bb354364-b497-412c-9570-b39355da8153
2528
2528
  * Parent-UUID: 2308ed72-91ff-48ba-bc80-310c23c01ff1
2529
2529
  * Version: 1.0.0
2530
2530
  * Description: Detects and optionally fixes redundant changes in a patch where content is deleted and re-added identically.
@@ -12431,7 +12431,7 @@ var defaultPromptLoader = {
12431
12431
 
12432
12432
  /*
12433
12433
  * Component: AnalyzerUtils Updater
12434
- * Block-UUID: 8a7b6c5d-4e3f-2a1b-9c8d-7e6f5a4b3c2d
12434
+ * Block-UUID: aee32ada-81d8-4d44-b0a3-5613ba166d1e
12435
12435
  * Parent-UUID: N/A
12436
12436
  * Version: 1.0.0
12437
12437
  * Description: Provides utility functions for updating analyzer configurations, including renaming and metadata updates.
@@ -12806,7 +12806,7 @@ var AnalyzerUtils$1 = {
12806
12806
 
12807
12807
  /**
12808
12808
  * Component: LLMUtils
12809
- * Block-UUID: a3106054-42f1-474f-96f3-182d66eb19a0
12809
+ * Block-UUID: b8536c11-ed0b-4538-b3ff-35da94e67012
12810
12810
  * Parent-UUID: N/A
12811
12811
  * Version: 1.0.0
12812
12812
  * Description: Provides utility functions related to Large Language Model interactions, such as token estimation.
@@ -12950,7 +12950,7 @@ var DateUtils$1 = {
12950
12950
 
12951
12951
  /**
12952
12952
  * Component: Formatter Utilities
12953
- * Block-UUID: 9b1e07bf-e92c-43c1-9ac0-5dacdb7ae618
12953
+ * Block-UUID: 8512c809-87b0-4f90-af9d-b3dca204c4de
12954
12954
  * Parent-UUID: 9c07d12f-5a05-4402-99d2-85d872d7b2f7
12955
12955
  * Version: 1.0.0
12956
12956
  * Description: Utility functions for formatting content in GitSense Chat
@@ -13005,13 +13005,13 @@ var FormatterUtils$1 = {
13005
13005
 
13006
13006
  /**
13007
13007
  * Component: DomUtils Helper Functions
13008
- * Block-UUID: 9a8e8e8e-8b15-4346-bbfa-740e6a5d2d79
13009
- * Parent-UUID: 8a528728-ce54-4445-946d-1743fb4b16be
13010
- * Version: 1.3.0
13011
- * Description: Provides helper functions for creating and manipulating DOM elements.
13008
+ * Block-UUID: 18b5e5b0-7433-42cb-a76e-58b34850829e
13009
+ * Parent-UUID: 9a8e8e8e-8b15-4346-bbfa-740e6a5d2d79
13010
+ * Version: 1.3.2
13011
+ * Description: Provides helper functions for creating and manipulating DOM elements. Updated to support the 'multiple' attribute for input elements.
13012
13012
  * Language: JavaScript
13013
13013
  * Created-at: 2025-12-14T04:18:40.180Z
13014
- * Authors: Gemini 2.5 Pro (v1.0.0), Gemini 2.5 Flash (v1.1.0), Qwen 3 Coder 480B - Cerebras (v1.2.0), GLM-4.6 (v1.2.1), GLM-4.6 (v1.3.0)
13014
+ * Authors: Gemini 2.5 Pro (v1.0.0), Gemini 2.5 Flash (v1.1.0), Qwen 3 Coder 480B - Cerebras (v1.2.0), GLM-4.6 (v1.2.1), GLM-4.6 (v1.3.0), GLM-4.6 (v1.3.1), GLM-4.7 (v1.3.2)
13015
13015
  */
13016
13016
 
13017
13017
  function createElement(type, params) {
@@ -13040,6 +13040,7 @@ function createElement(type, params) {
13040
13040
  checked,
13041
13041
  selected,
13042
13042
  disabled,
13043
+ multiple,
13043
13044
  placeholder,
13044
13045
  "for": _for,
13045
13046
  "data-message-id": dmi,
@@ -13069,6 +13070,7 @@ function createElement(type, params) {
13069
13070
  if (checked != null && checked) elem.checked = true; // Use property for checked
13070
13071
  if (selected != null && selected) elem.selected = true; // Use property for selected
13071
13072
  if (disabled != null) elem.disabled = disabled; // Use property for disabled
13073
+ if (multiple != null && multiple) elem.setAttribute("multiple", true);
13072
13074
  if (dmi != null) elem.setAttribute("data-message-id", dmi);
13073
13075
  if (dmr != null) elem.setAttribute("data-message-role", dmr);
13074
13076
  if (_for != null ) elem.setAttribute("for", _for);
@@ -13117,7 +13119,7 @@ function createElement(type, params) {
13117
13119
  for (const [key, value] of Object.entries(attrs)) {
13118
13120
  if (value !== undefined && value !== null) {
13119
13121
  // Skip if already set by standard properties or handled directly
13120
- if (!['id', 'class', 'role', 'aria-label', 'title', 'style', 'selected', 'disabled', 'value', 'name', 'type', 'for'].includes(key) && !key.startsWith('data-')) {
13122
+ if (!['id', 'class', 'role', 'aria-label', 'title', 'style', 'selected', 'disabled', 'multiple', 'value', 'name', 'type', 'for'].includes(key) && !key.startsWith('data-')) {
13121
13123
  elem.setAttribute(key, value);
13122
13124
  }
13123
13125
  }
@@ -13256,24 +13258,38 @@ const h$1 = {
13256
13258
  createPre: (params) => {
13257
13259
  return createElement("pre", params);
13258
13260
  },
13259
- createSelect: (params) => { // Added
13260
- // name, disabled etc handled by createElement
13261
- const select = createElement("select", params);
13261
+ createSelect: (params) => {
13262
+ // Extract value before creating the select element
13263
+ const { value, ...selectParams } = params || {};
13264
+
13265
+ // Create select element without the value initially
13266
+ const select = createElement("select", selectParams);
13262
13267
 
13263
13268
  // Handle options array if provided
13264
13269
  if (params && params.options && Array.isArray(params.options)) {
13265
13270
  params.options.forEach(option => {
13266
13271
  if (option && typeof option === 'object') {
13272
+ // Check if this option should be selected based on the value
13273
+ const isSelected = (value !== undefined && value !== null) &&
13274
+ (option.value === value ||
13275
+ (value === '' && option.value === '') ||
13276
+ (value === null && option.value === null));
13277
+
13267
13278
  const optionElement = createElement("option", {
13268
13279
  value: option.value,
13269
13280
  text: option.text,
13270
- selected: option.selected
13281
+ selected: isSelected || option.selected
13271
13282
  });
13272
13283
  select.appendChild(optionElement);
13273
13284
  }
13274
13285
  });
13275
13286
  }
13276
13287
 
13288
+ // Set the value after options are added to ensure proper selection
13289
+ if (value !== undefined && value !== null) {
13290
+ select.value = value;
13291
+ }
13292
+
13277
13293
  return select;
13278
13294
  },
13279
13295
  createSpan: (params) => {
@@ -23564,7 +23580,7 @@ let SVGUtils$1 = class SVGUtils {
23564
23580
  * @returns {Element} SVG element
23565
23581
  */
23566
23582
  static archive(params) {
23567
- const xml = `<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' width='16' height='16'><path fill-rule='evenodd' d='M1.75 2.5a.25.25 0 00-.25.25v1.5c0 .138.112.25.25.25h12.5a.25.25 0 00.25-.25v-1.5a.25.25 0 00-.25-.25H1.75zM0 2.75C0 1.784.784 1 1.75 1h12.5c.966 0 1.75.784 1.75 1.75v1.5A1.75 1.75 0 0114.25 6H1.75A1.75 1.75 0 010 4.25v-1.5zM1.75 7a.75.75 0 01.75.75v5.5c0 .138.112.25.25.25h10.5a.25.25 0 00.25-.25v-5.5a.75.75 0 111.5 0v5.5A1.75 1.75 0 0113.25 15H2.75A1.75 1.75 0 011 13.25v-5.5A.75.75 0 011.75 7zm4.5 1a.75.75 0 000 1.5h3.5a.75.75 0 100-1.5h-3.5z'></path></svg>`;
23583
+ const xml = `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" width="16" height="16"><path d="M0 2.75C0 1.784.784 1 1.75 1h12.5c.966 0 1.75.784 1.75 1.75v1.5A1.75 1.75 0 0 1 14.25 6H1.75A1.75 1.75 0 0 1 0 4.25ZM1.75 7a.75.75 0 0 1 .75.75v5.5c0 .138.112.25.25.25h10.5a.25.25 0 0 0 .25-.25v-5.5a.75.75 0 0 1 1.5 0v5.5A1.75 1.75 0 0 1 13.25 15H2.75A1.75 1.75 0 0 1 1 13.25v-5.5A.75.75 0 0 1 1.75 7Zm0-4.5a.25.25 0 0 0-.25.25v1.5c0 .138.112.25.25.25h12.5a.25.25 0 0 0 .25-.25v-1.5a.25.25 0 0 0-.25-.25ZM6.25 8h3.5a.75.75 0 0 1 0 1.5h-3.5a.75.75 0 0 1 0-1.5Z"></path></svg>`;
23568
23584
  return this.create(xml, params);
23569
23585
  }
23570
23586
 
@@ -23890,6 +23906,16 @@ let SVGUtils$1 = class SVGUtils {
23890
23906
  return this.create(xml, params);
23891
23907
  }
23892
23908
 
23909
+ /**
23910
+ * Generate commentDiscussions24 SVG icon
23911
+ * @param {Object} params - Configuration parameters
23912
+ * @returns {Element} SVG element
23913
+ */
23914
+ static commentDiscussions24(params) {
23915
+ const xml = `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="24" height="24"><path d="M1.75 1h12.5c.966 0 1.75.784 1.75 1.75v9.5A1.75 1.75 0 0 1 14.25 14H8.061l-2.574 2.573A1.458 1.458 0 0 1 3 15.543V14H1.75A1.75 1.75 0 0 1 0 12.25v-9.5C0 1.784.784 1 1.75 1ZM1.5 2.75v9.5c0 .138.112.25.25.25h2a.75.75 0 0 1 .75.75v2.19l2.72-2.72a.749.749 0 0 1 .53-.22h6.5a.25.25 0 0 0 .25-.25v-9.5a.25.25 0 0 0-.25-.25H1.75a.25.25 0 0 0-.25.25Z"></path><path d="M22.5 8.75a.25.25 0 0 0-.25-.25h-3.5a.75.75 0 0 1 0-1.5h3.5c.966 0 1.75.784 1.75 1.75v9.5A1.75 1.75 0 0 1 22.25 20H21v1.543a1.457 1.457 0 0 1-2.487 1.03L15.939 20H10.75A1.75 1.75 0 0 1 9 18.25v-1.465a.75.75 0 0 1 1.5 0v1.465c0 .138.112.25.25.25h5.5a.75.75 0 0 1 .53.22l2.72 2.72v-2.19a.75.75 0 0 1 .75-.75h2a.25.25 0 0 0 .25-.25v-9.5Z"></path></svg>`;
23916
+ return this.create(xml, params);
23917
+ }
23918
+
23893
23919
  /**
23894
23920
  * Generate commit SVG icon
23895
23921
  * @param {Object} params - Configuration parameters
@@ -23900,6 +23926,16 @@ let SVGUtils$1 = class SVGUtils {
23900
23926
  return this.create(xml, params);
23901
23927
  }
23902
23928
 
23929
+ /**
23930
+ * Generate commit SVG icon
23931
+ * @param {Object} params - Configuration parameters
23932
+ * @returns {Element} SVG element
23933
+ */
23934
+ static compose24(params) {
23935
+ const xml = `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="24" height="24"><path d="M1 21.25V4a1.75 1.75 0 0 1 1.75-1.75h7.51a.75.75 0 0 1 0 1.5H2.75A.25.25 0 0 0 2.5 4v17.25a.25.25 0 0 0 .25.25H20a.25.25 0 0 0 .25-.25V13a.75.75 0 0 1 1.5 0v8.25c0 .464-.184.909-.513 1.237A1.746 1.746 0 0 1 20 23H2.75A1.75 1.75 0 0 1 1 21.25Z"></path><path d="M19.013 1.427a1.75 1.75 0 0 1 2.474 0l1.086 1.086a1.75 1.75 0 0 1 0 2.474l-8.61 8.61c-.21.21-.47.364-.756.445l-3.25.929a.751.751 0 0 1-.928-.927l.929-3.25c.082-.287.235-.547.445-.758l8.61-8.61Zm-7.55 9.67a.241.241 0 0 0-.063.108l-.558 1.953 1.953-.558a.253.253 0 0 0 .108-.064L19.19 6.25l-1.44-1.44Zm8.964-8.61a.245.245 0 0 0-.177-.073.245.245 0 0 0-.177.073L18.811 3.75l1.439 1.44 1.263-1.263a.245.245 0 0 0 .073-.177.245.245 0 0 0-.073-.177Z"></path></svg>`;
23936
+ return this.create(xml, params);
23937
+ }
23938
+
23903
23939
  /**
23904
23940
  * Generate container SVG icon
23905
23941
  * @param {Object} params - Configuration parameters
@@ -23930,6 +23966,16 @@ let SVGUtils$1 = class SVGUtils {
23930
23966
  return this.create(xml, params);
23931
23967
  }
23932
23968
 
23969
+ /**
23970
+ * Generate crosshairs SVG icon
23971
+ * @param {Object} params - Configuration parameters
23972
+ * @returns {Element} SVG element
23973
+ */
23974
+ static crosshairs(params) {
23975
+ const xml = `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" width="16" height="16"><path d="M14 8A6 6 0 1 1 2 8a6 6 0 0 1 12 0Zm-1.5 0a4.5 4.5 0 1 0-9 0 4.5 4.5 0 0 0 9 0Z"></path><path d="M5 7.25a.75.75 0 0 1 0 1.5H1a.75.75 0 0 1 0-1.5Zm3-7a.75.75 0 0 1 .75.75v4a.75.75 0 0 1-1.5 0V1A.75.75 0 0 1 8 .25Zm7 7a.75.75 0 0 1 0 1.5h-4a.75.75 0 0 1 0-1.5Zm-7 3a.75.75 0 0 1 .75.75v4a.75.75 0 0 1-1.5 0v-4a.75.75 0 0 1 .75-.75Z"></path></svg>`;
23976
+ return this.create(xml, params);
23977
+ }
23978
+
23933
23979
  /**
23934
23980
  * Generate deepSeek SVG icon
23935
23981
  * @param {Object} params - Configuration parameters
@@ -23981,8 +24027,6 @@ let SVGUtils$1 = class SVGUtils {
23981
24027
  return this.create(xml, params);
23982
24028
  }
23983
24029
 
23984
-
23985
-
23986
24030
  /**
23987
24031
  * Generate dot SVG icon
23988
24032
  * @param {Object} params - Configuration parameters
@@ -24335,6 +24379,16 @@ let SVGUtils$1 = class SVGUtils {
24335
24379
  return this.create(xml, params);
24336
24380
  }
24337
24381
 
24382
+ /**
24383
+ * Generate lock SVG icon
24384
+ * @param {Object} params - Configuration parameters
24385
+ * @returns {Element} SVG element
24386
+ */
24387
+ static lock(params) {
24388
+ const xml = `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" width="16" height="16"><path d="M4 4a4 4 0 0 1 8 0v2h.25c.966 0 1.75.784 1.75 1.75v5.5A1.75 1.75 0 0 1 12.25 15h-8.5A1.75 1.75 0 0 1 2 13.25v-5.5C2 6.784 2.784 6 3.75 6H4Zm8.25 3.5h-8.5a.25.25 0 0 0-.25.25v5.5c0 .138.112.25.25.25h8.5a.25.25 0 0 0 .25-.25v-5.5a.25.25 0 0 0-.25-.25ZM10.5 6V4a2.5 2.5 0 1 0-5 0v2Z"></path></svg>`;
24389
+ return this.create(xml, params);
24390
+ }
24391
+
24338
24392
  /**
24339
24393
  * Generate lightBulb SVG icon
24340
24394
  * @param {Object} params - Configuration parameters
@@ -24387,6 +24441,16 @@ let SVGUtils$1 = class SVGUtils {
24387
24441
  return this.create(xml, params);
24388
24442
  }
24389
24443
 
24444
+ /**
24445
+ * Generate moveToEnd SVG icon
24446
+ * @param {Object} params - Configuration parameters
24447
+ * @returns {Element} SVG element
24448
+ */
24449
+ static moveToEnd(params) {
24450
+ const xml = `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" width="16" height="16"><path d="m10.78 8.53-3.75 3.75a.749.749 0 1 1-1.06-1.06l2.469-2.47H1.75a.75.75 0 0 1 0-1.5h6.689L5.97 4.78a.749.749 0 1 1 1.06-1.06l3.75 3.75a.749.749 0 0 1 0 1.06ZM13 12.25v-8.5a.75.75 0 0 1 1.5 0v8.5a.75.75 0 0 1-1.5 0Z"></path></svg>`;
24451
+ return this.create(xml, params);
24452
+ }
24453
+
24390
24454
  /**
24391
24455
  * Generate northStar SVG icon
24392
24456
  * @param {Object} params - Configuration parameters
@@ -24407,6 +24471,16 @@ let SVGUtils$1 = class SVGUtils {
24407
24471
  return this.create(xml, params);
24408
24472
  }
24409
24473
 
24474
+ /**
24475
+ * Generate note24 SVG icon
24476
+ * @param {Object} params - Configuration parameters
24477
+ * @returns {Element} SVG element
24478
+ */
24479
+ static note24(params) {
24480
+ const xml = `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="24" height="24"><path d="M0 4.75C0 3.784.784 3 1.75 3h20.5c.966 0 1.75.784 1.75 1.75v14.5A1.75 1.75 0 0 1 22.25 21H1.75A1.75 1.75 0 0 1 0 19.25Zm1.75-.25a.25.25 0 0 0-.25.25v14.5c0 .138.112.25.25.25h20.5a.25.25 0 0 0 .25-.25V4.75a.25.25 0 0 0-.25-.25Z"></path><path d="M5 8.75A.75.75 0 0 1 5.75 8h11.5a.75.75 0 0 1 0 1.5H5.75A.75.75 0 0 1 5 8.75Zm0 4a.75.75 0 0 1 .75-.75h5.5a.75.75 0 0 1 0 1.5h-5.5a.75.75 0 0 1-.75-.75Z"></path></svg>`;
24481
+ return this.create(xml, params);
24482
+ }
24483
+
24410
24484
  /**
24411
24485
  * Generate openAI SVG icon
24412
24486
  * @param {Object} params - Configuration parameters
@@ -24473,7 +24547,17 @@ let SVGUtils$1 = class SVGUtils {
24473
24547
  * @returns {Element} SVG element
24474
24548
  */
24475
24549
  static pin(params) {
24476
- const xml = `<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' width='16' height='16'><path fill-rule='evenodd' d='M4.456.734a1.75 1.75 0 012.826.504l.613 1.327a3.081 3.081 0 002.084 1.707l2.454.584c1.332.317 1.8 1.972.832 2.94L11.06 10l3.72 3.72a.75.75 0 11-1.061 1.06L10 11.06l-2.204 2.205c-.968.968-2.623.5-2.94-.832l-.584-2.454a3.081 3.081 0 00-1.707-2.084l-1.327-.613a1.75 1.75 0 01-.504-2.826L4.456.734zM5.92 1.866a.25.25 0 00-.404-.072L1.794 5.516a.25.25 0 00.072.404l1.328.613A4.582 4.582 0 015.73 9.63l.584 2.454a.25.25 0 00.42.12l5.47-5.47a.25.25 0 00-.12-.42L9.63 5.73a4.581 4.581 0 01-3.098-2.537L5.92 1.866z'></path></svg>`;
24550
+ const xml = `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" width="16" height="16"><path d="m11.294.984 3.722 3.722a1.75 1.75 0 0 1-.504 2.826l-1.327.613a3.089 3.089 0 0 0-1.707 2.084l-.584 2.454c-.317 1.332-1.972 1.8-2.94.832L5.75 11.311 1.78 15.28a.749.749 0 1 1-1.06-1.06l3.969-3.97-2.204-2.204c-.968-.968-.5-2.623.832-2.94l2.454-.584a3.08 3.08 0 0 0 2.084-1.707l.613-1.327a1.75 1.75 0 0 1 2.826-.504ZM6.283 9.723l2.732 2.731a.25.25 0 0 0 .42-.119l.584-2.454a4.586 4.586 0 0 1 2.537-3.098l1.328-.613a.25.25 0 0 0 .072-.404l-3.722-3.722a.25.25 0 0 0-.404.072l-.613 1.328a4.584 4.584 0 0 1-3.098 2.537l-2.454.584a.25.25 0 0 0-.119.42l2.731 2.732Z"></path></svg>`;
24551
+ return this.create(xml, params);
24552
+ }
24553
+
24554
+ /**
24555
+ * Generate pin24 SVG icon
24556
+ * @param {Object} params - Configuration parameters
24557
+ * @returns {Element} SVG element
24558
+ */
24559
+ static pin24(params) {
24560
+ const xml = `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="24" height="24"><path d="m16.114 1.553 6.333 6.333a1.75 1.75 0 0 1-.603 2.869l-1.63.633a5.67 5.67 0 0 0-3.395 3.725l-1.131 3.959a1.75 1.75 0 0 1-2.92.757L9 16.061l-5.595 5.594a.749.749 0 1 1-1.06-1.06L7.939 15l-3.768-3.768a1.75 1.75 0 0 1 .757-2.92l3.959-1.131a5.666 5.666 0 0 0 3.725-3.395l.633-1.63a1.75 1.75 0 0 1 2.869-.603ZM5.232 10.171l8.597 8.597a.25.25 0 0 0 .417-.108l1.131-3.959A7.17 7.17 0 0 1 19.67 9.99l1.63-.634a.25.25 0 0 0 .086-.409l-6.333-6.333a.25.25 0 0 0-.409.086l-.634 1.63a7.17 7.17 0 0 1-4.711 4.293L5.34 9.754a.25.25 0 0 0-.108.417Z"></path></svg>`;
24477
24561
  return this.create(xml, params);
24478
24562
  }
24479
24563
 
@@ -24589,6 +24673,16 @@ let SVGUtils$1 = class SVGUtils {
24589
24673
  return this.create(xml, params);
24590
24674
  }
24591
24675
 
24676
+ /**
24677
+ * Generate sparkle SVG icon
24678
+ * @param {Object} params - Configuration parameters
24679
+ * @returns {Element} SVG element
24680
+ */
24681
+ static sparkle(params) {
24682
+ const xml = `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" width="16" height="16"><path d="M7.198.57c.275-.752 1.34-.752 1.615 0l.849 2.317a5.819 5.819 0 0 0 3.462 3.463l2.317.848c.753.275.753 1.34 0 1.615l-2.317.849a5.815 5.815 0 0 0-3.462 3.462l-.849 2.317c-.275.753-1.34.753-1.615 0l-.848-2.317a5.819 5.819 0 0 0-3.463-3.462L.57 8.813c-.752-.275-.752-1.34 0-1.615l2.317-.848A5.823 5.823 0 0 0 6.35 2.887L7.198.57Zm.562 2.833A7.323 7.323 0 0 1 3.403 7.76l-.673.246.673.246a7.324 7.324 0 0 1 4.357 4.356l.246.673.246-.673a7.322 7.322 0 0 1 4.356-4.356l.673-.246-.673-.246a7.324 7.324 0 0 1-4.356-4.357l-.246-.673-.246.673Z"></path></svg>`;
24683
+ return this.create(xml, params);
24684
+ }
24685
+
24592
24686
  /**
24593
24687
  * Generate square SVG icon
24594
24688
  * @param {Object} params - Configuration parameters
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gitsense/gsc-utils",
3
- "version": "0.2.27",
3
+ "version": "0.2.29",
4
4
  "description": "Utilities for GitSense Chat (GSC)",
5
5
  "main": "dist/gsc-utils.cjs.js",
6
6
  "module": "dist/gsc-utils.esm.js",
@@ -1,6 +1,6 @@
1
1
  /*
2
2
  * Component: AnalyzerUtils Updater
3
- * Block-UUID: 8a7b6c5d-4e3f-2a1b-9c8d-7e6f5a4b3c2d
3
+ * Block-UUID: aee32ada-81d8-4d44-b0a3-5613ba166d1e
4
4
  * Parent-UUID: N/A
5
5
  * Version: 1.0.0
6
6
  * Description: Provides utility functions for updating analyzer configurations, including renaming and metadata updates.
package/src/DomUtils.js CHANGED
@@ -1,12 +1,12 @@
1
1
  /**
2
2
  * Component: DomUtils Helper Functions
3
- * Block-UUID: 9a8e8e8e-8b15-4346-bbfa-740e6a5d2d79
4
- * Parent-UUID: 8a528728-ce54-4445-946d-1743fb4b16be
5
- * Version: 1.3.0
6
- * Description: Provides helper functions for creating and manipulating DOM elements.
3
+ * Block-UUID: 18b5e5b0-7433-42cb-a76e-58b34850829e
4
+ * Parent-UUID: 9a8e8e8e-8b15-4346-bbfa-740e6a5d2d79
5
+ * Version: 1.3.2
6
+ * Description: Provides helper functions for creating and manipulating DOM elements. Updated to support the 'multiple' attribute for input elements.
7
7
  * Language: JavaScript
8
8
  * Created-at: 2025-12-14T04:18:40.180Z
9
- * Authors: Gemini 2.5 Pro (v1.0.0), Gemini 2.5 Flash (v1.1.0), Qwen 3 Coder 480B - Cerebras (v1.2.0), GLM-4.6 (v1.2.1), GLM-4.6 (v1.3.0)
9
+ * Authors: Gemini 2.5 Pro (v1.0.0), Gemini 2.5 Flash (v1.1.0), Qwen 3 Coder 480B - Cerebras (v1.2.0), GLM-4.6 (v1.2.1), GLM-4.6 (v1.3.0), GLM-4.6 (v1.3.1), GLM-4.7 (v1.3.2)
10
10
  */
11
11
 
12
12
 
@@ -36,6 +36,7 @@ function createElement(type, params) {
36
36
  checked,
37
37
  selected,
38
38
  disabled,
39
+ multiple,
39
40
  placeholder,
40
41
  "for": _for,
41
42
  "data-message-id": dmi,
@@ -65,6 +66,7 @@ function createElement(type, params) {
65
66
  if (checked != null && checked) elem.checked = true; // Use property for checked
66
67
  if (selected != null && selected) elem.selected = true; // Use property for selected
67
68
  if (disabled != null) elem.disabled = disabled; // Use property for disabled
69
+ if (multiple != null && multiple) elem.setAttribute("multiple", true);
68
70
  if (dmi != null) elem.setAttribute("data-message-id", dmi);
69
71
  if (dmr != null) elem.setAttribute("data-message-role", dmr);
70
72
  if (_for != null ) elem.setAttribute("for", _for);
@@ -113,7 +115,7 @@ function createElement(type, params) {
113
115
  for (const [key, value] of Object.entries(attrs)) {
114
116
  if (value !== undefined && value !== null) {
115
117
  // Skip if already set by standard properties or handled directly
116
- if (!['id', 'class', 'role', 'aria-label', 'title', 'style', 'selected', 'disabled', 'value', 'name', 'type', 'for'].includes(key) && !key.startsWith('data-')) {
118
+ if (!['id', 'class', 'role', 'aria-label', 'title', 'style', 'selected', 'disabled', 'multiple', 'value', 'name', 'type', 'for'].includes(key) && !key.startsWith('data-')) {
117
119
  elem.setAttribute(key, value);
118
120
  }
119
121
  }
@@ -252,24 +254,38 @@ const h = {
252
254
  createPre: (params) => {
253
255
  return createElement("pre", params);
254
256
  },
255
- createSelect: (params) => { // Added
256
- // name, disabled etc handled by createElement
257
- const select = createElement("select", params);
257
+ createSelect: (params) => {
258
+ // Extract value before creating the select element
259
+ const { value, ...selectParams } = params || {};
260
+
261
+ // Create select element without the value initially
262
+ const select = createElement("select", selectParams);
258
263
 
259
264
  // Handle options array if provided
260
265
  if (params && params.options && Array.isArray(params.options)) {
261
266
  params.options.forEach(option => {
262
267
  if (option && typeof option === 'object') {
268
+ // Check if this option should be selected based on the value
269
+ const isSelected = (value !== undefined && value !== null) &&
270
+ (option.value === value ||
271
+ (value === '' && option.value === '') ||
272
+ (value === null && option.value === null));
273
+
263
274
  const optionElement = createElement("option", {
264
275
  value: option.value,
265
276
  text: option.text,
266
- selected: option.selected
277
+ selected: isSelected || option.selected
267
278
  });
268
279
  select.appendChild(optionElement);
269
280
  }
270
281
  });
271
282
  }
272
283
 
284
+ // Set the value after options are added to ensure proper selection
285
+ if (value !== undefined && value !== null) {
286
+ select.value = value;
287
+ }
288
+
273
289
  return select;
274
290
  },
275
291
  createSpan: (params) => {
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * Component: Formatter Utilities
3
- * Block-UUID: 9b1e07bf-e92c-43c1-9ac0-5dacdb7ae618
3
+ * Block-UUID: 8512c809-87b0-4f90-af9d-b3dca204c4de
4
4
  * Parent-UUID: 9c07d12f-5a05-4402-99d2-85d872d7b2f7
5
5
  * Version: 1.0.0
6
6
  * Description: Utility functions for formatting content in GitSense Chat
package/src/LLMUtils.js CHANGED
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * Component: LLMUtils
3
- * Block-UUID: a3106054-42f1-474f-96f3-182d66eb19a0
3
+ * Block-UUID: b8536c11-ed0b-4538-b3ff-35da94e67012
4
4
  * Parent-UUID: N/A
5
5
  * Version: 1.0.0
6
6
  * Description: Provides utility functions related to Large Language Model interactions, such as token estimation.
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * Component: PatchUtils Detect and Fix Redundant Changes
3
- * Block-UUID: ffd6e8fc-399d-4254-827c-ef17e2f7d0d5
3
+ * Block-UUID: bb354364-b497-412c-9570-b39355da8153
4
4
  * Parent-UUID: 2308ed72-91ff-48ba-bc80-310c23c01ff1
5
5
  * Version: 1.0.0
6
6
  * Description: Detects and optionally fixes redundant changes in a patch where content is deleted and re-added identically.
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * Component: PatchUtils Verify and Correct Hunk Headers
3
- * Block-UUID: 61c74798-bddb-47e1-be48-4a102659933c
3
+ * Block-UUID: 013f7f2d-0077-4cec-bd22-3bf2fc81f222
4
4
  * Parent-UUID: 2308ed72-91ff-48ba-bc80-310c23c01ff1
5
5
  * Version: 1.0.0
6
6
  * Description: Verifies and corrects the hunk headers within a patch based on the line number prefixes in the content lines.
package/src/SVGUtils.js CHANGED
@@ -83,7 +83,7 @@ class SVGUtils {
83
83
  * @returns {Element} SVG element
84
84
  */
85
85
  static archive(params) {
86
- const xml = `<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' width='16' height='16'><path fill-rule='evenodd' d='M1.75 2.5a.25.25 0 00-.25.25v1.5c0 .138.112.25.25.25h12.5a.25.25 0 00.25-.25v-1.5a.25.25 0 00-.25-.25H1.75zM0 2.75C0 1.784.784 1 1.75 1h12.5c.966 0 1.75.784 1.75 1.75v1.5A1.75 1.75 0 0114.25 6H1.75A1.75 1.75 0 010 4.25v-1.5zM1.75 7a.75.75 0 01.75.75v5.5c0 .138.112.25.25.25h10.5a.25.25 0 00.25-.25v-5.5a.75.75 0 111.5 0v5.5A1.75 1.75 0 0113.25 15H2.75A1.75 1.75 0 011 13.25v-5.5A.75.75 0 011.75 7zm4.5 1a.75.75 0 000 1.5h3.5a.75.75 0 100-1.5h-3.5z'></path></svg>`;
86
+ const xml = `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" width="16" height="16"><path d="M0 2.75C0 1.784.784 1 1.75 1h12.5c.966 0 1.75.784 1.75 1.75v1.5A1.75 1.75 0 0 1 14.25 6H1.75A1.75 1.75 0 0 1 0 4.25ZM1.75 7a.75.75 0 0 1 .75.75v5.5c0 .138.112.25.25.25h10.5a.25.25 0 0 0 .25-.25v-5.5a.75.75 0 0 1 1.5 0v5.5A1.75 1.75 0 0 1 13.25 15H2.75A1.75 1.75 0 0 1 1 13.25v-5.5A.75.75 0 0 1 1.75 7Zm0-4.5a.25.25 0 0 0-.25.25v1.5c0 .138.112.25.25.25h12.5a.25.25 0 0 0 .25-.25v-1.5a.25.25 0 0 0-.25-.25ZM6.25 8h3.5a.75.75 0 0 1 0 1.5h-3.5a.75.75 0 0 1 0-1.5Z"></path></svg>`;
87
87
  return this.create(xml, params);
88
88
  }
89
89
 
@@ -409,6 +409,16 @@ class SVGUtils {
409
409
  return this.create(xml, params);
410
410
  }
411
411
 
412
+ /**
413
+ * Generate commentDiscussions24 SVG icon
414
+ * @param {Object} params - Configuration parameters
415
+ * @returns {Element} SVG element
416
+ */
417
+ static commentDiscussions24(params) {
418
+ const xml = `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="24" height="24"><path d="M1.75 1h12.5c.966 0 1.75.784 1.75 1.75v9.5A1.75 1.75 0 0 1 14.25 14H8.061l-2.574 2.573A1.458 1.458 0 0 1 3 15.543V14H1.75A1.75 1.75 0 0 1 0 12.25v-9.5C0 1.784.784 1 1.75 1ZM1.5 2.75v9.5c0 .138.112.25.25.25h2a.75.75 0 0 1 .75.75v2.19l2.72-2.72a.749.749 0 0 1 .53-.22h6.5a.25.25 0 0 0 .25-.25v-9.5a.25.25 0 0 0-.25-.25H1.75a.25.25 0 0 0-.25.25Z"></path><path d="M22.5 8.75a.25.25 0 0 0-.25-.25h-3.5a.75.75 0 0 1 0-1.5h3.5c.966 0 1.75.784 1.75 1.75v9.5A1.75 1.75 0 0 1 22.25 20H21v1.543a1.457 1.457 0 0 1-2.487 1.03L15.939 20H10.75A1.75 1.75 0 0 1 9 18.25v-1.465a.75.75 0 0 1 1.5 0v1.465c0 .138.112.25.25.25h5.5a.75.75 0 0 1 .53.22l2.72 2.72v-2.19a.75.75 0 0 1 .75-.75h2a.25.25 0 0 0 .25-.25v-9.5Z"></path></svg>`;
419
+ return this.create(xml, params);
420
+ }
421
+
412
422
  /**
413
423
  * Generate commit SVG icon
414
424
  * @param {Object} params - Configuration parameters
@@ -419,6 +429,16 @@ class SVGUtils {
419
429
  return this.create(xml, params);
420
430
  }
421
431
 
432
+ /**
433
+ * Generate commit SVG icon
434
+ * @param {Object} params - Configuration parameters
435
+ * @returns {Element} SVG element
436
+ */
437
+ static compose24(params) {
438
+ const xml = `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="24" height="24"><path d="M1 21.25V4a1.75 1.75 0 0 1 1.75-1.75h7.51a.75.75 0 0 1 0 1.5H2.75A.25.25 0 0 0 2.5 4v17.25a.25.25 0 0 0 .25.25H20a.25.25 0 0 0 .25-.25V13a.75.75 0 0 1 1.5 0v8.25c0 .464-.184.909-.513 1.237A1.746 1.746 0 0 1 20 23H2.75A1.75 1.75 0 0 1 1 21.25Z"></path><path d="M19.013 1.427a1.75 1.75 0 0 1 2.474 0l1.086 1.086a1.75 1.75 0 0 1 0 2.474l-8.61 8.61c-.21.21-.47.364-.756.445l-3.25.929a.751.751 0 0 1-.928-.927l.929-3.25c.082-.287.235-.547.445-.758l8.61-8.61Zm-7.55 9.67a.241.241 0 0 0-.063.108l-.558 1.953 1.953-.558a.253.253 0 0 0 .108-.064L19.19 6.25l-1.44-1.44Zm8.964-8.61a.245.245 0 0 0-.177-.073.245.245 0 0 0-.177.073L18.811 3.75l1.439 1.44 1.263-1.263a.245.245 0 0 0 .073-.177.245.245 0 0 0-.073-.177Z"></path></svg>`;
439
+ return this.create(xml, params);
440
+ }
441
+
422
442
  /**
423
443
  * Generate container SVG icon
424
444
  * @param {Object} params - Configuration parameters
@@ -449,6 +469,16 @@ class SVGUtils {
449
469
  return this.create(xml, params);
450
470
  }
451
471
 
472
+ /**
473
+ * Generate crosshairs SVG icon
474
+ * @param {Object} params - Configuration parameters
475
+ * @returns {Element} SVG element
476
+ */
477
+ static crosshairs(params) {
478
+ const xml = `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" width="16" height="16"><path d="M14 8A6 6 0 1 1 2 8a6 6 0 0 1 12 0Zm-1.5 0a4.5 4.5 0 1 0-9 0 4.5 4.5 0 0 0 9 0Z"></path><path d="M5 7.25a.75.75 0 0 1 0 1.5H1a.75.75 0 0 1 0-1.5Zm3-7a.75.75 0 0 1 .75.75v4a.75.75 0 0 1-1.5 0V1A.75.75 0 0 1 8 .25Zm7 7a.75.75 0 0 1 0 1.5h-4a.75.75 0 0 1 0-1.5Zm-7 3a.75.75 0 0 1 .75.75v4a.75.75 0 0 1-1.5 0v-4a.75.75 0 0 1 .75-.75Z"></path></svg>`;
479
+ return this.create(xml, params);
480
+ }
481
+
452
482
  /**
453
483
  * Generate deepSeek SVG icon
454
484
  * @param {Object} params - Configuration parameters
@@ -500,8 +530,6 @@ class SVGUtils {
500
530
  return this.create(xml, params);
501
531
  }
502
532
 
503
-
504
-
505
533
  /**
506
534
  * Generate dot SVG icon
507
535
  * @param {Object} params - Configuration parameters
@@ -854,6 +882,16 @@ class SVGUtils {
854
882
  return this.create(xml, params);
855
883
  }
856
884
 
885
+ /**
886
+ * Generate lock SVG icon
887
+ * @param {Object} params - Configuration parameters
888
+ * @returns {Element} SVG element
889
+ */
890
+ static lock(params) {
891
+ const xml = `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" width="16" height="16"><path d="M4 4a4 4 0 0 1 8 0v2h.25c.966 0 1.75.784 1.75 1.75v5.5A1.75 1.75 0 0 1 12.25 15h-8.5A1.75 1.75 0 0 1 2 13.25v-5.5C2 6.784 2.784 6 3.75 6H4Zm8.25 3.5h-8.5a.25.25 0 0 0-.25.25v5.5c0 .138.112.25.25.25h8.5a.25.25 0 0 0 .25-.25v-5.5a.25.25 0 0 0-.25-.25ZM10.5 6V4a2.5 2.5 0 1 0-5 0v2Z"></path></svg>`;
892
+ return this.create(xml, params);
893
+ }
894
+
857
895
  /**
858
896
  * Generate lightBulb SVG icon
859
897
  * @param {Object} params - Configuration parameters
@@ -906,6 +944,16 @@ class SVGUtils {
906
944
  return this.create(xml, params);
907
945
  }
908
946
 
947
+ /**
948
+ * Generate moveToEnd SVG icon
949
+ * @param {Object} params - Configuration parameters
950
+ * @returns {Element} SVG element
951
+ */
952
+ static moveToEnd(params) {
953
+ const xml = `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" width="16" height="16"><path d="m10.78 8.53-3.75 3.75a.749.749 0 1 1-1.06-1.06l2.469-2.47H1.75a.75.75 0 0 1 0-1.5h6.689L5.97 4.78a.749.749 0 1 1 1.06-1.06l3.75 3.75a.749.749 0 0 1 0 1.06ZM13 12.25v-8.5a.75.75 0 0 1 1.5 0v8.5a.75.75 0 0 1-1.5 0Z"></path></svg>`;
954
+ return this.create(xml, params);
955
+ }
956
+
909
957
  /**
910
958
  * Generate northStar SVG icon
911
959
  * @param {Object} params - Configuration parameters
@@ -926,6 +974,16 @@ class SVGUtils {
926
974
  return this.create(xml, params);
927
975
  }
928
976
 
977
+ /**
978
+ * Generate note24 SVG icon
979
+ * @param {Object} params - Configuration parameters
980
+ * @returns {Element} SVG element
981
+ */
982
+ static note24(params) {
983
+ const xml = `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="24" height="24"><path d="M0 4.75C0 3.784.784 3 1.75 3h20.5c.966 0 1.75.784 1.75 1.75v14.5A1.75 1.75 0 0 1 22.25 21H1.75A1.75 1.75 0 0 1 0 19.25Zm1.75-.25a.25.25 0 0 0-.25.25v14.5c0 .138.112.25.25.25h20.5a.25.25 0 0 0 .25-.25V4.75a.25.25 0 0 0-.25-.25Z"></path><path d="M5 8.75A.75.75 0 0 1 5.75 8h11.5a.75.75 0 0 1 0 1.5H5.75A.75.75 0 0 1 5 8.75Zm0 4a.75.75 0 0 1 .75-.75h5.5a.75.75 0 0 1 0 1.5h-5.5a.75.75 0 0 1-.75-.75Z"></path></svg>`;
984
+ return this.create(xml, params);
985
+ }
986
+
929
987
  /**
930
988
  * Generate openAI SVG icon
931
989
  * @param {Object} params - Configuration parameters
@@ -992,7 +1050,17 @@ class SVGUtils {
992
1050
  * @returns {Element} SVG element
993
1051
  */
994
1052
  static pin(params) {
995
- const xml = `<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' width='16' height='16'><path fill-rule='evenodd' d='M4.456.734a1.75 1.75 0 012.826.504l.613 1.327a3.081 3.081 0 002.084 1.707l2.454.584c1.332.317 1.8 1.972.832 2.94L11.06 10l3.72 3.72a.75.75 0 11-1.061 1.06L10 11.06l-2.204 2.205c-.968.968-2.623.5-2.94-.832l-.584-2.454a3.081 3.081 0 00-1.707-2.084l-1.327-.613a1.75 1.75 0 01-.504-2.826L4.456.734zM5.92 1.866a.25.25 0 00-.404-.072L1.794 5.516a.25.25 0 00.072.404l1.328.613A4.582 4.582 0 015.73 9.63l.584 2.454a.25.25 0 00.42.12l5.47-5.47a.25.25 0 00-.12-.42L9.63 5.73a4.581 4.581 0 01-3.098-2.537L5.92 1.866z'></path></svg>`;
1053
+ const xml = `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" width="16" height="16"><path d="m11.294.984 3.722 3.722a1.75 1.75 0 0 1-.504 2.826l-1.327.613a3.089 3.089 0 0 0-1.707 2.084l-.584 2.454c-.317 1.332-1.972 1.8-2.94.832L5.75 11.311 1.78 15.28a.749.749 0 1 1-1.06-1.06l3.969-3.97-2.204-2.204c-.968-.968-.5-2.623.832-2.94l2.454-.584a3.08 3.08 0 0 0 2.084-1.707l.613-1.327a1.75 1.75 0 0 1 2.826-.504ZM6.283 9.723l2.732 2.731a.25.25 0 0 0 .42-.119l.584-2.454a4.586 4.586 0 0 1 2.537-3.098l1.328-.613a.25.25 0 0 0 .072-.404l-3.722-3.722a.25.25 0 0 0-.404.072l-.613 1.328a4.584 4.584 0 0 1-3.098 2.537l-2.454.584a.25.25 0 0 0-.119.42l2.731 2.732Z"></path></svg>`;
1054
+ return this.create(xml, params);
1055
+ }
1056
+
1057
+ /**
1058
+ * Generate pin24 SVG icon
1059
+ * @param {Object} params - Configuration parameters
1060
+ * @returns {Element} SVG element
1061
+ */
1062
+ static pin24(params) {
1063
+ const xml = `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="24" height="24"><path d="m16.114 1.553 6.333 6.333a1.75 1.75 0 0 1-.603 2.869l-1.63.633a5.67 5.67 0 0 0-3.395 3.725l-1.131 3.959a1.75 1.75 0 0 1-2.92.757L9 16.061l-5.595 5.594a.749.749 0 1 1-1.06-1.06L7.939 15l-3.768-3.768a1.75 1.75 0 0 1 .757-2.92l3.959-1.131a5.666 5.666 0 0 0 3.725-3.395l.633-1.63a1.75 1.75 0 0 1 2.869-.603ZM5.232 10.171l8.597 8.597a.25.25 0 0 0 .417-.108l1.131-3.959A7.17 7.17 0 0 1 19.67 9.99l1.63-.634a.25.25 0 0 0 .086-.409l-6.333-6.333a.25.25 0 0 0-.409.086l-.634 1.63a7.17 7.17 0 0 1-4.711 4.293L5.34 9.754a.25.25 0 0 0-.108.417Z"></path></svg>`;
996
1064
  return this.create(xml, params);
997
1065
  }
998
1066
 
@@ -1108,6 +1176,16 @@ class SVGUtils {
1108
1176
  return this.create(xml, params);
1109
1177
  }
1110
1178
 
1179
+ /**
1180
+ * Generate sparkle SVG icon
1181
+ * @param {Object} params - Configuration parameters
1182
+ * @returns {Element} SVG element
1183
+ */
1184
+ static sparkle(params) {
1185
+ const xml = `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" width="16" height="16"><path d="M7.198.57c.275-.752 1.34-.752 1.615 0l.849 2.317a5.819 5.819 0 0 0 3.462 3.463l2.317.848c.753.275.753 1.34 0 1.615l-2.317.849a5.815 5.815 0 0 0-3.462 3.462l-.849 2.317c-.275.753-1.34.753-1.615 0l-.848-2.317a5.819 5.819 0 0 0-3.463-3.462L.57 8.813c-.752-.275-.752-1.34 0-1.615l2.317-.848A5.823 5.823 0 0 0 6.35 2.887L7.198.57Zm.562 2.833A7.323 7.323 0 0 1 3.403 7.76l-.673.246.673.246a7.324 7.324 0 0 1 4.357 4.356l.246.673.246-.673a7.322 7.322 0 0 1 4.356-4.356l.673-.246-.673-.246a7.324 7.324 0 0 1-4.356-4.357l-.246-.673-.246.673Z"></path></svg>`;
1186
+ return this.create(xml, params);
1187
+ }
1188
+
1111
1189
  /**
1112
1190
  * Generate square SVG icon
1113
1191
  * @param {Object} params - Configuration parameters