@orianatech/pire 0.13.0 → 0.16.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 (38) hide show
  1. package/dist/components/core/Icon.d.ts.map +1 -1
  2. package/dist/components/core/Kbd.d.cts +17 -0
  3. package/dist/components/core/Kbd.d.ts +18 -0
  4. package/dist/components/core/Kbd.d.ts.map +1 -0
  5. package/dist/components/core/icon-data.generated.d.ts.map +1 -1
  6. package/dist/components/core/icon-map.d.cts +9 -0
  7. package/dist/components/core/icon-map.d.ts +9 -0
  8. package/dist/components/core/icon-map.d.ts.map +1 -1
  9. package/dist/components/forms/Input.d.cts +20 -2
  10. package/dist/components/forms/Input.d.ts +20 -2
  11. package/dist/components/forms/Input.d.ts.map +1 -1
  12. package/dist/components/forms/ValueHelpField.d.cts +12 -1
  13. package/dist/components/forms/ValueHelpField.d.ts +12 -1
  14. package/dist/components/forms/ValueHelpField.d.ts.map +1 -1
  15. package/dist/components/navigation/Menu.d.cts +7 -2
  16. package/dist/components/navigation/Menu.d.ts +7 -2
  17. package/dist/components/navigation/Menu.d.ts.map +1 -1
  18. package/dist/components/navigation/ShellBar.d.cts +13 -1
  19. package/dist/components/navigation/ShellBar.d.ts +13 -1
  20. package/dist/components/navigation/ShellBar.d.ts.map +1 -1
  21. package/dist/components/patterns/CommandPalette.d.cts +97 -0
  22. package/dist/components/patterns/CommandPalette.d.ts +98 -0
  23. package/dist/components/patterns/CommandPalette.d.ts.map +1 -0
  24. package/dist/components/patterns/ValueHelpDialog.d.cts +22 -1
  25. package/dist/components/patterns/ValueHelpDialog.d.ts +22 -1
  26. package/dist/components/patterns/ValueHelpDialog.d.ts.map +1 -1
  27. package/dist/components.css +94 -2
  28. package/dist/i18n/messages.d.cts +28 -0
  29. package/dist/i18n/messages.d.ts +28 -0
  30. package/dist/i18n/messages.d.ts.map +1 -1
  31. package/dist/index.cjs +1071 -664
  32. package/dist/index.cjs.map +1 -1
  33. package/dist/index.d.cts +3 -0
  34. package/dist/index.d.ts +3 -0
  35. package/dist/index.d.ts.map +1 -1
  36. package/dist/index.js +985 -563
  37. package/dist/index.js.map +1 -1
  38. package/package.json +1 -1
@@ -105,6 +105,19 @@
105
105
  .pire-input[data-numeric="true"]{font:var(--type-numeric);text-align:right;font-variant-numeric:tabular-nums}
106
106
  .pire-input::placeholder{color:var(--text-tertiary)}
107
107
  .pire-affix{font:var(--type-caption);color:var(--text-secondary);flex:0 0 auto}
108
+ /* Chrome and Safari decorate type="search" with their own clear button. It cannot be styled or
109
+ sized, Firefox does not draw one at all, and it ignores every token here — so a search box would
110
+ look different per browser. Hidden everywhere; `isClearable` is the replacement, and it is a real
111
+ labelled button rather than a browser affordance. */
112
+ .pire-input::-webkit-search-cancel-button{display:none}
113
+ /* A word, not an icon. An icon-only "x" inside a dialog sits beside the dialog's own close "x" and
114
+ reads as a second way to dismiss it; the label says what is being cleared. Sized down so it
115
+ belongs to the field rather than competing with it. */
116
+ .pire-input-clear{flex:0 0 auto;border:0;background:transparent;padding:0 var(--sp-1);font:var(--type-caption);color:var(--text-link);cursor:pointer;border-radius:var(--radius-1);white-space:nowrap;transition:var(--transition-control)}
117
+ .pire-input-clear[data-hovered]{color:var(--text-link-hover);text-decoration:underline}
118
+ /* `.pire-control :focus-visible` clears inner rings so the control shows a single one. This button
119
+ is a separate target inside it, so it keeps its own. */
120
+ .pire-input-clear[data-focus-visible]{outline:var(--focus-w) solid var(--focus-color);outline-offset:1px}
108
121
  .pire-leading-icon{color:var(--text-tertiary);flex:0 0 auto}
