@ni/spright-components 5.5.0 → 5.5.2

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.
@@ -16000,6 +16000,7 @@
16000
16000
  dividerBackgroundColor: 'divider-background-color',
16001
16001
  headerBackgroundColor: 'header-background-color',
16002
16002
  sectionBackgroundColor: 'section-background-color',
16003
+ sectionBackgroundImage: 'section-background-image',
16003
16004
  buttonFillPrimaryColor: 'button-fill-primary-color',
16004
16005
  buttonPrimaryFontColor: 'button-primary-font-color',
16005
16006
  buttonFillAccentColor: 'button-fill-accent-color',
@@ -16032,6 +16033,7 @@
16032
16033
  largePadding: 'large-padding',
16033
16034
  labelHeight: 'label-height',
16034
16035
  borderWidth: 'border-width',
16036
+ dividerWidth: 'divider-width',
16035
16037
  iconSize: 'icon-size',
16036
16038
  groupHeaderTextTransform: 'group-header-text-transform',
16037
16039
  drawerWidth: 'drawer-width',
@@ -16250,7 +16252,12 @@
16250
16252
  const applicationBackgroundColor = DesignToken.create(styleNameFromTokenName(tokenNames.applicationBackgroundColor)).withDefault((element) => getColorForTheme(element, White, Black85, ForestGreen));
16251
16253
  DesignToken.create(styleNameFromTokenName(tokenNames.headerBackgroundColor)).withDefault((element) => getColorForTheme(element, Black7, Black88, ForestGreen));
16252
16254
  DesignToken.create(styleNameFromTokenName(tokenNames.sectionBackgroundColor)).withDefault((element) => getColorForTheme(element, Black15, Black80, ForestGreen));
16253
- DesignToken.create(styleNameFromTokenName(tokenNames.dividerBackgroundColor)).withDefault((element) => getColorForTheme(element, Black15, Black80, ForestGreen));
16255
+ const sectionBackgroundImage = DesignToken.create(styleNameFromTokenName(tokenNames.sectionBackgroundImage)).withDefault((element) => {
16256
+ const start = getColorForTheme(element, Black15, Black82, ForestGreen);
16257
+ const end = getColorForTheme(element, hexToRgbaCssColor(Black15, 0), hexToRgbaCssColor(Black82, 0), hexToRgbaCssColor(ForestGreen, 0));
16258
+ return `linear-gradient(${start}, ${end})`;
16259
+ });
16260
+ DesignToken.create(styleNameFromTokenName(tokenNames.dividerBackgroundColor)).withDefault((element) => getColorForTheme(element, hexToRgbaCssColor(Black91, 0.2), hexToRgbaCssColor(Black15, 0.2), hexToRgbaCssColor(White, 0.2)));
16254
16261
  const fillSelectedColor = DesignToken.create(styleNameFromTokenName(tokenNames.fillSelectedColor)).withDefault((element) => hexToRgbaCssColor(getFillSelectedColorForTheme(element), 0.2));
16255
16262
  const fillSelectedRgbPartialColor = DesignToken.create(styleNameFromTokenName(tokenNames.fillSelectedRgbPartialColor)).withDefault((element) => hexToRgbPartial(getFillSelectedColorForTheme(element)));
16256
16263
  const fillHoverSelectedColor = DesignToken.create(styleNameFromTokenName(tokenNames.fillHoverSelectedColor)).withDefault((element) => hexToRgbaCssColor(getFillSelectedColorForTheme(element), 0.15));
@@ -16313,6 +16320,7 @@
16313
16320
  const largePadding = DesignToken.create(styleNameFromTokenName(tokenNames.largePadding)).withDefault('24px');
16314
16321
  DesignToken.create(styleNameFromTokenName(tokenNames.labelHeight)).withDefault('16px');
16315
16322
  const borderWidth = DesignToken.create(styleNameFromTokenName(tokenNames.borderWidth)).withDefault('1px');
16323
+ DesignToken.create(styleNameFromTokenName(tokenNames.dividerWidth)).withDefault('2px');
16316
16324
  const iconSize = DesignToken.create(styleNameFromTokenName(tokenNames.iconSize)).withDefault('16px');
16317
16325
  const drawerWidth = DesignToken.create(styleNameFromTokenName(tokenNames.drawerWidth)).withDefault('784px');
16318
16326
  const dialogSmallWidth = DesignToken.create(styleNameFromTokenName(tokenNames.dialogSmallWidth)).withDefault('400px');
@@ -93482,6 +93490,8 @@ focus outline in that case.
93482
93490
 
