@ds-mo/ui 14.12.0 → 14.13.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.
Files changed (72) hide show
  1. package/NOTICE +10 -0
  2. package/dist/.package-ready.json +1 -1
  3. package/dist/agent-patterns.json +1 -1
  4. package/dist/agent.json +89 -2
  5. package/dist/angular/ds-paper-texture.d.ts +12 -0
  6. package/dist/angular/ds-paper-texture.js +38 -0
  7. package/dist/angular/ds-shell-app.d.ts +1 -1
  8. package/dist/angular/ds-shell-app.js +3 -3
  9. package/dist/angular/index.d.ts +1 -1
  10. package/dist/angular/index.js +1 -0
  11. package/dist/angular/proxies.d.ts +1 -0
  12. package/dist/angular/proxies.js +1 -0
  13. package/dist/components/ds-bar-nav.js +1 -1
  14. package/dist/components/ds-bar-title.js +1 -1
  15. package/dist/components/ds-bar-workflow.js +1 -1
  16. package/dist/components/ds-bar-workflow.js.map +1 -1
  17. package/dist/components/ds-menu.js +1 -1
  18. package/dist/components/ds-mobile-header.js +1 -1
  19. package/dist/components/ds-mobile-section-switcher.js +1 -1
  20. package/dist/components/ds-panel-nav.js +1 -1
  21. package/dist/components/ds-paper-texture.d.ts +11 -0
  22. package/dist/components/ds-paper-texture.js +2 -0
  23. package/dist/components/ds-paper-texture.js.map +1 -0
  24. package/dist/components/ds-shell-app.js +1 -1
  25. package/dist/components/ds-shell-app.js.map +1 -1
  26. package/dist/components/ds-shell-page.js +1 -1
  27. package/dist/components/ds-shell-tools.js +1 -1
  28. package/dist/components/ds-swatch-picker.js +1 -1
  29. package/dist/components/ds-table-saved-views.js +1 -1
  30. package/dist/components/ds-table-saved-views.js.map +1 -1
  31. package/dist/components/ds-table-toolbar.js +1 -1
  32. package/dist/components/ds-table.js +1 -1
  33. package/dist/components/ds-toast.js +1 -1
  34. package/dist/components/ds-typing-indicator.js +1 -1
  35. package/dist/components/{p-BAStZzJu.js → p-C2n8A8NA.js} +2 -2
  36. package/dist/components/p-C5eosu67.js +2 -0
  37. package/dist/components/p-C5eosu67.js.map +1 -0
  38. package/dist/components/{p-BHNFoHay.js → p-CWDmHPJC.js} +2 -2
  39. package/dist/components/{p-Bubs1_8P.js → p-Ck_VRQYi.js} +2 -2
  40. package/dist/components/{p-BZ3UTshV.js → p-Cyw9odJX.js} +2 -2
  41. package/dist/components/p-DIEx1e0M.js +2 -0
  42. package/dist/components/p-DIEx1e0M.js.map +1 -0
  43. package/dist/components/{p-DjqZWBnM.js → p-DL_5VENG.js} +2 -2
  44. package/dist/components/{p-Dh_p8OzP.js → p-DfyfrfHL.js} +2 -2
  45. package/dist/components/{p-DgWGfscR.js → p-Rfpd5mWO.js} +2 -2
  46. package/dist/components/p-URdgCwEs.js +2 -0
  47. package/dist/components/{p-GdlSIpHV.js.map → p-URdgCwEs.js.map} +1 -1
  48. package/dist/docs/components.json +101 -1
  49. package/dist/mcp-data/registry/bar-nav.json +1 -1
  50. package/dist/mcp-data/registry/panel-nav.json +1 -1
  51. package/dist/mcp-data/registry/paper-texture.json +141 -0
  52. package/dist/mcp-data/registry/registry.json +91 -1
  53. package/dist/mcp-data/registry/shell-app.json +25 -4
  54. package/dist/react/components.d.ts +1 -0
  55. package/dist/react/components.js +1 -0
  56. package/dist/react/ds-paper-texture.d.ts +9 -0
  57. package/dist/react/ds-paper-texture.js +12 -0
  58. package/dist/types/components/PaperTexture/PaperTexture.d.ts +18 -0
  59. package/dist/types/components/PaperTexture/paper-texture-types.d.ts +39 -0
  60. package/dist/types/components/ShellApp/ShellApp.d.ts +7 -0
  61. package/dist/types/components.d.ts +33 -0
  62. package/package.json +4 -2
  63. package/dist/components/p-DSuAHQRk.js +0 -2
  64. package/dist/components/p-DSuAHQRk.js.map +0 -1
  65. package/dist/components/p-GdlSIpHV.js +0 -2
  66. /package/dist/components/{p-BAStZzJu.js.map → p-C2n8A8NA.js.map} +0 -0
  67. /package/dist/components/{p-BHNFoHay.js.map → p-CWDmHPJC.js.map} +0 -0
  68. /package/dist/components/{p-Bubs1_8P.js.map → p-Ck_VRQYi.js.map} +0 -0
  69. /package/dist/components/{p-BZ3UTshV.js.map → p-Cyw9odJX.js.map} +0 -0
  70. /package/dist/components/{p-DjqZWBnM.js.map → p-DL_5VENG.js.map} +0 -0
  71. /package/dist/components/{p-Dh_p8OzP.js.map → p-DfyfrfHL.js.map} +0 -0
  72. /package/dist/components/{p-DgWGfscR.js.map → p-Rfpd5mWO.js.map} +0 -0
package/NOTICE ADDED
@@ -0,0 +1,10 @@
1
+ This distribution includes bundled code from @paper-design/shaders.
2
+
3
+ Paper Shaders
4
+ Copyright 2026 Paper
5
+
6
+ Powered by Paper Shaders:
7
+ https://shaders.paper.design
8
+
9
+ The bundled shader code is available under the Apache License, Version 2.0.
10
+ The complete license text is distributed with the @paper-design/shaders runtime dependency.
@@ -1 +1 @@
1
- {"schemaVersion":1,"package":"@ds-mo/ui","version":"14.12.0","components":72,"digest":"c87f96b26b83c4d206ad25bbea6a28ff85bef071bad512744b99026bc641e546","completedAt":"2026-08-22T06:42:31.015Z"}
1
+ {"schemaVersion":1,"package":"@ds-mo/ui","version":"14.13.0","components":73,"digest":"abfed265b5ccc284bcd2ed01d3c2511bef7dadae82277cdc4dcf40c751377eaf","completedAt":"2026-08-23T03:20:21.111Z"}
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "schemaVersion": "1.0.0",
3
3
  "package": "@ds-mo/ui",
4
- "packageVersion": "14.12.0",
4
+ "packageVersion": "14.13.0",
5
5
  "kind": "patterns",