109
122
  /* The shell is fixed-height by default because every single-line control is. Controls whose
110
123
  content sets the height (TextArea, MultiComboBox's chips) opt out with data-multiline and
@@ -195,6 +208,13 @@
195
208
  .pire-shellbar-title{font:var(--type-body-strong)}
196
209
  .pire-shellbar-spacer{flex:1}
197
210
  .pire-avatar{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:var(--radius-pill);background:var(--blue-60);color:var(--text-inverse);font:var(--type-label)}
211
+ /* The avatar as a real button, once ShellBar is given a userMenu. Resets the UA button styling the
212
+ span never carried, and adds what a span cannot: a pointer, interaction states, and a focus ring
213
+ that reads against the dark shell instead of against the page. */
214
+ .pire-avatar-trigger{border:0;padding:0;cursor:pointer;transition:var(--transition-control)}
215
+ .pire-avatar-trigger[data-hovered]{background:var(--blue-50)}
216
+ .pire-avatar-trigger[data-pressed]{background:var(--blue-70)}
217
+ .pire-avatar-trigger[data-focus-visible]{outline:var(--focus-w) solid var(--text-inverse);outline-offset:2px}
198
218
  .pire-sidenav{display:flex;flex-direction:column;width:var(--sidenav-w);flex:0 0 auto;background:var(--surface-nav);border-right:1px solid var(--border-subtle);overflow:auto}
199
219
  .pire-sidenav[data-collapsed="true"]{width:var(--sidenav-w-collapsed)}
200
220
  .pire-sidenav-group{padding:var(--sp-3) 0}
@@ -504,7 +524,9 @@
504
524
  .pire-menu-item-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
505
525
  .pire-menu-item-desc{font:var(--type-caption);color:var(--text-secondary)}
506
526
  .pire-menu-item[data-disabled] .pire-menu-item-desc{color:var(--text-disabled)}
507
- .pire-menu-item-shortcut{flex:0 0 auto;align-self:center;font:var(--type-code);color:var(--text-tertiary)}
527
+ /* A row of Kbd caps rather than a run of mono text, so a shortcut is drawn the same way
528
+ everywhere — including beside the command palette's key hints, in the same panel. */
529
+ .pire-menu-item-shortcut{flex:0 0 auto;align-self:center;display:flex;align-items:center;gap:2px}
508
530
  .pire-menu-section-title{display:block;padding:var(--sp-1) var(--sp-3);font:var(--type-label);letter-spacing:var(--ls-caps);text-transform:uppercase;color:var(--text-secondary)}
509
531
  .pire-menu-separator{border:0;border-top:var(--border-w-hairline) solid var(--border-subtle);margin:var(--sp-1) 0}
510
532
 
@@ -665,8 +687,78 @@
665
687
  .pire-chart-table th,.pire-chart-table td{padding:var(--sp-1) var(--sp-2);border-block-end:1px solid var(--border-subtle);text-align:left;color:var(--text-primary)}
666
688
  .pire-chart-table td{font-variant-numeric:tabular-nums}
667
689
 