93483
93491
  :host {
93484
93492
  flex-direction: column;
93493
+ background: ${applicationBackgroundColor};
93494
+ border: ${borderWidth} solid ${applicationBackgroundColor};
93485
93495
  }
93486
93496
 
93487
93497
  .messages {
@@ -93490,24 +93500,52 @@ focus outline in that case.
93490
93500
  flex-direction: column;
93491
93501
  justify-content: flex-start;
93492
93502
  row-gap: 32px;
93493
- padding: ${mediumPadding};
93494
- background: ${applicationBackgroundColor};
93503
+ padding: ${mediumPadding} ${standardPadding} ${mediumPadding}
93504
+ ${standardPadding};
93505
+ background: ${sectionBackgroundImage};
93495
93506
  overflow-y: auto;
93496
93507
  }
93508
+
93509
+ .input {
93510
+ padding: ${borderWidth} ${standardPadding} ${standardPadding}
93511
+ ${standardPadding};
93512
+ }
93513
+
93514
+ .input.input-empty {
93515
+ padding: 0px ${standardPadding} 0px ${standardPadding};
93516
+ }
93497
93517
  `;
93498
93518
 
93499
93519
  /* eslint-disable @typescript-eslint/indent */
93500
93520
  // prettier-ignore
93501
93521
  const template$3 = html `
93502
93522
  <div class="messages"><slot></slot></div>
93503
- <div class="input"><slot name="input"></slot></div>`;
93523
+ <div class="input ${x => (x.inputEmpty ? 'input-empty' : '')}">
93524
+ <slot name="input" ${slotted({ property: 'slottedInputElements' })}>
93525
+ </slot>
93526
+ </div>
93527
+ `;
93504
93528
  /* eslint-enable @typescript-eslint/indent */
93505
93529
 
93506
93530
  /**
93507
93531
  * A Spright component for displaying a series of chat messages
93508
93532
  */
93509
93533
  class ChatConversation extends FoundationElement {
93534
+ constructor() {
93535
+ super(...arguments);
93536
+ /** @internal */
93537
+ this.inputEmpty = true;
93538
+ }
93539
+ slottedInputElementsChanged(_prev, next) {
93540
+ this.inputEmpty = !next?.length;
93541
+ }
93510
93542
  }
93543
+ __decorate([
93544
+ observable
93545
+ ], ChatConversation.prototype, "inputEmpty", void 0);
93546
+ __decorate([
93547
+ observable
93548
+ ], ChatConversation.prototype, "slottedInputElements", void 0);
93511
93549
  const sprightChatConversation = ChatConversation.compose({
93512
93550
  baseName: 'chat-conversation',
93513
93551
  template: template$3,
@@ -93576,6 +93614,7 @@ focus outline in that case.
93576
93614
  ${ref('textArea')}
93577
93615
  placeholder="${x => x.placeholder}"
93578
93616
  rows="1"
93617
+ tabindex="${x => x.tabIndex}"
93579
93618
  @keydown="${(x, c) => x.textAreaKeydownHandler(c.event)}"
93580
93619
  @input="${x => x.textAreaInputHandler()}"
93581
93620
  ></textarea>
@@ -93585,6 +93624,7 @@ focus outline in that case.
93585
93624
  appearance-variant="accent"
93586
93625
  ?disabled=${x => x.disableSendButton}
93587
93626
  @click=${x => x.sendButtonClickHandler()}
93627
+ tabindex="${x => x.tabIndex}"
93588
93628
  title=${x => x.sendButtonLabel}
93589
93629
  content-hidden
93590
93630
  >
@@ -93676,6 +93716,9 @@ focus outline in that case.
93676
93716
  __decorate([
93677
93717
  attr
93678
93718
  ], ChatInput.prototype, "value", void 0);
93719
+ __decorate([
93720
+ attr({ attribute: 'tabindex', converter: nullableNumberConverter })
93721
+ ], ChatInput.prototype, "tabIndex", void 0);
93679
93722
  __decorate([
93680
93723
  observable
93681
93724
  ], ChatInput.prototype, "textArea", void 0);
@@ -93685,7 +93728,10 @@ focus outline in that case.
93685
93728
  const sprightChatInput = ChatInput.compose({
93686
93729
  baseName: 'chat-input',
93687
93730
  template: template$2,
93688
- styles: styles$2
93731
+ styles: styles$2,
93732
+ shadowOptions: {
93733
+ delegatesFocus: true
93734
+ }
93689
93735
  });
93690
93736
  DesignSystem.getOrCreate().withPrefix('spright').register(sprightChatInput());
93691
93737