6
6
  "entries": [
7
7
  {
package/dist/agent.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "schemaVersion": "1.0.0",
3
3
  "package": "@ds-mo/ui",
4
- "packageVersion": "14.12.0",
4
+ "packageVersion": "14.13.0",
5
5
  "kind": "components",
6
6
  "entries": [
7
7
  {
@@ -6756,6 +6756,82 @@
6756
6756
  "tooltip"
6757
6757
  ]
6758
6758
  },
6759
+ {
6760
+ "id": "component:ds-paper-texture",
6761
+ "tag": "ds-paper-texture",
6762
+ "name": "paper-texture",
6763
+ "title": "PaperTexture",
6764
+ "summary": "A decorative Paper Design WebGL2 paper texture surface with Storybook-tunable literal shader parameters and a static default frame.",
6765
+ "intentStatus": "complete",
6766
+ "intent": {
6767
+ "audience": "specialized",
6768
+ "status": "experimental",
6769
+ "summary": "A decorative Paper Design WebGL2 paper texture surface with Storybook-tunable literal shader parameters and a static default frame.",
6770
+ "useWhen": [
6771
+ "A shell or other visual surface needs a paper or cardboard texture layered above an existing background.",
6772
+ "Designers need to tune paper texture parameters interactively before choosing a baked static asset."
6773
+ ],
6774
+ "avoidWhen": [
6775
+ "The surface needs semantic content, interaction, or accessible information.",
6776
+ "The target environment cannot provide WebGL2 and no pre-baked fallback asset is available.",
6777
+ "A token-driven color treatment is required; this component accepts literal shader colors only."
6778
+ ],
6779
+ "alternatives": [],
6780
+ "commonlyComposedWith": [
6781
+ "component:ds-shell-app"
6782
+ ],
6783
+ "accessibility": [
6784
+ "The texture is decorative and is hidden from assistive technology.",
6785
+ "Keep all meaningful content in the owning surface above or beside the texture."
6786
+ ],
6787
+ "states": [
6788
+ "The default speed is zero, so a texture renders one deterministic frame without a recurring animation loop.",
6789
+ "Paper shader colors are literal CSS color strings and are not resolved from TokoMo tokens.",
6790
+ "If WebGL2 or the noise texture is unavailable, the decorative layer removes itself without blocking the owning surface."
6791
+ ],
6792
+ "responsiveBehavior": [
6793
+ "The shader observes its host dimensions and follows the owning surface through resize changes.",
6794
+ "minPixelRatio and maxPixelCount are available for explicit quality/performance tuning."
6795
+ ],
6796
+ "frameworkCaveats": {
6797
+ "customElements": [
6798
+ "Assign config as a JavaScript property; nested shader values are not intended for serialized HTML attributes."
6799
+ ],
6800
+ "react": [
6801
+ "Use the generated wrapper and pass the config object as a property."
6802
+ ],
6803
+ "angular": [
6804
+ "Bind the config object as a property so nested shader values are preserved."
6805
+ ]
6806
+ },
6807
+ "references": [
6808
+ {
6809
+ "label": "Storybook parameter playground",
6810
+ "path": "src/wc/components/PaperTexture/PaperTexture.stories.ts"
6811
+ }
6812
+ ]
6813
+ },
6814
+ "api": {
6815
+ "props": {
6816
+ "config": {
6817
+ "type": "PaperTextureConfig",
6818
+ "required": false
6819
+ }
6820
+ },
6821
+ "events": [],
6822
+ "slots": []
6823
+ },
6824
+ "exports": {
6825
+ "customElement": "ds-paper-texture",
6826
+ "react": "DsPaperTexture",
6827
+ "angular": "DsPaperTexture"
6828
+ },
6829
+ "dependencies": [
6830
+ "@ds-mo/ui",
6831
+ "@ds-mo/tokens"
6832
+ ],
6833
+ "componentDependencies": []
6834
+ },
6759
6835
  {
6760
6836
  "id": "component:ds-radio",
6761
6837
  "tag": "ds-radio",
@@ -7330,7 +7406,8 @@
7330
7406
  "component:ds-mobile-bar-nav",
7331
7407
  "component:ds-shell-page",
7332
7408
  "component:ds-banner",
7333
- "component:ds-swatch-picker"
7409
+ "component:ds-swatch-picker",
7410
+ "component:ds-paper-texture"
7334
7411
  ],
7335
7412
  "patterns": [
7336
7413
  "pattern:application-shell",
@@ -7356,6 +7433,7 @@
7356
7433
  "Use composition=slotted only for advanced application architectures that intentionally own all lower-level chrome wiring.",
7357
7434
  "Set gradientPreset to the single resolved global chrome preference: neutral by default, none for solid chrome, or cool, neutral, warm, and fresh for token-based washes.",
7358
7435
  "The application owns gradient preference persistence, cross-tab synchronization, and server or account precedence; ShellApp owns rendering the resolved preset across authenticated routes.",
7436
+ "The optional paperTexture property adds a decorative Paper Design texture layer above the gradient or solid chrome frame; its color values are literal shader inputs rather than design tokens.",
7359
7437
  "Dashboard represents day-to-day operational work while Settings represents administrative and configuration work; route state selects the context.",
7360
7438
  "Replace navigation and pageChrome together from one completed route state.",
7361
7439
  "When pageChrome.showBack marks a detail depth, mobile chrome keeps the page heading as its identity and presents only local subsections; peer route tabs remain in desktop BarNav rather than replacing the detail heading.",
@@ -7376,20 +7454,24 @@
7376
7454
  "A slotted Banner remains below the top safe-area inset and above routed, navigation, fullscreen-tool, and mobile global-surface presentations.",
7377
7455
  "Mobile global surfaces conceal and inert the routed workspace without unmounting it, preserving nested routes and scroll state.",
7378
7456
  "Keep PanelNav width, BarNav height, PanelTools chrome, and main-content origin stable except during intentional responsive or collapse transitions.",
7457
+ "Paper texture chrome is desktop/tablet-only and follows the fixed viewport phase of the shell chrome; mobile remains a solid primary stage.",
7379
7458
  "Managed page-header capacity follows only the fixed shell breakpoint: roomy on desktop and compact on tablet. Opening PanelTools does not compact or constrain BarTitle.",
7380
7459
  "The bottom bar remains visible at all route and tool depths in the foundation release."
7381
7460
  ],
7382
7461
  "frameworkCaveats": {
7383
7462
  "customElements": [
7384
7463
  "Assign navigation, pageChrome, and tools as JavaScript properties on the managed ShellApp.",
7464
+ "Assign paperTexture as a JavaScript property when enabling the optional decorative layer.",
7385
7465
  "Stamp route-derived nav-style before components connect when deterministic first paint is required."
7386
7466
  ],
7387
7467
  "react": [
7388
7468
  "Use the generated ShellApp wrapper, structured object props, named tool-view slots, and stable routed children.",
7469
+ "Pass paperTexture as a structured property when the shell needs the optional texture layer.",
7389
7470
  "Resolve all shell inputs from one router state before rendering the composition."
7390
7471
  ],
7391
7472
  "angular": [
7392
7473
  "Use the generated standalone ShellApp adapter, bind structured object props, and preserve named tool-view slots.",
7474
+ "Bind paperTexture as a property so nested shader parameters are preserved.",
7393
7475
  "Bind complex inputs as properties and update navigation inputs atomically from one resolved router state.",
7394
7476
  "Bind both nav-style attributes and properties when deterministic first paint is required."
7395
7477
  ]
@@ -7443,6 +7525,10 @@
7443
7525
  "type": "ShellPageChromeConfig",
7444
7526
  "required": false
7445
7527
  },
7528
+ "paperTexture": {
7529
+ "type": "PaperTextureConfig",
7530
+ "required": false
7531
+ },
7446
7532
  "shortcutsEnabled": {
7447
7533
  "type": "boolean",
7448
7534
  "required": false
@@ -7529,6 +7615,7 @@
7529
7615
  "mobile-header",
7530
7616
  "mobile-sheet-nav",
7531
7617
  "panel-nav",
7618
+ "paper-texture",
7532
7619
  "shell-page",
7533
7620
  "shell-tools",
7534
7621
  "tooltip"
@@ -0,0 +1,12 @@
1
+ import { ChangeDetectorRef, ElementRef, NgZone } from '@angular/core';
2
+ import type { Components } from '@ds-mo/ui/components';
3
+ import * as i0 from "@angular/core";
4
+ export declare class DsPaperTexture {
5
+ protected z: NgZone;
6
+ protected el: HTMLDsPaperTextureElement;
7
+ constructor(c: ChangeDetectorRef, r: ElementRef, z: NgZone);
8
+ static ɵfac: i0.ɵɵFactoryDeclaration<DsPaperTexture, never>;
9
+ static ɵcmp: i0.ɵɵComponentDeclaration<DsPaperTexture, "ds-paper-texture", never, { "config": { "alias": "config"; "required": false; }; }, {}, never, ["*"], true, never>;
10
+ }
11
+ export declare interface DsPaperTexture extends Components.DsPaperTexture {
12
+ }
@@ -0,0 +1,38 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ /* tslint:disable */
8
+ /* auto-generated angular directive proxies */
9
+ import { ChangeDetectionStrategy, Component } from '@angular/core';
10
+ import { ProxyCmp } from './angular-component-lib/utils.js';
11
+ import { defineCustomElement as defineDsPaperTexture } from '@ds-mo/ui/components/ds-paper-texture.js';
12
+ import * as i0 from "@angular/core";
13
+ let DsPaperTexture = class DsPaperTexture {
14
+ constructor(c, r, z) {
15
+ this.z = z;
16
+ c.detach();
17
+ this.el = r.nativeElement;
18
+ }
19
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.0", ngImport: i0, type: DsPaperTexture, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
20
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "22.1.0", type: DsPaperTexture, isStandalone: true, selector: "ds-paper-texture", inputs: { config: "config" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
21
+ };
22
+ DsPaperTexture = __decorate([
23
+ ProxyCmp({
24
+ defineCustomElementFn: defineDsPaperTexture,
25
+ inputs: ['config']
26
+ })
27
+ ], DsPaperTexture);
28
+ export { DsPaperTexture };
29
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.0", ngImport: i0, type: DsPaperTexture, decorators: [{
30
+ type: Component,
31
+ args: [{
32
+ selector: 'ds-paper-texture',
33
+ changeDetection: ChangeDetectionStrategy.OnPush,
34
+ template: '<ng-content></ng-content>',
35
+ // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
36
+ inputs: ['config'],
37
+ }]
38
+ }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
@@ -38,7 +38,7 @@ export declare class DsShellApp {
38
38
  dsNavUserAction: EventEmitter<DsShellAppCustomEvent<IDsShellAppPanelNavUserActionDetail>>;
39
39
  constructor(c: ChangeDetectorRef, r: ElementRef, z: NgZone);
40
40
  static ɵfac: i0.ɵɵFactoryDeclaration<DsShellApp, never>;
41
- static ɵcmp: i0.ɵɵComponentDeclaration<DsShellApp, "ds-shell-app", never, { "composition": { "alias": "composition"; "required": false; }; "gradientPreset": { "alias": "gradientPreset"; "required": false; }; "mobileDestination": { "alias": "mobileDestination"; "required": false; }; "mobileSheetNavOpen": { "alias": "mobileSheetNavOpen"; "required": false; }; "navStyle": { "alias": "navStyle"; "required": false; }; "navigation": { "alias": "navigation"; "required": false; }; "pageChrome": { "alias": "pageChrome"; "required": false; }; "shortcutsEnabled": { "alias": "shortcutsEnabled"; "required": false; }; "tools": { "alias": "tools"; "required": false; }; }, { "dsResponsiveModeChange": "dsResponsiveModeChange"; "dsNavSelect": "dsNavSelect"; "dsTabChange": "dsTabChange"; "dsSubsectionChange": "dsSubsectionChange"; "dsPageBack": "dsPageBack"; "dsBreadcrumbSelect": "dsBreadcrumbSelect"; "dsPageAction": "dsPageAction"; "dsToolChange": "dsToolChange"; "dsHeaderBack": "dsHeaderBack"; "dsHeaderAction": "dsHeaderAction"; "dsPresentationChange": "dsPresentationChange"; "dsBrowseContextChange": "dsBrowseContextChange"; "dsNavFooterAction": "dsNavFooterAction"; "dsNavUserAction": "dsNavUserAction"; }, never, ["*"], true, never>;
41
+ static ɵcmp: i0.ɵɵComponentDeclaration<DsShellApp, "ds-shell-app", never, { "composition": { "alias": "composition"; "required": false; }; "gradientPreset": { "alias": "gradientPreset"; "required": false; }; "mobileDestination": { "alias": "mobileDestination"; "required": false; }; "mobileSheetNavOpen": { "alias": "mobileSheetNavOpen"; "required": false; }; "navStyle": { "alias": "navStyle"; "required": false; }; "navigation": { "alias": "navigation"; "required": false; }; "pageChrome": { "alias": "pageChrome"; "required": false; }; "paperTexture": { "alias": "paperTexture"; "required": false; }; "shortcutsEnabled": { "alias": "shortcutsEnabled"; "required": false; }; "tools": { "alias": "tools"; "required": false; }; }, { "dsResponsiveModeChange": "dsResponsiveModeChange"; "dsNavSelect": "dsNavSelect"; "dsTabChange": "dsTabChange"; "dsSubsectionChange": "dsSubsectionChange"; "dsPageBack": "dsPageBack"; "dsBreadcrumbSelect": "dsBreadcrumbSelect"; "dsPageAction": "dsPageAction"; "dsToolChange": "dsToolChange"; "dsHeaderBack": "dsHeaderBack"; "dsHeaderAction": "dsHeaderAction"; "dsPresentationChange": "dsPresentationChange"; "dsBrowseContextChange": "dsBrowseContextChange"; "dsNavFooterAction": "dsNavFooterAction"; "dsNavUserAction": "dsNavUserAction"; }, never, ["*"], true, never>;
42
42
  }
43
43
  export declare interface DsShellApp extends Components.DsShellApp {
44
44
  /**
@@ -31,12 +31,12 @@ let DsShellApp = class DsShellApp {
31
31
  this.el = r.nativeElement;
32
32
  }
33
33
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.0", ngImport: i0, type: DsShellApp, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
34
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "22.1.0", type: DsShellApp, isStandalone: true, selector: "ds-shell-app", inputs: { composition: "composition", gradientPreset: "gradientPreset", mobileDestination: "mobileDestination", mobileSheetNavOpen: "mobileSheetNavOpen", navStyle: "navStyle", navigation: "navigation", pageChrome: "pageChrome", shortcutsEnabled: "shortcutsEnabled", tools: "tools" }, outputs: { dsResponsiveModeChange: "dsResponsiveModeChange", dsNavSelect: "dsNavSelect", dsTabChange: "dsTabChange", dsSubsectionChange: "dsSubsectionChange", dsPageBack: "dsPageBack", dsBreadcrumbSelect: "dsBreadcrumbSelect", dsPageAction: "dsPageAction", dsToolChange: "dsToolChange", dsHeaderBack: "dsHeaderBack", dsHeaderAction: "dsHeaderAction", dsPresentationChange: "dsPresentationChange", dsBrowseContextChange: "dsBrowseContextChange", dsNavFooterAction: "dsNavFooterAction", dsNavUserAction: "dsNavUserAction" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
34
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "22.1.0", type: DsShellApp, isStandalone: true, selector: "ds-shell-app", inputs: { composition: "composition", gradientPreset: "gradientPreset", mobileDestination: "mobileDestination", mobileSheetNavOpen: "mobileSheetNavOpen", navStyle: "navStyle", navigation: "navigation", pageChrome: "pageChrome", paperTexture: "paperTexture", shortcutsEnabled: "shortcutsEnabled", tools: "tools" }, outputs: { dsResponsiveModeChange: "dsResponsiveModeChange", dsNavSelect: "dsNavSelect", dsTabChange: "dsTabChange", dsSubsectionChange: "dsSubsectionChange", dsPageBack: "dsPageBack", dsBreadcrumbSelect: "dsBreadcrumbSelect", dsPageAction: "dsPageAction", dsToolChange: "dsToolChange", dsHeaderBack: "dsHeaderBack", dsHeaderAction: "dsHeaderAction", dsPresentationChange: "dsPresentationChange", dsBrowseContextChange: "dsBrowseContextChange", dsNavFooterAction: "dsNavFooterAction", dsNavUserAction: "dsNavUserAction" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
35
35
  };
36
36
  DsShellApp = __decorate([
37
37
  ProxyCmp({
38
38
  defineCustomElementFn: defineDsShellApp,
39
- inputs: ['composition', 'gradientPreset', 'mobileDestination', 'mobileSheetNavOpen', 'navStyle', 'navigation', 'pageChrome', 'shortcutsEnabled', 'tools'],
39
+ inputs: ['composition', 'gradientPreset', 'mobileDestination', 'mobileSheetNavOpen', 'navStyle', 'navigation', 'pageChrome', 'paperTexture', 'shortcutsEnabled', 'tools'],
40
40
  methods: ['activateTool', 'closeGlobalSurface', 'setToolPresentation']
41
41
  })
42
42
  ], DsShellApp);
@@ -48,7 +48,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.0", ngImpor
48
48
  changeDetection: ChangeDetectionStrategy.OnPush,
49
49
  template: '<ng-content></ng-content>',
50
50
  // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
51
- inputs: ['composition', 'gradientPreset', 'mobileDestination', 'mobileSheetNavOpen', 'navStyle', 'navigation', 'pageChrome', 'shortcutsEnabled', 'tools'],
51
+ inputs: ['composition', 'gradientPreset', 'mobileDestination', 'mobileSheetNavOpen', 'navStyle', 'navigation', 'pageChrome', 'paperTexture', 'shortcutsEnabled', 'tools'],
52
52
  outputs: ['dsResponsiveModeChange', 'dsNavSelect', 'dsTabChange', 'dsSubsectionChange', 'dsPageBack', 'dsBreadcrumbSelect', 'dsPageAction', 'dsToolChange', 'dsHeaderBack', 'dsHeaderAction', 'dsPresentationChange', 'dsBrowseContextChange', 'dsNavFooterAction', 'dsNavUserAction'],
53
53
  }]
54
54
  }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }], propDecorators: { dsResponsiveModeChange: [{
@@ -1,2 +1,2 @@
1
1
  import * as d from './proxies';
2
- export declare const DIRECTIVES: (typeof d.DsAgentActivity | typeof d.DsAgentQuestionnaire | typeof d.DsAgentResponse | typeof d.DsAgentSourceList | typeof d.DsAgentToolCall | typeof d.DsAttachmentList | typeof d.DsAvatar | typeof d.DsBadge | typeof d.DsBanner | typeof d.DsBarAction | typeof d.DsBarNav | typeof d.DsBarTitle | typeof d.DsBarWorkflow | typeof d.DsBreadcrumb | typeof d.DsButtonFilled | typeof d.DsButtonUnfilled | typeof d.DsCardChart | typeof d.DsCardOverview | typeof d.DsCardSetting | typeof d.DsChartLegend | typeof d.DsChart | typeof d.DsCheckbox | typeof d.DsChip | typeof d.DsCodeBlock | typeof d.DsConversationListItem | typeof d.DsConversationListSection | typeof d.DsConversationList | typeof d.DsDivider | typeof d.DsEmptyState | typeof d.DsField | typeof d.DsFilterMenu | typeof d.DsIcon | typeof d.DsInput | typeof d.DsLoader | typeof d.DsMarkdown | typeof d.DsMenu | typeof d.DsMessageActions | typeof d.DsMessageBubble | typeof d.DsMessageComposer | typeof d.DsMessageScroller | typeof d.DsMessage | typeof d.DsMobileBarNav | typeof d.DsMobileHeader | typeof d.DsMobileSectionSwitcher | typeof d.DsMobileSheetNav | typeof d.DsModal | typeof d.DsPagination | typeof d.DsPanelNav | typeof d.DsPanelSubNav | typeof d.DsPanelToolHeader | typeof d.DsPanelToolSearch | typeof d.DsPanelTools | typeof d.DsRadio | typeof d.DsScrollOverlay | typeof d.DsSelect | typeof d.DsShellApp | typeof d.DsShellPage | typeof d.DsShellTools | typeof d.DsSkeleton | typeof d.DsSlider | typeof d.DsSwatchPicker | typeof d.DsSwitch | typeof d.DsTabGroup | typeof d.DsTableSavedViews | typeof d.DsTableToolbar | typeof d.DsTable | typeof d.DsTag | typeof d.DsText | typeof d.DsToast | typeof d.DsTooltipChart | typeof d.DsTooltip | typeof d.DsTypingIndicator)[];
2
+ export declare const DIRECTIVES: (typeof d.DsAgentActivity | typeof d.DsAgentQuestionnaire | typeof d.DsAgentResponse | typeof d.DsAgentSourceList | typeof d.DsAgentToolCall | typeof d.DsAttachmentList | typeof d.DsAvatar | typeof d.DsBadge | typeof d.DsBanner | typeof d.DsBarAction | typeof d.DsBarNav | typeof d.DsBarTitle | typeof d.DsBarWorkflow | typeof d.DsBreadcrumb | typeof d.DsButtonFilled | typeof d.DsButtonUnfilled | typeof d.DsCardChart | typeof d.DsCardOverview | typeof d.DsCardSetting | typeof d.DsChartLegend | typeof d.DsChart | typeof d.DsCheckbox | typeof d.DsChip | typeof d.DsCodeBlock | typeof d.DsConversationListItem | typeof d.DsConversationListSection | typeof d.DsConversationList | typeof d.DsDivider | typeof d.DsEmptyState | typeof d.DsField | typeof d.DsFilterMenu | typeof d.DsIcon | typeof d.DsInput | typeof d.DsLoader | typeof d.DsMarkdown | typeof d.DsMenu | typeof d.DsMessageActions | typeof d.DsMessageBubble | typeof d.DsMessageComposer | typeof d.DsMessageScroller | typeof d.DsMessage | typeof d.DsMobileBarNav | typeof d.DsMobileHeader | typeof d.DsMobileSectionSwitcher | typeof d.DsMobileSheetNav | typeof d.DsModal | typeof d.DsPagination | typeof d.DsPanelNav | typeof d.DsPanelSubNav | typeof d.DsPanelToolHeader | typeof d.DsPanelToolSearch | typeof d.DsPanelTools | typeof d.DsPaperTexture | typeof d.DsRadio | typeof d.DsScrollOverlay | typeof d.DsSelect | typeof d.DsShellApp | typeof d.DsShellPage | typeof d.DsShellTools | typeof d.DsSkeleton | typeof d.DsSlider | typeof d.DsSwatchPicker | typeof d.DsSwitch | typeof d.DsTabGroup | typeof d.DsTableSavedViews | typeof d.DsTableToolbar | typeof d.DsTable | typeof d.DsTag | typeof d.DsText | typeof d.DsToast | typeof d.DsTooltipChart | typeof d.DsTooltip | typeof d.DsTypingIndicator)[];
@@ -52,6 +52,7 @@ export const DIRECTIVES = [
52
52
  d.DsPanelToolHeader,
53
53
  d.DsPanelToolSearch,
54
54
  d.DsPanelTools,
55
+ d.DsPaperTexture,
55
56
  d.DsRadio,
56
57
  d.DsScrollOverlay,
57
58
  d.DsSelect,
@@ -54,6 +54,7 @@ export { DsPanelSubNav } from './ds-panel-sub-nav';
54
54
  export { DsPanelToolHeader } from './ds-panel-tool-header';
55
55
  export { DsPanelToolSearch } from './ds-panel-tool-search';
56
56
  export { DsPanelTools } from './ds-panel-tools';
57
+ export { DsPaperTexture } from './ds-paper-texture';
57
58
  export { DsRadio } from './ds-radio';
58
59
  export { DsScrollOverlay } from './ds-scroll-overlay';
59
60
  export { DsSelect } from './ds-select';
@@ -55,6 +55,7 @@ export { DsPanelSubNav } from './ds-panel-sub-nav.js';
55
55
  export { DsPanelToolHeader } from './ds-panel-tool-header.js';
56
56
  export { DsPanelToolSearch } from './ds-panel-tool-search.js';
57
57
  export { DsPanelTools } from './ds-panel-tools.js';
58
+ export { DsPaperTexture } from './ds-paper-texture.js';
58
59
  export { DsRadio } from './ds-radio.js';
59
60
  export { DsScrollOverlay } from './ds-scroll-overlay.js';
60
61
  export { DsSelect } from './ds-select.js';
@@ -1,2 +1,2 @@
1
- import{B as o,d as s}from"./p-GdlSIpHV.js";const p=o;const t=s;export{p as DsBarNav,t as defineCustomElement};
1
+ import{B as s,d as o}from"./p-URdgCwEs.js";const t=s;const p=o;export{t as DsBarNav,p as defineCustomElement};
2
2
  //# sourceMappingURL=ds-bar-nav.js.map
@@ -1,2 +1,2 @@
1
- import{B as s,d as o}from"./p-Bubs1_8P.js";const t=s;const p=o;export{t as DsBarTitle,p as defineCustomElement};
1
+ import{B as o,d as s}from"./p-Ck_VRQYi.js";const t=o;const p=s;export{t as DsBarTitle,p as defineCustomElement};
2
2
  //# sourceMappingURL=ds-bar-title.js.map
@@ -1,2 +1,2 @@
1
- import{p as s,H as o,c as i,h as e,a as t,t as r}from"./index.js";import{d as a}from"./p-vWK5faWZ.js";import{d as n}from"./p-BxqBiVbH.js";import{d}from"./p-C7rzVotG.js";import{d as l}from"./p-BFfLvMZd.js";import{d as c}from"./p-Ca-I2UnB.js";import{d as m}from"./p-Dh_p8OzP.js";import{d as b}from"./p-BAStZzJu.js";import{d as h}from"./p-BZ3UTshV.js";import{d as w}from"./p-DgWGfscR.js";import{d as f}from"./p-Btxwp4lJ.js";import{d as p}from"./p-BzObtSlo.js";import{d as u}from"./p-jMCRaxQW.js";import{d as k}from"./p-DZFilC--.js";import{d as g}from"./p-BXPQmp7q.js";const v=()=>`.ds-control--lg.sc-ds-bar-workflow,.ds-control--lg.sc-ds-bar-workflow-h,.ds-control--md.sc-ds-bar-workflow-h,.ds-control--md.sc-ds-bar-workflow,.ds-control--sm.sc-ds-bar-workflow-h,.ds-control--sm.sc-ds-bar-workflow,.ds-control--xs.sc-ds-bar-workflow-h,.ds-control--xs.sc-ds-bar-workflow{--ds-control-radius:var(--dimension-radius-025)}.ds-control--lg.sc-ds-bar-workflow-h,.ds-control--lg.sc-ds-bar-workflow{--ds-control-height:var(--dimension-size-500);--ds-control-icon:var(--dimension-iconography-lg);--ds-control-padding-inline:var(--dimension-space-100);--ds-control-label-inset:var(--dimension-space-050);--ds-control-gap:var(--dimension-space-050)}.ds-control--md.sc-ds-bar-workflow-h,.ds-control--md.sc-ds-bar-workflow{--ds-control-height:var(--dimension-size-400);--ds-control-icon:var(--dimension-iconography-md);--ds-control-padding-inline:var(--dimension-space-075);--ds-control-label-inset:var(--dimension-space-025);--ds-control-gap:var(--dimension-space-050)}.ds-control--sm.sc-ds-bar-workflow-h,.ds-control--sm.sc-ds-bar-workflow{--ds-control-height:var(--dimension-size-300);--ds-control-icon:var(--dimension-iconography-sm);--ds-control-padding-inline:var(--dimension-space-050);--ds-control-label-inset:var(--dimension-space-025);--ds-control-gap:var(--dimension-space-025)}.ds-control--xs.sc-ds-bar-workflow-h,.ds-control--xs.sc-ds-bar-workflow{--ds-control-height:var(--dimension-size-200);--ds-control-icon:var(--dimension-iconography-xs);--ds-control-padding-inline:var(--dimension-space-025);--ds-control-label-inset:var(--dimension-space-025);--ds-control-gap:0}.ds-chrome-space--sm.sc-ds-bar-workflow-h,.ds-chrome-space--sm.sc-ds-bar-workflow{--ds-chrome-padding:var(--dimension-space-050);--ds-chrome-gap:var(--dimension-space-050)}.ds-chrome-space--md.sc-ds-bar-workflow-h,.ds-chrome-space--md.sc-ds-bar-workflow{--ds-chrome-padding:var(--dimension-space-100);--ds-chrome-gap:var(--dimension-space-100)}.ds-chrome-space--lg.sc-ds-bar-workflow-h,.ds-chrome-space--lg.sc-ds-bar-workflow{--ds-chrome-padding:var(--dimension-space-200);--ds-chrome-gap:var(--dimension-space-200)}.ds-chrome-row.sc-ds-bar-workflow-h,.ds-chrome-row.sc-ds-bar-workflow,.ds-chrome-column.sc-ds-bar-workflow-h,.ds-chrome-column.sc-ds-bar-workflow,.ds-chrome-grid.sc-ds-bar-workflow-h,.ds-chrome-grid.sc-ds-bar-workflow{display:flex;box-sizing:border-box;gap:var(--ds-chrome-gap, var(--dimension-space-100));padding:var(--ds-chrome-padding, var(--dimension-space-100))}.ds-chrome-row.sc-ds-bar-workflow-h,.ds-chrome-row.sc-ds-bar-workflow{flex-direction:row;align-items:center}.ds-chrome-column.sc-ds-bar-workflow-h,.ds-chrome-column.sc-ds-bar-workflow{flex-direction:column}.ds-chrome-grid.sc-ds-bar-workflow-h,.ds-chrome-grid.sc-ds-bar-workflow{display:grid;align-items:center}.sc-ds-bar-workflow-h{display:block;min-width:0;box-sizing:border-box;background:var(--color-background-bold-brand)}.bar-workflow.sc-ds-bar-workflow{justify-content:space-between;height:var(--dimension-size-600);min-width:0;background:var(--color-background-bold-brand)}.bar-workflow__identity.sc-ds-bar-workflow{display:flex;flex:1 1 auto;align-items:center;gap:var(--dimension-space-050);height:var(--dimension-size-400);min-width:0}.bar-workflow__heading.sc-ds-bar-workflow{display:inline-flex;flex:1 1 auto;align-items:center;width:auto;min-width:0;height:var(--dimension-size-400);padding-inline:calc(var(--ds-control-padding-inline) + var(--ds-control-label-inset));box-sizing:border-box;user-select:none}.bar-workflow__actions.sc-ds-bar-workflow{display:flex;flex:0 0 auto;align-items:center;gap:var(--dimension-space-100)}`;const x=s(class s extends o{constructor(s){super();if(s!==false){this.__registerHost()}this.dsExit=i(this,"dsExit");this.dsStepChange=i(this,"dsStepChange");this.dsSubmit=i(this,"dsSubmit");this.steps=[];this.value="";this.exitLabel="Exit";this.exitAriaLabel="Exit workflow";this.previousLabel="Previous step";this.nextLabel="Next step";this.submitAction={label:"Save",type:"submit"};this.isNextInactive=false;this.responsiveMode="desktop";this.handlePrevious=()=>{if(this.previousStep&&!this.previousStep.isInactive){this.dsStepChange.emit(this.previousStep.id)}};this.handleNext=()=>{if(this.nextStep&&!this.isNextInactive&&!this.nextStep.isInactive){this.dsStepChange.emit(this.nextStep.id)}}}get currentIndex(){const s=this.steps.findIndex((s=>s.id===this.value));return s>=0?s:0}get previousStep(){return this.steps[this.currentIndex-1]??null}get nextStep(){return this.steps[this.currentIndex+1]??null}get isLastStep(){return this.steps.length<=1||this.currentIndex===this.steps.length-1}get resolvedHeading(){if(this.steps.length<=1)return this.heading;return`${this.heading} · ${this.currentIndex+1}/${this.steps.length}`}renderSubmit(s){const o=this.submitAction;return e("ds-tooltip",{slot:s,label:o.label,side:"bottom",size:"sm"},e("ds-button-filled",{class:"bar-workflow__submit",variant:"icon",icon:"Check",label:o.label,"aria-label":o.label,intent:"brand",contrast:"faint",background:"bold",size:"md",type:o.type??"submit",isInactive:o.isInactive,isLoading:o.isLoading,onDsClick:s=>this.dsSubmit.emit(s.detail)}))}renderMobile(){return e("ds-mobile-header",{class:"bar-workflow__mobile",heading:this.resolvedHeading,tone:"brand"},e("ds-tooltip",{slot:"leading",label:this.exitLabel,side:"bottom",size:"sm"},e("ds-button-unfilled",{class:"bar-workflow__exit",variant:"icon",icon:"Cross","aria-label":this.exitAriaLabel,size:"md",background:"bold",activeFill:false,hasBorder:false,onDsClick:s=>this.dsExit.emit(s.detail)})),this.previousStep?e("ds-tooltip",{slot:"trailing",label:this.previousLabel,side:"bottom",size:"sm"},e("ds-button-unfilled",{class:"bar-workflow__previous",variant:"icon",icon:"ChevronLeft","aria-label":this.previousLabel,size:"md",background:"bold",activeFill:false,hasBorder:false,isInactive:this.previousStep.isInactive,onDsClick:this.handlePrevious})):null,this.isLastStep?this.renderSubmit("trailing"):e("ds-tooltip",{slot:"trailing",label:this.nextLabel,side:"bottom",size:"sm"},e("ds-button-filled",{class:"bar-workflow__next",variant:"icon",icon:"ChevronRight",label:this.nextLabel,"aria-label":this.nextLabel,intent:"brand",contrast:"faint",background:"bold",size:"md",type:"button",isInactive:this.isNextInactive||this.nextStep?.isInactive,onDsClick:this.handleNext})))}renderDesktop(){return e("div",{class:"bar-workflow ds-chrome-row ds-chrome-space--md"},e("div",{class:"bar-workflow__identity"},e("ds-tooltip",{label:this.exitLabel,side:"bottom",size:"sm"},e("ds-button-unfilled",{class:"bar-workflow__exit",variant:"icon",icon:"Cross","aria-label":this.exitAriaLabel,size:"md",background:"bold",activeFill:false,hasBorder:false,onDsClick:s=>this.dsExit.emit(s.detail)})),e("ds-text",{class:"bar-workflow__heading ds-control--md",variant:"text-title-small",emphasis:true,color:"on-bold",as:"h1",lineTruncation:1},this.resolvedHeading)),e("div",{class:"bar-workflow__actions"},this.previousStep?e("ds-tooltip",{label:this.previousLabel,side:"bottom",size:"sm"},e("ds-button-unfilled",{class:"bar-workflow__previous",variant:"icon",icon:"ChevronLeft","aria-label":this.previousLabel,size:"md",background:"bold",activeFill:false,hasBorder:false,isInactive:this.previousStep.isInactive,onDsClick:this.handlePrevious})):null,this.isLastStep?this.renderSubmit():e("ds-tooltip",{label:this.nextLabel,side:"bottom",size:"sm"},e("ds-button-filled",{class:"bar-workflow__next",variant:"icon",icon:"ChevronRight",label:this.nextLabel,"aria-label":this.nextLabel,intent:"brand",contrast:"faint",background:"bold",size:"md",type:"button",isInactive:this.isNextInactive||this.nextStep?.isInactive,onDsClick:this.handleNext}))))}render(){return e(t,{key:"a4c9683c0a7d97c6422b88f57322ab9e7225812a"},this.responsiveMode==="mobile"?this.renderMobile():this.renderDesktop())}static get style(){return v()}},[2,"ds-bar-workflow",{heading:[1],steps:[16],value:[1],exitLabel:[1,"exit-label"],exitAriaLabel:[1,"exit-aria-label"],previousLabel:[1,"previous-label"],nextLabel:[1,"next-label"],submitAction:[16],isNextInactive:[4,"is-next-inactive"],responsiveMode:[513,"responsive-mode"]}]);function _(){if(typeof customElements==="undefined"){return}const s=["ds-bar-workflow","ds-badge","ds-button-filled","ds-button-unfilled","ds-icon","ds-loader","ds-menu","ds-mobile-header","ds-mobile-section-switcher","ds-swatch-picker","ds-switch","ds-tab-group","ds-tag","ds-text","ds-tooltip"];s.forEach((s=>{switch(s){case"ds-bar-workflow":if(!customElements.get(r(s))){customElements.define(r(s),x)}break;case"ds-badge":if(!customElements.get(r(s))){a()}break;case"ds-button-filled":if(!customElements.get(r(s))){n()}break;case"ds-button-unfilled":if(!customElements.get(r(s))){d()}break;case"ds-icon":if(!customElements.get(r(s))){l()}break;case"ds-loader":if(!customElements.get(r(s))){c()}break;case"ds-menu":if(!customElements.get(r(s))){m()}break;case"ds-mobile-header":if(!customElements.get(r(s))){b()}break;case"ds-mobile-section-switcher":if(!customElements.get(r(s))){h()}break;case"ds-swatch-picker":if(!customElements.get(r(s))){w()}break;case"ds-switch":if(!customElements.get(r(s))){f()}break;case"ds-tab-group":if(!customElements.get(r(s))){p()}break;case"ds-tag":if(!customElements.get(r(s))){u()}break;case"ds-text":if(!customElements.get(r(s))){k()}break;case"ds-tooltip":if(!customElements.get(r(s))){g()}break}}))}_();const z=x;const y=_;export{z as DsBarWorkflow,y as defineCustomElement};
1
+ import{p as s,H as o,c as i,h as e,a as r,t}from"./index.js";import{d as a}from"./p-vWK5faWZ.js";import{d as n}from"./p-BxqBiVbH.js";import{d}from"./p-C7rzVotG.js";import{d as l}from"./p-BFfLvMZd.js";import{d as c}from"./p-Ca-I2UnB.js";import{d as m}from"./p-DfyfrfHL.js";import{d as b}from"./p-C2n8A8NA.js";import{d as h}from"./p-Cyw9odJX.js";import{d as f}from"./p-Rfpd5mWO.js";import{d as w}from"./p-Btxwp4lJ.js";import{d as p}from"./p-BzObtSlo.js";import{d as u}from"./p-jMCRaxQW.js";import{d as k}from"./p-DZFilC--.js";import{d as g}from"./p-BXPQmp7q.js";const v=()=>`.ds-control--lg.sc-ds-bar-workflow,.ds-control--lg.sc-ds-bar-workflow-h,.ds-control--md.sc-ds-bar-workflow-h,.ds-control--md.sc-ds-bar-workflow,.ds-control--sm.sc-ds-bar-workflow-h,.ds-control--sm.sc-ds-bar-workflow,.ds-control--xs.sc-ds-bar-workflow-h,.ds-control--xs.sc-ds-bar-workflow{--ds-control-radius:var(--dimension-radius-025)}.ds-control--lg.sc-ds-bar-workflow-h,.ds-control--lg.sc-ds-bar-workflow{--ds-control-height:var(--dimension-size-500);--ds-control-icon:var(--dimension-iconography-lg);--ds-control-padding-inline:var(--dimension-space-100);--ds-control-label-inset:var(--dimension-space-050);--ds-control-gap:var(--dimension-space-050)}.ds-control--md.sc-ds-bar-workflow-h,.ds-control--md.sc-ds-bar-workflow{--ds-control-height:var(--dimension-size-400);--ds-control-icon:var(--dimension-iconography-md);--ds-control-padding-inline:var(--dimension-space-075);--ds-control-label-inset:var(--dimension-space-025);--ds-control-gap:var(--dimension-space-050)}.ds-control--sm.sc-ds-bar-workflow-h,.ds-control--sm.sc-ds-bar-workflow{--ds-control-height:var(--dimension-size-300);--ds-control-icon:var(--dimension-iconography-sm);--ds-control-padding-inline:var(--dimension-space-050);--ds-control-label-inset:var(--dimension-space-025);--ds-control-gap:var(--dimension-space-025)}.ds-control--xs.sc-ds-bar-workflow-h,.ds-control--xs.sc-ds-bar-workflow{--ds-control-height:var(--dimension-size-200);--ds-control-icon:var(--dimension-iconography-xs);--ds-control-padding-inline:var(--dimension-space-025);--ds-control-label-inset:var(--dimension-space-025);--ds-control-gap:0}.ds-chrome-space--sm.sc-ds-bar-workflow-h,.ds-chrome-space--sm.sc-ds-bar-workflow{--ds-chrome-padding:var(--dimension-space-050);--ds-chrome-gap:var(--dimension-space-050)}.ds-chrome-space--md.sc-ds-bar-workflow-h,.ds-chrome-space--md.sc-ds-bar-workflow{--ds-chrome-padding:var(--dimension-space-100);--ds-chrome-gap:var(--dimension-space-100)}.ds-chrome-space--lg.sc-ds-bar-workflow-h,.ds-chrome-space--lg.sc-ds-bar-workflow{--ds-chrome-padding:var(--dimension-space-200);--ds-chrome-gap:var(--dimension-space-200)}.ds-chrome-row.sc-ds-bar-workflow-h,.ds-chrome-row.sc-ds-bar-workflow,.ds-chrome-column.sc-ds-bar-workflow-h,.ds-chrome-column.sc-ds-bar-workflow,.ds-chrome-grid.sc-ds-bar-workflow-h,.ds-chrome-grid.sc-ds-bar-workflow{display:flex;box-sizing:border-box;gap:var(--ds-chrome-gap, var(--dimension-space-100));padding:var(--ds-chrome-padding, var(--dimension-space-100))}.ds-chrome-row.sc-ds-bar-workflow-h,.ds-chrome-row.sc-ds-bar-workflow{flex-direction:row;align-items:center}.ds-chrome-column.sc-ds-bar-workflow-h,.ds-chrome-column.sc-ds-bar-workflow{flex-direction:column}.ds-chrome-grid.sc-ds-bar-workflow-h,.ds-chrome-grid.sc-ds-bar-workflow{display:grid;align-items:center}.sc-ds-bar-workflow-h{display:block;min-width:0;box-sizing:border-box;background:var(--color-background-bold-brand)}.bar-workflow.sc-ds-bar-workflow{justify-content:space-between;height:var(--dimension-size-600);min-width:0;background:var(--color-background-bold-brand)}.bar-workflow__identity.sc-ds-bar-workflow{display:flex;flex:1 1 auto;align-items:center;gap:var(--dimension-space-050);height:var(--dimension-size-400);min-width:0}.bar-workflow__heading.sc-ds-bar-workflow{display:inline-flex;flex:1 1 auto;align-items:center;width:auto;min-width:0;height:var(--dimension-size-400);padding-inline:calc(var(--ds-control-padding-inline) + var(--ds-control-label-inset));box-sizing:border-box;user-select:none}.bar-workflow__actions.sc-ds-bar-workflow{display:flex;flex:0 0 auto;align-items:center;gap:var(--dimension-space-100)}`;const x=s(class s extends o{constructor(s){super();if(s!==false){this.__registerHost()}this.dsExit=i(this,"dsExit");this.dsStepChange=i(this,"dsStepChange");this.dsSubmit=i(this,"dsSubmit");this.steps=[];this.value="";this.exitLabel="Exit";this.exitAriaLabel="Exit workflow";this.previousLabel="Previous step";this.nextLabel="Next step";this.submitAction={label:"Save",type:"submit"};this.isNextInactive=false;this.responsiveMode="desktop";this.handlePrevious=()=>{if(this.previousStep&&!this.previousStep.isInactive){this.dsStepChange.emit(this.previousStep.id)}};this.handleNext=()=>{if(this.nextStep&&!this.isNextInactive&&!this.nextStep.isInactive){this.dsStepChange.emit(this.nextStep.id)}}}get currentIndex(){const s=this.steps.findIndex((s=>s.id===this.value));return s>=0?s:0}get previousStep(){return this.steps[this.currentIndex-1]??null}get nextStep(){return this.steps[this.currentIndex+1]??null}get isLastStep(){return this.steps.length<=1||this.currentIndex===this.steps.length-1}get resolvedHeading(){if(this.steps.length<=1)return this.heading;return`${this.heading} · ${this.currentIndex+1}/${this.steps.length}`}renderSubmit(s){const o=this.submitAction;return e("ds-tooltip",{slot:s,label:o.label,side:"bottom",size:"sm"},e("ds-button-filled",{class:"bar-workflow__submit",variant:"icon",icon:"Check",label:o.label,"aria-label":o.label,intent:"brand",contrast:"faint",background:"bold",size:"md",type:o.type??"submit",isInactive:o.isInactive,isLoading:o.isLoading,onDsClick:s=>this.dsSubmit.emit(s.detail)}))}renderMobile(){return e("ds-mobile-header",{class:"bar-workflow__mobile",heading:this.resolvedHeading,tone:"brand"},e("ds-tooltip",{slot:"leading",label:this.exitLabel,side:"bottom",size:"sm"},e("ds-button-unfilled",{class:"bar-workflow__exit",variant:"icon",icon:"Cross","aria-label":this.exitAriaLabel,size:"md",background:"bold",activeFill:false,hasBorder:false,onDsClick:s=>this.dsExit.emit(s.detail)})),this.previousStep?e("ds-tooltip",{slot:"trailing",label:this.previousLabel,side:"bottom",size:"sm"},e("ds-button-unfilled",{class:"bar-workflow__previous",variant:"icon",icon:"ChevronLeft","aria-label":this.previousLabel,size:"md",background:"bold",activeFill:false,hasBorder:false,isInactive:this.previousStep.isInactive,onDsClick:this.handlePrevious})):null,this.isLastStep?this.renderSubmit("trailing"):e("ds-tooltip",{slot:"trailing",label:this.nextLabel,side:"bottom",size:"sm"},e("ds-button-filled",{class:"bar-workflow__next",variant:"icon",icon:"ChevronRight",label:this.nextLabel,"aria-label":this.nextLabel,intent:"brand",contrast:"faint",background:"bold",size:"md",type:"button",isInactive:this.isNextInactive||this.nextStep?.isInactive,onDsClick:this.handleNext})))}renderDesktop(){return e("div",{class:"bar-workflow ds-chrome-row ds-chrome-space--md"},e("div",{class:"bar-workflow__identity"},e("ds-tooltip",{label:this.exitLabel,side:"bottom",size:"sm"},e("ds-button-unfilled",{class:"bar-workflow__exit",variant:"icon",icon:"Cross","aria-label":this.exitAriaLabel,size:"md",background:"bold",activeFill:false,hasBorder:false,onDsClick:s=>this.dsExit.emit(s.detail)})),e("ds-text",{class:"bar-workflow__heading ds-control--md",variant:"text-title-small",emphasis:true,color:"on-bold",as:"h1",lineTruncation:1},this.resolvedHeading)),e("div",{class:"bar-workflow__actions"},this.previousStep?e("ds-tooltip",{label:this.previousLabel,side:"bottom",size:"sm"},e("ds-button-unfilled",{class:"bar-workflow__previous",variant:"icon",icon:"ChevronLeft","aria-label":this.previousLabel,size:"md",background:"bold",activeFill:false,hasBorder:false,isInactive:this.previousStep.isInactive,onDsClick:this.handlePrevious})):null,this.isLastStep?this.renderSubmit():e("ds-tooltip",{label:this.nextLabel,side:"bottom",size:"sm"},e("ds-button-filled",{class:"bar-workflow__next",variant:"icon",icon:"ChevronRight",label:this.nextLabel,"aria-label":this.nextLabel,intent:"brand",contrast:"faint",background:"bold",size:"md",type:"button",isInactive:this.isNextInactive||this.nextStep?.isInactive,onDsClick:this.handleNext}))))}render(){return e(r,{key:"a4c9683c0a7d97c6422b88f57322ab9e7225812a"},this.responsiveMode==="mobile"?this.renderMobile():this.renderDesktop())}static get style(){return v()}},[2,"ds-bar-workflow",{heading:[1],steps:[16],value:[1],exitLabel:[1,"exit-label"],exitAriaLabel:[1,"exit-aria-label"],previousLabel:[1,"previous-label"],nextLabel:[1,"next-label"],submitAction:[16],isNextInactive:[4,"is-next-inactive"],responsiveMode:[513,"responsive-mode"]}]);function _(){if(typeof customElements==="undefined"){return}const s=["ds-bar-workflow","ds-badge","ds-button-filled","ds-button-unfilled","ds-icon","ds-loader","ds-menu","ds-mobile-header","ds-mobile-section-switcher","ds-swatch-picker","ds-switch","ds-tab-group","ds-tag","ds-text","ds-tooltip"];s.forEach((s=>{switch(s){case"ds-bar-workflow":if(!customElements.get(t(s))){customElements.define(t(s),x)}break;case"ds-badge":if(!customElements.get(t(s))){a()}break;case"ds-button-filled":if(!customElements.get(t(s))){n()}break;case"ds-button-unfilled":if(!customElements.get(t(s))){d()}break;case"ds-icon":if(!customElements.get(t(s))){l()}break;case"ds-loader":if(!customElements.get(t(s))){c()}break;case"ds-menu":if(!customElements.get(t(s))){m()}break;case"ds-mobile-header":if(!customElements.get(t(s))){b()}break;case"ds-mobile-section-switcher":if(!customElements.get(t(s))){h()}break;case"ds-swatch-picker":if(!customElements.get(t(s))){f()}break;case"ds-switch":if(!customElements.get(t(s))){w()}break;case"ds-tab-group":if(!customElements.get(t(s))){p()}break;case"ds-tag":if(!customElements.get(t(s))){u()}break;case"ds-text":if(!customElements.get(t(s))){k()}break;case"ds-tooltip":if(!customElements.get(t(s))){g()}break}}))}_();const z=x;const y=_;export{z as DsBarWorkflow,y as defineCustomElement};
2
2
  //# sourceMappingURL=ds-bar-workflow.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["barWorkflowCss","BarWorkflow","__stencil_proxyCustomElement","HTMLElement","constructor","registerHost","this","steps","value","exitLabel","exitAriaLabel","previousLabel","nextLabel","submitAction","label","type","isNextInactive","responsiveMode","handlePrevious","previousStep","isInactive","dsStepChange","emit","id","handleNext","nextStep","currentIndex","index","findIndex","step","isLastStep","length","resolvedHeading","heading","renderSubmit","slot","submit","h","side","size","class","variant","icon","intent","contrast","background","isLoading","onDsClick","event","dsSubmit","detail","renderMobile","tone","activeFill","hasBorder","dsExit","renderDesktop","emphasis","color","as","lineTruncation","render","Host","key"],"sources":["src/wc/components/BarWorkflow/BarWorkflow.css?tag=ds-bar-workflow&encapsulation=scoped","src/wc/components/BarWorkflow/BarWorkflow.tsx"],"sourcesContent":["@import '../../utils/control-density.css';\n@import '../../utils/chrome-layout.css';\n\n:host {\n display: block;\n min-width: 0;\n box-sizing: border-box;\n background: var(--color-background-bold-brand);\n}\n\n.bar-workflow {\n justify-content: space-between;\n height: var(--dimension-size-600);\n min-width: 0;\n background: var(--color-background-bold-brand);\n}\n\n.bar-workflow__identity {\n display: flex;\n flex: 1 1 auto;\n align-items: center;\n gap: var(--dimension-space-050);\n height: var(--dimension-size-400);\n min-width: 0;\n}\n\n.bar-workflow__heading {\n display: inline-flex;\n flex: 1 1 auto;\n align-items: center;\n width: auto;\n min-width: 0;\n height: var(--dimension-size-400);\n padding-inline: calc(var(--ds-control-padding-inline) + var(--ds-control-label-inset));\n box-sizing: border-box;\n user-select: none;\n}\n\n.bar-workflow__actions {\n display: flex;\n flex: 0 0 auto;\n align-items: center;\n gap: var(--dimension-space-100);\n}\n","import { Component, Event, EventEmitter, h, Host, Prop } from '@stencil/core';\nimport type { ShellResponsiveMode } from '../../shell/shell-responsive';\nimport type { BarWorkflowStep, BarWorkflowSubmitAction } from './bar-workflow-types';\n\n@Component({\n tag: 'ds-bar-workflow',\n styleUrl: 'BarWorkflow.css',\n scoped: true,\n})\nexport class BarWorkflow {\n /** The workflow's single visible h1. */\n @Prop() heading!: string;\n\n /** Ordered workflow steps. Step state is controlled by the application. */\n @Prop() steps: BarWorkflowStep[] = [];\n\n /** Id of the current workflow step. Falls back to the first step. */\n @Prop() value: string = '';\n\n /** Concise tooltip label for the Exit control. */\n @Prop() exitLabel: string = 'Exit';\n\n /** Workflow-specific accessible name for Exit. */\n @Prop() exitAriaLabel: string = 'Exit workflow';\n\n /** Tooltip and accessible name for the previous-step control. */\n @Prop() previousLabel: string = 'Previous step';\n\n /** Tooltip and accessible name for the next-step control. */\n @Prop() nextLabel: string = 'Next step';\n\n /** The final-step Save or Submit action. */\n @Prop() submitAction: BarWorkflowSubmitAction = {\n label: 'Save',\n type: 'submit',\n };\n\n /** Prevent advancing while the current step is incomplete or invalid. */\n @Prop() isNextInactive: boolean = false;\n\n /** Explicit shell breakpoint presentation. Mobile keeps the same controlled workflow state. */\n @Prop({ attribute: 'responsive-mode', reflect: true })\n responsiveMode: ShellResponsiveMode = 'desktop';\n\n /** Emitted when Exit is activated. */\n @Event() dsExit!: EventEmitter<MouseEvent>;\n\n /** Emitted with the target previous or next step id. The component never mutates value. */\n @Event() dsStepChange!: EventEmitter<string>;\n\n /** Emitted when the final Save or Submit control is activated. */\n @Event() dsSubmit!: EventEmitter<MouseEvent>;\n\n private get currentIndex(): number {\n const index = this.steps.findIndex(step => step.id === this.value);\n return index >= 0 ? index : 0;\n }\n\n private get previousStep(): BarWorkflowStep | null {\n return this.steps[this.currentIndex - 1] ?? null;\n }\n\n private get nextStep(): BarWorkflowStep | null {\n return this.steps[this.currentIndex + 1] ?? null;\n }\n\n private get isLastStep(): boolean {\n return this.steps.length <= 1 || this.currentIndex === this.steps.length - 1;\n }\n\n private get resolvedHeading(): string {\n if (this.steps.length <= 1) return this.heading;\n return `${this.heading} · ${this.currentIndex + 1}/${this.steps.length}`;\n }\n\n private handlePrevious = () => {\n if (this.previousStep && !this.previousStep.isInactive) {\n this.dsStepChange.emit(this.previousStep.id);\n }\n };\n\n private handleNext = () => {\n if (this.nextStep && !this.isNextInactive && !this.nextStep.isInactive) {\n this.dsStepChange.emit(this.nextStep.id);\n }\n };\n\n private renderSubmit(slot?: 'trailing') {\n const submit = this.submitAction;\n return (\n <ds-tooltip slot={slot} label={submit.label} side=\"bottom\" size=\"sm\">\n <ds-button-filled\n class=\"bar-workflow__submit\"\n variant=\"icon\"\n icon=\"Check\"\n label={submit.label}\n aria-label={submit.label}\n intent=\"brand\"\n contrast=\"faint\"\n background=\"bold\"\n size=\"md\"\n type={submit.type ?? 'submit'}\n isInactive={submit.isInactive}\n isLoading={submit.isLoading}\n onDsClick={(event: CustomEvent<MouseEvent>) => this.dsSubmit.emit(event.detail)}\n />\n </ds-tooltip>\n );\n }\n\n private renderMobile() {\n return (\n <ds-mobile-header\n class=\"bar-workflow__mobile\"\n heading={this.resolvedHeading}\n tone=\"brand\"\n >\n <ds-tooltip slot=\"leading\" label={this.exitLabel} side=\"bottom\" size=\"sm\">\n <ds-button-unfilled\n class=\"bar-workflow__exit\"\n variant=\"icon\"\n icon=\"Cross\"\n aria-label={this.exitAriaLabel}\n size=\"md\"\n background=\"bold\"\n activeFill={false}\n hasBorder={false}\n onDsClick={(event: CustomEvent<MouseEvent>) => this.dsExit.emit(event.detail)}\n />\n </ds-tooltip>\n\n {this.previousStep ? (\n <ds-tooltip slot=\"trailing\" label={this.previousLabel} side=\"bottom\" size=\"sm\">\n <ds-button-unfilled\n class=\"bar-workflow__previous\"\n variant=\"icon\"\n icon=\"ChevronLeft\"\n aria-label={this.previousLabel}\n size=\"md\"\n background=\"bold\"\n activeFill={false}\n hasBorder={false}\n isInactive={this.previousStep.isInactive}\n onDsClick={this.handlePrevious}\n />\n </ds-tooltip>\n ) : null}\n\n {this.isLastStep ? (\n this.renderSubmit('trailing')\n ) : (\n <ds-tooltip slot=\"trailing\" label={this.nextLabel} side=\"bottom\" size=\"sm\">\n <ds-button-filled\n class=\"bar-workflow__next\"\n variant=\"icon\"\n icon=\"ChevronRight\"\n label={this.nextLabel}\n aria-label={this.nextLabel}\n intent=\"brand\"\n contrast=\"faint\"\n background=\"bold\"\n size=\"md\"\n type=\"button\"\n isInactive={this.isNextInactive || this.nextStep?.isInactive}\n onDsClick={this.handleNext}\n />\n </ds-tooltip>\n )}\n </ds-mobile-header>\n );\n }\n\n private renderDesktop() {\n return (\n <div class=\"bar-workflow ds-chrome-row ds-chrome-space--md\">\n <div class=\"bar-workflow__identity\">\n <ds-tooltip label={this.exitLabel} side=\"bottom\" size=\"sm\">\n <ds-button-unfilled\n class=\"bar-workflow__exit\"\n variant=\"icon\"\n icon=\"Cross\"\n aria-label={this.exitAriaLabel}\n size=\"md\"\n background=\"bold\"\n activeFill={false}\n hasBorder={false}\n onDsClick={(event: CustomEvent<MouseEvent>) => this.dsExit.emit(event.detail)}\n />\n </ds-tooltip>\n <ds-text\n class=\"bar-workflow__heading ds-control--md\"\n variant=\"text-title-small\"\n emphasis\n color=\"on-bold\"\n as=\"h1\"\n lineTruncation={1}\n >\n {this.resolvedHeading}\n </ds-text>\n </div>\n\n <div class=\"bar-workflow__actions\">\n {this.previousStep ? (\n <ds-tooltip label={this.previousLabel} side=\"bottom\" size=\"sm\">\n <ds-button-unfilled\n class=\"bar-workflow__previous\"\n variant=\"icon\"\n icon=\"ChevronLeft\"\n aria-label={this.previousLabel}\n size=\"md\"\n background=\"bold\"\n activeFill={false}\n hasBorder={false}\n isInactive={this.previousStep.isInactive}\n onDsClick={this.handlePrevious}\n />\n </ds-tooltip>\n ) : null}\n\n {this.isLastStep ? (\n this.renderSubmit()\n ) : (\n <ds-tooltip label={this.nextLabel} side=\"bottom\" size=\"sm\">\n <ds-button-filled\n class=\"bar-workflow__next\"\n variant=\"icon\"\n icon=\"ChevronRight\"\n label={this.nextLabel}\n aria-label={this.nextLabel}\n intent=\"brand\"\n contrast=\"faint\"\n background=\"bold\"\n size=\"md\"\n type=\"button\"\n isInactive={this.isNextInactive || this.nextStep?.isInactive}\n onDsClick={this.handleNext}\n />\n </ds-tooltip>\n )}\n </div>\n </div>\n );\n }\n\n render() {\n return (\n <Host>\n {this.responsiveMode === 'mobile' ? this.renderMobile() : this.renderDesktop()}\n </Host>\n );\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["barWorkflowCss","BarWorkflow","__stencil_proxyCustomElement","HTMLElement","constructor","registerHost","this","steps","value","exitLabel","exitAriaLabel","previousLabel","nextLabel","submitAction","label","type","isNextInactive","responsiveMode","handlePrevious","previousStep","isInactive","dsStepChange","emit","id","handleNext","nextStep","currentIndex","index","findIndex","step","isLastStep","length","resolvedHeading","heading","renderSubmit","slot","submit","h","side","size","class","variant","icon","intent","contrast","background","isLoading","onDsClick","event","dsSubmit","detail","renderMobile","tone","activeFill","hasBorder","dsExit","renderDesktop","emphasis","color","as","lineTruncation","render","Host","key"],"sources":["src/wc/components/BarWorkflow/BarWorkflow.css?tag=ds-bar-workflow&encapsulation=scoped","src/wc/components/BarWorkflow/BarWorkflow.tsx"],"sourcesContent":["@import '../../utils/control-density.css';\n@import '../../utils/chrome-layout.css';\n\n:host {\n display: block;\n min-width: 0;\n box-sizing: border-box;\n background: var(--color-background-bold-brand);\n}\n\n.bar-workflow {\n justify-content: space-between;\n height: var(--dimension-size-600);\n min-width: 0;\n background: var(--color-background-bold-brand);\n}\n\n.bar-workflow__identity {\n display: flex;\n flex: 1 1 auto;\n align-items: center;\n gap: var(--dimension-space-050);\n height: var(--dimension-size-400);\n min-width: 0;\n}\n\n.bar-workflow__heading {\n display: inline-flex;\n flex: 1 1 auto;\n align-items: center;\n width: auto;\n min-width: 0;\n height: var(--dimension-size-400);\n padding-inline: calc(var(--ds-control-padding-inline) + var(--ds-control-label-inset));\n box-sizing: border-box;\n user-select: none;\n}\n\n.bar-workflow__actions {\n display: flex;\n flex: 0 0 auto;\n align-items: center;\n gap: var(--dimension-space-100);\n}\n","import { Component, Event, EventEmitter, h, Host, Prop } from '@stencil/core';\nimport type { ShellResponsiveMode } from '../../shell/shell-responsive';\nimport type { BarWorkflowStep, BarWorkflowSubmitAction } from './bar-workflow-types';\n\n@Component({\n tag: 'ds-bar-workflow',\n styleUrl: 'BarWorkflow.css',\n scoped: true,\n})\nexport class BarWorkflow {\n /** The workflow's single visible h1. */\n @Prop() heading!: string;\n\n /** Ordered workflow steps. Step state is controlled by the application. */\n @Prop() steps: BarWorkflowStep[] = [];\n\n /** Id of the current workflow step. Falls back to the first step. */\n @Prop() value: string = '';\n\n /** Concise tooltip label for the Exit control. */\n @Prop() exitLabel: string = 'Exit';\n\n /** Workflow-specific accessible name for Exit. */\n @Prop() exitAriaLabel: string = 'Exit workflow';\n\n /** Tooltip and accessible name for the previous-step control. */\n @Prop() previousLabel: string = 'Previous step';\n\n /** Tooltip and accessible name for the next-step control. */\n @Prop() nextLabel: string = 'Next step';\n\n /** The final-step Save or Submit action. */\n @Prop() submitAction: BarWorkflowSubmitAction = {\n label: 'Save',\n type: 'submit',\n };\n\n /** Prevent advancing while the current step is incomplete or invalid. */\n @Prop() isNextInactive: boolean = false;\n\n /** Explicit shell breakpoint presentation. Mobile keeps the same controlled workflow state. */\n @Prop({ attribute: 'responsive-mode', reflect: true })\n responsiveMode: ShellResponsiveMode = 'desktop';\n\n /** Emitted when Exit is activated. */\n @Event() dsExit!: EventEmitter<MouseEvent>;\n\n /** Emitted with the target previous or next step id. The component never mutates value. */\n @Event() dsStepChange!: EventEmitter<string>;\n\n /** Emitted when the final Save or Submit control is activated. */\n @Event() dsSubmit!: EventEmitter<MouseEvent>;\n\n private get currentIndex(): number {\n const index = this.steps.findIndex(step => step.id === this.value);\n return index >= 0 ? index : 0;\n }\n\n private get previousStep(): BarWorkflowStep | null {\n return this.steps[this.currentIndex - 1] ?? null;\n }\n\n private get nextStep(): BarWorkflowStep | null {\n return this.steps[this.currentIndex + 1] ?? null;\n }\n\n private get isLastStep(): boolean {\n return this.steps.length <= 1 || this.currentIndex === this.steps.length - 1;\n }\n\n private get resolvedHeading(): string {\n if (this.steps.length <= 1) return this.heading;\n return `${this.heading} · ${this.currentIndex + 1}/${this.steps.length}`;\n }\n\n private handlePrevious = () => {\n if (this.previousStep && !this.previousStep.isInactive) {\n this.dsStepChange.emit(this.previousStep.id);\n }\n };\n\n private handleNext = () => {\n if (this.nextStep && !this.isNextInactive && !this.nextStep.isInactive) {\n this.dsStepChange.emit(this.nextStep.id);\n }\n };\n\n private renderSubmit(slot?: 'trailing') {\n const submit = this.submitAction;\n return (\n <ds-tooltip slot={slot} label={submit.label} side=\"bottom\" size=\"sm\">\n <ds-button-filled\n class=\"bar-workflow__submit\"\n variant=\"icon\"\n icon=\"Check\"\n label={submit.label}\n aria-label={submit.label}\n intent=\"brand\"\n contrast=\"faint\"\n background=\"bold\"\n size=\"md\"\n type={submit.type ?? 'submit'}\n isInactive={submit.isInactive}\n isLoading={submit.isLoading}\n onDsClick={(event: CustomEvent<MouseEvent>) => this.dsSubmit.emit(event.detail)}\n />\n </ds-tooltip>\n );\n }\n\n private renderMobile() {\n return (\n <ds-mobile-header\n class=\"bar-workflow__mobile\"\n heading={this.resolvedHeading}\n tone=\"brand\"\n >\n <ds-tooltip slot=\"leading\" label={this.exitLabel} side=\"bottom\" size=\"sm\">\n <ds-button-unfilled\n class=\"bar-workflow__exit\"\n variant=\"icon\"\n icon=\"Cross\"\n aria-label={this.exitAriaLabel}\n size=\"md\"\n background=\"bold\"\n activeFill={false}\n hasBorder={false}\n onDsClick={(event: CustomEvent<MouseEvent>) => this.dsExit.emit(event.detail)}\n />\n </ds-tooltip>\n\n {this.previousStep ? (\n <ds-tooltip slot=\"trailing\" label={this.previousLabel} side=\"bottom\" size=\"sm\">\n <ds-button-unfilled\n class=\"bar-workflow__previous\"\n variant=\"icon\"\n icon=\"ChevronLeft\"\n aria-label={this.previousLabel}\n size=\"md\"\n background=\"bold\"\n activeFill={false}\n hasBorder={false}\n isInactive={this.previousStep.isInactive}\n onDsClick={this.handlePrevious}\n />\n </ds-tooltip>\n ) : null}\n\n {this.isLastStep ? (\n this.renderSubmit('trailing')\n ) : (\n <ds-tooltip slot=\"trailing\" label={this.nextLabel} side=\"bottom\" size=\"sm\">\n <ds-button-filled\n class=\"bar-workflow__next\"\n variant=\"icon\"\n icon=\"ChevronRight\"\n label={this.nextLabel}\n aria-label={this.nextLabel}\n intent=\"brand\"\n contrast=\"faint\"\n background=\"bold\"\n size=\"md\"\n type=\"button\"\n isInactive={this.isNextInactive || this.nextStep?.isInactive}\n onDsClick={this.handleNext}\n />\n </ds-tooltip>\n )}\n </ds-mobile-header>\n );\n }\n\n private renderDesktop() {\n return (\n <div class=\"bar-workflow ds-chrome-row ds-chrome-space--md\">\n <div class=\"bar-workflow__identity\">\n <ds-tooltip label={this.exitLabel} side=\"bottom\" size=\"sm\">\n <ds-button-unfilled\n class=\"bar-workflow__exit\"\n variant=\"icon\"\n icon=\"Cross\"\n aria-label={this.exitAriaLabel}\n size=\"md\"\n background=\"bold\"\n activeFill={false}\n hasBorder={false}\n onDsClick={(event: CustomEvent<MouseEvent>) => this.dsExit.emit(event.detail)}\n />\n </ds-tooltip>\n <ds-text\n class=\"bar-workflow__heading ds-control--md\"\n variant=\"text-title-small\"\n emphasis\n color=\"on-bold\"\n as=\"h1\"\n lineTruncation={1}\n >\n {this.resolvedHeading}\n </ds-text>\n </div>\n\n <div class=\"bar-workflow__actions\">\n {this.previousStep ? (\n <ds-tooltip label={this.previousLabel} side=\"bottom\" size=\"sm\">\n <ds-button-unfilled\n class=\"bar-workflow__previous\"\n variant=\"icon\"\n icon=\"ChevronLeft\"\n aria-label={this.previousLabel}\n size=\"md\"\n background=\"bold\"\n activeFill={false}\n hasBorder={false}\n isInactive={this.previousStep.isInactive}\n onDsClick={this.handlePrevious}\n />\n </ds-tooltip>\n ) : null}\n\n {this.isLastStep ? (\n this.renderSubmit()\n ) : (\n <ds-tooltip label={this.nextLabel} side=\"bottom\" size=\"sm\">\n <ds-button-filled\n class=\"bar-workflow__next\"\n variant=\"icon\"\n icon=\"ChevronRight\"\n label={this.nextLabel}\n aria-label={this.nextLabel}\n intent=\"brand\"\n contrast=\"faint\"\n background=\"bold\"\n size=\"md\"\n type=\"button\"\n isInactive={this.isNextInactive || this.nextStep?.isInactive}\n onDsClick={this.handleNext}\n />\n </ds-tooltip>\n )}\n </div>\n </div>\n );\n }\n\n render() {\n return (\n <Host>\n {this.responsiveMode === 'mobile' ? this.renderMobile() : this.renderDesktop()}\n </Host>\n );\n }\n}\n"],"mappings":"gjBAAA,MAAMA,EAAiB,IAAM,6hH,MCShBC,EAAWC,EAAA,MAAAD,UAAAE,EALxB,WAAAC,CAAAC,G,mJAUUC,KAAAC,MAA2B,GAG3BD,KAAAE,MAAgB,GAGhBF,KAAAG,UAAoB,OAGpBH,KAAAI,cAAwB,gBAGxBJ,KAAAK,cAAwB,gBAGxBL,KAAAM,UAAoB,YAGpBN,KAAAO,aAAwC,CAC9CC,MAAO,OACPC,KAAM,UAIAT,KAAAU,eAA0B,MAIlCV,KAAAW,eAAsC,UAiC9BX,KAAAY,eAAiB,KACvB,GAAIZ,KAAKa,eAAiBb,KAAKa,aAAaC,WAAY,CACtDd,KAAKe,aAAaC,KAAKhB,KAAKa,aAAaI,G,GAIrCjB,KAAAkB,WAAa,KACnB,GAAIlB,KAAKmB,WAAanB,KAAKU,iBAAmBV,KAAKmB,SAASL,WAAY,CACtEd,KAAKe,aAAaC,KAAKhB,KAAKmB,SAASF,G,EAwK1C,CAtMC,gBAAYG,GACV,MAAMC,EAAQrB,KAAKC,MAAMqB,WAAUC,GAAQA,EAAKN,KAAOjB,KAAKE,QAC5D,OAAOmB,GAAS,EAAIA,EAAQ,C,CAG9B,gBAAYR,GACV,OAAOb,KAAKC,MAAMD,KAAKoB,aAAe,IAAM,I,CAG9C,YAAYD,GACV,OAAOnB,KAAKC,MAAMD,KAAKoB,aAAe,IAAM,I,CAG9C,cAAYI,GACV,OAAOxB,KAAKC,MAAMwB,QAAU,GAAKzB,KAAKoB,eAAiBpB,KAAKC,MAAMwB,OAAS,C,CAG7E,mBAAYC,GACV,GAAI1B,KAAKC,MAAMwB,QAAU,EAAG,OAAOzB,KAAK2B,QACxC,MAAO,GAAG3B,KAAK2B,aAAa3B,KAAKoB,aAAe,KAAKpB,KAAKC,MAAMwB,Q,CAe1D,YAAAG,CAAaC,GACnB,MAAMC,EAAS9B,KAAKO,aACpB,OACEwB,EAAA,cAAYF,KAAMA,EAAMrB,MAAOsB,EAAOtB,MAAOwB,KAAK,SAASC,KAAK,MAC9DF,EAAA,oBACEG,MAAM,uBACNC,QAAQ,OACRC,KAAK,QACL5B,MAAOsB,EAAOtB,MAAK,aACPsB,EAAOtB,MACnB6B,OAAO,QACPC,SAAS,QACTC,WAAW,OACXN,KAAK,KACLxB,KAAMqB,EAAOrB,MAAQ,SACrBK,WAAYgB,EAAOhB,WACnB0B,UAAWV,EAAOU,UAClBC,UAAYC,GAAmC1C,KAAK2C,SAAS3B,KAAK0B,EAAME,U,CAMxE,YAAAC,GACN,OACEd,EAAA,oBACEG,MAAM,uBACNP,QAAS3B,KAAK0B,gBACdoB,KAAK,SAELf,EAAA,cAAYF,KAAK,UAAUrB,MAAOR,KAAKG,UAAW6B,KAAK,SAASC,KAAK,MACnEF,EAAA,sBACEG,MAAM,qBACNC,QAAQ,OACRC,KAAK,QAAO,aACApC,KAAKI,cACjB6B,KAAK,KACLM,WAAW,OACXQ,WAAY,MACZC,UAAW,MACXP,UAAYC,GAAmC1C,KAAKiD,OAAOjC,KAAK0B,EAAME,WAIzE5C,KAAKa,aACJkB,EAAA,cAAYF,KAAK,WAAWrB,MAAOR,KAAKK,cAAe2B,KAAK,SAASC,KAAK,MACxEF,EAAA,sBACEG,MAAM,yBACNC,QAAQ,OACRC,KAAK,cAAa,aACNpC,KAAKK,cACjB4B,KAAK,KACLM,WAAW,OACXQ,WAAY,MACZC,UAAW,MACXlC,WAAYd,KAAKa,aAAaC,WAC9B2B,UAAWzC,KAAKY,kBAGlB,KAEHZ,KAAKwB,WACJxB,KAAK4B,aAAa,YAElBG,EAAA,cAAYF,KAAK,WAAWrB,MAAOR,KAAKM,UAAW0B,KAAK,SAASC,KAAK,MACpEF,EAAA,oBACEG,MAAM,qBACNC,QAAQ,OACRC,KAAK,eACL5B,MAAOR,KAAKM,UAAS,aACTN,KAAKM,UACjB+B,OAAO,QACPC,SAAS,QACTC,WAAW,OACXN,KAAK,KACLxB,KAAK,SACLK,WAAYd,KAAKU,gBAAkBV,KAAKmB,UAAUL,WAClD2B,UAAWzC,KAAKkB,c,CAQpB,aAAAgC,GACN,OACEnB,EAAA,OAAKG,MAAM,kDACPH,EAAA,OAAKG,MAAM,0BACTH,EAAA,cAAYvB,MAAOR,KAAKG,UAAW6B,KAAK,SAASC,KAAK,MACpDF,EAAA,sBACEG,MAAM,qBACNC,QAAQ,OACRC,KAAK,QAAO,aACApC,KAAKI,cACjB6B,KAAK,KACLM,WAAW,OACXQ,WAAY,MACZC,UAAW,MACXP,UAAYC,GAAmC1C,KAAKiD,OAAOjC,KAAK0B,EAAME,WAG1Eb,EAAA,WACEG,MAAM,uCACNC,QAAQ,mBACRgB,SAAQ,KACRC,MAAM,UACNC,GAAG,KACHC,eAAgB,GAEftD,KAAK0B,kBAIVK,EAAA,OAAKG,MAAM,yBACRlC,KAAKa,aACJkB,EAAA,cAAYvB,MAAOR,KAAKK,cAAe2B,KAAK,SAASC,KAAK,MACxDF,EAAA,sBACEG,MAAM,yBACNC,QAAQ,OACRC,KAAK,cAAa,aACNpC,KAAKK,cACjB4B,KAAK,KACLM,WAAW,OACXQ,WAAY,MACZC,UAAW,MACXlC,WAAYd,KAAKa,aAAaC,WAC9B2B,UAAWzC,KAAKY,kBAGlB,KAEHZ,KAAKwB,WACJxB,KAAK4B,eAELG,EAAA,cAAYvB,MAAOR,KAAKM,UAAW0B,KAAK,SAASC,KAAK,MACpDF,EAAA,oBACEG,MAAM,qBACNC,QAAQ,OACRC,KAAK,eACL5B,MAAOR,KAAKM,UAAS,aACTN,KAAKM,UACjB+B,OAAO,QACPC,SAAS,QACTC,WAAW,OACXN,KAAK,KACLxB,KAAK,SACLK,WAAYd,KAAKU,gBAAkBV,KAAKmB,UAAUL,WAClD2B,UAAWzC,KAAKkB,e,CAShC,MAAAqC,GACE,OACExB,EAACyB,EAAI,CAAAC,IAAA,4CACFzD,KAAKW,iBAAmB,SAAWX,KAAK6C,eAAiB7C,KAAKkD,gB","ignoreList":[]}
@@ -1,2 +1,2 @@
1
- import{M as o,d as s}from"./p-Dh_p8OzP.js";const p=o;const t=s;export{p as DsMenu,t as defineCustomElement};
1
+ import{M as o,d as s}from"./p-DfyfrfHL.js";const f=o;const r=s;export{f as DsMenu,r as defineCustomElement};
2
2
  //# sourceMappingURL=ds-menu.js.map
@@ -1,2 +1,2 @@
1
- import{M as o,d as s}from"./p-BAStZzJu.js";const t=o;const p=s;export{t as DsMobileHeader,p as defineCustomElement};
1
+ import{M as o,d as s}from"./p-C2n8A8NA.js";const t=o;const n=s;export{t as DsMobileHeader,n as defineCustomElement};
2
2
  //# sourceMappingURL=ds-mobile-header.js.map
@@ -1,2 +1,2 @@
1
- import{M as s,d as o}from"./p-BZ3UTshV.js";const t=s;const p=o;export{t as DsMobileSectionSwitcher,p as defineCustomElement};
1
+ import{M as o,d as s}from"./p-Cyw9odJX.js";const t=o;const p=s;export{t as DsMobileSectionSwitcher,p as defineCustomElement};
2
2
  //# sourceMappingURL=ds-mobile-section-switcher.js.map
@@ -1,2 +1,2 @@
1
- import{P as o,d as s}from"./p-DSuAHQRk.js";const t=o;const p=s;export{t as DsPanelNav,p as defineCustomElement};
1
+ import{P as o,d as s}from"./p-C5eosu67.js";const t=o;const p=s;export{t as DsPanelNav,p as defineCustomElement};
2
2
  //# sourceMappingURL=ds-panel-nav.js.map
@@ -0,0 +1,11 @@
1
+ import type { Components, JSX } from "../types/components";
2
+
3
+ interface DsPaperTexture extends Components.DsPaperTexture, HTMLElement {}
4
+ export const DsPaperTexture: {
5
+ prototype: DsPaperTexture;
6
+ new (): DsPaperTexture;
7
+ };
8
+ /**
9
+ * Used to define this component and all nested components recursively.
10
+ */
11
+ export const defineCustomElement: () => void;
@@ -0,0 +1,2 @@
1
+ import{P as o,d as s}from"./p-DIEx1e0M.js";const t=o;const p=s;export{t as DsPaperTexture,p as defineCustomElement};
2
+ //# sourceMappingURL=ds-paper-texture.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sources":[],"mappings":"","ignoreList":[]}