690
+ /* ---- ValueHelpField ------------------------------------------------------ */
691
+ /* The triggers sit inside .pire-control, flush with its trailing edge. `stretch` makes them the
692
+ control's full height whatever the size, and the negative margins cancel the control's own
693
+ padding and gap so there is no seam between the input and the first button. */
694
+ /* Two things have to give for the buttons to fill the control. `.pire-affix` is a block whose
695
+ default alignment centres it — right for the unit strings it usually holds, wrong here — so it
696
+ stretches and becomes a flex parent; without both, the buttons collapse to their 20px content
697
+ height and float in the middle of a 40px control. */
698
+ .pire-control:has(.pire-valuehelp-actions) .pire-affix{align-self:stretch;display:flex}
699
+ .pire-valuehelp-actions{display:flex;align-items:stretch;margin-inline-start:calc(var(--sp-2) * -1);margin-inline-end:calc(var(--control-pad-x) * -1)}
700
+ .pire-valuehelp-actions .pire-iconbtn{height:auto;border-radius:0;border-inline-start:1px solid var(--border-field)}
701
+ /* The control's *inner* corner is its radius less its border, so matching --radius-1 exactly would
702
+ leave the button proud of the curve by a pixel. Only the last button rounds. */
703
+ .pire-valuehelp-actions .pire-iconbtn:last-child{border-start-end-radius:calc(var(--radius-1) - 1px);border-end-end-radius:calc(var(--radius-1) - 1px)}
704
+ /* A tint rather than a ring. The control already rings on focus-within, so focus is visible; what
705
+ that ring cannot say is *which* of two buttons has it. An inset outline said so but collided
706
+ with the control's own border and read as a doubled edge. */
707
+ .pire-valuehelp-actions .pire-iconbtn[data-focus-visible]{outline:none;background:var(--surface-selected);color:var(--accent-subtle-fg)}
708
+
709
+ /* ---- Icon --------------------------------------------------------------- */
710
+ /* Development-only marker for a name that resolved to no glyph. Rendered by Icon in dev builds
711
+ only, so it never reaches a user; it exists so a typo is visible on the page rather than only in
712
+ a console warning. Sized from the host span, so the box a typo leaves stays the icon's size. */
713
+ .pire-icon-missing{display:block;width:100%;height:100%;box-sizing:border-box;border:1px dashed var(--status-negative-fg);border-radius:2px}
714
+
715
+ /* ---- Kbd ---------------------------------------------------------------- */
716
+ /* min-width equals the height, so a single character is a square cap and a word like "esc" grows
717
+ sideways from it rather than every cap being sized for the longest one. */
718
+ .pire-kbd{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:20px;padding:0 var(--sp-1);border:1px solid var(--border-default);border-radius:var(--radius-1);background:var(--surface-card);font:var(--type-code);color:var(--text-secondary);white-space:nowrap}
719
+ .pire-kbd[data-size="sm"]{min-width:16px;height:16px;font-size:11px}
720
+ /* Lives here rather than in the Menu section so it follows the base rule it refines. A disabled
721
+ row must fade its caps too, or the shortcut is the one part of the row still looking live on a
722
+ command the user cannot run. */
723
+ .pire-menu-item[data-disabled] .pire-kbd{color:var(--text-disabled);border-color:var(--border-subtle)}
724
+
725
+ /* ---- CommandPalette ----------------------------------------------------- */
726
+ /* Anchored near the top rather than centred: the list grows downwards as it fills, and a centred
727
+ palette would shift its own input under the caret while the user is still typing. */
728
+ .pire-cp-overlay{position:fixed;inset:0;z-index:950;display:flex;align-items:flex-start;justify-content:center;padding:var(--sp-6);padding-block-start:12vh;background:var(--surface-overlay);animation:pire-fade-in var(--dur-fast) var(--ease-entrance)}
729
+ .pire-cp-modal{display:flex;flex-direction:column;width:min(640px,100%);max-height:min(60vh,480px);background:var(--surface-raised);border-radius:var(--radius-2);box-shadow:var(--shadow-3);animation:pire-dialog-in var(--dur-base) var(--ease-entrance);outline:none;overflow:hidden}
730
+ .pire-cp-dialog{display:flex;flex-direction:column;min-height:0;outline:none}
731
+ .pire-cp-search{display:flex;align-items:center;gap:var(--sp-2);padding:0 var(--sp-4);border-block-end:1px solid var(--border-subtle);flex:0 0 auto}
732
+ .pire-cp-search-icon{flex:0 0 auto;color:var(--text-tertiary)}
733
+ /* Borderless by design: the modal edge is the field's boundary, and a second border inside it
734
+ would read as a control within a control. */
735
+ .pire-cp-input{flex:1;min-width:0;height:var(--control-h-lg);border:0;background:transparent;font:var(--type-h4);color:var(--text-primary)}
736
+ /* No ring here, deliberately overriding base.css's global input outline. The palette takes the
737
+ caret on open, and the input is the only focusable thing in it — the list is navigated by
738
+ virtual focus, which never moves real focus off the input. So focus cannot be anywhere else
739
+ while this is on screen, the caret is the indicator, and a ring around a full-width borderless
740
+ field reads as a stray box rather than as focus. This reasoning does not transfer: on any field
741
+ sitting among other controls, the ring is what says which one is live. */
742
+ .pire-cp-input:focus-visible{outline:none}
743
+ .pire-cp-input::placeholder{font:var(--type-body);color:var(--text-tertiary)}
744
+ /* Same reasoning as `.pire-input`'s rule: the browser's own search decoration is unstyleable and
745
+ Chrome/Safari-only. The palette needs no replacement — Escape closes it outright. */
746
+ .pire-cp-input::-webkit-search-cancel-button{display:none}
747
+ .pire-cp-list{flex:1;min-height:0;overflow:auto;padding:var(--sp-1) 0;outline:none;display:flex;flex-direction:column}
748
+ /* Explicitly a column: the section is a flex child of .pire-cp-list, and leaving it as a block
749
+ makes its rows depend on the default layout of whatever React Aria renders for a section. */
750
+ .pire-cp-section{display:flex;flex-direction:column}
751
+ .pire-cp-section-title{display:block;padding:var(--sp-1) var(--sp-4);font:var(--type-label);letter-spacing:var(--ls-caps);text-transform:uppercase;color:var(--text-secondary)}
752
+ /* The rows are Menu's, so they inherit its focus, tone and disabled treatment; only the gutter
753
+ widens to match the palette's larger input. */
754
+ .pire-cp-list .pire-menu-item{padding-inline:var(--sp-4)}
755
+ .pire-cp-status{padding:var(--sp-4);text-align:center;font:var(--type-body);color:var(--text-secondary)}
756
+ .pire-cp-foot{flex:0 0 auto;display:flex;align-items:center;gap:var(--sp-4);padding:var(--sp-2) var(--sp-4);border-block-start:1px solid var(--border-subtle);background:var(--surface-sunken)}
757
+ .pire-cp-hint{display:flex;align-items:center;gap:var(--sp-1);font:var(--type-caption);color:var(--text-secondary)}
758
+ .pire-cp-loading{padding:var(--sp-1) var(--sp-4);font:var(--type-caption);color:var(--text-secondary);border-block-end:1px solid var(--border-subtle)}
759
+
668
760
  /* ---- Reduced motion --------------------------------------------------- */
669
- @media (prefers-reduced-motion: reduce){.pire-modal,.pire-toast,.pire-popover,.pire-tooltip,.pire-sidepanel{animation:none}
761
+ @media (prefers-reduced-motion: reduce){.pire-modal,.pire-toast,.pire-popover,.pire-tooltip,.pire-sidepanel,.pire-cp-overlay,.pire-cp-modal{animation:none}
670
762
  /* The skeleton also drops its background sweep, not just the animation: an infinite shimmer is
671
763
  exactly the "large, repeated motion" the preference is asking us to stop, and the placeholder
672
764
  still reads from its shape and surface contrast alone. */
@@ -48,6 +48,10 @@ export interface PireMessages {
48
48
  numberFieldIncrease: string;
49
49
  numberFieldDecrease: string;
50
50
  /** Accessible name of the button that clears a ValueHelpField. */
51
+ /** Accessible name of the clear affordance on a clearable Input. */
52
+ inputClear: string;
53
+ /** Placeholder in the closed value-help field when nothing is picked. */
54
+ valueHelpFieldPlaceholder: string;
51
55
  valueHelpFieldClear: string;
52
56
  /** Opens the value-help dialog. `{label}` is replaced with the field's own label. */
53
57
  valueHelpFieldOpenNamed: string;
@@ -55,6 +59,12 @@ export interface PireMessages {
55
59
  valueHelpFieldOpen: string;
56
60
  /** Accessible name of ValueHelpDialog's search field. */
57
61
  valueHelpDialogSearch: string;
62
+ /** Default dialog heading when the field does not supply one. */
63
+ valueHelpDialogTitle: string;
64
+ /** Placeholder in the value-help search box. */
65
+ valueHelpDialogSearchPlaceholder: string;
66
+ /** Shown when the search returns nothing. */
67
+ valueHelpDialogEmpty: string;
58
68
  /** Visible text of ValueHelpDialog's cancel button. */
59
69
  valueHelpDialogCancel: string;
60
70
  /** Pagination's landmark name and its controls. */
@@ -76,6 +86,24 @@ export interface PireMessages {
76
86
  fileUploadUploading: string;
77
87
  /** Instruction inside the drop surface. */
78
88
  fileDropZonePrompt: string;
89
+ /** Accessible name of the ShellBar avatar once it opens a menu. `{user}` is the person's name. */
90
+ shellBarUserMenu: string;
91
+ /** Names the command palette dialog. */
92
+ commandPaletteLabel: string;
93
+ /** Accessible name of the palette's search input. */
94
+ commandPaletteSearchLabel: string;
95
+ /** Placeholder in the palette's input. */
96
+ commandPalettePlaceholder: string;
97
+ /** Shown when nothing matches what was typed. */
98
+ commandPaletteEmpty: string;
99
+ /** Shown while a server-backed search is in flight. */
100
+ commandPaletteLoading: string;
101
+ /** Footer hint beside the arrow-key glyphs. */
102
+ commandPaletteHintNavigate: string;
103
+ /** Footer hint beside the Enter glyph. */
104
+ commandPaletteHintSelect: string;
105
+ /** Footer hint beside the Esc glyph. */
106
+ commandPaletteHintClose: string;
79
107
  /** Heading of the category column in a chart's data table. */
80
108
  chartCategoryHeader: string;
81
109
  /** Cell text where a chart series has no reading for a category. Never "0" — a gap is not a zero. */
@@ -48,6 +48,10 @@ export interface PireMessages {
48
48
  numberFieldIncrease: string;
49
49
  numberFieldDecrease: string;
50
50
  /** Accessible name of the button that clears a ValueHelpField. */
51
+ /** Accessible name of the clear affordance on a clearable Input. */
52
+ inputClear: string;
53
+ /** Placeholder in the closed value-help field when nothing is picked. */
54
+ valueHelpFieldPlaceholder: string;
51
55
  valueHelpFieldClear: string;
52
56
  /** Opens the value-help dialog. `{label}` is replaced with the field's own label. */
53
57
  valueHelpFieldOpenNamed: string;
@@ -55,6 +59,12 @@ export interface PireMessages {
55
59
  valueHelpFieldOpen: string;
56
60
  /** Accessible name of ValueHelpDialog's search field. */
57
61
  valueHelpDialogSearch: string;
62
+ /** Default dialog heading when the field does not supply one. */
63
+ valueHelpDialogTitle: string;
64
+ /** Placeholder in the value-help search box. */
65
+ valueHelpDialogSearchPlaceholder: string;
66
+ /** Shown when the search returns nothing. */
67
+ valueHelpDialogEmpty: string;
58
68
  /** Visible text of ValueHelpDialog's cancel button. */
59
69
  valueHelpDialogCancel: string;
60
70
  /** Pagination's landmark name and its controls. */
@@ -76,6 +86,24 @@ export interface PireMessages {
76
86
  fileUploadUploading: string;
77
87
  /** Instruction inside the drop surface. */
78
88
  fileDropZonePrompt: string;
89
+ /** Accessible name of the ShellBar avatar once it opens a menu. `{user}` is the person's name. */
90
+ shellBarUserMenu: string;
91
+ /** Names the command palette dialog. */
92
+ commandPaletteLabel: string;
93
+ /** Accessible name of the palette's search input. */
94
+ commandPaletteSearchLabel: string;
95
+ /** Placeholder in the palette's input. */
96
+ commandPalettePlaceholder: string;
97
+ /** Shown when nothing matches what was typed. */
98
+ commandPaletteEmpty: string;
99
+ /** Shown while a server-backed search is in flight. */
100
+ commandPaletteLoading: string;
101
+ /** Footer hint beside the arrow-key glyphs. */
102
+ commandPaletteHintNavigate: string;
103
+ /** Footer hint beside the Enter glyph. */
104
+ commandPaletteHintSelect: string;
105
+ /** Footer hint beside the Esc glyph. */
106
+ commandPaletteHintClose: string;
79
107
  /** Heading of the category column in a chart's data table. */
80
108
  chartCategoryHeader: string;
81
109
  /** Cell text where a chart series has no reading for a category. Never "0" — a gap is not a zero. */
@@ -1 +1 @@
1
- {"version":3,"file":"messages.d.ts","sourceRoot":"","sources":["../../src/i18n/messages.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,MAAM,WAAW,YAAY;IAC3B,iCAAiC;IACjC,cAAc,EAAE,MAAM,CAAC;IACvB,8EAA8E;IAC9E,WAAW,EAAE,MAAM,CAAC;IACpB,mEAAmE;IACnE,iBAAiB,EAAE,MAAM,CAAC;IAE1B,qEAAqE;IACrE,kBAAkB,EAAE,MAAM,CAAC;IAC3B,qDAAqD;IACrD,kBAAkB,EAAE,MAAM,CAAC;IAC3B,oDAAoD;IACpD,gBAAgB,EAAE,MAAM,CAAC;IAEzB,wDAAwD;IACxD,WAAW,EAAE,MAAM,CAAC;IACpB,uDAAuD;IACvD,cAAc,EAAE,MAAM,CAAC;IAEvB,6DAA6D;IAC7D,oBAAoB,EAAE,MAAM,CAAC;IAC7B,uDAAuD;IACvD,YAAY,EAAE,MAAM,CAAC;IACrB,8CAA8C;IAC9C,gBAAgB,EAAE,MAAM,CAAC;IAEzB,kEAAkE;IAClE;oGACgG;IAChG,WAAW,EAAE,MAAM,CAAC;IAEpB,uBAAuB,EAAE,MAAM,CAAC;IAChC,mEAAmE;IACnE,eAAe,EAAE,MAAM,CAAC;IAExB,qEAAqE;IACrE,sBAAsB,EAAE,MAAM,CAAC;IAC/B,uBAAuB,EAAE,MAAM,CAAC;IAChC,mBAAmB,EAAE,MAAM,CAAC;IAC5B,6DAA6D;IAC7D,qBAAqB,EAAE,MAAM,CAAC;IAE9B,oDAAoD;IACpD,mBAAmB,EAAE,MAAM,CAAC;IAC5B,mBAAmB,EAAE,MAAM,CAAC;IAE5B,kEAAkE;IAClE,mBAAmB,EAAE,MAAM,CAAC;IAC5B,qFAAqF;IACrF,uBAAuB,EAAE,MAAM,CAAC;IAChC,uEAAuE;IACvE,kBAAkB,EAAE,MAAM,CAAC;IAC3B,yDAAyD;IACzD,qBAAqB,EAAE,MAAM,CAAC;IAC9B,uDAAuD;IACvD,qBAAqB,EAAE,MAAM,CAAC;IAE9B,mDAAmD;IACnD,eAAe,EAAE,MAAM,CAAC;IACxB,wFAAwF;IACxF,eAAe,EAAE,MAAM,CAAC;IACxB,yDAAyD;IACzD,gBAAgB,EAAE,MAAM,CAAC;IACzB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,cAAc,EAAE,MAAM,CAAC;IACvB,qBAAqB,EAAE,MAAM,CAAC;IAE9B,0FAA0F;IAC1F,YAAY,EAAE,MAAM,CAAC;IAErB,4CAA4C;IAC5C,gBAAgB,EAAE,MAAM,CAAC;IACzB,wEAAwE;IACxE,qBAAqB,EAAE,MAAM,CAAC;IAC9B,uDAAuD;IACvD,mBAAmB,EAAE,MAAM,CAAC;IAC5B,2CAA2C;IAC3C,kBAAkB,EAAE,MAAM,CAAC;IAE3B,8DAA8D;IAC9D,mBAAmB,EAAE,MAAM,CAAC;IAC5B,qGAAqG;IACrG,YAAY,EAAE,MAAM,CAAC;IACrB,mEAAmE;IACnE,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,eAAO,MAAM,UAAU,EAAE,YAoDxB,CAAC;AAEF,eAAO,MAAM,UAAU,EAAE,YAoDxB,CAAC"}
1
+ {"version":3,"file":"messages.d.ts","sourceRoot":"","sources":["../../src/i18n/messages.ts"],"names":[],"mappings":"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"}